113 dd4hep::SpecParRefs
specs;
118 bool foundMatch =
false;
121 for (
auto const& pit :
fit.second->paths) {
122 const std::string_view
selection = dd4hep::dd::noNamespace(dd4hep::dd::realTopName(pit));
123 const std::string_view
name = dd4hep::dd::noNamespace(it.first.name());
127 dd4hepVec_.emplace_back(std::make_pair<G4LogicalVolume*, const dd4hep::SpecPar*>(&*it.second, &*
fit.second));
143 G4Region*
region = G4RegionStore::GetInstance()->FindOrCreateRegion({regName.data(), regName.size()});
145 region->AddRootLogicalVolume(it.first);
147 edm::LogVerbatim(
"Geometry") <<
" MakeRegions: added " << it.first->GetName() <<
" to region " <<
region->GetName();
150 const G4String& nonReflectedG4Name = it.first->GetName();
151 const G4String& reflectedG4Name = nonReflectedG4Name +
"_refl";
152 const G4LogicalVolumeStore*
const allG4LogicalVolumes = G4LogicalVolumeStore::GetInstance();
153 const auto reflectedG4LogicalVolumeIt = std::find_if(
154 allG4LogicalVolumes->begin(), allG4LogicalVolumes->end(), [&](
const G4LogicalVolume*
const aG4LogicalVolume) {
155 return (aG4LogicalVolume->GetName() == reflectedG4Name);
158 if (reflectedG4LogicalVolumeIt != allG4LogicalVolumes->end()) {
159 region->AddRootLogicalVolume(*reflectedG4LogicalVolumeIt);
160 edm::LogVerbatim(
"Geometry") <<
" MakeRegions: added " << (*reflectedG4LogicalVolumeIt)->GetName()
161 <<
" to region " <<
region->GetName();
165 for (
auto const& sit : it.second->spars) {
166 log << sit.first <<
" = " << sit.second[0] <<
"\n";
173 edm::LogVerbatim(
"SimG4CoreGeometry") <<
" DDG4ProductionCuts (New) : starting\n"
174 <<
" DDG4ProductionCuts : Got " <<
dd4hepVec_.size() <<
" region roots.\n"
175 <<
" DDG4ProductionCuts : List of all roots:";