]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoModelHiddenInfo.h
Merge branch 'master_patch'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoModelHiddenInfo.h
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
9 #ifndef ALIFEMTOMODELHIDDENINFO_H
10 #define ALIFEMTOMODELHIDDENINFO_H
11
12 #include <TH1D.h>
13 #include "AliFemtoTypes.h"
14 #include "AliFemtoThreeVector.h"
15 #include "AliFemtoLorentzVector.h"
16 #include "AliFemtoHiddenInfo.h"
17
18 class AliFemtoModelHiddenInfo : public AliFemtoHiddenInfo{
19
20 public:
21   AliFemtoModelHiddenInfo();
22   AliFemtoModelHiddenInfo(const AliFemtoModelHiddenInfo &aInfo);
23   virtual ~AliFemtoModelHiddenInfo();
24
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;
31
32   AliFemtoThreeVector   *GetTrueMomentumPos() const;
33   AliFemtoLorentzVector *GetEmissionPointPos() const;
34   Int_t                  GetPDGPidPos() const;
35   Double_t               GetMassPos() const;
36
37   AliFemtoThreeVector   *GetTrueMomentumNeg() const;
38   AliFemtoLorentzVector *GetEmissionPointNeg() const;
39   Int_t                  GetPDGPidNeg() const;
40   Double_t               GetMassNeg() const;
41
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);
51
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);
60
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);
69
70 // !!! MANDATORY !!!
71 // --- Copy the hidden info from AliFemtoTrack to AliFemtoParticle
72   virtual AliFemtoHiddenInfo* Clone() const;
73
74  protected:
75   virtual AliFemtoHiddenInfo* GetParticleHiddenInfo() const;
76
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
82
83   //daughter particles
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
88
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
93 };
94 //_______________________________________
95 inline AliFemtoHiddenInfo* AliFemtoModelHiddenInfo::Clone() const{
96   // return exact copy of this hidden info
97   return GetParticleHiddenInfo();
98 }
99
100 #endif