1 ///////////////////////////////////////////////////////////////////////////
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. //
9 ///////////////////////////////////////////////////////////////////////////
11 #ifndef ALIFEMTOTRACK_H
12 #define ALIFEMTOTRACK_H
14 #include "AliFemtoTypes.h"
15 #include "AliFmPhysicalHelixD.h"
18 #include "AliFemtoHiddenInfo.h"
21 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
31 AliFemtoTrack(const AliFemtoTrack& aTrack);// copy constructor
32 AliFemtoTrack& operator=(const AliFemtoTrack& aTrack);
33 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
35 //AliFemtoTrack(const StTrack*, AliFemtoThreeVector); // c-tor from StTrack of STAR DSTs
36 //AliFemtoTrack(const StMuDst* dst, const StMuTrack* t);
38 //AliFemtoTrack(const StEvent*, const StTrack*);
42 // ~AliFemtoTrack(){/* no-op*/};
45 float PidProbElectron() const;
46 float PidProbPion() const;
47 float PidProbKaon() const;
48 float PidProbProton() const;
49 float PidProbMuon() const;
51 AliFemtoThreeVector P() const;
53 const AliFmPhysicalHelixD& Helix() const;
54 short TrackId() const;
55 long int Flags() const;
63 float ITSchi2() const;
65 float TPCchi2() const;
67 short TPCnclsF() const;
68 short TPCsignalN() const;
69 float TPCsignalS() const;
71 const TBits& TPCclusters() const;
72 const TBits& TPCsharing() const;
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);
81 void SetP(const AliFemtoThreeVector&);
82 void SetPt(const float& x);
83 void SetHelix(const AliFmPhysicalHelixD&);
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);
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);
101 void SetTPCcluster(const short& aNBit, const Bool_t& aValue);
102 void SetTPCshared(const short& aNBit, const Bool_t& aValue);
105 void SetHiddenInfo(AliFemtoHiddenInfo* aHiddenInfo);
106 bool ValidHiddenInfo() const;
107 // Fab private : (official : const AliFemtoHiddenInfo* HiddenInfo() const;
108 AliFemtoHiddenInfo* GetHiddenInfo() const;
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,
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
134 AliFemtoThreeVector fP; // track momentum
135 float fPt; // transverse momenta
136 AliFmPhysicalHelixD fHelix; // track helix
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
153 TBits fClusters; // Cluster per padrow map
154 TBits fShared; // Sharing per padrow map
157 // Fab private : add mutable
159 AliFemtoHiddenInfo* fHiddenInfo; //! hidden info
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;}