]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoModelHiddenInfo.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoModelHiddenInfo.cxx
1 ////////////////////////////////////////////////////////////////////////////////
2 ///                                                                          ///
3 /// AliFemtoModelHiddenInfo - the hidden info for model calculations         ///
4 /// Stores information needed for the weight generation - the true           ///
5 /// simulated momenta, freeze-out coordinates from model and particle PID    ///
6 ///                                                                          ///
7 ////////////////////////////////////////////////////////////////////////////////
8 #include "AliFemtoModelHiddenInfo.h"
9
10 //_____________________________________________
11 AliFemtoModelHiddenInfo::AliFemtoModelHiddenInfo() :
12   fTrueMomentum(0),
13   fEmissionPoint(0),
14   fPDGPid(0),
15   fMotherPdg(0),
16   fMass(0),
17   fTrueMomentumPos(0),
18   fEmissionPointPos(0),
19   fPDGPidPos(0),
20   fMassPos(0),
21   fTrueMomentumNeg(0),
22   fEmissionPointNeg(0),
23   fPDGPidNeg(0),
24   fMassNeg(0)
25 {
26   // Default constructor
27 }
28 //_____________________________________________
29 AliFemtoModelHiddenInfo::AliFemtoModelHiddenInfo(const AliFemtoModelHiddenInfo &aInfo) :
30   AliFemtoHiddenInfo(aInfo),
31   fTrueMomentum(0),
32   fEmissionPoint(0),
33   fPDGPid(0),
34   fMotherPdg(0),
35   fMass(0),
36   fTrueMomentumPos(0),
37   fEmissionPointPos(0),
38   fPDGPidPos(0),
39   fMassPos(0),
40   fTrueMomentumNeg(0),
41   fEmissionPointNeg(0),
42   fPDGPidNeg(0),
43   fMassNeg(0)
44 {
45   // Copy constructor
46   if (aInfo.GetTrueMomentum())
47     SetTrueMomentumPos(aInfo.GetTrueMomentum());
48   if (aInfo.GetEmissionPoint())
49     SetEmissionPointPos(aInfo.GetEmissionPoint());
50   fPDGPid = aInfo.GetPDGPid();
51   fMotherPdg = aInfo.GetMotherPdgCode();
52   fMass = aInfo.GetMass();
53
54   if (aInfo.GetTrueMomentumPos())
55     SetTrueMomentum(aInfo.GetTrueMomentumPos());
56   if (aInfo.GetEmissionPointPos())
57     SetEmissionPoint(aInfo.GetEmissionPointPos());
58   fPDGPidPos = aInfo.GetPDGPidPos();
59   fMassPos = aInfo.GetMassPos();
60
61   if (aInfo.GetTrueMomentumNeg())
62     SetTrueMomentumNeg(aInfo.GetTrueMomentumNeg());
63   if (aInfo.GetEmissionPointNeg())
64     SetEmissionPointNeg(aInfo.GetEmissionPointNeg());
65   fPDGPidNeg = aInfo.GetPDGPidNeg();
66   fMassNeg = aInfo.GetMassNeg();
67 }
68 //_____________________________________________
69 AliFemtoModelHiddenInfo::~AliFemtoModelHiddenInfo()
70 {
71   // Destructor
72   if (fTrueMomentum) delete fTrueMomentum;
73   if (fEmissionPoint) delete fEmissionPoint;
74   if (fTrueMomentumPos) delete fTrueMomentumPos;
75   if (fEmissionPointPos) delete fEmissionPointPos;
76   if (fTrueMomentumNeg) delete fTrueMomentumNeg;
77   if (fEmissionPointNeg) delete fEmissionPointNeg;
78 }
79 //_____________________________________________
80 AliFemtoModelHiddenInfo& AliFemtoModelHiddenInfo::operator=(const AliFemtoModelHiddenInfo& aInfo)
81 {
82   // assignment operator
83   if (this == &aInfo)
84     return *this;
85
86   if (fTrueMomentum) delete fTrueMomentum;
87   if (aInfo.GetTrueMomentum())
88     SetTrueMomentum(aInfo.GetTrueMomentum());
89   else SetTrueMomentum(0);
90   if (fEmissionPoint) delete fEmissionPoint;
91   if (aInfo.GetEmissionPoint())
92     SetEmissionPoint(aInfo.GetEmissionPoint());
93   else SetEmissionPoint(0);
94   fPDGPid = aInfo.GetPDGPid();
95   fMotherPdg = aInfo.GetMotherPdgCode();
96   fMass = aInfo.GetMass();
97
98   if (fTrueMomentumPos) delete fTrueMomentumPos;
99   if (aInfo.GetTrueMomentumPos())
100     SetTrueMomentumPos(aInfo.GetTrueMomentumPos());
101   else SetTrueMomentumPos(0);
102   if (fEmissionPointPos) delete fEmissionPointPos;
103   if (aInfo.GetEmissionPointPos())
104     SetEmissionPointPos(aInfo.GetEmissionPointPos());
105   else SetEmissionPointPos(0);
106   fPDGPidPos = aInfo.GetPDGPidPos();
107   fMassPos = aInfo.GetMassPos();
108
109   if (fTrueMomentumNeg) delete fTrueMomentumNeg;
110   if (aInfo.GetTrueMomentumNeg())
111     SetTrueMomentumNeg(aInfo.GetTrueMomentumNeg());
112   else SetTrueMomentumNeg(0);
113   if (fEmissionPointNeg) delete fEmissionPointNeg;
114   if (aInfo.GetEmissionPointNeg())
115     SetEmissionPointNeg(aInfo.GetEmissionPointNeg());
116   else SetEmissionPointNeg(0);
117   fPDGPidNeg = aInfo.GetPDGPidNeg();
118   fMassNeg = aInfo.GetMassNeg();
119
120   return *this;
121 }
122 //_____________________________________________
123 AliFemtoThreeVector   *AliFemtoModelHiddenInfo::GetTrueMomentum() const
124 {
125   return fTrueMomentum;
126 }
127 //_____________________________________________
128 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPoint() const
129 {
130   return fEmissionPoint;
131 }
132 //_____________________________________________
133 Int_t                  AliFemtoModelHiddenInfo::GetPDGPid() const
134 {
135   return fPDGPid;
136 }
137 Int_t                  AliFemtoModelHiddenInfo::GetMotherPdgCode() const
138 {
139   return fMotherPdg;
140 }
141 //_____________________________________________
142 Double_t                  AliFemtoModelHiddenInfo::GetMass() const
143 {
144   return fMass;
145 }
146 //_____________________________________________
147 void                   AliFemtoModelHiddenInfo::SetTrueMomentum(AliFemtoThreeVector *aMom)
148 {
149   // Set momentum from vector
150   if (fTrueMomentum) {
151     fTrueMomentum->SetX(aMom->x());
152     fTrueMomentum->SetY(aMom->y());
153     fTrueMomentum->SetZ(aMom->z());
154   }
155   else {
156     fTrueMomentum = new AliFemtoThreeVector(*aMom);
157   }
158 }
159 //_____________________________________________
160 void                   AliFemtoModelHiddenInfo::SetTrueMomentum(const AliFemtoThreeVector& aMom)
161 {
162   // Set momentum from vector
163   if (fTrueMomentum) {
164     fTrueMomentum->SetX(aMom.x());
165     fTrueMomentum->SetY(aMom.y());
166     fTrueMomentum->SetZ(aMom.z());
167   }
168   else {
169     fTrueMomentum = new AliFemtoThreeVector();
170     *fTrueMomentum = aMom;
171   }
172 }
173 //_____________________________________________
174 void                   AliFemtoModelHiddenInfo::SetTrueMomentum(Double_t aPx, Double_t aPy, Double_t aPz)
175 {
176   // Set momentum from components
177   if (!fTrueMomentum) fTrueMomentum = new AliFemtoThreeVector();
178     fTrueMomentum->SetX(aPx);
179     fTrueMomentum->SetY(aPy);
180     fTrueMomentum->SetZ(aPz);
181 }
182 //_____________________________________________
183 void                   AliFemtoModelHiddenInfo::SetEmissionPoint(AliFemtoLorentzVector *aPos)
184 {
185   // Set position from vector
186   if (fEmissionPoint) {
187     fEmissionPoint->SetX(aPos->px());
188     fEmissionPoint->SetY(aPos->py());
189     fEmissionPoint->SetZ(aPos->pz());
190     fEmissionPoint->SetT(aPos->e());
191   }
192   else {
193     fEmissionPoint = new AliFemtoLorentzVector(*aPos);
194   }
195 }
196 //_____________________________________________
197 void                   AliFemtoModelHiddenInfo::SetEmissionPoint(const AliFemtoLorentzVector& aPos)
198 {
199   // Set position from vector
200   if (fEmissionPoint) {
201     fEmissionPoint->SetX(aPos.px());
202     fEmissionPoint->SetY(aPos.py());
203     fEmissionPoint->SetZ(aPos.pz());
204     fEmissionPoint->SetT(aPos.e());
205   }
206   else {
207     fEmissionPoint = new AliFemtoLorentzVector();
208     *fEmissionPoint = aPos;
209   }
210 }
211 //_____________________________________________
212 void                   AliFemtoModelHiddenInfo::SetPDGPid(Int_t aPid)
213 {
214   fPDGPid = aPid;
215 }
216 void                   AliFemtoModelHiddenInfo::SetMotherPdgCode(Int_t aMotherPdg)
217 {
218   fMotherPdg = aMotherPdg;
219 }
220 //_____________________________________________
221 void                   AliFemtoModelHiddenInfo::SetMass(Double_t aMass)
222 {
223   fMass = aMass;
224 }
225 //_____________________________________________
226 void                   AliFemtoModelHiddenInfo::SetEmissionPoint(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
227 {
228   // Set position from components
229   if (fEmissionPoint) {
230     fEmissionPoint->SetX(aRx);
231     fEmissionPoint->SetY(aRy);
232     fEmissionPoint->SetZ(aRz);
233     fEmissionPoint->SetT(aT);
234   }
235   else {
236     fEmissionPoint = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
237   }
238 }
239
240 //_____________________________________________
241 AliFemtoThreeVector   *AliFemtoModelHiddenInfo::GetTrueMomentumPos() const
242 {
243   return fTrueMomentumPos;
244 }
245 //_____________________________________________
246 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPointPos() const
247 {
248   return fEmissionPointPos;
249 }
250 //_____________________________________________
251 Int_t                  AliFemtoModelHiddenInfo::GetPDGPidPos() const
252 {
253   return fPDGPidPos;
254 }
255 //_____________________________________________
256 Double_t                  AliFemtoModelHiddenInfo::GetMassPos() const
257 {
258   return fMassPos;
259 }
260 //_____________________________________________
261 void                   AliFemtoModelHiddenInfo::SetTrueMomentumPos(AliFemtoThreeVector *aMom)
262 {
263   // Set momentum from vector
264   if (fTrueMomentumPos) {
265     fTrueMomentumPos->SetX(aMom->x());
266     fTrueMomentumPos->SetY(aMom->y());
267     fTrueMomentumPos->SetZ(aMom->z());
268   }
269   else {
270     fTrueMomentumPos = new AliFemtoThreeVector(*aMom);
271   }
272 }
273 //_____________________________________________
274 void                   AliFemtoModelHiddenInfo::SetTrueMomentumPos(const AliFemtoThreeVector& aMom)
275 {
276   // Set momentum from vector
277   if (fTrueMomentumPos) {
278     fTrueMomentumPos->SetX(aMom.x());
279     fTrueMomentumPos->SetY(aMom.y());
280     fTrueMomentumPos->SetZ(aMom.z());
281   }
282   else {
283     fTrueMomentumPos = new AliFemtoThreeVector();
284     *fTrueMomentumPos = aMom;
285   }
286 }
287 //_____________________________________________
288 void                   AliFemtoModelHiddenInfo::SetTrueMomentumPos(Double_t aPx, Double_t aPy, Double_t aPz)
289 {
290   // Set momentum from components
291   if (!fTrueMomentumPos) fTrueMomentumPos = new AliFemtoThreeVector();
292     fTrueMomentumPos->SetX(aPx);
293     fTrueMomentumPos->SetY(aPy);
294     fTrueMomentumPos->SetZ(aPz);
295 }
296 //_____________________________________________
297 void                   AliFemtoModelHiddenInfo::SetEmissionPointPos(AliFemtoLorentzVector *aPos)
298 {
299   // Set position from vector
300   if (fEmissionPointPos) {
301     fEmissionPointPos->SetX(aPos->px());
302     fEmissionPointPos->SetY(aPos->py());
303     fEmissionPointPos->SetZ(aPos->pz());
304     fEmissionPointPos->SetT(aPos->e());
305   }
306   else {
307     fEmissionPointPos = new AliFemtoLorentzVector(*aPos);
308   }
309 }
310 //_____________________________________________
311 void                   AliFemtoModelHiddenInfo::SetEmissionPointPos(const AliFemtoLorentzVector& aPos)
312 {
313   // Set position from vector
314   if (fEmissionPointPos) {
315     fEmissionPointPos->SetX(aPos.px());
316     fEmissionPointPos->SetY(aPos.py());
317     fEmissionPointPos->SetZ(aPos.pz());
318     fEmissionPointPos->SetT(aPos.e());
319   }
320   else {
321     fEmissionPointPos = new AliFemtoLorentzVector();
322     *fEmissionPointPos = aPos;
323   }
324 }
325 //_____________________________________________
326 void                   AliFemtoModelHiddenInfo::SetPDGPidPos(Int_t aPid)
327 {
328   fPDGPidPos = aPid;
329 }
330 //_____________________________________________
331 void                   AliFemtoModelHiddenInfo::SetMassPos(Double_t aMass)
332 {
333   fMassPos = aMass;
334 }
335 //_____________________________________________
336 void                   AliFemtoModelHiddenInfo::SetEmissionPointPos(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
337 {
338   // Set position from components
339   if (fEmissionPointPos) {
340     fEmissionPointPos->SetX(aRx);
341     fEmissionPointPos->SetY(aRy);
342     fEmissionPointPos->SetZ(aRz);
343     fEmissionPointPos->SetT(aT);
344   }
345   else {
346     fEmissionPointPos = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
347   }
348 }
349
350 //_____________________________________________
351 AliFemtoThreeVector   *AliFemtoModelHiddenInfo::GetTrueMomentumNeg() const
352 {
353   return fTrueMomentumNeg;
354 }
355 //_____________________________________________
356 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPointNeg() const
357 {
358   return fEmissionPointNeg;
359 }
360 //_____________________________________________
361 Int_t                  AliFemtoModelHiddenInfo::GetPDGPidNeg() const
362 {
363   return fPDGPidNeg;
364 }
365 //_____________________________________________
366 Double_t                  AliFemtoModelHiddenInfo::GetMassNeg() const
367 {
368   return fMassNeg;
369 }
370 //_____________________________________________
371 void                   AliFemtoModelHiddenInfo::SetTrueMomentumNeg(AliFemtoThreeVector *aMom)
372 {
373   // Set momentum from vector
374   if (fTrueMomentumNeg) {
375     fTrueMomentumNeg->SetX(aMom->x());
376     fTrueMomentumNeg->SetY(aMom->y());
377     fTrueMomentumNeg->SetZ(aMom->z());
378   }
379   else {
380     fTrueMomentumNeg = new AliFemtoThreeVector(*aMom);
381   }
382 }
383 //_____________________________________________
384 void                   AliFemtoModelHiddenInfo::SetTrueMomentumNeg(const AliFemtoThreeVector& aMom)
385 {
386   // Set momentum from vector
387   if (fTrueMomentumNeg) {
388     fTrueMomentumNeg->SetX(aMom.x());
389     fTrueMomentumNeg->SetY(aMom.y());
390     fTrueMomentumNeg->SetZ(aMom.z());
391   }
392   else {
393     fTrueMomentumNeg = new AliFemtoThreeVector();
394     *fTrueMomentumNeg = aMom;
395   }
396 }
397 //_____________________________________________
398 void                   AliFemtoModelHiddenInfo::SetTrueMomentumNeg(Double_t aPx, Double_t aPy, Double_t aPz)
399 {
400   // Set momentum from components
401   if (!fTrueMomentumNeg) fTrueMomentumNeg = new AliFemtoThreeVector();
402     fTrueMomentumNeg->SetX(aPx);
403     fTrueMomentumNeg->SetY(aPy);
404     fTrueMomentumNeg->SetZ(aPz);
405 }
406 //_____________________________________________
407 void                   AliFemtoModelHiddenInfo::SetEmissionPointNeg(AliFemtoLorentzVector *aPos)
408 {
409   // Set position from vector
410   if (fEmissionPointNeg) {
411     fEmissionPointNeg->SetX(aPos->px());
412     fEmissionPointNeg->SetY(aPos->py());
413     fEmissionPointNeg->SetZ(aPos->pz());
414     fEmissionPointNeg->SetT(aPos->e());
415   }
416   else {
417     fEmissionPointNeg = new AliFemtoLorentzVector(*aPos);
418   }
419 }
420 //_____________________________________________
421 void                   AliFemtoModelHiddenInfo::SetEmissionPointNeg(const AliFemtoLorentzVector& aPos)
422 {
423   // Set position from vector
424   if (fEmissionPointNeg) {
425     fEmissionPointNeg->SetX(aPos.px());
426     fEmissionPointNeg->SetY(aPos.py());
427     fEmissionPointNeg->SetZ(aPos.pz());
428     fEmissionPointNeg->SetT(aPos.e());
429   }
430   else {
431     fEmissionPointNeg = new AliFemtoLorentzVector();
432     *fEmissionPointNeg = aPos;
433   }
434 }
435 //_____________________________________________
436 void                   AliFemtoModelHiddenInfo::SetPDGPidNeg(Int_t aPid)
437 {
438   fPDGPidNeg = aPid;
439 }
440 //_____________________________________________
441 void                   AliFemtoModelHiddenInfo::SetMassNeg(Double_t aMass)
442 {
443   fMassNeg = aMass;
444 }
445 //_____________________________________________
446 void                   AliFemtoModelHiddenInfo::SetEmissionPointNeg(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
447 {
448   // Set position from components
449   if (fEmissionPointNeg) {
450     fEmissionPointNeg->SetX(aRx);
451     fEmissionPointNeg->SetY(aRy);
452     fEmissionPointNeg->SetZ(aRz);
453     fEmissionPointNeg->SetT(aT);
454   }
455   else {
456     fEmissionPointNeg = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
457   }
458 }
459
460
461 //_____________________________________________
462  AliFemtoHiddenInfo* AliFemtoModelHiddenInfo::GetParticleHiddenInfo() const
463 {
464   // return copy of this hidden info
465   AliFemtoModelHiddenInfo* tBuf = new AliFemtoModelHiddenInfo(*this);
466   return tBuf;
467 }