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
G4ProcessTable.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ProcessTable.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
27
//
28
//
29
//
30
// ------------------------------------------------------------
31
// GEANT 4 class header file
32
//
33
// History: first implementation, based on object model of
34
// 4th Aug 1998, H.Kurashige
35
//
36
// Class Description
37
// This class is used for "book keeping" of all processes
38
// which are registered in all particles
39
//
40
// History:
41
// Added G4ProcessTableMesseneger 16 Aug. 1998, H.Kurashige
42
// Use STL vector instead of RW vector 1. Mar 00 H.Kurashige
43
//
44
// ------------------------------------------------------------
45
46
#ifndef G4ProcessTable_h
47
#define G4ProcessTable_h 1
48
49
#include "
globals.hh
"
50
#include "
G4ios.hh
"
51
#include <vector>
52
53
#include "
G4ProcTblElement.hh
"
54
#include "
G4ProcessVector.hh
"
55
#include "
G4ThreadLocalSingleton.hh
"
56
57
class
G4UImessenger
;
58
class
G4ProcessTableMessenger
;
59
60
class
G4ProcessTable
61
{
62
63
friend
class
G4ThreadLocalSingleton
<
G4ProcessTable
>;
64
65
public
:
66
G4ProcessTable
();
67
// Constructors
68
69
~G4ProcessTable
();
70
// Destructor
71
72
private
:
73
G4ProcessTable
(
const
G4ProcessTable
&
right
);
74
G4ProcessTable
&
operator=
(
const
G4ProcessTable
&
right
);
75
// Assignment operator
76
G4bool
operator==
(
const
G4ProcessTable
&
right
)
const
;
77
G4bool
operator!=
(
const
G4ProcessTable
&
right
)
const
;
78
// equal / unequal operator
79
80
81
public
:
// with description
82
static
G4ProcessTable
*
GetProcessTable
();
83
// return the pointer to G4ProcessTable object
84
// G4ProcessTable is a "singleton" and can get its pointer by this function
85
86
G4int
Length
()
const
;
87
// return the number of processes in the table
88
89
G4int
Insert
(
G4VProcess
* aProcess,
G4ProcessManager
* aProcMgr);
90
G4int
Remove
(
G4VProcess
* aProcess,
G4ProcessManager
* aProcMgr);
91
// insert and remove methods
92
// each process object is registered with information of process managers
93
// that use it.
94
95
G4VProcess
*
FindProcess
(
const
G4String
& processName,
96
const
G4String
& particleName)
const
;
97
G4VProcess
*
FindProcess
(
const
G4String
& processName,
98
const
G4ParticleDefinition
*
particle
)
const
;
99
G4VProcess
*
FindProcess
(
const
G4String
& processName,
100
const
G4ProcessManager
* processManager)
const
;
101
// return the process pointer
102
103
G4ProcessVector
*
FindProcesses
();
104
G4ProcessVector
*
FindProcesses
(
const
G4ProcessManager
* processManager );
105
G4ProcessVector
*
FindProcesses
(
const
G4String
& processName );
106
G4ProcessVector
*
FindProcesses
(
G4ProcessType
processType );
107
// return pointer of a process vector
108
// which includes processes specified
109
// Note:: User is responsible to delete this process vector object
110
111
void
SetProcessActivation
(
const
G4String
& processName,
112
G4bool
fActive);
113
void
SetProcessActivation
(
const
G4String
& processName,
114
const
G4String
& particleName,
115
G4bool
fActive );
116
void
SetProcessActivation
(
const
G4String
& processName,
117
G4ParticleDefinition
*
particle
,
118
G4bool
fActive );
119
void
SetProcessActivation
(
const
G4String
& processName,
120
G4ProcessManager
* processManager,
121
G4bool
fActive );
122
void
SetProcessActivation
(
G4ProcessType
processType,
123
G4bool
fActive );
124
void
SetProcessActivation
(
G4ProcessType
processType,
125
const
G4String
& particleName,
126
G4bool
fActive );
127
void
SetProcessActivation
(
G4ProcessType
processType,
128
G4ParticleDefinition
*
particle
,
129
G4bool
fActive );
130
void
SetProcessActivation
(
G4ProcessType
processType,
131
G4ProcessManager
* processManager,
132
G4bool
fActive );
133
// These methods are provided to activate or inactivate processes
134
135
public
:
136
typedef
std::vector<G4ProcTblElement*>
G4ProcTableVector
;
137
typedef
std::vector<G4String>
G4ProcNameVector
;
138
139
public
:
// with description
140
G4ProcNameVector
*
GetNameList
();
141
// return pointer of the list of process name
142
143
G4ProcTableVector
*
GetProcTableVector
();
144
// return pointer of the vector of G4ProcTblElement
145
146
private
:
147
G4ProcTableVector
*
Find
(
G4ProcTableVector
* procTableVector,
148
const
G4String
& processName );
149
G4ProcTableVector
*
Find
(
G4ProcTableVector
* procTableVector,
150
G4ProcessType
processType );
151
// return pointer of a ProcTableVector
152
// which includes ProcTbleElement specified
153
154
G4ProcessVector
*
ExtractProcesses
(
G4ProcTableVector
* procTableVector);
155
// extract all process objects from the process table
156
157
public
:
// with description
158
void
DumpInfo
(
G4VProcess
* process,
G4ParticleDefinition
*
particle
=0);
159
// dump out information of the process table
160
// second argument is used to specify processes designated by a particle
161
162
public
:
// with description
163
void
SetVerboseLevel
(
G4int
value
);
164
G4int
GetVerboseLevel
()
const
;
165
// Set/Get controle flag for output message
166
// 0: Silent
167
// 1: Warning message
168
// 2: More
169
170
171
private
:
172
static
G4ThreadLocal
G4ProcessTable
*
fProcessTable
;
173
G4ProcessTableMessenger
*
fProcTblMessenger
;
174
175
private
:
176
G4ProcTableVector
*
fProcTblVector
;
177
G4ProcNameVector
*
fProcNameVector
;
178
// list of G4ProcTblElement
179
180
G4ProcTableVector
*
tmpTblVector
;
181
// used only internaly for temporary buffer.
182
183
private
:
184
G4int
verboseLevel
;
185
// controle flag for output message
186
187
};
188
189
#include "G4ProcessTable.icc"
190
#endif
geant4
tree
geant4-10.6-release
source
processes
management
include
G4ProcessTable.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:52
using
1.8.2 with
ECCE GitHub integration