Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4MTRunManager Class Reference

#include <G4MTRunManager.hh>

+ Inheritance diagram for G4MTRunManager:

Public Types

enum class  WorkerActionRequest { UNDEFINED , NEXTITERATION , PROCESSUI , ENDWORKER }
 
using ProfilerConfig = G4ProfilerConfig< G4ProfileType::Run >
 
using masterWorlds_t = std::map< G4int, G4VPhysicalVolume * >
 
- Public Types inherited from G4RunManager
enum  RMType { sequentialRM , masterRM , workerRM }
 
using ProfilerConfig = G4ProfilerConfig< G4ProfileType::Run >
 

Public Member Functions

 G4MTRunManager ()
 
virtual ~G4MTRunManager ()
 
virtual void SetNumberOfThreads (G4int n)
 
virtual G4int GetNumberOfThreads () const
 
void SetPinAffinity (G4int n=1)
 
G4int GetPinAffinity () const
 
virtual void Initialize ()
 
virtual void InitializeEventLoop (G4int n_event, const char *macroFile=0, G4int n_select=-1)
 
virtual void InitializeThreadPool ()
 
virtual void TerminateOneEvent ()
 
virtual void ProcessOneEvent (G4int i_event)
 
virtual void ConstructScoringWorlds ()
 
virtual void RunTermination ()
 
virtual G4bool SetUpAnEvent (G4Event *, long &s1, long &s2, long &s3, G4bool reseedRequired=true)
 
virtual G4int SetUpNEvents (G4Event *, G4SeedsQueue *seedsQueue, G4bool reseedRequired=true)
 
std::vector< G4StringGetCommandStack ()
 
virtual size_t GetNumberActiveThreads () const
 
virtual void ThisWorkerReady ()
 
virtual void ThisWorkerEndEventLoop ()
 
const CLHEP::HepRandomEnginegetMasterRandomEngine () const
 
virtual void SetUserInitialization (G4VUserPhysicsList *userPL)
 
virtual void SetUserInitialization (G4VUserDetectorConstruction *userDC)
 
virtual void SetUserInitialization (G4UserWorkerInitialization *userInit)
 
virtual void SetUserInitialization (G4UserWorkerThreadInitialization *userInit)
 
virtual void SetUserInitialization (G4VUserActionInitialization *userInit)
 
virtual void SetUserAction (G4UserRunAction *userAction)
 
virtual void SetUserAction (G4VUserPrimaryGeneratorAction *userAction)
 
virtual void SetUserAction (G4UserEventAction *userAction)
 
virtual void SetUserAction (G4UserStackingAction *userAction)
 
virtual void SetUserAction (G4UserTrackingAction *userAction)
 
virtual void SetUserAction (G4UserSteppingAction *userAction)
 
void MergeScores (const G4ScoringManager *localScoringManager)
 
void MergeRun (const G4Run *localRun)
 
virtual void RequestWorkersProcessCommandsStack ()
 
virtual void ThisWorkerProcessCommandsStackDone ()
 
virtual WorkerActionRequest ThisWorkerWaitForNextAction ()
 
void SetEventModulo (G4int i=1)
 
G4int GetEventModulo () const
 
virtual void AbortRun (G4bool softAbort=false)
 
virtual void AbortEvent ()
 
- Public Member Functions inherited from G4RunManager
 G4RunManager ()
 
virtual ~G4RunManager ()
 
 G4RunManager (const G4RunManager &)=delete
 
G4RunManageroperator= (const G4RunManager &)=delete
 
virtual void BeamOn (G4int n_event, const char *macroFile=nullptr, G4int n_select=-1)
 
virtual void Initialize ()
 
virtual void DefineWorldVolume (G4VPhysicalVolume *worldVol, G4bool topologyIsChanged=true)
 
virtual void AbortRun (G4bool softAbort=false)
 
virtual void AbortEvent ()
 
virtual void InitializeGeometry ()
 
virtual void InitializePhysics ()
 
virtual G4bool ConfirmBeamOnCondition ()
 
virtual void RunInitialization ()
 
virtual void DoEventLoop (G4int n_event, const char *macroFile=nullptr, G4int n_select=-1)
 
virtual void RunTermination ()
 
virtual void InitializeEventLoop (G4int n_event, const char *macroFile=nullptr, G4int n_select=-1)
 
virtual void ProcessOneEvent (G4int i_event)
 
virtual void TerminateOneEvent ()
 
virtual void TerminateEventLoop ()
 
virtual G4EventGenerateEvent (G4int i_event)
 
virtual void AnalyzeEvent (G4Event *anEvent)
 
virtual void ConfigureProfilers (const std::vector< std::string > &args={})
 
void ConfigureProfilers (G4int argc, char **argv)
 
virtual void SetNumberOfThreads (G4int)
 
virtual G4int GetNumberOfThreads () const
 
void DumpRegion (const G4String &rname) const
 
void DumpRegion (G4Region *region=nullptr) const
 
void GeometryHasBeenModified (G4bool prop=true)
 
void ReinitializeGeometry (G4bool destroyFirst=false, G4bool prop=true)
 
void PhysicsHasBeenModified ()
 
void CutOffHasBeenModified ()
 
void ReOptimizeMotherOf (G4VPhysicalVolume *)
 
void ReOptimize (G4LogicalVolume *)
 
void SetGeometryToBeOptimized (G4bool vl)
 
G4bool GetGeometryToBeOptimized ()
 
void GeometryDirectlyUpdated (G4bool val=true)
 
virtual void ConstructScoringWorlds ()
 
virtual void rndmSaveThisRun ()
 
virtual void rndmSaveThisEvent ()
 
virtual void RestoreRandomNumberStatus (const G4String &fileN)
 
virtual void RestoreRndmEachEvent (G4bool)
 
virtual void SetUserInitialization (G4VUserDetectorConstruction *userInit)
 
virtual void SetUserInitialization (G4VUserPhysicsList *userInit)
 
virtual void SetUserInitialization (G4VUserActionInitialization *userInit)
 
virtual void SetUserInitialization (G4UserWorkerInitialization *userInit)
 
virtual void SetUserInitialization (G4UserWorkerThreadInitialization *userInit)
 
