]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoTrack.h
Adding V0 femtoscopy 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;
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
237inline float AliFemtoTrack::PidProbElectron() const {return fPidProbElectron;}
238inline float AliFemtoTrack::PidProbPion() const {return fPidProbPion;}
239inline float AliFemtoTrack::PidProbKaon() const {return fPidProbKaon;}
240inline float AliFemtoTrack::PidProbProton() const {return fPidProbProton;}
241inline float AliFemtoTrack::PidProbMuon() const {return fPidProbMuon;}
242
243#endif