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 | |
---|
20 | class ETruth; |
---|
21 | class LightToEuso; |
---|
22 | |
---|
23 | //////////////////////////////////////////////////////////////////////////////// |
---|
24 | // // |
---|
25 | // MCTruth // |
---|
26 | // // |
---|
27 | // MonteCarlo Truth for an event // |
---|
28 | // // |
---|
29 | //////////////////////////////////////////////////////////////////////////////// |
---|
30 | |
---|
31 | class MCTruth : public EsafMsgSource { |
---|
32 | public: |
---|
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 | |
---|
86 | private: |
---|
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 |
---|