source: branches/Mars_MC/mmc/MMcCorsikaRunHeader.h@ 17677

Last change on this file since 17677 was 9595, checked in by tbretz, 14 years ago
*** empty log message ***
  • Property svn:executable set to *
File size: 4.2 KB
Line 
1#ifndef MARS_MMcCorsikaRunHeader
2#define MARS_MMcCorsikaRunHeader
3///////////////////////////////////////////////////////////////////////
4// //
5// MMcCorsikaRunHeader //
6// //
7///////////////////////////////////////////////////////////////////////
8#ifndef MARS_MParContainer
9#include "MParContainer.h"
10#endif
11
12#ifndef ROOT_TObjArray
13#include <TObjArray.h>
14#endif
15
16class MGeomCorsikaCT;
17
18class MMcCorsikaRunHeader : public MParContainer
19{
20private:
21 // Header copied directly from CORSIKA header, skiping dummy values.
22 // The propouse of this container is being able to cmopare with
23 // Corsika run Header
24 // See CORSIKA manual for explanations
25 Float_t fRunNumber;
26 Float_t fDate;
27 Float_t fCorsikaVersion;
28 Float_t fNumObsLev;
29 Float_t fHeightLev[10];
30 Float_t fSlopeSpec; // Slope of primaries' energy spectrum
31 Float_t fELowLim;
32 Float_t fEUppLim; // Limits of energy range for generation
33 Float_t fEGS4flag;
34 Float_t fNKGflag;
35 Float_t fEcutoffh;
36 Float_t fEcutoffm;
37 Float_t fEcutoffe;
38 Float_t fEcutoffg;
39
40 // Physical constants and interaction flags (see CORSIKA manual):
41 Float_t fC[50];
42 Float_t fCKA[40];
43 Float_t fCETA[5];
44 Float_t fCSTRBA[11];
45 Float_t fAATM[5];
46 Float_t fBATM[5];
47 Float_t fCATM[5];
48 Float_t fNFL[4];
49
50 // (degrees) Inner and outer angles in Corsika's VIEWCONE option
51 Float_t fViewconeAngles[2];
52
53
54 Float_t fWobbleMode; // Indicates wobble mode with which
55 // reflector has been run
56 Float_t fAtmosphericModel; // Indicates atmospheric model used in
57 // absorption simulation. 0 = no atmosphere,
58 // 1 = atm_90percent, 2 = atm_isothermal,
59 // 3 = atm_corsika.
60 UInt_t fNumCT;
61 TObjArray fTelescopes;
62
63public:
64 MMcCorsikaRunHeader(const char *name=NULL, const char *title=NULL,
65 int NumCT=1);
66
67
68 void Fill(const Float_t runnumber,
69 const Float_t date,
70 const Float_t vers,
71 const Float_t fNumObsLev,
72 const Float_t height[10],
73 const Float_t slope,
74 const Float_t elow,
75 const Float_t eupp,
76 const Float_t egs4,
77 const Float_t nkg,
78 const Float_t eh,
79 const Float_t em,
80 const Float_t ee,
81 const Float_t eg,
82 const Float_t c[50],
83 const Float_t cka[40],
84 const Float_t ceta[5],
85 const Float_t cstrba[11],
86 const Float_t aatm[5],
87 const Float_t batm[5],
88 const Float_t catm[5],
89 const Float_t nfl[4],
90 const Float_t viewcone[2],
91 const Float_t wobble,
92 const Float_t atmospher
93 );
94
95 Float_t GetELowLim() const { return fELowLim; }
96 Float_t GetEUppLim() const { return fEUppLim; }
97 Float_t GetSlopeSpec() const { return fSlopeSpec; }
98 Float_t GetWobbleMode() const { return fWobbleMode; }
99 Float_t GetCorsikaVersion() const { return fCorsikaVersion; }
100 Float_t GetViewconeAngleInner() const { return fViewconeAngles[0]; }
101 Float_t GetViewconeAngleOuter() const { return fViewconeAngles[1]; }
102 Float_t GetAtmosphericModel() const { return fAtmosphericModel; }
103 Bool_t HasViewCone() const { return fViewconeAngles[1]>0; }
104
105 Int_t GetNumCT() const { return fNumCT; }
106
107 void FillCT(Float_t ctx, Float_t cty, Float_t ctz,
108 Float_t cttheta, Float_t ctphi,
109 Float_t ctdiam, Float_t ctfocal,
110 Int_t CTnum);
111
112 void SetSpectrum(Float_t slope, Float_t emin, Float_t emax)
113 {
114 fSlopeSpec=slope; fELowLim=emin; fEUppLim=emax;
115 }
116 void SetViewCone(Float_t inner, Float_t outer)
117 {
118 fViewconeAngles[0] = inner;
119 fViewconeAngles[1] = outer;
120 }
121
122
123 MGeomCorsikaCT &operator[](Int_t i) const;
124
125 virtual void Print(Option_t *opt=NULL) const;
126
127 ClassDef(MMcCorsikaRunHeader, 3) // storage container for corsika setup information
128};
129#endif
130
131
132
Note: See TracBrowser for help on using the repository browser.