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
0033
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
0041
0042
0043 const std::string keywordRegion_;
0044 const int verbosity_;
0045 const bool protonCut_;
0046 };
0047
0048 #endif