Geant4
10.03.p03
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
ElectromagneticPhysics.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
// $Id: ElectromagneticPhysics.cc 71570 2013-06-18 10:14:44Z gcosmo $
27
// GEANT4 tag $Name: not supported by cvs2svn $
28
//
29
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
30
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
31
32
#include "ElectromagneticPhysics.hh"
33
34
#include "
G4BuilderType.hh
"
35
#include "
G4ParticleDefinition.hh
"
36
#include "
G4ProcessManager.hh
"
37
#include "
G4PhysicsListHelper.hh
"
38
39
#include "
G4ComptonScattering.hh
"
40
#include "
G4GammaConversion.hh
"
41
#include "
G4PhotoElectricEffect.hh
"
42
#include "
G4RayleighScattering.hh
"
43
#include "
G4KleinNishinaModel.hh
"
44
45
#include "
G4eMultipleScattering.hh
"
46
#include "
G4eIonisation.hh
"
47
#include "
G4eBremsstrahlung.hh
"
48
#include "
G4eplusAnnihilation.hh
"
49
50
#include "
G4MuMultipleScattering.hh
"
51
#include "
G4MuIonisation.hh
"
52
#include "
G4MuBremsstrahlung.hh
"
53
#include "
G4MuPairProduction.hh
"
54
55
#include "
G4hMultipleScattering.hh
"
56
#include "
G4hIonisation.hh
"
57
#include "
G4hBremsstrahlung.hh
"
58
#include "
G4hPairProduction.hh
"
59
60
#include "
G4ionIonisation.hh
"
61
#include "
G4IonParametrisedLossModel.hh
"
62
#include "
G4NuclearStopping.hh
"
63
64
#include "
G4SystemOfUnits.hh
"
65
66
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
67
68
ElectromagneticPhysics::ElectromagneticPhysics
(
const
G4String
&
name
)
69
:
G4VPhysicsConstructor
(name)
70
{
71
SetPhysicsType
(
bElectromagnetic
);
72
73
G4EmParameters
* param =
G4EmParameters::Instance
();
74
param->
SetDefaults
();
75
param->
SetVerbose
(0);
76
param->
SetStepFunction
(1., 1*
mm
);
//default= 0.1, 100*um
77
param->
SetStepFunctionMuHad
(1., 1*
mm
);
78
}
79
80
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
81
82
ElectromagneticPhysics::~ElectromagneticPhysics
()
83
{}
84
85
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
86
87
void
ElectromagneticPhysics::ConstructProcess
()
88
{
89
G4PhysicsListHelper
* ph =
G4PhysicsListHelper::GetPhysicsListHelper
();
90
91
// Add standard EM Processes
92
//
93
auto
particleIterator
=
GetParticleIterator
();
94
particleIterator
->reset();
95
while
( (*
particleIterator
)() ){
96
G4ParticleDefinition
* particle =
particleIterator
->value();
97
G4String
particleName = particle->
GetParticleName
();
98
99
if
(particleName ==
"gamma"
) {
100
101
ph->
RegisterProcess
(
new
G4PhotoElectricEffect
, particle);
102
ph->
RegisterProcess
(
new
G4ComptonScattering
, particle);
103
ph->
RegisterProcess
(
new
G4GammaConversion
, particle);
104
105
}
else
if
(particleName ==
"e-"
) {
106
107
ph->
RegisterProcess
(
new
G4eMultipleScattering
(), particle);
108
ph->
RegisterProcess
(
new
G4eIonisation
, particle);
109
ph->
RegisterProcess
(
new
G4eBremsstrahlung
(), particle);
110
111
}
else
if
(particleName ==
"e+"
) {
112
113
ph->
RegisterProcess
(
new
G4eMultipleScattering
(), particle);
114
ph->
RegisterProcess
(
new
G4eIonisation
, particle);
115
ph->
RegisterProcess
(
new
G4eBremsstrahlung
(), particle);
116
ph->
RegisterProcess
(
new
G4eplusAnnihilation
(), particle);
117
118
}
else
if
(particleName ==
"mu+"
||
119
particleName ==
"mu-"
) {
120
121
ph->
RegisterProcess
(
new
G4MuMultipleScattering
(), particle);
122
ph->
RegisterProcess
(
new
G4MuIonisation
, particle);
123
ph->
RegisterProcess
(
new
G4MuBremsstrahlung
(), particle);
124
ph->
RegisterProcess
(
new
G4MuPairProduction
(), particle);
125
126
}
else
if
( particleName ==
"proton"
||
127
particleName ==
"pi-"
||
128
particleName ==
"pi+"
) {
129
130
ph->
RegisterProcess
(
new
G4hMultipleScattering
(), particle);
131
ph->
RegisterProcess
(
new
G4hIonisation
, particle);
132
133
}
else
if
( particleName ==
"alpha"
||
134
particleName ==
"He3"
) {
135
136
ph->
RegisterProcess
(
new
G4hMultipleScattering
(), particle);
137
ph->
RegisterProcess
(
new
G4ionIonisation
, particle);
138
ph->
RegisterProcess
(
new
G4NuclearStopping
(), particle);
139
140
}
else
if
( particleName ==
"GenericIon"
) {
141
142
ph->
RegisterProcess
(
new
G4hMultipleScattering
(), particle);
143
G4ionIonisation
* ionIoni =
new
G4ionIonisation
();
144
ionIoni->
SetEmModel
(
new
G4IonParametrisedLossModel
());
145
ph->
RegisterProcess
(ionIoni, particle);
146
ph->
RegisterProcess
(
new
G4NuclearStopping
(), particle);
147
148
}
else
if
((!particle->
IsShortLived
()) &&
149
(particle->
GetPDGCharge
() != 0.0) &&
150
(particle->
GetParticleName
() !=
"chargedgeantino"
)) {
151
152
//all others charged particles except geantino
153
ph->
RegisterProcess
(
new
G4hMultipleScattering
(), particle);
154
ph->
RegisterProcess
(
new
G4hIonisation
(), particle);
155
}
156
}
157
}
158
159
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
160
G4hMultipleScattering.hh
name
const XML_Char * name
Definition:
expat.h:151
G4eIonisation.hh
G4IonParametrisedLossModel.hh
G4EmParameters::SetVerbose
void SetVerbose(G4int val)
Definition:
G4EmParameters.cc:724
mm
static constexpr double mm
Definition:
G4SIunits.hh:115
G4PhotoElectricEffect
Definition:
G4PhotoElectricEffect.hh:79
ElectromagneticPhysics::~ElectromagneticPhysics
~ElectromagneticPhysics()
Definition:
ElectromagneticPhysics.cc:82
G4ComptonScattering.hh
G4hBremsstrahlung.hh
ElectromagneticPhysics::ElectromagneticPhysics
ElectromagneticPhysics(const G4String &name="standard")
Definition:
ElectromagneticPhysics.cc:68
G4hIonisation.hh
G4NuclearStopping.hh
G4MuPairProduction.hh
G4hPairProduction.hh
G4eMultipleScattering.hh
G4ComptonScattering
Definition:
G4ComptonScattering.hh:71
G4MuIonisation.hh
G4PhysicsListHelper.hh
G4BuilderType.hh
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:72
G4EmParameters::SetStepFunctionMuHad
void SetStepFunctionMuHad(G4double v1, G4double v2)
Definition:
G4EmParameters.cc:672
G4MuBremsstrahlung.hh
G4ParticleDefinition::GetParticleName
const G4String & GetParticleName() const
Definition:
G4ParticleDefinition.hh:120
G4ionIonisation.hh
G4VPhysicsConstructor::GetParticleIterator
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
Definition:
G4VPhysicsConstructor.cc:78
ElectromagneticPhysics::ConstructProcess
virtual void ConstructProcess()
Definition:
ElectromagneticPhysics.cc:87
G4GammaConversion
Definition:
G4GammaConversion.hh:75
G4GammaConversion.hh
G4EmParameters
Definition:
G4EmParameters.hh:72
G4MuMultipleScattering
Definition:
G4MuMultipleScattering.hh:61
G4PhysicsListHelper::RegisterProcess
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
Definition:
G4PhysicsListHelper.cc:413
G4IonParametrisedLossModel
Definition:
G4IonParametrisedLossModel.hh:93
G4EmParameters::SetDefaults
void SetDefaults()
Definition:
G4EmParameters.cc:96
G4NuclearStopping
Definition:
G4NuclearStopping.hh:64
G4ProcessManager.hh
G4ParticleDefinition.hh
G4PhotoElectricEffect.hh
G4ionIonisation
Definition:
G4ionIonisation.hh:78
G4MuBremsstrahlung
Definition:
G4MuBremsstrahlung.hh:78
G4MuIonisation
Definition:
G4MuIonisation.hh:85
bElectromagnetic
Definition:
G4BuilderType.hh:48
G4ParticleDefinition::IsShortLived
G4bool IsShortLived() const
Definition:
G4ParticleDefinition.hh:157
G4RayleighScattering.hh
G4eBremsstrahlung
Definition:
G4eBremsstrahlung.hh:81
G4MuMultipleScattering.hh
G4eIonisation
Definition:
G4eIonisation.hh:80
G4eplusAnnihilation.hh
G4PhysicsListHelper::GetPhysicsListHelper
static G4PhysicsListHelper * GetPhysicsListHelper()
Definition:
G4PhysicsListHelper.cc:89
G4EmParameters::Instance
static G4EmParameters * Instance()
Definition:
G4EmParameters.cc:67
G4VEnergyLossProcess::SetEmModel
void SetEmModel(G4VEmModel *, G4int index=1)
Definition:
G4VEnergyLossProcess.cc:409
G4MuPairProduction
Definition:
G4MuPairProduction.hh:74
particleIterator
std::vector< G4InuclElementaryParticle >::iterator particleIterator
Definition:
G4BigBanger.cc:65
G4eBremsstrahlung.hh
G4eplusAnnihilation
Definition:
G4eplusAnnihilation.hh:65
G4eMultipleScattering
Definition:
G4eMultipleScattering.hh:60
G4hMultipleScattering
Definition:
G4hMultipleScattering.hh:62
G4PhysicsListHelper
Definition:
G4PhysicsListHelper.hh:50
G4SystemOfUnits.hh
G4ParticleDefinition::GetPDGCharge
G4double GetPDGCharge() const
Definition:
G4ParticleDefinition.hh:124
G4VPhysicsConstructor::SetPhysicsType
void SetPhysicsType(G4int)
Definition:
G4VPhysicsConstructor.hh:200
G4VPhysicsConstructor
Definition:
G4VPhysicsConstructor.hh:121
G4hIonisation
Definition:
G4hIonisation.hh:85
G4KleinNishinaModel.hh
G4EmParameters::SetStepFunction
void SetStepFunction(G4double v1, G4double v2)
Definition:
G4EmParameters.cc:658
G4String
Definition:
G4String.hh:45
source
geant4.10.03.p03
examples
extended
hadronic
NeutronSource
src
ElectromagneticPhysics.cc
Generated on Tue Nov 28 2017 21:43:51 for Geant4 by
1.8.5