]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnMonitorTrack.cxx
Correction of matching check
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnMonitorTrack.cxx
CommitLineData
6aecf4fd 1#include <TParticle.h>
2
3#include "AliLog.h"
4#include "AliStack.h"
5#include "AliESDtrack.h"
6#include "AliTOFT0maker.h"
7
8#include "AliRsnMonitorTrack.h"
9
10ClassImp(AliRsnMonitorTrack)
11
12AliRsnMonitorTrack::AliRsnMonitorTrack() :
2a1c7696 13 fCutsPassed(kFALSE),
14 fPrim(kFALSE),
15 fPDG(0),
16 fPDGM(0),
17 fMother(-1),
18 fStatus(0),
19 fLength(0.0),
20 fCharge(0),
21 fITSsa(kFALSE),
22 fTOFok(kFALSE),
23 fITSchi2(1E10),
24 fITSsignal(0.0),
25 fTPCcount(0),
26 fTPCchi2(1E10),
27 fTPCsignal(1E10),
28 fTOFsignal(0.0)
6aecf4fd 29{
30//
31// Unique constructor
32//
33}
34
35AliRsnMonitorTrack::AliRsnMonitorTrack(const AliRsnMonitorTrack& copy) :
2a1c7696 36 TObject(copy),
37 fCutsPassed(copy.fCutsPassed),
38 fPrim(copy.fPrim),
39 fPDG(copy.fPDG),
40 fPDGM(copy.fPDGM),
41 fMother(copy.fMother),
42 fStatus(copy.fStatus),
43 fLength(copy.fLength),
44 fCharge(copy.fCharge),
45 fITSsa(copy.fITSsa),
46 fTOFok(copy.fTOFok),
47 fITSchi2(copy.fITSchi2),
48 fITSsignal(copy.fITSsignal),
49 fTPCcount(copy.fTPCcount),
50 fTPCchi2(copy.fTPCchi2),
51 fTPCsignal(copy.fTPCsignal),
52 fTOFsignal(copy.fTOFsignal)
6aecf4fd 53{
54//
55// Copy constructor
56//
57
2a1c7696 58 Int_t k;
59
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];
67 }
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];
72 }
6aecf4fd 73}
74
75//_____________________________________________________________________________________________
76void AliRsnMonitorTrack::Reset()
77{
78//
79// Generic reset method, to set all fields to meaningless values
80//
2a1c7696 81
82 Int_t k;
83
84 fCutsPassed = kFALSE;
85 fITSsa = kFALSE;
86 fTOFok = kFALSE;
87 fPrim = kFALSE;
88 fPDG = 0;
89 fMother = -1;
90 fPDGM = 0;
91 fStatus = 0;
92 fLength = 0.0;
93 fCharge = 0;
94
95 for (k = 0; k < 2; k++) fDCA[k] = 1E10;
96
97 for (k = 0; k < 6; k++) fITSmap[k] = kFALSE;
98 fITSchi2 = 1E10;
99 fITSsignal = 0.0;
100
101 fTPCchi2 = 1E10;
102 fTPCsignal = 1E10;
103 fTPCcount = 0;
104
105 fTOFsignal = 1E10;
106
107 for (k = 0; k < AliPID::kSPECIES; k++) {
108 fITSnsigma[k] = 1E10;
109 fTPCnsigma[k] = 1E10;
110 fTOFref [k] = 1E10;
111 fTOFsigma [k] = 1E10;
112 }
113
114 for (k = 0; k < 3; k++) fPsim[k] = fPrec[k] = fPtpc[k] = 0.0;
6aecf4fd 115}
116
117//__________________________________________________________________________________________________
118Bool_t AliRsnMonitorTrack::AdoptMC(Int_t label, AliStack *stack)
119{
120//
121// Get info from MC for a given track in the stack
122//
123
2a1c7696 124 if (!stack) return kFALSE;
125
126 Int_t nPart = stack->GetNtrack();
127 if (label < 0 || label > nPart) {
128 AliError(Form("Label = %d -- MAX = %d", label, nPart));
129 return kFALSE;
130 }
131
132 TParticle *mc = stack->Particle(label);
133 if (!mc) return kFALSE;
134
135 // 'direct' data
136 fPDG = (Int_t)mc->GetPdgCode();
137 fMother = (Int_t)mc->GetFirstMother();
138 fPrim = (Bool_t)stack->IsPhysicalPrimary(label);
139 fPDGM = 0;
140 fPsim[0] = mc->Px();
141 fPsim[1] = mc->Py();
142 fPsim[2] = mc->Pz();
143
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());
148 }
149
150 return kTRUE;
6aecf4fd 151}