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 ////////////////////////////////////////////////////////////////////////////////
9 #ifndef ALIFEMTOMODELHIDDENINFO_H
10 #define ALIFEMTOMODELHIDDENINFO_H
13 #include "AliFemtoTypes.h"
14 #include "AliFemtoThreeVector.h"
15 #include "AliFemtoLorentzVector.h"
16 #include "AliFemtoHiddenInfo.h"
18 class AliFemtoModelHiddenInfo : public AliFemtoHiddenInfo{
21 AliFemtoModelHiddenInfo();
22 AliFemtoModelHiddenInfo(const AliFemtoModelHiddenInfo &aInfo);
23 virtual ~AliFemtoModelHiddenInfo();
25 AliFemtoModelHiddenInfo& operator=(const AliFemtoModelHiddenInfo& aInfo);
26 AliFemtoThreeVector *GetTrueMomentum() const;
27 AliFemtoLorentzVector *GetEmissionPoint() const;
28 Int_t GetPDGPid() const;
29 Int_t GetMotherPdgCode() const;
30 Double_t GetMass() const;
32 AliFemtoThreeVector *GetTrueMomentumPos() const;
33 AliFemtoLorentzVector *GetEmissionPointPos() const;
34 Int_t GetPDGPidPos() const;
35 Double_t GetMassPos() const;
37 AliFemtoThreeVector *GetTrueMomentumNeg() const;
38 AliFemtoLorentzVector *GetEmissionPointNeg() const;
39 Int_t GetPDGPidNeg() const;
40 Double_t GetMassNeg() const;
42 void SetTrueMomentum(AliFemtoThreeVector *aMom);
43 void SetTrueMomentum(const AliFemtoThreeVector& aMom);
44 void SetTrueMomentum(Double_t aPx, Double_t aPy, Double_t aPz);
45 void SetEmissionPoint(AliFemtoLorentzVector *aPos);
46 void SetEmissionPoint(const AliFemtoLorentzVector& aPos);
47 void SetEmissionPoint(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT);
48 void SetPDGPid(Int_t aPid);
49 void SetMotherPdgCode(Int_t motherPdg);
50 void SetMass(Double_t aMass);
52 void SetTrueMomentumPos(AliFemtoThreeVector *aMom);
53 void SetTrueMomentumPos(const AliFemtoThreeVector& aMom);
54 void SetTrueMomentumPos(Double_t aPx, Double_t aPy, Double_t aPz);
55 void SetEmissionPointPos(AliFemtoLorentzVector *aPos);
56 void SetEmissionPointPos(const AliFemtoLorentzVector& aPos);
57 void SetEmissionPointPos(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT);
58 void SetPDGPidPos(Int_t aPid);
59 void SetMassPos(Double_t aMass);
61 void SetTrueMomentumNeg(AliFemtoThreeVector *aMom);
62 void SetTrueMomentumNeg(const AliFemtoThreeVector& aMom);
63 void SetTrueMomentumNeg(Double_t aPx, Double_t aPy, Double_t aPz);
64 void SetEmissionPointNeg(AliFemtoLorentzVector *aPos);
65 void SetEmissionPointNeg(const AliFemtoLorentzVector& aPos);
66 void SetEmissionPointNeg(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT);
67 void SetPDGPidNeg(Int_t aPid);
68 void SetMassNeg(Double_t aMass);
71 // --- Copy the hidden info from AliFemtoTrack to AliFemtoParticle
72 virtual AliFemtoHiddenInfo* Clone() const;
75 virtual AliFemtoHiddenInfo* GetParticleHiddenInfo() const;
77 AliFemtoThreeVector *fTrueMomentum; // True (simulated) momentum
78 AliFemtoLorentzVector *fEmissionPoint; // Emission point coordinates
79 Int_t fPDGPid; // True PID of the particle
80 Int_t fMotherPdg; // PDG code of particle's mother
81 Double_t fMass; // True particle mass
84 AliFemtoThreeVector *fTrueMomentumPos; // True (simulated) momentum of positive daughter
85 AliFemtoLorentzVector *fEmissionPointPos; // Emission point coordinates of positive daughter
86 Int_t fPDGPidPos; // True PID of positive daughter
87 Double_t fMassPos; // True particle mass of positive daughter
89 AliFemtoThreeVector *fTrueMomentumNeg; // True (simulated) momentum of negative daughter
90 AliFemtoLorentzVector *fEmissionPointNeg; // Emission point coordinates of negative daughter
91 Int_t fPDGPidNeg; // True PID of negative daughter
92 Double_t fMassNeg; // True particle mass of negative daughter
94 //_______________________________________
95 inline AliFemtoHiddenInfo* AliFemtoModelHiddenInfo::Clone() const{
96 // return exact copy of this hidden info
97 return GetParticleHiddenInfo();