source: JEM-EUSO/esaf_cc_at_lal/packages/simulation/generators/showers/include/ShowerStep.hh @ 114

Last change on this file since 114 was 114, checked in by moretto, 11 years ago

actual version of ESAF at CCin2p3

File size: 7.3 KB
Line 
1// $Id: ShowerStep.hh 2816 2009-03-06 15:41:46Z naumov $
2// Author: A.Thea   2004/12/08
3
4/*****************************************************************************
5 * ESAF: Euso Simulation and Analysis Framework                              *
6 *                                                                           *
7 *  Id: ShowerStep                                                           *
8 *  Package: Shower                                                          *
9 *  Coordinator: Sergio.Bottai, Dmitry.Naumov                                *
10 *                                                                           *
11 *****************************************************************************/
12
13#ifndef __SHOWERSTEP_HH__
14#define __SHOWERSTEP_HH__
15
16#include "euso.hh"
17
18#include "EVector.hh"
19#include "EsafMsgSource.hh"
20
21#include <TH1F.h>
22#include <TH2F.h>
23
24class ConexFileShowerGenerator;
25class UnisimFileShowerGenerator;
26class SlastShowerGenerator;
27class SlastLightToEuso;
28class ShowerTrack;
29
30////////////////////////////////////////////////////////////////////////////////
31//                                                                            //
32// ShowerStep                                                                 //
33//                                                                            // 
34// <brief class description>                                                  // 
35//                                                                            // 
36////////////////////////////////////////////////////////////////////////////////
37
38class ShowerStep : public EsafMsgSource{
39public:
40    ShowerStep();
41    // ctor
42   
43    ShowerStep(const ShowerStep&);
44    // copy ctor
45   
46    virtual ~ShowerStep();
47    // dtor
48
49    void Clear();
50    // clear
51
52    Bool_t Dump() const;
53    // dump information about this step
54
55    inline Double_t GetXi() const { return fXi; }
56    // return the Slant Depth of the first point of the step 
57
58    inline Double_t GetXf() const { return fXf; }
59    // return the Slant Depth of the last point of the step 
60
61    inline EVector GetXYZi() const { return fXYZi; } 
62    // return the  3D coordinates in MES of the first point of the step
63
64    inline EVector GetXYZf() const { return fXYZf; } 
65    // return the  3D coordinates in MES of the last point of the step
66
67    inline Double_t GetTimei() const { return fTimei; }
68    // return the Time of the passage of shower axis in fXYZi
69
70    inline Double_t GetTimef() const { return fTimef; } 
71    // return the Time of the passage of shower axis in fXYZf
72
73    inline Double_t GetAgei() const { return fAgei; }
74    // return the age of the shower at fXYZi
75
76    inline Double_t GetAgef() const { return fAgef; }
77    // return the age of the shower at fXYZf
78
79    inline Double_t GetNelectrons() const { return fNelectrons; }
80    // return the Number of electrons at (fXf+fXi)/2
81
82    inline Double_t GetNcharged() const { return fNcharged; }
83    // return the Number of charged part. at (fXf+fXi)/2     
84
85    inline Double_t GetEloss() const { return fEloss; }
86    // return the Energy  loss by ionization during the Step   
87
88    inline Double_t GetNcherenkov() const { return fNcherenkov;  }
89    // return the Number of Cherenov photons produced in the Step
90
91    const TH1F* GetHistoEnergy();
92    // return the pointer to  histogram of energy distribution of fNelectrons
93   
94    const TH1F* GetHistoEnergy() const;
95    // const version of GetHistoEnergy
96   
97    const TH1F* GetHistoLateral();
98    // return the pointer to  histogram of lateral distribution of fNelectrons
99   
100    const TH1F* GetHistoLateral() const;
101    // const version of GetHistoLateral
102   
103    inline const TH2F* GetHistoRadPhiEle() const { return  fHistoRadPhiEle;  }
104    // return the pointer to histogram of Electrons radial and phi distribution       
105
106    inline const TH2F* GetHistoRadDTimeEle() const { return  fHistoRadDTimeEle; } 
107    // return the pointer to histogram of Radial and Delta-Time respecto to axis Time for fNelectrons
108
109    inline const TH2F* GetHistoRadPhiEloss() const { return  fHistoRadPhiEloss; }
110    // return the pointer to histogram of Energy loss radial and phi distribution
111
112    inline const TH1F* GetHistoAngCher() const { return   fHistoAngCher; }
113    // return the pointer to histogram of polar angular distribution of Cherenkov photons
114
115    ShowerTrack* GetParentTrack() const { return fParentTrack;}
116    // Get pointer  to the parent ShowerTrack container
117   
118    inline Int_t GetStepID() const {return fStepID;}
119    // Get current step number
120   
121    inline void SetStepID(Int_t n)    {fStepID = n;}
122    // Set current step number
123   
124    inline void SetParentTrack(ShowerTrack* track) {fParentTrack = track;}
125    // Seting pointer to the parent ShowerTrack container
126 
127private:
128    // information always present
129    Double_t fXi;                   // Slant Depth  of the first point of the step
130    Double_t fXf;                   // Slant Depth  of the last point of the step
131    EVector  fXYZi;                 // 3D coordinates in MES of the first point of the step
132    EVector  fXYZf;                 // 3D coordinates in MES of the last point of the step 
133    Double_t fTimei;                // Time of the passage of shower axis in fXYZi
134    Double_t fTimef;                // Time  of the passage of shower axis in fXYZf
135    Double_t fAgei;                 // age of the shower at fXYZi
136    Double_t fAgef;                 // age of the shower at fXYZf
137    Double_t fNelectrons;           // Number of electrons at (fXf+fXi)/2
138    // additional information , could be filled or NULL
139    Double_t fNcharged;             // Number of charged part. at (fXf+fXi)/2
140    Double_t fEloss;                // Energy loss by ionization during the Step
141    Double_t fNcherenkov;           // Number of Cherenov photons produced in the Step
142   
143    TH1F*    fHistoEnergy;          // histogram of energy distribution of fNelectrons
144    TH1F*    fHistoLateral;         // histogram of lateral distribution of fNelectrons
145    TH2F*    fHistoEneAng;          // histogram of energy and polar angular distribution of fNelectrons
146    TH2F*    fHistoRadPhiEle;       // histogram of Electron radial and phi distribution along axis (phi=0 is the
147                                    // direction perpendicular to the track and  pointing versus the higher
148                                    // density atmospheric region)
149    TH2F*    fHistoRadDTimeEle;     // histogram of Radial and Delta-Time respecto to axis Time for fNelectrons
150
151    TH2F*    fHistoRadPhiEloss;     // histogram of Energy loss radial and phi distribution along axis (phi=0 is
152                                    // the direction perpendicular to the track and  pointing versus the higher
153                                    // density atmospheric region)
154
155    TH1F*    fHistoAngCher;         // histogram of polar angular distribution of Cherenkov photons fNcherenkov   
156   
157    ShowerTrack* fParentTrack;      // pointer to the ShowerStep container
158    Int_t    fStepID;               // number of the current step
159   
160    friend class UnisimFileShowerGenerator;
161    friend class CorsikaFileShowerGenerator;
162    friend class SlastShowerGenerator;
163    friend class SlastLightToEuso;
164    friend class ConexFileShowerGenerator;
165    friend class ShowerTrack;
166   
167    ClassDef(ShowerStep,0)
168};
169
170#endif  /* __SHOWERSTEP_HH__ */
171
Note: See TracBrowser for help on using the repository browser.