Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:24

0001 //
0002 //---------------------------------------------------------------
0003 //  GEANT 4 class header file
0004 //
0005 //  GflashEMShowerModel
0006 //
0007 //  Class description:
0008 //
0009 //  GFlash parameterisation shower model.
0010 
0011 // Authors: E.Barberio & Joanna Weng - 9.11.04
0012 // other authors : Soon Yung Jun & Dongwook Jang - 2007/12/07
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