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 <memory>
19 #include <string>
20 #include <vector>
21 
22 #include <TFile.h>
23 #include <TTree.h>
24 #include <TH1F.h>
25 #include <TH2F.h>
26 #include <TProfile.h>
27 
28 class G4Step;
29 
30 class HFGflash {
31 public:
33  virtual ~HFGflash();
34 
35  struct Hit {
36  Hit() {}
37  G4ThreeVector position;
38  int depth = 0;
39  double time = 0.;
40  double edep = 0.;
41  double pez = 0.;
42  };
43 
44  std::vector<Hit> gfParameterization(const G4Step *aStep, bool onlyLong = false);
45 
46 private:
47  std::unique_ptr<GflashTrajectory> theHelix;
48  std::unique_ptr<G4Step> theGflashStep;
49  std::unique_ptr<G4Navigator> theGflashNavigator;
50  std::unique_ptr<G4TouchableHistory> theGflashTouchableHandle;
51 
53 
56  G4double theBField;
57 
58  G4int showerType;
59  G4double energyToDeposit;
63  G4double lateralPar[4];
64 
68 };
69 
70 #endif // HFGflash_h
virtual ~HFGflash()
Definition: HFGflash.cc:121
TH2F * em_ze
Definition: HFGflash.h:67
std::vector< Hit > gfParameterization(const G4Step *aStep, bool onlyLong=false)
Definition: HFGflash.cc:123
double pez
Definition: HFGflash.h:41
G4int showerType
Definition: HFGflash.h:58
TH1F * em_ssp_z
Definition: HFGflash.h:65
G4double longHcal[Gflash::NPar]
Definition: HFGflash.h:61
Gflash::CalorimeterNumber jCalorimeter
Definition: HFGflash.h:52
G4double theBField
Definition: HFGflash.h:56
G4double energyToDeposit
Definition: HFGflash.h:59
bool theFillHisto
Definition: HFGflash.h:55
std::unique_ptr< GflashTrajectory > theHelix
Definition: HFGflash.h:47
G4double lateralPar[4]
Definition: HFGflash.h:63
TH2F * em_ratio_selected
Definition: HFGflash.h:67
G4double longEcal[Gflash::NPar]
Definition: HFGflash.h:62
double edep
Definition: HFGflash.h:40
bool theWatcherOn
Definition: HFGflash.h:54
TH2F * em_ratio
Definition: HFGflash.h:67
TH1F * em_ze_ratio
Definition: HFGflash.h:66
const int NPar
HFGflash(edm::ParameterSet const &p)
Definition: HFGflash.cc:37
TH1F * em_ssp_rho
Definition: HFGflash.h:65
double time
Definition: HFGflash.h:39
TH1F * em_lateral_sd
Definition: HFGflash.h:66
TH1F * em_nSpots_sd
Definition: HFGflash.h:66
TH1F * em_lateral
Definition: HFGflash.h:65
TH1F * em_long
Definition: HFGflash.h:65
G4ThreeVector position
Definition: HFGflash.h:37
std::unique_ptr< G4Navigator > theGflashNavigator
Definition: HFGflash.h:49
TH1F * em_incE
Definition: HFGflash.h:65
std::unique_ptr< G4TouchableHistory > theGflashTouchableHandle
Definition: HFGflash.h:50
TH1F * em_long_sd
Definition: HFGflash.h:66
TH2F * em_2d
Definition: HFGflash.h:67
std::unique_ptr< G4Step > theGflashStep
Definition: HFGflash.h:48
TH2F * em_2d_sd
Definition: HFGflash.h:67
G4double energyScale[Gflash::kNumberCalorimeter]
Definition: HFGflash.h:60