Geant4-11
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Types | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends
G4TaskRunManager Class Reference

#include <G4TaskRunManager.hh>

Inheritance diagram for G4TaskRunManager:
G4MTRunManager PTL::TaskRunManager G4RunManager

Public Types

using InitializeSeedsCallback = std::function< G4bool(G4int, G4int &, G4int &)>
 
using masterWorlds_t = std::map< G4int, G4VPhysicalVolume * >
 
typedef TaskRunManagerpointer
 
using ProfilerConfig = G4ProfilerConfig< G4ProfileType::Run >
 
enum  RMType { sequentialRM , masterRM , workerRM }
 
using RunTaskGroup = G4TaskGroup< void >
 
enum class  WorkerActionRequest { UNDEFINED , NEXTITERATION , PROCESSUI , ENDWORKER }
 

Public Member Functions

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

Static Public Member Functions

static void addWorld (G4int counter, G4VPhysicalVolume *w)
 
static TaskRunManagerGetInstance (bool useTBB=false)
 
static G4TaskRunManagerGetMasterRunManager ()
 
static TaskRunManagerGetMasterRunManager (bool useTBB=false)
 
static G4RunManagerKernelGetMasterRunManagerKernel ()
 
static G4ScoringManagerGetMasterScoringManager ()
 
static G4ThreadId GetMasterTheadId ()
 
static G4ThreadId GetMasterThreadId ()
 
static masterWorlds_tGetMasterWorlds ()
 
static G4TaskRunManagerKernelGetMTMasterRunManagerKernel ()
 
static G4RunManagerGetRunManager ()
 
static G4bool IfGeometryHasBeenDestroyed ()
 
static G4int SeedOncePerCommunication ()
 
static void SetSeedOncePerCommunication (G4int val)
 

Protected Member Functions

virtual void AddEventTask (G4int)
 
void CleanUpPreviousEvents ()
 
void CleanUpUnnecessaryEvents (G4int keepNEvents)
 
virtual void ComputeNumberOfTasks ()
 
virtual void CreateAndStartWorkers () override
 
virtual void DeleteUserInitializations ()
 
virtual G4bool InitializeSeeds (G4int) override
 
virtual void NewActionRequest (WorkerActionRequest) override
 
virtual void PrepareCommandsStack ()
 
virtual void RefillSeeds () override
 
virtual void rndmSaveThisEvent ()
 
virtual void rndmSaveThisRun ()
 
void StackPreviousEvent (G4Event *anEvent)
 
virtual void StoreRNGStatus (const G4String &filenamePrefix) override
 
virtual void TerminateWorkers () override
 
void UpdateScoring ()
 

Protected Attributes

G4MTBarrier beginOfEventLoopBarrier
 
G4EventcurrentEvent = nullptr
 
G4RuncurrentRun = nullptr
 
G4VPhysicalVolumecurrentWorld = nullptr
 
G4DCtableDCtable = nullptr
 
G4MTBarrier endOfEventLoopBarrier
 
G4EventManagereventManager = nullptr
 
G4int eventModulo = 1
 
G4int eventModuloDef = 0
 
G4bool fakeRun = false
 
G4int forcedNwokers = -1
 
G4bool geometryDirectlyUpdated = false
 
G4bool geometryInitialized = false
 
G4bool geometryToBeOptimized = true
 
G4bool initializedAtLeastOnce = false
 
InitializeSeedsCallback initSeedsCallback
 
G4bool isScoreNtupleWriter = false
 
G4RunManagerKernelkernel = nullptr
 
bool m_is_initialized = false
 
TaskManager * m_task_manager = nullptr
 
VUserTaskQueue * m_task_queue = nullptr
 
ThreadPool * m_thread_pool = nullptr
 
int m_verbose = 0
 
uint64_t m_workers = 0
 
G4String msgText = " "
 
G4int n_perviousEventsToBeStored = 0
 
G4int n_select_msg = -1
 
WorkerActionRequest nextActionRequest = WorkerActionRequest::UNDEFINED
 
G4MTBarrier nextActionRequestBarrier
 
G4int nParallelWorlds = 0
 
G4int nSeedsFilled = 0
 
G4int nSeedsMax = 10000
 
G4int nSeedsPerEvent = 2
 
G4int nSeedsUsed = 0
 
G4int numberOfEventProcessed = 0
 
G4int numberOfEventToBeProcessed = 0
 
G4int nworkers = 2
 
G4bool physicsInitialized = false
 
G4VUserPhysicsListphysicsList = nullptr
 
G4boolpoolInitialized = PTL::TaskRunManager::m_is_initialized
 
std::list< G4Event * > * previousEvents = nullptr
 
G4int printModulo = -1
 
G4MTBarrier processUIBarrier
 
G4doublerandDbl = nullptr
 
G4String randomNumberStatusDir = "./"
 
G4String randomNumberStatusForThisEvent = ""
 
G4String randomNumberStatusForThisRun = ""
 
G4bool rngStatusEventsFlag = false
 
G4bool runAborted = false
 
G4int runIDCounter = 0
 
RMType runManagerType
 
G4String selectMacro = ""
 
G4bool storeRandomNumberStatus = false
 
G4int storeRandomNumberStatusToG4Event = 0
 
G4TaskManager *& taskManager = PTL::TaskRunManager::m_task_manager
 
G4VUserTaskQueue *& taskQueue = PTL::TaskRunManager::m_task_queue
 
G4ThreadPool *& threadPool = PTL::TaskRunManager::m_thread_pool
 
G4Timertimer = nullptr
 
G4VUserActionInitializationuserActionInitialization = nullptr
 
G4VUserDetectorConstructionuserDetector = nullptr
 
G4UserEventActionuserEventAction = nullptr
 
G4VUserPrimaryGeneratorActionuserPrimaryGeneratorAction = nullptr
 
G4UserRunActionuserRunAction = nullptr
 
G4UserStackingActionuserStackingAction = nullptr
 
G4UserSteppingActionuserSteppingAction = nullptr
 
G4UserTrackingActionuserTrackingAction = nullptr
 
G4UserWorkerInitializationuserWorkerInitialization = nullptr
 
G4UserWorkerThreadInitializationuserWorkerThreadInitialization = nullptr
 
G4int verboseLevel = 0
 
RunTaskGroupworkTaskGroup = nullptr
 

Static Protected Attributes

static G4RUN_DLL G4bool fGeometryHasBeenDestroyed = false
 
static G4MTRUN_DLL G4MTRunManagerfMasterRM = nullptr
 
static G4MTRUN_DLL G4ScoringManagermasterScM = nullptr
 
static G4ThreadId masterThreadId = G4ThisThread::get_id()
 
static G4MTRUN_DLL masterWorlds_t masterWorlds = G4MTRunManager::masterWorlds_t()
 
static G4int seedOncePerCommunication = 0
 

Private Types

using G4ThreadsList = std::list< G4Thread * >
 

Static Private Member Functions

static pointerGetPrivateMasterRunManager (bool init, bool useTBB=false)
 

Private Attributes

G4int eventGrainsize = 0
 
CLHEP::HepRandomEnginemasterRNGEngine = nullptr
 
std::unique_ptr< ProfilerConfigmasterRunProfiler
 
G4TaskRunManagerKernelMTkernel = nullptr
 
G4int numberOfEventsPerTask = -1
 
G4int numberOfTasks = -1
 
G4int pinAffinity = 0
 
G4RunMessengerrunMessenger = nullptr
 
G4ThreadsList threads
 
std::vector< G4StringuiCmdsForWorkers
 
bool workersStarted = false
 

Static Private Attributes

static G4ThreadLocal G4RunManagerfRunManager = nullptr
 

Friends

class G4RunManagerFactory
 

Detailed Description

Definition at line 66 of file G4TaskRunManager.hh.

Member Typedef Documentation

◆ G4ThreadsList

using G4MTRunManager::G4ThreadsList = std::list<G4Thread*>
privateinherited

Definition at line 281 of file G4MTRunManager.hh.

◆ InitializeSeedsCallback

Definition at line 77 of file G4TaskRunManager.hh.

◆ masterWorlds_t

Definition at line 68 of file G4MTRunManager.hh.

◆ pointer

Definition at line 47 of file TaskRunManager.hh.

◆ ProfilerConfig

Definition at line 74 of file G4TaskRunManager.hh.

◆ RunTaskGroup

Definition at line 78 of file G4TaskRunManager.hh.

Member Enumeration Documentation

◆ RMType

enum G4RunManager::RMType
inherited
Enumerator
sequentialRM 
masterRM 
workerRM 

Definition at line 575 of file G4RunManager.hh.

576 {
578 masterRM,
580 };

◆ WorkerActionRequest

enum class G4MTRunManager::WorkerActionRequest
stronginherited
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

◆ G4TaskRunManager() [1/2]

G4TaskRunManager::G4TaskRunManager ( G4bool  useTBB = G4GetEnv<G4bool>("G4USE_TBB", false))

Definition at line 162 of file G4TaskRunManager.cc.

163 : G4TaskRunManager(nullptr, useTBB, 0)
164{}
G4TaskRunManager(G4bool useTBB=G4GetEnv< G4bool >("G4USE_TBB", false))

◆ G4TaskRunManager() [2/2]

G4TaskRunManager::G4TaskRunManager ( G4VUserTaskQueue taskQueue,
G4bool  useTBB = G4GetEnv<G4bool>("G4USE_TBB", false),
G4int  evtGrainsize = 0 
)

Definition at line 77 of file G4TaskRunManager.cc.

80 , PTL::TaskRunManager(useTBB)
81 , eventGrainsize(grainsize)
83 , numberOfTasks(-1)
84 , masterRNGEngine(nullptr)
85 , workTaskGroup(nullptr)
86{
87 if(task_queue)
88 taskQueue = task_queue;
89
90 // override default of 2 from G4MTRunManager
92 fMasterRM = this;
93 MTkernel = static_cast<G4TaskRunManagerKernel*>(kernel);
94
95 G4int numberOfStaticAllocators = kernel->GetNumberOfStaticAllocators();
96 if(numberOfStaticAllocators > 0)
97 {
99 msg1 << "There are " << numberOfStaticAllocators
100 << " static G4Allocator objects detected.\n"
101 << "In multi-threaded mode, all G4Allocator objects must "
102 << "be dynamicly instantiated.";
103 G4Exception("G4TaskRunManager::G4TaskRunManager", "Run1035", FatalException,
104 msg1);
105 }
106
109
110 // use default RandomNumberGenerator if created by user, or create default
111 masterRNGEngine = G4Random::getTheEngine();
112
115
116 //------------------------------------------------------------------------//
117 // handle threading
118 //------------------------------------------------------------------------//
119 G4String _nthread_env = G4GetEnv<G4String>("G4FORCENUMBEROFTHREADS", "");
120 for(auto& itr : _nthread_env)
121 itr = tolower(itr);
122
123 if(_nthread_env == "max")
125 else if(!_nthread_env.empty())
126 {
127 std::stringstream ss;
128 G4int _nthread_val = -1;
129 ss << _nthread_env;
130 ss >> _nthread_val;
131 if(_nthread_val > 0)
132 forcedNwokers = _nthread_val;
133
134 if(forcedNwokers > 0)
136 }
137
138 //------------------------------------------------------------------------//
139 // option for forcing TBB
140 //------------------------------------------------------------------------//
141#ifdef GEANT4_USE_TBB
142 G4int _useTBB = G4GetEnv<G4int>("G4FORCE_TBB", (G4int) useTBB);
143 if(_useTBB > 0)
144 useTBB = true;
145#else
146 if(useTBB)
147 {
149 msg << "TBB was requested but Geant4 was not built with TBB support";
150 G4Exception("G4TaskRunManager::G4TaskRunManager(...)", "Run0131",
151 JustWarning, msg);
152 }
153 useTBB = false;
154#endif
155
156 // handle TBB
158}
@ 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
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
G4int numberOfEventToBeProcessed
static G4MTRUN_DLL G4ScoringManager * masterScM
static G4MTRUN_DLL G4MTRunManager * fMasterRM
G4double * randDbl
G4int GetNumberOfStaticAllocators() const
G4RunManagerKernel * kernel
static G4ScoringManager * GetScoringManagerIfExist()
G4VUserTaskQueue *& taskQueue
RunTaskGroup * workTaskGroup
CLHEP::HepRandomEngine * masterRNGEngine
G4TaskRunManagerKernel * MTkernel
void SetMasterUIManager(G4bool val)
Definition: G4UImanager.hh:219
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:77
static void set_use_tbb(bool val)
Definition: ThreadPool.cc:102
G4int G4GetNumberOfCores()
Definition: G4Threading.cc:121

References FatalException, G4MTRunManager::fMasterRM, G4MTRunManager::forcedNwokers, G4Exception(), G4Threading::G4GetNumberOfCores(), G4RunManagerKernel::GetNumberOfStaticAllocators(), G4ScoringManager::GetScoringManagerIfExist(), G4UImanager::GetUIpointer(), JustWarning, G4RunManager::kernel, masterRNGEngine, G4MTRunManager::masterScM, MTkernel, G4MTRunManager::nSeedsMax, G4MTRunManager::nSeedsPerEvent, G4MTRunManager::numberOfEventToBeProcessed, G4MTRunManager::nworkers, G4MTRunManager::randDbl, PTL::ThreadPool::set_use_tbb(), G4UImanager::SetMasterUIManager(), and taskQueue.

◆ ~G4TaskRunManager()

G4TaskRunManager::~G4TaskRunManager ( )
virtual

Definition at line 168 of file G4TaskRunManager.cc.

169{
170 // finalize profiler before shutting down the threads
172
173 // terminate all the workers
175
176 // trigger all G4AutoDelete instances
178
179 // delete the task-group
180 delete workTaskGroup;
181 workTaskGroup = nullptr;
182
183 // destroy the thread-pool
184 if(threadPool)
186
188}
static void Finalize()
Definition: G4Profiler.cc:331
virtual void TerminateWorkers() override
G4ThreadPool *& threadPool
virtual void Terminate()
size_type destroy_threadpool()
Definition: ThreadPool.cc:364

