Import Geant4 10.7.0.beta source tree
This commit is contained in:
@@ -6,12 +6,49 @@
|
||||
|
||||
Hadronic physics-list/constructors/hadron_inelastic History
|
||||
-----------------------------------------------------------
|
||||
This file should be used to briefly summarize all major modifications
|
||||
This file should be used to briefly summarize all major modifications
|
||||
introduced in the code and keeptrack of all tags.
|
||||
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
38-May-2020 Ben Morgan (phys-ctor-hinelastic-V10-06-04)
|
||||
- Remove obsolete GRANULAR_DEPENDENCIES entries
|
||||
|
||||
20-May-2020, Alberto Ribon (phys-ctor-hinelastic-V10-06-03)
|
||||
- G4HadronPhysicsQGSP_BIC_HP, G4HadronPhysicsQGSP_BIC_AllHP : refactoring
|
||||
of these two constructors, consistently with all others.
|
||||
For G4HadronPhysicsQGSP_BIC_HP, the physics remain unchanged;
|
||||
for G4HadronPhysicsQGSP_BIC_AllHP, the physics remain unchanged
|
||||
except for the transition region between Binary and ProtonHP which
|
||||
is now 190-200 MeV (instead than 199-200), as for light ions.
|
||||
|
||||
18-May-2020, Vladimir Ivanchenko (phys-ctor-hinelastic-V10-06-02)
|
||||
- G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BERT,
|
||||
G4HadronPhysicsFTFP_BERT_TRV, G4HadronPhysicsQGSP_FTFP_BERT,
|
||||
G4HadronInelasticQBBC - added b- and c- particle
|
||||
|
||||
07-May-2020, Alberto Ribon (phys-ctor-hinelastic-V10-06-01)
|
||||
- G4HadronPhysicsFTFP_BERT, G4HadronPhysicsFTF_BIC, G4HadronPhysicsINCLXX,
|
||||
G4HadronPhysicsShielding, G4HadronPhysicsShieldingLEND,
|
||||
G4HadronPhysicsQGSP_BERT, G4HadronPhysicsQGS_BIC,
|
||||
G4HadronPhysicsQGSP_BIC, G4HadronPhysicsQGSP_BIC_HP,
|
||||
G4HadronPhysicsQGSP_BIC_AllHP : in all the inelastic physics constructors
|
||||
which were using the builder G4HyperonFTFPBuilder, introduce the new
|
||||
builder G4HyperonBuilder; moreover, the new builder G4HyperonQGSPBuilder
|
||||
is used now in all QGS-based inelastic physics constructor for hyperons
|
||||
(and anti-hyperons) at high energies (while keeping using
|
||||
G4HyperonFTFPBuilder at lower energies).
|
||||
|
||||
05-May-2020, Alberto Ribon (phys-ctor-hinelastic-V10-06-00)
|
||||
- G4HadronPhysicsQGSP_BERT, G4HadronPhysicsQGSP_BIC, G4HadronPhysicsQGS_BIC,
|
||||
G4HadronPhysicsINCLXX, G4HadronPhysicsQGSP_BIC_HP,
|
||||
G4HadronPhysicsQGSP_BIC_AllHP : use the new builder class
|
||||
G4QGSPAntiBarionBuilder to handle anti_proton and anti_neutron
|
||||
at high energies with QGSP.
|
||||
(For the light anti-ions - anti_deuteron, anti_triton, anti_He3, and
|
||||
anti_alpha - currently QGSP cannot handle them, therefore FTFP is
|
||||
used.)
|
||||
|
||||
29-November-2019, Alberto Ribon (phys-ctor-hinelastic-V10-05-03)
|
||||
- Update of the only README file.
|
||||
@@ -23,10 +60,10 @@ introduced in the code and keeptrack of all tags.
|
||||
- G4HadronInelasticFTFQGSP_BERT, G4HadronInelasticQBBC : use Glauber-Gribov
|
||||
inelastic cross sections (instead of Chips ones) for hyperons and
|
||||
anti-hyperons.
|
||||
- G4HadronPhysicsFTF_BIC, G4HadronPhysicsFTFP_BERT_HP,
|
||||
- G4HadronPhysicsFTF_BIC, G4HadronPhysicsFTFP_BERT_HP,
|
||||
G4HadronPhysicsFTFP_BERT_TRV, G4HadronPhysicsFTFQGSP_BERT,
|
||||
G4HadronPhysicsQGS_BIC, G4HadronPhysicsQGSP_BERT,
|
||||
G4HadronPhysicsQGSP_BERT_HP, G4HadronPhysicsQGSP_BIC,
|
||||
G4HadronPhysicsQGSP_BERT_HP, G4HadronPhysicsQGSP_BIC,
|
||||
G4HadronPhysicsQGSP_BIC_HP, G4HadronPhysicsQGSP_BIC_AllHP,
|
||||
G4HadronInelasticQBBC, G4HadronPhysicsINCLXX : removed special treatment
|
||||
of hadronic inelastic cross sections of kaons (now default).
|
||||
@@ -65,7 +102,7 @@ introduced in the code and keeptrack of all tags.
|
||||
- G4HadronInelasticQBBC - removed statics class memebers
|
||||
|
||||
06-August-2018, Alberto Ribon (phys-ctor-hinelastic-V10-04-08)
|
||||
- G4HadronPhysicsFTFP_BERT_HP, G4HadronPhysicsINCLXX,
|
||||
- G4HadronPhysicsFTFP_BERT_HP, G4HadronPhysicsINCLXX,
|
||||
G4HadronPhysicsShielding, G4HadronPhysicsQGSP_BIC_AllHP,
|
||||
G4HadronPhysicsNuBeam, G4HadronPhysicsShieldingLEND,
|
||||
G4HadronPhysicsQGSP_BERT_HP, G4HadronPhysicsQGSP_BIC_HP,
|
||||
@@ -74,7 +111,7 @@ introduced in the code and keeptrack of all tags.
|
||||
the one from G4HadronicParameters .
|
||||
|
||||
28-July-2018, Vladimir Ivantchenko (phys-ctor-hinelastic-V10-04-07)
|
||||
- in all hadronic builders implement fix for #2057, remove possible
|
||||
- in all hadronic builders implement fix for #2057, remove possible
|
||||
double deletion of objects end of run
|
||||
|
||||
25-July-2018, Alberto Ribon (phys-ctor-hinelastic-V10-04-06)
|
||||
@@ -84,8 +121,8 @@ introduced in the code and keeptrack of all tags.
|
||||
|
||||
21-July-2018, Vladimir Ivantchenko (phys-ctor-hinelastic-V10-04-05)
|
||||
- G4VHadronPhysics - added extra method
|
||||
- G4HadronInelasticQBBC, G4HadronPhysicsFTFP_BERT,
|
||||
G4HadronPhysicsQGSP_BIC_AllHP, G4HadronPhysicsQGS_BIC - do not fill
|
||||
- G4HadronInelasticQBBC, G4HadronPhysicsFTFP_BERT,
|
||||
G4HadronPhysicsQGSP_BIC_AllHP, G4HadronPhysicsQGS_BIC - do not fill
|
||||
internal structure for cross sections
|
||||
|
||||
20-July-2018, Vladimir Ivantchenko (phys-ctor-hinelastic-V10-04-04)
|
||||
@@ -109,17 +146,17 @@ introduced in the code and keeptrack of all tags.
|
||||
- G4HadronInelasticQBBC - use G4ParticleInelasticXS both for neutrons
|
||||
and protons
|
||||
|
||||
7-Nov-2017, Tatsumi Koi (phys-ctor-hinelastic-V10-03-06)
|
||||
7-Nov-2017, Tatsumi Koi (phys-ctor-hinelastic-V10-03-06)
|
||||
- Adding G4HadronPhysicsShieldingLEND
|
||||
|
||||
6-Nov-2017, Tatsumi Koi (phys-ctor-hinelastic-V10-03-05)
|
||||
6-Nov-2017, Tatsumi Koi (phys-ctor-hinelastic-V10-03-05)
|
||||
- Fix registration of cross section data set in G4HadronPhysicsShielding
|
||||
|
||||
16-Oct-2017, Alberto Ribon (phys-ctor-hinelastic-V10-03-04)
|
||||
16-Oct-2017, Alberto Ribon (phys-ctor-hinelastic-V10-03-04)
|
||||
- G4HadronPhysicsFTFQGSP_BERT : fixing trivial compiler warnings
|
||||
of the previous tag.
|
||||
|
||||
16-Oct-2017, Alberto Ribon (phys-ctor-hinelastic-V10-03-03)
|
||||
16-Oct-2017, Alberto Ribon (phys-ctor-hinelastic-V10-03-03)
|
||||
- G4HadronPhysicsFTFQGSP_BERT : new hadron physics similar to
|
||||
G4HadronPhysicsFTFP_BERT, but with QGS fragmentation of strings
|
||||
(instead of the Lund string fragmentation).
|
||||
@@ -134,7 +171,7 @@ introduced in the code and keeptrack of all tags.
|
||||
- Refactoring of code of FTFP_BERT and register physics builders
|
||||
|
||||
09-Feb-2017, Makoto Asai (phys-ctor-hinelastic-V10-03-00)
|
||||
- Print-out of the transition energy region between FTFP and BERT
|
||||
- Print-out of the transition energy region between FTFP and BERT
|
||||
in the physics lists FTFP_BERT_HP and G4HadronPhysicsFTFP_BERT_HP
|
||||
is made only for the master thread.
|
||||
|
||||
@@ -153,7 +190,7 @@ introduced in the code and keeptrack of all tags.
|
||||
- G4HadronPhysicsFTFP_BERT : changed the transition energy region
|
||||
between FTFP and BERT in the physics list FTFP_BERT : now it is
|
||||
between [2, 6] GeV.
|
||||
|
||||
|
||||
18-Nov-2016, Alberto Ribon (phys-ctor-hinelastic-V10-02-07)
|
||||
- G4HadronPhysicsFTFP_BERT : changed the transition energy region
|
||||
between FTFP and BERT in the physics list FTFP_BERT : now it is
|
||||
@@ -170,7 +207,7 @@ introduced in the code and keeptrack of all tags.
|
||||
fix required by clang39 on Windows and MAC
|
||||
|
||||
30-Aug-2016, V.Ivanchenko (phys-ctor-hinelastic-V10-02-03)
|
||||
- G4HadronPhysicsQBBC : use G4 de-excitation for the Bertini cascade
|
||||
- G4HadronPhysicsQBBC : use G4 de-excitation for the Bertini cascade
|
||||
|
||||
26-May-2016, A. Ribon (phys-ctor-hinelastic-V10-02-02)
|
||||
- G4HadronPhysicsQGSP_BIC_AllHP : treat only proton with ParticleHP in
|
||||
@@ -205,7 +242,7 @@ introduced in the code and keeptrack of all tags.
|
||||
|
||||
12-Jun-2015, V.Ivanchenko (phys-ctor-hinelastic-V10-01-01)
|
||||
- G4HadronInelasticQBBC - reduced upper limit of Bertini from 12 to 4 GeV;
|
||||
use BGG inelastic cross section for pions
|
||||
use BGG inelastic cross section for pions
|
||||
|
||||
30-Mar-2015, A. Ribon (phys-ctor-hinelastic-V10-01-00)
|
||||
- G4HadronPhysicsFTFP_BERT_TRV: changed the transition region between
|
||||
@@ -215,7 +252,7 @@ introduced in the code and keeptrack of all tags.
|
||||
- Add G4HadronPhysicsQGSP_BIC_AllHP for particle_hp physics list
|
||||
|
||||
30-Oct-2014, Andrea Dotti (phys-ctor-hinelastic-V10-00-07)
|
||||
- Fix in destructor of G4VHadronPhysics to check validity of pointer.
|
||||
- Fix in destructor of G4VHadronPhysics to check validity of pointer.
|
||||
|
||||
30-Oct-2014, Julia Yarba (phys-ctor-hinelastic-V10-00-06)
|
||||
- In G4HadronPhysicsNuBeam, adjust bertini-ftf overlap from 7-10GeV to 3-3.5GeV
|
||||
@@ -274,14 +311,14 @@ introduced in the code and keeptrack of all tags.
|
||||
- Fixed compilation warnings (unused QuasiElastic).
|
||||
|
||||
12-Jun-2013, Gunter Folger (phys-ctor-hinelastic-V09-06-12)
|
||||
- in G4HadronPhysicsINCLXX.cc initialise pointers to optinal parts of
|
||||
- in G4HadronPhysicsINCLXX.cc initialise pointers to optinal parts of
|
||||
physics to 0 to protect deletion of uninitialised pointer.
|
||||
|
||||
11-Jun-2013, Alberto Ribon (phys-ctor-hinelastic-V09-06-11)
|
||||
- Improved use of kaon cross sections in G4HadronPhysicsShielding.
|
||||
- Improved use of kaon cross sections in G4HadronPhysicsShielding.
|
||||
|
||||
09-Jun-2013, Andrea Dotti (phys-ctor-hinelastic-V09-06-10)
|
||||
- Fix for MT, make private data members TLS.
|
||||
- Fix for MT, make private data members TLS.
|
||||
|
||||
29-Mar-2013, Andrea Dotti (phys-ctor-hinelastic-V09-06-09)
|
||||
- Changes needed for MT: now G4VUserPhysicsList is a split class
|
||||
@@ -307,7 +344,7 @@ introduced in the code and keeptrack of all tags.
|
||||
|
||||
27-Feb-2013, Vladimir Ivanchenko (phys-ctor-hinelastic-V09-06-03)
|
||||
- G4HadronPhysicsFTFP_BERT, G4HadronPhysicsFTFP_BERT_HP - comment out
|
||||
unused members of the class to fix warning from the clang compiler
|
||||
unused members of the class to fix warning from the clang compiler
|
||||
on MacOS
|
||||
|
||||
22-Feb-2013, Davide Mancusi (phys-ctor-hinelastic-V09-06-02)
|
||||
@@ -319,5 +356,5 @@ introduced in the code and keeptrack of all tags.
|
||||
- GNUmakefile fixed - G4LIB_BUILD_EXPAT is added
|
||||
|
||||
10-Jan-2012, Gunter Folger (phys-ctor-hinelastic-V09-06-00)
|
||||
- new directory structure introduced.
|
||||
- new directory structure introduced.
|
||||
constructors/hadron_inelastic classes
|
||||
|
||||
@@ -127,13 +127,16 @@
|
||||
- final-state: QGSP > 14 GeV; BERT < 15 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3, anti_alpha inelastic:
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- anti_proton and anti_neutron inelastic:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; FTFP < 25 GeV
|
||||
- anti_deuteron, anti_triton, anti_He3, and anti_alpha inelastic:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- final-state: QGSP > 12 GeV; FTFP < 25 GeV
|
||||
Note: it is possible to specify in the constructor the use of FTFP instead
|
||||
of QGSP for proton, neutron, charged pions and kaons;
|
||||
moreover, NeutronHP can also be activated in the constructor, in which
|
||||
@@ -172,13 +175,16 @@
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3, anti_alpha inelastic:
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- anti_proton and anti_neutron inelastic:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; FTFP < 25 GeV
|
||||
- anti_deuteron, anti_triton, anti_He3, and anti_alpha inelastic:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- final-state: QGSP > 12 GeV; FTFP < 25 GeV
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_BERT_HP
|
||||
@@ -217,13 +223,16 @@
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3, anti_alpha inelastic:
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- anti_proton and anti_neutron inelastic:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; FTFP < 25 GeV
|
||||
- anti_deuteron, anti_triton, anti_He3, and anti_alpha inelastic:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- final-state: QGSP > 12 GeV; FTFP < 25 GeV
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_HP
|
||||
@@ -244,13 +253,13 @@
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_AllHP
|
||||
-----------------------------
|
||||
Similar to G4HadronPhysicsQGSP_BIC_HP with the only difference for proton
|
||||
and light ions (d, t, He3, alpha):
|
||||
Similar to G4HadronPhysicsQGSP_BIC_HP, but with a different treatment of
|
||||
low-energy protons:
|
||||
ParticleHP is used (for both cross section and final state) below 200 MeV;
|
||||
above it: Barashenkov-Glauber-Gribov inelastic cross section;
|
||||
final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; 199 MeV < BIC < 6 GeV.
|
||||
final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; 190 MeV < BIC < 6 GeV.
|
||||
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_FTFP_BERT
|
||||
-----------------------------
|
||||
Currently it is the same as QGSP_BERT (this was not the case before G4 10.6).
|
||||
@@ -290,13 +299,13 @@
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3, anti_alpha inelastic:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- final-state: QGSP > 12 GeV; FTFP < 25 GeV
|
||||
Moreover, RadioactiveDecay is activated (as in all the physics lists that use HP).
|
||||
Note: the variant "M" of the Shielding physics list has a transition region
|
||||
between FTFP and BERT - for proton, neutron, pions and kaons - between
|
||||
|
||||
+10
-77
@@ -25,89 +25,22 @@
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4HadronPhysicsQGSP_BIC_AllHP_h
|
||||
#define G4HadronPhysicsQGSP_BIC_AllHP_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4FTFPPiKBuilder.hh"
|
||||
#include "G4QGSPPiKBuilder.hh"
|
||||
#include "G4BertiniPiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4FTFPProtonBuilder.hh"
|
||||
#include "G4QGSPProtonBuilder.hh"
|
||||
#include "G4BinaryProtonBuilder.hh"
|
||||
#include "G4ProtonPHPBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4QGSPNeutronBuilder.hh"
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
#include "G4NeutronPHPBuilder.hh"
|
||||
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
#include "G4HadronPhysicsQGSP_BIC_HP.hh"
|
||||
|
||||
|
||||
class G4ComponentGGHadronNucleusXsc;
|
||||
|
||||
|
||||
class G4HadronPhysicsQGSP_BIC_AllHP : public G4VPhysicsConstructor
|
||||
{
|
||||
class G4HadronPhysicsQGSP_BIC_AllHP : public G4HadronPhysicsQGSP_BIC_HP {
|
||||
public:
|
||||
G4HadronPhysicsQGSP_BIC_AllHP(G4int verbose =1);
|
||||
G4HadronPhysicsQGSP_BIC_AllHP(const G4String& name, G4bool quasiElastic=true);
|
||||
virtual ~G4HadronPhysicsQGSP_BIC_AllHP();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
void CreateModels();
|
||||
|
||||
const G4double maxFTFP = G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF();
|
||||
const G4double minFTFP = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
const G4double maxBIC = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
const G4double maxBERT = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
const G4double minBIC_neutron = 19.9*CLHEP::MeV;
|
||||
const G4double maxHP_neutron = 20.0*CLHEP::MeV;
|
||||
const G4double minBIC_proton = 199.0*CLHEP::MeV;
|
||||
const G4double maxHP_proton = 200.0*CLHEP::MeV;
|
||||
|
||||
struct ThreadPrivate {
|
||||
G4NeutronBuilder * theNeutrons;
|
||||
G4FTFPNeutronBuilder * theFTFPNeutron;
|
||||
G4QGSPNeutronBuilder * theQGSPNeutron;
|
||||
G4BinaryNeutronBuilder * theBinaryNeutron;
|
||||
G4NeutronPHPBuilder * thePHPNeutron;
|
||||
|
||||
G4PiKBuilder * thePiK;
|
||||
G4FTFPPiKBuilder * theFTFPPiK;
|
||||
G4QGSPPiKBuilder * theQGSPPiK;
|
||||
G4BertiniPiKBuilder * theBertiniPiK;
|
||||
|
||||
G4ProtonBuilder * thePro;
|
||||
G4FTFPProtonBuilder * theFTFPPro;
|
||||
G4QGSPProtonBuilder * theQGSPPro;
|
||||
G4BinaryProtonBuilder * theBinaryPro;
|
||||
G4ProtonPHPBuilder * thePHPProton;
|
||||
|
||||
G4HyperonFTFPBuilder * theHyperon;
|
||||
|
||||
G4AntiBarionBuilder * theAntiBaryon;
|
||||
G4FTFPAntiBarionBuilder * theFTFPAntiBaryon;
|
||||
};
|
||||
static G4ThreadLocal ThreadPrivate* tpdata;
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_AllHP( G4int verbose = 1 );
|
||||
G4HadronPhysicsQGSP_BIC_AllHP( const G4String& name, G4bool quasiElastic = true );
|
||||
virtual ~G4HadronPhysicsQGSP_BIC_AllHP() {}
|
||||
protected:
|
||||
virtual void Proton() override;
|
||||
G4double minBIC_proton;
|
||||
G4double maxHP_proton;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+13
-63
@@ -37,77 +37,27 @@
|
||||
// 25.04.2007 G.Folger: Add quasielastic as option, use quasielastic by default
|
||||
// 31.10.2012 A.Ribon: Use G4MiscBuilder
|
||||
// 19.03.2013 A.Ribon: Replace LEP with FTFP and BERT
|
||||
// 05.05.2020 A.Ribon: Use QGSP for antibaryons at high energies
|
||||
// 07.05.2020 A.Ribon: Use QGSP for hyperons (and anti-hyperons) at high energies
|
||||
// 20.05.2020 A.Ribon: Refactoring of the class (keeping same functionalities)
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4HadronPhysicsQGSP_BIC_HP_h
|
||||
#define G4HadronPhysicsQGSP_BIC_HP_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4FTFPPiKBuilder.hh"
|
||||
#include "G4QGSPPiKBuilder.hh"
|
||||
#include "G4BertiniPiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4FTFPProtonBuilder.hh"
|
||||
#include "G4QGSPProtonBuilder.hh"
|
||||
#include "G4BinaryProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4QGSPNeutronBuilder.hh"
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
#include "G4NeutronPHPBuilder.hh"
|
||||
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
|
||||
class G4ComponentGGHadronNucleusXsc;
|
||||
#include "G4HadronPhysicsQGSP_BIC.hh"
|
||||
|
||||
|
||||
class G4HadronPhysicsQGSP_BIC_HP : public G4VPhysicsConstructor
|
||||
{
|
||||
class G4HadronPhysicsQGSP_BIC_HP : public G4HadronPhysicsQGSP_BIC {
|
||||
public:
|
||||
G4HadronPhysicsQGSP_BIC_HP(G4int verbose =1);
|
||||
G4HadronPhysicsQGSP_BIC_HP(const G4String& name, G4bool quasiElastic=true);
|
||||
virtual ~G4HadronPhysicsQGSP_BIC_HP();
|
||||
|
||||
void ConstructParticle() override;
|
||||
void ConstructProcess() override;
|
||||
|
||||
private:
|
||||
void CreateModels();
|
||||
|
||||
struct ThreadPrivate {
|
||||
G4NeutronBuilder * theNeutrons;
|
||||
G4FTFPNeutronBuilder * theFTFPNeutron;
|
||||
G4QGSPNeutronBuilder * theQGSPNeutron;
|
||||
G4BinaryNeutronBuilder * theBinaryNeutron;
|
||||
G4NeutronPHPBuilder * theHPNeutron;
|
||||
|
||||
G4PiKBuilder * thePiK;
|
||||
G4FTFPPiKBuilder * theFTFPPiK;
|
||||
G4QGSPPiKBuilder * theQGSPPiK;
|
||||
G4BertiniPiKBuilder * theBertiniPiK;
|
||||
|
||||
G4ProtonBuilder * thePro;
|
||||
G4FTFPProtonBuilder * theFTFPPro;
|
||||
G4QGSPProtonBuilder * theQGSPPro;
|
||||
G4BinaryProtonBuilder * theBinaryPro;
|
||||
|
||||
G4HyperonFTFPBuilder * theHyperon;
|
||||
|
||||
G4AntiBarionBuilder * theAntiBaryon;
|
||||
G4FTFPAntiBarionBuilder * theFTFPAntiBaryon;
|
||||
};
|
||||
static G4ThreadLocal ThreadPrivate* tpdata;
|
||||
G4HadronPhysicsQGSP_BIC_HP( G4int verbose = 1 );
|
||||
G4HadronPhysicsQGSP_BIC_HP( const G4String& name, G4bool quasiElastic = true );
|
||||
virtual ~G4HadronPhysicsQGSP_BIC_HP() {}
|
||||
protected:
|
||||
virtual void Neutron() override;
|
||||
virtual void ExtraConfiguration() override;
|
||||
G4double minBIC_neutron;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -144,7 +144,6 @@ GEANT4_DEFINE_MODULE(NAME G4phys_ctor_hinelastic
|
||||
G4had_mod_man
|
||||
G4had_mod_util
|
||||
G4had_lept_nuclear
|
||||
G4had_neu_hp
|
||||
G4had_preequ_exciton
|
||||
G4had_string_diff
|
||||
G4had_string_frag
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
#include "G4HadronicInteractionRegistry.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
#include "G4HadronicBuilder.hh"
|
||||
|
||||
// factory
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
@@ -238,4 +239,5 @@ void G4HadronInelasticQBBC::ConstructProcess()
|
||||
hp->AddDataSet(anucxs);
|
||||
}
|
||||
}
|
||||
G4HadronicBuilder::BuildBCHadronsFTFP_BERT();
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
#include "G4BertiniNeutronBuilder.hh"
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
|
||||
#include "G4HyperonBuilder.hh"
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
@@ -78,6 +79,7 @@
|
||||
#include "G4Threading.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
#include "G4HadronicBuilder.hh"
|
||||
|
||||
// factory
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
@@ -135,6 +137,7 @@ void G4HadronPhysicsFTFP_BERT::CreateModels()
|
||||
Pion();
|
||||
Kaon();
|
||||
Others();
|
||||
G4HadronicBuilder::BuildBCHadronsFTFP_BERT();
|
||||
}
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT::Neutron()
|
||||
@@ -205,12 +208,14 @@ void G4HadronPhysicsFTFP_BERT::Kaon()
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT::Others()
|
||||
{
|
||||
//===== Hyperons ====== //
|
||||
auto hyp = new G4HyperonFTFPBuilder;
|
||||
AddBuilder( hyp );
|
||||
// Hyperons (and anti-hyperons)
|
||||
auto hyp = new G4HyperonBuilder;
|
||||
AddBuilder(hyp);
|
||||
auto ftfphyp = new G4HyperonFTFPBuilder;
|
||||
AddBuilder(ftfphyp);
|
||||
hyp->RegisterMe(ftfphyp);
|
||||
hyp->Build();
|
||||
|
||||
///===== Anti-barions==== //
|
||||
// Anti-barions
|
||||
auto abar = new G4AntiBarionBuilder;
|
||||
AddBuilder(abar);
|
||||
auto ftfpabar = new G4FTFPAntiBarionBuilder(QuasiElastic);
|
||||
|
||||
@@ -77,6 +77,7 @@ G4HadronPhysicsFTFP_BERT_TRV::G4HadronPhysicsFTFP_BERT_TRV(const G4String& name,
|
||||
minFTFP_neutron = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_neutron = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
QuasiElastic = false;
|
||||
G4HadronicParameters::Instance()->SetEnableBCParticles(true);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4FTFBinaryNeutronBuilder.hh"
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
#include "G4HyperonBuilder.hh"
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
@@ -167,10 +168,14 @@ void G4HadronPhysicsFTF_BIC::Kaon()
|
||||
|
||||
void G4HadronPhysicsFTF_BIC::Others()
|
||||
{
|
||||
auto hyp = new G4HyperonFTFPBuilder;
|
||||
// Hyperons (and anti-hyperons)
|
||||
auto hyp = new G4HyperonBuilder;
|
||||
AddBuilder(hyp);
|
||||
auto ftfphyp = new G4HyperonFTFPBuilder;
|
||||
AddBuilder(ftfphyp);
|
||||
hyp->RegisterMe(ftfphyp);
|
||||
hyp->Build();
|
||||
|
||||
// Anti-barions
|
||||
auto abar = new G4AntiBarionBuilder;
|
||||
AddBuilder(abar);
|
||||
auto ftfpabar = new G4FTFPAntiBarionBuilder(QuasiElastic);
|
||||
|
||||
@@ -31,6 +31,9 @@
|
||||
// Author: 2011 P. Kaitaniemi
|
||||
//
|
||||
// Modified:
|
||||
// 07.05.2020 A.Ribon: Use eventually QGSP for hyperons (and anti-hyperons)
|
||||
// at high energies
|
||||
// 05.05.2020 A.Ribon: Use eventually QGSP for antibaryons at high energies
|
||||
// 22.05.2014 D. Mancusi: Extend INCL++ to 20 GeV
|
||||
// 19.03.2013 A.Ribon: Replace LEP with FTFP and BERT
|
||||
// 08.03.2013 D. Mancusi: Fix a problem with overlapping model ranges
|
||||
@@ -77,9 +80,12 @@
|
||||
#include "G4INCLXXNeutronBuilder.hh"
|
||||
#include "G4NeutronPHPBuilder.hh"
|
||||
|
||||
#include "G4HyperonBuilder.hh"
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4HyperonQGSPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
#include "G4QGSPAntiBarionBuilder.hh"
|
||||
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
@@ -239,15 +245,34 @@ void G4HadronPhysicsINCLXX::Kaon()
|
||||
|
||||
void G4HadronPhysicsINCLXX::Others()
|
||||
{
|
||||
auto hyp = new G4HyperonFTFPBuilder;
|
||||
// Hyperons (and anti-hyperons)
|
||||
auto hyp = new G4HyperonBuilder;
|
||||
AddBuilder(hyp);
|
||||
hyp->Build();
|
||||
auto ftfphyp = new G4HyperonFTFPBuilder(quasiElasticFTF);
|
||||
AddBuilder(ftfphyp);
|
||||
hyp->RegisterMe(ftfphyp);
|
||||
if (!withFTFP) {
|
||||
ftfphyp->SetMaxEnergy(G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF());
|
||||
auto qgsphyp = new G4HyperonQGSPBuilder(quasiElasticQGS);
|
||||
AddBuilder(qgsphyp);
|
||||
qgsphyp->SetMinEnergy(G4HadronicParameters::Instance()->GetMinEnergyTransitionQGS_FTF());
|
||||
hyp->RegisterMe(qgsphyp);
|
||||
}
|
||||
hyp->Build();
|
||||
|
||||
// Antibaryons
|
||||
auto abar = new G4AntiBarionBuilder;
|
||||
AddBuilder(abar);
|
||||
auto ftfpabar = new G4FTFPAntiBarionBuilder(quasiElasticFTF);
|
||||
AddBuilder(ftfpabar);
|
||||
abar->RegisterMe(ftfpabar);
|
||||
auto ftf = new G4FTFPAntiBarionBuilder(quasiElasticFTF);
|
||||
AddBuilder(ftf);
|
||||
abar->RegisterMe(ftf);
|
||||
if (!withFTFP) {
|
||||
ftf->SetMaxEnergy(G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF());
|
||||
auto qgs = new G4QGSPAntiBarionBuilder(quasiElasticQGS);
|
||||
AddBuilder(qgs);
|
||||
qgs->SetMinEnergy(G4HadronicParameters::Instance()->GetMinEnergyTransitionQGS_FTF());
|
||||
abar->RegisterMe(qgs);
|
||||
}
|
||||
abar->Build();
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
// 10.12.2007 G.Folger: Add projectilediffrative option for proton/neutron, off by default
|
||||
// 31.10.2012 A.Ribon: Use G4MiscBuilder
|
||||
// 19.03.2013 A.Ribon: Replace LEP with FTFP
|
||||
// 05.05.2020 A.Ribon: Use QGSP for antibaryons at high energies
|
||||
// 07.05.2020 A.Ribon: Use QGSP for hyperons (and anti-hyperons) at high energies
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -66,9 +68,12 @@
|
||||
#include "G4QGSPNeutronBuilder.hh"
|
||||
#include "G4BertiniNeutronBuilder.hh"
|
||||
|
||||
#include "G4HyperonBuilder.hh"
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4HyperonQGSPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
#include "G4QGSPAntiBarionBuilder.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
@@ -83,6 +88,7 @@
|
||||
#include "G4PhysListUtil.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4HadronicParameters.hh"
|
||||
#include "G4HadronicBuilder.hh"
|
||||
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
@@ -115,6 +121,7 @@ void G4HadronPhysicsQGSP_BERT::CreateModels()
|
||||
Pion();
|
||||
Kaon();
|
||||
Others();
|
||||
G4HadronicBuilder::BuildBCHadronsQGSP_FTFP_BERT(QuasiElasticQGS);
|
||||
}
|
||||
|
||||
void G4HadronPhysicsQGSP_BERT::Neutron()
|
||||
@@ -187,15 +194,29 @@ void G4HadronPhysicsQGSP_BERT::Pion()
|
||||
|
||||
void G4HadronPhysicsQGSP_BERT::Others()
|
||||
{
|
||||
auto hyp = new G4HyperonFTFPBuilder;
|
||||
// Hyperons (and anti-hyperons)
|
||||
auto hyp = new G4HyperonBuilder;
|
||||
AddBuilder(hyp);
|
||||
hyp->Build();
|
||||
|
||||
auto ftfphyp = new G4HyperonFTFPBuilder(QuasiElasticFTF);
|
||||
AddBuilder(ftfphyp);
|
||||
ftfphyp->SetMaxEnergy(maxFTFP_proton);
|
||||
hyp->RegisterMe(ftfphyp);
|
||||
auto qgsphyp = new G4HyperonQGSPBuilder(QuasiElasticQGS);
|
||||
AddBuilder(qgsphyp);
|
||||
qgsphyp->SetMinEnergy(minQGSP_proton);
|
||||
hyp->RegisterMe(qgsphyp);
|
||||
hyp->Build();
|
||||
// Antibaryons
|
||||
auto abar = new G4AntiBarionBuilder;
|
||||
AddBuilder(abar);
|
||||
auto ftf = new G4FTFPAntiBarionBuilder(QuasiElasticFTF);
|
||||
AddBuilder(ftf);
|
||||
ftf->SetMaxEnergy(maxFTFP_proton);
|
||||
abar->RegisterMe(ftf);
|
||||
auto qgs = new G4QGSPAntiBarionBuilder(QuasiElasticQGS);
|
||||
AddBuilder(qgs);
|
||||
qgs->SetMinEnergy(minQGSP_proton);
|
||||
abar->RegisterMe(qgs);
|
||||
abar->Build();
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
// 25.04.2007 G.Folger: Add code for quasielastic
|
||||
// 31.10.2012 A.Ribon: Use G4MiscBuilder
|
||||
// 19.03.2013 A.Ribon: Replace LEP with FTFP and BERT
|
||||
// 05.05.2020 A.Ribon: Use QGSP for antibaryons at high energies
|
||||
// 07.05.2020 A.Ribon: Use QGSP for hyperons (and anti-hyperons) at high energies
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -58,9 +60,12 @@
|
||||
#include "G4QGSPNeutronBuilder.hh"
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
|
||||
#include "G4HyperonBuilder.hh"
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4HyperonQGSPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
#include "G4QGSPAntiBarionBuilder.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
@@ -174,14 +179,29 @@ void G4HadronPhysicsQGSP_BIC::Pion()
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC::Others()
|
||||
{
|
||||
auto hyp = new G4HyperonFTFPBuilder;
|
||||
// Hyperons (and anti-hyperons)
|
||||
auto hyp = new G4HyperonBuilder;
|
||||
AddBuilder(hyp);
|
||||
hyp->Build();
|
||||
auto ftfphyp = new G4HyperonFTFPBuilder(QuasiElasticFTF);
|
||||
AddBuilder(ftfphyp);
|
||||
ftfphyp->SetMaxEnergy(maxFTFP_proton);
|
||||
hyp->RegisterMe(ftfphyp);
|
||||
auto qgsphyp = new G4HyperonQGSPBuilder(QuasiElasticQGS);
|
||||
AddBuilder(qgsphyp);
|
||||
qgsphyp->SetMinEnergy(minQGSP_proton);
|
||||
hyp->RegisterMe(qgsphyp);
|
||||
hyp->Build();
|
||||
// Antibaryons
|
||||
auto abar = new G4AntiBarionBuilder;
|
||||
AddBuilder(abar);
|
||||
auto ftf = new G4FTFPAntiBarionBuilder(QuasiElasticFTF);
|
||||
AddBuilder(ftf);
|
||||
ftf->SetMaxEnergy(maxFTFP_proton);
|
||||
abar->RegisterMe(ftf);
|
||||
auto qgs = new G4QGSPAntiBarionBuilder(QuasiElasticQGS);
|
||||
AddBuilder(qgs);
|
||||
qgs->SetMinEnergy(minQGSP_proton);
|
||||
abar->RegisterMe(qgs);
|
||||
abar->Build();
|
||||
}
|
||||
|
||||
|
||||
+38
-127
@@ -25,152 +25,63 @@
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include <iomanip>
|
||||
|
||||
#include "G4HadronPhysicsQGSP_BIC_AllHP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
#include "G4ParticleHPCaptureData.hh"
|
||||
#include "G4LFission.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4FTFPProtonBuilder.hh"
|
||||
#include "G4QGSPProtonBuilder.hh"
|
||||
#include "G4BinaryProtonBuilder.hh"
|
||||
#include "G4ProtonPHPBuilder.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
#include "G4PhysListUtil.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
// factory
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC_AllHP);
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY( G4HadronPhysicsQGSP_BIC_AllHP );
|
||||
|
||||
G4ThreadLocal G4HadronPhysicsQGSP_BIC_AllHP::ThreadPrivate*
|
||||
G4HadronPhysicsQGSP_BIC_AllHP::tpdata = nullptr;
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_AllHP::G4HadronPhysicsQGSP_BIC_AllHP(G4int)
|
||||
: G4VPhysicsConstructor("hInelastic QGSP_BIC_AllHP")
|
||||
G4HadronPhysicsQGSP_BIC_AllHP::G4HadronPhysicsQGSP_BIC_AllHP( G4int )
|
||||
: G4HadronPhysicsQGSP_BIC_AllHP( "hInelastic QGSP_BIC_AllHP" )
|
||||
{}
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_AllHP::G4HadronPhysicsQGSP_BIC_AllHP(const G4String& name, G4bool /* quasiElastic */)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC_AllHP::CreateModels()
|
||||
G4HadronPhysicsQGSP_BIC_AllHP::G4HadronPhysicsQGSP_BIC_AllHP( const G4String& name, G4bool /*quasiElastic */ )
|
||||
: G4HadronPhysicsQGSP_BIC_HP( name )
|
||||
{
|
||||
G4bool quasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
|
||||
G4bool quasiElasticQGS= true; // For QGS, it must use it.
|
||||
|
||||
tpdata->theNeutrons=new G4NeutronBuilder( true ); // Fission on
|
||||
tpdata->theNeutrons->RegisterMe(tpdata->theQGSPNeutron=new G4QGSPNeutronBuilder(quasiElasticQGS));
|
||||
tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron=new G4FTFPNeutronBuilder(quasiElasticFTF));
|
||||
tpdata->theFTFPNeutron->SetMinEnergy(minFTFP);
|
||||
tpdata->theFTFPNeutron->SetMaxEnergy(maxFTFP);
|
||||
tpdata->theNeutrons->RegisterMe(tpdata->theBinaryNeutron=new G4BinaryNeutronBuilder);
|
||||
tpdata->theBinaryNeutron->SetMinEnergy(minBIC_neutron);
|
||||
tpdata->theBinaryNeutron->SetMaxEnergy(maxBIC);
|
||||
tpdata->theNeutrons->RegisterMe(tpdata->thePHPNeutron=new G4NeutronPHPBuilder);
|
||||
tpdata->thePHPNeutron->SetMaxEnergy(maxHP_neutron);
|
||||
|
||||
tpdata->thePro=new G4ProtonBuilder;
|
||||
tpdata->thePro->RegisterMe(tpdata->theQGSPPro=new G4QGSPProtonBuilder(quasiElasticQGS));
|
||||
tpdata->thePro->RegisterMe(tpdata->theFTFPPro=new G4FTFPProtonBuilder(quasiElasticFTF));
|
||||
tpdata->theFTFPPro->SetMinEnergy(minFTFP);
|
||||
tpdata->theFTFPPro->SetMaxEnergy(maxFTFP);
|
||||
tpdata->thePro->RegisterMe(tpdata->theBinaryPro=new G4BinaryProtonBuilder);
|
||||
tpdata->theBinaryPro->SetMinEnergy(minBIC_proton);
|
||||
tpdata->theBinaryPro->SetMaxEnergy(maxBIC);
|
||||
tpdata->thePro->RegisterMe(tpdata->thePHPProton=new G4ProtonPHPBuilder);
|
||||
tpdata->thePHPProton->SetMaxEnergy(maxHP_proton);
|
||||
|
||||
tpdata->thePiK=new G4PiKBuilder;
|
||||
tpdata->thePiK->RegisterMe(tpdata->theQGSPPiK=new G4QGSPPiKBuilder(quasiElasticQGS));
|
||||
tpdata->thePiK->RegisterMe(tpdata->theFTFPPiK=new G4FTFPPiKBuilder(quasiElasticFTF));
|
||||
tpdata->theFTFPPiK->SetMaxEnergy(maxFTFP);
|
||||
tpdata->thePiK->RegisterMe(tpdata->theBertiniPiK=new G4BertiniPiKBuilder);
|
||||
tpdata->theBertiniPiK->SetMaxEnergy(maxBERT);
|
||||
|
||||
tpdata->theHyperon=new G4HyperonFTFPBuilder;
|
||||
|
||||
tpdata->theAntiBaryon=new G4AntiBarionBuilder;
|
||||
tpdata->theAntiBaryon->RegisterMe(tpdata->theFTFPAntiBaryon=new G4FTFPAntiBarionBuilder(quasiElasticFTF));
|
||||
minBIC_proton = 190.0*CLHEP::MeV;
|
||||
maxHP_proton = 200.0*CLHEP::MeV;
|
||||
}
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_AllHP::~G4HadronPhysicsQGSP_BIC_AllHP()
|
||||
{
|
||||
if (!tpdata) return;
|
||||
|
||||
delete tpdata->thePHPNeutron;
|
||||
delete tpdata->theBinaryNeutron;
|
||||
delete tpdata->theQGSPNeutron;
|
||||
delete tpdata->theFTFPNeutron;
|
||||
delete tpdata->theBertiniPiK;
|
||||
delete tpdata->theQGSPPiK;
|
||||
delete tpdata->theFTFPPiK;
|
||||
delete tpdata->thePiK;
|
||||
delete tpdata->thePHPProton;
|
||||
delete tpdata->theBinaryPro;
|
||||
delete tpdata->theQGSPPro;
|
||||
delete tpdata->theFTFPPro;
|
||||
delete tpdata->thePro;
|
||||
delete tpdata->theFTFPAntiBaryon;
|
||||
delete tpdata->theAntiBaryon;
|
||||
delete tpdata->theHyperon;
|
||||
|
||||
delete tpdata; tpdata = nullptr;
|
||||
}
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC_AllHP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
|
||||
G4IonConstructor pIonConstructor;
|
||||
pIonConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void G4HadronPhysicsQGSP_BIC_AllHP::ConstructProcess()
|
||||
{
|
||||
if ( tpdata == 0 ) tpdata = new ThreadPrivate;
|
||||
CreateModels();
|
||||
tpdata->theNeutrons->Build();
|
||||
tpdata->thePro->Build();
|
||||
tpdata->thePiK->Build();
|
||||
|
||||
tpdata->theHyperon->Build();
|
||||
tpdata->theAntiBaryon->Build();
|
||||
|
||||
// --- Neutrons ---
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* capture = G4PhysListUtil::FindCaptureProcess(neutron);
|
||||
if (capture) {
|
||||
G4NeutronRadCapture* theNeutronRadCapture = new G4NeutronRadCapture();
|
||||
theNeutronRadCapture->SetMinEnergy( minBIC_neutron );
|
||||
capture->RegisterMe( theNeutronRadCapture );
|
||||
}
|
||||
G4HadronicProcess* fission = G4PhysListUtil::FindFissionProcess(neutron);
|
||||
if (fission) {
|
||||
G4LFission* theNeutronLEPFission = new G4LFission();
|
||||
theNeutronLEPFission->SetMinEnergy( minBIC_neutron );
|
||||
theNeutronLEPFission->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() );
|
||||
fission->RegisterMe( theNeutronLEPFission );
|
||||
}
|
||||
void G4HadronPhysicsQGSP_BIC_AllHP::Proton() {
|
||||
auto pro = new G4ProtonBuilder;
|
||||
AddBuilder( pro );
|
||||
auto qgs = new G4QGSPProtonBuilder( QuasiElasticQGS );
|
||||
AddBuilder( qgs );
|
||||
qgs->SetMinEnergy( minQGSP_proton );
|
||||
pro->RegisterMe( qgs );
|
||||
auto ftf = new G4FTFPProtonBuilder( QuasiElasticFTF );
|
||||
AddBuilder( ftf );
|
||||
ftf->SetMinEnergy( minFTFP_proton );
|
||||
ftf->SetMaxEnergy( maxFTFP_proton );
|
||||
pro->RegisterMe( ftf );
|
||||
auto bic = new G4BinaryProtonBuilder;
|
||||
AddBuilder( bic );
|
||||
bic->SetMinEnergy( minBIC_proton );
|
||||
bic->SetMaxEnergy( maxBIC_proton );
|
||||
pro->RegisterMe( bic );
|
||||
auto hp = new G4ProtonPHPBuilder;
|
||||
AddBuilder( hp );
|
||||
hp->SetMaxEnergy( maxHP_proton );
|
||||
pro->RegisterMe( hp );
|
||||
pro->Build();
|
||||
}
|
||||
|
||||
+48
-114
@@ -36,155 +36,89 @@
|
||||
// 25.04.2007 G.Folger: Add code for quasielastic
|
||||
// 31.10.2012 A.Ribon: Use G4MiscBuilder
|
||||
// 19.03.2013 A.Ribon: Replace LEP with FTFP and BERT
|
||||
// 05.05.2020 A.Ribon: Use QGSP for antibaryons at high energies
|
||||
// 07.05.2020 A.Ribon: Use QGSP for hyperons (and anti-hyperons) at high energies
|
||||
// 20.05.2020 A.Ribon: Refactoring of the class (keeping same functionalities)
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include <iomanip>
|
||||
|
||||
#include "G4HadronPhysicsQGSP_BIC_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4QGSPNeutronBuilder.hh"
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
#include "G4NeutronPHPBuilder.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
#include "G4ParticleHPCaptureData.hh"
|
||||
#include "G4LFission.hh"
|
||||
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
#include "G4PhysListUtil.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
// factory
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC_HP);
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY( G4HadronPhysicsQGSP_BIC_HP );
|
||||
|
||||
G4ThreadLocal G4HadronPhysicsQGSP_BIC_HP::ThreadPrivate*
|
||||
G4HadronPhysicsQGSP_BIC_HP::tpdata = nullptr;
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_HP::G4HadronPhysicsQGSP_BIC_HP(G4int)
|
||||
: G4VPhysicsConstructor("hInelastic QGSP_BIC_HP")
|
||||
G4HadronPhysicsQGSP_BIC_HP::G4HadronPhysicsQGSP_BIC_HP( G4int )
|
||||
: G4HadronPhysicsQGSP_BIC_HP( "hInelastic QGSP_BIC_HP" )
|
||||
{}
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_HP::G4HadronPhysicsQGSP_BIC_HP(const G4String& name, G4bool /* quasiElastic */)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC_HP::CreateModels()
|
||||
G4HadronPhysicsQGSP_BIC_HP::G4HadronPhysicsQGSP_BIC_HP( const G4String& name, G4bool /*quasiElastic */ )
|
||||
: G4HadronPhysicsQGSP_BIC( name )
|
||||
{
|
||||
G4bool quasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
|
||||
G4bool quasiElasticQGS= true; // For QGS, it must use it.
|
||||
|
||||
const G4double maxFTFP = G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF();
|
||||
const G4double minFTFP = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
const G4double maxBIC = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
const G4double maxBERT = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
const G4double maxHP = 19.9*MeV;
|
||||
|
||||
tpdata->theNeutrons=new G4NeutronBuilder( true ); // Fission on
|
||||
tpdata->theNeutrons->RegisterMe(tpdata->theQGSPNeutron=new G4QGSPNeutronBuilder(quasiElasticQGS));
|
||||
tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron=new G4FTFPNeutronBuilder(quasiElasticFTF));
|
||||
tpdata->theFTFPNeutron->SetMinEnergy(minFTFP);
|
||||
tpdata->theFTFPNeutron->SetMaxEnergy(maxFTFP);
|
||||
|
||||
tpdata->theNeutrons->RegisterMe(tpdata->theBinaryNeutron=new G4BinaryNeutronBuilder);
|
||||
tpdata->theBinaryNeutron->SetMinEnergy(maxHP);
|
||||
tpdata->theBinaryNeutron->SetMaxEnergy(maxBIC);
|
||||
|
||||
tpdata->theNeutrons->RegisterMe(tpdata->theHPNeutron=new G4NeutronPHPBuilder);
|
||||
|
||||
tpdata->thePro=new G4ProtonBuilder;
|
||||
tpdata->thePro->RegisterMe(tpdata->theQGSPPro=new G4QGSPProtonBuilder(quasiElasticQGS));
|
||||
tpdata->thePro->RegisterMe(tpdata->theFTFPPro=new G4FTFPProtonBuilder(quasiElasticFTF));
|
||||
tpdata->theFTFPPro->SetMinEnergy(minFTFP);
|
||||
tpdata->theFTFPPro->SetMaxEnergy(maxFTFP);
|
||||
tpdata->thePro->RegisterMe(tpdata->theBinaryPro=new G4BinaryProtonBuilder);
|
||||
tpdata->theBinaryPro->SetMaxEnergy(maxBIC);
|
||||
|
||||
tpdata->thePiK=new G4PiKBuilder;
|
||||
tpdata->thePiK->RegisterMe(tpdata->theQGSPPiK=new G4QGSPPiKBuilder(quasiElasticQGS));
|
||||
tpdata->thePiK->RegisterMe(tpdata->theFTFPPiK=new G4FTFPPiKBuilder(quasiElasticFTF));
|
||||
tpdata->theFTFPPiK->SetMaxEnergy(maxFTFP);
|
||||
tpdata->thePiK->RegisterMe(tpdata->theBertiniPiK=new G4BertiniPiKBuilder);
|
||||
tpdata->theBertiniPiK->SetMaxEnergy(maxBERT);
|
||||
|
||||
tpdata->theHyperon=new G4HyperonFTFPBuilder;
|
||||
|
||||
tpdata->theAntiBaryon=new G4AntiBarionBuilder;
|
||||
tpdata->theAntiBaryon->RegisterMe(tpdata->theFTFPAntiBaryon=new G4FTFPAntiBarionBuilder(quasiElasticFTF));
|
||||
minBIC_neutron = 19.9*MeV;
|
||||
}
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_HP::~G4HadronPhysicsQGSP_BIC_HP()
|
||||
{
|
||||
if (!tpdata) return;
|
||||
|
||||
delete tpdata->theHPNeutron;
|
||||
delete tpdata->theBinaryNeutron;
|
||||
delete tpdata->theQGSPNeutron;
|
||||
delete tpdata->theFTFPNeutron;
|
||||
delete tpdata->theBertiniPiK;
|
||||
delete tpdata->theQGSPPiK;
|
||||
delete tpdata->theFTFPPiK;
|
||||
delete tpdata->thePiK;
|
||||
delete tpdata->theBinaryPro;
|
||||
delete tpdata->theQGSPPro;
|
||||
delete tpdata->theFTFPPro;
|
||||
delete tpdata->thePro;
|
||||
delete tpdata->theFTFPAntiBaryon;
|
||||
delete tpdata->theAntiBaryon;
|
||||
delete tpdata->theHyperon;
|
||||
|
||||
delete tpdata; tpdata = nullptr;
|
||||
void G4HadronPhysicsQGSP_BIC_HP::Neutron() {
|
||||
auto neu = new G4NeutronBuilder( true ); // Fission on
|
||||
AddBuilder( neu );
|
||||
auto qgs = new G4QGSPNeutronBuilder( QuasiElasticQGS );
|
||||
AddBuilder( qgs );
|
||||
qgs->SetMinEnergy( minQGSP_neutron );
|
||||
neu->RegisterMe( qgs );
|
||||
auto ftf = new G4FTFPNeutronBuilder( QuasiElasticFTF );
|
||||
AddBuilder( ftf );
|
||||
ftf->SetMinEnergy( minFTFP_neutron );
|
||||
ftf->SetMaxEnergy( maxFTFP_neutron );
|
||||
neu->RegisterMe( ftf );
|
||||
auto bic = new G4BinaryNeutronBuilder;
|
||||
AddBuilder( bic );
|
||||
bic->SetMinEnergy( minBIC_neutron );
|
||||
bic->SetMaxEnergy( maxBIC_neutron );
|
||||
neu->RegisterMe( bic );
|
||||
auto hp = new G4NeutronPHPBuilder;
|
||||
AddBuilder( hp );
|
||||
neu->RegisterMe( hp );
|
||||
neu->Build();
|
||||
}
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
|
||||
G4IonConstructor pIonConstructor;
|
||||
pIonConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC_HP::ConstructProcess()
|
||||
{
|
||||
if ( !tpdata ) tpdata = new ThreadPrivate;
|
||||
CreateModels();
|
||||
tpdata->theNeutrons->Build();
|
||||
tpdata->thePro->Build();
|
||||
tpdata->thePiK->Build();
|
||||
|
||||
tpdata->theHyperon->Build();
|
||||
tpdata->theAntiBaryon->Build();
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC_HP::ExtraConfiguration() {
|
||||
// --- Neutrons ---
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* capture = G4PhysListUtil::FindCaptureProcess(neutron);
|
||||
if (capture) {
|
||||
G4NeutronRadCapture* theNeutronRadCapture = new G4NeutronRadCapture();
|
||||
theNeutronRadCapture->SetMinEnergy( 19.9*MeV );
|
||||
G4HadronicProcess* capture = G4PhysListUtil::FindCaptureProcess( neutron );
|
||||
if ( capture ) {
|
||||
G4NeutronRadCapture* theNeutronRadCapture = new G4NeutronRadCapture;
|
||||
theNeutronRadCapture->SetMinEnergy( minBIC_neutron );
|
||||
capture->RegisterMe( theNeutronRadCapture );
|
||||
}
|
||||
G4HadronicProcess* fission = G4PhysListUtil::FindFissionProcess(neutron);
|
||||
if (fission) {
|
||||
G4LFission* theNeutronLEPFission = new G4LFission();
|
||||
theNeutronLEPFission->SetMinEnergy( 19.9*MeV );
|
||||
G4HadronicProcess* fission = G4PhysListUtil::FindFissionProcess( neutron );
|
||||
if ( fission ) {
|
||||
G4LFission* theNeutronLEPFission = new G4LFission;
|
||||
theNeutronLEPFission->SetMinEnergy( minBIC_neutron );
|
||||
theNeutronLEPFission->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() );
|
||||
fission->RegisterMe( theNeutronLEPFission );
|
||||
}
|
||||
|
||||
+1
@@ -54,6 +54,7 @@ G4HadronPhysicsQGSP_FTFP_BERT::G4HadronPhysicsQGSP_FTFP_BERT(const G4String& nam
|
||||
G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_proton = maxBERT_neutron = maxBERT_pik =
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
G4HadronicParameters::Instance()->SetEnableBCParticles(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -59,9 +59,12 @@
|
||||
#include "G4QGSBinaryNeutronBuilder.hh"
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
|
||||
#include "G4HyperonBuilder.hh"
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4HyperonQGSPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
#include "G4QGSPAntiBarionBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
@@ -208,14 +211,29 @@ void G4HadronPhysicsQGS_BIC::Kaon()
|
||||
|
||||
void G4HadronPhysicsQGS_BIC::Others()
|
||||
{
|
||||
auto hyp = new G4HyperonFTFPBuilder;
|
||||
// Hyperons (and anti-hyperons)
|
||||
auto hyp = new G4HyperonBuilder;
|
||||
AddBuilder(hyp);
|
||||
auto ftfphyp = new G4HyperonFTFPBuilder(QuasiElasticFTF);
|
||||
AddBuilder(ftfphyp);
|
||||
ftfphyp->SetMaxEnergy(maxFTF_proton);
|
||||
hyp->RegisterMe(ftfphyp);
|
||||
auto qgsphyp = new G4HyperonQGSPBuilder(QuasiElasticQGS);
|
||||
AddBuilder(qgsphyp);
|
||||
qgsphyp->SetMinEnergy(G4HadronicParameters::Instance()->GetMinEnergyTransitionQGS_FTF());
|
||||
hyp->RegisterMe(qgsphyp);
|
||||
hyp->Build();
|
||||
// Antibaryons
|
||||
auto abar = new G4AntiBarionBuilder;
|
||||
AddBuilder(abar);
|
||||
auto ftf = new G4FTFPAntiBarionBuilder(QuasiElasticFTF);
|
||||
AddBuilder(ftf);
|
||||
ftf->SetMaxEnergy(maxFTF_proton);
|
||||
abar->RegisterMe(ftf);
|
||||
auto qgs = new G4QGSPAntiBarionBuilder(QuasiElasticQGS);
|
||||
AddBuilder(qgs);
|
||||
qgs->SetMinEnergy(G4HadronicParameters::Instance()->GetMinEnergyTransitionQGS_FTF());
|
||||
abar->RegisterMe(qgs);
|
||||
abar->Build();
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
// 2020.05.07 A.Ribon used the newly introduced G4HyperonBuilder
|
||||
// 2019.08.01 A.Ribon replaced explicit numbers for the energy transition
|
||||
// region with values taken from G4HadronicParameters
|
||||
// 2014.08.05 K.L.Genser added provisions for modifing the Bertini to
|
||||
@@ -73,6 +74,7 @@
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4NeutronPHPBuilder.hh"
|
||||
|
||||
#include "G4HyperonBuilder.hh"
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
@@ -249,17 +251,19 @@ void G4HadronPhysicsShielding::Kaon()
|
||||
|
||||
void G4HadronPhysicsShielding::Others()
|
||||
{
|
||||
// Hyperons
|
||||
auto hyp = new G4HyperonFTFPBuilder;
|
||||
AddBuilder( hyp );
|
||||
// Hyperons (and anti-hyperons)
|
||||
auto hyp = new G4HyperonBuilder;
|
||||
AddBuilder(hyp);
|
||||
auto ftfphyp = new G4HyperonFTFPBuilder;
|
||||
AddBuilder(ftfphyp);
|
||||
hyp->RegisterMe(ftfphyp);
|
||||
hyp->Build();
|
||||
|
||||
// Antibaryons
|
||||
// Anti-barions
|
||||
auto abar = new G4AntiBarionBuilder;
|
||||
AddBuilder( abar );
|
||||
auto ftfpabar = new G4FTFPAntiBarionBuilder( false );
|
||||
AddBuilder( ftfpabar );
|
||||
abar->RegisterMe( ftfpabar );
|
||||
AddBuilder(abar);
|
||||
auto ftfpabar = new G4FTFPAntiBarionBuilder;
|
||||
AddBuilder(ftfpabar);
|
||||
abar->RegisterMe(ftfpabar);
|
||||
abar->Build();
|
||||
}
|
||||
|
||||
|
||||
+12
-9
@@ -68,6 +68,7 @@
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4NeutronPHPBuilder.hh"
|
||||
|
||||
#include "G4HyperonBuilder.hh"
|
||||
#include "G4HyperonFTFPBuilder.hh"
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
@@ -238,17 +239,19 @@ void G4HadronPhysicsShieldingLEND::Kaon()
|
||||
|
||||
void G4HadronPhysicsShieldingLEND::Others()
|
||||
{
|
||||
// Hyperons
|
||||
auto hyp = new G4HyperonFTFPBuilder;
|
||||
AddBuilder( hyp );
|
||||
// Hyperons (and anti-hyperons)
|
||||
auto hyp = new G4HyperonBuilder;
|
||||
AddBuilder(hyp);
|
||||
auto ftfphyp = new G4HyperonFTFPBuilder;
|
||||
AddBuilder(ftfphyp);
|
||||
hyp->RegisterMe(ftfphyp);
|
||||
hyp->Build();
|
||||
|
||||
// Antibaryons
|
||||
// Anti-barions
|
||||
auto abar = new G4AntiBarionBuilder;
|
||||
AddBuilder( abar );
|
||||
auto ftfpabar = new G4FTFPAntiBarionBuilder( false );
|
||||
AddBuilder( ftfpabar );
|
||||
abar->RegisterMe( ftfpabar );
|
||||
AddBuilder(abar);
|
||||
auto ftfpabar = new G4FTFPAntiBarionBuilder;
|
||||
AddBuilder(ftfpabar);
|
||||
abar->RegisterMe(ftfpabar);
|
||||
abar->Build();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user