Geant4 10.7.0
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 >
 
typedef std::map< G4int, G4VPhysicalVolume * > masterWorlds_t
 
- 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 ()
 
virtual void BeamOn (G4int n_event, const char *macroFile=0, 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=0, G4int n_select=-1)
 
virtual void RunTermination ()
 
virtual void InitializeEventLoop (G4int n_event, const char *macroFile=0, 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 (int argc, char **argv)
 
virtual void SetNumberOfThreads (G4int)
 
virtual G4int GetNumberOfThreads () const
 
void DumpRegion (const G4String &rname) const
 
void DumpRegion (G4Region *region=0) const
 
virtual void rndmSaveThisRun ()
 
virtual void rndmSaveThisEvent ()
 
virtual void RestoreRandomNumberStatus (const G4String &fileN)
 
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 GeometryHasBeenModified (G4bool prop=true)
 
void ReinitializeGeometry (G4bool destroyFirst=false, G4bool prop=true)
 
void PhysicsHasBeenModified ()
 
void CutOffHasBeenModified ()
 
void ReOptimizeMotherOf (G4VPhysicalVolume *)
 
void ReOptimize (G4LogicalVolume *)
 
void SetVerboseLevel (G4int vl)
 
G4int GetVerboseLevel () const
 
G4int GetPrintProgress ()
 
void SetPrintProgress (G4int i)
 
void SetGeometryToBeOptimized (G4bool vl)
 
G4bool GetGeometryToBeOptimized ()
 
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
 
G4String GetSelectMacro () const
 
void SetDCtable (G4DCtable *DCtbl)
 
RMType GetRunManagerType () const
 
virtual void ConstructScoringWorlds ()
 
virtual void RestoreRndmEachEvent (G4bool)
 
void GeometryDirectlyUpdated (G4bool val=true)
 

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
void CleanUpPreviousEvents ()
 
void CleanUpUnnecessaryEvents (G4int keepNEvents)
 
void StackPreviousEvent (G4Event *anEvent)
 
 G4RunManager (RMType rmType)
 
virtual void StoreRNGStatus (const G4String &filenamePrefix)
 
void UpdateScoring ()
 
virtual void DeleteUserInitializations ()
 

Protected Attributes

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

Static Protected Attributes

static G4MTRUN_DLL G4ScoringManagermasterScM = 0
 
static G4MTRUN_DLL masterWorlds_t masterWorlds
 
static G4MTRUN_DLL G4MTRunManagerfMasterRM = 0
 
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 53 of file G4MTRunManager.hh.

Member Typedef Documentation

◆ masterWorlds_t

Definition at line 178 of file G4MTRunManager.hh.

◆ ProfilerConfig

Member Enumeration Documentation

◆ WorkerActionRequest

Enumerator
UNDEFINED 
NEXTITERATION 
PROCESSUI 
ENDWORKER 

Definition at line 227 of file G4MTRunManager.hh.

228 {
229 UNDEFINED,
230 NEXTITERATION, // There is another set of UI commands to be executed
231 PROCESSUI, // Process UI commands w/o a /run/beamOn
232 ENDWORKER // Terminate thread, work finished
233 };

Constructor & Destructor Documentation

◆ G4MTRunManager()

G4MTRunManager::G4MTRunManager ( )

Definition at line 104 of file G4MTRunManager.cc.

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

◆ ~G4MTRunManager()

G4MTRunManager::~G4MTRunManager ( )
virtual

Definition at line 195 of file G4MTRunManager.cc.

196{
197 // TODO: Currently does not work due to concurrent deletion of something
198 // that is shared:
199 // G4ProcessTable::DeleteMessenger from ~G4RunManager
200 // G4cout<<"Destroy MTRunManager"<<G4endl;//ANDREA
202 delete[] randDbl;
203}
virtual void TerminateWorkers()

Member Function Documentation

◆ AbortEvent()

void G4MTRunManager::AbortEvent ( )
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 702 of file G4MTRunManager.cc.

703{
704 // nothing to do in the master thread
705}

◆ AbortRun()

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

virtual void ResetNavigator() const;

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 686 of file G4MTRunManager.cc.

687{
688 // This method is valid only for GeomClosed or EventProc state
689 G4ApplicationState currentState =
691 if(currentState == G4State_GeomClosed || currentState == G4State_EventProc)
692 {
693 runAborted = true;
694 MTkernel->BroadcastAbortRun(softAbort);
695 }
696 else
697 {
698 G4cerr << "Run is not in progress. AbortRun() ignored." << G4endl;
699 }
700}
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 88 of file G4MTRunManager.cc.

89{
90 masterWorlds.insert(std::make_pair(counter, w));
91}
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 499 of file G4MTRunManager.cc.

500{
502 // Call base class stuff...
504
505 masterWorlds.clear();
506 size_t nWorlds =
508 std::vector<G4VPhysicalVolume*>::iterator itrW =
510 for(size_t iWorld = 0; iWorld < nWorlds; iWorld++)
511 {
512 addWorld(iWorld, *itrW);
513 itrW++;
514 }
515}
static void addWorld(G4int counter, G4VPhysicalVolume *w)
virtual void ConstructScoringWorlds()
static G4TransportationManager * GetTransportationManager()
std::vector< G4VPhysicalVolume * >::iterator GetWorldsIterator()
size_t GetNoWorlds() const

◆ CreateAndStartWorkers()

void G4MTRunManager::CreateAndStartWorkers ( )
protectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 314 of file G4MTRunManager.cc.

315{
316 // Now loop on requested number of workers
317 // This will also start the workers
318 // Currently we do not allow to change the
319 // number of threads: threads area created once
320 if(threads.size() == 0)
321 {
322 {
323 // for consistency with G4TaskRunManager
324 std::stringstream msg;
325 msg << "--> G4MTRunManager::CreateAndStartWorkers() --> "
326 << "Initializing workers...";
327
328 std::stringstream ss;
329 ss.fill('=');
330 ss << std::setw(msg.str().length()) << "";
331 G4cout << "\n"
332 << ss.str() << "\n"
333 << msg.str() << "\n"
334 << ss.str() << "\n"
335 << G4endl;
336 }
337
338 for(G4int nw = 0; nw < nworkers; ++nw)
339 {
340 // Create a new worker and remember it
341 G4WorkerThread* context = new G4WorkerThread;
342 context->SetNumberThreads(nworkers);
343 context->SetThreadId(nw);
344 G4Thread* thread =
346 threads.push_back(thread);
347 }
348 }
349 // Signal to threads they can start a new run
351}
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 183 of file G4MTRunManager.hh.

184 {
185 return masterRNGEngine;
186 }

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

◆ GetMasterRunManager()

◆ GetMasterRunManagerKernel()

G4RunManagerKernel * G4MTRunManager::GetMasterRunManagerKernel ( )
static

Definition at line 70 of file G4MTRunManager.cc.

71{
72 return fMasterRM->kernel;
73}

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 75 of file G4MTRunManager.cc.

76{
77 return fMasterRM->MTkernel;
78}

◆ GetNumberActiveThreads()

virtual size_t G4MTRunManager::GetNumberActiveThreads ( ) const
inlinevirtual

Reimplemented in G4TaskRunManager.

Definition at line 120 of file G4MTRunManager.hh.

120{ 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 66 of file G4MTRunManager.hh.

66{ return nworkers; }

◆ GetPinAffinity()

G4int G4MTRunManager::GetPinAffinity ( ) const
inline

Definition at line 68 of file G4MTRunManager.hh.

68{ 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 272 of file G4MTRunManager.cc.

273{
275
276 // make sure all worker threads are set up.
277 BeamOn(0);
279 /// G4UImanager::GetUIpointer()->SetIgnoreCmdNotFound(true);
280}
virtual void Initialize()
void SetRunIDCounter(G4int i)
virtual void BeamOn(G4int n_event, const char *macroFile=0, 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 353 of file G4MTRunManager.cc.

355{
356 MTkernel->SetUpDecayChannels();
359
360 if(!fakeRun)
361 {
362 nSeedsUsed = 0;
363 nSeedsFilled = 0;
364
365 if(verboseLevel > 0)
366 {
367 timer->Start();
368 }
369
370 n_select_msg = n_select;
371 if(macroFile != 0)
372 {
373 if(n_select_msg < 0)
374 n_select_msg = n_event;
375 msgText = "/control/execute ";
376 msgText += macroFile;
377 selectMacro = macroFile;
378 }
379 else
380 {
381 n_select_msg = -1;
382 selectMacro = "";
383 }
384
385 // initialize seeds
386 // If user did not implement InitializeSeeds,
387 // use default: nSeedsPerEvent seeds per event
388 if(eventModuloDef > 0)
389 {
392 {
394 if(eventModulo < 1)
395 eventModulo = 1;
397 msgd << "Event modulo is reduced to " << eventModulo
398 << " to distribute events to all threads.";
399 G4Exception("G4MTRunManager::InitializeEventLoop()", "Run10035",
400 JustWarning, msgd);
401 }
402 }
403 else
404 {
406 int(std::sqrt(double(numberOfEventToBeProcessed / nworkers)));
407 if(eventModulo < 1)
408 eventModulo = 1;
409 }
410 if(InitializeSeeds(n_event) == false && n_event > 0)
411 {
414 {
415 case 0:
416 nSeedsFilled = n_event;
417 break;
418 case 1:
420 break;
421 case 2:
422 nSeedsFilled = n_event / eventModulo + 1;
423 break;
424 default:
426 msgd << "Parameter value <" << seedOncePerCommunication
427 << "> of seedOncePerCommunication is invalid. It is reset to 0.";
428 G4Exception("G4MTRunManager::InitializeEventLoop()", "Run10036",
429 JustWarning, msgd);
431 nSeedsFilled = n_event;
432 }
433
434 // Generates up to nSeedsMax seed pairs only.
437 masterRNGEngine->flatArray(nSeedsPerEvent * nSeedsFilled, randDbl);
438 helper->Fill(randDbl, nSeedsFilled, n_event, nSeedsPerEvent);
439 }
440 }
441
442 // Now initialize workers. Check if user defined a WorkerThreadInitialization
444 {
446 }
447
448 // Prepare UI commands for threads
450
451 // Start worker threads
453
454 // We need a barrier here. Wait for workers to start event loop.
455 // This will return only when all workers have started processing events.
457}
virtual void flatArray(const int size, double *vect)=0
virtual G4bool InitializeSeeds(G4int)
virtual void WaitForReadyWorkers()
virtual void CreateAndStartWorkers()
virtual void PrepareCommandsStack()
static G4int seedOncePerCommunication
G4Timer * timer
G4int n_select_msg
G4int numberOfEventProcessed
G4int verboseLevel
G4String msgText
G4String selectMacro
static G4TemplateRNGHelper< T > * GetInstance()
Definition: G4RNGHelper.cc:37
void Fill(G4double *dbl, G4int nev, G4int nev_tot, G4int nrpe)
Definition: G4RNGHelper.hh:77
void Start()

◆ InitializeSeeds()

virtual G4bool G4MTRunManager::InitializeSeeds ( G4int  )
inlineprotectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 107 of file G4MTRunManager.hh.

107{ return false; };

Referenced by InitializeEventLoop().

◆ InitializeThreadPool()

virtual void G4MTRunManager::InitializeThreadPool ( )
inlinevirtual

Reimplemented in G4TaskRunManager.

Definition at line 75 of file G4MTRunManager.hh.

75{}

◆ MergeRun()

void G4MTRunManager::MergeRun ( const G4Run localRun)

Definition at line 597 of file G4MTRunManager.cc.

598{
599 G4AutoLock l(&runMergerMutex);
600 if(currentRun && localRun)
601 currentRun->Merge(localRun);
602}
G4Run * currentRun
virtual void Merge(const G4Run *)
Definition: G4Run.cc:64

Referenced by G4WorkerRunManager::MergePartialResults().

◆ MergeScores()

void G4MTRunManager::MergeScores ( const G4ScoringManager localScoringManager)

Definition at line 590 of file G4MTRunManager.cc.

591{
592 G4AutoLock l(&scorerMergerMutex);
593 if(masterScM && localScoringManager)
594 masterScM->Merge(localScoringManager);
595}
void Merge(const G4ScoringManager *scMan)

Referenced by G4WorkerRunManager::MergePartialResults().

◆ NewActionRequest()

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

Reimplemented in G4TaskRunManager.

Definition at line 731 of file G4MTRunManager.cc.

733{
735 // nextActionRequest is a shared resource, but there is no
736 // data-race thanks to the barrier: all threads are waiting
737 nextActionRequest = newRequest;
739}
void Wait()
Definition: G4MTBarrier.cc:53
void ReleaseBarrier()
Definition: G4MTBarrier.cc:72
virtual size_t GetNumberActiveThreads() const
G4MTBarrier nextActionRequestBarrier

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

◆ PrepareCommandsStack()

void G4MTRunManager::PrepareCommandsStack ( )
protectedvirtual

Definition at line 295 of file G4MTRunManager.cc.

296{
297 G4AutoLock l(&cmdHandlingMutex);
298 uiCmdsForWorkers.clear();
299 std::vector<G4String>* cmdCopy =
301 for(std::vector<G4String>::const_iterator it = cmdCopy->begin();
302 it != cmdCopy->end(); ++it)
303 uiCmdsForWorkers.push_back(*it);
304 cmdCopy->clear();
305 delete cmdCopy;
306}
std::vector< G4String > * GetCommandStack()
Definition: G4UImanager.cc:810

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 286 of file G4MTRunManager.cc.

287{
288 // Nothing to do
289}

◆ RefillSeeds()

void G4MTRunManager::RefillSeeds ( )
protectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 459 of file G4MTRunManager.cc.

460{
462 G4int nFill = 0;
464 {
465 case 0:
467 break;
468 case 1:
469 nFill = nworkers - nSeedsFilled;
470 break;
471 case 2:
472 default:
475 1;
476 }
477 // Generates up to nSeedsMax seed pairs only.
478 if(nFill > nSeedsMax)
479 nFill = nSeedsMax;
480 masterRNGEngine->flatArray(nSeedsPerEvent * nFill, randDbl);
481 helper->Refill(randDbl, nFill);
482 nSeedsFilled += nFill;
483 // G4cout<<"helper->Refill() for "<<nFill<<" events."<<G4endl;
484}
void Refill(G4double *dbl, G4int nev)
Definition: G4RNGHelper.hh:90

Referenced by SetUpAnEvent(), and SetUpNEvents().

◆ RequestWorkersProcessCommandsStack()

void G4MTRunManager::RequestWorkersProcessCommandsStack ( )
virtual

Reimplemented in G4TaskRunManager.

Definition at line 748 of file G4MTRunManager.cc.

Referenced by G4RunMessenger::SetNewValue(), and TerminateWorkers().

◆ rndmSaveThisEvent()

void G4MTRunManager::rndmSaveThisEvent ( )
protectedvirtual

Reimplemented from G4RunManager.

Definition at line 241 of file G4MTRunManager.cc.

242{
243 G4Exception("G4MTRunManager::rndmSaveThisEvent","RUN_RNDM001",
244 FatalException,"This method shall not be invoked !!");
245}

◆ rndmSaveThisRun()

void G4MTRunManager::rndmSaveThisRun ( )
protectedvirtual

Reimplemented from G4RunManager.

Definition at line 212 of file G4MTRunManager.cc.

213{
214 G4int runNumber = 0;
215 if(currentRun) runNumber = currentRun->GetRunID();
217 {
218 G4cerr << "Warning from G4RunManager::rndmSaveThisRun():"
219 << " Random number status was not stored prior to this run."
220 << G4endl << "/random/setSavingFlag command must be issued. "
221 << "Command ignored." << G4endl;
222 return;
223 }
224
225 G4String fileIn = randomNumberStatusDir + "G4Worker_currentRun.rndm";
226
227 std::ostringstream os;
228 os << "run" << runNumber << ".rndm" << '\0';
229 G4String fileOut = randomNumberStatusDir + os.str();
230
231#ifdef WIN32
232 G4String copCmd = "/control/shell copy " + fileIn + " " + fileOut;
233#else
234 G4String copCmd = "/control/shell cp " + fileIn + " " + fileOut;
235#endif
237 if(verboseLevel > 0)
238 { G4cout << fileIn << " is copied to " << fileOut << G4endl; }
239}
G4String randomNumberStatusDir
G4bool storeRandomNumberStatus
G4int GetRunID() const
Definition: G4Run.hh:82
G4int ApplyCommand(const char *aCommand)
Definition: G4UImanager.cc:485

◆ RunTermination()

void G4MTRunManager::RunTermination ( )
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 486 of file G4MTRunManager.cc.

487{
488 // Wait for all worker threads to have finished the run
489 // i.e. wait for them to return from RunTermination()
490 // This guarantee that userrunaction for workers has been called
491
492 // Wait now for all threads to finish event-loop
494 // Now call base-class methof
497}
virtual void WaitForEndEventLoopWorkers()
virtual void RunTermination()
virtual void TerminateEventLoop()

◆ SeedOncePerCommunication()

◆ SetEventModulo()

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

Definition at line 262 of file G4MTRunManager.hh.

262{ eventModuloDef = i; }

◆ SetNumberOfThreads()

void G4MTRunManager::SetNumberOfThreads ( G4int  n)
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 247 of file G4MTRunManager.cc.

248{
249 if(threads.size() != 0)
250 {
252 msg << "Number of threads cannot be changed at this moment \n"
253 << "(old threads are still alive). Method ignored.";
254 G4Exception("G4MTRunManager::SetNumberOfThreads(G4int)", "Run0112",
255 JustWarning, msg);
256 }
257 else if(forcedNwokers > 0)
258 {
260 msg << "Number of threads is forced to " << forcedNwokers
261 << " by G4FORCENUMBEROFTHREADS shell variable.\n"
262 << "Method ignored.";
263 G4Exception("G4MTRunManager::SetNumberOfThreads(G4int)", "Run0113",
264 JustWarning, msg);
265 }
266 else
267 {
268 nworkers = n;
269 }
270}

Referenced by G4RunManagerFactory::CreateRunManager().

◆ SetPinAffinity()

void G4MTRunManager::SetPinAffinity ( G4int  n = 1)

Definition at line 760 of file G4MTRunManager.cc.

761{
762 if(n == 0)
763 {
764 G4Exception("G4MTRunManager::SetPinAffinity", "Run0114", FatalException,
765 "Pin affinity must be >0 or <0.");
766 }
767 pinAffinity = n;
768 return;
769}

◆ SetSeedOncePerCommunication()

void G4MTRunManager::SetSeedOncePerCommunication ( G4int  val)
static

Definition at line 99 of file G4MTRunManager.cc.

100{
102}

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 604 of file G4MTRunManager.cc.

606{
607 G4AutoLock l(&setUpEventMutex);
609 {
611 if(reseedRequired)
612 {
614 G4int idx_rndm = nSeedsPerEvent * nSeedsUsed;
615 s1 = helper->GetSeed(idx_rndm);
616 s2 = helper->GetSeed(idx_rndm + 1);
617 if(nSeedsPerEvent == 3)
618 s3 = helper->GetSeed(idx_rndm + 2);
619 nSeedsUsed++;
621 RefillSeeds();
622 }
624 return true;
625 }
626 return false;
627}
void SetEventID(G4int i)
Definition: G4Event.hh:80
virtual void RefillSeeds()
virtual const T GetSeed(const G4int &sdId)
Definition: G4RNGHelper.hh:58

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 629 of file G4MTRunManager.cc.

631{
632 G4AutoLock l(&setUpEventMutex);
634 {
635 G4int nev = eventModulo;
637 {
639 }
641 if(reseedRequired)
642 {
644 G4int nevRnd = nev;
646 nevRnd = 1;
647 for(int i = 0; i < nevRnd; i++)
648 {
649 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed));
650 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed + 1));
651 if(nSeedsPerEvent == 3)
652 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed + 2));
653 nSeedsUsed++;
655 RefillSeeds();
656 }
657 }
659 return nev;
660 }
661 return 0;
662}

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

