]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoModelAllHiddenInfo.h
Migration of PWG2/FEMTOSCOPY to PWGCF/FEMTOSCOPY
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemtoUser / AliFemtoModelAllHiddenInfo.h
1 //K//////////////////////////////////////////////////////////////////////////M//
2 //K                                                                          M//
3 //K AliFemtoModelAllHiddenInfo -                                             M//
4 //K derived class inherits  the base class AliFemtoModelHiddenInfo           M//
5 //K the hidden info for model calculations                                   M//
6 //K Stores information needed for the weight generation -                    M//
7 //K                                                                          M//
8 //K in addition to  the base class AliFemtoModelHiddenInfo - the true        M//
9 //K simulated momenta, freeze-out coordinates from model and particle PID    M//
10 //K New information was added                                                M//
11 //K 1. Mother ID                                                             M//
12 //K 2. Mother 4-Momentum                                                     M//
13 //K 3. Mother emission point 4-vector                                        M//
14 //K 4. Childs IDs                                                            M//
15 //K 5. Childs 4-Momentum                                                     M//
16 //K                                                                          M//
17 //K//////////////////////////////////////////////////////////////////////////M//
18 #ifndef ALIFEMTOMODELALLHIDDENINFO_H
19 #define ALIFEMTOMODELALLHIDDENINFO_H
20
21 #include <TH1D.h>
22 #include "AliFemtoTypes.h"
23 #include "AliFemtoThreeVector.h"
24 #include "AliFemtoLorentzVector.h"
25 #include "AliFemtoHiddenInfo.h"
26 #include "AliFemtoModelHiddenInfo.h"
27
28 class AliFemtoModelAllHiddenInfo : public AliFemtoModelHiddenInfo{
29
30 public:
31   AliFemtoModelAllHiddenInfo();
32   AliFemtoModelAllHiddenInfo(const AliFemtoModelAllHiddenInfo &aInfo);
33   virtual ~AliFemtoModelAllHiddenInfo();
34
35   AliFemtoModelAllHiddenInfo& operator=(const AliFemtoModelAllHiddenInfo& aInfo);
36
37   AliFemtoLorentzVector *GetTrueMomentumMother() const;
38   AliFemtoLorentzVector *GetEmissionPointMother() const;
39   Int_t                  GetPDGPidMother() const;
40   AliFemtoLorentzVector *GetTrueMomentumChild1() const;
41   AliFemtoLorentzVector *GetTrueMomentumChild2() const;
42   Int_t                  GetPDGPidChild1() const;
43   Int_t                  GetPDGPidChild2() const;
44
45   void                   SetTrueMomentumMother(AliFemtoLorentzVector *aMomMother);
46   void                   SetTrueMomentumMother(const AliFemtoLorentzVector& aMomMother);
47   void                   SetTrueMomentumMother(Double_t aMotherPx, Double_t aMotherPy, Double_t aMotherPz, Double_t aMotherE);
48   void                   SetEmissionPointMother(AliFemtoLorentzVector *aPos);
49   void                   SetEmissionPointMother(const AliFemtoLorentzVector& aPos);
50   void                   SetEmissionPointMother(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT);
51   void                   SetPDGPidMother(Int_t aPidMother);
52   void                   SetTrueMomentumChild1(AliFemtoLorentzVector *aMomChild1);
53   void                   SetTrueMomentumChild1(const AliFemtoLorentzVector& aMomChild1);
54   void                   SetTrueMomentumChild1(Double_t aChild1Px, Double_t aChild1Py, Double_t aChild1Pz, Double_t aChild1E);
55   void                   SetTrueMomentumChild2(AliFemtoLorentzVector *aMomChild2);
56   void                   SetTrueMomentumChild2(const AliFemtoLorentzVector& aMomChild2);
57   void                   SetTrueMomentumChild2(Double_t aChild2Px, Double_t aChild2Py, Double_t aChild2Pz, Double_t aChild2E);
58   void                   SetPDGPidChild1(Int_t aPidChild1);
59   void                   SetPDGPidChild2(Int_t aPidChild2);
60
61
62 // !!! MANDATORY !!!
63 // --- Copy the hidden info from AliFemtoTrack to AliFemtoParticle
64   virtual AliFemtoModelHiddenInfo* Clone() const;
65  protected:
66   virtual AliFemtoModelHiddenInfo* GetParticleHiddenInfo() const;
67
68   AliFemtoLorentzVector *fTrueMomentumMother;  // True (simulated) momentum of Mother (100.,100.,100.,100. if Mother -1)
69   AliFemtoLorentzVector *fEmissionPointMother; // Emission point coordinates Mother;
70   Int_t                  fPDGPidMother;        // True PID of the particle mother
71   AliFemtoLorentzVector *fTrueMomentumChild1;  // True (simulated) momentum of Child1  (200.,200.,200.,200. if Child1 -1)
72   AliFemtoLorentzVector *fTrueMomentumChild2;  // True (simulated) momentum of Child2  (200.,200.,200.,200. if Child2 -1)
73   Int_t                  fPDGPidChild1;        // True PID of the particle child1 (-1 if is not)
74   Int_t                  fPDGPidChild2;        // True PID of the particle child2 (-1 if is not)
75
76 };
77 //_______________________________________
78 inline AliFemtoModelHiddenInfo* AliFemtoModelAllHiddenInfo::Clone() const{
79   // return exact copy of this hidden info
80   return GetParticleHiddenInfo();
81 }
82
83 #endif