23 G4LogicalVolume *BP, *
ID, *CALO, *MU, *TTR;
27 static const VolumeHolder vh = [&]() {
29 G4LogicalVolumeStore * lvs = G4LogicalVolumeStore::GetInstance();
30 for (
size_t i=0;i<lvs->size();++i) {
32 if ( !(*lvs)[i] ) {
continue; }
33 if ( (*lvs)[i]->GetName() ==
"BeamPipe::BeamPipe" ) {
h.BP = (*lvs)[i]; }
34 else if ( (*lvs)[i]->GetName() ==
"IDET::IDET" || (*lvs)[i]->GetName() ==
"ITK::ITK" ) {
h.ID = (*lvs)[i]; }
35 else if ( (*lvs)[i]->GetName() ==
"CALO::CALO" ) {
h.CALO = (*lvs)[i]; }
36 else if ( (*lvs)[i]->GetName() ==
"MUONQ02::MUONQ02" ) {
h.MU = (*lvs)[i]; }
37 else if ( (*lvs)[i]->GetName() ==
"TTR_BARREL::TTR_BARREL" ) {
h.TTR = (*lvs)[i]; }
40 const auto& worldVolume = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking()->GetWorldVolume()->GetLogicalVolume();
48 const G4StepPoint *postStep = aStep->GetPostStepPoint();
49 bool leavingG4World = postStep->GetStepStatus()==fWorldBoundary;
51 if ( leavingG4World ) {