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
G4PhysicsListHelper.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4PhysicsListHelper.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
// GEANT 4 class header file
29
// Class Description:
30
// This class is a helper class for physics lists to register processes
31
// according to the ordering parameter table
32
// This class is a singleton
33
// -------------------------------------------
34
// History
35
// first version 29 Apr. 2011 by H.Kurashige
36
// ------------------------------------------------------------
37
38
#ifndef G4PhysicsListHelper_h
39
#define G4PhysicsListHelper_h 1
40
#include "
globals.hh
"
41
#include "
G4ios.hh
"
42
#include <vector>
43
44
#include "
G4ParticleTable.hh
"
45
#include "
G4ParticleDefinition.hh
"
46
#include "
G4PhysicsListOrderingParameter.hh
"
47
#include "
G4ThreadLocalSingleton.hh
"
48
49
class
G4VProcess
;
50
51
class
G4PhysicsListHelper
52
{
53
54
friend
class
G4ThreadLocalSingleton
<
G4PhysicsListHelper
>;
55
56
private
:
57
// Hide constructor and destructor
58
G4PhysicsListHelper
();
59
~G4PhysicsListHelper
();
60
61
public
:
// with description
62
// This method gives the ponter to the physics list helper
63
static
G4PhysicsListHelper
*
GetPhysicsListHelper
();
64
65
//Register a process to the particle type
66
// according to the ordering parameter table
67
// 'true' is returned if the process is registerd successfully
68
G4bool
RegisterProcess
(
G4VProcess
* process,
69
G4ParticleDefinition
*
particle
);
70
71
// User must invoke this method in his ConstructProcess()
72
// implementation in order to insures particle transportation.
73
void
AddTransportation
();
74
75
// Set flag for using CoupledTransportation
76
void
UseCoupledTransportation
(
G4bool
vl=
true
);
77
78
// Change the thresholds for killing looping tracks of the
79
// transportation (simple or coupled.)
80
void
UseHighLooperThresholds
() {
theLooperThresholds
= 2;}
81
void
UseLowLooperThresholds
() {
theLooperThresholds
= 0;}
82
84
public
:
85
// check consistencies of list of particles
86
void
CheckParticleList
()
const
;
87
89
public
:
90
// Dump OrdingParameterTable
91
void
DumpOrdingParameterTable
(
G4int
subType = -1)
const
;
92
G4PhysicsListOrderingParameter
GetOrdingParameter
(
G4int
subType)
const
;
93
94
private
:
95
void
ReadOrdingParameterTable
();
96
void
ReadInDefaultOrderingParameter
();
97
99
public
:
// with description
100
void
SetVerboseLevel
(
G4int
value
);
101
G4int
GetVerboseLevel
()
const
;
102
// set/get controle flag for output message
103
// 0: Silent
104
// 1: Warning message
105
// 2: More
106
108
private
:
109
static
G4ThreadLocal
G4PhysicsListHelper
*
pPLHelper
;
110
111
// the particle table has the complete List of existing particle types
112
G4ParticleTable
*
theParticleTable
;
113
G4ParticleTable::G4PTblDicIterator
*
aParticleIterator
;
114
115
G4bool
useCoupledTransportation
;
116
G4int
theLooperThresholds
= 1;
// 0 = Low, 1 = default, 2 = high
117
G4VProcess
*
theTransportationProcess
;
118
119
G4int
verboseLevel
;
120
121
private
:
122
typedef
std::vector<G4PhysicsListOrderingParameter>
G4OrdParamTable
;
123
G4OrdParamTable
*
theTable
;
124
G4int
sizeOfTable
;
125
G4String
ordParamFileName
;
126
};
127
128
129
inline
130
void
G4PhysicsListHelper::UseCoupledTransportation
(
G4bool
vl)
131
{
132
useCoupledTransportation
= vl;
133
}
134
135
inline
136
void
G4PhysicsListHelper::SetVerboseLevel
(
G4int
value
)
137
{
138
verboseLevel
=
value
;
139
}
140
141
inline
142
G4int
G4PhysicsListHelper::GetVerboseLevel
()
const
143
{
144
return
verboseLevel
;
145
}
146
147
148
#endif
149
geant4
tree
geant4-10.6-release
source
run
include
G4PhysicsListHelper.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:53
using
1.8.2 with
ECCE GitHub integration