References G4ThreadLocalSingleton< T >::Clear(), PTL::ThreadPool::destroy_threadpool(), G4Profiler::Finalize(), PTL::TaskRunManager::Terminate(), TerminateWorkers(), threadPool, and workTaskGroup.

Member Function Documentation

◆ AbortEvent()

void G4TaskRunManager::AbortEvent ( )
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 752 of file G4TaskRunManager.cc.

753{
754 // nothing to do in the master thread
755}

◆ AbortRun()

void G4TaskRunManager::AbortRun ( G4bool  softAbort = false)
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 734 of file G4TaskRunManager.cc.

735{
736 // This method is valid only for GeomClosed or EventProc state
737 G4ApplicationState currentState =
739 if(currentState == G4State_GeomClosed || currentState == G4State_EventProc)
740 {
741 runAborted = true;
742 MTkernel->BroadcastAbortRun(softAbort);
743 }
744 else
745 {
746 G4cerr << "Run is not in progress. AbortRun() ignored." << G4endl;
747 }
748}
G4ApplicationState
@ G4State_EventProc
@ G4State_GeomClosed
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition: G4ios.hh:57
G4bool runAborted
const G4ApplicationState & GetCurrentState() const
static G4StateManager * GetStateManager()
void BroadcastAbortRun(G4bool softAbort)

References G4TaskRunManagerKernel::BroadcastAbortRun(), G4cerr, G4endl, G4State_EventProc, G4State_GeomClosed, G4StateManager::GetCurrentState(), G4StateManager::GetStateManager(), MTkernel, and G4RunManager::runAborted.

◆ AddEventTask()

void G4TaskRunManager::AddEventTask ( G4int  nt)
protectedvirtual

Definition at line 471 of file G4TaskRunManager.cc.

472{
473 if(verboseLevel > 1)
474 G4cout << "Adding task " << nt << " to task-group..." << G4endl;
476}
G4GLOB_DLL std::ostream G4cout
G4int verboseLevel
enable_if_t< std::is_void< Up >::value, void > exec(Func func, Args... args)

References PTL::TaskGroup< Tp, Arg, MaxDepth >::exec(), G4TaskRunManagerKernel::ExecuteWorkerTask(), G4cout, G4endl, G4RunManager::verboseLevel, and workTaskGroup.

Referenced by CreateAndStartWorkers().

◆ addWorld()

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

Definition at line 96 of file G4MTRunManager.cc.

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

References G4MTRunManager::masterWorlds.

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

◆ AnalyzeEvent()

void G4RunManager::AnalyzeEvent ( G4Event anEvent)
virtualinherited

Definition at line 548 of file G4RunManager.cc.

549{
550 G4VPersistencyManager* fPersM =
552 if(fPersM != nullptr)
553 fPersM->Store(anEvent);
554 currentRun->RecordEvent(anEvent);
555}
G4Run * currentRun
virtual void RecordEvent(const G4Event *)
Definition: G4Run.cc:61
static G4VPersistencyManager * GetPersistencyManager()
virtual G4bool Store(const G4Event *anEvent)=0

References G4RunManager::currentRun, G4VPersistencyManager::GetPersistencyManager(), G4Run::RecordEvent(), and G4VPersistencyManager::Store().

Referenced by G4RunManager::ProcessOneEvent(), G4WorkerRunManager::ProcessOneEvent(), and G4WorkerTaskRunManager::ProcessOneEvent().

◆ BeamOn()

void G4RunManager::BeamOn ( G4int  n_event,
const char *  macroFile = nullptr,
G4int  n_select = -1 
)
virtualinherited

Definition at line 273 of file G4RunManager.cc.

274{
275 if(n_event <= 0)
276 {
277 fakeRun = true;
278 }
279 else
280 {
281 fakeRun = false;
282 }
284 if(cond)
285 {
290 DoEventLoop(n_event, macroFile, n_select);
292 }
293 fakeRun = false;
294}
bool G4bool
Definition: G4Types.hh:86
G4int numberOfEventProcessed
virtual G4bool ConfirmBeamOnCondition()
virtual void RunTermination()
G4int numberOfEventToBeProcessed
virtual void DoEventLoop(G4int n_event, const char *macroFile=nullptr, G4int n_select=-1)
virtual void RunInitialization()
virtual void ConstructScoringWorlds()

References G4RunManager::ConfirmBeamOnCondition(), G4RunManager::ConstructScoringWorlds(), G4RunManager::DoEventLoop(), G4RunManager::fakeRun, G4RunManager::numberOfEventProcessed, G4RunManager::numberOfEventToBeProcessed, G4RunManager::RunInitialization(), and G4RunManager::RunTermination().

Referenced by G4WorkerRunManager::DoWork(), export_G4RunManager(), G4MTRunManager::Initialize(), Initialize(), G4AdjointSimManager::RunAdjointSimulation(), and G4RunMessenger::SetNewValue().

◆ CleanUpPreviousEvents()

void G4RunManager::CleanUpPreviousEvents ( )
protectedinherited

Definition at line 589 of file G4RunManager.cc.

590{
591 // Delete all events carried over from previous run.
592 // This method is invoked at the beginning of the next run
593 // or from the destructor of G4RunManager at the very end of
594 // the program.
595 // N.B. If ToBeKept() is true, the pointer of this event is
596 // kept in G4Run of the previous run, and deleted along with
597 // the deletion of G4Run.
598
599 auto evItr = previousEvents->cbegin();
600 while(evItr != previousEvents->cend())
601 {
602 G4Event* evt = *evItr;
603 if(evt != nullptr && !(evt->ToBeKept()))
604 delete evt;
605 evItr = previousEvents->erase(evItr);
606 }
607}
G4bool ToBeKept() const
Definition: G4Event.hh:102
std::list< G4Event * > * previousEvents

References G4RunManager::previousEvents, and G4Event::ToBeKept().

Referenced by G4WorkerTaskRunManager::DoCleanup(), G4RunManager::RunInitialization(), G4WorkerRunManager::RunInitialization(), G4WorkerTaskRunManager::RunInitialization(), and G4RunManager::~G4RunManager().

◆ CleanUpUnnecessaryEvents()

void G4RunManager::CleanUpUnnecessaryEvents ( G4int  keepNEvents)
protectedinherited

Definition at line 610 of file G4RunManager.cc.

611{
612 // Delete events that are no longer necessary for post
613 // processing such as visualization.
614 // N.B. If ToBeKept() is true, the pointer of this event is
615 // kept in G4Run of the previous run, and deleted along with
616 // the deletion of G4Run.
617
618 auto evItr = previousEvents->cbegin();
619 while(evItr != previousEvents->cend())
620 {
621 if(G4int(previousEvents->size()) <= keepNEvents)
622 return;
623
624 G4Event* evt = *evItr;
625 if(evt != nullptr)
626 {
627 if(evt->GetNumberOfGrips() == 0)
628 {
629 if(!(evt->ToBeKept()))
630 delete evt;
631 evItr = previousEvents->erase(evItr);
632 }
633 else
634 {
635 ++evItr;
636 }
637 }
638 else
639 {
640 evItr = previousEvents->erase(evItr);
641 }
642 }
643}
G4int GetNumberOfGrips() const
Definition: G4Event.hh:115

References G4Event::GetNumberOfGrips(), G4RunManager::previousEvents, and G4Event::ToBeKept().

Referenced by G4RunManager::RunTermination(), and G4RunManager::StackPreviousEvent().

◆ ComputeNumberOfTasks()

void G4TaskRunManager::ComputeNumberOfTasks ( )
protectedvirtual

Definition at line 311 of file G4TaskRunManager.cc.

312{
313 G4int grainSize = (eventGrainsize == 0) ? threadPool->size() : eventGrainsize;
314 grainSize =
315 G4GetEnv<G4int>("G4FORCE_GRAINSIZE", grainSize, "Forcing grainsize...");
316 if(grainSize == 0)
317 grainSize = 1;
318
319 G4int nEvtsPerTask = (numberOfEventToBeProcessed > grainSize)
320 ? (numberOfEventToBeProcessed / grainSize)
321 : 1;
322
323 if(eventModuloDef > 0)
324 {
326 }
327 else
328 {
330 if(eventModulo < 1)
331 eventModulo = 1;
332 }
333 if(eventModulo > nEvtsPerTask)
334 {
335 G4int oldMod = eventModulo;
336 eventModulo = nEvtsPerTask;
337
339 msgd << "Event modulo is reduced to " << eventModulo << " (was " << oldMod
340 << ")"
341 << " to distribute events to all threads.";
342 G4Exception("G4TaskRunManager::InitializeEventLoop()", "Run10035",
343 JustWarning, msgd);
344 }
345 nEvtsPerTask = eventModulo;
346
347 if(fakeRun)
348 nEvtsPerTask = G4GetEnv<G4int>(
349 "G4FORCE_EVENTS_PER_TASK", nEvtsPerTask,
350 "Forcing number of events per task (overrides grainsize)...");
351 else
352 nEvtsPerTask = G4GetEnv<G4int>("G4FORCE_EVENTS_PER_TASK", nEvtsPerTask);
353
354 if(nEvtsPerTask < 1)
355 nEvtsPerTask = 1;
356
358 numberOfEventsPerTask = nEvtsPerTask;
360
361 if(fakeRun && verboseLevel > 1)
362 {
363 std::stringstream msg;
364 msg << "--> G4TaskRunManager::ComputeNumberOfTasks() --> " << numberOfTasks
365 << " tasks with " << numberOfEventsPerTask << " events/task...";
366
367 std::stringstream ss;
368 ss.fill('=');
369 ss << std::setw(msg.str().length()) << "";
370 G4cout << "\n"
371 << ss.str() << "\n"
372 << msg.str() << "\n"
373 << ss.str() << "\n"
374 << G4endl;
375 }
376}
size_type size() const
Definition: ThreadPool.hh:163

References eventGrainsize, G4MTRunManager::eventModulo, G4MTRunManager::eventModuloDef, G4RunManager::fakeRun, G4cout, G4endl, G4Exception(), JustWarning, numberOfEventsPerTask, G4MTRunManager::numberOfEventToBeProcessed, numberOfTasks, PTL::ThreadPool::size(), threadPool, and G4RunManager::verboseLevel.

Referenced by CreateAndStartWorkers(), and InitializeEventLoop().

◆ ConfigureProfilers() [1/2]

void G4RunManager::ConfigureProfilers ( const std::vector< std::string > &  args = {})
virtualinherited

Definition at line 1198 of file G4RunManager.cc.

1199{
1200#ifdef GEANT4_USE_TIMEMORY
1201 // parse command line if arguments were passed
1203#else
1205#endif
1206}
static char ** args
Definition: G4Xt.cc:51
static void Configure(const std::vector< std::string > &args)
Definition: G4Profiler.cc:91
void G4ConsumeParameters(_Args &&...)
Definition: templates.hh:187

References args, G4Profiler::Configure(), and G4ConsumeParameters().

Referenced by G4RunManager::ConfigureProfilers(), and G4RunManager::G4RunManager().

◆ ConfigureProfilers() [2/2]

void G4RunManager::ConfigureProfilers ( G4int  argc,
char **  argv 
)
inherited

Definition at line 1189 of file G4RunManager.cc.

1190{
1191 std::vector<std::string> _args;
1192 for(G4int i = 0; i < argc; ++i)
1193 _args.push_back(argv[i]);
1194 ConfigureProfilers(_args);
1195}
virtual void ConfigureProfilers(const std::vector< std::string > &args={})

References G4RunManager::ConfigureProfilers().

◆ ConfirmBeamOnCondition()

G4bool G4RunManager::ConfirmBeamOnCondition ( )
virtualinherited

Definition at line 297 of file G4RunManager.cc.

298{
300
301 G4ApplicationState currentState = stateManager->GetCurrentState();
302 if(currentState != G4State_PreInit && currentState != G4State_Idle)
303 {
304 G4cerr << "Illegal application state - BeamOn() ignored." << G4endl;
305 return false;
306 }
307
309 {
310 G4cerr << " Geant4 kernel should be initialized" << G4endl;
311 G4cerr << "before the first BeamOn(). - BeamOn ignored." << G4endl;
312 return false;
313 }
314
316 {
317 if(verboseLevel > 0)
318 {
319 G4cout << "Start re-initialization because " << G4endl;
321 G4cout << " Geometry" << G4endl;
323 G4cout << " Physics processes" << G4endl;
324 G4cout << "has been modified since last Run." << G4endl;
325 }
326 Initialize();
327 }
328 return true;
329}
@ G4State_Idle
@ G4State_PreInit
G4bool geometryInitialized
virtual void Initialize()
G4bool physicsInitialized
G4bool initializedAtLeastOnce

References G4cerr, G4cout, G4endl, G4State_Idle, G4State_PreInit, G4RunManager::geometryInitialized, G4StateManager::GetCurrentState(), G4StateManager::GetStateManager(), G4RunManager::Initialize(), G4RunManager::initializedAtLeastOnce, G4RunManager::physicsInitialized, and G4RunManager::verboseLevel.

Referenced by G4RunManager::BeamOn(), and G4WorkerTaskRunManager::DoWork().

◆ ConstructScoringWorlds()

void G4TaskRunManager::ConstructScoringWorlds ( )
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 613 of file G4TaskRunManager.cc.

614{
616 // Call base class stuff...
618
619 masterWorlds.clear();
620 size_t nWorlds =
622 std::vector<G4VPhysicalVolume*>::iterator itrW =
624 for(size_t iWorld = 0; iWorld < nWorlds; ++iWorld)
625 {
626 addWorld(iWorld, *itrW);
627 ++itrW;
628 }
629}
static void addWorld(G4int counter, G4VPhysicalVolume *w)
static G4TransportationManager * GetTransportationManager()
std::vector< G4VPhysicalVolume * >::iterator GetWorldsIterator()
size_t GetNoWorlds() const

