5 #include "AliESDtrack.h"
6 #include "AliTOFT0maker.h"
8 #include "AliRsnMonitorTrack.h"
10 ClassImp(AliRsnMonitorTrack)
12 AliRsnMonitorTrack::AliRsnMonitorTrack() :
36 for (k = 0; k < 2; k++) fDCA[k] = 0.0;
37 for (k = 0; k < 6; k++) fITSmap[k] = 0;
38 for (k = 0; k < AliPID::kSPECIES; k++) {
44 for (k = 0; k < 3; k++) {
51 AliRsnMonitorTrack::AliRsnMonitorTrack(const AliRsnMonitorTrack& copy) :
53 fCutsPassed(copy.fCutsPassed),
57 fMother(copy.fMother),
58 fStatus(copy.fStatus),
59 fLength(copy.fLength),
60 fCharge(copy.fCharge),
63 fITSchi2(copy.fITSchi2),
64 fITSsignal(copy.fITSsignal),
65 fTPCcount(copy.fTPCcount),
66 fTPCchi2(copy.fTPCchi2),
67 fTPCsignal(copy.fTPCsignal),
68 fTOFsignal(copy.fTOFsignal)
76 for (k = 0; k < 2; k++) fDCA[k] = copy.fDCA[k];
77 for (k = 0; k < 6; k++) fITSmap[k] = copy.fITSmap[k];
78 for (k = 0; k < AliPID::kSPECIES; k++) {
79 fITSnsigma[k] = copy.fITSnsigma[k];
80 fTPCnsigma[k] = copy.fTPCnsigma[k];
81 fTOFref [k] = copy.fTOFref [k];
82 fTOFsigma [k] = copy.fTOFsigma [k];
84 for (k = 0; k < 3; k++) {
85 fPsim[k] = copy.fPsim[k];
86 fPrec[k] = copy.fPrec[k];
87 fPtpc[k] = copy.fPtpc[k];
91 //_____________________________________________________________________________________________
92 void AliRsnMonitorTrack::Reset()
95 // Generic reset method, to set all fields to meaningless values
100 fCutsPassed = kFALSE;
111 for (k = 0; k < 2; k++) fDCA[k] = 1E10;
113 for (k = 0; k < 6; k++) fITSmap[k] = kFALSE;
123 for (k = 0; k < AliPID::kSPECIES; k++) {
124 fITSnsigma[k] = 1E10;
125 fTPCnsigma[k] = 1E10;
127 fTOFsigma [k] = 1E10;
130 for (k = 0; k < 3; k++) fPsim[k] = fPrec[k] = fPtpc[k] = 0.0;
133 //__________________________________________________________________________________________________
134 Bool_t AliRsnMonitorTrack::AdoptMC(Int_t label, AliStack *stack)
137 // Get info from MC for a given track in the stack
140 if (!stack) return kFALSE;
142 Int_t nPart = stack->GetNtrack();
143 if (label < 0 || label > nPart) {
144 AliError(Form("Label = %d -- MAX = %d", label, nPart));
148 TParticle *mc = stack->Particle(label);
149 if (!mc) return kFALSE;
152 fPDG = (Int_t)mc->GetPdgCode();
153 fMother = (Int_t)mc->GetFirstMother();
154 fPrim = (Bool_t)stack->IsPhysicalPrimary(label);
160 // assign mother (if any)
161 if (fMother >= 0 && fMother < nPart) {
162 TParticle *m = stack->Particle(fMother);
163 if (m) fPDGM = (Int_t)TMath::Abs(m->GetPdgCode());