virtual void SetUserAction (G4UserRunAction *userAction)
 
virtual void SetUserAction (G4VUserPrimaryGeneratorAction *userAction)
 
virtual void SetUserAction (G4UserEventAction *userAction)
 
virtual void SetUserAction (G4UserStackingAction *userAction)
 
virtual void SetUserAction (G4UserTrackingAction *userAction)
 
virtual void SetUserAction (G4UserSteppingAction *userAction)
 
const G4VUserDetectorConstructionGetUserDetectorConstruction () const
 
const G4VUserPhysicsListGetUserPhysicsList () const
 
const G4VUserActionInitializationGetUserActionInitialization () const
 
G4VUserActionInitializationGetNonConstUserActionInitialization () const
 
const G4UserWorkerInitializationGetUserWorkerInitialization () const
 
const G4UserWorkerThreadInitializationGetUserWorkerThreadInitialization () const
 
const G4UserRunActionGetUserRunAction () const
 
const G4VUserPrimaryGeneratorActionGetUserPrimaryGeneratorAction () const
 
const G4UserEventActionGetUserEventAction () const
 
const G4UserStackingActionGetUserStackingAction () const
 
const G4UserTrackingActionGetUserTrackingAction () const
 
const G4UserSteppingActionGetUserSteppingAction () const
 
void SetNumberOfAdditionalWaitingStacks (G4int iAdd)
 
const G4StringGetVersionString () const
 
void SetPrimaryTransformer (G4PrimaryTransformer *pt)
 
void StoreRandomNumberStatusToG4Event (G4int vl)
 
G4int GetFlagRandomNumberStatusToG4Event () const
 
void SetRandomNumberStore (G4bool flag)
 
G4bool GetRandomNumberStore () const
 
void SetRandomNumberStoreDir (const G4String &dir)
 
const G4StringGetRandomNumberStoreDir () const
 
const G4StringGetRandomNumberStatusForThisRun () const
 
const G4StringGetRandomNumberStatusForThisEvent () const
 
void SetRandomNumberStorePerEvent (G4bool flag)
 
G4bool GetRandomNumberStorePerEvent () const
 
void SetVerboseLevel (G4int vl)
 
G4int GetVerboseLevel () const
 
G4int GetPrintProgress ()
 
void SetPrintProgress (G4int i)
 
void SetNumberOfEventsToBeStored (G4int val)
 
const G4RunGetCurrentRun () const
 
G4RunGetNonConstCurrentRun () const
 
const G4EventGetCurrentEvent () const
 
const G4EventGetPreviousEvent (G4int i) const
 
void SetRunIDCounter (G4int i)
 
G4int GetNumberOfParallelWorld () const
 
void SetNumberOfEventsToBeProcessed (G4int val)
 
G4int GetNumberOfEventsToBeProcessed () const
 
G4int GetNumberOfSelectEvents () const
 
const G4StringGetSelectMacro () const
 
void SetDCtable (G4DCtable *DCtbl)
 
RMType GetRunManagerType () const
 

Static Public Member Functions

static G4ThreadId GetMasterThreadId ()
 
static G4ScoringManagerGetMasterScoringManager ()
 
static masterWorlds_tGetMasterWorlds ()
 
static void addWorld (G4int counter, G4VPhysicalVolume *w)
 
static G4MTRunManagerGetMasterRunManager ()
 
static G4RunManagerKernelGetMasterRunManagerKernel ()
 
static G4MTRunManagerKernelGetMTMasterRunManagerKernel ()
 
static G4int SeedOncePerCommunication ()
 
static void SetSeedOncePerCommunication (G4int val)
 
static G4ThreadId GetMasterTheadId ()
 
- Static Public Member Functions inherited from G4RunManager
static G4RunManagerGetRunManager ()
 
static G4bool IfGeometryHasBeenDestroyed ()
 

Protected Member Functions

virtual G4bool InitializeSeeds (G4int)
 
virtual void PrepareCommandsStack ()
 
virtual void StoreRNGStatus (const G4String &filenamePrefix)
 
virtual void rndmSaveThisRun ()
 
virtual void rndmSaveThisEvent ()
 
virtual void CreateAndStartWorkers ()
 
virtual void WaitForReadyWorkers ()
 
virtual void WaitForEndEventLoopWorkers ()
 
virtual void TerminateWorkers ()
 
virtual void NewActionRequest (WorkerActionRequest newRequest)
 
virtual void RefillSeeds ()
 
- Protected Member Functions inherited from G4RunManager
 G4RunManager (RMType rmType)
 
void CleanUpPreviousEvents ()
 
void CleanUpUnnecessaryEvents (G4int keepNEvents)
 
void StackPreviousEvent (G4Event *anEvent)
 
virtual void StoreRNGStatus (const G4String &filenamePrefix)
 
void UpdateScoring ()
 
virtual void DeleteUserInitializations ()
 

Protected Attributes

G4int nworkers = 2
 
G4int forcedNwokers = -1
 
G4int numberOfEventToBeProcessed = 0
 
WorkerActionRequest nextActionRequest = WorkerActionRequest::UNDEFINED
 
G4int eventModuloDef = 0
 
G4int eventModulo = 1
 
G4int nSeedsUsed = 0
 
G4int nSeedsFilled = 0
 
G4int nSeedsMax = 10000
 
G4int nSeedsPerEvent = 2
 
G4doublerandDbl = nullptr
 
G4MTBarrier beginOfEventLoopBarrier
 
G4MTBarrier endOfEventLoopBarrier
 
G4MTBarrier nextActionRequestBarrier
 
G4MTBarrier processUIBarrier
 
- Protected Attributes inherited from G4RunManager
G4RunManagerKernelkernel = nullptr
 
G4EventManagereventManager = nullptr
 
G4VUserDetectorConstructionuserDetector = nullptr
 
G4VUserPhysicsListphysicsList = nullptr
 
G4VUserActionInitializationuserActionInitialization = nullptr
 
G4UserWorkerInitializationuserWorkerInitialization = nullptr
 
G4UserWorkerThreadInitializationuserWorkerThreadInitialization = nullptr
 
