source: trunk/Mars/mmc/MMcRunHeader.hxx@ 16388

Last change on this file since 16388 was 9336, checked in by tbretz, 16 years ago
*** empty log message ***
  • Property svn:executable set to *
File size: 5.7 KB
Line 
1#ifndef MARS_MMcRunHeader
2#define MARS_MMcRunHeader
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7
8// -------------------------------------------------------------
9//
10// The following data member are in use:
11//
12// fCorsikaVersion MHCollectionArea
13// fReflVersion MSrcPosCalc
14// fCamVersion MMcCalibrationUpdate, MReadMarsFile,
15// MMcPedestalCopy, MMcPedestalNSBAdd
16// fStarField* MMcBadPixelSet
17// fImpactMax MHCollectionArea
18// fNumSimulatedShowers MHCollectionArea
19// [fAllEvtsTriggered] MHCollectionArea
20// fNumPheFromDNSB MMcPedestalNSBAdd
21//
22// -------------------------------------------------------------
23
24class MMcRunHeader : public MParContainer
25{
26private:
27 UInt_t fNumTrigCond; // Number of trigger conditions in this file,
28 // zero means single condition mode
29
30 //-- 0 means: MMcTrig
31 //-- 1 means: MMcTrig;1
32 //-- 2 means: MMcTrig;1 MMcTrig;2
33
34 Byte_t fAllEvtsTriggered; // boolean that indicates is all images are
35 // saved or only the ones that trigger
36
37 Byte_t fMcEvt; // McEvt stored or not
38 Byte_t fMcTrig; // McTrig stored or not
39 Byte_t fMcFadc; // McFadc stored or not
40
41 Int_t fNumAnalisedPixels; // Number of analised pixels
42
43 UInt_t fNumSimulatedShowers; // Number of showers that were simualted
44 UInt_t fNumStoredShowers; // Number of store showers in this run
45 UInt_t fNumEvents; // Number of events in this root file
46
47 // Coordinates of the Starfield
48
49 Int_t fStarFieldRaH;
50 Int_t fStarFieldRaM;
51 Int_t fStarFieldRaS;
52 Int_t fStarFieldDeD;
53 Int_t fStarFieldDeM;
54 Int_t fStarFieldDeS;
55
56 Float_t fNumPheFromDNSB; // Number of phe/ns from diffuse NSB
57
58 // Angular range used in the Corsika showers generation (degrees)
59 Float_t fShowerThetaMax; // [deg]
60 Float_t fShowerThetaMin; // [deg]
61 Float_t fShowerPhiMax; // [deg] See note in class description.
62 Float_t fShowerPhiMin; // [deg] See note in class description.
63
64 // Maximum impact parameter in the input rfl file
65 Float_t fImpactMax; // [cm]
66
67 UShort_t fCorsikaVersion;
68 UShort_t fReflVersion;
69 UShort_t fCamVersion;
70
71 // ---- Run Header Informations ----
72 Float_t fMcRunNumber; // Run Number
73 UInt_t fProductionSite; // code to know where the run was generated
74 Float_t fDateRunMMCs; // Date of the MMCs production
75 Float_t fDateRunCamera; // Date, when the Camera program is run.
76
77 Byte_t fRawEvt; // RawEvt[Data,Hedaer] stored or not
78
79 Byte_t fElecNoise; // Electronic Noise simulated or not
80 Byte_t fStarFieldRotate; // Is the starfield rotation
81 // switched on (1) or off (0)
82
83 // Wavelength limits for the Cerenkov photons
84 Float_t fCWaveLower;
85 Float_t fCWaveUpper;
86
87 // Observation levels
88 UInt_t fNumObsLev;
89 Float_t fHeightLev[10];
90
91 // Spectral index
92 Float_t fSlopeSpec;
93
94 // Noise from Optic Links
95 Byte_t fOpticLinksNoise; // Noise from Optic Links simualted or not.
96
97 // Semiaperture of the cone around the direction of the primary within which the
98 // orientation of the telescope axis is scattered (deg). This is used in reflector
99 // simulation to re-use each Corsika event more than once.
100 Float_t fRandomPointingConeSemiAngle;
101
102
103public:
104 MMcRunHeader(const char *name=NULL, const char *title=NULL);
105
106 void Fill(const Float_t runnumber,
107 const UInt_t productionsite,
108 const Float_t daterunMMCs,
109 const Float_t daterunCamera,
110 const UInt_t numtrigcond,
111 const Byte_t allevts,
112 const Byte_t mcevt,
113 const Byte_t mctrig,
114 const Byte_t mcfadc,
115 const Byte_t rawevt,
116 const Byte_t elecnoise,
117 const Int_t numanalpixels,
118 const UInt_t numsim,
119 const UInt_t numsto,
120 const Byte_t starfieldrotate,
121 const Int_t sfRaH,
122 const Int_t sfRaM,
123 const Int_t sfRaS,
124 const Int_t sfDeD,
125 const Int_t sfDeM,
126 const Int_t sfDeS,
127 const Float_t numdnsb,
128 const Float_t shthetamax,
129 const Float_t shthetamin,
130 const Float_t shphimax,
131 const Float_t shphimin,
132 const Float_t impactmax,
133 const Float_t cwavelower,
134 const Float_t cwaveupper,
135 const Float_t slopespec,
136 const UInt_t num0bslev,
137 const Float_t heightlev[10],
138 const UInt_t corsika,
139 const UInt_t refl,
140 const UInt_t cam,
141 const Byte_t opticnoise,
142 const Float_t conesmiangle=0
143 );
144
145 void GetStarFieldRa(Int_t *hour, Int_t *minute, Int_t *second) const;
146 void GetStarFieldDec(Int_t *degree, Int_t *minute, Int_t *second) const;
147
148 Float_t GetNumPheFromDNSB() const { return fNumPheFromDNSB; }
149 UShort_t GetCamVersion() const { return fCamVersion; }
150 UShort_t GetReflVersion() const { return fReflVersion; }
151 UInt_t GetNumSimulatedShowers() const { return fNumSimulatedShowers; }
152 UInt_t GetCorsikaVersion() const { return fCorsikaVersion; }
153 Bool_t GetAllEvtsTriggered() const { return fAllEvtsTriggered ? kTRUE : kFALSE; }
154
155 Float_t GetShowerThetaMin() const { return fShowerThetaMin; }
156 Float_t GetShowerThetaMax() const { return fShowerThetaMax; }
157
158 Float_t GetShowerPhiMin() const { return fShowerPhiMin; }
159 Float_t GetShowerPhiMax() const { return fShowerPhiMax; }
160
161 Float_t GetImpactMax() const {return fImpactMax;}
162
163 Bool_t IsCeres() const { return fCamVersion==UShort_t(-1); }
164
165 void SetNumSimulatedShowers(UInt_t n) { fNumSimulatedShowers=n; }
166 void SetImpactMax(Float_t im) { fImpactMax=im; }
167 void SetCorsikaVersion(UInt_t v) { fCorsikaVersion=v; }
168
169 ClassDef(MMcRunHeader, 7) // storage container for general run info
170};
171
172#endif
Note: See TracBrowser for help on using the repository browser.