32 #ifndef G4MULTITHREADED
34 msg<<
"Geant4 code is compiled without multi-threading support (-DG4MULTITHREADED is set to off).";
35 msg<<
" This type of RunManager can only be used in mult-threaded applications.";
51 theParticleIterator->
reset();
53 while((*theParticleIterator)())
61 "Process manager or process manager shadow to master are not set.");
67 G4cout <<
"G4WorkerRunManagerKernel::SetupShadowProcess() for particle <"
69 G4cout <<
" ProcessManager : " << pm <<
" ProcessManagerShadow : " << pmM <<
G4endl;
71 {
G4cout <<
" " << iv1 <<
" - " << procs[iv1]->GetProcessName() <<
G4endl; }
72 G4cout <<
"--------------------------------------------------------------" <<
G4endl;
74 {
G4cout <<
" " << iv2 <<
" - " << procsM[iv2]->GetProcessName() <<
G4endl; }
75 G4cout <<
"--------------------------------------------------------------" <<
G4endl;
77 msg<<
" Size of G4ProcessVector is inconsistent between master and worker threads ";
79 msg<<
" size of G4ProcessVector for worker thread is "<<procs.
size();
80 msg<<
" while masther thread is "<<procsM.
size()<<
".";
87 for (
G4int idx = 0 ; idx < procs.
size() ; ++idx )
89 procs[idx]->SetMasterProcess(procsM[idx]);
std::ostringstream G4ExceptionDescription
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
void reset(G4bool ifSkipIon=true)
G4ProcessManager * GetMasterProcessManager() const
virtual ~G4WorkerRunManagerKernel()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4WorkerRunManagerKernel()
static G4ParticleTable * GetParticleTable()
G4PTblDicIterator * GetIterator() const
#define theParticleIterator
G4ProcessVector * GetProcessList() const
void SetupShadowProcess() const