]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/AliFemtoTrack.h
Pad size less then cell size + ideal geom in v2
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoTrack.h
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;
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   
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);
80    
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);
92   
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);   
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;
108   AliFemtoHiddenInfo* GetHiddenInfo() const;
109   /***/
110   
111   //Alice stuff
112   enum {
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   };
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
132
133
134   AliFemtoThreeVector fP; // track momentum
135   float fPt;              // transverse momenta
136   AliFmPhysicalHelixD fHelix; // track helix
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
153   TBits fClusters;      // Cluster per padrow map
154   TBits fShared;        // Sharing per padrow map
155   
156   /* Th stuff */
157   // Fab private : add mutable
158   //  mutable 
159   AliFemtoHiddenInfo* fHiddenInfo; //! hidden info
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