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
BrachyPhysicsList.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file BrachyPhysicsList.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
//
26
/*
27
Author: Susanna Guatelli
28
*/
29
//
30
// **********************************
31
// * *
32
// * BrachyPhysicsList.cc *
33
// * *
34
// **********************************
35
//
36
#include "
G4EmStandardPhysics_option4.hh
"
37
#include "
G4EmLivermorePhysics.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 "
G4DecayPhysics.hh
"
44
#include "
G4RadioactiveDecayPhysics.hh
"
45
#include "
G4EmPenelopePhysics.hh
"
46
#include "
BrachyPhysicsList.hh
"
47
#include "
G4VPhysicsConstructor.hh
"
48
#include "
G4ParticleDefinition.hh
"
49
#include "
G4ProductionCutsTable.hh
"
50
#include "
G4ProcessManager.hh
"
51
#include "
G4ParticleTypes.hh
"
52
#include "
G4ios.hh
"
53
#include "
G4StepLimiter.hh
"
54
#include "
G4ParticleDefinition.hh
"
55
#include "
globals.hh
"
56
#include "
G4SystemOfUnits.hh
"
57
#include "
BrachyPhysicsListMessenger.hh
"
58
59
BrachyPhysicsList::BrachyPhysicsList
():
G4VModularPhysicsList
()
60
{
61
SetVerboseLevel
(1);
62
63
// EM physics: default
64
fEmPhysicsList
=
new
G4EmLivermorePhysics
();
65
fEmName
=
"emlivermore"
;
66
67
// Add Decay
68
fDecPhysicsList
=
new
G4DecayPhysics
();
69
fRadDecayPhysicsList
=
new
G4RadioactiveDecayPhysics
();
70
fMessenger
=
new
BrachyPhysicsListMessenger
(
this
);
71
}
72
73
BrachyPhysicsList::~BrachyPhysicsList
()
74
{
75
delete
fMessenger
;
76
delete
fDecPhysicsList
;
77
delete
fRadDecayPhysicsList
;
78
delete
fEmPhysicsList
;
79
}
80
81
void
BrachyPhysicsList::ConstructParticle
()
82
{
83
fDecPhysicsList
->
ConstructParticle
();
84
}
85
86
void
BrachyPhysicsList::ConstructProcess
()
87
{
88
AddTransportation
();
89
fEmPhysicsList
->
ConstructProcess
();
90
91
// decay physics list
92
fDecPhysicsList
->
ConstructProcess
();
93
fRadDecayPhysicsList
->
ConstructProcess
();
94
}
95
96
97
void
BrachyPhysicsList::AddPhysicsList
(
const
G4String
&
name
)
98
{
99
100
if
(name ==
fEmName
)
return
;
101
102
if
(name ==
"emstandard_opt0"
){
103
fEmName
=
name
;
104
delete
fEmPhysicsList
;
105
fEmPhysicsList
=
new
G4EmStandardPhysics
();
106
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
107
108
}
else
if
(name ==
"emstandard_opt1"
){
109
fEmName
=
name
;
110
delete
fEmPhysicsList
;
111
fEmPhysicsList
=
new
G4EmStandardPhysics_option1
();
112
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
113
}
else
if
(name ==
"emstandard_opt2"
){
114
fEmName
=
name
;
115
delete
fEmPhysicsList
;
116
fEmPhysicsList
=
new
G4EmStandardPhysics_option2
();
117
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
118
}
else
if
(name ==
"emstandard_opt3"
){
119
fEmName
=
name
;
120
delete
fEmPhysicsList
;
121
fEmPhysicsList
=
new
G4EmStandardPhysics_option3
();
122
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
123
}
else
if
(name ==
"emstandard_opt4"
){
124
fEmName
=
name
;
125
delete
fEmPhysicsList
;
126
fEmPhysicsList
=
new
G4EmStandardPhysics_option4
();
127
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
128
}
else
if
(name ==
"empenelope"
){
129
fEmName
=
name
;
130
delete
fEmPhysicsList
;
131
fEmPhysicsList
=
new
G4EmPenelopePhysics
();
132
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
133
}
else
if
(name ==
"emlivermore"
){
134
fEmName
=
name
;
135
delete
fEmPhysicsList
;
136
fEmPhysicsList
=
new
G4EmLivermorePhysics
();
137
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
138
}
else
{
139
140
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
141
<<
" is not defined"
142
<<
G4endl
;
143
}
144
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
145
<<
" is activated"
146
<<
G4endl
;
147
}
148
149
void
BrachyPhysicsList::SetCuts
()
150
{
151
// Definition of threshold of production
152
// of secondary particles
153
// This is defined in range.
154
defaultCutValue
= 0.05 *
mm
;
155
SetCutValue
(
defaultCutValue
,
"gamma"
);
156
SetCutValue
(
defaultCutValue
,
"e-"
);
157
SetCutValue
(
defaultCutValue
,
"e+"
);
158
159
// By default the low energy limit to produce
160
// secondary particles is 990 eV.
161
// This value is correct when using the EM Standard Physics.
162
// When using the Low Energy Livermore this value can be
163
// changed to 250 eV corresponding to the limit
164
// of validity of the physics models.
165
// Comment out following three lines if the
166
// Standard electromagnetic Package is adopted.
167
G4double
lowLimit = 250. *
eV
;
168
G4double
highLimit = 100. *
GeV
;
169
170
G4ProductionCutsTable::GetProductionCutsTable
()->
SetEnergyRange
(lowLimit,
171
highLimit);
172
173
// Print the cuts
174
if
(
verboseLevel
>0)
DumpCutValuesTable
();
175
}
geant4
tree
geant4-10.6-release
examples
advanced
brachytherapy
src
BrachyPhysicsList.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:55
using
1.8.2 with
ECCE GitHub integration