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() :
25 // Default constructor
27 //_____________________________________________
28 AliFemtoModelHiddenInfo::AliFemtoModelHiddenInfo(const AliFemtoModelHiddenInfo &aInfo) :
29 AliFemtoHiddenInfo(aInfo),
44 if (aInfo.GetTrueMomentum())
45 SetTrueMomentumPos(aInfo.GetTrueMomentum());
46 if (aInfo.GetEmissionPoint())
47 SetEmissionPointPos(aInfo.GetEmissionPoint());
48 fPDGPidPos = aInfo.GetPDGPid();
49 fMassPos = aInfo.GetMass();
51 if (aInfo.GetTrueMomentumPos())
52 SetTrueMomentum(aInfo.GetTrueMomentumPos());
53 if (aInfo.GetEmissionPointPos())
54 SetEmissionPoint(aInfo.GetEmissionPointPos());
55 fPDGPidPos = aInfo.GetPDGPidPos();
56 fMassPos = aInfo.GetMassPos();
58 if (aInfo.GetTrueMomentumNeg())
59 SetTrueMomentumNeg(aInfo.GetTrueMomentumNeg());
60 if (aInfo.GetEmissionPointNeg())
61 SetEmissionPointNeg(aInfo.GetEmissionPointNeg());
62 fPDGPidNeg = aInfo.GetPDGPidNeg();
63 fMassNeg = aInfo.GetMassNeg();
65 //_____________________________________________
66 AliFemtoModelHiddenInfo::~AliFemtoModelHiddenInfo()
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;
76 //_____________________________________________
77 AliFemtoModelHiddenInfo& AliFemtoModelHiddenInfo::operator=(const AliFemtoModelHiddenInfo& aInfo)
79 // assignment operator
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();
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();
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();
118 //_____________________________________________
119 AliFemtoThreeVector *AliFemtoModelHiddenInfo::GetTrueMomentum() const
121 return fTrueMomentum;
123 //_____________________________________________
124 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPoint() const
126 return fEmissionPoint;
128 //_____________________________________________
129 Int_t AliFemtoModelHiddenInfo::GetPDGPid() const
133 //_____________________________________________
134 Double_t AliFemtoModelHiddenInfo::GetMass() const
138 //_____________________________________________
139 void AliFemtoModelHiddenInfo::SetTrueMomentum(AliFemtoThreeVector *aMom)
141 // Set momentum from vector
143 fTrueMomentum->SetX(aMom->x());
144 fTrueMomentum->SetY(aMom->y());
145 fTrueMomentum->SetZ(aMom->z());
148 fTrueMomentum = new AliFemtoThreeVector(*aMom);
151 //_____________________________________________
152 void AliFemtoModelHiddenInfo::SetTrueMomentum(const AliFemtoThreeVector& aMom)
154 // Set momentum from vector
156 fTrueMomentum->SetX(aMom.x());
157 fTrueMomentum->SetY(aMom.y());
158 fTrueMomentum->SetZ(aMom.z());
161 fTrueMomentum = new AliFemtoThreeVector();
162 *fTrueMomentum = aMom;
165 //_____________________________________________
166 void AliFemtoModelHiddenInfo::SetTrueMomentum(Double_t aPx, Double_t aPy, Double_t aPz)
168 // Set momentum from components
169 if (!fTrueMomentum) fTrueMomentum = new AliFemtoThreeVector();
170 fTrueMomentum->SetX(aPx);
171 fTrueMomentum->SetY(aPy);
172 fTrueMomentum->SetZ(aPz);
174 //_____________________________________________
175 void AliFemtoModelHiddenInfo::SetEmissionPoint(AliFemtoLorentzVector *aPos)
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());
185 fEmissionPoint = new AliFemtoLorentzVector(*aPos);
188 //_____________________________________________
189 void AliFemtoModelHiddenInfo::SetEmissionPoint(const AliFemtoLorentzVector& aPos)
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());
199 fEmissionPoint = new AliFemtoLorentzVector();
200 *fEmissionPoint = aPos;
203 //_____________________________________________
204 void AliFemtoModelHiddenInfo::SetPDGPid(Int_t aPid)
208 //_____________________________________________
209 void AliFemtoModelHiddenInfo::SetMass(Double_t aMass)
213 //_____________________________________________
214 void AliFemtoModelHiddenInfo::SetEmissionPoint(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
216 // Set position from components
217 if (fEmissionPoint) {
218 fEmissionPoint->SetX(aRx);
219 fEmissionPoint->SetY(aRy);
220 fEmissionPoint->SetZ(aRz);
221 fEmissionPoint->SetT(aT);
224 fEmissionPoint = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
228 //_____________________________________________
229 AliFemtoThreeVector *AliFemtoModelHiddenInfo::GetTrueMomentumPos() const
231 return fTrueMomentumPos;
233 //_____________________________________________
234 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPointPos() const
236 return fEmissionPointPos;
238 //_____________________________________________
239 Int_t AliFemtoModelHiddenInfo::GetPDGPidPos() const
243 //_____________________________________________
244 Double_t AliFemtoModelHiddenInfo::GetMassPos() const
248 //_____________________________________________
249 void AliFemtoModelHiddenInfo::SetTrueMomentumPos(AliFemtoThreeVector *aMom)
251 // Set momentum from vector
252 if (fTrueMomentumPos) {
253 fTrueMomentumPos->SetX(aMom->x());
254 fTrueMomentumPos->SetY(aMom->y());
255 fTrueMomentumPos->SetZ(aMom->z());
258 fTrueMomentumPos = new AliFemtoThreeVector(*aMom);
261 //_____________________________________________
262 void AliFemtoModelHiddenInfo::SetTrueMomentumPos(const AliFemtoThreeVector& aMom)
264 // Set momentum from vector
265 if (fTrueMomentumPos) {
266 fTrueMomentumPos->SetX(aMom.x());
267 fTrueMomentumPos->SetY(aMom.y());
268 fTrueMomentumPos->SetZ(aMom.z());
271 fTrueMomentumPos = new AliFemtoThreeVector();
272 *fTrueMomentumPos = aMom;
275 //_____________________________________________
276 void AliFemtoModelHiddenInfo::SetTrueMomentumPos(Double_t aPx, Double_t aPy, Double_t aPz)
278 // Set momentum from components
279 if (!fTrueMomentumPos) fTrueMomentumPos = new AliFemtoThreeVector();
280 fTrueMomentumPos->SetX(aPx);
281 fTrueMomentumPos->SetY(aPy);
282 fTrueMomentumPos->SetZ(aPz);
284 //_____________________________________________
285 void AliFemtoModelHiddenInfo::SetEmissionPointPos(AliFemtoLorentzVector *aPos)
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());
295 fEmissionPointPos = new AliFemtoLorentzVector(*aPos);
298 //_____________________________________________
299 void AliFemtoModelHiddenInfo::SetEmissionPointPos(const AliFemtoLorentzVector& aPos)
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());
309 fEmissionPointPos = new AliFemtoLorentzVector();
310 *fEmissionPointPos = aPos;
313 //_____________________________________________
314 void AliFemtoModelHiddenInfo::SetPDGPidPos(Int_t aPid)
318 //_____________________________________________
319 void AliFemtoModelHiddenInfo::SetMassPos(Double_t aMass)
323 //_____________________________________________
324 void AliFemtoModelHiddenInfo::SetEmissionPointPos(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
326 // Set position from components
327 if (fEmissionPointPos) {
328 fEmissionPointPos->SetX(aRx);
329 fEmissionPointPos->SetY(aRy);
330 fEmissionPointPos->SetZ(aRz);
331 fEmissionPointPos->SetT(aT);
334 fEmissionPointPos = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
338 //_____________________________________________
339 AliFemtoThreeVector *AliFemtoModelHiddenInfo::GetTrueMomentumNeg() const
341 return fTrueMomentumNeg;
343 //_____________________________________________
344 AliFemtoLorentzVector *AliFemtoModelHiddenInfo::GetEmissionPointNeg() const
346 return fEmissionPointNeg;
348 //_____________________________________________
349 Int_t AliFemtoModelHiddenInfo::GetPDGPidNeg() const
353 //_____________________________________________
354 Double_t AliFemtoModelHiddenInfo::GetMassNeg() const
358 //_____________________________________________
359 void AliFemtoModelHiddenInfo::SetTrueMomentumNeg(AliFemtoThreeVector *aMom)
361 // Set momentum from vector
362 if (fTrueMomentumNeg) {
363 fTrueMomentumNeg->SetX(aMom->x());
364 fTrueMomentumNeg->SetY(aMom->y());
365 fTrueMomentumNeg->SetZ(aMom->z());
368 fTrueMomentumNeg = new AliFemtoThreeVector(*aMom);
371 //_____________________________________________
372 void AliFemtoModelHiddenInfo::SetTrueMomentumNeg(const AliFemtoThreeVector& aMom)
374 // Set momentum from vector
375 if (fTrueMomentumNeg) {
376 fTrueMomentumNeg->SetX(aMom.x());
377 fTrueMomentumNeg->SetY(aMom.y());
378 fTrueMomentumNeg->SetZ(aMom.z());
381 fTrueMomentumNeg = new AliFemtoThreeVector();
382 *fTrueMomentumNeg = aMom;
385 //_____________________________________________
386 void AliFemtoModelHiddenInfo::SetTrueMomentumNeg(Double_t aPx, Double_t aPy, Double_t aPz)
388 // Set momentum from components
389 if (!fTrueMomentumNeg) fTrueMomentumNeg = new AliFemtoThreeVector();
390 fTrueMomentumNeg->SetX(aPx);
391 fTrueMomentumNeg->SetY(aPy);
392 fTrueMomentumNeg->SetZ(aPz);
394 //_____________________________________________
395 void AliFemtoModelHiddenInfo::SetEmissionPointNeg(AliFemtoLorentzVector *aPos)
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());
405 fEmissionPointNeg = new AliFemtoLorentzVector(*aPos);
408 //_____________________________________________
409 void AliFemtoModelHiddenInfo::SetEmissionPointNeg(const AliFemtoLorentzVector& aPos)
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());
419 fEmissionPointNeg = new AliFemtoLorentzVector();
420 *fEmissionPointNeg = aPos;
423 //_____________________________________________
424 void AliFemtoModelHiddenInfo::SetPDGPidNeg(Int_t aPid)
428 //_____________________________________________
429 void AliFemtoModelHiddenInfo::SetMassNeg(Double_t aMass)
433 //_____________________________________________
434 void AliFemtoModelHiddenInfo::SetEmissionPointNeg(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT)
436 // Set position from components
437 if (fEmissionPointNeg) {
438 fEmissionPointNeg->SetX(aRx);
439 fEmissionPointNeg->SetY(aRy);
440 fEmissionPointNeg->SetZ(aRz);
441 fEmissionPointNeg->SetT(aT);
444 fEmissionPointNeg = new AliFemtoLorentzVector(aRx, aRy, aRz, aT);
449 //_____________________________________________
450 AliFemtoHiddenInfo* AliFemtoModelHiddenInfo::GetParticleHiddenInfo() const
452 // return copy of this hidden info
453 AliFemtoModelHiddenInfo* tBuf = new AliFemtoModelHiddenInfo(*this);