ROOT logo
//K//////////////////////////////////////////////////////////////////////////M//
//K                                                                          M//
//K AliFemtoModelAllHiddenInfo -                                             M//
//K derived class inherits  the base class AliFemtoModelHiddenInfo           M//
//K the hidden info for model calculations                                   M//
//K Stores information needed for the weight generation -                    M//
//K                                                                          M//
//K in addition to  the base class AliFemtoModelHiddenInfo - the true        M//
//K simulated momenta, freeze-out coordinates from model and particle PID    M//
//K New information was added                                                M//
//K 1. Mother ID                                                             M//
//K 2. Mother 4-Momentum                                                     M//
//K 3. Mother emission point 4-vector                                        M//
//K 4. Childs IDs                                                            M//
//K 5. Childs 4-Momentum                                                     M//
//K                                                                          M//
//K//////////////////////////////////////////////////////////////////////////M//
#ifndef ALIFEMTOMODELALLHIDDENINFO_H
#define ALIFEMTOMODELALLHIDDENINFO_H

#include <TH1D.h>
#include "AliFemtoTypes.h"
#include "AliFemtoThreeVector.h"
#include "AliFemtoLorentzVector.h"
#include "AliFemtoHiddenInfo.h"
#include "AliFemtoModelHiddenInfo.h"

class AliFemtoModelAllHiddenInfo : public AliFemtoModelHiddenInfo{

public:
  AliFemtoModelAllHiddenInfo();
  AliFemtoModelAllHiddenInfo(const AliFemtoModelAllHiddenInfo &aInfo);
  virtual ~AliFemtoModelAllHiddenInfo();

  AliFemtoModelAllHiddenInfo& operator=(const AliFemtoModelAllHiddenInfo& aInfo);

  AliFemtoLorentzVector *GetTrueMomentumMother() const;
  AliFemtoLorentzVector *GetEmissionPointMother() const;
  Int_t                  GetPDGPidMother() const;
  AliFemtoLorentzVector *GetTrueMomentumChild1() const;
  AliFemtoLorentzVector *GetTrueMomentumChild2() const;
  Int_t                  GetPDGPidChild1() const;
  Int_t                  GetPDGPidChild2() const;

  void                   SetTrueMomentumMother(AliFemtoLorentzVector *aMomMother);
  void                   SetTrueMomentumMother(const AliFemtoLorentzVector& aMomMother);
  void                   SetTrueMomentumMother(Double_t aMotherPx, Double_t aMotherPy, Double_t aMotherPz, Double_t aMotherE);
  void                   SetEmissionPointMother(AliFemtoLorentzVector *aPos);
  void                   SetEmissionPointMother(const AliFemtoLorentzVector& aPos);
  void                   SetEmissionPointMother(Double_t aRx, Double_t aRy, Double_t aRz, Double_t aT);
  void                   SetPDGPidMother(Int_t aPidMother);
  void                   SetTrueMomentumChild1(AliFemtoLorentzVector *aMomChild1);
  void                   SetTrueMomentumChild1(const AliFemtoLorentzVector& aMomChild1);
  void                   SetTrueMomentumChild1(Double_t aChild1Px, Double_t aChild1Py, Double_t aChild1Pz, Double_t aChild1E);
  void                   SetTrueMomentumChild2(AliFemtoLorentzVector *aMomChild2);
  void                   SetTrueMomentumChild2(const AliFemtoLorentzVector& aMomChild2);
  void                   SetTrueMomentumChild2(Double_t aChild2Px, Double_t aChild2Py, Double_t aChild2Pz, Double_t aChild2E);
  void                   SetPDGPidChild1(Int_t aPidChild1);
  void                   SetPDGPidChild2(Int_t aPidChild2);


// !!! MANDATORY !!!
// --- Copy the hidden info from AliFemtoTrack to AliFemtoParticle
  virtual AliFemtoModelHiddenInfo* Clone() const;
 protected:
  virtual AliFemtoModelHiddenInfo* GetParticleHiddenInfo() const;

  AliFemtoLorentzVector *fTrueMomentumMother;  // True (simulated) momentum of Mother (100.,100.,100.,100. if Mother -1)
  AliFemtoLorentzVector *fEmissionPointMother; // Emission point coordinates Mother;
  Int_t                  fPDGPidMother;        // True PID of the particle mother
  AliFemtoLorentzVector *fTrueMomentumChild1;  // True (simulated) momentum of Child1  (200.,200.,200.,200. if Child1 -1)
  AliFemtoLorentzVector *fTrueMomentumChild2;  // True (simulated) momentum of Child2  (200.,200.,200.,200. if Child2 -1)
  Int_t                  fPDGPidChild1;        // True PID of the particle child1 (-1 if is not)
  Int_t                  fPDGPidChild2;        // True PID of the particle child2 (-1 if is not)

};
//_______________________________________
inline AliFemtoModelHiddenInfo* AliFemtoModelAllHiddenInfo::Clone() const{
  // return exact copy of this hidden info
  return GetParticleHiddenInfo();
}

