Geant4
10.03.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
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.
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
// $Id: PhysicsList.cc 100287 2016-10-17 08:44:33Z 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
auto
particleIterator
=
GetParticleIterator
();
116
particleIterator
->reset();
117
while
( (*
particleIterator
)() ){
118
G4ParticleDefinition
* particle =
particleIterator
->value();
119
G4String
particleName = particle->
GetParticleName
();
120
121
if
(particleName ==
"gamma"
) {
122
123
ph->
RegisterProcess
(
new
G4PhotoElectricEffect
, particle);
124
ph->
RegisterProcess
(
new
G4ComptonScattering
, particle);
125
ph->
RegisterProcess
(
new
G4GammaConversion
, particle);
126
127
}
else
if
(particleName ==
"e-"
) {
128
129
ph->
RegisterProcess
(
new
G4eMultipleScattering
, particle);
130
ph->
RegisterProcess
(
new
G4eIonisation
, particle);
131
ph->
RegisterProcess
(
new
G4eBremsstrahlung
, particle);
132
133
}
else
if
(particleName ==
"e+"
) {
134
135
ph->
RegisterProcess
(
new
G4eMultipleScattering
, particle);
136
ph->
RegisterProcess
(
new
G4eIonisation
, particle);
137
ph->
RegisterProcess
(
new
G4eBremsstrahlung
, particle);
138
ph->
RegisterProcess
(
new
G4eplusAnnihilation
, particle);
139
}
140
}
141
}
142
143
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
144
145
void
PhysicsList::SetCuts
()
146
{
147
if
(
verboseLevel
>0){
148
G4cout
<<
"PhysicsList::SetCuts:"
;
149
G4cout
<<
"CutLength : "
<<
defaultCutValue
/
mm
<<
" (mm)"
<<
G4endl
;
150
}
151
152
// set cut values for gamma at first and for e- second and next for e+,
153
// because some processes for e+/e- need cut values for gamma
154
SetCutValue
(
defaultCutValue
,
"gamma"
);
155
SetCutValue
(
defaultCutValue
,
"e-"
);
156
SetCutValue
(
defaultCutValue
,
"e+"
);
157
}
158
159
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
160
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:
PhysicsList.cc:117
mm
static constexpr double mm
Definition:
G4SIunits.hh:115
G4VUserPhysicsList::SetCutValue
void SetCutValue(G4double aCut, const G4String &pname)
Definition:
G4VUserPhysicsList.cc:416
G4PhotoElectricEffect
Definition:
G4PhotoElectricEffect.hh:79
G4ComptonScattering.hh
PhysicsList::ConstructBosons
void ConstructBosons()
Definition:
PhysicsList.cc:64
PhysicsList::ConstructLeptons
void ConstructLeptons()
Definition:
PhysicsList.cc:71
G4VUserPhysicsList::defaultCutValue
G4double defaultCutValue
Definition:
G4VUserPhysicsList.hh:358
G4eMultipleScattering.hh
G4ComptonScattering
Definition:
G4ComptonScattering.hh:71
G4PhysicsListHelper.hh
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:72
G4ParticleDefinition::GetParticleName
const G4String & GetParticleName() const
Definition:
G4ParticleDefinition.hh:120
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
G4PhotoElectricEffect.hh
G4VModularPhysicsList::SetVerboseLevel
void SetVerboseLevel(G4int value)
Definition:
G4VModularPhysicsList.cc:377
PhysicsList::~PhysicsList
~PhysicsList()
Definition:
PhysicsList.cc:65
PhysicsList::SetCuts
void SetCuts()
Definition:
PhysicsList.cc:219
G4VUserPhysicsList
Definition:
G4VUserPhysicsList.hh:155
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:953
PhysicsList::PhysicsList
PhysicsList()
Definition:
PhysicsList.cc:43
G4PhysicsListHelper::GetPhysicsListHelper
static G4PhysicsListHelper * GetPhysicsListHelper()
Definition:
G4PhysicsListHelper.cc:89
particleIterator
std::vector< G4InuclElementaryParticle >::iterator particleIterator
Definition:
G4BigBanger.cc:65
G4VUserPhysicsList::GetParticleIterator
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
Definition:
G4VUserPhysicsList.cc:972
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:
PhysicsList.cc:170
PhysicsList::ConstructEM
void ConstructEM()
Definition:
PhysicsList.cc:130
G4Gamma::GammaDefinition
static G4Gamma * GammaDefinition()
Definition:
G4Gamma.cc:81
G4String
Definition:
G4String.hh:45
source
geant4.10.03.p02
examples
extended
electromagnetic
TestEm4
src
PhysicsList.cc
Generated on Tue Nov 28 2017 21:43:05 for Geant4 by
1.8.5