source: trunk/MagicSoft/include-Classes/MMcFormat/MMcEvt.hxx@ 2751

Last change on this file since 2751 was 2747, checked in by tbretz, 21 years ago
*** empty log message ***
File size: 6.0 KB
Line 
1#ifndef __MMcEvt__
2#define __MMcEvt__
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7
8class MMcEvt : public MParContainer
9{
10 private:
11 UInt_t fEvtNumber;
12 UShort_t fPartId; // Type of particle
13 Float_t fEnergy; // [GeV] Energy
14 Float_t fThick0; // [g/cm2]
15 Float_t fFirstTarget; // []
16 Float_t fZFirstInteraction; // [cm]
17
18 Float_t fTheta; // [rad] Theta angle of event
19 Float_t fPhi; // [rad] Phi angle of event (see class description)
20
21 Float_t fCoreD; // [cm] Core d pos
22 Float_t fCoreX; // [cm] Core x pos
23 Float_t fCoreY; // [cm] Core y pos
24 Float_t fImpact; // [cm] impact parameter
25
26 // Up to here, the info from the CORSIKA event header.
27
28 // Telescope orientation:
29 Float_t fTelescopePhi; // [rad] (see class description)
30 Float_t fTelescopeTheta; // [rad]
31
32 // Time of first and last photon:
33 Float_t fTimeFirst; // [ns]
34 Float_t fTimeLast; // [ns]
35
36 // 6 parameters and chi2 of the NKG fit to the longitudinal
37 // particle distribution. See CORSIKA manual for explanation,
38 // section 4.42 "Longitudinal shower development":
39 //
40 Float_t fLongiNmax; // [particles]
41 Float_t fLongit0; // [g/cm2]
42 Float_t fLongitmax; // [g/cm2]
43 Float_t fLongia; // [g/cm2]
44 Float_t fLongib; // []
45 Float_t fLongic; // [cm2/g]
46 Float_t fLongichi2;
47
48 UInt_t fPhotIni; // [ph] Initial number of photons
49 UInt_t fPassPhotAtm; // [ph] Passed atmosphere
50 UInt_t fPassPhotRef; // [ph] Passed reflector(reflectivity + effective area)
51 UInt_t fPassPhotCone; // [ph] Passed glas
52 UInt_t fPhotElfromShower; // [phe] Passed qe coming from the shower
53 UInt_t fPhotElinCamera; // [phe] usPhotElfromShower + mean of phe
54 // from NSB
55
56 // Now follow the fraction of photons reaching the camera produced by
57 // electrons, muons and other particles respectively:
58
59 Float_t fElecCphFraction;
60 Float_t fMuonCphFraction;
61 Float_t fOtherCphFraction;
62
63
64
65 public:
66 MMcEvt() ;
67
68 MMcEvt( UInt_t, UShort_t, Float_t, Float_t, Float_t,
69 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
70 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
71 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
72 UInt_t, UInt_t, UInt_t, UInt_t, UInt_t, UInt_t,
73 Float_t, Float_t, Float_t) ;
74
75 ~MMcEvt();
76
77 void Clear(Option_t *opt=NULL);
78
79 void Fill( UInt_t, UShort_t, Float_t, Float_t, Float_t,
80 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
81 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
82 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
83 UInt_t, UInt_t, UInt_t, UInt_t, UInt_t, UInt_t,
84 Float_t, Float_t, Float_t) ;
85
86 //virtual void AsciiWrite(ofstream &fout) const;
87
88 void Print(Option_t *opt=NULL) const;
89
90 UInt_t GetEvtNumber() const { return fEvtNumber; } //Get Event Number
91 Short_t GetPartId() const { return fPartId; } //Get Type of particle
92 Float_t GetEnergy() const { return fEnergy; } //Get Energy
93
94 Float_t GetTheta() const { return fTheta; } //Get Theta angle
95 Float_t GetPhi() const { return fPhi ; } //Get Phi angle
96
97/* Float_t GetCoreD() { return fCoreD; } //Get Core d pos */
98 Float_t GetCoreX() { return fCoreX; } //Get Core x pos
99 Float_t GetCoreY() { return fCoreY; } //Get Core y pos
100 Float_t GetImpact() const { return fImpact;} //Get impact parameter
101
102/* UInt_t GetPhotIni() { return fPhotIni; } //Get Initial photons */
103/* UInt_t GetPassPhotAtm() { return fPassPhotAtm;} //Get Passed atmosphere */
104/* UInt_t GetPassPhotRef() { return fPassPhotRef; } //Get Passed reflector */
105/* UInt_t GetPassPhotCone() { return fPassPhotCone; } //Get Passed glas */
106 UInt_t GetPhotElfromShower() { return fPhotElfromShower; } //Get Passed qe from shower
107/* UInt_t GetPhotElinCamera() { return fPhotElinCamera; } //Get Passed qe total*/
108
109 Float_t GetTelescopePhi() const { return fTelescopePhi; }
110 Float_t GetTelescopeTheta() const { return fTelescopeTheta; }
111 Float_t GetOtherCphFraction() const { return fOtherCphFraction; }
112
113 Float_t GetLongiNmax() const { return fLongiNmax; }
114 Float_t GetLongia() const { return fLongia; }
115 Float_t GetLongib() const { return fLongib; }
116 Float_t GetLongic() const { return fLongic; }
117 Float_t GetLongichi2() const { return fLongichi2; }
118 Float_t GetLongit0() const { return fLongit0; }
119 Float_t GetLongitmax() const { return fLongitmax; }
120
121 void SetPartId(Short_t PartId)
122 {fPartId=PartId;} //Set Type of particle
123
124 void SetEnergy(Float_t Energy)
125 { fEnergy=Energy; } //Set Energy
126
127 void SetTheta(Float_t Theta)
128 { fTheta=Theta; } //Set Theta angle
129
130 void SetPhi(Float_t Phi)
131 { fPhi=Phi; } //Set Phi angle
132
133 void SetCoreD(Float_t CoreD)
134 { fCoreD=CoreD; } //Set Core d pos
135
136 void SetCoreX(Float_t CoreX)
137 { fCoreX=CoreX; } //Set Core x pos
138
139 void SetCoreY(Float_t CoreY )
140 { fCoreY=CoreY; } //Set Core y pos
141
142 void SetImpact(Float_t Impact)
143 { fImpact=Impact;} //Set impact parameter
144
145 // DO NOT USE THIS IS A WORKAROUND!
146 void SetTelescopeTheta(Float_t Theta) { fTelescopeTheta=Theta; }
147 void SetTelescopePhi(Float_t Phi) { fTelescopePhi=Phi; }
148
149
150/* void SetPhotIni(Short_t PhotIni) */
151/* { fPhotIni=PhotIni; } //Set Initial photons */
152/* void SetPassPhotAtm(Short_t PassPhotAtm) */
153/* { fPassPhotAtm=PassPhotAtm;} //Set Passed atmosphere */
154/* void SetPassPhotRef(Short_t PassPhotRef) */
155/* { fPassPhotRef=PassPhotRef ; } //Set Passed reflector */
156/* void SetPassPhotCone(Short_t PhotCon) */
157/* { fPassPhotCone=PhotCon; } //Set Passed glas */
158
159
160 ClassDef(MMcEvt, 3) //Stores Montecarlo Information of one event (eg. the energy)
161
162};
163
164#endif
165
166
167
168
169
Note: See TracBrowser for help on using the repository browser.