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