G4UserRunActionuserRunAction = nullptr
 
G4VUserPrimaryGeneratorActionuserPrimaryGeneratorAction = nullptr
 
G4UserEventActionuserEventAction = nullptr
 
G4UserStackingActionuserStackingAction = nullptr
 
G4UserTrackingActionuserTrackingAction = nullptr
 
G4UserSteppingActionuserSteppingAction = nullptr
 
G4bool geometryInitialized = false
 
G4bool physicsInitialized = false
 
G4bool runAborted = false
 
G4bool initializedAtLeastOnce = false
 
G4bool geometryToBeOptimized = true
 
G4int runIDCounter = 0
 
G4int verboseLevel = 0
 
G4int printModulo = -1
 
G4Timertimer = nullptr
 
G4DCtableDCtable = nullptr
 
G4RuncurrentRun = nullptr
 
G4EventcurrentEvent = nullptr
 
std::list< G4Event * > * previousEvents = nullptr
 
G4int n_perviousEventsToBeStored = 0
 
G4int numberOfEventToBeProcessed = 0
 
G4bool storeRandomNumberStatus = false
 
G4int storeRandomNumberStatusToG4Event = 0
 
G4String randomNumberStatusDir = "./"
 
G4String randomNumberStatusForThisRun = ""
 
G4String randomNumberStatusForThisEvent = ""
 
G4bool rngStatusEventsFlag = false
 
G4VPhysicalVolumecurrentWorld = nullptr
 
G4int nParallelWorlds = 0
 
G4String msgText = " "
 
G4int n_select_msg = -1
 
G4int numberOfEventProcessed = 0
 
G4String selectMacro = ""
 
G4bool fakeRun = false
 
G4bool isScoreNtupleWriter = false
 
G4bool geometryDirectlyUpdated = false
 
RMType runManagerType
 

Static Protected Attributes

static G4MTRUN_DLL G4ScoringManagermasterScM = nullptr
 
static G4MTRUN_DLL masterWorlds_t masterWorlds = G4MTRunManager::masterWorlds_t()
 
static G4MTRUN_DLL G4MTRunManagerfMasterRM = nullptr
 
static G4ThreadId masterThreadId = G4ThisThread::get_id()
 
static G4int seedOncePerCommunication = 0
 
- Static Protected Attributes inherited from G4RunManager
static G4RUN_DLL G4bool fGeometryHasBeenDestroyed = false
 

Friends

class G4RunManagerFactory
 

Detailed Description

Definition at line 58 of file G4MTRunManager.hh.

Member Typedef Documentation

◆ masterWorlds_t

Definition at line 68 of file G4MTRunManager.hh.

◆ ProfilerConfig

Member Enumeration Documentation

◆ WorkerActionRequest

Enumerator
UNDEFINED 
NEXTITERATION 
PROCESSUI 
ENDWORKER 

Definition at line 167 of file G4MTRunManager.hh.

168 {
169 UNDEFINED,
170 NEXTITERATION, // There is another set of UI commands to be executed
171 PROCESSUI, // Process UI commands w/o a /run/beamOn
172 ENDWORKER // Terminate thread, work finished
173 };

Constructor & Destructor Documentation

◆ G4MTRunManager()

G4MTRunManager::G4MTRunManager ( )

Definition at line 120 of file G4MTRunManager.cc.

122{
123 if(fMasterRM)
124 {
125 G4Exception("G4MTRunManager::G4MTRunManager", "Run0110", FatalException,
126 "Another instance of a G4MTRunManager already exists.");
127 }
128 fMasterRM = this;
129 masterThreadId = G4ThisThread::get_id();
130 MTkernel = static_cast<G4MTRunManagerKernel*>(kernel);
131#ifndef G4MULTITHREADED
133 msg << "Geant4 code is compiled without multi-threading support"
134 << "(-DG4MULTITHREADED is set to off).\n";
135 msg << "G4MTRunManager can only be used in multi-threaded applications.";
136 G4Exception("G4MTRunManager::G4MTRunManager", "Run0111", FatalException, msg);
137#endif
138
139 G4int numberOfStaticAllocators = kernel->GetNumberOfStaticAllocators();
140 if(numberOfStaticAllocators > 0)
141 {
143 msg1
144 << "There are " << numberOfStaticAllocators
145 << " static G4Allocator objects detected.\n"
146 << "In multi-threaded mode, all G4Allocator objects must be dynamically "
147 "instantiated.";
148 G4Exception("G4MTRunManager::G4MTRunManager", "Run1035", FatalException,
149 msg1);
150 }
153
154 // Check if a default RandomNumberGenerator has been created by user,
155 // if not create default one
156 // Note this call forces creation of defaults if not already there
157 // G4Random::getTheEngine(); //User did not specify RNG, create defaults
158 // Now remember the master instance of the RNG Engine
159 masterRNGEngine = G4Random::getTheEngine();
160
162
163 char* env = std::getenv("G4FORCENUMBEROFTHREADS");
164 if(env)
165 {
166 G4String envS = env;
167 if(envS == "MAX" || envS == "max")
168 {
170 }
171 else
172 {
173 std::istringstream is(env);
174 G4int val = -1;
175 is >> val;
176 if(val > 0)
177 {
178 forcedNwokers = val;
179 }
180 else
181 {
183 msg2 << "Environment variable G4FORCENUMBEROFTHREADS has an invalid "
184 "value <"
185 << envS << ">. It has to be an integer or a word \"max\".\n"
186 << "G4FORCENUMBEROFTHREADS is ignored.";
187 G4Exception("G4MTRunManager::G4MTRunManager", "Run1039", JustWarning,
188 msg2);
189 }
190 }
191 if(forcedNwokers > 0)
192 {
194 if(verboseLevel > 0)
195 { G4cout << "### Number of threads is forced to " << forcedNwokers
196 << " by Environment variable G4FORCENUMBEROFTHREADS." << G4endl; }
197 }
198 }
199}
@ JustWarning
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:59
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
static G4MTRUN_DLL G4ScoringManager * masterScM
static G4MTRUN_DLL G4MTRunManager * fMasterRM
G4double * randDbl
static G4ThreadId masterThreadId
G4int GetNumberOfStaticAllocators() const
G4RunManagerKernel * kernel
G4int verboseLevel
static G4ScoringManager * GetScoringManagerIfExist()
void SetMasterUIManager(G4bool val)
Definition: G4UImanager.hh:219
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:77
G4int G4GetNumberOfCores()
Definition: G4Threading.cc:121

