33 #ifndef G4MULTITHREADED
35 msg<<
"Geant4 code is compiled without multi-threading support (-DG4MULTITHREADED is set to off).";
36 msg<<
" This type of RunManager can only be used in mult-threaded applications.";
53 theParticleIterator->
reset();
55 while((*theParticleIterator)())
63 msg <<
"Process manager or process manager shadow to master are not set.\n";
64 msg <<
"Particle : "<<pd->
GetParticleName()<<
" ("<<pd<<
"), proc-manager: "<<pm;
65 msg <<
" proc-manager-shadow: "<<pmM;
74 G4cout <<
"G4WorkerRunManagerKernel::SetupShadowProcess() for particle <"
76 G4cout <<
" ProcessManager : " << pm <<
" ProcessManagerShadow : " << pmM <<
G4endl;
78 {
G4cout <<
" " << iv1 <<
" - " << procs[iv1]->GetProcessName() <<
G4endl; }
79 G4cout <<
"--------------------------------------------------------------" <<
G4endl;
81 {
G4cout <<
" " << iv2 <<
" - " << procsM[iv2]->GetProcessName() <<
G4endl; }
82 G4cout <<
"--------------------------------------------------------------" <<
G4endl;
84 msg<<
" Size of G4ProcessVector is inconsistent between master and worker threads ";
86 msg<<
" size of G4ProcessVector for worker thread is "<<procs.
size();
87 msg<<
" while master thread is "<<procsM.
size()<<
".";
94 for (
G4int idx = 0 ; idx < procs.
size() ; ++idx )
96 procs[idx]->SetMasterProcess(procsM[idx]);
std::ostringstream G4ExceptionDescription
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
void reset(G4bool ifSkipIon=true)
G4ProcessManager * GetMasterProcessManager() const
virtual ~G4WorkerRunManagerKernel()
void DestroyWorkerG4ParticleTable()
#define theParticleIterator
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4WorkerRunManagerKernel()
static G4ParticleTable * GetParticleTable()
G4ProcessManager * GetProcessManager() const
G4PTblDicIterator * GetIterator() const
G4ProcessVector * GetProcessList() const
void SetupShadowProcess() const