]>
Commit | Line | Data |
---|---|---|
d0e92d9a | 1 | /////////////////////////////////////////////////////////////////////////// |
2 | // // | |
3 | // AliFemtoTrack: main class holding all the necessary information // | |
4 | // about a track (before the identification) that is required during // | |
5 | // femtoscopic analysis. This class is filled with information from the // | |
6 | // input stream by the reader. A particle has a link back to the Track // | |
7 | // it was created from, so we do not copy the information. // | |
8 | // // | |
9 | /////////////////////////////////////////////////////////////////////////// | |
67427ff7 | 10 | |
d0e92d9a | 11 | #ifndef ALIFEMTOTRACK_H |
12 | #define ALIFEMTOTRACK_H | |
67427ff7 | 13 | |
d0e92d9a | 14 | #include "AliFemtoTypes.h" |
67427ff7 | 15 | #include "AliFmPhysicalHelixD.h" |
16 | #include "TBits.h" | |
17 | /* Th stuff */ | |
d0e92d9a | 18 | #include "AliFemtoHiddenInfo.h" |
67427ff7 | 19 | /***/ |
20 | ||
21 | #ifndef __NO_STAR_DEPENDENCE_ALLOWED__ | |
22 | class StEvent; | |
23 | class StTrack; | |
24 | class StMuDst; | |
25 | class StMuTrack; | |
26 | #endif | |
27 | ||
67427ff7 | 28 | class AliFemtoTrack{ |
29 | public: | |
30 | AliFemtoTrack(); | |
d0e92d9a | 31 | AliFemtoTrack(const AliFemtoTrack& aTrack);// copy constructor |
0215f606 | 32 | AliFemtoTrack& operator=(const AliFemtoTrack& aTrack); |
67427ff7 | 33 | #ifndef __NO_STAR_DEPENDENCE_ALLOWED__ |
34 | #ifdef __ROOT__ | |
35 | //AliFemtoTrack(const StTrack*, AliFemtoThreeVector); // c-tor from StTrack of STAR DSTs | |
36 | //AliFemtoTrack(const StMuDst* dst, const StMuTrack* t); | |
37 | #endif | |
38 | //AliFemtoTrack(const StEvent*, const StTrack*); | |
39 | #endif | |
40 | ||
41 | ~AliFemtoTrack(); | |
42 | // ~AliFemtoTrack(){/* no-op*/}; | |
43 | ||
44 | short Charge() const; | |
45 | float PidProbElectron() const; | |
46 | float PidProbPion() const; | |
47 | float PidProbKaon() const; | |
48 | float PidProbProton() const; | |
49 | float PidProbMuon() const; | |
50 | ||
51 | AliFemtoThreeVector P() const; | |
52 | float Pt() const; | |
53 | const AliFmPhysicalHelixD& Helix() const; | |
54 | short TrackId() const; | |
55 | long int Flags() const; | |
56 | int Label()const; | |
57 | float ImpactD()const; | |
58 | float ImpactZ()const; | |
59 | float Cdd() const; | |
60 | float Cdz() const; | |
61 | float Czz() const; | |
62 | ||
63 | float ITSchi2() const; | |
64 | int ITSncls() const; | |
65 | float TPCchi2() const; | |
66 | int TPCncls() const; | |
67 | short TPCnclsF() const; | |
68 | short TPCsignalN() const; | |
69 | float TPCsignalS() const; | |
70 | ||
71 | const TBits& TPCclusters() const; | |
72 | const TBits& TPCsharing() const; | |
73 | ||
d0e92d9a | 74 | void SetCharge(const short& s); |
75 | void SetPidProbElectron(const float& x); | |
76 | void SetPidProbPion(const float& x); | |
77 | void SetPidProbKaon(const float& x); | |
78 | void SetPidProbProton(const float& x); | |
79 | void SetPidProbMuon(const float& x); | |
67427ff7 | 80 | |
81 | void SetP(const AliFemtoThreeVector&); | |
d0e92d9a | 82 | void SetPt(const float& x); |
67427ff7 | 83 | void SetHelix(const AliFmPhysicalHelixD&); |
d0e92d9a | 84 | void SetTrackId(const short& s); |
85 | void SetFlags(const long int& i); | |
86 | void SetLabel(const int& i); | |
87 | void SetImpactD(const float& x); | |
88 | void SetImpactZ(const float& x); | |
89 | void SetCdd(const float& x); | |
90 | void SetCdz(const float& x); | |
91 | void SetCzz(const float& x); | |
67427ff7 | 92 | |
d0e92d9a | 93 | void SetITSchi2(const float& x); |
94 | void SetITSncls(const int& i); | |
95 | void SetTPCchi2(const float& x); | |
96 | void SetTPCncls(const int& i); | |
97 | void SetTPCnclsF(const short& s); | |
98 | void SetTPCsignalN(const short& s); | |
99 | void SetTPCsignalS(const float& x); | |
67427ff7 | 100 | |
101 | void SetTPCcluster(const short& aNBit, const Bool_t& aValue); | |
102 | void SetTPCshared(const short& aNBit, const Bool_t& aValue); | |
103 | ||
104 | /* Th stuff */ | |
105 | void SetHiddenInfo(AliFemtoHiddenInfo* aHiddenInfo); | |
106 | bool ValidHiddenInfo() const; | |
107 | // Fab private : (official : const AliFemtoHiddenInfo* HiddenInfo() const; | |
d0e92d9a | 108 | AliFemtoHiddenInfo* GetHiddenInfo() const; |
67427ff7 | 109 | /***/ |
110 | ||
111 | //Alice stuff | |
d0e92d9a | 112 | enum { |
67427ff7 | 113 | kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008, |
114 | kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080, | |
115 | kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800, | |
116 | kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000, | |
117 | kRICHpid=0x20000, | |
118 | kTRDbackup=0x80000, | |
119 | kTRDStop=0x20000000, | |
120 | kESDpid=0x40000000, | |
121 | kTIME=0x80000000 | |
122 | }; | |
d0e92d9a | 123 | |
124 | private: | |
125 | char fCharge; // track charge | |
126 | float fPidProbElectron; // electron pid | |
127 | float fPidProbPion; // pion pid | |
128 | float fPidProbKaon; // kaon pid | |
129 | float fPidProbProton; // proton pid | |
130 | float fPidProbMuon; // muon pid | |
131 | unsigned int fTrackId; // track unique id | |
67427ff7 | 132 | |
133 | ||
d0e92d9a | 134 | AliFemtoThreeVector fP; // track momentum |
135 | float fPt; // transverse momenta | |
136 | AliFmPhysicalHelixD fHelix; // track helix | |
67427ff7 | 137 | |
138 | //alice stuff | |
139 | long int fFlags; //Reconsruction status flags | |
140 | int fLabel; //Track label | |
141 | float fImpactD; //impact parameter in xy plane | |
142 | float fImpactZ;//impacct parameter in z | |
143 | float fCdd,fCdz,fCzz;//covariance matrix of the impact parameters | |
144 | // ITS related track information | |
145 | float fITSchi2; // chi2 in the ITS | |
146 | int fITSncls; // number of clusters assigned in the ITS | |
147 | // TPC related track information | |
148 | float fTPCchi2; // chi2 in the TPC | |
149 | int fTPCncls; // number of clusters assigned in the TPC | |
150 | short fTPCnclsF; // number of findable clusters in the TPC | |
151 | short fTPCsignalN; // number of points used for dEdx | |
152 | float fTPCsignalS; // RMS of dEdx measurement | |
d0e92d9a | 153 | TBits fClusters; // Cluster per padrow map |
154 | TBits fShared; // Sharing per padrow map | |
67427ff7 | 155 | |
156 | /* Th stuff */ | |
157 | // Fab private : add mutable | |
158 | // mutable | |
d0e92d9a | 159 | AliFemtoHiddenInfo* fHiddenInfo; //! hidden info |
67427ff7 | 160 | /***/ |
161 | }; | |
162 | ||
163 | //inline const float* AliFemtoTrack::NSigma() const | |
164 | //{return &mNSigmaElectron;} // Fab private | |
165 | inline float AliFemtoTrack::PidProbElectron() const {return fPidProbElectron;} | |
166 | inline float AliFemtoTrack::PidProbPion() const {return fPidProbPion;} | |
167 | inline float AliFemtoTrack::PidProbKaon() const {return fPidProbKaon;} | |
168 | inline float AliFemtoTrack::PidProbProton() const {return fPidProbProton;} | |
169 | inline float AliFemtoTrack::PidProbMuon() const {return fPidProbMuon;} | |
170 | ||
171 | #endif |