References G4MTRunManager::addWorld(), G4RunManager::ConstructScoringWorlds(), G4TransportationManager::GetNoWorlds(), G4ScoringManager::GetScoringManagerIfExist(), G4TransportationManager::GetTransportationManager(), G4TransportationManager::GetWorldsIterator(), G4MTRunManager::masterScM, and G4MTRunManager::masterWorlds.

◆ CreateAndStartWorkers()

void G4TaskRunManager::CreateAndStartWorkers ( )
overrideprotectedvirtual

Reimplemented from G4MTRunManager.

Definition at line 380 of file G4TaskRunManager.cc.

381{
382 // Now loop on requested number of workers
383 // This will also start the workers
384 // Currently we do not allow to change the
385 // number of threads: threads area created once
386 // Instead of pthread based workers, create tbbTask
387 static bool initializeStarted = false;
388
390
391 if(fakeRun)
392 {
393 if(initializeStarted)
394 {
395 auto initCmdStack = GetCommandStack();
396 if(!initCmdStack.empty())
397 {
398 threadPool->execute_on_all_threads([initCmdStack]() {
399 for(auto& itr : initCmdStack)
400 G4UImanager::GetUIpointer()->ApplyCommand(itr);
402 });
403 }
404 }
405 else
406 {
407 std::stringstream msg;
408 msg << "--> G4TaskRunManager::CreateAndStartWorkers() --> "
409 << "Initializing workers...";
410
411 std::stringstream ss;
412 ss.fill('=');
413 ss << std::setw(msg.str().length()) << "";
414 G4cout << "\n"
415 << ss.str() << "\n"
416 << msg.str() << "\n"
417 << ss.str() << "\n"
418 << G4endl;
419
423 }
424 initializeStarted = true;
425 }
426 else
427 {
428 auto initCmdStack = GetCommandStack();
429 if(!initCmdStack.empty())
430 {
431 threadPool->execute_on_all_threads([initCmdStack]() {
432 for(auto& itr : initCmdStack)
433 G4UImanager::GetUIpointer()->ApplyCommand(itr);
434 });
435 }
436
437 // cleans up a previous run and events in case a thread
438 // does not execute any tasks
441
442 {
443 std::stringstream msg;
444 msg << "--> G4TaskRunManager::CreateAndStartWorkers() --> "
445 << "Creating " << numberOfTasks << " tasks with "
446 << numberOfEventsPerTask << " events/task...";
447
448 std::stringstream ss;
449 ss.fill('=');
450 ss << std::setw(msg.str().length()) << "";
451 G4cout << "\n"
452 << ss.str() << "\n"
453 << msg.str() << "\n"
454 << ss.str() << "\n"
455 << G4endl;
456 }
457
459 for(G4int nt = 0; nt < numberOfTasks + 1; ++nt)
460 {
461 if(remaining > 0)
462 AddEventTask(nt);
463 remaining -= numberOfEventsPerTask;
464 }
466 }
467}
std::vector< G4String > GetCommandStack()
static std::vector< G4String > & InitCommandStack()
virtual void AddEventTask(G4int)
virtual void ComputeNumberOfTasks()
virtual void DoWork() override
static G4WorkerTaskRunManager * GetWorkerRunManager()
void execute_on_all_threads(FuncT &&_func)
Definition: ThreadPool.hh:423

References AddEventTask(), ComputeNumberOfTasks(), G4WorkerTaskRunManager::DoWork(), PTL::ThreadPool::execute_on_all_threads(), G4TaskRunManagerKernel::ExecuteWorkerInit(), G4RunManager::fakeRun, G4cout, G4endl, G4MTRunManager::GetCommandStack(), G4UImanager::GetUIpointer(), G4WorkerTaskRunManager::GetWorkerRunManager(), G4TaskRunManagerKernel::InitCommandStack(), G4TaskRunManagerKernel::InitializeWorker(), numberOfEventsPerTask, G4MTRunManager::numberOfEventToBeProcessed, numberOfTasks, threadPool, PTL::TaskGroup< Tp, Arg, MaxDepth >::wait(), and workTaskGroup.

Referenced by InitializeEventLoop().

◆ CutOffHasBeenModified()

void G4RunManager::CutOffHasBeenModified ( )
inlineinherited

Definition at line 301 of file G4RunManager.hh.

302 {
303 G4cerr << "CutOffHasBeenModified becomes obsolete." << G4endl;
304 G4cerr << "It is safe to remove invoking this method." << G4endl;
305 }

References G4cerr, and G4endl.

◆ DefineWorldVolume()

void G4RunManager::DefineWorldVolume ( G4VPhysicalVolume worldVol,
G4bool  topologyIsChanged = true 
)
virtualinherited

Definition at line 791 of file G4RunManager.cc.

793{
794 kernel->DefineWorldVolume(worldVol, topologyIsChanged);
795}
void DefineWorldVolume(G4VPhysicalVolume *worldVol, G4bool topologyIsChanged=true)

References G4RunManagerKernel::DefineWorldVolume(), and G4RunManager::kernel.

Referenced by export_G4RunManager(), DetectorConstruction::SetMaterial(), G4GDMLMessenger::SetNewValue(), and ExN03DetectorConstruction::UpdateGeometry().

◆ DeleteUserInitializations()

void G4RunManager::DeleteUserInitializations ( )
protectedvirtualinherited

Definition at line 244 of file G4RunManager.cc.

245{
246 delete userDetector;
247 userDetector = nullptr;
248 if(verboseLevel > 1)
249 G4cout << "UserDetectorConstruction deleted." << G4endl;
250
251 delete physicsList;
252 physicsList = nullptr;
253 if(verboseLevel > 1)
254 G4cout << "UserPhysicsList deleted." << G4endl;
255
257 userActionInitialization = nullptr;
258 if(verboseLevel > 1)
259 G4cout << "UserActionInitialization deleted." << G4endl;
260
262 userWorkerInitialization = nullptr;
263 if(verboseLevel > 1)
264 G4cout << "UserWorkerInitialization deleted." << G4endl;
265
268 if(verboseLevel > 1)
269 G4cout << "UserWorkerThreadInitialization deleted." << G4endl;
270}
G4UserWorkerInitialization * userWorkerInitialization
G4UserWorkerThreadInitialization * userWorkerThreadInitialization
G4VUserActionInitialization * userActionInitialization
G4VUserDetectorConstruction * userDetector
G4VUserPhysicsList * physicsList

References G4cout, G4endl, G4RunManager::physicsList, G4RunManager::userActionInitialization, G4RunManager::userDetector, G4RunManager::userWorkerInitialization, G4RunManager::userWorkerThreadInitialization, and G4RunManager::verboseLevel.

Referenced by G4RunManager::~G4RunManager().

◆ DoEventLoop()

void G4RunManager::DoEventLoop ( G4int  n_event,
const char *  macroFile = nullptr,
G4int  n_select = -1 
)
virtualinherited

Reimplemented in G4WorkerRunManager, and G4WorkerTaskRunManager.

Definition at line 412 of file G4RunManager.cc.

414{
415 InitializeEventLoop(n_event, macroFile, n_select);
416
417 // Event loop
418 for(G4int i_event = 0; i_event < n_event; ++i_event)
419 {
420 ProcessOneEvent(i_event);
422 if(runAborted)
423 break;
424 }
425
426 // For G4MTRunManager, TerminateEventLoop() is invoked after all threads are
427 // finished.
430}
virtual void InitializeEventLoop(G4int n_event, const char *macroFile=nullptr, G4int n_select=-1)
virtual void TerminateEventLoop()
RMType runManagerType
virtual void ProcessOneEvent(G4int i_event)
virtual void TerminateOneEvent()

References G4RunManager::InitializeEventLoop(), G4RunManager::ProcessOneEvent(), G4RunManager::runAborted, G4RunManager::runManagerType, G4RunManager::sequentialRM, G4RunManager::TerminateEventLoop(), and G4RunManager::TerminateOneEvent().

Referenced by G4RunManager::BeamOn().

◆ DumpRegion() [1/2]

void G4RunManager::DumpRegion ( const G4String rname) const
inherited

Definition at line 890 of file G4RunManager.cc.

891{
892 kernel->DumpRegion(rname);
893}
void DumpRegion(const G4String &rname) const

References G4RunManagerKernel::DumpRegion(), and G4RunManager::kernel.

Referenced by G4RunMessenger::SetNewValue().

◆ DumpRegion() [2/2]

void G4RunManager::DumpRegion ( G4Region region = nullptr) const
inherited

Definition at line 896 of file G4RunManager.cc.

897{
898 kernel->DumpRegion(region);
899}

References G4RunManagerKernel::DumpRegion(), and G4RunManager::kernel.

◆ GenerateEvent()

G4Event * G4RunManager::GenerateEvent ( G4int  i_event)
virtualinherited

Reimplemented in G4WorkerRunManager, and G4WorkerTaskRunManager.

Definition at line 500 of file G4RunManager.cc.

501{
502 if(userPrimaryGeneratorAction == nullptr)
503 {
504 G4Exception("G4RunManager::GenerateEvent()", "Run0032", FatalException,
505 "G4VUserPrimaryGeneratorAction is not defined!");
506 return nullptr;
507 }
508
509 G4Event* anEvent = new G4Event(i_event);
510
513 {
514 std::ostringstream oss;
515 G4Random::saveFullState(oss);
518 }
519
521 {
522 G4String fileN = "currentEvent";
524 {
525 std::ostringstream os;
526 os << "run" << currentRun->GetRunID() << "evt" << anEvent->GetEventID();
527 fileN = os.str();
528 }
529 StoreRNGStatus(fileN);
530 }
531
532 if(printModulo > 0 && anEvent->GetEventID() % printModulo == 0)
533 {
534 G4cout << "--> Event " << anEvent->GetEventID() << " starts." << G4endl;
535 }
537 return anEvent;
538}
void SetRandomNumberStatus(G4String &st)
Definition: G4Event.hh:90
G4int GetEventID() const
Definition: G4Event.hh:118
G4int storeRandomNumberStatusToG4Event
G4bool rngStatusEventsFlag
G4VUserPrimaryGeneratorAction * userPrimaryGeneratorAction
G4String randomNumberStatusForThisEvent
G4bool storeRandomNumberStatus
virtual void StoreRNGStatus(const G4String &filenamePrefix)
G4int GetRunID() const
Definition: G4Run.hh:78
virtual void GeneratePrimaries(G4Event *anEvent)=0

References G4RunManager::currentRun, FatalException, G4cout, G4endl, G4Exception(), G4VUserPrimaryGeneratorAction::GeneratePrimaries(), G4Event::GetEventID(), G4Run::GetRunID(), G4RunManager::printModulo, G4RunManager::randomNumberStatusForThisEvent, G4RunManager::rngStatusEventsFlag, G4Event::SetRandomNumberStatus(), G4RunManager::storeRandomNumberStatus, G4RunManager::storeRandomNumberStatusToG4Event, G4RunManager::StoreRNGStatus(), and G4RunManager::userPrimaryGeneratorAction.

Referenced by G4RunManager::ProcessOneEvent().

◆ GeometryDirectlyUpdated()

void G4RunManager::GeometryDirectlyUpdated ( G4bool  val = true)
inlineinherited

Definition at line 331 of file G4RunManager.hh.

332 {
334 }
G4bool geometryDirectlyUpdated

References G4RunManager::geometryDirectlyUpdated.

Referenced by G4GDMLMessenger::SetNewValue().

◆ GeometryHasBeenModified()

void G4RunManager::GeometryHasBeenModified ( G4bool  prop = true)
inherited

Definition at line 1117 of file G4RunManager.cc.

1118{
1119 if(prop)
1120 {
1121 G4UImanager::GetUIpointer()->ApplyCommand("/run/geometryModified");
1122 }
1123 else
1124 {
1126 }
1127}
G4int ApplyCommand(const char *aCommand)
Definition: G4UImanager.cc:485

References G4UImanager::ApplyCommand(), G4RunManagerKernel::GeometryHasBeenModified(), G4UImanager::GetUIpointer(), and G4RunManager::kernel.

Referenced by G4RunManager::ConstructScoringWorlds(), export_G4RunManager(), and G4RunMessenger::SetNewValue().

◆ GetCommandStack()

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

◆ GetCurrentEvent()

const G4Event * G4RunManager::GetCurrentEvent ( ) const
inlineinherited

◆ GetCurrentRun()

const G4Run * G4RunManager::GetCurrentRun ( ) const
inlineinherited

◆ GetEventModulo()

G4int G4MTRunManager::GetEventModulo ( ) const
inlineinherited

◆ GetFlagRandomNumberStatusToG4Event()

G4int G4RunManager::GetFlagRandomNumberStatusToG4Event ( ) const
inlineinherited

◆ GetGeometryToBeOptimized()

G4bool G4RunManager::GetGeometryToBeOptimized ( )
inlineinherited

Definition at line 326 of file G4RunManager.hh.

327 {
329 }
G4bool geometryToBeOptimized

References G4RunManager::geometryToBeOptimized.

Referenced by export_G4RunManager().

◆ GetGrainsize()

G4int G4TaskRunManager::GetGrainsize ( ) const
inline

Definition at line 93 of file G4TaskRunManager.hh.

93{ return eventGrainsize; }

References eventGrainsize.

◆ GetInstance()

TaskRunManager * TaskRunManager::GetInstance ( bool  useTBB = false)
staticinherited

Definition at line 58 of file TaskRunManager.cc.

59{
60 return GetMasterRunManager(useTBB);
61}
static TaskRunManager * GetMasterRunManager(bool useTBB=false)

References PTL::TaskRunManager::GetMasterRunManager().

◆ getMasterRandomEngine()

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

◆ GetMasterRunManager() [1/2]

static G4TaskRunManager * G4TaskRunManager::GetMasterRunManager ( )
inlinestatic

◆ GetMasterRunManager() [2/2]

