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
PhysicsList.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PhysicsList.cc
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
//
28
//
29
//
30
//
31
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
32
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33
34
#include "PhysicsList.hh"
35
#include "PhysicsListMessenger.hh"
36
37
#include "PhysListEmStandard.hh"
38
#include "
G4EmStandardPhysics.hh
"
39
#include "
G4EmStandardPhysics_option1.hh
"
40
#include "
G4EmStandardPhysics_option2.hh
"
41
#include "
G4EmStandardPhysics_option3.hh
"
42
#include "
G4EmStandardPhysics_option4.hh
"
43
#include "
G4EmLivermorePhysics.hh
"
44
#include "
G4EmPenelopePhysics.hh
"
45
46
#include "
G4LossTableManager.hh
"
47
#include "
G4UnitsTable.hh
"
48
#include "
G4SystemOfUnits.hh
"
49
#include "
G4EmParameters.hh
"
50
51
// Bosons
52
#include "
G4ChargedGeantino.hh
"
53
#include "
G4Geantino.hh
"
54
#include "
G4Gamma.hh
"
55
#include "
G4OpticalPhoton.hh
"
56
57
// leptons
58
#include "
G4MuonPlus.hh
"
59
#include "
G4MuonMinus.hh
"
60
#include "
G4NeutrinoMu.hh
"
61
#include "
G4AntiNeutrinoMu.hh
"
62
63
#include "
G4Electron.hh
"
64
#include "
G4Positron.hh
"
65
#include "
G4NeutrinoE.hh
"
66
#include "
G4AntiNeutrinoE.hh
"
67
68
// Mesons
69
#include "
G4PionPlus.hh
"
70
#include "
G4PionMinus.hh
"
71
#include "
G4PionZero.hh
"
72
#include "
G4Eta.hh
"
73
#include "
G4EtaPrime.hh
"
74
75
#include "
G4KaonPlus.hh
"
76
#include "
G4KaonMinus.hh
"
77
#include "
G4KaonZero.hh
"
78
#include "
G4AntiKaonZero.hh
"
79
#include "
G4KaonZeroLong.hh
"
80
#include "
G4KaonZeroShort.hh
"
81
82
// Baryons
83
#include "
G4Proton.hh
"
84
#include "
G4AntiProton.hh
"
85
#include "
G4Neutron.hh
"
86
#include "
G4AntiNeutron.hh
"
87
88
// Nuclei
89
#include "
G4Deuteron.hh
"
90
#include "
G4Triton.hh
"
91
#include "
G4Alpha.hh
"
92
#include "
G4GenericIon.hh
"
93
94
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
95
96
PhysicsList::PhysicsList
() :
G4VModularPhysicsList
(),
97
fEmPhysicsList(nullptr), fEmName(
""
),
98
fMessenger(new
PhysicsListMessenger
(this))
99
{
100
// set default cut value
101
SetDefaultCutValue
(1.0*
mm
);
102
103
SetVerboseLevel
(1);
104
105
AddPhysicsList
(
"emstandard_opt0"
);
106
107
G4ProductionCutsTable::GetProductionCutsTable
()->
SetEnergyRange
(100*
eV
,1*
GeV
);
108
109
//add new units for cross sections
110
//
111
new
G4UnitDefinition
(
"mm2/g"
,
"mm2/g"
,
"Surface/Mass"
,
mm2
/
g
);
112
new
G4UnitDefinition
(
"um2/mg"
,
"um2/mg"
,
"Surface/Mass"
,
um
*
um
/
mg
);
113
}
114
115
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
116
117
PhysicsList::~PhysicsList
()
118
{
119
delete
fMessenger
;
120
}
121
122
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
123
124
void
PhysicsList::ConstructParticle
()
125
{
126
// pseudo-particles
127
G4Geantino::GeantinoDefinition
();
128
G4ChargedGeantino::ChargedGeantinoDefinition
();
129
130
// gamma
131
G4Gamma::GammaDefinition
();
132
133
// optical photon
134
G4OpticalPhoton::OpticalPhotonDefinition
();
135
136
// leptons
137
G4Electron::ElectronDefinition
();
138
G4Positron::PositronDefinition
();
139
G4MuonPlus::MuonPlusDefinition
();
140
G4MuonMinus::MuonMinusDefinition
();
141
142
G4NeutrinoE::NeutrinoEDefinition
();
143
G4AntiNeutrinoE::AntiNeutrinoEDefinition
();
144
G4NeutrinoMu::NeutrinoMuDefinition
();
145
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition
();
146
147
// mesons
148
G4PionPlus::PionPlusDefinition
();
149
G4PionMinus::PionMinusDefinition
();
150
G4PionZero::PionZeroDefinition
();
151
G4Eta::EtaDefinition
();
152
G4EtaPrime::EtaPrimeDefinition
();
153
G4KaonPlus::KaonPlusDefinition
();
154
G4KaonMinus::KaonMinusDefinition
();
155
G4KaonZero::KaonZeroDefinition
();
156
G4AntiKaonZero::AntiKaonZeroDefinition
();
157
G4KaonZeroLong::KaonZeroLongDefinition
();
158
G4KaonZeroShort::KaonZeroShortDefinition
();
159
160
// barions
161
G4Proton::ProtonDefinition
();
162
G4AntiProton::AntiProtonDefinition
();
163
G4Neutron::NeutronDefinition
();
164
G4AntiNeutron::AntiNeutronDefinition
();
165
166
// ions
167
G4Deuteron::DeuteronDefinition
();
168
G4Triton::TritonDefinition
();
169
G4Alpha::AlphaDefinition
();
170
G4GenericIon::GenericIonDefinition
();
171
}
172
173
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
174
175
void
PhysicsList::ConstructProcess
()
176
{
177
// Transportation
178
//
179
AddTransportation
();
180
181
// Electromagnetic physics list
182
//
183
fEmPhysicsList
->
ConstructProcess
();
184
}
185
186
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
187
188
void
PhysicsList::AddPhysicsList
(
const
G4String
&
name
)
189
{
190
if
(
verboseLevel
>0) {
191
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
192
}
193
194
if
(name ==
fEmName
)
return
;
195
196
if
(name ==
"local"
) {
197
198
fEmName
=
name
;
199
delete
fEmPhysicsList
;
200
fEmPhysicsList
=
new
PhysListEmStandard
(name);
201
202
}
else
if
(name ==
"emstandard_opt0"
){
203
fEmName
=
name
;
204
delete
fEmPhysicsList
;
205
fEmPhysicsList
=
new
G4EmStandardPhysics
();
206
207
}
else
if
(name ==
"emstandard_opt1"
){
208
fEmName
=
name
;
209
delete
fEmPhysicsList
;
210
fEmPhysicsList
=
new
G4EmStandardPhysics_option1
();
211
212
}
else
if
(name ==
"emstandard_opt2"
){
213
fEmName
=
name
;
214
delete
fEmPhysicsList
;
215
fEmPhysicsList
=
new
G4EmStandardPhysics_option2
();
216
217
}
else
if
(name ==
"emstandard_opt3"
){
218
fEmName
=
name
;
219
delete
fEmPhysicsList
;
220
fEmPhysicsList
=
new
G4EmStandardPhysics_option3
();
221
222
}
else
if
(name ==
"emstandard_opt4"
){
223
fEmName
=
name
;
224
delete
fEmPhysicsList
;
225
fEmPhysicsList
=
new
G4EmStandardPhysics_option4
();
226
227
}
else
if
(name ==
"empenelope"
){
228
fEmName
=
name
;
229
delete
fEmPhysicsList
;
230
fEmPhysicsList
=
new
G4EmPenelopePhysics
();
231
232
}
else
if
(name ==
"emlivermore"
){
233
fEmName
=
name
;
234
delete
fEmPhysicsList
;
235
fEmPhysicsList
=
new
G4EmLivermorePhysics
();
236
237
}
else
{
238
239
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
240
<<
" is not defined"
241
<<
G4endl
;
242
}
243
244
// Em options
245
//
246
G4EmParameters::Instance
()->
SetBuildCSDARange
(
true
);
247
G4EmParameters::Instance
()->
SetGeneralProcessActive
(
false
);
248
}
249
250
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
geant4
tree
geant4-10.6-release
examples
extended
electromagnetic
TestEm0
src
PhysicsList.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:50
using
1.8.2 with
ECCE GitHub integration