]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoTrack.h
Initial check-in of the model classes
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Infrastructure / AliFemtoTrack.h
1 /***************************************************************************
2  *
3  * $Id$
4  *
5  * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
6  ***************************************************************************
7  *
8  * Description: part of STAR HBT Framework: AliFemtoMaker package
9  *    Intermediate format for particle.  This is built from the
10  *    input particle format (e.g. StTrack of StEvent) and presented to
11  *    the Analyses for ParticleCuts.
12  *
13  ***************************************************************************
14  *  ... Lots of stuff deleted here ...
15  **************************************************************************/
16
17 #ifndef AliFemtoTrack_hh
18 #define AliFemtoTrack_hh
19
20 #include "Infrastructure/AliFemtoTypes.h"
21 #include "AliFmPhysicalHelixD.h"
22 #include "TBits.h"
23 /* Th stuff */
24 #include "Base/AliFemtoHiddenInfo.h"
25 /***/
26
27 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
28 class StEvent;
29 class StTrack;
30 class StMuDst;
31 class StMuTrack;
32 #endif
33
34 class AliFemtoTrack{
35 public:
36   AliFemtoTrack();
37   AliFemtoTrack(const AliFemtoTrack&);// copy constructor
38   AliFemtoTrack& operator=(const AliFemtoTrack& aTrack);
39 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
40 #ifdef __ROOT__
41  //AliFemtoTrack(const StTrack*, AliFemtoThreeVector);   // c-tor from StTrack of STAR DSTs
42   //AliFemtoTrack(const StMuDst* dst, const StMuTrack* t);
43 #endif
44   //AliFemtoTrack(const StEvent*, const StTrack*);
45 #endif
46
47   ~AliFemtoTrack();
48 //    ~AliFemtoTrack(){/* no-op*/};
49
50   short Charge() const;
51   float PidProbElectron() const;
52   float PidProbPion() const;
53   float PidProbKaon() const;
54   float PidProbProton() const;
55   float PidProbMuon() const;
56   
57   AliFemtoThreeVector P() const;
58   float Pt() const;
59   const AliFmPhysicalHelixD& Helix() const;
60   short TrackId() const;
61   long int Flags() const;
62   int Label()const;
63   float ImpactD()const;
64   float ImpactZ()const;
65   float Cdd() const;
66   float Cdz() const;
67   float Czz() const; 
68   
69   float ITSchi2() const;    
70   int   ITSncls() const;     
71   float TPCchi2() const;       
72   int   TPCncls() const;       
73   short TPCnclsF() const;      
74   short TPCsignalN() const;    
75   float TPCsignalS() const;   
76
77   const TBits& TPCclusters() const;
78   const TBits& TPCsharing()  const;
79   
80   void SetCharge(const short&);
81   void SetPidProbElectron(const float&);
82   void SetPidProbPion(const float&);
83   void SetPidProbKaon(const float&);
84   void SetPidProbProton(const float&);
85   void SetPidProbMuon(const float&);
86    
87   void SetP(const AliFemtoThreeVector&);
88   void SetPt(const float&);
89   void SetHelix(const AliFmPhysicalHelixD&);
90   void SetTrackId(const short&);
91   void SetFlags(const long int&);
92   void SetLabel(const int&);
93   void SetImpactD(const float&);
94   void SetImpactZ(const float&);
95   void SetCdd(const float&);
96   void SetCdz(const float&);
97   void SetCzz(const float&);
98   
99   void SetITSchi2(const float&);    
100   void SetITSncls(const int&);     
101   void SetTPCchi2(const float&);       
102   void SetTPCncls(const int&);       
103   void SetTPCnclsF(const short&);      
104   void SetTPCsignalN(const short&);    
105   void SetTPCsignalS(const float&);   
106
107   void SetTPCcluster(const short& aNBit, const Bool_t& aValue);
108   void SetTPCshared(const short& aNBit, const Bool_t& aValue);
109
110   /* Th stuff */
111   void SetHiddenInfo(AliFemtoHiddenInfo* aHiddenInfo);
112   bool ValidHiddenInfo() const;
113   // Fab private : (official : const AliFemtoHiddenInfo* HiddenInfo() const;
114   AliFemtoHiddenInfo* getHiddenInfo() const;
115   /***/
116   
117   //Alice stuff
118    enum {
119     kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
120     kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
121     kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
122     kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
123     kRICHpid=0x20000,
124     kTRDbackup=0x80000,
125     kTRDStop=0x20000000,
126     kESDpid=0x40000000,
127     kTIME=0x80000000
128   };
129
130 private:
131   char fCharge;
132   float fPidProbElectron; // new
133   float fPidProbPion; // new
134   float fPidProbKaon; // new
135   float fPidProbProton; // new
136   float fPidProbMuon; //new 
137   unsigned int fTrackId;
138
139
140   AliFemtoThreeVector fP;
141   float fPt;
142   AliFmPhysicalHelixD fHelix;
143
144   //alice stuff
145   long int fFlags; //Reconsruction status flags
146   int fLabel; //Track label  
147   float fImpactD; //impact parameter in xy plane
148   float fImpactZ;//impacct parameter in z
149   float fCdd,fCdz,fCzz;//covariance matrix of the impact parameters
150   // ITS related track information
151   float fITSchi2;        // chi2 in the ITS
152   int   fITSncls;        // number of clusters assigned in the ITS
153   // TPC related track information
154   float  fTPCchi2;       // chi2 in the TPC
155   int    fTPCncls;       // number of clusters assigned in the TPC
156   short fTPCnclsF;      // number of findable clusters in the TPC
157   short fTPCsignalN;    // number of points used for dEdx
158   float fTPCsignalS;    // RMS of dEdx measurement
159   TBits fClusters;
160   TBits fShared;
161   
162   /* Th stuff */
163   // Fab private : add mutable
164   //  mutable 
165   AliFemtoHiddenInfo* fHiddenInfo; //!
166   /***/
167 };
168
169 //inline const float* AliFemtoTrack::NSigma() const 
170 //{return &mNSigmaElectron;} // Fab private 
171 inline float AliFemtoTrack::PidProbElectron() const {return fPidProbElectron;}
172 inline float AliFemtoTrack::PidProbPion() const {return fPidProbPion;}
173 inline float AliFemtoTrack::PidProbKaon() const {return fPidProbKaon;}
174 inline float AliFemtoTrack::PidProbProton() const {return fPidProbProton;}
175 inline float AliFemtoTrack::PidProbMuon() const {return fPidProbMuon;}
176
177 #endif