◆ ~G4MTRunManager()

G4MTRunManager::~G4MTRunManager ( )
virtual

Definition at line 202 of file G4MTRunManager.cc.

203{
204 // TODO: Currently does not work due to concurrent deletion of something
205 // that is shared:
206 // G4ProcessTable::DeleteMessenger from ~G4RunManager
207 // G4cout<<"Destroy MTRunManager"<<G4endl;//ANDREA
209 delete[] randDbl;
210}
virtual void TerminateWorkers()

Member Function Documentation

◆ AbortEvent()

void G4MTRunManager::AbortEvent ( )
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 739 of file G4MTRunManager.cc.

740{
741 // nothing to do in the master thread
742}

◆ AbortRun()

void G4MTRunManager::AbortRun ( G4bool  softAbort = false)
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 722 of file G4MTRunManager.cc.

723{
724 // This method is valid only for GeomClosed or EventProc state
725 G4ApplicationState currentState =
727 if(currentState == G4State_GeomClosed || currentState == G4State_EventProc)
728 {
729 runAborted = true;
730 MTkernel->BroadcastAbortRun(softAbort);
731 }
732 else
733 {
734 G4cerr << "Run is not in progress. AbortRun() ignored." << G4endl;
735 }
736}
G4ApplicationState
@ G4State_EventProc
@ G4State_GeomClosed
G4GLOB_DLL std::ostream G4cerr
void BroadcastAbortRun(G4bool softAbort)
G4bool runAborted
const G4ApplicationState & GetCurrentState() const
static G4StateManager * GetStateManager()

◆ addWorld()

void G4MTRunManager::addWorld ( G4int  counter,
G4VPhysicalVolume w 
)
static

Definition at line 96 of file G4MTRunManager.cc.

97{
98 masterWorlds.insert(std::make_pair(counter, w));
99}
static G4MTRUN_DLL masterWorlds_t masterWorlds

Referenced by ConstructScoringWorlds(), and G4TaskRunManager::ConstructScoringWorlds().

◆ ConstructScoringWorlds()

void G4MTRunManager::ConstructScoringWorlds ( )
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 518 of file G4MTRunManager.cc.

519{
521 // Call base class stuff...
523
524 masterWorlds.clear();
525 G4int nWorlds = (G4int)
527 auto itrW =
529 for(G4int iWorld = 0; iWorld < nWorlds; ++iWorld)
530 {
531 addWorld(iWorld, *itrW);
532 ++itrW;
533 }
534}
static void addWorld(G4int counter, G4VPhysicalVolume *w)
virtual void ConstructScoringWorlds()
static G4TransportationManager * GetTransportationManager()
std::vector< G4VPhysicalVolume * >::iterator GetWorldsIterator()
std::size_t GetNoWorlds() const

◆ CreateAndStartWorkers()

void G4MTRunManager::CreateAndStartWorkers ( )
protectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 330 of file G4MTRunManager.cc.

331{
332 // Now loop on requested number of workers
333 // This will also start the workers
334 // Currently we do not allow to change the
335 // number of threads: threads area created once
336 if(threads.size() == 0)
337 {
338 if(verboseLevel > 0)
339 {
340 // for consistency with G4TaskRunManager
341 std::stringstream msg;
342 msg << "--> G4MTRunManager::CreateAndStartWorkers() --> "
343 << "Initializing workers...";
344
345 std::stringstream ss;
346 ss.fill('=');
347 ss << std::setw(G4int(msg.str().length())) << "";
348 G4cout << "\n"
349 << ss.str() << "\n"
350 << msg.str() << "\n"
351 << ss.str() << "\n"
352 << G4endl;
353 }
354
355 for(G4int nw = 0; nw < nworkers; ++nw)
356 {
357 // Create a new worker and remember it
358 G4WorkerThread* context = new G4WorkerThread;
359 context->SetNumberThreads(nworkers);
360 context->SetThreadId(nw);
361 G4Thread* thread =
363 threads.push_back(thread);
364 }
365 }
366 // Signal to threads they can start a new run
368}
virtual void NewActionRequest(WorkerActionRequest newRequest)
G4UserWorkerThreadInitialization * userWorkerThreadInitialization
virtual G4Thread * CreateAndStartWorker(G4WorkerThread *workerThreadContext)
void SetNumberThreads(G4int numnberThreads)
void SetThreadId(G4int threadId)

Referenced by InitializeEventLoop().

◆ GetCommandStack()

std::vector< G4String > G4MTRunManager::GetCommandStack ( )

◆ GetEventModulo()

G4int G4MTRunManager::GetEventModulo ( ) const
inline

◆ getMasterRandomEngine()

const CLHEP::HepRandomEngine * G4MTRunManager::getMasterRandomEngine ( ) const
inline

Definition at line 137 of file G4MTRunManager.hh.

138 {
139 return masterRNGEngine;
140 }

Referenced by G4TaskRunManagerKernel::InitializeWorker(), and G4MTRunManagerKernel::StartThread().

◆ GetMasterRunManager()

◆ GetMasterRunManagerKernel()

G4RunManagerKernel * G4MTRunManager::GetMasterRunManagerKernel ( )
static

Definition at line 72 of file G4MTRunManager.cc.

73{
74 return fMasterRM->kernel;
75}

Referenced by G4WorkerRunManager::InitializeGeometry().

◆ GetMasterScoringManager()

G4ScoringManager * G4MTRunManager::GetMasterScoringManager ( )
static

◆ GetMasterTheadId()

static G4ThreadId G4MTRunManager::GetMasterTheadId ( )
static

◆ GetMasterThreadId()

◆ GetMasterWorlds()

G4MTRunManager::masterWorlds_t & G4MTRunManager::GetMasterWorlds ( )
static

◆ GetMTMasterRunManagerKernel()