TaskRunManager * TaskRunManager::GetMasterRunManager ( bool  useTBB = false)
staticinherited

Definition at line 49 of file TaskRunManager.cc.

50{
51 static pointer& _instance = GetPrivateMasterRunManager(true, useTBB);
52 return _instance;
53}
static pointer & GetPrivateMasterRunManager(bool init, bool useTBB=false)
TaskRunManager * pointer

References PTL::TaskRunManager::GetPrivateMasterRunManager().

Referenced by PTL::internal::get_default_threadpool(), PTL::TaskManager::GetInstance(), PTL::TaskRunManager::GetInstance(), and PTL::VUserTaskQueue::VUserTaskQueue().

◆ GetMasterRunManagerKernel()

G4RunManagerKernel * G4MTRunManager::GetMasterRunManagerKernel ( )
staticinherited

Definition at line 72 of file G4MTRunManager.cc.

73{
74 return fMasterRM->kernel;
75}

References G4MTRunManager::fMasterRM, and G4RunManager::kernel.

Referenced by G4WorkerRunManager::InitializeGeometry().

◆ GetMasterScoringManager()

G4ScoringManager * G4MTRunManager::GetMasterScoringManager ( )
staticinherited

◆ GetMasterTheadId()

static G4ThreadId G4MTRunManager::GetMasterTheadId ( )
staticinherited

◆ GetMasterThreadId()

G4ThreadId G4TaskRunManager::GetMasterThreadId ( )
static

Definition at line 192 of file G4TaskRunManager.cc.

193{
195}
static G4ThreadId GetMasterThreadId()

References G4MTRunManager::GetMasterThreadId().

◆ GetMasterWorlds()

G4MTRunManager::masterWorlds_t & G4MTRunManager::GetMasterWorlds ( )
staticinherited

◆ GetMTMasterRunManagerKernel()

G4TaskRunManagerKernel * G4TaskRunManager::GetMTMasterRunManagerKernel ( )
static

Definition at line 70 of file G4TaskRunManager.cc.

71{
73}
static G4TaskRunManager * GetMasterRunManager()

References GetMasterRunManager(), and MTkernel.

◆ GetNonConstCurrentRun()

G4Run * G4RunManager::GetNonConstCurrentRun ( ) const
inlineinherited

Definition at line 534 of file G4RunManager.hh.

534{ return currentRun; }

References G4RunManager::currentRun.

◆ GetNonConstUserActionInitialization()

G4VUserActionInitialization * G4RunManager::GetNonConstUserActionInitialization ( ) const
inlineinherited

◆ GetNumberActiveThreads()

virtual size_t G4TaskRunManager::GetNumberActiveThreads ( ) const
inlineoverridevirtual

Reimplemented from PTL::TaskRunManager.

Definition at line 105 of file G4TaskRunManager.hh.

106 {
108 }
virtual size_t GetNumberActiveThreads() const

References PTL::TaskRunManager::GetNumberActiveThreads().

◆ GetNumberOfEventsPerTask()

G4int G4TaskRunManager::GetNumberOfEventsPerTask ( ) const
inline

Definition at line 95 of file G4TaskRunManager.hh.

96 {
98 }

References numberOfEventsPerTask.

◆ GetNumberOfEventsToBeProcessed()

G4int G4RunManager::GetNumberOfEventsToBeProcessed ( ) const
inlineinherited

◆ GetNumberOfParallelWorld()

G4int G4RunManager::GetNumberOfParallelWorld ( ) const
inlineinherited

Definition at line 562 of file G4RunManager.hh.

562{ return nParallelWorlds; }
G4int nParallelWorlds

References G4RunManager::nParallelWorlds.

◆ GetNumberOfSelectEvents()

G4int G4RunManager::GetNumberOfSelectEvents ( ) const
inlineinherited

Definition at line 571 of file G4RunManager.hh.

571{ return n_select_msg; }
G4int n_select_msg

References G4RunManager::n_select_msg.

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

◆ GetNumberOfTasks()

G4int G4TaskRunManager::GetNumberOfTasks ( ) const
inline

Definition at line 94 of file G4TaskRunManager.hh.

94{ return numberOfTasks; }

References numberOfTasks.

◆ GetNumberOfThreads()

virtual G4int G4TaskRunManager::GetNumberOfThreads ( ) const
inlineoverridevirtual

Reimplemented from PTL::TaskRunManager.

Definition at line 101 of file G4TaskRunManager.hh.

102 {
104 }
virtual int GetNumberOfThreads() const

References PTL::TaskRunManager::GetNumberOfThreads().

◆ GetPinAffinity()

G4int G4MTRunManager::GetPinAffinity ( ) const
inlineinherited

◆ GetPreviousEvent()

const G4Event * G4RunManager::GetPreviousEvent ( G4int  i) const
inlineinherited

Definition at line 540 of file G4RunManager.hh.

546 {
547 if(i >= 1 && i <= n_perviousEventsToBeStored)
548 {
549 auto itr = previousEvents->cbegin();
550 for(G4int j = 1; j < i; ++j)
551 {
552 ++itr;
553 }
554 return *itr;
555 }
556 return nullptr;
557 }
G4int n_perviousEventsToBeStored

References G4RunManager::n_perviousEventsToBeStored, and G4RunManager::previousEvents.

Referenced by G4DigiManager::GetDigiCollection(), and G4DigiManager::GetHitsCollection().

◆ GetPrintProgress()

G4int G4RunManager::GetPrintProgress ( )
inlineinherited

Definition at line 521 of file G4RunManager.hh.

521{ return printModulo; }

References G4RunManager::printModulo.

Referenced by G4TheMTRayTracer::CreateBitMap(), and G4RunMessenger::GetCurrentValue().

◆ GetPrivateMasterRunManager()

TaskRunManager::pointer & TaskRunManager::GetPrivateMasterRunManager ( bool  init,
bool  useTBB = false 
)
staticprivateinherited

Definition at line 40 of file TaskRunManager.cc.

41{
42 static pointer _instance = (init) ? new TaskRunManager(useTBB) : nullptr;
43 return _instance;
44}
TaskRunManager(bool useTBB=false)

References PTL::TaskRunManager::TaskRunManager().

Referenced by PTL::TaskRunManager::GetMasterRunManager(), and PTL::TaskRunManager::TaskRunManager().

◆ GetRandomNumberStatusForThisEvent()

const G4String & G4RunManager::GetRandomNumberStatusForThisEvent ( ) const
inlineinherited

Definition at line 495 of file G4RunManager.hh.

496 {
499 {
500 G4Exception("GrRunManager::SetRandomNumberStoreDir", "Run0072",
502 "Random number status is not available for this event.");
503 }
505 }

References G4Exception(), JustWarning, G4RunManager::randomNumberStatusForThisEvent, and G4RunManager::storeRandomNumberStatusToG4Event.

◆ GetRandomNumberStatusForThisRun()

const G4String & G4RunManager::GetRandomNumberStatusForThisRun ( ) const
inlineinherited

Definition at line 491 of file G4RunManager.hh.

492 {
494 }
G4String randomNumberStatusForThisRun

References G4RunManager::randomNumberStatusForThisRun.

◆ GetRandomNumberStore()

G4bool G4RunManager::GetRandomNumberStore ( ) const
inlineinherited

Definition at line 460 of file G4RunManager.hh.

461 {
463 }

References G4RunManager::storeRandomNumberStatus.

Referenced by export_G4RunManager().

◆ GetRandomNumberStoreDir()

const G4String & G4RunManager::GetRandomNumberStoreDir ( ) const
inlineinherited

Definition at line 487 of file G4RunManager.hh.

488 {
490 }
G4String randomNumberStatusDir

References G4RunManager::randomNumberStatusDir.

Referenced by export_G4RunManager(), and G4RunMessenger::GetCurrentValue().

◆ GetRandomNumberStorePerEvent()

G4bool G4RunManager::GetRandomNumberStorePerEvent ( ) const
inlineinherited

Definition at line 510 of file G4RunManager.hh.

511 {
512 return rngStatusEventsFlag;
513 }

References G4RunManager::rngStatusEventsFlag.

◆ GetRunManager()

G4RunManager * G4RunManager::GetRunManager ( )
staticinherited

◆ GetRunManagerType()

RMType G4RunManager::GetRunManagerType ( ) const
inlineinherited

◆ GetSelectMacro()

const G4String & G4RunManager::GetSelectMacro ( ) const
inlineinherited

Definition at line 572 of file G4RunManager.hh.

572{ return selectMacro; }
G4String selectMacro

References G4RunManager::selectMacro.

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

◆ GetTaskManager()

TaskManager * PTL::TaskRunManager::GetTaskManager ( ) const
inlineinherited

◆ GetThreadPool()

ThreadPool * PTL::TaskRunManager::GetThreadPool ( ) const
inlineinherited

◆ GetUserActionInitialization()

const G4VUserActionInitialization * G4RunManager::GetUserActionInitialization ( ) const
inlineinherited

◆ GetUserDetectorConstruction()

const G4VUserDetectorConstruction * G4RunManager::GetUserDetectorConstruction ( ) const
inlineinherited

◆ GetUserEventAction()

const G4UserEventAction * G4RunManager::GetUserEventAction ( ) const
inlineinherited

◆ GetUserPhysicsList()

const G4VUserPhysicsList * G4RunManager::GetUserPhysicsList ( ) const
inlineinherited

◆ GetUserPrimaryGeneratorAction()

const G4VUserPrimaryGeneratorAction * G4RunManager::GetUserPrimaryGeneratorAction ( ) const
inlineinherited

◆ GetUserRunAction()

const G4UserRunAction * G4RunManager::GetUserRunAction ( ) const
inlineinherited

◆ GetUserStackingAction()

const G4UserStackingAction * G4RunManager::GetUserStackingAction ( ) const
inlineinherited

◆ GetUserSteppingAction()

const G4UserSteppingAction * G4RunManager::GetUserSteppingAction ( ) const
inlineinherited

◆ GetUserTrackingAction()

const G4UserTrackingAction * G4RunManager::GetUserTrackingAction ( ) const
inlineinherited

◆ GetUserWorkerInitialization()

const G4UserWorkerInitialization * G4RunManager::GetUserWorkerInitialization ( ) const
inlineinherited

◆ GetUserWorkerThreadInitialization()

const G4UserWorkerThreadInitialization * G4RunManager::GetUserWorkerThreadInitialization ( ) const
inlineinherited

◆ GetVerbose()

int PTL::TaskRunManager::GetVerbose ( ) const
inlineinherited

Definition at line 74 of file TaskRunManager.hh.

74{ return m_verbose; }

References PTL::TaskRunManager::m_verbose.

Referenced by InitializeThreadPool().

◆ GetVerboseLevel()

G4int G4RunManager::GetVerboseLevel ( ) const
inlineinherited

◆ GetVersionString()

const G4String & G4RunManager::GetVersionString ( ) const
inlineinherited

Definition at line 431 of file G4RunManager.hh.

432 {
433 return kernel->GetVersionString();
434 }
const G4String & GetVersionString() const

References G4RunManagerKernel::GetVersionString(), and G4RunManager::kernel.

Referenced by export_G4RunManager().

◆ IfGeometryHasBeenDestroyed()

G4bool G4RunManager::IfGeometryHasBeenDestroyed ( )
staticinherited

Definition at line 105 of file G4RunManager.cc.

106{
108}
static G4RUN_DLL G4bool fGeometryHasBeenDestroyed

References G4RunManager::fGeometryHasBeenDestroyed.

Referenced by G4WorkerTaskRunManager::RunInitialization().

◆ Initialize() [1/2]

void G4TaskRunManager::Initialize ( void  )
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 242 of file G4TaskRunManager.cc.

243{
244 G4bool firstTime = (!threadPool);
245 if(firstTime)
247
249
250 // make sure all worker threads are set up.
252 if(firstTime)
254 // G4UImanager::GetUIpointer()->SetIgnoreCmdNotFound(true);
255}
void SetRunIDCounter(G4int i)
virtual void BeamOn(G4int n_event, const char *macroFile=nullptr, G4int n_select=-1)
virtual void InitializeThreadPool() override

References G4RunManager::BeamOn(), G4RunManager::Initialize(), InitializeThreadPool(), G4RunManager::SetRunIDCounter(), and threadPool.

◆ Initialize() [2/2]

virtual void G4TaskRunManager::Initialize ( uint64_t  nthreads)
inlineoverridevirtual

Reimplemented from PTL::TaskRunManager.

Definition at line 120 of file G4TaskRunManager.hh.

121 {
123 }
virtual void Initialize(uint64_t n=std::thread::hardware_concurrency())

References PTL::TaskRunManager::Initialize().

◆ InitializeEventLoop()

void G4TaskRunManager::InitializeEventLoop ( G4int  n_event,
const char *  macroFile = nullptr,
G4int  n_select = -1 
)
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 508 of file G4TaskRunManager.cc.

