CMS 3D CMS Logo

GFlashHadronShowerModel.h
Go to the documentation of this file.
1 #ifndef GflashHadronShowerModel_H
2 #define GflashHadronShowerModel_H
3 
5 #include "G4VFastSimulationModel.hh"
6 
7 #include "G4TouchableHandle.hh"
8 #include "G4Navigator.hh"
9 #include "G4Step.hh"
10 
17 class G4Region;
18 //class GflashHistogram;
19 
20 class GFlashHadronShowerModel : public G4VFastSimulationModel {
21 public:
22  //-------------------------
23  // Constructor, destructor
24  //-------------------------
25  GFlashHadronShowerModel(G4String modelName, G4Region *envelope, const edm::ParameterSet &parSet);
26  ~GFlashHadronShowerModel() override;
27 
28  //------------------------------------------------------------------------
29  // Virtual methods that should be implemented for this hadron shower model
30  //------------------------------------------------------------------------
31 
32  G4bool IsApplicable(const G4ParticleDefinition &) override;
33  G4bool ModelTrigger(const G4FastTrack &) override;
34  void DoIt(const G4FastTrack &, G4FastStep &) override;
35 
36 private:
37  G4bool isFirstInelasticInteraction(const G4FastTrack &fastTrack);
38  G4bool excludeDetectorRegion(const G4FastTrack &fastTrack);
39  void makeHits(const G4FastTrack &fastTrack);
40  void updateGflashStep(const G4ThreeVector &position, G4double time);
41 
42 private:
43  G4bool theWatcherOn;
51 
52  const G4Region *theRegion;
53 
54  G4Step *theGflashStep;
55  G4Navigator *theGflashNavigator;
56  G4TouchableHandle theGflashTouchableHandle;
57 
58  //debugging histograms
59  //GflashHistogram* theHisto;
60 };
61 
62 #endif
GFlashHadronShowerModel(G4String modelName, G4Region *envelope, const edm::ParameterSet &parSet)
GflashPiKShowerProfile * thePiKProfile
G4bool IsApplicable(const G4ParticleDefinition &) override
GflashKaonMinusShowerProfile * theKaonMinusProfile
G4TouchableHandle theGflashTouchableHandle
G4bool ModelTrigger(const G4FastTrack &) override
GflashKaonPlusShowerProfile * theKaonPlusProfile
GflashAntiProtonShowerProfile * theAntiProtonProfile
G4bool excludeDetectorRegion(const G4FastTrack &fastTrack)
GflashHadronShowerProfile * theProfile
void makeHits(const G4FastTrack &fastTrack)
GflashProtonShowerProfile * theProtonProfile
void updateGflashStep(const G4ThreeVector &position, G4double time)
void DoIt(const G4FastTrack &, G4FastStep &) override
G4bool isFirstInelasticInteraction(const G4FastTrack &fastTrack)
static int position[264][3]
Definition: ReadPGInfo.cc:289