G4MTRunManagerKernel * G4MTRunManager::GetMTMasterRunManagerKernel ( )
static

Definition at line 78 of file G4MTRunManager.cc.

79{
80 return fMasterRM->MTkernel;
81}

◆ GetNumberActiveThreads()

virtual size_t G4MTRunManager::GetNumberActiveThreads ( ) const
inlinevirtual

Reimplemented in G4TaskRunManager.

Definition at line 116 of file G4MTRunManager.hh.

116{ return threads.size(); }

Referenced by NewActionRequest(), RequestWorkersProcessCommandsStack(), WaitForEndEventLoopWorkers(), and WaitForReadyWorkers().

◆ GetNumberOfThreads()

virtual G4int G4MTRunManager::GetNumberOfThreads ( ) const
inlinevirtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 75 of file G4MTRunManager.hh.

75{ return nworkers; }

◆ GetPinAffinity()

G4int G4MTRunManager::GetPinAffinity ( ) const
inline

Definition at line 77 of file G4MTRunManager.hh.

77{ return pinAffinity; }

Referenced by G4TaskRunManagerKernel::InitializeWorker(), and G4MTRunManagerKernel::StartThread().

◆ Initialize()

void G4MTRunManager::Initialize ( )
virtual

G4UImanager::GetUIpointer()->SetIgnoreCmdNotFound(true);

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 287 of file G4MTRunManager.cc.

288{
290
291 // make sure all worker threads are set up.
292 BeamOn(0);
294 /// G4UImanager::GetUIpointer()->SetIgnoreCmdNotFound(true);
295}
virtual void Initialize()
void SetRunIDCounter(G4int i)
virtual void BeamOn(G4int n_event, const char *macroFile=nullptr, G4int n_select=-1)

◆ InitializeEventLoop()

void G4MTRunManager::InitializeEventLoop ( G4int  n_event,
const char *  macroFile = 0,
G4int  n_select = -1 
)
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 371 of file G4MTRunManager.cc.

373{
374 MTkernel->SetUpDecayChannels();
377
378 if(!fakeRun)
379 {
380 nSeedsUsed = 0;
381 nSeedsFilled = 0;
382
383 if(verboseLevel > 0)
384 {
385 timer->Start();
386 }
387
388 n_select_msg = n_select;
389 if(macroFile != 0)
390 {
391 if(n_select_msg < 0)
392 n_select_msg = n_event;
393 msgText = "/control/execute ";
394 msgText += macroFile;
395 selectMacro = macroFile;
396 }
397 else
398 {
399 n_select_msg = -1;
400 selectMacro = "";
401 }
402
403 // initialize seeds
404 // If user did not implement InitializeSeeds,
405 // use default: nSeedsPerEvent seeds per event
406 if(eventModuloDef > 0)
407 {
410 {
412 if(eventModulo < 1)
413 eventModulo = 1;
415 msgd << "Event modulo is reduced to " << eventModulo
416 << " to distribute events to all threads.";
417 G4Exception("G4MTRunManager::InitializeEventLoop()", "Run10035",
418 JustWarning, msgd);
419 }
420 }
421 else
422 {
425 if(eventModulo < 1)
426 eventModulo = 1;
427 }
428 if(InitializeSeeds(n_event) == false && n_event > 0)
429 {
432 {
433 case 0:
434 nSeedsFilled = n_event;
435 break;
436 case 1:
438 break;
439 case 2:
440 nSeedsFilled = n_event / eventModulo + 1;
441 break;
442 default:
444 msgd << "Parameter value <" << seedOncePerCommunication
445 << "> of seedOncePerCommunication is invalid. It is reset to 0.";
446 G4Exception("G4MTRunManager::InitializeEventLoop()", "Run10036",
447 JustWarning, msgd);
449 nSeedsFilled = n_event;
450 }
451
452 // Generates up to nSeedsMax seed pairs only.
455 masterRNGEngine->flatArray(nSeedsPerEvent * nSeedsFilled, randDbl);
456 helper->Fill(randDbl, nSeedsFilled, n_event, nSeedsPerEvent);
457 }
458 }
459
460 // Now initialize workers. Check if user defined a WorkerThreadInitialization
461 if(userWorkerThreadInitialization == nullptr)
462 {
464 }
465
466 // Prepare UI commands for threads
468
469 // Start worker threads
471
472 // We need a barrier here. Wait for workers to start event loop.
473 // This will return only when all workers have started processing events.
475}
virtual void flatArray(const int size, double *vect)=0
G4int numberOfEventToBeProcessed
virtual G4bool InitializeSeeds(G4int)
virtual void WaitForReadyWorkers()
virtual void CreateAndStartWorkers()
virtual void PrepareCommandsStack()
static G4int seedOncePerCommunication
G4Timer * timer
G4int n_select_msg
G4int numberOfEventProcessed
G4String msgText
G4String selectMacro
static G4TemplateRNGHelper< T > * GetInstance()
Definition: G4RNGHelper.cc:42
void Fill(G4double *dbl, G4int nev, G4int nev_tot, G4int nrpe)
Definition: G4RNGHelper.hh:83
void Start()

◆ InitializeSeeds()

virtual G4bool G4MTRunManager::InitializeSeeds ( G4int  )
inlineprotectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 199 of file G4MTRunManager.hh.

199{ return false; };

Referenced by InitializeEventLoop().

◆ InitializeThreadPool()

virtual void G4MTRunManager::InitializeThreadPool ( )
inlinevirtual

Reimplemented in G4TaskRunManager.

Definition at line 83 of file G4MTRunManager.hh.

83{}

◆ MergeRun()

void G4MTRunManager::MergeRun ( const G4Run localRun)

Definition at line 629 of file G4MTRunManager.cc.

630{
631 G4AutoLock l(&runMergerMutex);
632 if(currentRun != nullptr && localRun != nullptr)
633 currentRun->Merge(localRun);
634}
G4Run * currentRun
virtual void Merge(const G4Run *)
Definition: G4Run.cc:67

Referenced by G4WorkerRunManager::MergePartialResults().

◆ MergeScores()

void G4MTRunManager::MergeScores ( const G4ScoringManager localScoringManager)

