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
NeutronHPphysics.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
// $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
G4ProcessTable
* processTable =
G4ProcessTable::GetProcessTable
();
89
G4VProcess
* process = 0;
90
process = processTable->
FindProcess
(
"hadElastic"
, neutron);
91
if
(process) pManager->
RemoveProcess
(process);
92
//
93
process = processTable->
FindProcess
(
"neutronInelastic"
, neutron);
94
if
(process) pManager->
RemoveProcess
(process);
95
//
96
process = processTable->
FindProcess
(
"nCapture"
, neutron);
97
if
(process) pManager->
RemoveProcess
(process);
98
//
99
process = processTable->
FindProcess
(
"nFission"
, neutron);
100
if
(process) pManager->
RemoveProcess
(process);
101
102
// (re) create process: elastic
103
//
104
G4HadronElasticProcess
* process1 =
new
G4HadronElasticProcess
();
105
pManager->
AddDiscreteProcess
(process1);
106
//
107
// model1a
108
G4ParticleHPElastic
* model1a =
new
G4ParticleHPElastic
();
109
process1->
RegisterMe
(model1a);
110
process1->
AddDataSet
(
new
G4ParticleHPElasticData
());
111
//
112
// model1b
113
if
(fThermal) {
114
model1a->
SetMinEnergy
(4*
eV
);
115
G4ParticleHPThermalScattering
* model1b =
new
G4ParticleHPThermalScattering
();
116
process1->
RegisterMe
(model1b);
117
process1->
AddDataSet
(
new
G4ParticleHPThermalScatteringData
());
118
}
119
120
// (re) create process: inelastic
121
//
122
G4NeutronInelasticProcess
* process2 =
new
G4NeutronInelasticProcess
();
123
pManager->
AddDiscreteProcess
(process2);
124
//
125
// cross section data set
126
G4ParticleHPInelasticData
* dataSet2 =
new
G4ParticleHPInelasticData
();
127
process2->
AddDataSet
(dataSet2);
128
//
129
// models
130
G4ParticleHPInelastic
* model2 =
new
G4ParticleHPInelastic
();
131
process2->
RegisterMe
(model2);
132
133
// (re) create process: nCapture
134
//
135
G4HadronCaptureProcess
* process3 =
new
G4HadronCaptureProcess
();
136
pManager->
AddDiscreteProcess
(process3);
137
//
138
// cross section data set
139
G4ParticleHPCaptureData
* dataSet3 =
new
G4ParticleHPCaptureData
();
140
process3->
AddDataSet
(dataSet3);
141
//
142
// models
143
G4ParticleHPCapture
* model3 =
new
G4ParticleHPCapture
();
144
process3->
RegisterMe
(model3);
145
146
// (re) create process: nFission
147
//
148
G4HadronFissionProcess
* process4 =
new
G4HadronFissionProcess
();
149
pManager->
AddDiscreteProcess
(process4);
150
//
151
// cross section data set
152
G4ParticleHPFissionData
* dataSet4 =
new
G4ParticleHPFissionData
();
153
process4->
AddDataSet
(dataSet4);
154
//
155
// models
156
G4ParticleHPFission
* model4 =
new
G4ParticleHPFission
();
157
process4->
RegisterMe
(model4);
158
}
159
160
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4ProcessTable.hh
name
const XML_Char * name
Definition:
expat.h:151
NeutronHPMessenger
Definition:
NeutronHPMessenger.hh:46
G4HadronFissionProcess
Definition:
G4HadronFissionProcess.hh:53
G4ParticleHPInelastic.hh
NeutronHPphysics::NeutronHPphysics
NeutronHPphysics(const G4String &name="neutron")
Definition:
NeutronHPphysics.cc:66
G4ParticleHPElasticData
Definition:
G4ParticleHPElasticData.hh:51
G4HadronElasticProcess
Definition:
G4HadronElasticProcess.hh:50
G4ParticleHPCapture.hh
NeutronHPphysics::ConstructProcess
virtual void ConstructProcess()
Definition:
NeutronHPphysics.cc:81
G4ProcessManager::AddDiscreteProcess
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4ParticleHPCaptureData
Definition:
G4ParticleHPCaptureData.hh:51
G4ParticleHPFission.hh
G4ParticleHPInelasticData.hh
NeutronHPphysics::~NeutronHPphysics
~NeutronHPphysics()
Definition:
NeutronHPphysics.cc:74
neutron
Definition:
G4DataQuestionaire.hh:35
G4NeutronInelasticProcess.hh
G4ParticleHPThermalScattering
Definition:
G4ParticleHPThermalScattering.hh:77
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:72
G4ParticleHPThermalScatteringData
Definition:
G4ParticleHPThermalScatteringData.hh:61
G4HadronCaptureProcess
Definition:
G4HadronCaptureProcess.hh:52
G4VProcess
Definition:
G4VProcess.hh:75
G4HadronFissionProcess.hh
G4HadronicProcess::RegisterMe
void RegisterMe(G4HadronicInteraction *a)
Definition:
G4HadronicProcess.cc:153
G4ProcessTable
Definition:
G4ProcessTable.hh:59
G4HadronicInteraction::SetMinEnergy
void SetMinEnergy(G4double anEnergy)
Definition:
G4HadronicInteraction.hh:90
G4ParticleHPCapture
Definition:
G4ParticleHPCapture.hh:49
G4HadronicProcess::AddDataSet
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
Definition:
G4HadronicProcess.hh:111
G4ParticleHPInelasticData
Definition:
G4ParticleHPInelasticData.hh:53
G4ParticleHPInelastic
Definition:
G4ParticleHPInelastic.hh:89
G4ParticleHPFissionData.hh
eV
static constexpr double eV
Definition:
G4SIunits.hh:215
G4ProcessManager.hh
G4ParticleDefinition.hh
G4Neutron::Neutron
static G4Neutron * Neutron()
Definition:
G4Neutron.cc:104
G4ParticleHPFission
Definition:
G4ParticleHPFission.hh:52
G4ParticleHPThermalScatteringData.hh
G4ParticleHPCaptureData.hh
G4ParticleHPFissionData
Definition:
G4ParticleHPFissionData.hh:48
G4ParticleHPElastic
Definition:
G4ParticleHPElastic.hh:48
G4ParticleDefinition::GetProcessManager
G4ProcessManager * GetProcessManager() const
Definition:
G4ParticleDefinition.cc:247
G4ParticleHPThermalScattering.hh
G4NeutronInelasticProcess
Definition:
G4NeutronInelasticProcess.hh:44
G4ParticleHPElasticData.hh
G4ParticleHPElastic.hh
NeutronHPphysics.hh
Definition of the NeutronHPphysics class.
G4ProcessManager
Definition:
G4ProcessManager.hh:106
G4SystemOfUnits.hh
G4HadronElasticProcess.hh
G4ProcessManager::RemoveProcess
G4VProcess * RemoveProcess(G4VProcess *aProcess)
Definition:
G4ProcessManager.cc:582
G4ProcessTable::GetProcessTable
static G4ProcessTable * GetProcessTable()
Definition:
G4ProcessTable.cc:152
G4VPhysicsConstructor
Definition:
G4VPhysicsConstructor.hh:121
G4HadronCaptureProcess.hh
G4ProcessTable::FindProcess
G4VProcess * FindProcess(const G4String &processName, const G4String &particleName) const
G4String
Definition:
G4String.hh:45
source
geant4.10.03.p03
examples
extended
hadronic
Hadr04
src
NeutronHPphysics.cc
Generated on Tue Nov 28 2017 21:43:50 for Geant4 by
1.8.5