1 /***************************************************************************
5 * Author: Frank Laue, Ohio State, laue@mps.ohio-state.edu
6 ***************************************************************************
8 * Description: part of STAR HBT Framework: AliFemtoMaker package
9 * Implementation of methods
11 ***************************************************************************
13 * Revision 1.3 2007-04-03 16:00:09 mchojnacki
14 * Changes to iprove memory managing
16 * Revision 1.2 2007/03/08 14:58:04 mchojnacki
17 * adding some alice stuff
19 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
20 * First version on CVS
22 * Revision 1.19 2005/07/15 17:41:43 kopytin
23 * initialized fHiddenInfo in AliFemtoTrack() to null
25 * Revision 1.18 2005/07/10 02:17:21 chajecki
26 * Ftpc (Eeat+West) hits included in nHits()
28 * Revision 1.17 2005/06/17 21:41:12 chajecki
30 * 1. wrong value of mNHits set in one of the constructors
31 * AliFemtoTrack::AliFemtoTrack(const StTrack* ST, AliFemtoThreeVector PrimaryVertex)
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
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
42 * Revision 1.15 2003/01/31 19:57:15 magestro
43 * Cleared up simple compiler warnings on i386_linux24
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
48 * Revision 1.13 2002/03/21 18:49:31 laue
49 * updated for new MuDst reader
51 * Revision 1.12 2002/02/04 18:58:33 laue
52 * *** empty log message ***
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
57 * Revision 1.4 2001/06/21 19:15:48 laue
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
71 * Revision 1.3 2001/05/25 23:23:59 lisa
72 * Added in AliFemtoKink stuff
75 ****************************************************************************/
77 #include "Infrastructure/AliFemtoTrack.h"
78 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
80 #include "StEvent/StEnumerations.h"
81 #include "Infrastructure/AliFemtoAihongPid.h"
82 #include "StEventUtilities/StuProbabilityPidAlgorithm.h"
86 #include "SystemOfUnits.h" // has "tesla" in it
87 //#include "AliFemtoParticleTypes.h"
88 //#include "Infrastructure/AliFemtoTTreeEvent.h"
89 //#include "Infrastructure/AliFemtoTTreeTrack.h"
91 AliFemtoTrack::AliFemtoTrack():
111 // cout << "Created track " << this << endl;
115 AliFemtoTrack::AliFemtoTrack(const AliFemtoTrack& t)
116 { // copy constructor
118 fPidProbElectron = t.fPidProbElectron;
119 fPidProbPion = t.fPidProbPion;
120 fPidProbKaon = t.fPidProbKaon;
121 fPidProbProton = t.fPidProbProton;
122 fPidProbMuon=t.fPidProbMuon;
126 fTrackId = t.fTrackId;
138 fTPCnclsF=t.fTPCnclsF;
139 fTPCsignalN=t.fTPCsignalN;
140 fTPCsignalS=t.fTPCsignalS;
141 fClusters=t.fClusters;
143 if (t.ValidHiddenInfo())
144 fHiddenInfo = t.getHiddenInfo()->clone();
147 // cout << "Created track " << this << endl;
150 void AliFemtoTrack::SetCharge(const short& ch){fCharge=ch;}
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;}
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;}
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;}
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;}
202 AliFemtoTrack::~AliFemtoTrack()
206 // cout << "Deleted track " << this << endl;
209 const TBits& AliFemtoTrack::TPCclusters() const {return fClusters;}
210 const TBits& AliFemtoTrack::TPCsharing() const {return fShared;}
212 void AliFemtoTrack::SetTPCcluster(const short& aNBit, const Bool_t& aValue)
214 fClusters.SetBitNumber(aNBit, aValue);
217 void AliFemtoTrack::SetTPCshared(const short& aNBit, const Bool_t& aValue)
219 fShared.SetBitNumber(aNBit, aValue);