Definition at line 621 of file G4MTRunManager.cc.

622{
623 G4AutoLock l(&scorerMergerMutex);
624 if(masterScM != nullptr && localScoringManager != nullptr)
625 masterScM->Merge(localScoringManager);
626}
void Merge(const G4ScoringManager *scMan)

Referenced by G4WorkerRunManager::MergePartialResults().

◆ NewActionRequest()

void G4MTRunManager::NewActionRequest ( G4MTRunManager::WorkerActionRequest  newRequest)
protectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 773 of file G4MTRunManager.cc.

775{
777 // nextActionRequest is a shared resource, but there is no
778 // data-race thanks to the barrier: all threads are waiting
779 nextActionRequest = newRequest;
781}
void Wait()
Definition: G4MTBarrier.cc:53
void ReleaseBarrier()
Definition: G4MTBarrier.cc:72
virtual size_t GetNumberActiveThreads() const
WorkerActionRequest nextActionRequest
G4MTBarrier nextActionRequestBarrier

Referenced by CreateAndStartWorkers(), RequestWorkersProcessCommandsStack(), and TerminateWorkers().

◆ PrepareCommandsStack()

void G4MTRunManager::PrepareCommandsStack ( )
protectedvirtual

Definition at line 310 of file G4MTRunManager.cc.

311{
312 G4AutoLock l(&cmdHandlingMutex);
313 uiCmdsForWorkers.clear();
314 std::vector<G4String>* cmdCopy =
316 for(auto it = cmdCopy->cbegin(); it != cmdCopy->cend(); ++it)
317 uiCmdsForWorkers.push_back(*it);
318 cmdCopy->clear();
319 delete cmdCopy;
320}
std::vector< G4String > * GetCommandStack()
Definition: G4UImanager.cc:862

Referenced by InitializeEventLoop(), G4TaskRunManager::InitializeEventLoop(), RequestWorkersProcessCommandsStack(), and G4TaskRunManager::RequestWorkersProcessCommandsStack().

◆ ProcessOneEvent()

void G4MTRunManager::ProcessOneEvent ( G4int  i_event)
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 298 of file G4MTRunManager.cc.

299{
300 // Nothing to do
301}

◆ RefillSeeds()

void G4MTRunManager::RefillSeeds ( )
protectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 478 of file G4MTRunManager.cc.

479{
481 G4int nFill = 0;
483 {
484 case 0:
486 break;
487 case 1:
488 nFill = nworkers - nSeedsFilled;
489 break;
490 case 2:
491 default:
493 / eventModulo + 1;
494 }
495 // Generates up to nSeedsMax seed pairs only.
496 if(nFill > nSeedsMax)
497 nFill = nSeedsMax;
498 masterRNGEngine->flatArray(nSeedsPerEvent * nFill, randDbl);
499 helper->Refill(randDbl, nFill);
500 nSeedsFilled += nFill;
501}
void Refill(G4double *dbl, G4int nev)
Definition: G4RNGHelper.hh:96

Referenced by SetUpAnEvent(), and SetUpNEvents().

◆ RequestWorkersProcessCommandsStack()

void G4MTRunManager::RequestWorkersProcessCommandsStack ( )
virtual

◆ rndmSaveThisEvent()

void G4MTRunManager::rndmSaveThisEvent ( )
protectedvirtual

Reimplemented from G4RunManager.

Definition at line 254 of file G4MTRunManager.cc.

255{
256 G4Exception("G4MTRunManager::rndmSaveThisEvent", "RUN_RNDM001",
257 FatalException, "This method shall not be invoked !!");
258}

◆ rndmSaveThisRun()

void G4MTRunManager::rndmSaveThisRun ( )
protectedvirtual

Reimplemented from G4RunManager.

Definition at line 221 of file G4MTRunManager.cc.

222{
223 G4int runNumber = 0;
224 if(currentRun != nullptr)
225 runNumber = currentRun->GetRunID();
227 {
228 G4cerr << "Warning from G4RunManager::rndmSaveThisRun():"
229 << " Random number status was not stored prior to this run."
230 << G4endl << "/random/setSavingFlag command must be issued. "
231 << "Command ignored." << G4endl;
232 return;
233 }
234
235 G4String fileIn = randomNumberStatusDir + "G4Worker_currentRun.rndm";
236
237 std::ostringstream os;
238 os << "run" << runNumber << ".rndm" << '\0';
239 G4String fileOut = randomNumberStatusDir + os.str();
240
241#ifdef WIN32
242 G4String copCmd = "/control/shell copy " + fileIn + " " + fileOut;
243#else
244 G4String copCmd = "/control/shell cp " + fileIn + " " + fileOut;
245#endif
247 if(verboseLevel > 0)
248 {
249 G4cout << fileIn << " is copied to " << fileOut << G4endl;
250 }
251}
G4String randomNumberStatusDir
G4bool storeRandomNumberStatus
G4int GetRunID() const
Definition: G4Run.hh:78
G4int ApplyCommand(const char *aCommand)
Definition: G4UImanager.cc:495

◆ RunTermination()

void G4MTRunManager::RunTermination ( )
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 504 of file G4MTRunManager.cc.

505{
506 // Wait for all worker threads to have finished the run
507 // i.e. wait for them to return from RunTermination()
508 // This guarantee that userrunaction for workers has been called
509
510 // Wait now for all threads to finish event-loop
512 // Now call base-class methof
515}
virtual void WaitForEndEventLoopWorkers()
virtual void RunTermination()
virtual void TerminateEventLoop()

◆ SeedOncePerCommunication()

◆ SetEventModulo()

void G4MTRunManager::SetEventModulo ( G4int  i = 1)
inline

Definition at line 187 of file G4MTRunManager.hh.

187{ eventModuloDef = i; }

◆ SetNumberOfThreads()

void G4MTRunManager::SetNumberOfThreads ( G4int  n)
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 261 of file G4MTRunManager.cc.

