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