7 #include "DD4hep/Filter.h"
8 #include "G4VPhysicalVolume.hh"
9 #include "G4VTouchable.hh"
17 : offMap_(offMap), dd4hep_(dd4hep) {
35 std::cout <<
"MuonGeometryNumbering finds unusual start value for copy numbers:" <<
theStartCopyNo << std::endl;
49 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
51 for (
int ii = 0;
ii < touch->GetHistoryDepth();
ii++) {
52 G4VPhysicalVolume* vol = touch->GetVolume(
ii);
53 int copyno = vol->GetCopyNo();
57 std::size_t
last = namx.rfind(
'_');
58 std::string name = ((last == std::string::npos) ? namx : (namx.substr(0, last)));
61 extra = (itr->second).first + (itr->second).
second;
63 edm::LogVerbatim(
"MuonSim") <<
"MuonG4Numbering: " << namx <<
":" << name <<
" iterator "
69 edm::LogVerbatim(
"MuonSim") <<
"MuonG4Numbering: " << vol->GetName() <<
" " << copyno <<
" Split "
Log< level::Info, true > LogVerbatim
const int getCopyNoLevel(const int)
int getValue(const std::string &name) const
void addBase(const int level, const int super, const int base)
const MuonOffsetMap * offMap_
const int getCopyNoBaseNo(const int)
U second(std::pair< T, U > const &p)
MuonBaseNumber PhysicalVolumeToBaseNumber(const G4Step *aStep)
const bool copyNoRelevant(const int)
const int getCopyNoSuperNo(const int)
MuonG4Numbering(const MuonGeometryConstants &muonConstants, const MuonOffsetMap *offMap, bool dd4hep)
std::unordered_map< std::string, std::pair< int, int > > muonMap_