#endif
 AliFemtoModelAllHiddenInfo.h:1
 AliFemtoModelAllHiddenInfo.h:2
 AliFemtoModelAllHiddenInfo.h:3
 AliFemtoModelAllHiddenInfo.h:4
 AliFemtoModelAllHiddenInfo.h:5
 AliFemtoModelAllHiddenInfo.h:6
 AliFemtoModelAllHiddenInfo.h:7
 AliFemtoModelAllHiddenInfo.h:8
 AliFemtoModelAllHiddenInfo.h:9
 AliFemtoModelAllHiddenInfo.h:10
 AliFemtoModelAllHiddenInfo.h:11
 AliFemtoModelAllHiddenInfo.h:12
 AliFemtoModelAllHiddenInfo.h:13
 AliFemtoModelAllHiddenInfo.h:14
 AliFemtoModelAllHiddenInfo.h:15
 AliFemtoModelAllHiddenInfo.h:16
 AliFemtoModelAllHiddenInfo.h:17
 AliFemtoModelAllHiddenInfo.h:18
 AliFemtoModelAllHiddenInfo.h:19
 AliFemtoModelAllHiddenInfo.h:20
 AliFemtoModelAllHiddenInfo.h:21
 AliFemtoModelAllHiddenInfo.h:22
 AliFemtoModelAllHiddenInfo.h:23
 AliFemtoModelAllHiddenInfo.h:24
 AliFemtoModelAllHiddenInfo.h:25
 AliFemtoModelAllHiddenInfo.h:26
 AliFemtoModelAllHiddenInfo.h:27
 AliFemtoModelAllHiddenInfo.h:28
 AliFemtoModelAllHiddenInfo.h:29
 AliFemtoModelAllHiddenInfo.h:30
 AliFemtoModelAllHiddenInfo.h:31
 AliFemtoModelAllHiddenInfo.h:32
 AliFemtoModelAllHiddenInfo.h:33
 AliFemtoModelAllHiddenInfo.h:34
 AliFemtoModelAllHiddenInfo.h:35
 AliFemtoModelAllHiddenInfo.h:36
 AliFemtoModelAllHiddenInfo.h:37
 AliFemtoModelAllHiddenInfo.h:38
 AliFemtoModelAllHiddenInfo.h:39
 AliFemtoModelAllHiddenInfo.h:40
 AliFemtoModelAllHiddenInfo.h:41
 AliFemtoModelAllHiddenInfo.h:42
 AliFemtoModelAllHiddenInfo.h:43
 AliFemtoModelAllHiddenInfo.h:44
 AliFemtoModelAllHiddenInfo.h:45
 AliFemtoModelAllHiddenInfo.h:46
 AliFemtoModelAllHiddenInfo.h:47
 AliFemtoModelAllHiddenInfo.h:48
 AliFemtoModelAllHiddenInfo.h:49
 AliFemtoModelAllHiddenInfo.h:50
 AliFemtoModelAllHiddenInfo.h:51
 AliFemtoModelAllHiddenInfo.h:52
 AliFemtoModelAllHiddenInfo.h:53
 AliFemtoModelAllHiddenInfo.h:54
 AliFemtoModelAllHiddenInfo.h:55
 AliFemtoModelAllHiddenInfo.h:56
 AliFemtoModelAllHiddenInfo.h:57
 AliFemtoModelAllHiddenInfo.h:58
 AliFemtoModelAllHiddenInfo.h:59
 AliFemtoModelAllHiddenInfo.h:60
 AliFemtoModelAllHiddenInfo.h:61
 AliFemtoModelAllHiddenInfo.h:62
 AliFemtoModelAllHiddenInfo.h:63
 AliFemtoModelAllHiddenInfo.h:64
 AliFemtoModelAllHiddenInfo.h:65
 AliFemtoModelAllHiddenInfo.h:66
 AliFemtoModelAllHiddenInfo.h:67
 AliFemtoModelAllHiddenInfo.h:68
 AliFemtoModelAllHiddenInfo.h:69
 AliFemtoModelAllHiddenInfo.h:70
 AliFemtoModelAllHiddenInfo.h:71
 AliFemtoModelAllHiddenInfo.h:72
 AliFemtoModelAllHiddenInfo.h:73
 AliFemtoModelAllHiddenInfo.h:74
 AliFemtoModelAllHiddenInfo.h:75
 AliFemtoModelAllHiddenInfo.h:76
 AliFemtoModelAllHiddenInfo.h:77
 AliFemtoModelAllHiddenInfo.h:78
 AliFemtoModelAllHiddenInfo.h:79
 AliFemtoModelAllHiddenInfo.h:80
 AliFemtoModelAllHiddenInfo.h:81
 AliFemtoModelAllHiddenInfo.h:82
 AliFemtoModelAllHiddenInfo.h:83