19 #include "G4ProcessManager.hh"
20 #include "G4RunManager.hh"
21 #include "G4EventManager.hh"
22 #include "G4hMultipleScattering.hh"
23 #include "G4hIonisation.hh"
24 #include "G4hBremsstrahlung.hh"
25 #include "G4hPairProduction.hh"
37 #include "G4Version.hh"
38 #if G4VERSION_NUMBER > 1029
39 #define PARTICLEITERATOR (this->GetParticleIterator())
40 #elif G4VERSION_NUMBER > 1009
41 #define PARTICLEITERATOR aParticleIterator
43 #define PARTICLEITERATOR theParticleIterator
50 const std::string& nam,
const IInterface*
parent )
55 f.open(
"quirks_setup.txt");
87 this->SetPhysicsName(
name());
88 return StatusCode::SUCCESS;
133 G4ProcessManager* pmanager =
particle->GetProcessManager();
138 while (pmanager->GetProcessListLength() != 0) pmanager->RemoveProcess(0);
140 pmanager->AddProcess(aTransportation);
141 pmanager->SetProcessOrderingToFirst(aTransportation, idxAlongStep);
142 pmanager->SetProcessOrderingToFirst(aTransportation, idxPostStep);
143 pmanager->AddProcess(
new G4hMultipleScattering,-1, 1, 1);
144 pmanager->AddProcess(
new G4hIonisation, -1, 2, 2);
145 pmanager->AddProcess(
new G4hBremsstrahlung, -1, 3, 3);
146 pmanager->AddProcess(
new G4hPairProduction, -1, 4, 4);
155 G4RunManager* runManager = G4RunManager::GetRunManager();
156 runManager->SetNumberOfAdditionalWaitingStacks(1);
157 G4UserStackingAction* defaultStackingAction = G4EventManager::GetEventManager()->GetUserStackingAction();
158 ATH_MSG_WARNING(
"This tool is interfering with the normal G4Atlas workflow, by forcing a differentcustom StackingAction instead of the default one. This is acceptable only as a temporary solution, and should be fixed asap.");