510{
514
515 if(!fakeRun)
516 {
517 nSeedsUsed = 0;
518 nSeedsFilled = 0;
519
520 if(verboseLevel > 0)
521 timer->Start();
522
523 n_select_msg = n_select;
524 if(macroFile != nullptr)
525 {
526 if(n_select_msg < 0)
527 n_select_msg = n_event;
528
529 msgText = "/control/execute ";
530 msgText += macroFile;
531 selectMacro = macroFile;
532 }
533 else
534 {
535 n_select_msg = -1;
536 selectMacro = "";
537 }
538
540
541 // initialize seeds
542 // If user did not implement InitializeSeeds,
543 // use default: nSeedsPerEvent seeds per event
544
545 if(n_event > 0)
546 {
547 G4bool _overload = InitializeSeeds(n_event);
548 G4bool _functor = false;
549 if(!_overload)
550 _functor = initSeedsCallback(n_event, nSeedsPerEvent, nSeedsFilled);
551 if(_overload == false && _functor == false)
552 {
555 {
556 case 0:
557 nSeedsFilled = n_event;
558 break;
559 case 1:
561 break;
562 case 2:
563 nSeedsFilled = n_event / eventModulo + 1;
564 break;
565 default:
567 msgd << "Parameter value <" << SeedOncePerCommunication()
568 << "> of seedOncePerCommunication is invalid. It is reset "
569 "to 0.";
570 G4Exception("G4TaskRunManager::InitializeEventLoop()", "Run10036",
571 JustWarning, msgd);
573 nSeedsFilled = n_event;
574 }
575
576 // Generates up to nSeedsMax seed pairs only.
580 helper->Fill(randDbl, nSeedsFilled, n_event, nSeedsPerEvent);
581 }
582 }
583 }
584
585 // Now initialize workers. Check if user defined a WorkerThreadInitialization
586 if(userWorkerThreadInitialization == nullptr)
588
589 // Prepare UI commands for threads
591
592 // Start worker threads
594}
virtual void flatArray(const int size, double *vect)=0
static G4int SeedOncePerCommunication()
static void SetSeedOncePerCommunication(G4int val)
virtual void PrepareCommandsStack()
G4Timer * timer
G4String msgText
virtual void CreateAndStartWorkers() override
virtual G4bool InitializeSeeds(G4int) override
InitializeSeedsCallback initSeedsCallback
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()

References ComputeNumberOfTasks(), CreateAndStartWorkers(), G4MTRunManager::eventModulo, G4RunManager::fakeRun, G4TemplateRNGHelper< T >::Fill(), CLHEP::HepRandomEngine::flatArray(), G4Exception(), G4TemplateRNGHelper< T >::GetInstance(), InitializeSeeds(), initSeedsCallback, JustWarning, masterRNGEngine, G4RunManager::msgText, MTkernel, G4RunManager::n_select_msg, G4MTRunManager::nSeedsFilled, G4MTRunManager::nSeedsMax, G4MTRunManager::nSeedsPerEvent, G4MTRunManager::nSeedsUsed, G4RunManager::numberOfEventProcessed, G4MTRunManager::numberOfEventToBeProcessed, numberOfTasks, G4MTRunManager::PrepareCommandsStack(), G4MTRunManager::randDbl, G4MTRunManager::SeedOncePerCommunication(), G4RunManager::selectMacro, G4MTRunManager::SetSeedOncePerCommunication(), G4TaskRunManagerKernel::SetUpDecayChannels(), G4Timer::Start(), G4RunManager::timer, G4RunManager::userWorkerThreadInitialization, and G4RunManager::verboseLevel.

◆ InitializeGeometry()

void G4RunManager::InitializeGeometry ( )
virtualinherited

Reimplemented in G4WorkerRunManager.

Definition at line 691 of file G4RunManager.cc.

692{
693 if(userDetector == nullptr)
694 {
695 G4Exception("G4RunManager::InitializeGeometry", "Run0033", FatalException,
696 "G4VUserDetectorConstruction is not defined!");
697 return;
698 }
699
700 if(verboseLevel > 1)
701 G4cout << "userDetector->Construct() start." << G4endl;
702
704 G4ApplicationState currentState = stateManager->GetCurrentState();
705 if(currentState == G4State_PreInit || currentState == G4State_Idle)
706 {
707 stateManager->SetNewState(G4State_Init);
708 }
710 {
716 }
717 // Notify the VisManager as well
719 {
721 if(pVVisManager != nullptr)
722 pVVisManager->GeometryHasChanged();
723 }
724
726 geometryInitialized = true;
727 stateManager->SetNewState(currentState);
728}
@ G4State_Init
void SetNumberOfParallelWorld(G4int i)
G4bool SetNewState(const G4ApplicationState &requestedState)
virtual G4VPhysicalVolume * Construct()=0
static G4VVisManager * GetConcreteInstance()
virtual void GeometryHasChanged()=0
G4bool IsMasterThread()
Definition: G4Threading.cc:124

References G4VUserDetectorConstruction::Construct(), G4VUserDetectorConstruction::ConstructParallelGeometries(), G4VUserDetectorConstruction::ConstructParallelSD(), G4VUserDetectorConstruction::ConstructSDandField(), G4RunManagerKernel::DefineWorldVolume(), FatalException, G4cout, G4endl, G4Exception(), G4State_Idle, G4State_Init, G4State_PreInit, G4RunManager::geometryDirectlyUpdated, G4VVisManager::GeometryHasChanged(), G4RunManager::geometryInitialized, G4VVisManager::GetConcreteInstance(), G4StateManager::GetCurrentState(), G4StateManager::GetStateManager(), G4Threading::IsMasterThread(), G4RunManager::kernel, G4RunManager::nParallelWorlds, G4StateManager::SetNewState(), G4RunManagerKernel::SetNumberOfParallelWorld(), G4RunManager::userDetector, and G4RunManager::verboseLevel.

Referenced by G4RunManager::Initialize().

◆ InitializePhysics()

void G4RunManager::InitializePhysics ( )
virtualinherited

Definition at line 731 of file G4RunManager.cc.

732{
734 G4ApplicationState currentState = stateManager->GetCurrentState();
735 if(currentState == G4State_PreInit || currentState == G4State_Idle)
736 {
737 stateManager->SetNewState(G4State_Init);
738 }
739 if(physicsList != nullptr)
740 {
742 }
743 else
744 {
745 G4Exception("G4RunManager::InitializePhysics()", "Run0034", FatalException,
746 "G4VUserPhysicsList is not defined!");
747 }
748 physicsInitialized = true;
749 stateManager->SetNewState(currentState);
750}

References FatalException, G4Exception(), G4State_Idle, G4State_Init, G4State_PreInit, G4StateManager::GetCurrentState(), G4StateManager::GetStateManager(), G4RunManagerKernel::InitializePhysics(), G4RunManager::kernel, G4RunManager::physicsInitialized, G4RunManager::physicsList, and G4StateManager::SetNewState().

Referenced by G4RunManager::Initialize().

◆ InitializeSeeds()

virtual G4bool G4TaskRunManager::InitializeSeeds ( G4int  )
inlineoverrideprotectedvirtual

Reimplemented from G4MTRunManager.

Definition at line 155 of file G4TaskRunManager.hh.

155{ return false; }

Referenced by InitializeEventLoop().

◆ InitializeThreadPool()

void G4TaskRunManager::InitializeThreadPool ( )
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 259 of file G4TaskRunManager.cc.

260{
262 {
263 G4Exception("G4TaskRunManager::InitializeThreadPool", "Run1040",
264 JustWarning, "Threadpool already initialized. Ignoring...");
265 return;
266 }
267
270
271 // create the joiners
272 if(!workTaskGroup)
274
275 if(verboseLevel > 0)
276 {
277 std::stringstream ss;
278 ss.fill('=');
279 ss << std::setw(90) << "";
280 G4cout << "\n" << ss.str() << G4endl;
281
283 {
284 G4cout << "G4TaskRunManager :: Using TBB..." << G4endl;
285 }
286 else
287 {
288 G4cout << "G4TaskRunManager :: Using G4ThreadPool..." << G4endl;
289 }
290
291 G4cout << ss.str() << "\n" << G4endl;
292 }
293}
G4TaskGroup< void > RunTaskGroup
int GetVerbose() const
void SetVerbose(int val)
bool is_tbb_threadpool() const
Definition: ThreadPool.hh:130

References G4cout, G4endl, G4Exception(), PTL::TaskRunManager::GetVerbose(), PTL::TaskRunManager::Initialize(), PTL::ThreadPool::is_tbb_threadpool(), JustWarning, G4MTRunManager::nworkers, poolInitialized, PTL::TaskRunManager::SetVerbose(), threadPool, G4RunManager::verboseLevel, and workTaskGroup.

Referenced by Initialize().

◆ IsInitialized()

bool PTL::TaskRunManager::IsInitialized ( ) const
inlineinherited

Definition at line 73 of file TaskRunManager.hh.

73{ return m_is_initialized; }

References PTL::TaskRunManager::m_is_initialized.

◆ MergeRun()

void G4TaskRunManager::MergeRun ( const G4Run localRun)

Definition at line 642 of file G4TaskRunManager.cc.

643{
645 if(currentRun)
646 currentRun->Merge(localRun);
647}
virtual void Merge(const G4Run *)
Definition: G4Run.cc:67

References G4RunManager::currentRun, G4Run::Merge(), and anonymous_namespace{G4TaskRunManager.cc}::runMergerMutex.

◆ MergeScores()

void G4TaskRunManager::MergeScores ( const G4ScoringManager localScoringManager)

◆ NewActionRequest()

virtual void G4TaskRunManager::NewActionRequest ( WorkerActionRequest  )
inlineoverrideprotectedvirtual

Reimplemented from G4MTRunManager.

Definition at line 205 of file G4TaskRunManager.hh.

205{}

◆ PhysicsHasBeenModified()

void G4RunManager::PhysicsHasBeenModified ( )
inlineinherited

◆ PrepareCommandsStack()

void G4MTRunManager::PrepareCommandsStack ( )
protectedvirtualinherited

Definition at line 310 of file G4MTRunManager.cc.

