1 | // $Id$ |
---|
2 | // Author: kenjikry 2009/03/04 |
---|
3 | |
---|
4 | /***************************************************************************** |
---|
5 | * ESAF: Euso Simulation and Analysis Framework * |
---|
6 | * * |
---|
7 | * Id: ConexFileGenerator * |
---|
8 | * Package: <generators/shower> * |
---|
9 | * Coordinator: <Dmitry.Naumov> * |
---|
10 | * * |
---|
11 | *****************************************************************************/ |
---|
12 | |
---|
13 | #ifndef __CONEXFILEGENERATOR_HH__ |
---|
14 | #define __CONEXFILEGENERATOR_HH__ |
---|
15 | |
---|
16 | #include "euso.hh" |
---|
17 | #include "EventGenerator.hh" |
---|
18 | #include "EsafMsgSource.hh" |
---|
19 | #include "ShowerStep.hh" |
---|
20 | #include "EarthVector.hh" |
---|
21 | #include <TString.h> |
---|
22 | |
---|
23 | class PhysicsData; |
---|
24 | class MCTruth; |
---|
25 | class ShowerTrack; |
---|
26 | class TTree; |
---|
27 | class TFile; |
---|
28 | class TLorentzVector; |
---|
29 | //////////////////////////////////////////////////////////////////////////////// |
---|
30 | // // |
---|
31 | // ConexFileGenerator // |
---|
32 | // // |
---|
33 | // <brief class description> // |
---|
34 | // // |
---|
35 | //////////////////////////////////////////////////////////////////////////////// |
---|
36 | |
---|
37 | class ConexFileShowerGenerator : public EventGenerator, public EsafMsgSource { |
---|
38 | public: |
---|
39 | ConexFileShowerGenerator(); |
---|
40 | virtual ~ConexFileShowerGenerator(); |
---|
41 | |
---|
42 | // get a new event |
---|
43 | PhysicsData *Get(); |
---|
44 | |
---|
45 | // get pointer to MonteCarlo Truth |
---|
46 | MCTruth *GetTruth(); |
---|
47 | |
---|
48 | virtual void Reset(); // Reset important variables for the next event |
---|
49 | |
---|
50 | EsafConfigClass(Generators, ConexFileShowerGenerator) |
---|
51 | |
---|
52 | |
---|
53 | |
---|
54 | |
---|
55 | |
---|
56 | |
---|
57 | |
---|
58 | |
---|
59 | |
---|
60 | |
---|
61 | |
---|
62 | |
---|
63 | |
---|
64 | |
---|
65 | |
---|
66 | |
---|
67 | |
---|
68 | private: |
---|
69 | // open conex root file |
---|
70 | void OpenFile(); |
---|
71 | // close conex root file |
---|
72 | void CloseFile(); |
---|
73 | // init trees |
---|
74 | void InitTrees(); |
---|
75 | // load shower track |
---|
76 | Bool_t LoadTrack(); |
---|
77 | const ShowerStep& GetShowerStep(Int_t); |
---|
78 | |
---|
79 | ShowerTrack *fTrack; // Shower Track object |
---|
80 | ShowerStep fStep; // current ShowerStep object |
---|
81 | MCTruth *fTruth; // MC Truth information |
---|
82 | Int_t fCurrentEvent; // current event |
---|
83 | TFile *fInputFile; // Conex input Root File |
---|
84 | TString fFileName; // Conex input root file name |
---|
85 | Int_t fFirstEvent; // first event to start froms |
---|
86 | TTree *fConexHeader; // Conex header tree |
---|
87 | TTree *fConexShower; // Conex Shower tree |
---|
88 | TTree *fConexFirstInteraction; // Conex first interaction tree |
---|
89 | Float_t X[4000], H[4000],D[4000],N[4000],Electrons[4000],eN[4000],dEdX[4000]; |
---|
90 | Int_t nX, nPart, nInt, PrimaryIndex,IdInt1[100000]; |
---|
91 | Double_t depth[100000], px[100000],py[100000],pz[100000],Energy[100000]; // first depth of the current track and momentum |
---|
92 | Double_t Xmax; |
---|
93 | Double_t height[100]; |
---|
94 | Float_t fitpars[11]; |
---|
95 | Float_t zenith,azimuth,lgE; |
---|
96 | Float_t delX; |
---|
97 | Float_t Hfirst; |
---|
98 | |
---|
99 | Double_t fCoreX, fCoreY, fCoreH; |
---|
100 | Double_t fTheta, fPhi; |
---|
101 | Bool_t fForceTheta, fForcePhi; |
---|
102 | |
---|
103 | // temporary setting (hand-in input) |
---|
104 | Float_t core_x,core_y,core_z; |
---|
105 | Float_t cnx_l,cnx_m,cnx_n; // Theta,phi direction cosine with respect to shower landing posistion |
---|
106 | Float_t geo_l,geo_m,geo_n; // Shower direction cosines with respect to geocentric coordinates (Ng=1; geocentre->EUSO) |
---|
107 | |
---|
108 | |
---|
109 | |
---|
110 | |
---|
111 | |
---|
112 | Double_t prevdepth; |
---|
113 | EarthVector prevpoint, currentpoint; |
---|
114 | TLorentzVector *pMom; // UHECR 4 momentum |
---|
115 | |
---|
116 | |
---|
117 | ClassDef(ConexFileShowerGenerator,0); |
---|
118 | |
---|
119 | |
---|
120 | |
---|
121 | }; |
---|
122 | |
---|
123 | #endif /* __CONEXFILEGENERATOR_HH__ */ |
---|
124 | |
---|