◆ SetUserAction() [1/6]

void G4MTRunManager::SetUserAction ( G4UserEventAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 562 of file G4MTRunManager.cc.

563{
564 G4Exception("G4MTRunManager::SetUserAction()", "Run0124", FatalException,
565 "For multi-threaded version, define G4UserEventAction in "
566 "G4VUserActionInitialization.");
567}

◆ SetUserAction() [2/6]

void G4MTRunManager::SetUserAction ( G4UserRunAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 546 of file G4MTRunManager.cc.

547{
548 G4RunManager::SetUserAction(userAction);
549 if(userAction)
550 userAction->SetMaster();
551}
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 569 of file G4MTRunManager.cc.

570{
571 G4Exception("G4MTRunManager::SetUserAction()", "Run0125", FatalException,
572 "For multi-threaded version, define G4UserStackingAction in "
573 "G4VUserActionInitialization.");
574}

◆ SetUserAction() [4/6]

void G4MTRunManager::SetUserAction ( G4UserSteppingAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 583 of file G4MTRunManager.cc.

584{
585 G4Exception("G4MTRunManager::SetUserAction()", "Run0127", FatalException,
586 "For multi-threaded version, define G4UserSteppingAction in "
587 "G4VUserActionInitialization.");
588}

◆ SetUserAction() [5/6]

void G4MTRunManager::SetUserAction ( G4UserTrackingAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 576 of file G4MTRunManager.cc.

577{
578 G4Exception("G4MTRunManager::SetUserAction()", "Run0126", FatalException,
579 "For multi-threaded version, define G4UserTrackingAction in "
580 "G4VUserActionInitialization.");
581}

◆ SetUserAction() [6/6]

void G4MTRunManager::SetUserAction ( G4VUserPrimaryGeneratorAction userAction)
virtual

Reimplemented from G4RunManager.

Definition at line 553 of file G4MTRunManager.cc.

555{
557 "G4MTRunManager::SetUserAction()", "Run0123", FatalException,
558 "For multi-threaded version, define G4VUserPrimaryGeneratorAction in "
559 "G4VUserActionInitialization.");
560}

◆ SetUserInitialization() [1/5]

void G4MTRunManager::SetUserInitialization ( G4UserWorkerInitialization userInit)
virtual

Reimplemented from G4RunManager.

Definition at line 517 of file G4MTRunManager.cc.

518{
519 userWorkerInitialization = userInit;
520}
G4UserWorkerInitialization * userWorkerInitialization

◆ SetUserInitialization() [2/5]

void G4MTRunManager::SetUserInitialization ( G4UserWorkerThreadInitialization userInit)
virtual

Reimplemented from G4RunManager.

Definition at line 522 of file G4MTRunManager.cc.

524{
526}

◆ SetUserInitialization() [3/5]

void G4MTRunManager::SetUserInitialization ( G4VUserActionInitialization userInit)
virtual

Reimplemented from G4RunManager.

Definition at line 528 of file G4MTRunManager.cc.

530{
531 userActionInitialization = userInit;
533}
G4VUserActionInitialization * userActionInitialization

◆ SetUserInitialization() [4/5]

void G4MTRunManager::SetUserInitialization ( G4VUserDetectorConstruction userDC)
virtual

Reimplemented from G4RunManager.

Definition at line 541 of file G4MTRunManager.cc.

542{
544}
virtual void SetUserInitialization(G4VUserDetectorConstruction *userInit)

◆ SetUserInitialization() [5/5]

void G4MTRunManager::SetUserInitialization ( G4VUserPhysicsList userPL)
virtual

Reimplemented from G4RunManager.

Definition at line 535 of file G4MTRunManager.cc.

536{
538 // Needed for MT, to be moved in kernel
539}

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

◆ StoreRNGStatus()

void G4MTRunManager::StoreRNGStatus ( const G4String filenamePrefix)
protectedvirtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 205 of file G4MTRunManager.cc.

206{
207 std::ostringstream os;
208 os << randomNumberStatusDir << "G4Master_" << fn << ".rndm";
209 G4Random::saveEngineStatus(os.str().c_str());
210}

◆ TerminateOneEvent()

void G4MTRunManager::TerminateOneEvent ( )
virtual

Reimplemented from G4RunManager.

Reimplemented in G4TaskRunManager.

Definition at line 290 of file G4MTRunManager.cc.

291{
292 // Nothing to do
293}

◆ TerminateWorkers()

void G4MTRunManager::TerminateWorkers ( )
protectedvirtual

Reimplemented in G4TaskRunManager.

Definition at line 664 of file G4MTRunManager.cc.

665{
666 // Force workers to execute (if any) all UI commands left in the stack
668 // Ask workers to exit
670 // finalize profiler before shutting down the threads
672 // Now join threads.
673#ifdef G4MULTITHREADED // protect here to prevent warning in compilation
674 while(!threads.empty())
675 {
676 G4Thread* t = *(threads.begin());
677 threads.pop_front();
679 // G4THREADJOIN(*t);
680 delete t;
681 }
682#endif
683 threads.clear();
684}
virtual void RequestWorkersProcessCommandsStack()
static void Finalize()
Definition: G4Profiler.cc:331

Referenced by ~G4MTRunManager().

◆ ThisWorkerEndEventLoop()

void G4MTRunManager::ThisWorkerEndEventLoop ( )
virtual

Reimplemented in G4TaskRunManager.

Definition at line 726 of file G4MTRunManager.cc.

727{
729}
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 742 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 55 of file G4MTRunManager.hh.

Member Data Documentation

◆ beginOfEventLoopBarrier

G4MTBarrier G4MTRunManager::beginOfEventLoopBarrier
protected

◆ endOfEventLoopBarrier

G4MTBarrier G4MTRunManager::endOfEventLoopBarrier
protected

◆ eventModulo

◆ eventModuloDef

G4int G4MTRunManager::eventModuloDef
protected

◆ fMasterRM

◆ forcedNwokers

G4int G4MTRunManager::forcedNwokers
protected

◆ masterScM

◆ masterThreadId

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

Definition at line 270 of file G4MTRunManager.hh.

Referenced by G4MTRunManager(), and GetMasterThreadId().

◆ masterWorlds

G4MTRunManager::masterWorlds_t G4MTRunManager::masterWorlds
staticprotected
Initial value:
=
std::map< G4int, G4VPhysicalVolume * > masterWorlds_t

Definition at line 191 of file G4MTRunManager.hh.

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

◆ nextActionRequest

WorkerActionRequest G4MTRunManager::nextActionRequest
protected

Definition at line 247 of file G4MTRunManager.hh.

Referenced by NewActionRequest(), and ThisWorkerWaitForNextAction().

◆ nextActionRequestBarrier

G4MTBarrier G4MTRunManager::nextActionRequestBarrier
protected

Definition at line 295 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: