]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoTrack.cxx
This commit was generated by cvs2svn to compensate for changes in r18145,
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Infrastructure / AliFemtoTrack.cxx
1 /***************************************************************************
2  *
3  * $Id$
4  *
5  * Author: Frank Laue, Ohio State, laue@mps.ohio-state.edu
6  ***************************************************************************
7  *
8  * Description: part of STAR HBT Framework: AliFemtoMaker package
9  * Implementation of methods
10  *
11  ***************************************************************************
12  * $Log$
13  * Revision 1.3  2007-04-03 16:00:09  mchojnacki
14  * Changes to iprove memory managing
15  *
16  * Revision 1.2  2007/03/08 14:58:04  mchojnacki
17  * adding some alice stuff
18  *
19  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
20  * First version on CVS
21  *
22  * Revision 1.19  2005/07/15 17:41:43  kopytin
23  * initialized fHiddenInfo in AliFemtoTrack() to null
24  *
25  * Revision 1.18  2005/07/10 02:17:21  chajecki
26  * Ftpc (Eeat+West) hits included in nHits()
27  *
28  * Revision 1.17  2005/06/17 21:41:12  chajecki
29  * Two bugs fixed:
30  * 1. wrong value of mNHits set in one of the constructors
31  * AliFemtoTrack::AliFemtoTrack(const StTrack* ST, AliFemtoThreeVector PrimaryVertex)
32  *
33  * 2. since year 4 the StMuTrack::nHits() returns the total number of hits.
34  * We're interested in TPC hits only so this value can be taken by
35  *  StMuTrack::topologyMap().numberOfHits(kTpcId);
36  * This change is backwards compatible so the code should work also
37  * for data <=Y3
38  *
39  * Revision 1.16  2003/03/18 14:41:48  kisiel
40  * Bugfix update for the theoretical part of the code. Reverts the changes to the Lednicky weight calculator, as the previuos one had problems with strong interaction
41  *
42  * Revision 1.15  2003/01/31 19:57:15  magestro
43  * Cleared up simple compiler warnings on i386_linux24
44  *
45  * Revision 1.14  2003/01/21 17:26:33  magestro
46  * Added condition to globalTrack() call so GlobalTracks branch in MuDst can be disabled
47  *
48  * Revision 1.13  2002/03/21 18:49:31  laue
49  * updated for new MuDst reader
50  *
51  * Revision 1.12  2002/02/04 18:58:33  laue
52  * *** empty log message ***
53  *
54  * Revision 1.11  2001/12/14 23:11:30  fretiere
55  * Add class HitMergingCut. Add class fabricesPairCut = HitMerginCut + pair purity cuts. Add TpcLocalTransform function which convert to local tpc coord (not pretty). Modify AliFemtoTrack, AliFemtoParticle, AliFemtoHiddenInfo, AliFemtoPair to handle the hit information and cope with my code
56  *
57  * Revision 1.4  2001/06/21 19:15:48  laue
58  * Modified fiels:
59  *   CTH.h : new constructor added
60  *   AliFemtoEvent, AliFemtoKink, AliFemtoTrack : constructors from the persistent
61  *                                   (TTree) classes added
62  *   AliFemtoLikeSignAnalysis : minor changes, for debugging
63  *   AliFemtoTypes: split into different files
64  * Added files: for the new TTree muDst's
65  *   StExceptions.cxx StExceptions.h AliFemtoEnumeration.h
66  *   AliFemtoHelix.h AliFemtoHisto.h AliFemtoString.h AliFemtoTFile.h
67  *   AliFemtoTTreeEvent.cxx AliFemtoTTreeEvent.h AliFemtoTTreeKink.cxx
68  *   AliFemtoTTreeKink.h AliFemtoTTreeTrack.cxx AliFemtoTTreeTrack.h
69  *   AliFemtoTTreeV0.cxx AliFemtoTTreeV0.h AliFemtoVector.h
70  *
71  * Revision 1.3  2001/05/25 23:23:59  lisa
72  * Added in AliFemtoKink stuff
73  *
74  *
75  ****************************************************************************/
76
77 #include "Infrastructure/AliFemtoTrack.h" 
78 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
79 #ifdef __ROOT__
80 #include "StEvent/StEnumerations.h"
81 #include "Infrastructure/AliFemtoAihongPid.h"
82 #include "StEventUtilities/StuProbabilityPidAlgorithm.h"
83 #endif
84 #endif
85
86 #include "SystemOfUnits.h"   // has "tesla" in it
87 //#include "AliFemtoParticleTypes.h"
88 //#include "Infrastructure/AliFemtoTTreeEvent.h" 
89 //#include "Infrastructure/AliFemtoTTreeTrack.h" 
90
91 AliFemtoTrack::AliFemtoTrack():
92   fTrackId(0),
93   fFlags(0),
94   fLabel(0),
95   fImpactD(0),
96   fImpactZ(0),
97   fCdd(0),
98   fCdz(0),
99   fCzz(0),
100   fITSchi2(0),       
101   fITSncls(0),        
102   fTPCchi2(0),       
103   fTPCncls(0),       
104   fTPCnclsF(0),      
105   fTPCsignalN(0),    
106   fTPCsignalS(0),
107   fClusters(159),
108   fShared(159)
109 {
110   fHiddenInfo = NULL;
111   //  cout << "Created track " << this << endl;
112 }
113
114
115 AliFemtoTrack::AliFemtoTrack(const AliFemtoTrack& t)
116  { // copy constructor
117   fCharge = t.fCharge;
118   fPidProbElectron = t.fPidProbElectron;
119   fPidProbPion = t.fPidProbPion;
120   fPidProbKaon = t.fPidProbKaon;
121   fPidProbProton = t.fPidProbProton;
122   fPidProbMuon=t.fPidProbMuon;
123   fP = t.fP;
124   fPt = t.fPt;
125   fHelix = t.fHelix;
126   fTrackId = t.fTrackId;
127   fFlags=t.fFlags;
128   fLabel=t.fLabel;
129   fImpactD=t.fImpactD;
130   fImpactZ=t.fImpactZ;
131   fCdd=t.fCdd;
132   fCdz=t.fCdz;
133   fCzz=t.fCzz;
134   fITSchi2=t.fITSchi2;       
135   fITSncls=t.fITSncls;        
136   fTPCchi2=t.fTPCchi2;       
137   fTPCncls=t.fTPCncls;       
138   fTPCnclsF=t.fTPCnclsF;      
139   fTPCsignalN=t.fTPCsignalN;    
140   fTPCsignalS=t.fTPCsignalS;  
141   fClusters=t.fClusters;
142   fShared=t.fShared;
143   if (t.ValidHiddenInfo())
144     fHiddenInfo = t.getHiddenInfo()->clone();
145   else 
146     fHiddenInfo = NULL;
147   //  cout << "Created track " << this << endl;
148 };
149
150 void AliFemtoTrack::SetCharge(const short& ch){fCharge=ch;}
151
152 void AliFemtoTrack::SetPidProbElectron(const float& x){fPidProbElectron = x;}
153 void AliFemtoTrack::SetPidProbPion(const float& x){fPidProbPion = x;}
154 void AliFemtoTrack::SetPidProbKaon(const float& x){fPidProbKaon = x;}
155 void AliFemtoTrack::SetPidProbProton(const float& x){fPidProbProton = x;}
156 void AliFemtoTrack::SetPidProbMuon(const float& x){fPidProbMuon = x;}
157  
158 void AliFemtoTrack::SetP(const AliFemtoThreeVector& p){fP = p;}
159 void AliFemtoTrack::SetPt(const float& pt){fPt = pt;} 
160 void AliFemtoTrack::SetHelix(const AliFmPhysicalHelixD& h){fHelix = h;}
161 void AliFemtoTrack::SetTrackId(const short & id) { fTrackId=id;}
162 void AliFemtoTrack::SetFlags(const long int &flags) {fFlags=flags;}
163 void AliFemtoTrack::SetLabel(const int &label) {fLabel=label;}
164 void AliFemtoTrack::SetImpactD(const float& ImpactD){fImpactD=ImpactD;}
165 void AliFemtoTrack::SetImpactZ(const float& ImpactZ){fImpactZ=ImpactZ;}
166 void AliFemtoTrack::SetCdd(const float& Cdd){fCdd=Cdd;}
167 void AliFemtoTrack::SetCdz(const float& Cdz){fCdz=Cdz;}
168 void AliFemtoTrack::SetCzz(const float& Czz){fCzz=Czz;}
169 void AliFemtoTrack::SetITSchi2(const float& ITSchi2){fITSchi2=ITSchi2;}    
170 void AliFemtoTrack::SetITSncls(const int& ITSncls){fITSncls=ITSncls;}     
171 void AliFemtoTrack::SetTPCchi2(const float& TPCchi2){fTPCchi2=TPCchi2;}       
172 void AliFemtoTrack::SetTPCncls(const int& TPCncls){fTPCncls=TPCncls;}       
173 void AliFemtoTrack::SetTPCnclsF(const short& TPCnclsF){fTPCnclsF=TPCnclsF;}      
174 void AliFemtoTrack::SetTPCsignalN(const short& TPCsignalN){fTPCsignalN=TPCsignalN;}    
175 void AliFemtoTrack::SetTPCsignalS(const float& TPCsignalS){fTPCsignalS=TPCsignalS;} 
176
177
178 short AliFemtoTrack::Charge() const {return fCharge;}  
179 AliFemtoThreeVector AliFemtoTrack::P() const {return fP;}
180 float AliFemtoTrack::Pt() const {return fPt;}              
181 const AliFmPhysicalHelixD& AliFemtoTrack::Helix() const {return fHelix;}
182 short AliFemtoTrack::TrackId() const { return fTrackId; }
183 long int AliFemtoTrack::Flags() const {return fFlags;}
184 int AliFemtoTrack::Label()const {return fLabel;}
185 float AliFemtoTrack::ImpactD()const{return fImpactD;}
186 float AliFemtoTrack::ImpactZ()const{return fImpactZ;}
187 float AliFemtoTrack::Cdd() const{return fCdd;}
188 float AliFemtoTrack::Cdz() const{return fCdz;}
189 float AliFemtoTrack::Czz() const{return fCzz;} 
190 float AliFemtoTrack::ITSchi2() const{return fITSchi2;}    
191 int   AliFemtoTrack::ITSncls() const{return fITSncls;}     
192 float AliFemtoTrack::TPCchi2() const{return fTPCchi2;}       
193 int   AliFemtoTrack::TPCncls() const{return fTPCncls;}       
194 short AliFemtoTrack::TPCnclsF() const{return fTPCnclsF;}      
195 short AliFemtoTrack::TPCsignalN() const{return fTPCsignalN;}    
196 float AliFemtoTrack::TPCsignalS() const{return fTPCsignalS;} 
197
198 void AliFemtoTrack::SetHiddenInfo(AliFemtoHiddenInfo* aHiddenInfo) {fHiddenInfo=aHiddenInfo;}
199 bool AliFemtoTrack::ValidHiddenInfo() const { if (fHiddenInfo) return true; else return false; }
200 AliFemtoHiddenInfo* AliFemtoTrack::getHiddenInfo() const {return fHiddenInfo;}
201   
202 AliFemtoTrack::~AliFemtoTrack()
203 {
204   if (fHiddenInfo)
205     delete fHiddenInfo;
206   //  cout << "Deleted track " << this << endl;
207 }
208
209 const TBits& AliFemtoTrack::TPCclusters() const {return fClusters;}
210 const TBits& AliFemtoTrack::TPCsharing()  const {return fShared;}
211
212 void AliFemtoTrack::SetTPCcluster(const short& aNBit, const Bool_t& aValue)
213 {
214   fClusters.SetBitNumber(aNBit, aValue);
215 }
216
217 void AliFemtoTrack::SetTPCshared(const short& aNBit, const Bool_t& aValue)
218 {
219   fShared.SetBitNumber(aNBit, aValue);
220 }
221