Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef SimG4Core_DDG4ProductionCuts_H
0002 #define SimG4Core_DDG4ProductionCuts_H
0003 
0004 #include "SimG4Core/Geometry/interface/G4LogicalVolumeToDDLogicalPartMap.h"
0005 #include <DD4hep/SpecParRegistry.h>
0006 #include <DDG4/Geant4GeometryInfo.h>
0007 
0008 #include <string>
0009 #include <vector>
0010 
0011 class DDLogicalPart;
0012 class G4Region;
0013 class G4LogicalVolume;
0014 
0015 class DDG4ProductionCuts {
0016 public:
0017   explicit DDG4ProductionCuts(const G4LogicalVolumeToDDLogicalPartMap*, int, bool);
0018 
0019   explicit DDG4ProductionCuts(const dd4hep::SpecParRegistry*,
0020                               const dd4hep::sim::Geant4GeometryMaps::VolumeMap*,
0021                               int,
0022                               bool);
0023 
0024 private:
0025   void initialize();
0026   void setProdCuts(const DDLogicalPart, G4Region*);
0027 
0028   const G4LogicalVolumeToDDLogicalPartMap* map_ = nullptr;
0029   G4LogicalVolumeToDDLogicalPartMap::Vector vec_;
0030 
0031   // ---------------------------------
0032   // DD4hep specific initialization,
0033   //   methods, and local variables...
0034   void dd4hepInitialize();
0035   void setProdCuts(const dd4hep::SpecPar*, G4Region*);
0036 
0037   const dd4hep::sim::Geant4GeometryMaps::VolumeMap* dd4hepMap_ = nullptr;
0038   std::vector<std::pair<G4LogicalVolume*, const dd4hep::SpecPar*>> dd4hepVec_;
0039   const dd4hep::SpecParRegistry* specPars_;
0040   // ... end here.
0041   // ---------------------------------
0042 
0043   const std::string keywordRegion_;
0044   const int verbosity_;
0045   const bool protonCut_;
0046 };
0047 
0048 #endif