8 #include "G4Version.hh"
10 #include "G4Electron.hh"
11 #include "G4ProcessManager.hh"
13 #include "GaudiKernel/Bootstrap.h"
14 #include "GaudiKernel/ISvcLocator.h"
15 #include "GaudiKernel/IMessageSvc.h"
22 AthMessaging(
Gaudi::svcLocator()->service<IMessageSvc>(
"MessageSvc"),
"LooperThresholdSet"),
35 if( particleDef ==
nullptr )
38 auto transport = transportPair.first;
39 auto coupledTransport = transportPair.second;
41 if( transport !=
nullptr )
44 ATH_MSG_INFO(
"Setting looper values of G4Transportation process...");
66 #if G4VERSION_NUMBER > 1049
67 transport->ReportLooperThresholds();
70 else if( coupledTransport !=
nullptr )
73 ATH_MSG_INFO(
"Setting looper values of G4CoupledTransportation process...");
95 #if G4VERSION_NUMBER > 1049
96 coupledTransport->ReportLooperThresholds();
101 std::pair<G4Transportation*, G4CoupledTransportation*>
104 const auto *partPM = particleDef->GetProcessManager();
106 G4VProcess* partTransport = partPM->GetProcess(
"Transportation");
107 auto transport =
dynamic_cast<G4Transportation*
>(partTransport);
109 partTransport = partPM->GetProcess(
"CoupledTransportation");
110 auto coupledTransport=
111 dynamic_cast<G4CoupledTransportation*
>(partTransport);
113 return std::make_pair( transport, coupledTransport );