1 ////////////////////////////////////////////////////////////////////////////////
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 ///
7 ////////////////////////////////////////////////////////////////////////////////
8 #include "AliFemtoModelHiddenInfo.h"
10 //_____________________________________________
11 AliFemtoModelHiddenInfo::AliFemtoModelHiddenInfo() :
26 // Default constructor
28 //_____________________________________________
29 AliFemtoModelHiddenInfo::AliFemtoModelHiddenInfo(const AliFemtoModelHiddenInfo &aInfo) :
30 AliFemtoHiddenInfo(aInfo),
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();
54 if (aInfo.GetTrueMomentumPos())
55 SetTrueMomentum(aInfo.GetTrueMomentumPos());
56 if (aInfo.GetEmissionPointPos())
57 SetEmissionPoint(aInfo.GetEmissionPointPos());
58 fPDGPidPos = aInfo.GetPDGPidPos();
59 fMassPos = aInfo.GetMassPos();
61 if (aInfo.GetTrueMomentumNeg())
62 SetTrueMomentumNeg(aInfo.GetTrueMomentumNeg());
63 if (aInfo.GetEmissionPointNeg())
64 SetEmissionPointNeg(aInfo.GetEmissionPointNeg());
65 fPDGPidNeg = aInfo.GetPDGPidNeg();
66 fMassNeg = aInfo.GetMassNeg();
68 //_____________________________________________
69 AliFemtoModelHiddenInfo::~AliFemtoModelHiddenInfo()
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;
79 //_____________________________________________
80 AliFemtoModelHiddenInfo& AliFemtoModelHiddenInfo::operator=(const AliFemtoModelHiddenInfo& aInfo)
82 // assignment operator
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();
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();
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();
122 //_____________________________________________
123 AliFemtoThreeVector *AliFemtoModelHiddenInfo::GetTrueMomentum() const
125 return fTrueMomentum;
127 //_____________________________________________
128 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPoint() const
130 return fEmissionPoint;
132 //_____________________________________________
133 Int_t AliFemtoModelHiddenInfo::GetPDGPid() const
137 Int_t AliFemtoModelHiddenInfo::GetMotherPdgCode() const
141 //_____________________________________________
142 Double_t AliFemtoModelHiddenInfo::GetMass() const
146 //_____________________________________________
147 void AliFemtoModelHiddenInfo::SetTrueMomentum(AliFemtoThreeVector *aMom)
149 // Set momentum from vector
151 fTrueMomentum->SetX(aMom->x());
152 fTrueMomentum->SetY(aMom->y());
153 fTrueMomentum->SetZ(aMom->z());
156 fTrueMomentum = new AliFemtoThreeVector(*aMom);
159 //_____________________________________________
160 void AliFemtoModelHiddenInfo::SetTrueMomentum(const AliFemtoThreeVector& aMom)
162 // Set momentum from vector
164 fTrueMomentum->SetX(aMom.x());
165 fTrueMomentum->SetY(aMom.y());
166 fTrueMomentum->SetZ(aMom.z());
169 fTrueMomentum = new AliFemtoThreeVector();
170 *fTrueMomentum = aMom;
173 //_____________________________________________
174 void AliFemtoModelHiddenInfo::SetTrueMomentum(Double_t aPx, Double_t aPy, Double_t aPz)
176 // Set momentum from components
177 if (!fTrueMomentum) fTrueMomentum = new AliFemtoThreeVector();
178 fTrueMomentum->SetX(aPx);
179 fTrueMomentum->SetY(aPy);
180 fTrueMomentum->SetZ(aPz);
182 //_____________________________________________
183 void AliFemtoModelHiddenInfo::SetEmissionPoint(AliFemtoLorentzVector *aPos)
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());
193 fEmissionPoint = new AliFemtoLorentzVector(*aPos);
196 //_____________________________________________
197 void AliFemtoModelHiddenInfo::SetEmissionPoint(const AliFemtoLorentzVector& aPos)
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());
207 fEmissionPoint = new AliFemtoLorentzVector();
208 *fEmissionPoint = aPos;
211 //_____________________________________________
212 void AliFemtoModelHiddenInfo::SetPDGPid(Int_t aPid)
216 void AliFemtoModelHiddenInfo::SetMotherPdgCode(Int_t aMotherPdg)
218 fMotherPdg = aMotherPdg;
220 //_____________________________________________
221 void AliFemtoModelHiddenInfo::SetMass(Double_t aMass)
225 //_____________________________________________
226 void AliFemtoModelHiddenInfo::SetEmissionPoint(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
228 // Set position from components
229 if (fEmissionPoint) {
230 fEmissionPoint->SetX(aRx);
231 fEmissionPoint->SetY(aRy);
232 fEmissionPoint->SetZ(aRz);
233 fEmissionPoint->SetT(aT);
236 fEmissionPoint = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
240 //_____________________________________________
241 AliFemtoThreeVector *AliFemtoModelHiddenInfo::GetTrueMomentumPos() const
243 return fTrueMomentumPos;
245 //_____________________________________________
246 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPointPos() const
248 return fEmissionPointPos;
250 //_____________________________________________
251 Int_t AliFemtoModelHiddenInfo::GetPDGPidPos() const
255 //_____________________________________________
256 Double_t AliFemtoModelHiddenInfo::GetMassPos() const
260 //_____________________________________________
261 void AliFemtoModelHiddenInfo::SetTrueMomentumPos(AliFemtoThreeVector *aMom)
263 // Set momentum from vector
264 if (fTrueMomentumPos) {
265 fTrueMomentumPos->SetX(aMom->x());
266 fTrueMomentumPos->SetY(aMom->y());
267 fTrueMomentumPos->SetZ(aMom->z());
270 fTrueMomentumPos = new AliFemtoThreeVector(*aMom);
273 //_____________________________________________
274 void AliFemtoModelHiddenInfo::SetTrueMomentumPos(const AliFemtoThreeVector& aMom)
276 // Set momentum from vector
277 if (fTrueMomentumPos) {
278 fTrueMomentumPos->SetX(aMom.x());
279 fTrueMomentumPos->SetY(aMom.y());
280 fTrueMomentumPos->SetZ(aMom.z());
283 fTrueMomentumPos = new AliFemtoThreeVector();
284 *fTrueMomentumPos = aMom;
287 //_____________________________________________
288 void AliFemtoModelHiddenInfo::SetTrueMomentumPos(Double_t aPx, Double_t aPy, Double_t aPz)
290 // Set momentum from components
291 if (!fTrueMomentumPos) fTrueMomentumPos = new AliFemtoThreeVector();
292 fTrueMomentumPos->SetX(aPx);
293 fTrueMomentumPos->SetY(aPy);
294 fTrueMomentumPos->SetZ(aPz);
296 //_____________________________________________
297 void AliFemtoModelHiddenInfo::SetEmissionPointPos(AliFemtoLorentzVector *aPos)
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());
307 fEmissionPointPos = new AliFemtoLorentzVector(*aPos);
310 //_____________________________________________
311 void AliFemtoModelHiddenInfo::SetEmissionPointPos(const AliFemtoLorentzVector& aPos)
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());
321 fEmissionPointPos = new AliFemtoLorentzVector();
322 *fEmissionPointPos = aPos;
325 //_____________________________________________
326 void AliFemtoModelHiddenInfo::SetPDGPidPos(Int_t aPid)
330 //_____________________________________________
331 void AliFemtoModelHiddenInfo::SetMassPos(Double_t aMass)
335 //_____________________________________________
336 void AliFemtoModelHiddenInfo::SetEmissionPointPos(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
338 // Set position from components
339 if (fEmissionPointPos) {
340 fEmissionPointPos->SetX(aRx);
341 fEmissionPointPos->SetY(aRy);
342 fEmissionPointPos->SetZ(aRz);
343 fEmissionPointPos->SetT(aT);
346 fEmissionPointPos = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
350 //_____________________________________________
351 AliFemtoThreeVector *AliFemtoModelHiddenInfo::GetTrueMomentumNeg() const
353 return fTrueMomentumNeg;
355 //_____________________________________________
356 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPointNeg() const
358 return fEmissionPointNeg;
360 //_____________________________________________
361 Int_t AliFemtoModelHiddenInfo::GetPDGPidNeg() const
365 //_____________________________________________
366 Double_t AliFemtoModelHiddenInfo::GetMassNeg() const
370 //_____________________________________________
371 void AliFemtoModelHiddenInfo::SetTrueMomentumNeg(AliFemtoThreeVector *aMom)
373 // Set momentum from vector
374 if (fTrueMomentumNeg) {
375 fTrueMomentumNeg->SetX(aMom->x());
376 fTrueMomentumNeg->SetY(aMom->y());
377 fTrueMomentumNeg->SetZ(aMom->z());
380 fTrueMomentumNeg = new AliFemtoThreeVector(*aMom);
383 //_____________________________________________
384 void AliFemtoModelHiddenInfo::SetTrueMomentumNeg(const AliFemtoThreeVector& aMom)
386 // Set momentum from vector
387 if (fTrueMomentumNeg) {
388 fTrueMomentumNeg->SetX(aMom.x());
389 fTrueMomentumNeg->SetY(aMom.y());
390 fTrueMomentumNeg->SetZ(aMom.z());
393 fTrueMomentumNeg = new AliFemtoThreeVector();
394 *fTrueMomentumNeg = aMom;
397 //_____________________________________________
398 void AliFemtoModelHiddenInfo::SetTrueMomentumNeg(Double_t aPx, Double_t aPy, Double_t aPz)
400 // Set momentum from components
401 if (!fTrueMomentumNeg) fTrueMomentumNeg = new AliFemtoThreeVector();
402 fTrueMomentumNeg->SetX(aPx);
403 fTrueMomentumNeg->SetY(aPy);
404 fTrueMomentumNeg->SetZ(aPz);
406 //_____________________________________________
407 void AliFemtoModelHiddenInfo::SetEmissionPointNeg(AliFemtoLorentzVector *aPos)
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());
417 fEmissionPointNeg = new AliFemtoLorentzVector(*aPos);
420 //_____________________________________________
421 void AliFemtoModelHiddenInfo::SetEmissionPointNeg(const AliFemtoLorentzVector& aPos)
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());
431 fEmissionPointNeg = new AliFemtoLorentzVector();
432 *fEmissionPointNeg = aPos;
435 //_____________________________________________
436 void AliFemtoModelHiddenInfo::SetPDGPidNeg(Int_t aPid)
440 //_____________________________________________
441 void AliFemtoModelHiddenInfo::SetMassNeg(Double_t aMass)
445 //_____________________________________________
446 void AliFemtoModelHiddenInfo::SetEmissionPointNeg(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
448 // Set position from components
449 if (fEmissionPointNeg) {
450 fEmissionPointNeg->SetX(aRx);
451 fEmissionPointNeg->SetY(aRy);
452 fEmissionPointNeg->SetZ(aRz);
453 fEmissionPointNeg->SetT(aT);
456 fEmissionPointNeg = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
461 //_____________________________________________
462 AliFemtoHiddenInfo* AliFemtoModelHiddenInfo::GetParticleHiddenInfo() const
464 // return copy of this hidden info
465 AliFemtoModelHiddenInfo* tBuf = new AliFemtoModelHiddenInfo(*this);