Geant4
10.02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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
//
28
//
29
// $Id: PhysicsList.cc 90829 2015-06-10 08:37:55Z 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
96
// pseudo-particles
97
G4Geantino::GeantinoDefinition
();
98
G4ChargedGeantino::ChargedGeantinoDefinition
();
99
100
// gamma
101
G4Gamma::GammaDefinition
();
102
103
// leptons
104
G4Electron::ElectronDefinition
();
105
G4Positron::PositronDefinition
();
106
107
// baryons
108
G4Proton::ProtonDefinition
();
109
}
110
111
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
112
113
void
PhysicsList::ConstructProcess
()
114
{
115
AddTransportation
();
116
fEmPhysicsList
->
ConstructProcess
();
117
118
AddStepMax
();
119
}
120
121
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
122
123
void
PhysicsList::AddStepMax
()
124
{
125
// Step limitation seen as a process
126
StepMax
* stepMaxProcess =
new
StepMax
();
127
128
theParticleIterator
->reset();
129
while
((*
theParticleIterator
)()){
130
G4ParticleDefinition
* particle =
theParticleIterator
->value();
131
G4ProcessManager
* pmanager = particle->
GetProcessManager
();
132
133
if
(stepMaxProcess->
IsApplicable
(*particle) && !particle->
IsShortLived
())
134
{
135
pmanager ->
AddDiscreteProcess
(stepMaxProcess);
136
}
137
}
138
}
139
140
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
141
142
void
PhysicsList::AddPhysicsList
(
const
G4String
&
name
)
143
{
144
if
(
verboseLevel
>-1) {
145
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
<<
G4endl
;
146
}
147
148
if
(name ==
fEmName
)
return
;
149
150
if
(name ==
"standard_opt0"
) {
151
152
fEmName
=
name
;
153
delete
fEmPhysicsList
;
154
fEmPhysicsList
=
new
PhysListEmStandard_option0
(name);
155
156
}
else
if
(name ==
"standard_opt3"
) {
157
158
fEmName
=
name
;
159
delete
fEmPhysicsList
;
160
fEmPhysicsList
=
new
PhysListEmStandard_option3
(name);
161
162
}
else
if
(name ==
"standard_GS"
) {
163
164
fEmName
=
name
;
165
delete
fEmPhysicsList
;
166
fEmPhysicsList
=
new
PhysListEmStandard_GS
(name);
167
168
}
else
if
(name ==
"standard_WVI"
) {
169
170
fEmName
=
name
;
171
delete
fEmPhysicsList
;
172
fEmPhysicsList
=
new
PhysListEmStandard_WVI
(name);
173
174
}
else
if
(name ==
"standard_SS"
) {
175
176
fEmName
=
name
;
177
delete
fEmPhysicsList
;
178
fEmPhysicsList
=
new
PhysListEmStandard_SS
(name);
179
180
}
else
{
181
182
G4cout
<<
"PhysicsList::AddPhysicsList: <"
<< name <<
">"
183
<<
" is not defined"
184
<<
G4endl
;
185
}
186
}
187
188
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
189
190
#include "
G4UnitsTable.hh
"
191
192
void
PhysicsList::SetCuts
()
193
{
194
if
(
verboseLevel
>0){
195
G4cout
<<
"PhysicsList::SetCuts:"
;
196
G4cout
<<
"CutLength : "
<<
G4BestUnit
(
defaultCutValue
,
"Length"
) <<
G4endl
;
197
}
198
199
// set cut values for gamma at first and for e- second and next for e+,
200
// because some processes for e+/e- need cut values for gamma
201
SetCutValue
(
defaultCutValue
,
"gamma"
);
202
SetCutValue
(
defaultCutValue
,
"e-"
);
203
SetCutValue
(
defaultCutValue
,
"e+"
);
204
SetCutValue
(
defaultCutValue
,
"proton"
);
205
}
206
207
//....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:
PhysicsList.cc:117
PhysListEmStandard_option0
Definition:
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:
PhysListEmStandard_option3.hh:44
name
G4String name
Definition:
TRTMaterials.hh:40
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
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::fMessenger
PhysicsListMessenger * fMessenger
Definition:
PhysicsList.hh:78
PhysicsList::AddPhysicsList
void AddPhysicsList(const G4String &name)
Definition:
PhysicsList.cc:191
G4VModularPhysicsList::verboseLevel
G4int verboseLevel
Definition:
G4VModularPhysicsList.hh:146
StepMax
Definition:
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:
PhysicsList.cc:65
PhysicsList::SetCuts
void SetCuts()
Definition:
PhysicsList.cc:219
PhysicsList::AddStepMax
void AddStepMax()
Definition:
PhysicsList.cc:172
G4Positron::PositronDefinition
static G4Positron * PositronDefinition()
Definition:
G4Positron.cc:89
G4ParticleDefinition::IsShortLived
G4bool IsShortLived() const
Definition:
G4ParticleDefinition.hh:196
G4Electron.hh
km
static const double km
Definition:
G4SIunits.hh:132
G4VUserPhysicsList::AddTransportation
void AddTransportation()
Definition:
G4VUserPhysicsList.cc:956
PhysicsList::PhysicsList
PhysicsList()
Definition:
PhysicsList.cc:43
PhysListEmStandard_SS
Definition:
PhysListEmStandard_SS.hh:44
StepMax::IsApplicable
virtual G4bool IsApplicable(const G4ParticleDefinition &)
Definition:
StepMax.cc:51
G4Geantino.hh
PhysicsList::fEmPhysicsList
G4VPhysicsConstructor * fEmPhysicsList
Definition:
PhysicsList.hh:73
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:
PhysListEmStandard_GS.hh:44
G4SystemOfUnits.hh
PhysicsList::fEmName
G4String fEmName
Definition:
PhysicsList.hh:72
PhysicsList::ConstructProcess
void ConstructProcess()
Definition:
PhysicsList.cc:170
PhysListEmStandard_WVI
Definition:
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:
G4String.hh:45
PhysicsListMessenger
Definition:
PhysicsListMessenger.hh:44
geant4.10.02
examples
extended
medical
fanoCavity2
src
PhysicsList.cc
Generated on Thu Dec 31 2015 10:42:47 for Geant4 by
1.8.8