PandaRoot
PndSTETrackBase.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
23 #ifndef PndSTETrackBase_H_
24 #define PndSTETrackBase_H_
25 
26 #include "PndTrack.h"
27 #include "PndTrackCand.h"
28 #include "PndRiemannTrack.h"
29 #include "FairLink.h"
30 #include "FairMultiLinkedData.h"
31 #include <vector>
32 
33 #include "PndSTESettings.h"
34 
36 
37  public:
40 
42  virtual ~PndSTETrackBase(){
43 
44  };
45 
47  PndTrack GetTrack(int i) { return fTracks[i]; };
48 
51 
54 
56  int NumTrackCands() { return fTrackCands.size(); };
57 
59  int NumRiemannTracks() { return fRiemannTracks.size(); };
60 
61  protected:
62 
63  std::map<PndSdsHit *, int> fMapMvdHitBranchId;
64 
65  std::vector<PndTrackCand> fTrackCands; // Container for the track cands with additional hits included.
66  std::vector<PndTrack> fTracks; // Container for the tracks with additional hits included
67  std::vector<PndRiemannTrack> fRiemannTracks; // Container for the Riemann tracks with additional hits included
68 
71  double fxc;
72 
73  double fLineSlope = 0; // The line slope for hemisphere exclusion
74 
75  std::vector<double> fChi2OneHit; // Vector of chi2 values for individual hits calculated from their distance to a track
76  double fSumChi2 = 0; // Sum of all individual chi2 from the hits
77  double fReducedChi2 = 0; // Reduced chi2 for one track calculated from its hits
78  std::map<double, PndSdsHit *> fMapChi2OneHitMvdHit; // Map between Mvd hit and its chi2
79 
80  std::vector<double> fChi2OneHitSZ; // Vector of chi2 values in SZ space for individual hits calculated from their distance to a track
81  double fSumChi2SZ = 0; // Sum of all individual chi2 from the hits in SZ space
82  double fReducedChi2SZ = 0; // Reduced chi2 for one track calculated from its hits in SZ space
83  std::map<double, PndSdsHit *> fMapChi2OneHitMvdHitSZ; // Map between Mvd hit and its chi2 in SZ space
84 
86 };
87 
88 #endif /* PndSTETrackBase_H_ */
std::vector< PndTrackCand > fTrackCands
int NumRiemannTracks()
Function to get the number of Riemann tracks after the refit.
std::vector< double > fChi2OneHitSZ
PndTrackCand GetTrackCand(int i)
Function to get a track candidate after the refit.
std::map< double, PndSdsHit * > fMapChi2OneHitMvdHit
unsigned int i
Definition: P4_F32vec4.h:33
std::vector< PndRiemannTrack > fRiemannTracks
std::map< double, PndSdsHit * > fMapChi2OneHitMvdHitSZ
PndTrack GetTrack(int i)
Function to get a track after the refit.
int NumTrackCands()
Function to get the number of track candidates after the refit.
PndRiemannTrack GetRiemannTrack(int i)
Function to get a Riemann track after the refit.
ClassDef(PndSTETrackBase, 1)
double fxc
x-coordinate of the center of gravity of the hits in one track, used for computing hemispheres The x-...
std::vector< PndTrack > fTracks
std::map< PndSdsHit *, int > fMapMvdHitBranchId
std::vector< double > fChi2OneHit
virtual ~PndSTETrackBase()