source: trunk/MagicSoft/Mars/mcorsika/MCorsikaRunHeader.h@ 9341

Last change on this file since 9341 was 9336, checked in by tbretz, 16 years ago
*** empty log message ***
File size: 3.7 KB
Line 
1#ifndef MARS_MCorsikaRunHeader
2#define MARS_MCorsikaRunHeader
3///////////////////////////////////////////////////////////////////////
4// //
5// MRunHeader //
6// //
7///////////////////////////////////////////////////////////////////////
8
9#ifndef MARS_MTime
10#include "MTime.h"
11#endif
12
13class MCorsikaRunHeader : public MParContainer
14{
15 friend class MCorsikaEvtHeader;
16
17private:
18 UInt_t fRunNumber; // Run number
19 UInt_t fParticleID; // Particle ID (see MMcEvtBasic or CORSIKA manual)
20 UInt_t fNumEvents; // Number of events
21 MTime fRunStart; // Date of begin (yymmdd)
22 Float_t fProgramVersion; // Version of program
23
24 Byte_t fNumObsLevel; // Number of observation levels
25 Float_t fObsLevel[10]; // Observation levels [cm]
26
27 Float_t fImpactMax; // [cm] Maximum simulated impact
28
29 Float_t fSlopeSpectrum; // Slope of energy spectrum
30 Float_t fEnergyMin; // Lower limit of energy range
31 Float_t fEnergyMax; // Upper limit of energy range
32
33 Float_t fZdMin; // [rad] Zenith distance
34 Float_t fZdMax; // [rad] Zenith distance
35 Float_t fAzMin; // [rad] Azimuth (north=0; east=90)
36 Float_t fAzMax; // [rad] Azimuth (north=0; east=90) (north denotes the magnet north which is defined to be in the geografic north!)
37
38 Float_t fMagneticFieldX; // [muT] x-component of earth magnetic field (ceres coordinate system)
39 Float_t fMagneticFieldZ; // [muT] z-component of earth magnetic field (ceres coordinate system)
40 Float_t fMagneticFieldAz; // [rad] Azimuth angle of magnetic north expressed in telescope coordinates
41
42 Float_t fWavelengthMin; // [nm] Wavelength bandwidth lo edge
43 Float_t fWavelengthMax; // [nm] Wavelength bandwidth up edge
44
45 Float_t fViewConeInnerAngle; // [deg]
46 Float_t fViewConeOuterAngle; // [deg]
47
48public:
49 MCorsikaRunHeader(const char *name=NULL, const char *title=NULL);
50
51 // Getter
52 UInt_t GetRunNumber() const { return fRunNumber; }
53 UInt_t GetParticleID() const { return fParticleID; }
54 UInt_t GetNumEvents() const { return fNumEvents; }
55
56 const MTime &GetRunStart() const { return fRunStart; }
57
58 Float_t GetProgramVersion() const { return fProgramVersion; }
59
60 Float_t GetZdMin() const { return fZdMin; }
61 Float_t GetZdMax() const { return fZdMax; }
62
63 Float_t GetAzMin() const { return fAzMin; }
64 Float_t GetAzMax() const { return fAzMax; }
65
66 Float_t GetWavelengthMin() const { return fWavelengthMin; }
67 Float_t GetWavelengthMax() const { return fWavelengthMax; }
68
69 Float_t GetSlopeSpectrum() const { return fSlopeSpectrum; }
70 Float_t GetEnergyMin() const { return fEnergyMin; }
71 Float_t GetEnergyMax() const { return fEnergyMax; }
72
73 Float_t GetImpactMax() const { return fImpactMax; }
74
75 Float_t GetMagneticFieldX() const { return fMagneticFieldX; }
76 Float_t GetMagneticFieldZ() const { return fMagneticFieldZ; }
77 Float_t GetMagneticFieldAz() const { return fMagneticFieldAz; }
78
79 Float_t GetViewConeOuterAngle() const { return fViewConeOuterAngle; }
80 Bool_t HasViewCone() const { return fViewConeOuterAngle>0; }
81
82 // I/O
83 Bool_t ReadEvt(istream& fin);
84 Bool_t ReadEvtEnd(istream& fin);
85 Bool_t SeekEvtEnd(istream &fin);
86
87 // TObject
88 void Print(Option_t *t=NULL) const;
89
90 ClassDef(MCorsikaRunHeader, 2) // storage container for general info
91};
92#endif
Note: See TracBrowser for help on using the repository browser.