Import Geant4 11.0.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2021-06-25 16:12:29 +02:00
parent c968e26a39
commit 6399a014b6
4200 changed files with 207479 additions and 237366 deletions
@@ -23,13 +23,17 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// class description:
// G4UserWorkerThreadInitialization
//
// This class is used for multi-threaded Geant4.
// It encapsulates the mechanism of starting/stopping threads.
// Class description:
//
// This class is used for multi-threading.
// It encapsulates the mechanism of starting/stopping threads.
// Author: M.Asai, A.Dotti (SLAC), 16 September 2013
// --------------------------------------------------------------------
#ifndef G4UserWorkerThreadInitialization_hh
#define G4UserWorkerThreadInitialization_hh
#define G4UserWorkerThreadInitialization_hh 1
class G4VUserPrimaryGeneratorAction;
class G4UserRunAction;
@@ -37,7 +41,6 @@ class G4UserEventAction;
class G4UserStackingAction;
class G4UserTrackingAction;
class G4UserSteppingAction;
class G4WorkerThread;
class G4WorkerRunManager;
@@ -46,38 +49,38 @@ class G4WorkerRunManager;
class G4UserWorkerThreadInitialization
{
public: // with description
G4UserWorkerThreadInitialization();
virtual ~G4UserWorkerThreadInitialization();
public:
virtual G4Thread* CreateAndStartWorker(G4WorkerThread* workerThreadContext);
// Called by the kernel to create a new thread/worker
// and start work.
// Usere should not re-implement this function (in derived class), except only
// if he/she wants to verwrite the default threading model (see StartThread
// function)
G4UserWorkerThreadInitialization();
virtual ~G4UserWorkerThreadInitialization();
virtual void SetupRNGEngine(const CLHEP::HepRandomEngine* aRNGEngine) const;
// Called by worker threads to set the Random Number Generator Engine
// The default implementation "clones" the engine from the master thread
// User needs to re-implement this method if using a non-standard
// RNG Engine (i.e. a different one w.r.t. the one provided in the CLHEP
// version supported by G4.
// Important: this method is called by all threads at the same time
// if is user responsibilitiy to make it thread-safe
virtual G4Thread* CreateAndStartWorker(G4WorkerThread* workerThreadContext);
// Called by the kernel to create a new thread/worker and start work.
// User should not re-implement this function (in derived class), except
// only if he/she wants to rewrite the default threading model (see
// StartThread() function).
virtual void JoinWorker(G4Thread* aThread);
// Called by the kernel when threads need to be terminated. Implements logic
// of joining the aThread. Calling thread will wait for aThread to end. Usere
// should not re-implement this function (in derived class), except only if
// he/she wants to verwrite the default threading model (see StartThread
// function)
virtual void SetupRNGEngine(const CLHEP::HepRandomEngine* aRNGEngine) const;
// Called by worker threads to set the Random Number Generator Engine.
// The default implementation "clones" the engine from the master thread
// User needs to re-implement this method if using a non-standard
// RNG Engine (i.e. a different one w.r.t. the one provided in the CLHEP
// version supported by Geant4).
// Important: this method is called by all threads at the same time;
// it is user responsibilitiy to make it thread-safe.
virtual G4WorkerRunManager* CreateWorkerRunManager() const;
// Called by StartThread function to create a run-manager implementing worker
// behvior. User should re-implemtn this function in derived class to
// instantiate his/her user-defined WorkerRunManager. By default this method
// instantiates G4WorkerRunManager object.
virtual void JoinWorker(G4Thread* aThread);
// Called by the kernel when threads need to be terminated. Implements
// logic of joining the "aThread". Calling thread will wait for "aThread"
// to end. Users should not re-implement this function (in derived class),
// except only if he/she wants to rewrite the default threading model (see
// StartThread() function).
virtual G4WorkerRunManager* CreateWorkerRunManager() const;
// Called by StartThread() function to create a run-manager implementing
// worker behvior. User should re-implement this function in a derived
// class to instantiate his/her user-defined WorkerRunManager.
// By default this method instantiates a G4WorkerRunManager object.
};
#endif // G4UserWorkerThreadInitialization_hh
#endif