311{
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:838

References anonymous_namespace{G4MTRunManager.cc}::cmdHandlingMutex, G4UImanager::GetCommandStack(), G4UImanager::GetUIpointer(), and G4MTRunManager::uiCmdsForWorkers.

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

◆ ProcessOneEvent()

void G4TaskRunManager::ProcessOneEvent ( G4int  i_event)
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 297 of file G4TaskRunManager.cc.

298{
299 // Nothing to do
300}

◆ RefillSeeds()

void G4TaskRunManager::RefillSeeds ( )
overrideprotectedvirtual

Reimplemented from G4MTRunManager.

Definition at line 480 of file G4TaskRunManager.cc.

481{
483 G4int nFill = 0;
485 {
486 case 0:
488 break;
489 case 1:
490 nFill = numberOfTasks - nSeedsFilled;
491 break;
492 case 2:
493 default:
496 1;
497 }
498 // Generates up to nSeedsMax seed pairs only.
499 if(nFill > nSeedsMax)
500 nFill = nSeedsMax;
502 helper->Refill(randDbl, nFill);
503 nSeedsFilled += nFill;
504}
void Refill(G4double *dbl, G4int nev)
Definition: G4RNGHelper.hh:96

References G4MTRunManager::eventModulo, CLHEP::HepRandomEngine::flatArray(), G4TemplateRNGHelper< T >::GetInstance(), masterRNGEngine, G4MTRunManager::nSeedsFilled, G4MTRunManager::nSeedsMax, G4MTRunManager::nSeedsPerEvent, G4MTRunManager::numberOfEventToBeProcessed, numberOfTasks, G4MTRunManager::randDbl, G4TemplateRNGHelper< T >::Refill(), and G4MTRunManager::SeedOncePerCommunication().

Referenced by SetUpAnEvent(), and SetUpNEvents().

◆ ReinitializeGeometry()

void G4RunManager::ReinitializeGeometry ( G4bool  destroyFirst = false,
G4bool  prop = true 
)
inherited

Definition at line 1130 of file G4RunManager.cc.

1131{
1132 if(destroyFirst && G4Threading::IsMasterThread())
1133 {
1134 if(verboseLevel > 0)
1135 {
1136 G4cout << "#### Assemblies, Volumes and Solids Stores are wiped out."
1137 << G4endl;
1138 }
1144
1145 // remove all logical volume pointers from regions
1146 // exception: world logical volume pointer must be kept
1148 for(auto rItr = regionStore->cbegin(); rItr != regionStore->cend(); ++rItr)
1149 {
1150 if((*rItr)->GetName() == "DefaultRegionForTheWorld")
1151 continue;
1152 // if((*rItr)->GetName()=="DefaultRegionForParallelWorld") continue;
1153 auto lvItr = (*rItr)->GetRootLogicalVolumeIterator();
1154 for(std::size_t iRLV=0; iRLV<(*rItr)->GetNumberOfRootVolumes(); ++iRLV)
1155 {
1156 (*rItr)->RemoveRootLogicalVolume(*lvItr, false);
1157 ++lvItr;
1158 }
1159 if(verboseLevel > 0)
1160 {
1161 G4cout << "#### Region <" << (*rItr)->GetName() << "> is cleared."
1162 << G4endl;
1163 }
1164 }
1165
1166 // clear transportation manager
1169 }
1170 if(prop)
1171 {
1172 G4UImanager::GetUIpointer()->ApplyCommand("/run/reinitializeGeometry");
1173 }
1174 else
1175 {
1177 geometryInitialized = false;
1178 // Notify the VisManager as well
1180 {
1182 if(pVVisManager != nullptr)
1183 pVVisManager->GeometryHasChanged();
1184 }
1185 }
1186}
static G4AssemblyStore * GetInstance()
static void Clean()
static G4GeometryManager * GetInstance()
void OpenGeometry(G4VPhysicalVolume *vol=nullptr)
static G4LogicalVolumeStore * GetInstance()
static G4PhysicalVolumeStore * GetInstance()
static G4RegionStore * GetInstance()
static void Clean()
Definition: G4SolidStore.cc:74
static G4SolidStore * GetInstance()

References G4UImanager::ApplyCommand(), G4LogicalVolumeStore::Clean(), G4PhysicalVolumeStore::Clean(), G4SolidStore::Clean(), G4AssemblyStore::Clean(), G4TransportationManager::ClearParallelWorlds(), G4RunManager::fGeometryHasBeenDestroyed, G4cout, G4endl, G4RunManagerKernel::GeometryHasBeenModified(), G4VVisManager::GeometryHasChanged(), G4RunManager::geometryInitialized, G4VVisManager::GetConcreteInstance(), G4GeometryManager::GetInstance(), G4LogicalVolumeStore::GetInstance(), G4PhysicalVolumeStore::GetInstance(), G4RegionStore::GetInstance(), G4SolidStore::GetInstance(), G4AssemblyStore::GetInstance(), G4TransportationManager::GetTransportationManager(), G4UImanager::GetUIpointer(), G4Threading::IsMasterThread(), G4RunManager::kernel, G4GeometryManager::OpenGeometry(), and G4RunManager::verboseLevel.

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

◆ ReOptimize()

void G4RunManager::ReOptimize ( G4LogicalVolume pLog)
inherited

Definition at line 1009 of file G4RunManager.cc.

1010{
1011 G4Timer localtimer;
1012 if(verboseLevel > 1)
1013 {
1014 localtimer.Start();
1015 }
1016 G4SmartVoxelHeader* header = pLog->GetVoxelHeader();
1017 delete header;
1018 header = new G4SmartVoxelHeader(pLog);
1019 pLog->SetVoxelHeader(header);
1020 if(verboseLevel > 1)
1021 {
1022 localtimer.Stop();
1023 G4SmartVoxelStat stat(pLog, header, localtimer.GetSystemElapsed(),
1024 localtimer.GetUserElapsed());
1025 G4cout << G4endl << "Voxelisation of logical volume <" << pLog->GetName()
1026 << ">" << G4endl;
1027 G4cout << " heads : " << stat.GetNumberHeads()
1028 << " - nodes : " << stat.GetNumberNodes()
1029 << " - pointers : " << stat.GetNumberPointers() << G4endl;
1030 G4cout << " Memory used : " << (stat.GetMemoryUse() + 512) / 1024
1031 << "k - total time : " << stat.GetTotalTime()
1032 << " - system time : " << stat.GetSysTime() << G4endl;
1033 }
1034}
void SetVoxelHeader(G4SmartVoxelHeader *pVoxel)
const G4String & GetName() const
G4SmartVoxelHeader * GetVoxelHeader() const
void Stop()
G4double GetSystemElapsed() const
Definition: G4Timer.cc:132
G4double GetUserElapsed() const
Definition: G4Timer.cc:143

References G4cout, G4endl, G4SmartVoxelStat::GetMemoryUse(), G4LogicalVolume::GetName(), G4SmartVoxelStat::GetNumberHeads(), G4SmartVoxelStat::GetNumberNodes(), G4SmartVoxelStat::GetNumberPointers(), G4Timer::GetSystemElapsed(), G4SmartVoxelStat::GetSysTime(), G4SmartVoxelStat::GetTotalTime(), G4Timer::GetUserElapsed(), G4LogicalVolume::GetVoxelHeader(), G4LogicalVolume::SetVoxelHeader(), G4Timer::Start(), G4Timer::Stop(), and G4RunManager::verboseLevel.

Referenced by G4RunManager::ReOptimizeMotherOf().

◆ ReOptimizeMotherOf()

void G4RunManager::ReOptimizeMotherOf ( G4VPhysicalVolume pPhys)
inherited

Definition at line 1001 of file G4RunManager.cc.

1002{
1003 G4LogicalVolume* pMotherL = pPhys->GetMotherLogical();
1004 if(pMotherL != nullptr)
1005 ReOptimize(pMotherL);
1006}
void ReOptimize(G4LogicalVolume *)
G4LogicalVolume * GetMotherLogical() const

References G4VPhysicalVolume::GetMotherLogical(), and G4RunManager::ReOptimize().

◆ RequestWorkersProcessCommandsStack()

void G4TaskRunManager::RequestWorkersProcessCommandsStack ( )
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 772 of file G4TaskRunManager.cc.

773{
775
776 auto process_commands_stack = []() {
778 if(mrm)
779 {
780 auto cmds = mrm->GetCommandStack();
781 for(const auto& itr : cmds)
782 G4UImanager::GetUIpointer()->ApplyCommand(itr); // TLS instance
784 }
785 };
786
787 if(threadPool)
788 threadPool->execute_on_all_threads(process_commands_stack);
789}
virtual void ThisWorkerProcessCommandsStackDone()

References G4UImanager::ApplyCommand(), PTL::ThreadPool::execute_on_all_threads(), G4MTRunManager::GetCommandStack(), G4MTRunManager::GetMasterRunManager(), G4UImanager::GetUIpointer(), G4MTRunManager::PrepareCommandsStack(), G4MTRunManager::ThisWorkerProcessCommandsStackDone(), and threadPool.

Referenced by TerminateWorkers().

◆ RestoreRandomNumberStatus()

void G4RunManager::RestoreRandomNumberStatus ( const G4String fileN)
virtualinherited

Definition at line 870 of file G4RunManager.cc.

871{
872 G4String fileNameWithDirectory;
873 if(fileN.find("/") == std::string::npos)
874 {
875 fileNameWithDirectory = randomNumberStatusDir + fileN;
876 }
877 else
878 {
879 fileNameWithDirectory = fileN;
880 }
881
882 G4Random::restoreEngineStatus(fileNameWithDirectory);
883 if(verboseLevel > 0)
884 G4cout << "RandomNumberEngineStatus restored from file: "
885 << fileNameWithDirectory << G4endl;
886 G4Random::showEngineStatus();
887}

References G4cout, G4endl, G4RunManager::randomNumberStatusDir, and G4RunManager::verboseLevel.

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

◆ RestoreRndmEachEvent()

virtual void G4RunManager::RestoreRndmEachEvent ( G4bool  )
inlinevirtualinherited

Reimplemented in G4WorkerRunManager, and G4WorkerTaskRunManager.

Definition at line 346 of file G4RunManager.hh.

346{ /* No effect in SEQ */ }

Referenced by G4RunMessenger::SetNewValue().

◆ rndmSaveThisEvent()

void G4MTRunManager::rndmSaveThisEvent ( )
protectedvirtualinherited

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}

References FatalException, and G4Exception().

◆ rndmSaveThisRun()

void G4MTRunManager::rndmSaveThisRun ( )
protectedvirtualinherited

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}

References G4UImanager::ApplyCommand(), G4RunManager::currentRun, G4cerr, G4cout, G4endl, G4Run::GetRunID(), G4UImanager::GetUIpointer(), G4RunManager::randomNumberStatusDir, G4RunManager::storeRandomNumberStatus, and G4RunManager::verboseLevel.

◆ RunInitialization()

void G4RunManager::RunInitialization ( )
virtualinherited

Reimplemented in G4WorkerRunManager, and G4WorkerTaskRunManager.

Definition at line 332 of file G4RunManager.cc.

333{
335 return;
336
337 runAborted = false;
339
341 delete currentRun;
342 currentRun = nullptr;
343
344 if(fakeRun)
345 return;
346
349
350 if(userRunAction != nullptr)
352 if(currentRun == nullptr)
353 currentRun = new G4Run();
354
357
360 if(fSDM != nullptr)
361 {
363 }
364
365 if(G4VScoreNtupleWriter::Instance() != nullptr)
366 {
367 auto hce = fSDM->PrepareNewEvent();
369 delete hce;
370 }
371
372 std::ostringstream oss;
373 G4Random::saveFullState(oss);
376
377 for(G4int i_prev = 0; i_prev < n_perviousEventsToBeStored; ++i_prev)
378 {
379 previousEvents->push_back(nullptr);
380 }
381
382 if(printModulo >= 0 || verboseLevel > 0)
383 {
384 G4cout << "### Run " << currentRun->GetRunID() << " starts." << G4endl;
385 }
386 if(userRunAction != nullptr)
388
389#if defined(GEANT4_USE_TIMEMORY)
391#endif
392
394 {
396 }
397
399 {
400 G4String fileN = "currentRun";
402 {
403 std::ostringstream os;
404 os << "run" << currentRun->GetRunID();
405 fileN = os.str();
406 }
407 StoreRNGStatus(fileN);
408 }
409}
static G4ParallelWorldProcessStore * GetInstance()
G4bool RunInitialization(G4bool fakeRun=false)
G4bool isScoreNtupleWriter
void CleanUpPreviousEvents()
G4int runIDCounter
std::unique_ptr< ProfilerConfig > masterRunProfiler
G4DCtable * DCtable
G4ProfilerConfig< G4ProfileType::Run > ProfilerConfig
Definition: G4Run.hh:49
void SetHCtable(G4HCtable *HCtbl)
Definition: G4Run.hh:107
void SetNumberOfEventToBeProcessed(G4int n_ev)
Definition: G4Run.hh:103
void SetRunID(G4int id)
Definition: G4Run.hh:102
void SetDCtable(G4DCtable *DCtbl)
Definition: G4Run.hh:108
void SetRandomNumberStatus(G4String &st)
Definition: G4Run.hh:109
G4HCofThisEvent * PrepareNewEvent()
Definition: G4SDManager.cc:113
static G4SDManager * GetSDMpointerIfExist()
Definition: G4SDManager.cc:47
G4HCtable * GetHCtable() const
Definition: G4SDManager.hh:101
virtual void BeginOfRunAction(const G4Run *aRun)
virtual G4Run * GenerateRun()
virtual G4bool Book(G4HCofThisEvent *hce)=0
static G4VScoreNtupleWriter * Instance()
virtual void OpenFile()=0

References G4UserRunAction::BeginOfRunAction(), G4VScoreNtupleWriter::Book(), G4RunManager::CleanUpPreviousEvents(), G4RunManager::currentRun, G4RunManager::DCtable, G4RunManager::fakeRun, G4RunManager::fGeometryHasBeenDestroyed, G4cout, G4endl, G4UserRunAction::GenerateRun(), G4SDManager::GetHCtable(), G4ParallelWorldProcessStore::GetInstance(), G4Run::GetRunID(), G4SDManager::GetSDMpointerIfExist(), G4VScoreNtupleWriter::Instance(), G4RunManager::isScoreNtupleWriter, G4RunManager::kernel, G4RunManager::masterRunProfiler, G4RunManager::n_perviousEventsToBeStored, G4RunManager::numberOfEventProcessed, G4RunManager::numberOfEventToBeProcessed, G4VScoreNtupleWriter::OpenFile(), G4SDManager::PrepareNewEvent(), G4RunManager::previousEvents, G4RunManager::printModulo, G4RunManager::randomNumberStatusForThisRun, G4RunManager::rngStatusEventsFlag, G4RunManager::runAborted, G4RunManager::runIDCounter, G4RunManagerKernel::RunInitialization(), G4Run::SetDCtable(), G4Run::SetHCtable(), G4Run::SetNumberOfEventToBeProcessed(), G4Run::SetRandomNumberStatus(), G4Run::SetRunID(), G4RunManager::storeRandomNumberStatus, G4RunManager::StoreRNGStatus(), G4ParallelWorldProcessStore::UpdateWorlds(), G4RunManager::userRunAction, and G4RunManager::verboseLevel.

Referenced by G4RunManager::BeamOn().

◆ RunTermination()

void G4TaskRunManager::RunTermination ( )
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 598 of file G4TaskRunManager.cc.

599{
600 // Wait for all worker threads to have finished the run
601 // i.e. wait for them to return from RunTermination()
602 // This guarantee that userrunaction for workers has been called
603
604 // Wait now for all threads to finish event-loop
606 // Now call base-class methof
609}
virtual void WaitForEndEventLoopWorkers() override

References G4RunManager::RunTermination(), G4RunManager::TerminateEventLoop(), and WaitForEndEventLoopWorkers().

◆ SeedOncePerCommunication()

G4int G4MTRunManager::SeedOncePerCommunication ( )
staticinherited

◆ SetDCtable()

void G4RunManager::SetDCtable ( G4DCtable DCtbl)
inlineinherited

Definition at line 573 of file G4RunManager.hh.

573{ DCtable = DCtbl; }

References G4RunManager::DCtable.

Referenced by G4DigiManager::AddNewModule().

◆ SetEventModulo()

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

Definition at line 187 of file G4MTRunManager.hh.

187{ eventModuloDef = i; }

References G4MTRunManager::eventModuloDef.

◆ SetGeometryToBeOptimized()

void G4RunManager::SetGeometryToBeOptimized ( G4bool  vl)
inlineinherited

◆ SetGrainsize()

void G4TaskRunManager::SetGrainsize ( G4int  n)
inline

Definition at line 92 of file G4TaskRunManager.hh.

References eventGrainsize, and CLHEP::detail::n.

◆ SetInitializeSeedsCallback()

void G4TaskRunManager::SetInitializeSeedsCallback ( InitializeSeedsCallback  f)
inline

Definition at line 209 of file G4TaskRunManager.hh.

210 {
212 }

References initSeedsCallback.

◆ SetNumberOfAdditionalWaitingStacks()

void G4RunManager::SetNumberOfAdditionalWaitingStacks ( G4int  iAdd)
inlineinherited

Definition at line 422 of file G4RunManager.hh.

427 {
429 }
void SetNumberOfAdditionalWaitingStacks(G4int iAdd)
G4EventManager * eventManager

References G4RunManager::eventManager, and G4EventManager::SetNumberOfAdditionalWaitingStacks().

◆ SetNumberOfEventsToBeProcessed()

void G4RunManager::SetNumberOfEventsToBeProcessed ( G4int  val)
inlineinherited

Definition at line 563 of file G4RunManager.hh.

564 {
566 }

References G4RunManager::numberOfEventToBeProcessed.

◆ SetNumberOfEventsToBeStored()

void G4RunManager::SetNumberOfEventsToBeStored ( G4int  val)
inlineinherited

Definition at line 524 of file G4RunManager.hh.

529 {
531 }

References G4RunManager::n_perviousEventsToBeStored.

◆ SetNumberOfThreads()

void G4TaskRunManager::SetNumberOfThreads ( G4int  n)
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 208 of file G4TaskRunManager.cc.

209{
210 if(forcedNwokers > 0)
211 {
212 if(verboseLevel > 0)
213 {
215 msg << "\n### Number of threads is forced to " << forcedNwokers
216 << " by G4FORCENUMBEROFTHREADS environment variable. G4TaskRunManager::"
217 << __FUNCTION__ << "(" << n << ") ignored ###";
218 G4Exception("G4TaskRunManager::SetNumberOfThreads(G4int)", "Run0132",
219 JustWarning, msg);
220 }
222 }
223 else
224 {
225 nworkers = n;
227 {
228 if(verboseLevel > 0)
229 {
230 std::stringstream ss;
231 ss << "\n### Thread-pool already initialized. Resizing to " << nworkers
232 << "threads ###";
233 G4cout << ss.str() << "\n" << G4endl;
234 }
236 }
237 }
238}
ThreadPool * GetThreadPool() const
void resize(size_type _n)
Definition: ThreadPool.hh:342

