3 // Modified track class to be able to store cached quantities.
7 #include "AliEsdTrackExt.h"
9 #include "AliESDEvent.h"
11 //_________________________________________________________________________________________________
12 AliEsdTrackExt::AliEsdTrackExt()
13 : AliESDtrack(), fEmcEta(-10), fEmcPhi(-10), fNCrossedRows(-10), fChi2TPCConstrainedVsGlobal(-10)
15 // Default constructor.
18 //_________________________________________________________________________________________________
19 AliEsdTrackExt::AliEsdTrackExt(const AliESDtrack &t)
20 : AliESDtrack(t), fEmcEta(-10), fEmcPhi(-10), fNCrossedRows(-10), fChi2TPCConstrainedVsGlobal(-10)
24 const AliExternalTrackParam *outp = GetOuterParam();
25 if (outp&&IsEMCAL()) {
26 Double_t trkPos[3] = {0.,0.,0.};
27 if (outp->GetXYZ(trkPos)) {
28 TVector3 vec(trkPos[0],trkPos[1],trkPos[2]);
29 Double_t veta = vec.Eta();
30 Double_t vphi = vec.Phi();
32 vphi += 2*TMath::Pi();
38 fNCrossedRows = GetTPCCrossedRows();
40 const AliESDVertex* vertex = 0;
41 vertex = fESDEvent->GetPrimaryVertexTracks();
42 if (!vertex || !vertex->GetStatus())
43 vertex = fESDEvent->GetPrimaryVertexSPD();
45 fChi2TPCConstrainedVsGlobal = GetChi2TPCConstrainedVsGlobal(vertex);
46 fCacheChi2TPCConstrainedVsGlobalVertex = vertex;
50 //_________________________________________________________________________________________________
51 void AliEsdTrackExt::DeleteParams()
53 // Delete the unneeded params.
56 delete fTPCInner; fTPCInner = 0;
57 delete fHMPIDp; fHMPIDp = 0;
58 delete fFriendTrack; fFriendTrack = 0;
64 //_________________________________________________________________________________________________
65 void AliEsdTrackExt::MakeMiniTrack(Bool_t dall, Bool_t dcon, Bool_t dtrp, Bool_t dmap,
66 Bool_t dits, Bool_t dtpc, Bool_t dtrd, Bool_t dtof,
69 // Make mini track depending on what should be reset.
72 fCp->ResetCovariance(1);
80 delete fTPCInner; fTPCInner = 0;
82 delete fHMPIDp; fHMPIDp = 0;
83 delete fFriendTrack; fFriendTrack = 0;
88 fTPCClusterMap.Clear();
89 fTPCSharedMap.Clear();
92 // Reset ITS track related information
102 for (Int_t i=0;i<4;++i) fITSdEdxSamples[i] = 0.;
103 for (Int_t i=0;i<AliPID::kSPECIES;++i) fITSr[i] = 0;
104 for (Int_t i=0;i<12;++i) fITSModule[i] = -1;
107 // Reset TPC related track information
130 for (Int_t i=0;i<AliPID::kSPECIES;++i) fTPCr[i] = 0;
131 for (Int_t i=0;i<4;++i) fTPCPoints[i] = 0;
132 for (Int_t i=0; i<3;++i) fKinkIndexes[i] = 0;
133 for (Int_t i=0; i<3;++i) fV0Indexes[i] = 0;
134 delete fTPCdEdxInfo; fTPCdEdxInfo = 0;
137 // Reset TRD related track information
148 for (Int_t i=0;i<kTRDnPlanes;++i) fTRDTimBin[i] = 0;
149 for (Int_t i=0;i<AliPID::kSPECIES;++i) fTRDr[i] = 0;
155 // Reset TOF related track information
162 fTOFsignalToT = 99999;
163 fTOFsignalRaw = 99999;
169 for (Int_t i=0;i<AliPID::kSPECIES;++i) fTOFr[i] = 0;
170 for (Int_t i=0;i<3;++i) fTOFLabel[i] = -1;
171 for (Int_t i=0;i<10;++i) fTOFInfo[i] = 0;
172 for (Int_t i=0;i<AliPID::kSPECIES;++i) fTrackTime[i] = 0;
175 // Reset HMPID related track information
187 for (Int_t i=0;i<AliPID::kSPECIES;++i) fHMPIDr[i] = 0;
191 //_________________________________________________________________________________________________
192 void AliEsdTrackExt::Setup()
194 // Setup cache with stored variables.
196 fCacheNCrossedRows = fNCrossedRows;
198 const AliESDVertex* vertex = 0;
199 vertex = fESDEvent->GetPrimaryVertexTracks();
200 if (!vertex || !vertex->GetStatus())
201 vertex = fESDEvent->GetPrimaryVertexSPD();
203 fCacheChi2TPCConstrainedVsGlobal = fChi2TPCConstrainedVsGlobal;
204 fCacheChi2TPCConstrainedVsGlobalVertex = vertex;