Geant4.10
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4.10.00.p01
examples
extended
medical
fanoCavity2
src
examples/extended/medical/fanoCavity2/src/PhysicsList.cc
Go to the documentation of this file.
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
/// \file medical/fanoCavity2/src/PhysicsList.cc
27
/// \brief Implementation of the PhysicsList class
28
//
29
// $Id: PhysicsList.cc 72961 2013-08-14 14:35:56Z gcosmo $
30
//
31
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
32
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33
34
#include "PhysicsList.hh"
35
#include "PhysicsListMessenger.hh"
36
37
#include "PhysListEmStandard_option0.hh"
38
#include "PhysListEmStandard_option3.hh"
39
#include "PhysListEmStandard_GS.hh"
40
#include "PhysListEmStandard_WVI.hh"
41
#include "PhysListEmStandard_SS.hh"
42
43
#include "StepMax.hh"
44
45
#include "
G4ParticleDefinition.hh
"
46
47
#include "
G4ProcessManager.hh
"
48
#include "
G4LossTableManager.hh
"
49
50
// Bosons
51
#include "
G4ChargedGeantino.hh
"
52
#include "
G4Geantino.hh
"
53
#include "
G4Gamma.hh
"
54
55
// leptons
56
#include "
G4Electron.hh
"
57
#include "
G4Positron.hh
"
58
59
// Hadrons
60
#include "
G4Proton.hh
"
61
62
#include "
G4SystemOfUnits.hh
"
63
64
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
65
66
PhysicsList::PhysicsList
()
67
:
G4VModularPhysicsList
(), fMessenger(0), fEmPhysicsList(0)
68
{
69
G4LossTableManager::Instance
();
70
fMessenger =
new
PhysicsListMessenger
(
this
);
71
72
// EM physics
73
fEmName =
G4String
(
"standard_opt3"
);
74
fEmPhysicsList =
new
PhysListEmStandard_option3
(fEmName);
75
76
defaultCutValue
= 10*
km
;
77
78
SetVerboseLevel
(1);
79
80
G4LossTableManager::Instance
();
81
}
82
83
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
84
85
PhysicsList::~PhysicsList
()
86
{
87
delete
fEmPhysicsList;
88
delete
fMessenger;
89
}
90
91
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
92
93
void
PhysicsList::ConstructParticle
()
94
{
95
// pseudo-particles
96
G4Geantino::GeantinoDefinition
();
97
G4ChargedGeantino::ChargedGeantinoDefinition
();
98
99
// gamma
100
G4Gamma::GammaDefinition
();
101
102
// leptons
103
G4Electron::ElectronDefinition
();
104
G4Positron::PositronDefinition
();
105
106
// baryons
107
G4Proton::ProtonDefinition
();
108
}
109
110
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
111
112
void
PhysicsList::ConstructProcess
()
113
{
114
AddTransportation
();
115
fEmPhysicsList->
ConstructProcess
();
116
117
AddStepMax
();
118
}
119
120
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
121
122
void
PhysicsList::AddStepMax
()
123
{
124
// Step limitation seen as a process
125
StepMax
* stepMaxProcess =
new
StepMax
();
126
127
theParticleIterator
->reset();
128
while
((*
theParticleIterator
)()){
129
G4ParticleDefinition
* particle =
theParticleIterator
->value();
130
G4ProcessManager
* pmanager = particle->
GetProcessManager
();
131
132
if
(stepMaxProcess->
IsApplicable
(*particle) && !particle->
IsShortLived
())
133
{
134
pmanager ->
AddDiscreteProcess
(stepMaxProcess);
135
}
136
}
137
}
138
139
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
140
141
void
PhysicsList::AddPhysicsList
(
const
G4String
&
name
)
142
{
143
if
(
verboseLevel
>-1) {
144
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
145
}
146
147
if
(name == fEmName)
return
;
148
149
if
(name ==
"standard_opt0"
) {
150
151
fEmName =
name
;
152
delete
fEmPhysicsList;
153
fEmPhysicsList =
new
PhysListEmStandard_option0
(name);
154
155
}
else
if
(name ==
"standard_opt3"
) {
156
157
fEmName =
name
;
158
delete
fEmPhysicsList;
159
fEmPhysicsList =
new
PhysListEmStandard_option3
(name);
160
161
}
else
if
(name ==
"standard_GS"
) {
162
163
fEmName =
name
;
164
delete
fEmPhysicsList;
165
fEmPhysicsList =
new
PhysListEmStandard_GS
(name);
166
167
}
else
if
(name ==
"standard_WVI"
) {
168
169
fEmName =
name
;
170
delete
fEmPhysicsList;
171
fEmPhysicsList =
new
PhysListEmStandard_WVI
(name);
172
173
}
else
if
(name ==
"standard_SS"
) {
174
175
fEmName =
name
;
176
delete
fEmPhysicsList;
177
fEmPhysicsList =
new
PhysListEmStandard_SS
(name);
178
179
}
else
{
180
181
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
182
<<
" is not defined"
183
<<
G4endl
;
184
}
185
}
186
187
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
188
189
#include "
G4UnitsTable.hh
"
190
191
void
PhysicsList::SetCuts
()
192
{
193
if
(
verboseLevel
>0){
194
G4cout
<<
"PhysicsList::SetCuts:"
;
195
G4cout
<<
"CutLength : "
<<
G4BestUnit
(
defaultCutValue
,
"Length"
) <<
G4endl
;
196
}
197
198
// set cut values for gamma at first and for e- second and next for e+,
199
// because some processes for e+/e- need cut values for gamma
200
SetCutValue
(
defaultCutValue
,
"gamma"
);
201
SetCutValue
(
defaultCutValue
,
"e-"
);
202
SetCutValue
(
defaultCutValue
,
"e+"
);
203
SetCutValue
(
defaultCutValue
,
"proton"
);
204
}
205
206
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4Geantino::GeantinoDefinition
static G4Geantino * GeantinoDefinition()
Definition:
G4Geantino.cc:82
G4Electron::ElectronDefinition
static G4Electron * ElectronDefinition()
Definition:
G4Electron.cc:89
PhysicsList::ConstructParticle
void ConstructParticle()
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:117
PhysListEmStandard_option0
Definition:
include/PhysListEmStandard_option0.hh:44
G4LossTableManager::Instance
static G4LossTableManager * Instance()
Definition:
G4LossTableManager.cc:112
G4VUserPhysicsList::SetCutValue
void SetCutValue(G4double aCut, const G4String &pname)
Definition:
G4VUserPhysicsList.cc:419
PhysListEmStandard_option3
Definition:
include/PhysListEmStandard_option3.hh:44
python.hepunit.km
km
Definition:
hepunit.py:58
G4ChargedGeantino.hh
G4VUserPhysicsList::defaultCutValue
G4double defaultCutValue
Definition:
G4VUserPhysicsList.hh:361
G4Proton::ProtonDefinition
static G4Proton * ProtonDefinition()
Definition:
G4Proton.cc:88
G4ProcessManager::AddDiscreteProcess
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4UnitsTable.hh
name
const XML_Char * name
Definition:
include/expat.h:151
G4LossTableManager.hh
G4BestUnit
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
Definition:
G4SteppingVerbose.cc:53
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:111
G4ParticleDefinition::GetProcessManager
G4ProcessManager * GetProcessManager() const
PhysicsList::AddPhysicsList
void AddPhysicsList(const G4String &name)
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:191
G4VModularPhysicsList::verboseLevel
G4int verboseLevel
Definition:
G4VModularPhysicsList.hh:146
StepMax
Definition:
electromagnetic/TestEm1/include/StepMax.hh:46
G4cout
G4GLOB_DLL std::ostream G4cout
G4Proton.hh
G4Positron.hh
G4ProcessManager.hh
G4ParticleDefinition.hh
G4VModularPhysicsList::SetVerboseLevel
void SetVerboseLevel(G4int value)
Definition:
G4VModularPhysicsList.cc:379
PhysicsList::~PhysicsList
~PhysicsList()
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:65
PhysicsList::SetCuts
void SetCuts()
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:219
PhysicsList::AddStepMax
void AddStepMax()
Definition:
examples/advanced/microbeam/src/PhysicsList.cc:172
G4Positron::PositronDefinition
static G4Positron * PositronDefinition()
Definition:
G4Positron.cc:89
G4ParticleDefinition::IsShortLived
G4bool IsShortLived() const
Definition:
G4ParticleDefinition.hh:196
G4Electron.hh
G4VUserPhysicsList::AddTransportation
void AddTransportation()
Definition:
G4VUserPhysicsList.cc:947
PhysicsList::PhysicsList
PhysicsList()
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:43
PhysListEmStandard_SS
Definition:
include/PhysListEmStandard_SS.hh:44
StepMax::IsApplicable
virtual G4bool IsApplicable(const G4ParticleDefinition &)
Definition:
electromagnetic/TestEm1/src/StepMax.cc:51
G4Geantino.hh
G4VPhysicsConstructor::ConstructProcess
virtual void ConstructProcess()=0
G4ChargedGeantino::ChargedGeantinoDefinition
static G4ChargedGeantino * ChargedGeantinoDefinition()
Definition:
G4ChargedGeantino.cc:82
G4endl
#define G4endl
Definition:
G4ios.hh:61
G4ProcessManager
Definition:
G4ProcessManager.hh:106
PhysListEmStandard_GS
Definition:
include/PhysListEmStandard_GS.hh:44
G4SystemOfUnits.hh
PhysicsList::ConstructProcess
void ConstructProcess()
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:170
PhysListEmStandard_WVI
Definition:
include/PhysListEmStandard_WVI.hh:44
theParticleIterator
#define theParticleIterator
Definition:
G4VUserPhysicsList.hh:153
G4Gamma.hh
G4Gamma::GammaDefinition
static G4Gamma * GammaDefinition()
Definition:
G4Gamma.cc:81
G4VModularPhysicsList
Definition:
G4VModularPhysicsList.hh:90
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
PhysicsListMessenger
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsListMessenger.hh:44
Generated on Wed Apr 30 2014 15:55:21 for Geant4.10 by
1.8.7