References G4MTRunManager::forcedNwokers, G4cout, G4endl, G4Exception(), PTL::TaskRunManager::GetThreadPool(), JustWarning, CLHEP::detail::n, G4MTRunManager::nworkers, poolInitialized, PTL::ThreadPool::resize(), and G4RunManager::verboseLevel.

◆ SetPinAffinity()

void G4MTRunManager::SetPinAffinity ( G4int  n = 1)
inherited

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}

References FatalException, G4Exception(), CLHEP::detail::n, and G4MTRunManager::pinAffinity.

◆ SetPrimaryTransformer()

void G4RunManager::SetPrimaryTransformer ( G4PrimaryTransformer pt)
inlineinherited

Definition at line 436 of file G4RunManager.hh.

437 {
439 }
void SetPrimaryTransformer(G4PrimaryTransformer *pt)

References G4RunManager::kernel, and G4RunManagerKernel::SetPrimaryTransformer().

◆ SetPrintProgress()

void G4RunManager::SetPrintProgress ( G4int  i)
inlineinherited

Definition at line 522 of file G4RunManager.hh.

522{ printModulo = i; }

References G4RunManager::printModulo.

Referenced by G4RunMessenger::SetNewValue().

◆ SetRandomNumberStore()

void G4RunManager::SetRandomNumberStore ( G4bool  flag)
inlineinherited

Definition at line 456 of file G4RunManager.hh.

457 {
459 }

References G4RunManager::storeRandomNumberStatus.

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

◆ SetRandomNumberStoreDir()

void G4RunManager::SetRandomNumberStoreDir ( const G4String dir)
inlineinherited

Definition at line 464 of file G4RunManager.hh.

465 {
466 G4String dirStr = dir;
467 if(dirStr.back() != '/')
468 dirStr += "/";
469 #ifndef WIN32
470 G4String shellCmd = "mkdir -p ";
471 #else
472 std::replace(dirStr.begin(), dirStr.end(), '/', '\\');
473 G4String shellCmd = "if not exist " + dirStr + " mkdir ";
474 #endif
475 shellCmd += dirStr;
476 randomNumberStatusDir = dirStr;
477 G4int sysret = system(shellCmd);
478 if(sysret != 0)
479 {
480 G4String errmsg = "\"" + shellCmd
481 + "\" returns non-zero value. Directory creation failed.";
482 G4Exception("GrRunManager::SetRandomNumberStoreDir", "Run0071",
483 JustWarning, errmsg);
484 G4cerr << " return value = " << sysret << G4endl;
485 }
486 }

References G4cerr, G4endl, G4Exception(), JustWarning, and G4RunManager::randomNumberStatusDir.

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

◆ SetRandomNumberStorePerEvent()

void G4RunManager::SetRandomNumberStorePerEvent ( G4bool  flag)
inlineinherited

Definition at line 506 of file G4RunManager.hh.

507 {
508 rngStatusEventsFlag = flag;
509 }

References G4RunManager::rngStatusEventsFlag.

Referenced by G4RunMessenger::SetNewValue().

◆ SetRunIDCounter()

void G4RunManager::SetRunIDCounter ( G4int  i)
inlineinherited

Definition at line 558 of file G4RunManager.hh.

558{ runIDCounter = i; }

References G4RunManager::runIDCounter.

Referenced by export_G4RunManager(), G4MTRunManager::Initialize(), and Initialize().

◆ SetSeedOncePerCommunication()

void G4MTRunManager::SetSeedOncePerCommunication ( G4int  val)
staticinherited

◆ SetUpAnEvent()

G4bool G4TaskRunManager::SetUpAnEvent ( G4Event evt,
G4long s1,
G4long s2,
G4long s3,
G4bool  reseedRequired = true 
)
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 651 of file G4TaskRunManager.cc.

653{
656 {
658 if(reseedRequired)
659 {
661 G4int idx_rndm = nSeedsPerEvent * nSeedsUsed;
662 s1 = helper->GetSeed(idx_rndm);
663 s2 = helper->GetSeed(idx_rndm + 1);
664 if(nSeedsPerEvent == 3)
665 s3 = helper->GetSeed(idx_rndm + 2);
666 ++nSeedsUsed;
668 RefillSeeds();
669 }
671 return true;
672 }
673 return false;
674}
void SetEventID(G4int i)
Definition: G4Event.hh:80
virtual void RefillSeeds() override
virtual const T GetSeed(const G4int &sdId)
Definition: G4RNGHelper.hh:64

References G4TemplateRNGHelper< T >::GetInstance(), G4TemplateRNGHelper< T >::GetSeed(), G4MTRunManager::nSeedsFilled, G4MTRunManager::nSeedsPerEvent, G4MTRunManager::nSeedsUsed, G4RunManager::numberOfEventProcessed, G4MTRunManager::numberOfEventToBeProcessed, RefillSeeds(), G4Event::SetEventID(), and anonymous_namespace{G4TaskRunManager.cc}::setUpEventMutex.

◆ SetUpNEvents()

G4int G4TaskRunManager::SetUpNEvents ( G4Event evt,
G4SeedsQueue seedsQueue,
G4bool  reseedRequired = true 
)
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 678 of file G4TaskRunManager.cc.

680{
683 {
685 G4int nmod = eventModulo;
687 {
690 }
692
693 if(reseedRequired)
694 {
696 G4int nevRnd = nmod;
698 nevRnd = 1;
699 for(G4int i = 0; i < nevRnd; ++i)
700 {
701 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed));
702 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed + 1));
703 if(nSeedsPerEvent == 3)
704 seedsQueue->push(helper->GetSeed(nSeedsPerEvent * nSeedsUsed + 2));
705 nSeedsUsed++;
707 RefillSeeds();
708 }
709 }
711 return nevt;
712 }
713 return 0;
714}

References G4MTRunManager::eventModulo, G4TemplateRNGHelper< T >::GetInstance(), G4TemplateRNGHelper< T >::GetSeed(), G4MTRunManager::nSeedsFilled, G4MTRunManager::nSeedsPerEvent, G4MTRunManager::nSeedsUsed, G4RunManager::numberOfEventProcessed, numberOfEventsPerTask, G4MTRunManager::numberOfEventToBeProcessed, RefillSeeds(), G4RunManager::runAborted, G4MTRunManager::SeedOncePerCommunication(), G4Event::SetEventID(), and anonymous_namespace{G4TaskRunManager.cc}::setUpEventMutex.

◆ SetUserAction() [1/6]

void G4MTRunManager::SetUserAction ( G4UserEventAction userAction)
virtualinherited

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}

References FatalException, and G4Exception().

◆ SetUserAction() [2/6]

void G4MTRunManager::SetUserAction ( G4UserRunAction userAction)
virtualinherited

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)

References G4UserRunAction::SetMaster(), and G4RunManager::SetUserAction().

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

◆ SetUserAction() [3/6]

void G4MTRunManager::SetUserAction ( G4UserStackingAction userAction)
virtualinherited

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}

References FatalException, and G4Exception().

◆ SetUserAction() [4/6]

void G4MTRunManager::SetUserAction ( G4UserSteppingAction userAction)
virtualinherited

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}

References FatalException, and G4Exception().

◆ SetUserAction() [5/6]

void G4MTRunManager::SetUserAction ( G4UserTrackingAction userAction)
virtualinherited

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}

References FatalException, and G4Exception().

◆ SetUserAction() [6/6]

void G4MTRunManager::SetUserAction ( G4VUserPrimaryGeneratorAction userAction)
virtualinherited

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}

References FatalException, and G4Exception().

◆ SetUserInitialization() [1/5]

void G4MTRunManager::SetUserInitialization ( G4UserWorkerInitialization userInit)
virtualinherited

Reimplemented from G4RunManager.

Definition at line 537 of file G4MTRunManager.cc.

538{
539 userWorkerInitialization = userInit;
540}

References G4RunManager::userWorkerInitialization.

◆ SetUserInitialization() [2/5]

void G4MTRunManager::SetUserInitialization ( G4UserWorkerThreadInitialization userInit)
virtualinherited

Reimplemented from G4RunManager.

Definition at line 543 of file G4MTRunManager.cc.

545{
547}

References G4RunManager::userWorkerThreadInitialization.

◆ SetUserInitialization() [3/5]

void G4MTRunManager::SetUserInitialization ( G4VUserActionInitialization userInit)
virtualinherited

◆ SetUserInitialization() [4/5]

void G4MTRunManager::SetUserInitialization ( G4VUserDetectorConstruction userDC)
virtualinherited

Reimplemented from G4RunManager.

Definition at line 565 of file G4MTRunManager.cc.

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

References G4RunManager::SetUserInitialization().

◆ SetUserInitialization() [5/5]

void G4MTRunManager::SetUserInitialization ( G4VUserPhysicsList userPL)
virtualinherited

Reimplemented from G4RunManager.

Definition at line 558 of file G4MTRunManager.cc.

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

References G4RunManager::SetUserInitialization().

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

◆ SetVerbose()

void PTL::TaskRunManager::SetVerbose ( int  val)
inlineinherited

Definition at line 75 of file TaskRunManager.hh.

75{ m_verbose = val; }

References PTL::TaskRunManager::m_verbose.

Referenced by InitializeThreadPool().

◆ SetVerboseLevel()

void G4RunManager::SetVerboseLevel ( G4int  vl)
inlineinherited

◆ StackPreviousEvent()

void G4RunManager::StackPreviousEvent ( G4Event anEvent)
protectedinherited

Definition at line 646 of file G4RunManager.cc.

647{
648 if(anEvent->ToBeKept())
649 currentRun->StoreEvent(anEvent);
650
652 {
653 if(anEvent->GetNumberOfGrips() == 0)
654 {
655 if(!(anEvent->ToBeKept()))
656 delete anEvent;
657 }
658 else
659 {
660 previousEvents->push_back(anEvent);
661 }
662 }
664}
void CleanUpUnnecessaryEvents(G4int keepNEvents)
void StoreEvent(G4Event *evt)
Definition: G4Run.cc:78

References G4RunManager::CleanUpUnnecessaryEvents(), G4RunManager::currentRun, G4Event::GetNumberOfGrips(), G4RunManager::n_perviousEventsToBeStored, G4RunManager::previousEvents, G4Run::StoreEvent(), and G4Event::ToBeKept().

Referenced by G4RunManager::TerminateOneEvent().

◆ StoreRandomNumberStatusToG4Event()

void G4RunManager::StoreRandomNumberStatusToG4Event ( G4int  vl)
inlineinherited

◆ StoreRNGStatus()

void G4TaskRunManager::StoreRNGStatus ( const G4String filenamePrefix)
overrideprotectedvirtual

Reimplemented from G4MTRunManager.

Definition at line 199 of file G4TaskRunManager.cc.

200{
201 std::ostringstream os;
202 os << randomNumberStatusDir << "G4Master_" << fn << ".rndm";
203 G4Random::saveEngineStatus(os.str().c_str());
204}

References G4RunManager::randomNumberStatusDir.

◆ Terminate()

void TaskRunManager::Terminate ( )
virtualinherited

◆ TerminateEventLoop()

void G4RunManager::TerminateEventLoop ( )
virtualinherited

Reimplemented in G4WorkerRunManager, and G4WorkerTaskRunManager.

Definition at line 477 of file G4RunManager.cc.

478{
479 if(verboseLevel > 0 && !fakeRun)
480 {
481 timer->Stop();
482 G4cout << " Run terminated." << G4endl;
483 G4cout << "Run Summary" << G4endl;
484 if(runAborted)
485 {
486 G4cout << " Run Aborted after " << numberOfEventProcessed
487 << " events processed." << G4endl;
488 }
489 else
490 {
491 G4cout << " Number of events processed : " << numberOfEventProcessed
492 << G4endl;
493 }
494 G4cout << " " << *timer << G4endl;
495 }
497}

References G4RunManager::fakeRun, G4RunManager::fGeometryHasBeenDestroyed, G4cout, G4endl, G4RunManager::numberOfEventProcessed, G4RunManager::runAborted, G4Timer::Stop(), G4RunManager::timer, and G4RunManager::verboseLevel.

Referenced by G4RunManager::DoEventLoop(), G4MTRunManager::RunTermination(), and RunTermination().

◆ TerminateOneEvent()

void G4TaskRunManager::TerminateOneEvent ( )
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 304 of file G4TaskRunManager.cc.

305{
306 // Nothing to do
307}

◆ TerminateWorkers()

void G4TaskRunManager::TerminateWorkers ( )
overrideprotectedvirtual

Reimplemented from G4MTRunManager.

Definition at line 718 of file G4TaskRunManager.cc.

719{
720 // Force workers to execute (if any) all UI commands left in the stack
722
723 if(workTaskGroup)
724 {
726 if(!fakeRun)
729 }
730}
virtual void RequestWorkersProcessCommandsStack() override
Up join(Up accum={})

References PTL::ThreadPool::execute_on_all_threads(), G4RunManager::fakeRun, PTL::TaskGroup< Tp, Arg, MaxDepth >::join(), RequestWorkersProcessCommandsStack(), G4TaskRunManagerKernel::TerminateWorker(), threadPool, and workTaskGroup.

Referenced by ~G4TaskRunManager().

◆ ThisWorkerEndEventLoop()

virtual void G4TaskRunManager::ThisWorkerEndEventLoop ( )
inlineoverridevirtual

Reimplemented from G4MTRunManager.

Definition at line 198 of file G4TaskRunManager.hh.

198{}

◆ ThisWorkerProcessCommandsStackDone()

