source: trunk/Mars/mcorsika/MCorsikaEvtHeader.h@ 9938

Last change on this file since 9938 was 9937, checked in by tbretz, 14 years ago
Added support for re-use of showers in MMCS.
File size: 2.7 KB
Line 
1#ifndef MARS_MCorsikaEvtHeader
2#define MARS_MCorsikaEvtHeader
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7
8#ifndef ROOT_TVector3
9#include <TVector3.h>
10#endif
11
12// gcc 3.2
13//class ifstream;
14#include <iosfwd>
15
16class MCorsikaFormat;
17
18class MCorsikaEvtHeader : public MParContainer
19{
20private:
21 UInt_t fEvtNumber; // Event number
22 UInt_t fNumReuse; // Counter of the reuse of the same shower
23// UInt_t fParticleID; // Particle ID (see MMcEvtBasic or CORSIKA manual)
24 Float_t fTotalEnergy; // [GeV]
25
26 Float_t fStartAltitude; // [g/cm²]
27 Float_t fFirstTargetNum; // Number of first target if fixed
28 Float_t fFirstInteractionHeight; // [cm] z coordinate, first intercation height
29
30 Float_t fMomentumX; // [GeV/c] "+west" "-east"
31 Float_t fMomentumY; // [GeV/c] "+south" "-north" (north denotes the magnet north which is defined to be in the geografic north!)
32 Float_t fMomentumZ; // [GeV/c] "+upwards" "-downwards"
33
34 Float_t fZd; // [rad] Zenith distance
35 Float_t fAz; // [rad] Azimuth (north=0; east=90) (north denotes the magnet north which is defined to be in the geografic north!)
36
37 Float_t fX; // [cm] Position of telescope on ground x / - impact parameter x
38 Float_t fY; // [cm] Position of telescope on gorund y / - impact parameter y
39
40 Float_t fWeightedNumPhotons; // weighted number of photons arriving at observation level
41
42public:
43 MCorsikaEvtHeader(const char *name=NULL, const char *title=NULL);
44
45 //void Clear(Option_t * = NULL);
46 void Print(Option_t * = NULL) const;
47
48 UInt_t GetEvtNumber() const { return fEvtNumber; }
49 UInt_t GetNumReuse() const { return fNumReuse; }
50// UInt_t GetParticleID() const { return fParticleID; }
51
52 TVector3 GetMomentum() const { return TVector3(fMomentumX, fMomentumY, fMomentumZ); }
53 TVector2 GetImpactPos() const { return TVector2(fX, fY); }
54
55 Float_t GetTotalEnergy() const { return fTotalEnergy; }
56 Float_t GetFirstInteractionHeight() const { return fFirstInteractionHeight; }
57
58 Float_t GetZd() const { return fZd; }
59 Float_t GetAz() const { return fAz; }
60
61 Float_t GetX() const { return fX; }
62 Float_t GetY() const { return fY; }
63
64 Double_t GetImpact() const;
65
66 void IncNumReuse() { fNumReuse++; }
67 void ResetNumReuse() { fNumReuse=(UInt_t)-1; }
68
69 Int_t ReadEvt(MCorsikaFormat *informat); // read in event header block
70 Int_t ReadEvtEnd(MCorsikaFormat *informat); // read in event end block
71
72 ClassDef(MCorsikaEvtHeader, 3) // Parameter Conatiner for raw EVENT HEADER
73};
74
75#endif
Note: See TracBrowser for help on using the repository browser.