a329d65b |
1 | //K//////////////////////////////////////////////////////////////////////////M// |
2 | //K M// |
3 | //K AliFemtoModelAllHiddenInfo - M// |
4 | //K derived class inherits the base class AliFemtoModelHiddenInfo M// |
5 | //K the hidden info for model calculations M// |
6 | //K Stores information needed for the weight generation - M// |
7 | //K M// |
8 | //K in addition to the base class AliFemtoModelHiddenInfo - the true M// |
9 | //K simulated momenta, freeze-out coordinates from model and particle PID M// |
10 | //K New information was added M// |
11 | //K 1. Mother ID M// |
12 | //K 2. Mother 4-Momentum M// |
13 | //K 3. Mother emission point 4-vector M// |
14 | //K 4. Childs IDs M// |
15 | //K 5. Childs 4-Momentum M// |
16 | //K--------------------------------------------------------------------------M// // |
17 | //K APR2008 Konstantin Mikhailov Konstantin.Mikhailov@itep.ru M// |
18 | //K M// |
19 | //K//////////////////////////////////////////////////////////////////////////M// |
20 | #include "AliFemtoModelAllHiddenInfo.h" |
21 | |
22 | //_____________________________________________ |
23 | AliFemtoModelAllHiddenInfo::AliFemtoModelAllHiddenInfo() : |
24 | fTrueMomentumMother(0), |
25 | fEmissionPointMother(0), |
26 | fPDGPidMother(0), |
27 | fTrueMomentumChild1(0), |
28 | fTrueMomentumChild2(0), |
29 | fPDGPidChild1(0), |
30 | fPDGPidChild2(0) |
31 | { |
32 | // Default constructor |
33 | } |
34 | //_____________________________________________ |
35 | AliFemtoModelAllHiddenInfo::AliFemtoModelAllHiddenInfo(const AliFemtoModelAllHiddenInfo &aInfo) : |
36 | AliFemtoModelHiddenInfo(aInfo), |
19708f0f |
37 | fTrueMomentumMother(new AliFemtoLorentzVector(*(aInfo.fTrueMomentumMother))), |
38 | fEmissionPointMother(new AliFemtoLorentzVector(*(aInfo.fEmissionPointMother))), |
39 | fPDGPidMother(aInfo.fPDGPidMother), |
40 | fTrueMomentumChild1(new AliFemtoLorentzVector(*(aInfo.fTrueMomentumChild1))), |
41 | fTrueMomentumChild2(new AliFemtoLorentzVector(*(aInfo.fTrueMomentumChild2))), |
42 | fPDGPidChild1(aInfo.fPDGPidChild1), |
43 | fPDGPidChild2(aInfo.fPDGPidChild2) |
a329d65b |
44 | { |
19708f0f |
45 | // |
a329d65b |
46 | // Copy constructor |
19708f0f |
47 | // |
a329d65b |
48 | } |
49 | //_____________________________________________ |
50 | AliFemtoModelAllHiddenInfo::~AliFemtoModelAllHiddenInfo() |
51 | { |
52 | // Destructor |
19708f0f |
53 | delete fTrueMomentumMother; |
54 | delete fEmissionPointMother; |
55 | delete fTrueMomentumChild1; |
56 | delete fTrueMomentumChild2; |
a329d65b |
57 | } |
58 | //_____________________________________________ |
59 | AliFemtoModelAllHiddenInfo& AliFemtoModelAllHiddenInfo::operator=(const AliFemtoModelAllHiddenInfo& aInfo) |
60 | { |
19708f0f |
61 | // |
a329d65b |
62 | // assignment operator |
19708f0f |
63 | // |
64 | if (this != &aInfo) { |
65 | AliFemtoModelHiddenInfo::operator=(aInfo); |
66 | delete fTrueMomentumMother; |
67 | fTrueMomentumMother = new AliFemtoLorentzVector(*(aInfo.fTrueMomentumMother)); |
68 | delete fEmissionPointMother; |
69 | fEmissionPointMother = new AliFemtoLorentzVector(*(aInfo.fEmissionPointMother)); |
70 | fPDGPidMother = aInfo.fPDGPidMother; |
71 | delete fTrueMomentumChild1; |
72 | fTrueMomentumChild1 = new AliFemtoLorentzVector(*(aInfo.fTrueMomentumChild1)); |
73 | delete fTrueMomentumChild2; |
74 | fTrueMomentumChild2 = new AliFemtoLorentzVector(*(aInfo.fTrueMomentumChild2)); |
75 | fPDGPidChild1 = aInfo.fPDGPidChild1; |
76 | fPDGPidChild2 = aInfo.fPDGPidChild2; |
77 | } |
a329d65b |
78 | return *this; |
79 | } |
80 | // |
81 | // GET |
82 | // |
83 | //_____________________________________________ |
84 | AliFemtoLorentzVector *AliFemtoModelAllHiddenInfo::GetTrueMomentumMother() const |
85 | { |
86 | return fTrueMomentumMother; |
87 | } |
88 | //_____________________________________________ |
89 | AliFemtoLorentzVector *AliFemtoModelAllHiddenInfo::GetEmissionPointMother() const |
90 | { |
91 | return fEmissionPoint; |
92 | } |
93 | //_____________________________________________ |
94 | Int_t AliFemtoModelAllHiddenInfo::GetPDGPidMother() const |
95 | { |
96 | return fPDGPidMother; |
97 | } |
98 | //_____________________________________________ |
99 | AliFemtoLorentzVector *AliFemtoModelAllHiddenInfo::GetTrueMomentumChild1() const |
100 | { |
101 | return fTrueMomentumChild1; |
102 | } |
103 | //_____________________________________________ |
104 | AliFemtoLorentzVector *AliFemtoModelAllHiddenInfo::GetTrueMomentumChild2() const |
105 | { |
106 | return fTrueMomentumChild2; |
107 | } |
108 | //_____________________________________________ |
109 | Int_t AliFemtoModelAllHiddenInfo::GetPDGPidChild1() const |
110 | { |
111 | return fPDGPidChild1; |
112 | } |
113 | //_____________________________________________ |
114 | Int_t AliFemtoModelAllHiddenInfo::GetPDGPidChild2() const |
115 | { |
116 | return fPDGPidChild2; |
117 | } |
118 | // |
119 | // SET |
120 | // |
121 | //_____________________________________________ |
122 | // Mother momentum |
123 | //_____________________________________________ |
124 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumMother(AliFemtoLorentzVector *aMomMother) |
125 | { |
01daf251 |
126 | // Set momentum from vector |
a329d65b |
127 | if (fTrueMomentumMother) { |
01daf251 |
128 | fTrueMomentumMother->SetX(aMomMother->px()); |
129 | fTrueMomentumMother->SetY(aMomMother->py()); |
130 | fTrueMomentumMother->SetZ(aMomMother->pz()); |
131 | fTrueMomentumMother->SetT(aMomMother->e()); |
a329d65b |
132 | } |
133 | else { |
134 | fTrueMomentumMother = new AliFemtoLorentzVector(*aMomMother); |
135 | } |
136 | } |
137 | //_____________________________________________ |
138 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumMother(const AliFemtoLorentzVector& aMomMother) |
139 | { |
01daf251 |
140 | // Set momentum from vector and energy |
a329d65b |
141 | if (fTrueMomentumMother) { |
01daf251 |
142 | fTrueMomentumMother->SetX(aMomMother.px()); |
143 | fTrueMomentumMother->SetY(aMomMother.py()); |
144 | fTrueMomentumMother->SetZ(aMomMother.pz()); |
145 | fTrueMomentumMother->SetT(aMomMother.e()); |
a329d65b |
146 | } |
147 | else { |
148 | fTrueMomentumMother = new AliFemtoLorentzVector(); |
149 | *fTrueMomentumMother = aMomMother; |
150 | } |
151 | } |
152 | //_____________________________________________ |
153 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumMother(Double_t aMotherPx, Double_t aMotherPy, Double_t aMotherPz, Double_t aMotherE) |
154 | { |
01daf251 |
155 | // Set momentum from components and energy |
a329d65b |
156 | if (!fTrueMomentumMother) fTrueMomentumMother = new AliFemtoLorentzVector(); |
01daf251 |
157 | fTrueMomentumMother->SetX(aMotherPx); |
158 | fTrueMomentumMother->SetY(aMotherPy); |
159 | fTrueMomentumMother->SetZ(aMotherPz); |
160 | fTrueMomentumMother->SetT(aMotherE); |
a329d65b |
161 | } |
162 | //_____________________________________________ |
163 | // Mother Emissin Point |
164 | //_____________________________________________ |
165 | void AliFemtoModelAllHiddenInfo::SetEmissionPointMother(AliFemtoLorentzVector *aPos) |
166 | { |
01daf251 |
167 | // Set position from vector |
a329d65b |
168 | if (fEmissionPointMother) { |
01daf251 |
169 | fEmissionPointMother->SetX(aPos->px()); |
170 | fEmissionPointMother->SetY(aPos->py()); |
171 | fEmissionPointMother->SetZ(aPos->pz()); |
172 | fEmissionPointMother->SetT(aPos->e()); |
a329d65b |
173 | } |
174 | else { |
175 | fEmissionPointMother = new AliFemtoLorentzVector(*aPos); |
176 | } |
177 | } |
178 | //_____________________________________________ |
179 | void AliFemtoModelAllHiddenInfo::SetEmissionPointMother(const AliFemtoLorentzVector& aPos) |
180 | { |
01daf251 |
181 | // Set position from vector |
a329d65b |
182 | if (fEmissionPointMother) { |
01daf251 |
183 | fEmissionPointMother->SetX(aPos.px()); |
184 | fEmissionPointMother->SetY(aPos.py()); |
185 | fEmissionPointMother->SetZ(aPos.pz()); |
186 | fEmissionPointMother->SetT(aPos.e()); |
a329d65b |
187 | } |
188 | else { |
189 | fEmissionPointMother = new AliFemtoLorentzVector(); |
190 | *fEmissionPointMother = aPos; |
191 | } |
192 | } |
193 | //_____________________________________________ |
194 | void AliFemtoModelAllHiddenInfo::SetEmissionPointMother(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT) |
195 | { |
01daf251 |
196 | // Set position from components |
a329d65b |
197 | if (fEmissionPointMother) { |
01daf251 |
198 | fEmissionPointMother->SetX(aRx); |
199 | fEmissionPointMother->SetY(aRy); |
200 | fEmissionPointMother->SetZ(aRz); |
201 | fEmissionPointMother->SetT(aT); |
a329d65b |
202 | } |
203 | else { |
204 | fEmissionPointMother = new AliFemtoLorentzVector(aRx, aRy, aRz, aT); |
205 | } |
206 | } |
207 | //_____________________________________________ |
208 | // Mother PID |
209 | //_____________________________________________ |
210 | void AliFemtoModelAllHiddenInfo::SetPDGPidMother(Int_t aPidMother) |
211 | { |
212 | fPDGPidMother = aPidMother; |
213 | } |
214 | //_____________________________________________ |
215 | // Child1 momentum |
216 | //_____________________________________________ |
217 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumChild1(AliFemtoLorentzVector *aMomChild1) |
218 | { |
01daf251 |
219 | // Set momentum from vector |
a329d65b |
220 | if (fTrueMomentumChild1) { |
01daf251 |
221 | fTrueMomentumChild1->SetX(aMomChild1->px()); |
222 | fTrueMomentumChild1->SetY(aMomChild1->py()); |
223 | fTrueMomentumChild1->SetZ(aMomChild1->pz()); |
224 | fTrueMomentumChild1->SetT(aMomChild1->e()); |
a329d65b |
225 | } |
226 | else { |
227 | fTrueMomentumChild1 = new AliFemtoLorentzVector(*aMomChild1); |
228 | } |
229 | } |
230 | //_____________________________________________ |
231 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumChild1(const AliFemtoLorentzVector& aMomChild1) |
232 | { |
01daf251 |
233 | // Set momentum from vector and energy |
a329d65b |
234 | if (fTrueMomentumChild1) { |
01daf251 |
235 | fTrueMomentumChild1->SetX(aMomChild1.px()); |
236 | fTrueMomentumChild1->SetY(aMomChild1.py()); |
237 | fTrueMomentumChild1->SetZ(aMomChild1.pz()); |
238 | fTrueMomentumChild1->SetT(aMomChild1.e()); |
a329d65b |
239 | } |
240 | else { |
241 | fTrueMomentumChild1 = new AliFemtoLorentzVector(); |
242 | *fTrueMomentumChild1 = aMomChild1; |
243 | } |
244 | } |
245 | //_____________________________________________ |
246 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumChild1(Double_t aChild1Px, Double_t aChild1Py, Double_t aChild1Pz, Double_t aChild1E) |
247 | { |
01daf251 |
248 | // Set momentum from components and energy |
a329d65b |
249 | if (!fTrueMomentumChild1) fTrueMomentumChild1 = new AliFemtoLorentzVector(); |
01daf251 |
250 | fTrueMomentumChild1->SetX(aChild1Px); |
251 | fTrueMomentumChild1->SetY(aChild1Py); |
252 | fTrueMomentumChild1->SetZ(aChild1Pz); |
253 | fTrueMomentumChild1->SetT(aChild1E); |
a329d65b |
254 | } |
255 | //_____________________________________________ |
256 | // Child2 momentum |
257 | //_____________________________________________ |
258 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumChild2(AliFemtoLorentzVector *aMomChild2) |
259 | { |
01daf251 |
260 | // Set momentum from vector |
a329d65b |
261 | if (fTrueMomentumChild2) { |
01daf251 |
262 | fTrueMomentumChild2->SetX(aMomChild2->px()); |
263 | fTrueMomentumChild2->SetY(aMomChild2->py()); |
264 | fTrueMomentumChild2->SetZ(aMomChild2->pz()); |
265 | fTrueMomentumChild2->SetT(aMomChild2->e()); |
a329d65b |
266 | } |
267 | else { |
268 | fTrueMomentumChild2 = new AliFemtoLorentzVector(*aMomChild2); |
269 | } |
270 | } |
271 | //_____________________________________________ |
272 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumChild2(const AliFemtoLorentzVector& aMomChild2) |
273 | { |
01daf251 |
274 | // Set momentum from vector and energy |
a329d65b |
275 | if (fTrueMomentumChild2) { |
01daf251 |
276 | fTrueMomentumChild2->SetX(aMomChild2.px()); |
277 | fTrueMomentumChild2->SetY(aMomChild2.py()); |
278 | fTrueMomentumChild2->SetZ(aMomChild2.pz()); |
279 | fTrueMomentumChild2->SetT(aMomChild2.e()); |
a329d65b |
280 | } |
281 | else { |
282 | fTrueMomentumChild2 = new AliFemtoLorentzVector(); |
283 | *fTrueMomentumChild2 = aMomChild2; |
284 | } |
285 | } |
286 | //_____________________________________________ |
287 | void AliFemtoModelAllHiddenInfo::SetTrueMomentumChild2(Double_t aChild2Px, Double_t aChild2Py, Double_t aChild2Pz, Double_t aChild2E) |
288 | { |
01daf251 |
289 | // Set momentum from components and energy |
a329d65b |
290 | if (!fTrueMomentumChild2) fTrueMomentumChild2 = new AliFemtoLorentzVector(); |
01daf251 |
291 | fTrueMomentumChild2->SetX(aChild2Px); |
292 | fTrueMomentumChild2->SetY(aChild2Py); |
293 | fTrueMomentumChild2->SetZ(aChild2Pz); |
294 | fTrueMomentumChild2->SetT(aChild2E); |
a329d65b |
295 | } |
296 | //_____________________________________________ |
297 | // Child1 PID |
298 | //_____________________________________________ |
299 | void AliFemtoModelAllHiddenInfo::SetPDGPidChild1(Int_t aPidChild1) |
300 | { |
301 | fPDGPidMother = aPidChild1; |
302 | } |
303 | //_____________________________________________ |
304 | // Child2 PID |
305 | //_____________________________________________ |
306 | void AliFemtoModelAllHiddenInfo::SetPDGPidChild2(Int_t aPidChild2) |
307 | { |
308 | fPDGPidMother = aPidChild2; |
309 | } |
310 | // |
311 | // RETURN COPY |
312 | // |
313 | //_____________________________________________ |
314 | AliFemtoModelHiddenInfo* AliFemtoModelAllHiddenInfo::GetParticleHiddenInfo() const |
315 | { |
316 | // return copy of this hidden info |
317 | AliFemtoModelAllHiddenInfo* tBuf = new AliFemtoModelAllHiddenInfo(*this); |
318 | return tBuf; |
319 | } |