Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
examples
extended
electromagnetic
TestEm4
src
examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc
이 파일의 문서화 페이지로 가기
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
G4PhotoElectricEffect.hh
G4eplusAnnihilation.hh
mm
static constexpr double mm
Definition:
G4SIunits.hh:115
G4endl
#define G4endl
Definition:
G4ios.hh:61
G4ParticleDefinition::GetParticleName
const G4String & GetParticleName() const
Definition:
G4ParticleDefinition.hh:121
G4VModularPhysicsList::verboseLevel
G4int verboseLevel
Definition:
G4VModularPhysicsList.hh:146
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
G4eMultipleScattering
Definition:
G4eMultipleScattering.hh:60
G4ParticleTypes.hh
G4ComptonScattering
Definition:
G4ComptonScattering.hh:71
G4GammaConversion.hh
PhysicsList::ConstructBosons
void ConstructBosons()
Definition:
examples/advanced/microelectronics/src/PhysicsList.cc:64
G4VUserPhysicsList::GetParticleIterator
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
Definition:
G4VUserPhysicsList.cc:978
G4VUserPhysicsList
Definition:
G4VUserPhysicsList.hh:156
PhysicsList::ConstructProcess
void ConstructProcess()
Definition:
environments/g4py/examples/demos/TestEm0/module/PhysicsList.cc:170
G4ProcessManager.hh
PhysicsList::ConstructParticle
void ConstructParticle()
Definition:
environments/g4py/examples/demos/TestEm0/module/PhysicsList.cc:117
G4eplusAnnihilation
Definition:
G4eplusAnnihilation.hh:65
PhysicsList::PhysicsList
PhysicsList()
Implementation of the PhysicsList class.
Definition:
environments/g4py/examples/demos/TestEm0/module/PhysicsList.cc:43
G4eMultipleScattering.hh
PhysicsList::ConstructLeptons
void ConstructLeptons()
Definition:
examples/advanced/microelectronics/src/PhysicsList.cc:71
PhysicsList::SetCuts
void SetCuts()
Definition:
environments/g4py/examples/demos/TestEm0/module/PhysicsList.cc:219
G4eBremsstrahlung.hh
G4SystemOfUnits.hh
G4eIonisation
Definition:
G4eIonisation.hh:80
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:73
G4PhysicsListHelper.hh
G4ParticleTable.hh
PhysicsList::~PhysicsList
~PhysicsList()
Definition:
environments/g4py/examples/demos/TestEm0/module/PhysicsList.cc:65
PhysicsList::ConstructEM
void ConstructEM()
Definition:
examples/advanced/microelectronics/src/PhysicsList.cc:130
G4Electron::ElectronDefinition
static G4Electron * ElectronDefinition()
Definition:
G4Electron.cc:89
G4PhysicsListHelper::RegisterProcess
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
Definition:
G4PhysicsListHelper.cc:413
G4Gamma::GammaDefinition
static G4Gamma * GammaDefinition()
Definition:
G4Gamma.cc:81
G4GenericIon::GenericIonDefinition
static G4GenericIon * GenericIonDefinition()
Definition:
G4GenericIon.cc:88
G4PhysicsListHelper::GetPhysicsListHelper
static G4PhysicsListHelper * GetPhysicsListHelper()
Definition:
G4PhysicsListHelper.cc:89
G4VUserPhysicsList::AddTransportation
void AddTransportation()
Definition:
G4VUserPhysicsList.cc:959
G4VUserPhysicsList::defaultCutValue
G4double defaultCutValue
Definition:
G4VUserPhysicsList.hh:359
G4GammaConversion
Definition:
G4GammaConversion.hh:75
particleIterator
std::vector< G4InuclElementaryParticle >::iterator particleIterator
Definition:
G4BigBanger.cc:65
G4eBremsstrahlung
Definition:
G4eBremsstrahlung.hh:81
G4cout
G4GLOB_DLL std::ostream G4cout
G4VUserPhysicsList::SetCutValue
void SetCutValue(G4double aCut, const G4String &pname)
Definition:
G4VUserPhysicsList.cc:422
G4ComptonScattering.hh
G4ParticleDefinition.hh
G4Positron::PositronDefinition
static G4Positron * PositronDefinition()
Definition:
G4Positron.cc:89
G4eIonisation.hh
G4PhotoElectricEffect
Definition:
G4PhotoElectricEffect.hh:79
G4PhysicsListHelper
Definition:
G4PhysicsListHelper.hh:50
G4VModularPhysicsList::SetVerboseLevel
void SetVerboseLevel(G4int value)
Definition:
G4VModularPhysicsList.cc:374
다음에 의해 생성됨 :
1.8.5