source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/simulation/generators/genbase/include/MCTruth.hh @ 117

Last change on this file since 117 was 117, checked in by moretto, 11 years ago

ESAF version compilable on mac OS

File size: 5.8 KB
Line 
1// $Id: MCTruth.hh 2666 2006-04-12 09:46:25Z moreggia $
2// Author: M. Pallavicini
3
4/*****************************************************************************
5 * ESAF: Euso Simulation and Analysis Framework                              *
6 *                                                                           *
7 *  Id: MCTruth                                                              *
8 *  Package: GenBase                                                         *
9 *  Coordinator: Sergio.Bottai, D.Naumov                                     *
10 *                                                                           *
11 *****************************************************************************/
12
13#ifndef __MCTRUTH_HH_
14#define __MCTRUTH_HH_
15
16#include <string>
17#include "EarthVector.hh"
18#include "EsafMsgSource.hh"
19
20class ETruth;
21class LightToEuso;
22
23////////////////////////////////////////////////////////////////////////////////
24//                                                                            //
25// MCTruth                                                                    //
26//                                                                            //
27// MonteCarlo Truth for an event                                              //
28//                                                                            //
29////////////////////////////////////////////////////////////////////////////////
30
31class MCTruth : public EsafMsgSource {
32public:
33    MCTruth();
34    virtual ~MCTruth();
35
36    void Clear();
37
38    // dump info on string
39    const string& Dump();
40
41    // pointer to LightToEuso object
42    inline LightToEuso* GetLightToEuso() { return pLight;}
43    inline void SetLightToEuso(LightToEuso* p) { pLight = p; }
44
45    inline void SetEnergy(const Double_t& e) {fEnergy=e;}
46    inline void SetThetaPhi(const Double_t& th, const Double_t& ph) {fTheta=th;fPhi=ph;}
47    inline void SetParticle(Int_t code) { fParticleCode = code; BuildName(); }
48    inline void SetFirstInt(const EarthVector& p, const Double_t& x1) { fInitPos=p; fX1=x1;}
49    inline void SetEarthImpact(const EarthVector& p, const Double_t& ea) { fEarthImpact=p; fEarthAge=ea;}
50    inline void SetEarthImpact(const EarthVector& p) { fEarthImpact=p;}
51    inline void SetEarthAge(const Double_t& ea) { fEarthAge=ea;}
52    inline void SetTOAImpact(const EarthVector& p) { fTOAImpact=p;}
53    inline void SetShowerMax(const EarthVector& p, const Double_t& mx) { fShowerMaxPos=p; fShowerXMax=mx;}
54    inline void SetHclouds( Double_t h ) { fHclouds = h; }
55    inline void SetCloudsthick( Double_t t ) { fCloudsthick = t; }
56    inline void SetCloudsOD( Double_t od ) { fCloudsOD = od; }
57    inline void SetLatitude(Double_t lat) { fLatitude = lat;}
58    inline void SetLongitude(Double_t longi) { fLongitude = longi;}
59    inline void SetDate(Double_t date) { fDate = date;}
60    inline void SetHGround( Double_t h ) { fHGround = h; }
61    inline void SetGroundAlbedo( Double_t alb ) { fGroundAlbedo = alb; }
62    inline void SetGroundSpecular( Double_t spec ) { fGroundSpecular = spec; }
63   
64    inline Double_t GetEnergy() const { return fEnergy; }
65    inline Double_t GetTheta() const { return fTheta; }
66    inline Double_t GetPhi() const { return fPhi; }
67    inline const string& GetParticleName() { return fParticleName; }
68    inline Int_t GetParticleCode() const { return fParticleCode; }
69    inline const EarthVector& GetInitPos() { return fInitPos; }
70    inline Double_t GetX1() const { return fX1; }
71    inline const EarthVector& GetEarthImpact() { return fEarthImpact; }
72    inline const EarthVector& GetTOAImpact() { return fTOAImpact; }
73    inline Double_t GetEarthAge() const { return fEarthAge; }
74    inline const EarthVector& GetShowerMaxPos() { return fShowerMaxPos; }
75    inline Double_t GetShowerXMax() const { return fShowerXMax; }
76    inline Double_t GetHclouds() const { return fHclouds; }
77    inline Double_t GetCloudsthick() const { return fCloudsthick; }
78    inline Double_t GetCloudsOD() const { return fCloudsOD; }
79    inline Double_t GetLatitude() const { return fLatitude;}
80    inline Double_t GetLongitude() const { return fLongitude;}
81    inline Double_t GetDate() const { return fDate;}
82    inline Double_t GetHGround() const { return fHGround; }
83    inline Double_t GetGroundAlbedo() const { return fGroundAlbedo; }
84    inline Double_t GetGroundSpecular() const { return fGroundSpecular; }
85
86private:
87    LightToEuso *pLight;
88
89    Double_t fEnergy;         // primary EECR energy (eV)
90    Double_t fTheta;          // incidence angle (rad)
91    Double_t fPhi;            // azimuth; Phi=0 corresponds Y=0
92    string fParticleName;     // particle name (see above)
93    Int_t fParticleCode;      // same as name with code instead of strings
94    EarthVector fInitPos;     // first interaction point (3D coord, Km)
95    Double_t fX1;             // interaction depth in g/cm^2
96    EarthVector fEarthImpact; // impact point of shower on earth (clouds ignored)
97    EarthVector fTOAImpact;   // impact point on top of atmosphere
98    Double_t fEarthAge;       // age of the shower at impact
99    EarthVector fShowerMaxPos;// shower max position (3D coord, Km)
100    Double_t fShowerXMax;     // shower max depth (g/cm^2)       
101    Double_t fHclouds;        // altitude of the clouds
102    Double_t fCloudsthick;    // clouds thickness
103    Double_t fCloudsOD;       // clouds optical depth
104    Double_t fLatitude;       // geodetic latitude
105    Double_t fLongitude;      // geodetic longitude
106    Double_t fDate;           // event date (in sec from 1st Jan 00:00:00) - UT (year not taken into account)
107    Double_t fHGround;        // ground altitude
108    Double_t fGroundAlbedo;   // ground albedo
109    Double_t fGroundSpecular; // ground specular component intensity
110   
111    string fDumpText;         // string used to Dump data on ASCII
112   
113    void BuildName();         // fill particle name according to code
114   
115    ClassDef(MCTruth,0)
116};
117
118#endif
Note: See TracBrowser for help on using the repository browser.