File indexing completed on 2024-04-06 12:30:13
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef GFlashEMShowerModel_h
0017 #define GFlashEMShowerModel_h
0018
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020
0021 #include "G4VFastSimulationModel.hh"
0022 #include "G4TouchableHandle.hh"
0023 #include "G4Navigator.hh"
0024 #include "G4Step.hh"
0025
0026 class GflashEMShowerProfile;
0027 class G4Region;
0028
0029 class GFlashEMShowerModel : public G4VFastSimulationModel {
0030 public:
0031 GFlashEMShowerModel(const G4String& name, G4Envelope* env, const edm::ParameterSet& parSet);
0032 ~GFlashEMShowerModel() override;
0033
0034 G4bool ModelTrigger(const G4FastTrack&) override;
0035 G4bool IsApplicable(const G4ParticleDefinition&) override;
0036 void DoIt(const G4FastTrack&, G4FastStep&) override;
0037
0038 private:
0039 G4bool excludeDetectorRegion(const G4FastTrack& fastTrack);
0040 void makeHits(const G4FastTrack& fastTrack);
0041 void updateGflashStep(const G4ThreeVector& position, G4double time);
0042
0043
0044 edm::ParameterSet theParSet;
0045 bool theWatcherOn;
0046
0047 GflashEMShowerProfile* theProfile;
0048
0049 G4Region* theRegion;
0050
0051 G4Step* theGflashStep;
0052 G4Navigator* theGflashNavigator;
0053 G4TouchableHandle theGflashTouchableHandle;
0054 };
0055 #endif