ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4UserWorkerThreadInitialization.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4UserWorkerThreadInitialization.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// class description:
27
//
28
// This class is used for multi-threaded Geant4.
29
// It encapsulates the mechanism of starting/stopping threads.
30
31
#ifndef G4UserWorkerThreadInitialization_hh
32
#define G4UserWorkerThreadInitialization_hh
33
34
class
G4VUserPrimaryGeneratorAction
;
35
class
G4UserRunAction
;
36
class
G4UserEventAction
;
37
class
G4UserStackingAction
;
38
class
G4UserTrackingAction
;
39
class
G4UserSteppingAction
;
40
41
class
G4WorkerThread
;
42
class
G4WorkerRunManager
;
43
44
#include "
G4Threading.hh
"
45
#include "
Randomize.hh
"
46
47
class
G4UserWorkerThreadInitialization
{
48
public
:
// with description
49
G4UserWorkerThreadInitialization
();
50
virtual
~G4UserWorkerThreadInitialization
();
51
52
virtual
G4Thread
*
CreateAndStartWorker
(
G4WorkerThread
* workerThreadContext);
53
// Called by the kernel to create a new thread/worker
54
// and start work.
55
// Usere should not re-implement this function (in derived class), except only if he/she
56
// wants to verwrite the default threading model (see StartThread function)
57
58
virtual
void
SetupRNGEngine
(
const
CLHEP::HepRandomEngine
* aRNGEngine)
const
;
59
// Called by worker threads to set the Random Number Generator Engine
60
// The default implementation "clones" the engine from the master thread
61
// User needs to re-implement this method if using a non-standard
62
// RNG Engine (i.e. a different one w.r.t. the one provided in the CLHEP
63
// version supported by G4.
64
// Important: this method is called by all threads at the same time
65
// if is user responsibilitiy to make it thread-safe
66
67
virtual
void
JoinWorker
(
G4Thread
* aThread);
68
// Called by the kernel when threads need to be terminated. Implements logic of
69
// joining the aThread. Calling thread will wait for aThread to end.
70
// Usere should not re-implement this function (in derived class), except only if he/she
71
// wants to verwrite the default threading model (see StartThread function)
72
73
virtual
G4WorkerRunManager
*
CreateWorkerRunManager
()
const
;
74
// Called by StartThread function to create a run-manager implementing worker behvior.
75
// User should re-implemtn this function in derived class to instantiate his/her
76
// user-defined WorkerRunManager.
77
// By default this method instantiates G4WorkerRunManager object.
78
79
};
80
81
#endif //G4UserWorkerThreadInitialization_hh
82
geant4
tree
geant4-10.6-release
source
run
include
G4UserWorkerThreadInitialization.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:53
using
1.8.2 with
ECCE GitHub integration