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
electromagnetic
TestEm4
src
examples/extended/electromagnetic/TestEm4/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 electromagnetic/TestEm4/src/PhysicsList.cc
27
/// \brief Implementation of the PhysicsList class
28
//
29
//
30
// $Id: PhysicsList.cc 70314 2013-05-29 07:50:41Z gcosmo $
31
//
32
33
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
34
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
35
36
#include "PhysicsList.hh"
37
38
#include "
G4ParticleDefinition.hh
"
39
#include "
G4ProcessManager.hh
"
40
#include "
G4ParticleTypes.hh
"
41
#include "
G4ParticleTable.hh
"
42
43
#include "
G4SystemOfUnits.hh
"
44
45
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
46
47
PhysicsList::PhysicsList
()
48
:
G4VUserPhysicsList
()
49
{
50
defaultCutValue
= 1.0*
mm
;
51
SetVerboseLevel
(1);
52
}
53
54
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
55
56
PhysicsList::~PhysicsList
()
57
{}
58
59
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
60
61
void
PhysicsList::ConstructParticle
()
62
{
63
// In this method, static member functions should be called
64
// for all particles which you want to use.
65
// This ensures that objects of these particle types will be
66
// created in the program.
67
ConstructBosons
();
68
ConstructLeptons
();
69
G4GenericIon::GenericIonDefinition
();
70
}
71
72
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
73
74
void
PhysicsList::ConstructBosons
()
75
{
76
G4Gamma::GammaDefinition
();
77
}
78
79
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
80
81
void
PhysicsList::ConstructLeptons
()
82
{
83
G4Electron::ElectronDefinition
();
84
G4Positron::PositronDefinition
();
85
}
86
87
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
88
89
void
PhysicsList::ConstructProcess
()
90
{
91
AddTransportation
();
92
ConstructEM();
93
}
94
95
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
96
97
#include "
G4PhysicsListHelper.hh
"
98
99
#include "
G4ComptonScattering.hh
"
100
#include "
G4GammaConversion.hh
"
101
#include "
G4PhotoElectricEffect.hh
"
102
103
#include "
G4eMultipleScattering.hh
"
104
105
#include "
G4eIonisation.hh
"
106
#include "
G4eBremsstrahlung.hh
"
107
#include "
G4eplusAnnihilation.hh
"
108
109
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
110
111
void
PhysicsList::ConstructEM()
112
{
113
G4PhysicsListHelper
* ph =
G4PhysicsListHelper::GetPhysicsListHelper
();
114
115
theParticleIterator
->reset();
116
while
( (*
theParticleIterator
)() ){
117
G4ParticleDefinition
* particle =
theParticleIterator
->value();
118
G4String
particleName = particle->
GetParticleName
();
119
120
if
(particleName ==
"gamma"
) {
121
122
ph->
RegisterProcess
(
new
G4PhotoElectricEffect
, particle);
123
ph->
RegisterProcess
(
new
G4ComptonScattering
, particle);
124
ph->
RegisterProcess
(
new
G4GammaConversion
, particle);
125
126
}
else
if
(particleName ==
"e-"
) {
127
128
ph->
RegisterProcess
(
new
G4eMultipleScattering
, particle);
129
ph->
RegisterProcess
(
new
G4eIonisation
, particle);
130
ph->
RegisterProcess
(
new
G4eBremsstrahlung
, particle);
131
132
}
else
if
(particleName ==
"e+"
) {
133
134
ph->
RegisterProcess
(
new
G4eMultipleScattering
, particle);
135
ph->
RegisterProcess
(
new
G4eIonisation
, particle);
136
ph->
RegisterProcess
(
new
G4eBremsstrahlung
, particle);
137
ph->
RegisterProcess
(
new
G4eplusAnnihilation
, particle);
138
}
139
}
140
}
141
142
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
143
144
void
PhysicsList::SetCuts
()
145
{
146
if
(
verboseLevel
>0){
147
G4cout
<<
"PhysicsList::SetCuts:"
;
148
G4cout
<<
"CutLength : "
<<
defaultCutValue
/
mm
<<
" (mm)"
<<
G4endl
;
149
}
150
151
// set cut values for gamma at first and for e- second and next for e+,
152
// because some processes for e+/e- need cut values for gamma
153
SetCutValue
(
defaultCutValue
,
"gamma"
);
154
SetCutValue
(
defaultCutValue
,
"e-"
);
155
SetCutValue
(
defaultCutValue
,
"e+"
);
156
}
157
158
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
159
160
161
162
G4Electron::ElectronDefinition
static G4Electron * ElectronDefinition()
Definition:
G4Electron.cc:89
G4eIonisation.hh
G4GenericIon::GenericIonDefinition
static G4GenericIon * GenericIonDefinition()
Definition:
G4GenericIon.cc:88
PhysicsList::ConstructParticle
void ConstructParticle()
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:117
G4VUserPhysicsList::SetCutValue
void SetCutValue(G4double aCut, const G4String &pname)
Definition:
G4VUserPhysicsList.cc:419
G4PhotoElectricEffect
Definition:
G4PhotoElectricEffect.hh:79
G4ComptonScattering.hh
PhysicsList::ConstructBosons
void ConstructBosons()
Definition:
examples/advanced/microdosimetry/src/PhysicsList.cc:65
PhysicsList::ConstructLeptons
void ConstructLeptons()
Definition:
examples/advanced/microdosimetry/src/PhysicsList.cc:72
G4VUserPhysicsList::defaultCutValue
G4double defaultCutValue
Definition:
G4VUserPhysicsList.hh:361
G4eMultipleScattering.hh
G4ComptonScattering
Definition:
G4ComptonScattering.hh:71
G4PhysicsListHelper.hh
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:111
G4ParticleDefinition::GetParticleName
const G4String & GetParticleName() const
Definition:
G4ParticleDefinition.hh:159
G4VModularPhysicsList::verboseLevel
G4int verboseLevel
Definition:
G4VModularPhysicsList.hh:146
G4ParticleTypes.hh
G4cout
G4GLOB_DLL std::ostream G4cout
G4GammaConversion
Definition:
G4GammaConversion.hh:75
G4ParticleTable.hh
G4GammaConversion.hh
G4PhysicsListHelper::RegisterProcess
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
Definition:
G4PhysicsListHelper.cc:413
G4ProcessManager.hh
G4ParticleDefinition.hh
python.hepunit.mm
mm
Definition:
hepunit.py:46
G4PhotoElectricEffect.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
G4VUserPhysicsList
Definition:
G4VUserPhysicsList.hh:159
G4Positron::PositronDefinition
static G4Positron * PositronDefinition()
Definition:
G4Positron.cc:89
G4eBremsstrahlung
Definition:
G4eBremsstrahlung.hh:81
G4eIonisation
Definition:
G4eIonisation.hh:80
G4eplusAnnihilation.hh
G4VUserPhysicsList::AddTransportation
void AddTransportation()
Definition:
G4VUserPhysicsList.cc:947
PhysicsList::PhysicsList
PhysicsList()
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:43
G4PhysicsListHelper::GetPhysicsListHelper
static G4PhysicsListHelper * GetPhysicsListHelper()
Definition:
G4PhysicsListHelper.cc:89
G4eBremsstrahlung.hh
G4endl
#define G4endl
Definition:
G4ios.hh:61
G4eplusAnnihilation
Definition:
G4eplusAnnihilation.hh:65
G4eMultipleScattering
Definition:
G4eMultipleScattering.hh:60
G4PhysicsListHelper
Definition:
G4PhysicsListHelper.hh:50
G4SystemOfUnits.hh
PhysicsList::ConstructProcess
void ConstructProcess()
Definition:
environments/g4py/examples/demos/TestEm0/g4lib/PhysicsList.cc:170
theParticleIterator
#define theParticleIterator
Definition:
G4VUserPhysicsList.hh:153
G4Gamma::GammaDefinition
static G4Gamma * GammaDefinition()
Definition:
G4Gamma.cc:81
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
Generated on Wed Apr 30 2014 15:55:21 for Geant4.10 by
1.8.7