8 #include "G4LogicalVolumeStore.hh"
9 #include "G4PhysicalVolumeStore.hh"
10 #include "G4Version.hh"
26 const std::string& nam,
const IInterface*
parent )
36 ATH_MSG_DEBUG(
"Initializing Geometry configuration tools " );
72 return StatusCode::SUCCESS;
81 -> UPDetectorConstruction {
82 static_assert(std::has_virtual_destructor_v<G4VUserDetectorConstruction>,
83 "G4VUserDetectorConstruction must have a virtual destructor");
86 [](G4VUserDetectorConstruction*
ptr) {
delete ptr; }};
95 <<
" being set as World");
108 this->RegisterParallelWorld(
it->GetParallelWorld());
112 ATH_MSG_DEBUG(
"Running geometry post-configuration tools" );
117 ATH_MSG_FATAL(
"Unable to run post-geometry configuration for " <<
it->name() );
125 #if G4VERSION_NUMBER > 1079
126 G4LogicalVolumeStore::GetInstance()->SetMapValid(
false);
127 G4LogicalVolumeStore::GetInstance()->UpdateMap();
128 G4PhysicalVolumeStore::GetInstance()->SetMapValid(
false);
129 G4PhysicalVolumeStore::GetInstance()->UpdateMap();
138 if (m_detConstructionTool->m_senDetTool->initializeSDs().isFailure()) {
142 if(!m_detConstructionTool->m_fastSimTool->initializeFastSims().isSuccess()) {
143 ATH_MSG_FATAL(
"Failed to initialize Fast Simulation Tool for worker thread");
148 for (
auto& fm : m_detConstructionTool->m_fieldManagers) {
152 ATH_MSG_FATAL(
"Unable to initialise field with " << fm->name() );
157 if (m_detConstructionTool->m_G4CaloTransportTool.isEnabled()) {
159 if (m_detConstructionTool->m_G4CaloTransportTool->initializePropagator()
161 ATH_MSG_FATAL(
"Failed to initialize G4CaloTransportTool for worker thread.");