]>
Commit | Line | Data |
---|---|---|
76ce4b5b | 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 | /////////////////////////////////////////////////////////////////////////// | |
10 | ||
11 | #ifndef ALIFEMTOTRACK_H | |
12 | #define ALIFEMTOTRACK_H | |
13 | ||
14 | #include "AliFemtoTypes.h" | |
15 | #include "AliFmPhysicalHelixD.h" | |
16 | #include "TBits.h" | |
17 | /* Th stuff */ | |
18 | #include "AliFemtoHiddenInfo.h" | |
19 | /***/ | |
20 | ||
21 | #ifndef __NO_STAR_DEPENDENCE_ALLOWED__ | |
22 | class StEvent; | |
23 | class StTrack; | |
24 | class StMuDst; | |
25 | class StMuTrack; | |
26 | #endif | |
27 | ||
28 | class AliFemtoTrack{ | |
29 | public: | |
30 | AliFemtoTrack(); | |
31 | AliFemtoTrack(const AliFemtoTrack& aTrack);// copy constructor | |
32 | AliFemtoTrack& operator=(const AliFemtoTrack& aTrack); | |
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; | |
973a91f8 | 54 | int TrackId() const; |
76ce4b5b | 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 | float TPCsignal() const; | |
69 | short TPCsignalN() const; | |
70 | float TPCsignalS() const; | |
71 | ||
72 | //new PID | |
73 | float NSigmaTPCPi() const; | |
74 | float NSigmaTPCK() const; | |
75 | float NSigmaTPCP() const; | |
76 | float VTOF() const; | |
77 | float NSigmaTOFPi() const; | |
78 | float NSigmaTOFK() const; | |
79 | float NSigmaTOFP() const; | |
80 | ||
81 | ||
82 | float TOFpionTime() const; | |
83 | float TOFkaonTime() const; | |
84 | float TOFprotonTime() const; | |
85 | ||
973a91f8 | 86 | double XatDCA() const; |
87 | double YatDCA() const; | |
88 | double ZatDCA() const; | |
89 | ||
76ce4b5b | 90 | const TBits& TPCclusters() const; |
91 | const TBits& TPCsharing() const; | |
92 | ||
93 | void SetCharge(const short& s); | |
94 | void SetPidProbElectron(const float& x); | |
95 | void SetPidProbPion(const float& x); | |
96 | void SetPidProbKaon(const float& x); | |
97 | void SetPidProbProton(const float& x); | |
98 | void SetPidProbMuon(const float& x); | |
99 | void SetTofExpectedTimes(const float& tpi, const float& tkn, const float& tpr); | |
100 | ||
101 | void SetP(const AliFemtoThreeVector& p); | |
102 | void SetPt(const float& x); | |
103 | void SetHelix(const AliFmPhysicalHelixD& h); | |
973a91f8 | 104 | void SetTrackId(const int& s); |
76ce4b5b | 105 | void SetFlags(const long int& i); |
106 | void SetLabel(const int& i); | |
107 | void SetImpactD(const float& x); | |
108 | void SetImpactZ(const float& x); | |
109 | void SetCdd(const float& x); | |
110 | void SetCdz(const float& x); | |
111 | void SetCzz(const float& x); | |
112 | ||
113 | void SetITSchi2(const float& x); | |
114 | void SetITSncls(const int& i); | |
115 | void SetTPCchi2(const float& x); | |
116 | void SetTPCncls(const int& i); | |
117 | void SetTPCnclsF(const short& s); | |
118 | void SetTPCsignal(const float& s); | |
119 | void SetTPCsignalN(const short& s); | |
120 | void SetTPCsignalS(const float& x); | |
121 | ||
122 | //new PID | |
123 | void SetNSigmaTPCPi(const float& x); | |
124 | void SetNSigmaTPCK(const float& x); | |
125 | void SetNSigmaTPCP(const float& x); | |
126 | void SetVTOF(const float& x); | |
127 | void SetNSigmaTOFPi(const float& x); | |
128 | void SetNSigmaTOFK(const float& x); | |
129 | void SetNSigmaTOFP(const float& x); | |
130 | ||
131 | void SetTPCcluster(const short& aNBit, const Bool_t& aValue); | |
132 | void SetTPCshared(const short& aNBit, const Bool_t& aValue); | |
133 | ||
134 | void SetTPCClusterMap(const TBits& aBits); | |
135 | void SetTPCSharedMap(const TBits& aBits); | |
136 | ||
137 | void SetKinkIndexes(int points[3]); | |
138 | int KinkIndex(int aIndex) const; | |
139 | ||
140 | /* Th stuff */ | |
141 | void SetHiddenInfo(AliFemtoHiddenInfo* aHiddenInfo); | |
142 | bool ValidHiddenInfo() const; | |
143 | // Fab private : (official : const AliFemtoHiddenInfo* HiddenInfo() const; | |
144 | AliFemtoHiddenInfo* GetHiddenInfo() const; | |
145 | /***/ | |
146 | ||
147 | const AliFemtoThreeVector& NominalTpcExitPoint() const; | |
148 | const AliFemtoThreeVector& NominalTpcEntrancePoint() const; | |
149 | ||
150 | void SetNominalTPCEntrancePoint(const AliFemtoThreeVector& aXTPC); | |
151 | void SetNominalTPCEntrancePoint(double *aXTPC); | |
152 | ||
153 | void SetNominalTPCExitPoint(const AliFemtoThreeVector& aXTPC); | |
154 | void SetNominalTPCExitPoint(double *aXTPC); | |
155 | void SetSigmaToVertex(const float& Sigma); | |
156 | float SigmaToVertex() const; | |
973a91f8 | 157 | |
158 | void SetXatDCA(const double& x); | |
159 | void SetYatDCA(const double& x); | |
160 | void SetZatDCA(const double& x); | |
76ce4b5b | 161 | |
162 | //Alice stuff | |
163 | enum { | |
164 | kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008, | |
165 | kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080, | |
166 | kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800, | |
167 | kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000, | |
168 | kRICHpid=0x20000, | |
169 | kTRDbackup=0x80000, | |
170 | kTRDStop=0x20000000, | |
171 | kESDpid=0x40000000, | |
172 | kTIME=0x80000000 | |
173 | }; | |
174 | ||
175 | private: | |
176 | char fCharge; // track charge | |
177 | float fPidProbElectron; // electron pid | |
178 | float fPidProbPion; // pion pid | |
179 | float fPidProbKaon; // kaon pid | |
180 | float fPidProbProton; // proton pid | |
181 | float fPidProbMuon; // muon pid | |
973a91f8 | 182 | int fTrackId; // track unique id |
76ce4b5b | 183 | float fTofPionTime; // TOF time - pion expected time |
184 | float fTofKaonTime; // TOF time - kaon expected time | |
185 | float fTofProtonTime; // TOF time - proton expected time | |
186 | ||
187 | AliFemtoThreeVector fP; // track momentum | |
188 | float fPt; // transverse momenta | |
189 | AliFmPhysicalHelixD fHelix; // track helix | |
190 | //alice stuff | |
191 | long int fFlags; //Reconsruction status flags | |
192 | int fLabel; //Track label | |
193 | float fImpactD; //impact parameter in xy plane | |
194 | float fImpactZ;//impacct parameter in z | |
195 | float fCdd,fCdz,fCzz;//covariance matrix of the impact parameters | |
196 | // ITS related track information | |
197 | float fITSchi2; // chi2 in the ITS | |
198 | int fITSncls; // number of clusters assigned in the ITS | |
199 | // TPC related track information | |
200 | float fTPCchi2; // chi2 in the TPC | |
201 | int fTPCncls; // number of clusters assigned in the TPC | |
202 | short fTPCnclsF; // number of findable clusters in the TPC | |
203 | float fTPCsignal; // dEdx TPC value | |
204 | short fTPCsignalN; // number of points used for dEdx | |
205 | float fTPCsignalS; // RMS of dEdx measurement | |
206 | ||
207 | float fVTOF; // v=length/TOF | |
208 | float fNSigmaTPCPi; // nsigma TPC for pion | |
209 | float fNSigmaTPCK; // nsigma TPC for K | |
210 | float fNSigmaTPCP; // nsigma TPC for P | |
211 | float fNSigmaTOFPi; // nsigma TPC for pion | |
212 | float fNSigmaTOFK; // nsigma TPC for K | |
213 | float fNSigmaTOFP; // nsigma TPC for P | |
214 | ||
215 | float fSigmaToVertex; // Distance from track to vertex in sigmas | |
216 | TBits fClusters; // Cluster per padrow map | |
217 | TBits fShared; // Sharing per padrow map | |
218 | AliFemtoThreeVector fNominalTpcEntrancePoint; // Nominal track entrance point into TPC | |
219 | AliFemtoThreeVector fNominalTpcExitPoint; // Nominal track exit point from TPC | |
220 | ||
973a91f8 | 221 | |
222 | ||
76ce4b5b | 223 | int fKinkIndexes[3]; // Kink Index list |
973a91f8 | 224 | |
225 | double fXatDCA; | |
226 | double fYatDCA; | |
227 | double fZatDCA; | |
76ce4b5b | 228 | /* Th stuff */ |
229 | // Fab private : add mutable | |
230 | // mutable | |
231 | AliFemtoHiddenInfo* fHiddenInfo; //! hidden info | |
232 | /***/ | |
233 | }; | |
234 | ||
235 | //inline const float* AliFemtoTrack::NSigma() const | |
236 | //{return &mNSigmaElectron;} // Fab private | |
237 | inline float AliFemtoTrack::PidProbElectron() const {return fPidProbElectron;} | |
238 | inline float AliFemtoTrack::PidProbPion() const {return fPidProbPion;} | |
239 | inline float AliFemtoTrack::PidProbKaon() const {return fPidProbKaon;} | |
240 | inline float AliFemtoTrack::PidProbProton() const {return fPidProbProton;} | |
241 | inline float AliFemtoTrack::PidProbMuon() const {return fPidProbMuon;} | |
242 | ||
243 | #endif |