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