5 #include "AliESDtrack.h"
6 #include "AliTOFT0maker.h"
8 #include "AliRsnMonitorTrack.h"
10 ClassImp(AliRsnMonitorTrack)
12 AliRsnMonitorTrack::AliRsnMonitorTrack() :
35 AliRsnMonitorTrack::AliRsnMonitorTrack(const AliRsnMonitorTrack& copy) :
37 fCutsPassed(copy.fCutsPassed),
41 fMother(copy.fMother),
42 fStatus(copy.fStatus),
43 fLength(copy.fLength),
44 fCharge(copy.fCharge),
47 fITSchi2(copy.fITSchi2),
48 fITSsignal(copy.fITSsignal),
49 fTPCcount(copy.fTPCcount),
50 fTPCchi2(copy.fTPCchi2),
51 fTPCsignal(copy.fTPCsignal),
52 fTOFsignal(copy.fTOFsignal)
60 for (k = 0; k < 2; k++) fDCA[k] = copy.fDCA[k];
61 for (k = 0; k < 6; k++) fITSmap[k] = copy.fITSmap[k];
62 for (k = 0; k < AliPID::kSPECIES; k++)
64 fITSnsigma[k] = copy.fITSnsigma[k];
65 fTPCnsigma[k] = copy.fTPCnsigma[k];
66 fTOFref [k] = copy.fTOFref [k];
67 fTOFsigma [k] = copy.fTOFsigma [k];
69 for (k = 0; k < 3; k++)
71 fPsim[k] = copy.fPsim[k];
72 fPrec[k] = copy.fPrec[k];
73 fPtpc[k] = copy.fPtpc[k];
77 //_____________________________________________________________________________________________
78 void AliRsnMonitorTrack::Reset()
81 // Generic reset method, to set all fields to meaningless values
97 for (k = 0; k < 2; k++) fDCA[k] = 1E10;
99 for (k = 0; k < 6; k++) fITSmap[k] = kFALSE;
109 for (k = 0; k < AliPID::kSPECIES; k++)
111 fITSnsigma[k] = 1E10;
112 fTPCnsigma[k] = 1E10;
114 fTOFsigma [k] = 1E10;
117 for (k = 0; k < 3; k++) fPsim[k] = fPrec[k] = fPtpc[k] = 0.0;
120 //__________________________________________________________________________________________________
121 Bool_t AliRsnMonitorTrack::AdoptMC(Int_t label, AliStack *stack)
124 // Get info from MC for a given track in the stack
127 if (!stack) return kFALSE;
129 Int_t nPart = stack->GetNtrack();
130 if (label < 0 || label > nPart)
132 AliError(Form("Label = %d -- MAX = %d", label, nPart));
136 TParticle *mc = stack->Particle(label);
137 if (!mc) return kFALSE;
140 fPDG = (Int_t)mc->GetPdgCode();
141 fMother = (Int_t)mc->GetFirstMother();
142 fPrim = (Bool_t)stack->IsPhysicalPrimary(label);
148 // assign mother (if any)
149 if (fMother >= 0 && fMother < nPart)
151 TParticle *m = stack->Particle(fMother);
152 if (m) fPDGM = (Int_t)TMath::Abs(m->GetPdgCode());