3 // Modified track class to be able to store cached quantities.
7 #include "AliEsdTrackExt.h"
9 #include "AliESDEvent.h"
11 //_________________________________________________________________________________________________
12 AliEsdTrackExt::AliEsdTrackExt(const AliESDtrack &t)
13 : AliESDtrack(t), fEmcEta(-10), fEmcPhi(-10), fNCrossedRows(-10), fChi2TPCConstrainedVsGlobal(-10)
17 const AliExternalTrackParam *outp = GetOuterParam();
18 if (outp&&IsEMCAL()) {
19 Double_t trkPos[3] = {0.,0.,0.};
20 if (outp->GetXYZ(trkPos)) {
21 TVector3 vec(trkPos[0],trkPos[1],trkPos[2]);
22 Double_t veta = vec.Eta();
23 Double_t vphi = vec.Phi();
25 vphi += 2*TMath::Pi();
31 fNCrossedRows = GetTPCCrossedRows();
33 const AliESDVertex* vertex = 0;
34 vertex = fESDEvent->GetPrimaryVertexTracks();
35 if (!vertex || !vertex->GetStatus())
36 vertex = fESDEvent->GetPrimaryVertexSPD();
38 fChi2TPCConstrainedVsGlobal = GetChi2TPCConstrainedVsGlobal(vertex);
39 fCacheChi2TPCConstrainedVsGlobalVertex = vertex;
43 //_________________________________________________________________________________________________
44 void AliEsdTrackExt::DeleteParams()
46 // Delete the unneeded params.
49 delete fTPCInner; fTPCInner = 0;
50 delete fHMPIDp; fHMPIDp = 0;
51 delete fFriendTrack; fFriendTrack = 0;
57 //_________________________________________________________________________________________________
58 void AliEsdTrackExt::MakeMiniTrack(Bool_t dall, Bool_t dtrp, Bool_t dmap, Bool_t dits,
59 Bool_t dtpc, Bool_t dtrd, Bool_t dtof, Bool_t dhmp)
61 // Make mini track depending on what should be reset.
66 delete fTPCInner; fTPCInner = 0;
68 delete fHMPIDp; fHMPIDp = 0;
69 delete fFriendTrack; fFriendTrack = 0;
74 fTPCClusterMap.Clear();
75 fTPCSharedMap.Clear();
78 // Reset ITS track related information
88 for (Int_t i=0;i<4;++i) fITSdEdxSamples[i] = 0.;
89 for (Int_t i=0;i<AliPID::kSPECIES;++i) fITSr[i] = 0;
90 for (Int_t i=0;i<12;++i) fITSModule[i] = -1;
93 // Reset TPC related track information
116 for (Int_t i=0;i<AliPID::kSPECIES;++i) fTPCr[i] = 0;
117 for (Int_t i=0;i<4;++i) fTPCPoints[i] = 0;
118 for (Int_t i=0; i<3;++i) fKinkIndexes[i] = 0;
119 for (Int_t i=0; i<3;++i) fV0Indexes[i] = 0;
120 delete fTPCdEdxInfo; fTPCdEdxInfo = 0;
123 // Reset TRD related track information
134 for (Int_t i=0;i<kTRDnPlanes;++i) fTRDTimBin[i] = 0;
135 for (Int_t i=0;i<AliPID::kSPECIES;++i) fTRDr[i] = 0;
141 // Reset TOF related track information
148 fTOFsignalToT = 99999;
149 fTOFsignalRaw = 99999;
155 for (Int_t i=0;i<AliPID::kSPECIES;++i) fTOFr[i] = 0;
156 for (Int_t i=0;i<3;++i) fTOFLabel[i] = -1;
157 for (Int_t i=0;i<10;++i) fTOFInfo[i] = 0;
158 for (Int_t i=0;i<AliPID::kSPECIES;++i) fTrackTime[i] = 0;
161 // Reset HMPID related track information
173 for (Int_t i=0;i<AliPID::kSPECIES;++i) fHMPIDr[i] = 0;
177 //_________________________________________________________________________________________________
178 void AliEsdTrackExt::Setup()
180 // Setup cache with stored variables.
182 fCacheNCrossedRows = fNCrossedRows;
184 const AliESDVertex* vertex = 0;
185 vertex = fESDEvent->GetPrimaryVertexTracks();
186 if (!vertex || !vertex->GetStatus())
187 vertex = fESDEvent->GetPrimaryVertexSPD();
189 fCacheChi2TPCConstrainedVsGlobal = fChi2TPCConstrainedVsGlobal;
190 fCacheChi2TPCConstrainedVsGlobalVertex = vertex;