Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
examples
extended
hadronic
Hadr04
src
NeutronHPphysics.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
// $Id: NeutronHPphysics.cc 66587 2012-12-21 11:06:44Z ihrivnac $
30
//
31
32
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33
34
#include "
NeutronHPphysics.hh
"
35
36
#include "NeutronHPMessenger.hh"
37
38
#include "
G4ParticleDefinition.hh
"
39
#include "
G4ProcessManager.hh
"
40
#include "
G4ProcessTable.hh
"
41
42
// Processes
43
44
#include "
G4HadronElasticProcess.hh
"
45
#include "
G4ParticleHPElasticData.hh
"
46
#include "
G4ParticleHPThermalScatteringData.hh
"
47
#include "
G4ParticleHPElastic.hh
"
48
#include "
G4ParticleHPThermalScattering.hh
"
49
50
#include "
G4NeutronInelasticProcess.hh
"
51
#include "
G4ParticleHPInelasticData.hh
"
52
#include "
G4ParticleHPInelastic.hh
"
53
54
#include "
G4HadronCaptureProcess.hh
"
55
#include "
G4ParticleHPCaptureData.hh
"
56
#include "
G4ParticleHPCapture.hh
"
57
58
#include "
G4HadronFissionProcess.hh
"
59
#include "
G4ParticleHPFissionData.hh
"
60
#include "
G4ParticleHPFission.hh
"
61
62
#include "
G4SystemOfUnits.hh
"
63
64
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
65
66
NeutronHPphysics::NeutronHPphysics
(
const
G4String
&
name
)
67
:
G4VPhysicsConstructor
(name), fThermal(true), fNeutronMessenger(0)
68
{
69
fNeutronMessenger
=
new
NeutronHPMessenger
(
this
);
70
}
71
72
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
73
74
NeutronHPphysics::~NeutronHPphysics
()
75
{
76
delete
fNeutronMessenger
;
77
}
78
79
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
80
81
void
NeutronHPphysics::ConstructProcess
()
82
{
83
G4ParticleDefinition
*
neutron
=
G4Neutron::Neutron
();
84
G4ProcessManager
* pManager = neutron->
GetProcessManager
();
85
86
// delete all neutron processes if already registered
87
//
88
G4VProcess
* process = 0;
89
process = pManager->
GetProcess
(
"hadElastic"
);
90
if
(process) pManager->
RemoveProcess
(process);
91
//
92
process = pManager->
GetProcess
(
"neutronInelastic"
);
93
if
(process) pManager->
RemoveProcess
(process);
94
//
95
process = pManager->
GetProcess
(
"nCapture"
);
96
if
(process) pManager->
RemoveProcess
(process);
97
//
98
process = pManager->
GetProcess
(
"nFission"
);
99
if
(process) pManager->
RemoveProcess
(process);
100
101
// (re) create process: elastic
102
//
103
G4HadronElasticProcess
* process1 =
new
G4HadronElasticProcess
();
104
pManager->
AddDiscreteProcess
(process1);
105
//
106
// model1a
107
G4ParticleHPElastic
* model1a =
new
G4ParticleHPElastic
();
108
process1->
RegisterMe
(model1a);
109
process1->
AddDataSet
(
new
G4ParticleHPElasticData
());
110
//
111
// model1b
112
if
(
fThermal
) {
113
model1a->
SetMinEnergy
(4*
eV
);
114
G4ParticleHPThermalScattering
* model1b =
new
G4ParticleHPThermalScattering
();
115
process1->
RegisterMe
(model1b);
116
process1->
AddDataSet
(
new
G4ParticleHPThermalScatteringData
());
117
}
118
119
// (re) create process: inelastic
120
//
121
G4NeutronInelasticProcess
* process2 =
new
G4NeutronInelasticProcess
();
122
pManager->
AddDiscreteProcess
(process2);
123
//
124
// cross section data set
125
G4ParticleHPInelasticData
* dataSet2 =
new
G4ParticleHPInelasticData
();
126
process2->
AddDataSet
(dataSet2);
127
//
128
// models
129
G4ParticleHPInelastic
* model2 =
new
G4ParticleHPInelastic
();
130
process2->
RegisterMe
(model2);
131
132
// (re) create process: nCapture
133
//
134
G4HadronCaptureProcess
* process3 =
new
G4HadronCaptureProcess
();
135
pManager->
AddDiscreteProcess
(process3);
136
//
137
// cross section data set
138
G4ParticleHPCaptureData
* dataSet3 =
new
G4ParticleHPCaptureData
();
139
process3->
AddDataSet
(dataSet3);
140
//
141
// models
142
G4ParticleHPCapture
* model3 =
new
G4ParticleHPCapture
();
143
process3->
RegisterMe
(model3);
144
145
// (re) create process: nFission
146
//
147
G4HadronFissionProcess
* process4 =
new
G4HadronFissionProcess
();
148
pManager->
AddDiscreteProcess
(process4);
149
//
150
// cross section data set
151
G4ParticleHPFissionData
* dataSet4 =
new
G4ParticleHPFissionData
();
152
process4->
AddDataSet
(dataSet4);
153
//
154
// models
155
G4ParticleHPFission
* model4 =
new
G4ParticleHPFission
();
156
process4->
RegisterMe
(model4);
157
}
158
159
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
name
const XML_Char * name
Definition:
expat.h:151
G4ParticleHPInelasticData
Definition:
G4ParticleHPInelasticData.hh:53
G4ProcessManager::GetProcess
G4VProcess * GetProcess(const G4String &) const
Definition:
G4ProcessManager.cc:1105
G4ParticleHPElastic.hh
G4HadronicInteraction::SetMinEnergy
void SetMinEnergy(G4double anEnergy)
Definition:
G4HadronicInteraction.hh:90
G4ParticleHPCapture.hh
G4ParticleHPElastic
Definition:
G4ParticleHPElastic.hh:48
G4ParticleHPInelastic
Definition:
G4ParticleHPInelastic.hh:89
G4ParticleHPFission.hh
G4ProcessManager::AddDiscreteProcess
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4ParticleHPThermalScattering.hh
G4HadronicProcess::RegisterMe
void RegisterMe(G4HadronicInteraction *a)
Definition:
G4HadronicProcess.cc:148
G4ParticleHPInelastic.hh
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
G4HadronElasticProcess
Definition:
G4HadronElasticProcess.hh:50
NeutronHPMessenger
Definition:
hadronic/Hadr04/include/NeutronHPMessenger.hh:46
G4ParticleHPFission
Definition:
G4ParticleHPFission.hh:52
G4HadronCaptureProcess.hh
G4HadronElasticProcess.hh
G4HadronCaptureProcess
Definition:
G4HadronCaptureProcess.hh:52
G4ParticleHPFissionData.hh
G4NeutronInelasticProcess
Definition:
G4NeutronInelasticProcess.hh:44
G4ProcessManager.hh
G4ParticleHPCaptureData
Definition:
G4ParticleHPCaptureData.hh:51
G4SystemOfUnits.hh
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:73
eV
static constexpr double eV
Definition:
G4SIunits.hh:215
G4ParticleHPFissionData
Definition:
G4ParticleHPFissionData.hh:48
G4ParticleHPCapture
Definition:
G4ParticleHPCapture.hh:49
G4VPhysicsConstructor
Definition:
G4VPhysicsConstructor.hh:126
G4ParticleHPElasticData
Definition:
G4ParticleHPElasticData.hh:51
NeutronHPphysics::fNeutronMessenger
NeutronHPMessenger * fNeutronMessenger
Definition:
NeutronHPphysics.hh:59
G4HadronFissionProcess.hh
G4ParticleHPCaptureData.hh
G4ParticleHPThermalScattering
Definition:
G4ParticleHPThermalScattering.hh:77
G4HadronicProcess::AddDataSet
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
Definition:
G4HadronicProcess.cc:833
G4ParticleHPElasticData.hh
G4NeutronInelasticProcess.hh
G4Neutron::Neutron
static G4Neutron * Neutron()
Definition:
G4Neutron.cc:104
G4ParticleDefinition::GetProcessManager
G4ProcessManager * GetProcessManager() const
Definition:
G4ParticleDefinition.cc:258
NeutronHPphysics::~NeutronHPphysics
~NeutronHPphysics()
Definition:
NeutronHPphysics.cc:74
G4HadronFissionProcess
Definition:
G4HadronFissionProcess.hh:53
G4ProcessManager::RemoveProcess
G4VProcess * RemoveProcess(G4VProcess *aProcess)
Definition:
G4ProcessManager.cc:582
G4ProcessTable.hh
NeutronHPphysics::ConstructProcess
virtual void ConstructProcess()
Definition:
NeutronHPphysics.cc:81
G4ParticleDefinition.hh
NeutronHPphysics::fThermal
G4bool fThermal
Definition:
NeutronHPphysics.hh:55
G4ParticleHPThermalScatteringData
Definition:
G4ParticleHPThermalScatteringData.hh:61
G4ParticleHPInelasticData.hh
G4ParticleHPThermalScatteringData.hh
G4ProcessManager
Definition:
G4ProcessManager.hh:106
G4VProcess
Definition:
G4VProcess.hh:75
NeutronHPphysics.hh
Definition of the NeutronHPphysics class.
neutron
Definition:
G4DataQuestionaire.hh:35
NeutronHPphysics::NeutronHPphysics
NeutronHPphysics(const G4String &name="neutron")
Definition:
NeutronHPphysics.cc:66
다음에 의해 생성됨 :
1.8.5