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++) {
63 fITSnsigma[k] = copy.fITSnsigma[k];
64 fTPCnsigma[k] = copy.fTPCnsigma[k];
65 fTOFref [k] = copy.fTOFref [k];
66 fTOFsigma [k] = copy.fTOFsigma [k];
68 for (k = 0; k < 3; k++) {
69 fPsim[k] = copy.fPsim[k];
70 fPrec[k] = copy.fPrec[k];
71 fPtpc[k] = copy.fPtpc[k];
75 //_____________________________________________________________________________________________
76 void AliRsnMonitorTrack::Reset()
79 // Generic reset method, to set all fields to meaningless values
95 for (k = 0; k < 2; k++) fDCA[k] = 1E10;
97 for (k = 0; k < 6; k++) fITSmap[k] = kFALSE;
107 for (k = 0; k < AliPID::kSPECIES; k++) {
108 fITSnsigma[k] = 1E10;
109 fTPCnsigma[k] = 1E10;
111 fTOFsigma [k] = 1E10;
114 for (k = 0; k < 3; k++) fPsim[k] = fPrec[k] = fPtpc[k] = 0.0;
117 //__________________________________________________________________________________________________
118 Bool_t AliRsnMonitorTrack::AdoptMC(Int_t label, AliStack *stack)
121 // Get info from MC for a given track in the stack
124 if (!stack) return kFALSE;
126 Int_t nPart = stack->GetNtrack();
127 if (label < 0 || label > nPart) {
128 AliError(Form("Label = %d -- MAX = %d", label, nPart));
132 TParticle *mc = stack->Particle(label);
133 if (!mc) return kFALSE;
136 fPDG = (Int_t)mc->GetPdgCode();
137 fMother = (Int_t)mc->GetFirstMother();
138 fPrim = (Bool_t)stack->IsPhysicalPrimary(label);
144 // assign mother (if any)
145 if (fMother >= 0 && fMother < nPart) {
146 TParticle *m = stack->Particle(fMother);
147 if (m) fPDGM = (Int_t)TMath::Abs(m->GetPdgCode());