]>
Commit | Line | Data |
---|---|---|
48a73d39 | 1 | #include "AliAnalysisParticle.h" |
2 | #include "TParticle.h" | |
3 | #include "AliPID.h" | |
4 | #include "TDatabasePDG.h" | |
5 | #include "TParticlePDG.h" | |
6 | #include "TMath.h" | |
7 | ||
8 | ClassImp(AliAnalysisParticle) | |
9 | ||
10 | //___________________________________________________________ | |
11 | ||
12 | TLorentzVector AliAnalysisParticle::fgLorentzVector; | |
13 | ||
14 | //___________________________________________________________ | |
15 | ||
16 | Double_t | |
17 | AliAnalysisParticle::GetY() const | |
18 | { | |
19 | ||
20 | fgLorentzVector.SetPtEtaPhiM(fPt, fEta, fPhi, GetMass()); | |
21 | return fgLorentzVector.Rapidity(); | |
22 | } | |
23 | ||
24 | //___________________________________________________________ | |
25 | ||
26 | Float_t | |
27 | AliAnalysisParticle::GetSign() const | |
28 | { | |
29 | ||
30 | TDatabasePDG *dbpdg = TDatabasePDG::Instance(); | |
31 | TParticlePDG *ppdg = dbpdg->GetParticle(fPdgCode); | |
32 | if (!ppdg) | |
33 | return 0.; | |
34 | return TMath::Sign(1., ppdg->Charge()); | |
35 | } | |
36 | ||
37 | //___________________________________________________________ | |
38 | ||
39 | Int_t | |
40 | AliAnalysisParticle::GetPID() const | |
41 | { | |
42 | /* | |
43 | * get PID | |
44 | */ | |
45 | ||
46 | for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++) | |
47 | if (TMath::Abs(fPdgCode) == AliPID::ParticleCode(ipart)) | |
48 | return ipart; | |
49 | return -1; | |
50 | ||
51 | } | |
52 | ||
53 | //___________________________________________________________ | |
54 | ||
55 | Double_t | |
56 | AliAnalysisParticle::GetMass() const | |
57 | { | |
58 | /* | |
59 | * get mass | |
60 | */ | |
61 | ||
62 | if (GetPID() == -1) | |
63 | return 0.; | |
64 | return AliPID::ParticleMass(GetPID()); | |
65 | } | |
66 | ||
67 | //___________________________________________________________ | |
68 | ||
69 | AliAnalysisParticle::AliAnalysisParticle() : | |
70 | TObject(), | |
71 | fLabel(0), | |
72 | fPt(0.), | |
73 | fEta(0.), | |
74 | fPhi(0.), | |
75 | fPdgCode(0) | |
76 | { | |
77 | /* | |
78 | * default constructor | |
79 | */ | |
80 | } | |
81 | ||
82 | //___________________________________________________________ | |
83 | ||
84 | AliAnalysisParticle::AliAnalysisParticle(const AliAnalysisParticle &source) : | |
85 | TObject(source), | |
86 | fLabel(source.fLabel), | |
87 | fPt(source.fPt), | |
88 | fEta(source.fEta), | |
89 | fPhi(source.fPhi), | |
90 | fPdgCode(source.fPdgCode) | |
91 | { | |
92 | /* | |
93 | * copy constructor | |
94 | */ | |
95 | } | |
96 | ||
97 | //___________________________________________________________ | |
98 | ||
99 | AliAnalysisParticle & | |
100 | AliAnalysisParticle::operator=(const AliAnalysisParticle &source) | |
101 | { | |
102 | /* | |
103 | * operator= | |
104 | */ | |
105 | ||
106 | if (&source == this) return *this; | |
107 | TObject::operator=(source); | |
108 | ||
109 | fLabel = source.fLabel; | |
110 | fPt = source.fPt; | |
111 | fEta = source.fEta; | |
112 | fPhi = source.fPhi; | |
113 | fPdgCode = source.fPdgCode; | |
114 | ||
115 | return *this; | |
116 | } | |
117 | ||
118 | //___________________________________________________________ | |
119 | ||
120 | AliAnalysisParticle::~AliAnalysisParticle() | |
121 | { | |
122 | /* | |
123 | * default destructor | |
124 | */ | |
125 | } | |
126 | ||
127 | //___________________________________________________________ | |
128 | ||
129 | void | |
130 | AliAnalysisParticle::Reset() | |
131 | { | |
132 | /* | |
133 | * reset | |
134 | */ | |
135 | ||
136 | fLabel = 0; | |
137 | fPt = 0.; | |
138 | fEta = 0.; | |
139 | fPhi = 0.; | |
140 | fPdgCode = 0; | |
141 | ||
142 | } | |
143 | ||
144 | //___________________________________________________________ | |
145 | ||
146 | void | |
147 | AliAnalysisParticle::Update(TParticle *particle, Int_t label) | |
148 | { | |
149 | /* | |
150 | * update | |
151 | */ | |
152 | ||
153 | fLabel = label; | |
154 | fPt = particle->Pt(); | |
155 | fEta = particle->Eta(); | |
156 | fPhi = particle->Phi(); | |
157 | fPdgCode = particle->GetPdgCode(); | |
158 | ||
159 | } | |
160 |