void G4TaskRunManager::ThisWorkerProcessCommandsStackDone ( )
overridevirtual

Reimplemented from G4MTRunManager.

Definition at line 793 of file G4TaskRunManager.cc.

793{}

◆ ThisWorkerReady()

virtual void G4TaskRunManager::ThisWorkerReady ( )
inlineoverridevirtual

Reimplemented from G4MTRunManager.

Definition at line 197 of file G4TaskRunManager.hh.

197{}

◆ ThisWorkerWaitForNextAction()

virtual WorkerActionRequest G4TaskRunManager::ThisWorkerWaitForNextAction ( )
inlineoverridevirtual

Reimplemented from G4MTRunManager.

Definition at line 199 of file G4TaskRunManager.hh.

References G4MTRunManager::UNDEFINED.

◆ ThreadPoolIsInitialized()

G4bool G4TaskRunManager::ThreadPoolIsInitialized ( ) const
inline

Definition at line 118 of file G4TaskRunManager.hh.

118{ return poolInitialized; }

References poolInitialized.

◆ UpdateScoring()

void G4RunManager::UpdateScoring ( )
protectedinherited

Definition at line 973 of file G4RunManager.cc.

974{
976 {
979 }
980
982 if(ScM == nullptr)
983 return;
984 G4int nPar = ScM->GetNumberOfMesh();
985 if(nPar < 1)
986 return;
987
989 if(HCE == nullptr)
990 return;
991 G4int nColl = HCE->GetCapacity();
992 for(G4int i = 0; i < nColl; ++i)
993 {
994 G4VHitsCollection* HC = HCE->GetHC(i);
995 if(HC != nullptr)
996 ScM->Accumulate(HC);
997 }
998}
G4HCofThisEvent * GetHCofThisEvent() const
Definition: G4Event.hh:156
G4VHitsCollection * GetHC(G4int i)
void Accumulate(G4VHitsCollection *map)
size_t GetNumberOfMesh() const
virtual void Fill(G4HCofThisEvent *hce, G4int eventNumber)=0

References G4ScoringManager::Accumulate(), G4RunManager::currentEvent, G4VScoreNtupleWriter::Fill(), G4HCofThisEvent::GetCapacity(), G4Event::GetEventID(), G4HCofThisEvent::GetHC(), G4Event::GetHCofThisEvent(), G4ScoringManager::GetNumberOfMesh(), G4ScoringManager::GetScoringManagerIfExist(), G4VScoreNtupleWriter::Instance(), and G4RunManager::isScoreNtupleWriter.

Referenced by G4RunManager::ProcessOneEvent(), G4WorkerRunManager::ProcessOneEvent(), and G4WorkerTaskRunManager::ProcessOneEvent().

◆ WaitForEndEventLoopWorkers()

void G4TaskRunManager::WaitForEndEventLoopWorkers ( )
overridevirtual

◆ WaitForReadyWorkers()

virtual void G4TaskRunManager::WaitForReadyWorkers ( )
inlineoverridevirtual

Reimplemented from G4MTRunManager.

Definition at line 195 of file G4TaskRunManager.hh.

195{}

Friends And Related Function Documentation

◆ G4RunManagerFactory

friend class G4RunManagerFactory
friend

Definition at line 70 of file G4TaskRunManager.hh.

Field Documentation

◆ beginOfEventLoopBarrier

G4MTBarrier G4MTRunManager::beginOfEventLoopBarrier
protectedinherited

◆ currentEvent

G4Event* G4RunManager::currentEvent = nullptr
protectedinherited

◆ currentRun

G4Run* G4RunManager::currentRun = nullptr
protectedinherited

◆ currentWorld

G4VPhysicalVolume* G4RunManager::currentWorld = nullptr
protectedinherited

Definition at line 643 of file G4RunManager.hh.

◆ DCtable

G4DCtable* G4RunManager::DCtable = nullptr
protectedinherited

◆ endOfEventLoopBarrier

G4MTBarrier G4MTRunManager::endOfEventLoopBarrier
protectedinherited

◆ eventGrainsize

G4int G4TaskRunManager::eventGrainsize = 0
private

Definition at line 221 of file G4TaskRunManager.hh.

Referenced by ComputeNumberOfTasks(), GetGrainsize(), and SetGrainsize().

◆ eventManager

G4EventManager* G4RunManager::eventManager = nullptr
protectedinherited

◆ eventModulo

G4int G4MTRunManager::eventModulo = 1
protectedinherited

◆ eventModuloDef

G4int G4MTRunManager::eventModuloDef = 0
protectedinherited

◆ fakeRun

G4bool G4RunManager::fakeRun = false
protectedinherited

◆ fGeometryHasBeenDestroyed

G4bool G4RunManager::fGeometryHasBeenDestroyed = false
staticprotectedinherited

◆ fMasterRM

G4MTRunManager * G4MTRunManager::fMasterRM = nullptr
staticprotectedinherited

◆ forcedNwokers

G4int G4MTRunManager::forcedNwokers = -1
protectedinherited

◆ fRunManager

G4ThreadLocal G4RunManager * G4RunManager::fRunManager = nullptr
staticprivateinherited

◆ geometryDirectlyUpdated

G4bool G4RunManager::geometryDirectlyUpdated = false
protectedinherited

◆ geometryInitialized

G4bool G4RunManager::geometryInitialized = false
protectedinherited

◆ geometryToBeOptimized

G4bool G4RunManager::geometryToBeOptimized = true
protectedinherited

◆ initializedAtLeastOnce

G4bool G4RunManager::initializedAtLeastOnce = false
protectedinherited

◆ initSeedsCallback

InitializeSeedsCallback G4TaskRunManager::initSeedsCallback
protected
Initial value:
= [](G4int, G4int&, G4int&) {
return false;
}

Definition at line 238 of file G4TaskRunManager.hh.

Referenced by InitializeEventLoop(), and SetInitializeSeedsCallback().

◆ isScoreNtupleWriter

G4bool G4RunManager::isScoreNtupleWriter = false
protectedinherited

◆ kernel

G4RunManagerKernel* G4RunManager::kernel = nullptr
protectedinherited

◆ m_is_initialized

bool PTL::TaskRunManager::m_is_initialized = false
protectedinherited

◆ m_task_manager

TaskManager* PTL::TaskRunManager::m_task_manager = nullptr
protectedinherited

◆ m_task_queue

VUserTaskQueue* PTL::TaskRunManager::m_task_queue = nullptr
protectedinherited

Definition at line 90 of file TaskRunManager.hh.

Referenced by PTL::TaskRunManager::Initialize().

◆ m_thread_pool

ThreadPool* PTL::TaskRunManager::m_thread_pool = nullptr
protectedinherited

◆ m_verbose

int PTL::TaskRunManager::m_verbose = 0
protectedinherited

◆ m_workers

uint64_t PTL::TaskRunManager::m_workers = 0
protectedinherited

◆ masterRNGEngine

CLHEP::HepRandomEngine* G4TaskRunManager::masterRNGEngine = nullptr
private

Definition at line 224 of file G4TaskRunManager.hh.

Referenced by G4TaskRunManager(), InitializeEventLoop(), and RefillSeeds().

◆ masterRunProfiler

std::unique_ptr<ProfilerConfig> G4RunManager::masterRunProfiler
privateinherited

◆ masterScM

G4ScoringManager * G4MTRunManager::masterScM = nullptr
staticprotectedinherited

◆ masterThreadId

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

◆ masterWorlds

G4MTRunManager::masterWorlds_t G4MTRunManager::masterWorlds = G4MTRunManager::masterWorlds_t()
staticprotectedinherited

◆ msgText

G4String G4RunManager::msgText = " "
protectedinherited

◆ MTkernel

G4TaskRunManagerKernel* G4TaskRunManager::MTkernel = nullptr
private

◆ n_perviousEventsToBeStored

G4int G4RunManager::n_perviousEventsToBeStored = 0
protectedinherited

◆ n_select_msg

G4int G4RunManager::n_select_msg = -1
protectedinherited

◆ nextActionRequest

WorkerActionRequest G4MTRunManager::nextActionRequest = WorkerActionRequest::UNDEFINED
protectedinherited

◆ nextActionRequestBarrier

G4MTBarrier G4MTRunManager::nextActionRequestBarrier
protectedinherited

◆ nParallelWorlds

G4int G4RunManager::nParallelWorlds = 0
protectedinherited

◆ nSeedsFilled

G4int G4MTRunManager::nSeedsFilled = 0
protectedinherited

◆ nSeedsMax

G4int G4MTRunManager::nSeedsMax = 10000
protectedinherited

◆ nSeedsPerEvent

G4int G4MTRunManager::nSeedsPerEvent = 2
protectedinherited

◆ nSeedsUsed

G4int G4MTRunManager::nSeedsUsed = 0
protectedinherited

◆ numberOfEventProcessed

G4int G4RunManager::numberOfEventProcessed = 0
protectedinherited

◆ numberOfEventsPerTask

G4int G4TaskRunManager::numberOfEventsPerTask = -1
private

◆ numberOfEventToBeProcessed

G4int G4MTRunManager::numberOfEventToBeProcessed = 0
protectedinherited

◆ numberOfTasks

G4int G4TaskRunManager::numberOfTasks = -1
private

◆ nworkers

G4int G4MTRunManager::nworkers = 2
protectedinherited

◆ physicsInitialized

G4bool G4RunManager::physicsInitialized = false
protectedinherited

◆ physicsList

G4VUserPhysicsList* G4RunManager::physicsList = nullptr
protectedinherited

◆ pinAffinity

G4int G4MTRunManager::pinAffinity = 0
privateinherited

◆ poolInitialized

G4bool& G4TaskRunManager::poolInitialized = PTL::TaskRunManager::m_is_initialized
protected

◆ previousEvents

std::list<G4Event*>* G4RunManager::previousEvents = nullptr
protectedinherited

◆ printModulo

G4int G4RunManager::printModulo = -1
protectedinherited

◆ processUIBarrier

G4MTBarrier G4MTRunManager::processUIBarrier
protectedinherited

◆ randDbl

G4double* G4MTRunManager::randDbl = nullptr
protectedinherited

◆ randomNumberStatusDir

G4String G4RunManager::randomNumberStatusDir = "./"
protectedinherited

◆ randomNumberStatusForThisEvent

G4String G4RunManager::randomNumberStatusForThisEvent = ""
protectedinherited

◆ randomNumberStatusForThisRun

G4String G4RunManager::randomNumberStatusForThisRun = ""
protectedinherited

◆ rngStatusEventsFlag

G4bool G4RunManager::rngStatusEventsFlag = false
protectedinherited

◆ runAborted

G4bool G4RunManager::runAborted = false
protectedinherited

◆ runIDCounter

G4int G4RunManager::runIDCounter = 0
protectedinherited

◆ runManagerType

RMType G4RunManager::runManagerType
protectedinherited

◆ runMessenger

G4RunMessenger* G4RunManager::runMessenger = nullptr
privateinherited

Definition at line 666 of file G4RunManager.hh.

Referenced by G4RunManager::G4RunManager(), and G4RunManager::~G4RunManager().

◆ seedOncePerCommunication

G4int G4MTRunManager::seedOncePerCommunication = 0
staticprotectedinherited

◆ selectMacro

G4String G4RunManager::selectMacro = ""
protectedinherited

◆ storeRandomNumberStatus

G4bool G4RunManager::storeRandomNumberStatus = false
protectedinherited

◆ storeRandomNumberStatusToG4Event

G4int G4RunManager::storeRandomNumberStatusToG4Event = 0
protectedinherited

◆ taskManager

G4TaskManager*& G4TaskRunManager::taskManager = PTL::TaskRunManager::m_task_manager
protected

Definition at line 236 of file G4TaskRunManager.hh.

◆ taskQueue

G4VUserTaskQueue*& G4TaskRunManager::taskQueue = PTL::TaskRunManager::m_task_queue
protected

Definition at line 235 of file G4TaskRunManager.hh.

Referenced by G4TaskRunManager().

◆ threadPool

G4ThreadPool*& G4TaskRunManager::threadPool = PTL::TaskRunManager::m_thread_pool
protected

◆ threads

G4ThreadsList G4MTRunManager::threads
privateinherited

◆ timer

G4Timer* G4RunManager::timer = nullptr
protectedinherited

◆ uiCmdsForWorkers

std::vector<G4String> G4MTRunManager::uiCmdsForWorkers
privateinherited

◆ userActionInitialization

G4VUserActionInitialization* G4RunManager::userActionInitialization = nullptr
protectedinherited

◆ userDetector

G4VUserDetectorConstruction* G4RunManager::userDetector = nullptr
protectedinherited

◆ userEventAction

G4UserEventAction* G4RunManager::userEventAction = nullptr
protectedinherited

◆ userPrimaryGeneratorAction

G4VUserPrimaryGeneratorAction* G4RunManager::userPrimaryGeneratorAction = nullptr
protectedinherited

◆ userRunAction

G4UserRunAction* G4RunManager::userRunAction = nullptr
protectedinherited

◆ userStackingAction

G4UserStackingAction* G4RunManager::userStackingAction = nullptr
protectedinherited

◆ userSteppingAction

G4UserSteppingAction* G4RunManager::userSteppingAction = nullptr
protectedinherited

◆ userTrackingAction

G4UserTrackingAction* G4RunManager::userTrackingAction = nullptr
protectedinherited

◆ userWorkerInitialization

G4UserWorkerInitialization* G4RunManager::userWorkerInitialization = nullptr
protectedinherited

◆ userWorkerThreadInitialization

G4UserWorkerThreadInitialization* G4RunManager::userWorkerThreadInitialization = nullptr
protectedinherited

◆ verboseLevel

G4int G4RunManager::verboseLevel = 0
protectedinherited

◆ workersStarted

bool G4TaskRunManager::workersStarted = false
private

Definition at line 220 of file G4TaskRunManager.hh.

◆ workTaskGroup

RunTaskGroup* G4TaskRunManager::workTaskGroup = nullptr
protected

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