CMS 3D CMS Logo

HFGflash.h
Go to the documentation of this file.
1 #ifndef SimG4CMS_HFGflash_h
2 #define SimG4CMS_HFGflash_h
3 
6 
10 
11 #include "G4VFastSimulationModel.hh"
12 #include "G4ParticleTable.hh"
13 #include "G4ThreeVector.hh"
14 #include "G4FastTrack.hh"
15 #include "G4TouchableHandle.hh"
16 #include "G4Navigator.hh"
17 
18 #include <string>
19 #include <vector>
20 
21 #include <TFile.h>
22 #include <TTree.h>
23 #include <TH1F.h>
24 #include <TH2F.h>
25 #include <TProfile.h>
26 
27 class G4Step;
28 
29 class HFGflash {
30 
31 public:
32 
33  HFGflash(edm::ParameterSet const & p);
34  virtual ~HFGflash();
35 
36  struct Hit {
37  Hit() {}
38  G4ThreeVector position;
39  int depth = 0;
40  double time = 0.;
41  double edep = 0.;
42  double pez = 0.;
43  };
44 
45  std::vector<Hit> gfParameterization(G4Step * aStep, bool & ok, bool onlyLong=false);
46 
47 private:
48 
50  G4Step *theGflashStep;
51  G4Navigator *theGflashNavigator;
52  G4TouchableHandle theGflashTouchableHandle;
53 
55 
58  G4double theBField;
59 
60  G4int showerType ;
61  G4double energyToDeposit;
63  G4double longHcal[Gflash::NPar];
64  G4double longEcal[Gflash::NPar];
65  G4double lateralPar[4];
66 
70 };
71 
72 #endif // HFGflash_h
std::vector< Hit > gfParameterization(G4Step *aStep, bool &ok, bool onlyLong=false)
Definition: HFGflash.cc:91
virtual ~HFGflash()
Definition: HFGflash.cc:84
G4Step * theGflashStep
Definition: HFGflash.h:50
TH2F * em_ze
Definition: HFGflash.h:69
G4Navigator * theGflashNavigator
Definition: HFGflash.h:51
double pez
Definition: HFGflash.h:42
G4int showerType
Definition: HFGflash.h:60
TH1F * em_ssp_z
Definition: HFGflash.h:67
G4double longHcal[Gflash::NPar]
Definition: HFGflash.h:63
Gflash::CalorimeterNumber jCalorimeter
Definition: HFGflash.h:54
G4double theBField
Definition: HFGflash.h:58
G4double energyToDeposit
Definition: HFGflash.h:61
bool theFillHisto
Definition: HFGflash.h:57
G4double lateralPar[4]
Definition: HFGflash.h:65
TH2F * em_ratio_selected
Definition: HFGflash.h:69
G4TouchableHandle theGflashTouchableHandle
Definition: HFGflash.h:52
G4double longEcal[Gflash::NPar]
Definition: HFGflash.h:64
double edep
Definition: HFGflash.h:41
bool theWatcherOn
Definition: HFGflash.h:56
TH2F * em_ratio
Definition: HFGflash.h:69
TH1F * em_ze_ratio
Definition: HFGflash.h:68
const int NPar
HFGflash(edm::ParameterSet const &p)
Definition: HFGflash.cc:37
TH1F * em_ssp_rho
Definition: HFGflash.h:67
double time
Definition: HFGflash.h:40
TH1F * em_lateral_sd
Definition: HFGflash.h:68
TH1F * em_nSpots_sd
Definition: HFGflash.h:68
TH1F * em_lateral
Definition: HFGflash.h:67
TH1F * em_long
Definition: HFGflash.h:67
G4ThreeVector position
Definition: HFGflash.h:38
TH1F * em_incE
Definition: HFGflash.h:67
GflashTrajectory * theHelix
Definition: HFGflash.h:49
TH1F * em_long_sd
Definition: HFGflash.h:68
TH2F * em_2d
Definition: HFGflash.h:69
TH2F * em_2d_sd
Definition: HFGflash.h:69
G4double energyScale[Gflash::kNumberCalorimeter]
Definition: HFGflash.h:62