source: branches/Mars_MC/mmc/MMcEvt.hxx@ 17997

Last change on this file since 17997 was 17042, checked in by ftemme, 11 years ago
the mc evt number shouldn't be the fits column named EventNum in the outputfiles of ceres, see MRawEvtHeader.h instead
File size: 5.0 KB
Line 
1#ifndef MARS_MMcEvt
2#define MARS_MMcEvt
3
4#ifndef MARS_MMcEvtBasic
5#include "MMcEvtBasic.h"
6#endif
7
8
9class MMcEvt : public MMcEvtBasic
10{
11private:
12 UInt_t fEvtNumber; // [fits: name=EventNum ; unit=uint32]
13 Float_t fThick0; // [g/cm2]
14 Float_t fFirstTarget; // []
15 Float_t fZFirstInteraction; // [cm]
16
17 Float_t fCoreD; // [cm] Core d pos
18 Float_t fCoreX; // [cm] Core x pos
19 Float_t fCoreY; // [cm] Core y pos
20
21 // Up to here, the info from the CORSIKA event header.
22
23 // Time of first and last photon:
24 Float_t fTimeFirst; // [ns]
25 Float_t fTimeLast; // [ns]
26
27 // 6 parameters and chi2 of the NKG fit to the longitudinal
28 // particle distribution. See CORSIKA manual for explanation,
29 // section 4.42 "Longitudinal shower development":
30 //
31 Float_t fLongiNmax; // [particles]
32 Float_t fLongit0; // [g/cm2]
33 Float_t fLongitmax; // [g/cm2]
34 Float_t fLongia; // [g/cm2]
35 Float_t fLongib; // []
36 Float_t fLongic; // [cm2/g]
37 Float_t fLongichi2;
38
39 UInt_t fPhotIni; // [ph] Initial number of photons
40 UInt_t fPassPhotAtm; // [ph] Passed atmosphere
41 UInt_t fPassPhotRef; // [ph] Passed reflector(reflectivity + effective area)
42 UInt_t fPassPhotCone; // [ph] Within any valid pixel, before plexiglas
43 UInt_t fPhotElfromShower; // [phe] Passed qe, coming from the shower
44 UInt_t fPhotElinCamera; // [phe] usPhotElfromShower + mean of phe from NSB
45
46 // Now follow the fraction of photons reaching the camera produced by
47 // electrons, muons and other particles respectively:
48
49 Float_t fElecCphFraction;
50 Float_t fMuonCphFraction;
51 Float_t fOtherCphFraction;
52
53 Float_t fFadcTimeJitter;
54
55 Int_t fEventReuse; // Number running from 0 to N-1, being N the number
56 // of times a Corsika event has been reused, by
57 // orienting the telescope in different ways or by
58 // setting it at a different location on the ground.
59
60public:
61 MMcEvt();
62 MMcEvt(UInt_t, ParticleId_t, Float_t, Float_t, Float_t,
63 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
64 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
65 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
66 UInt_t, UInt_t, UInt_t, UInt_t, UInt_t, UInt_t,
67 Float_t, Float_t, Float_t, Float_t, Int_t ireuse=0) ;
68
69 // Getter
70 UInt_t GetEvtNumber() const { return fEvtNumber; } //Get Event Number
71
72 Float_t GetCoreX() const { return fCoreX; } //Get Core x pos
73 Float_t GetCoreY() const { return fCoreY; } //Get Core y pos
74
75 UInt_t GetPhotIni() const { return fPhotIni; } //Get Initial photons
76 UInt_t GetPassPhotAtm() const { return fPassPhotAtm;} //Get Passed atmosphere
77 UInt_t GetPassPhotRef() const { return fPassPhotRef; } //Get Passed reflector
78 UInt_t GetPassPhotCone() const { return fPassPhotCone; } //Get Passed glas
79 UInt_t GetPhotElfromShower() const { return fPhotElfromShower; } //Get Passed qe from shower
80 UInt_t GetPhotElinCamera() const { return fPhotElinCamera; } //Get Passed qe total
81 Float_t GetZFirstInteraction() const { return fZFirstInteraction; }
82
83 Float_t GetOtherCphFraction() const { return fOtherCphFraction; }
84
85 Float_t GetLongiNmax() const { return fLongiNmax; }
86 Float_t GetLongia() const { return fLongia; }
87 Float_t GetLongib() const { return fLongib; }
88 Float_t GetLongic() const { return fLongic; }
89 Float_t GetLongichi2() const { return fLongichi2; }
90 Float_t GetLongit0() const { return fLongit0; }
91 Float_t GetLongitmax() const { return fLongitmax; }
92
93 Float_t GetFadcTimeJitter() const { return fFadcTimeJitter; }
94
95 Float_t GetMuonCphFraction() const { return fMuonCphFraction; }
96
97 TString GetDescription(const TString &s="") const;
98
99 // Setter
100 void SetCoreD(Float_t CoreD) { fCoreD=CoreD; } //Set Core d pos
101 void SetCoreX(Float_t CoreX) { fCoreX=CoreX; } //Set Core x pos
102 void SetCoreY(Float_t CoreY) { fCoreY=CoreY; } //Set Core y pos
103
104 void SetEvtNumber(UInt_t n) { fEvtNumber=n; }
105 void SetEventReuse(UInt_t n) { fEventReuse=n; }
106 void SetPhotElfromShower(UInt_t n) { fPhotElfromShower=n; }
107
108 void Fill( UInt_t, ParticleId_t, Float_t, Float_t, Float_t,
109 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
110 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
111 Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
112 UInt_t, UInt_t, UInt_t, UInt_t, UInt_t, UInt_t,
113 Float_t, Float_t, Float_t, Float_t, Int_t ireuse=0);
114
115 // TObject
116 void Print(Option_t *opt=NULL) const;
117 void Clear(Option_t *opt=NULL);
118
119 ClassDef(MMcEvt, 7) //Stores Montecarlo Information of one event (eg. the energy)
120};
121
122#endif
Note: See TracBrowser for help on using the repository browser.