ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4HadronPhysicsQGSP_BIC.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4HadronPhysicsQGSP_BIC.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
//
26
//
27
//---------------------------------------------------------------------------
28
//
29
// ClassName: G4HadronPhysicsQGSP_BIC
30
//
31
// Author: 2002 J.P. Wellisch
32
//
33
// Modified:
34
// 23.11.2005 G.Folger: migration to non static particles
35
// 08.06.2006 V.Ivanchenko: remove stopping
36
// 25.04.2007 G.Folger: Add code for quasielastic
37
// 31.10.2012 A.Ribon: Use G4MiscBuilder
38
// 19.03.2013 A.Ribon: Replace LEP with FTFP and BERT
39
//
40
//----------------------------------------------------------------------------
41
//
42
#include <iomanip>
43
44
#include "
G4HadronPhysicsQGSP_BIC.hh
"
45
46
#include "
G4PiKBuilder.hh
"
47
#include "
G4FTFPPiKBuilder.hh
"
48
#include "
G4QGSPPiKBuilder.hh
"
49
#include "
G4BertiniPiKBuilder.hh
"
50
51
#include "
G4ProtonBuilder.hh
"
52
#include "
G4FTFPProtonBuilder.hh
"
53
#include "
G4QGSPProtonBuilder.hh
"
54
#include "
G4BinaryProtonBuilder.hh
"
55
56
#include "
G4NeutronBuilder.hh
"
57
#include "
G4FTFPNeutronBuilder.hh
"
58
#include "
G4QGSPNeutronBuilder.hh
"
59
#include "
G4BinaryNeutronBuilder.hh
"
60
61
#include "
G4HyperonFTFPBuilder.hh
"
62
#include "
G4AntiBarionBuilder.hh
"
63
#include "
G4FTFPAntiBarionBuilder.hh
"
64
#include "
globals.hh
"
65
#include "
G4ios.hh
"
66
#include "
G4SystemOfUnits.hh
"
67
#include "
G4ParticleDefinition.hh
"
68
#include "
G4ParticleTable.hh
"
69
70
#include "
G4MesonConstructor.hh
"
71
#include "
G4BaryonConstructor.hh
"
72
#include "
G4ShortLivedConstructor.hh
"
73
#include "
G4IonConstructor.hh
"
74
75
#include "
G4HadronCaptureProcess.hh
"
76
#include "
G4NeutronRadCapture.hh
"
77
#include "
G4NeutronInelasticXS.hh
"
78
#include "
G4NeutronCaptureXS.hh
"
79
80
#include "
G4PhysListUtil.hh
"
81
#include "
G4HadronicParameters.hh
"
82
83
#include "
G4PhysicsConstructorFactory.hh
"
84
85
G4_DECLARE_PHYSCONSTR_FACTORY
(
G4HadronPhysicsQGSP_BIC
);
86
87
G4HadronPhysicsQGSP_BIC::G4HadronPhysicsQGSP_BIC
(
G4int
)
88
:
G4HadronPhysicsQGSP_BIC
(
"hInelastic QGSP_BIC"
,
true
)
89
{}
90
91
G4HadronPhysicsQGSP_BIC::G4HadronPhysicsQGSP_BIC
(
const
G4String
&
name
,
G4bool
)
92
:
G4VPhysicsConstructor
(name)
93
{
94
QuasiElasticFTF
=
false
;
// Use built-in quasi-elastic (not add-on)
95
QuasiElasticQGS
=
true
;
// For QGS, it must use it.
96
minQGSP_proton
=
minQGSP_neutron
=
minQGSP_pik
=
97
G4HadronicParameters::Instance
()->
GetMinEnergyTransitionQGS_FTF
();
98
maxFTFP_proton
=
maxFTFP_neutron
=
maxFTFP_pik
=
99
G4HadronicParameters::Instance
()->
GetMaxEnergyTransitionQGS_FTF
();
100
minFTFP_proton
=
minFTFP_neutron
=
minFTFP_pik
=
101
G4HadronicParameters::Instance
()->
GetMinEnergyTransitionFTF_Cascade
();
102
maxBIC_proton
=
maxBIC_neutron
=
maxBERT_pik
=
103
G4HadronicParameters::Instance
()->
GetMaxEnergyTransitionFTF_Cascade
();
104
}
105
106
void
G4HadronPhysicsQGSP_BIC::CreateModels
()
107
{
108
Neutron
();
109
Proton
();
110
Pion
();
111
Kaon
();
112
Others
();
113
}
114
115
void
G4HadronPhysicsQGSP_BIC::Neutron
()
116
{
117
auto
neu
=
new
G4NeutronBuilder
;
118
AddBuilder
(
neu
);
119
auto
qgs =
new
G4QGSPNeutronBuilder
(
QuasiElasticQGS
);
120
AddBuilder
(qgs);
121
qgs->SetMinEnergy(
minQGSP_neutron
);
122
neu
->RegisterMe(qgs);
123
auto
ftf =
new
G4FTFPNeutronBuilder
(
QuasiElasticFTF
);
124
AddBuilder
(ftf);
125
ftf->SetMinEnergy(
minFTFP_neutron
);
126
ftf->SetMaxEnergy(
maxFTFP_neutron
);
127
neu
->RegisterMe(ftf);
128
auto
bic =
new
G4BinaryNeutronBuilder
;
129
AddBuilder
(bic);
130
bic->SetMaxEnergy(
maxBIC_neutron
);
131
neu
->RegisterMe(bic);
132
neu
->Build();
133
}
134
135
void
G4HadronPhysicsQGSP_BIC::Proton
()
136
{
137
auto
pro
=
new
G4ProtonBuilder
;
138
AddBuilder
(
pro
);
139
auto
qgs =
new
G4QGSPProtonBuilder
(
QuasiElasticQGS
);
140
AddBuilder
(qgs);
141
qgs->SetMinEnergy(
minQGSP_proton
);
142
pro
->RegisterMe(qgs);
143
auto
ftf =
new
G4FTFPProtonBuilder
(
QuasiElasticFTF
);
144
AddBuilder
(ftf);
145
ftf->SetMinEnergy(
minFTFP_proton
);
146
ftf->SetMaxEnergy(
maxFTFP_proton
);
147
pro
->RegisterMe(ftf);
148
auto
bic =
new
G4BinaryProtonBuilder
;
149
AddBuilder
(bic);
150
bic->SetMaxEnergy(
maxBIC_proton
);
151
pro
->RegisterMe(bic);
152
pro
->Build();
153
}
154
155
void
G4HadronPhysicsQGSP_BIC::Pion
()
156
{
157
auto
pik =
new
G4PiKBuilder
;
158
AddBuilder
(pik);
159
auto
qgs =
new
G4QGSPPiKBuilder
(
QuasiElasticQGS
);
160
AddBuilder
(qgs);
161
qgs->SetMinEnergy(
minQGSP_pik
);
162
pik->RegisterMe(qgs);
163
auto
ftf =
new
G4FTFPPiKBuilder
(
QuasiElasticFTF
);
164
AddBuilder
(ftf);
165
ftf->SetMaxEnergy(
maxFTFP_pik
);
166
ftf->SetMinEnergy(
minFTFP_pik
);
167
pik->RegisterMe(ftf);
168
auto
bert =
new
G4BertiniPiKBuilder
;
169
AddBuilder
(bert);
170
bert->SetMaxEnergy(
maxBERT_pik
);
171
pik->RegisterMe(bert);
172
pik->Build();
173
}
174
175
void
G4HadronPhysicsQGSP_BIC::Others
()
176
{
177
auto
hyp =
new
G4HyperonFTFPBuilder
;
178
AddBuilder
(hyp);
179
hyp->Build();
180
auto
abar =
new
G4AntiBarionBuilder
;
181
AddBuilder
(abar);
182
auto
ftf =
new
G4FTFPAntiBarionBuilder
(
QuasiElasticFTF
);
183
AddBuilder
(ftf);
184
abar->RegisterMe(ftf);
185
abar->Build();
186
}
187
188
G4HadronPhysicsQGSP_BIC::~G4HadronPhysicsQGSP_BIC
()
189
{}
190
191
void
G4HadronPhysicsQGSP_BIC::ConstructParticle
()
192
{
193
G4MesonConstructor
pMesonConstructor;
194
pMesonConstructor.
ConstructParticle
();
195
196
G4BaryonConstructor
pBaryonConstructor;
197
pBaryonConstructor.
ConstructParticle
();
198
199
G4ShortLivedConstructor
pShortLivedConstructor;
200
pShortLivedConstructor.
ConstructParticle
();
201
202
G4IonConstructor
pIonConstructor;
203
pIonConstructor.
ConstructParticle
();
204
}
205
206
void
G4HadronPhysicsQGSP_BIC::ConstructProcess
()
207
{
208
if
(
G4Threading::IsMasterThread
()) {
209
DumpBanner
();
210
}
211
CreateModels
();
212
ExtraConfiguration
();
213
}
214
215
void
G4HadronPhysicsQGSP_BIC::ExtraConfiguration
()
216
{
217
// --- Neutrons ---
218
const
G4ParticleDefinition
*
neutron
=
G4Neutron::Neutron
();
219
G4HadronicProcess
* inel =
G4PhysListUtil::FindInelasticProcess
(neutron);
220
if
(inel) { inel->
AddDataSet
(
new
G4NeutronInelasticXS
()); }
221
G4HadronicProcess
* capture =
G4PhysListUtil::FindCaptureProcess
(neutron);
222
if
(capture) {
223
capture->
RegisterMe
(
new
G4NeutronRadCapture
());
224
}
225
}
geant4
tree
geant4-10.6-release
source
physics_lists
constructors
hadron_inelastic
src
G4HadronPhysicsQGSP_BIC.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:27
using
1.8.2 with
ECCE GitHub integration