262{
263 if(threads.size() != 0)
264 {
266 msg << "Number of threads cannot be changed at this moment \n"
267 << "(old threads are still alive). Method ignored.";
268 G4Exception("G4MTRunManager::SetNumberOfThreads(G4int)", "Run0112",
269 JustWarning, msg);
270 }
271 else if(forcedNwokers > 0)
272 {
274 msg << "Number of threads is forced to " << forcedNwokers
275 << " by G4FORCENUMBEROFTHREADS shell variable.\n"
276 << "Method ignored.";
277 G4Exception("G4MTRunManager::SetNumberOfThreads(G4int)", "Run0113",
278 JustWarning, msg);
279 }
280 else
281 {
282 nworkers = n;
283 }
284}

Referenced by G4RunManagerFactory::CreateRunManager().

◆ SetPinAffinity()

void G4MTRunManager::SetPinAffinity ( G4int  n = 1)

Definition at line 807 of file G4MTRunManager.cc.

808{
809 if(n == 0)
810 {
811 G4Exception("G4MTRunManager::SetPinAffinity", "Run0114", FatalException,
812 "Pin affinity must be >0 or <0.");
813 }
814 pinAffinity = n;
815 return;
816}

◆ SetSeedOncePerCommunication()

void G4MTRunManager::SetSeedOncePerCommunication ( G4int  val)
static

Definition at line 114 of file G4MTRunManager.cc.

115{
117}

Referenced by G4TaskRunManager::InitializeEventLoop(), and G4RunMessenger::SetNewValue().

◆ SetUpAnEvent()

G4bool G4MTRunManager::SetUpAnEvent ( G4Event evt,
long &  s1,
long &  s2,
long &  s3,
G4bool  reseedRequired = true 
)
virtual

Reimplemented in G4TaskRunManager.

Definition at line 637 of file G4MTRunManager.cc.

639{
640 G4AutoLock l(&setUpEventMutex);
642 {
644 if(reseedRequired)
645 {
647 G4int idx_rndm = nSeedsPerEvent * nSeedsUsed;
648 s1 = helper->GetSeed(idx_rndm);
649 s2 = helper->GetSeed(idx_rndm + 1);
650 if(nSeedsPerEvent == 3)
651 s3 = helper->GetSeed(idx_rndm + 2);
652 ++nSeedsUsed;
654 RefillSeeds();
655 }
657 return true;
658 }
659 return false;
660}
void SetEventID(G4int i)
Definition: G4Event.hh:80
virtual void RefillSeeds()
virtual const T GetSeed(const G4int &sdId)
Definition: G4RNGHelper.hh:64

Referenced by G4WorkerRunManager::GenerateEvent(), and G4WorkerTaskRunManager::GenerateEvent().

◆ SetUpNEvents()

G4int G4MTRunManager::SetUpNEvents ( G4Event evt,
G4SeedsQueue seedsQueue,
G4bool  reseedRequired = true 
)
virtual

Reimplemented in G4TaskRunManager.

Definition at line 663 of file G4MTRunManager.cc.

665{
666 G4AutoLock l(&setUpEventMutex);
668 {
669 G4int nev = eventModulo;
671 {
673 }
675 if(reseedRequired)
676 {
678 G4int nevRnd = nev;
680 nevRnd = 1;
681 for(G4int i = 0; i < nevRnd; ++i)
682 {
683 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed));
684 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed + 1));
685 if(nSeedsPerEvent == 3)
686 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed + 2));
687 ++nSeedsUsed;
689 RefillSeeds();
690 }
691 }
693 return nev;
694 }
695 return 0;
696}

Referenced by G4WorkerRunManager::GenerateEvent(), and G4WorkerTaskRunManager::GenerateEvent().

◆ SetUserAction() [1/6]

