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

Last change on this file since 9943 was 9943, checked in by tbretz, 14 years ago
Implemented a working version of eventio which reads all telescope's data and all array's data.
File size: 3.0 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
42 Float_t fTempX[20]; //! Temporary storage for impact parameter
43 Float_t fTempY[20]; //! Temporary storage for impact parameter
44
45public:
46 MCorsikaEvtHeader(const char *name=NULL, const char *title=NULL);
47
48 //void Clear(Option_t * = NULL);
49 void Print(Option_t * = NULL) const;
50
51 UInt_t GetEvtNumber() const { return fEvtNumber; }
52 UInt_t GetNumReuse() const { return fNumReuse; }
53// UInt_t GetParticleID() const { return fParticleID; }
54
55 TVector3 GetMomentum() const { return TVector3(fMomentumX, fMomentumY, fMomentumZ); }
56 TVector2 GetImpactPos() const { return TVector2(fX, fY); }
57
58 Float_t GetTotalEnergy() const { return fTotalEnergy; }
59 Float_t GetFirstInteractionHeight() const { return fFirstInteractionHeight; }
60
61 Float_t GetZd() const { return fZd; }
62 Float_t GetAz() const { return fAz; }
63
64 Float_t GetX() const { return fX; }
65 Float_t GetY() const { return fY; }
66
67 Double_t GetImpact() const;
68
69 void IncNumReuse() { fNumReuse++; }
70 void ResetNumReuse() { fNumReuse=(UInt_t)-1; }
71
72 void InitXY() { fX=fTempY[fNumReuse]; fY=-fTempX[fNumReuse]; }
73 void AddXY(Float_t x, Float_t y) { fX+=x; fY+=y; }
74
75 Int_t ReadEvt(MCorsikaFormat *informat); // read in event header block
76 Int_t ReadEvtEnd(MCorsikaFormat *informat); // read in event end block
77
78 ClassDef(MCorsikaEvtHeader, 3) // Parameter Conatiner for raw EVENT HEADER
79};
80
81#endif
Note: See TracBrowser for help on using the repository browser.