void G4MTRunManager::SetUserAction ( G4UserEventAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 589 of file G4MTRunManager.cc.

590{
591 G4Exception("G4MTRunManager::SetUserAction()", "Run0124", FatalException,
592 "For multi-threaded version, define G4UserEventAction in "
593 "G4VUserActionInitialization.");
594}

◆ SetUserAction() [2/6]

void G4MTRunManager::SetUserAction ( G4UserRunAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 571 of file G4MTRunManager.cc.

572{
573 G4RunManager::SetUserAction(userAction);
574 if(userAction)
575 userAction->SetMaster();
576}
virtual void SetUserAction(G4UserRunAction *userAction)
virtual void SetMaster(G4bool val=true)

Referenced by G4TheMTRayTracer::RestoreUserActions(), and G4TheMTRayTracer::StoreUserActions().

◆ SetUserAction() [3/6]

void G4MTRunManager::SetUserAction ( G4UserStackingAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 597 of file G4MTRunManager.cc.

598{
599 G4Exception("G4MTRunManager::SetUserAction()", "Run0125", FatalException,
600 "For multi-threaded version, define G4UserStackingAction in "
601 "G4VUserActionInitialization.");
602}

◆ SetUserAction() [4/6]

void G4MTRunManager::SetUserAction ( G4UserSteppingAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 613 of file G4MTRunManager.cc.

614{
615 G4Exception("G4MTRunManager::SetUserAction()", "Run0127", FatalException,
616 "For multi-threaded version, define G4UserSteppingAction in "
617 "G4VUserActionInitialization.");
618}

◆ SetUserAction() [5/6]

void G4MTRunManager::SetUserAction ( G4UserTrackingAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 605 of file G4MTRunManager.cc.

606{
607 G4Exception("G4MTRunManager::SetUserAction()", "Run0126", FatalException,
608 "For multi-threaded version, define G4UserTrackingAction in "
609 "G4VUserActionInitialization.");
610}

◆ SetUserAction() [6/6]

void G4MTRunManager::SetUserAction ( G4VUserPrimaryGeneratorAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 579 of file G4MTRunManager.cc.

581{
583 "G4MTRunManager::SetUserAction()", "Run0123", FatalException,
584 "For multi-threaded version, define G4VUserPrimaryGeneratorAction in "
585 "G4VUserActionInitialization.");
586}

◆ SetUserInitialization() [1/5]

void G4MTRunManager::SetUserInitialization ( G4UserWorkerInitialization userInit)
virtual

Reimplemented from G4RunManager.

Definition at line 537 of file G4MTRunManager.cc.

538{
539 userWorkerInitialization = userInit;
540}
G4UserWorkerInitialization * userWorkerInitialization

◆ SetUserInitialization() [2/5]

void G4MTRunManager::SetUserInitialization ( G4UserWorkerThreadInitialization userInit)
virtual

Reimplemented from G4RunManager.

Definition at line 543 of file G4MTRunManager.cc.

545{
547}

◆ SetUserInitialization() [3/5]

void G4MTRunManager::SetUserInitialization ( G4VUserActionInitialization userInit)
virtual

Reimplemented from G4RunManager.

Definition at line 550 of file G4MTRunManager.cc.

552{
553 userActionInitialization = userInit;
555}
G4VUserActionInitialization * userActionInitialization

◆ SetUserInitialization() [4/5]

void G4MTRunManager::SetUserInitialization ( G4VUserDetectorConstruction userDC)
virtual

Reimplemented from G4RunManager.

Definition at line 565 of file G4MTRunManager.cc.

566{
568}
virtual void SetUserInitialization(G4VUserDetectorConstruction *userInit)

◆ SetUserInitialization() [5/5]

void G4MTRunManager::SetUserInitialization ( G4VUserPhysicsList userPL)
virtual

Reimplemented from G4RunManager.

Definition at line 558 of file G4MTRunManager.cc.

559{
561 // Needed for MT, to be moved in kernel
562}

Referenced by G4TheMTRayTracer::RestoreUserActions(), and G4TheMTRayTracer::StoreUserActions().

◆ StoreRNGStatus()

void G4MTRunManager::StoreRNGStatus ( const G4String filenamePrefix)
protectedvirtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 213 of file G4MTRunManager.cc.

214{
215 std::ostringstream os;
216 os << randomNumberStatusDir << "G4Master_" << fn << ".rndm";
217 G4Random::saveEngineStatus(os.str().c_str());
218}

◆ TerminateOneEvent()

void G4MTRunManager::TerminateOneEvent ( )
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 304 of file G4MTRunManager.cc.

305{
306 // Nothing to do
307}

◆ TerminateWorkers()

void G4MTRunManager::TerminateWorkers ( )
protectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 699 of file G4MTRunManager.cc.

700{
701 // Force workers to execute (if any) all UI commands left in the stack
703 // Ask workers to exit
705 // finalize profiler before shutting down the threads
707 // Now join threads.
708#ifdef G4MULTITHREADED // protect here to prevent warning in compilation
709 while(!threads.empty())
710 {
711 G4Thread* t = *(threads.begin());
712 threads.pop_front();
714 // G4THREADJOIN(*t);
715 delete t;
716 }
717#endif
718 threads.clear();
719}
virtual void RequestWorkersProcessCommandsStack()
static void Finalize()
Definition: G4Profiler.cc:331

Referenced by ~G4MTRunManager().

◆ ThisWorkerEndEventLoop()

void G4MTRunManager::ThisWorkerEndEventLoop ( )
virtual

Reimplemented in G4TaskRunManager.

Definition at line 767 of file G4MTRunManager.cc.

768{
770}
void ThisWorkerReady()
Definition: G4MTBarrier.cc:40
G4MTBarrier endOfEventLoopBarrier

Referenced by G4WorkerRunManager::RunTermination(), and G4WorkerTaskRunManager::RunTermination().

◆ ThisWorkerProcessCommandsStackDone()

void G4MTRunManager::ThisWorkerProcessCommandsStackDone ( )
virtual

◆ ThisWorkerReady()

void G4MTRunManager::ThisWorkerReady ( )
virtual

◆ ThisWorkerWaitForNextAction()

G4MTRunManager::WorkerActionRequest G4MTRunManager::ThisWorkerWaitForNextAction ( )
virtual

Reimplemented in G4TaskRunManager.

Definition at line 785 of file G4MTRunManager.cc.

Referenced by G4WorkerRunManager::DoWork().

◆ WaitForEndEventLoopWorkers()

void G4MTRunManager::WaitForEndEventLoopWorkers ( )
protectedvirtual

◆ WaitForReadyWorkers()

void G4MTRunManager::WaitForReadyWorkers ( )
protectedvirtual

Friends And Related Function Documentation

◆ G4RunManagerFactory

friend class G4RunManagerFactory
friend

Definition at line 60 of file G4MTRunManager.hh.

Member Data Documentation

◆ beginOfEventLoopBarrier

G4MTBarrier G4MTRunManager::beginOfEventLoopBarrier
protected

◆ endOfEventLoopBarrier

G4MTBarrier G4MTRunManager::endOfEventLoopBarrier
protected

◆ eventModulo

◆ eventModuloDef

G4int G4MTRunManager::eventModuloDef = 0
protected

◆ fMasterRM

G4MTRunManager * G4MTRunManager::fMasterRM = nullptr
staticprotected

◆ forcedNwokers

G4int G4MTRunManager::forcedNwokers = -1
protected

◆ masterScM

◆ masterThreadId

G4ThreadId G4MTRunManager::masterThreadId = G4ThisThread::get_id()
staticprotected

Definition at line 256 of file G4MTRunManager.hh.

Referenced by G4MTRunManager(), and GetMasterThreadId().

◆ masterWorlds

◆ nextActionRequest

WorkerActionRequest G4MTRunManager::nextActionRequest = WorkerActionRequest::UNDEFINED
protected

Definition at line 246 of file G4MTRunManager.hh.

Referenced by NewActionRequest(), and ThisWorkerWaitForNextAction().

◆ nextActionRequestBarrier

G4MTBarrier G4MTRunManager::nextActionRequestBarrier
protected

Definition at line 276 of file G4MTRunManager.hh.

Referenced by NewActionRequest(), and ThisWorkerWaitForNextAction().

◆ nSeedsFilled

◆ nSeedsMax

◆ nSeedsPerEvent

◆ nSeedsUsed

◆ numberOfEventToBeProcessed

◆ nworkers

◆ processUIBarrier

G4MTBarrier G4MTRunManager::processUIBarrier
protected

◆ randDbl

◆ seedOncePerCommunication

G4int G4MTRunManager::seedOncePerCommunication = 0
staticprotected

The documentation for this class was generated from the following files: