Import Geant4 10.6.0 source tree
This commit is contained in:
@@ -13,6 +13,35 @@ introduced in the code and keeptrack of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
29-November-2019, Alberto Ribon (phys-ctor-hinelastic-V10-05-03)
|
||||
- Update of the only README file.
|
||||
|
||||
22-October-2019, Alberto Ribon (phys-ctor-hinelastic-V10-05-02)
|
||||
- G4HadronPhysicsFTFP_BERT_TRV : removed special treatment of hadronic
|
||||
inelastic cross sections of hyperons and anti-hyperons (now it is
|
||||
the default in the class G4HyperonFTFPBuilder).
|
||||
- G4HadronInelasticFTFQGSP_BERT, G4HadronInelasticQBBC : use Glauber-Gribov
|
||||
inelastic cross sections (instead of Chips ones) for hyperons and
|
||||
anti-hyperons.
|
||||
- G4HadronPhysicsFTF_BIC, G4HadronPhysicsFTFP_BERT_HP,
|
||||
G4HadronPhysicsFTFP_BERT_TRV, G4HadronPhysicsFTFQGSP_BERT,
|
||||
G4HadronPhysicsQGS_BIC, G4HadronPhysicsQGSP_BERT,
|
||||
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).
|
||||
|
||||
27-August-2019, Vladimir Ivantchenko (phys-ctor-hinelastic-V10-05-01)
|
||||
- G4HadronInelasticQBBC - use XS proton inelastic
|
||||
|
||||
05-August-2019, Alberto Ribon (phys-ctor-hinelastic-V10-05-00)
|
||||
- README : updated information.
|
||||
- Replacing explicit values for the energy transition region with values
|
||||
from G4HadronicParameters in nearly all constructors.
|
||||
Note: kept unchanged the transition region between FTFP and BERT only
|
||||
in 4 cases: G4HadronPhysicsFTFP_BERT_ATL, G4HadronPhysicsINCLXX,
|
||||
G4HadronPhysicsNuBeam and "ShieldingM".
|
||||
|
||||
26-November-2018, Alberto Ribon (phys-ctor-hinelastic-V10-04-14)
|
||||
- README : updated information.
|
||||
- G4HadronPhysicsFTFQGSP_BERT : use BGG pion cross section, consistently
|
||||
|
||||
@@ -5,57 +5,59 @@
|
||||
---------------------
|
||||
Hadron nuclear inelastic processes for all hadrons:
|
||||
- proton inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- cross section: G4ParticleInelasticXS
|
||||
- final-state: Fritiof coupled with Precompound/de-excitation (FTFP) above 3 GeV;
|
||||
Bertini (BERT) between 1 and 5 GeV;
|
||||
Bertini (BERT) between 1 and 6 GeV;
|
||||
Binary coupled with Precompound/de-excitation (BIC) below 1.5 GeV
|
||||
- neutron inelastic:
|
||||
- cross section: G4NeutronInelasticXS
|
||||
- final-state: FTFP > 3 GeV; 1 GeV < BERT < 5 GeV; BIC < 1.5 GeV
|
||||
- final-state: FTFP > 3 GeV; 1 GeV < BERT < 6 GeV; BIC < 1.5 GeV
|
||||
neutron capture:
|
||||
- cross section: G4NeutronCaptureXS
|
||||
- final-state: G4NeutronRadCapture
|
||||
- charged pions inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 5 GeV
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- kaons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 5 GeV
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTFP > 3 GeV; BERT < 5 GeV
|
||||
- anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3, anti_alpha,
|
||||
anti_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:
|
||||
- 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
|
||||
|
||||
|
||||
G4HadronPhysicsFTFP_BERT
|
||||
------------------------
|
||||
Hadron nuclear inelastic processes for all hadrons:
|
||||
- proton inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 12 GeV
|
||||
- cross section: Barashenkov-Glauber-Gribov (G4BGGNucleonInelasticXS)
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- neutron inelastic:
|
||||
- cross section: G4NeutronInelasticXS
|
||||
- final-state: FTFP > 3 GeV; BERT < 12 GeV
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
neutron capture:
|
||||
- cross section: G4NeutronCaptureXS
|
||||
- final-state: G4NeutronRadCapture
|
||||
- charged pions inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 12 GeV
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- kaons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 12 GeV
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTFP > 2 GeV; BERT < 6 GeV
|
||||
- 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:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
|
||||
|
||||
@@ -63,39 +65,40 @@
|
||||
----------------------------
|
||||
Similar to G4HadronPhysicsFTFP_BERT, with the difference that for proton,
|
||||
neutron, pions and kaons, the FTFP is used above 9 GeV and BERT below 12 GeV
|
||||
(i.e. transition between these two models is in the interval [9, 12] GeV).
|
||||
(i.e. transition between these two models is in the interval [9, 12] GeV
|
||||
for the most frequent hadrons).
|
||||
|
||||
|
||||
G4HadronPhysicsFTFP_BERT_HP
|
||||
--------------------------
|
||||
Similar to G4HadronPhysicsFTFP_BERT, with the only difference of the
|
||||
treatment of low-energy neutrons:
|
||||
Similar to G4HadronPhysicsFTFP_BERT, but with a different treatment of
|
||||
low-energy neutrons:
|
||||
- neutron inelastic: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above G4NeutronCaptureXS cross section;
|
||||
final-state: BERT between 19.9 MeV and 12 GeV,
|
||||
final-state: BERT between 19.9 MeV and 6 GeV,
|
||||
FTFP above 3 GeV.
|
||||
- neutron capture: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above G4NeutronCaptureXS cross section
|
||||
and G4NeutronRadCapture final-state.
|
||||
- neutron fission: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above Gheisha (cross section and final state).
|
||||
Moreover, RadioactiveDecay is activated (as in all the physics lists that use HP).
|
||||
|
||||
|
||||
G4HadronPhysicsFTFP_BERT_TRV
|
||||
----------------------------
|
||||
Similar to G4HadronPhysicsFTFP_BERT, with only two differences:
|
||||
- the transition between FTFP and BERT is in the interval [2 , 4] GeV;
|
||||
Similar to G4HadronPhysicsFTFP_BERT, with only one difference:
|
||||
- the inelastic cross sections for hyperons is Glauber-Gribov
|
||||
(instead of Chips).
|
||||
|
||||
|
||||
G4HadronPhysicsFTF_BIC
|
||||
----------------------
|
||||
Similar to G4HadronPhysicsFTFP_BERT, with the following differences for
|
||||
proton, neutron, pions and kaons:
|
||||
- BIC is used (instead of BERT) below 5 GeV;
|
||||
- FTF is still used above 4 GeV, but it is coupled with BIC (instead of
|
||||
Precompound/de-excitation)
|
||||
Similar to G4HadronPhysicsFTFP_BERT, with the following differences:
|
||||
- For proton and neutron, BIC is used (instead of BERT) below 6 GeV
|
||||
- For pions, BIC is used below 1.5 GeV, whereas BERT is used in the
|
||||
interval 1 GeV < BERT < 6 GeV
|
||||
- FTF is coupled with BIC (instead of directly to Precompound/de-excitation).
|
||||
|
||||
|
||||
G4HadronPhysicsFTFQGSP_BERT
|
||||
@@ -108,7 +111,7 @@
|
||||
---------------------
|
||||
Hadron nuclear inelastic processes for all hadrons:
|
||||
- proton inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- cross section: Barashenkov-Glauber-Gribov (G4BGGNucleonInelasticXS)
|
||||
- final-state: QGSP > 15 GeV; 1 MeV < INCLXX < 20 GeV; Preco < 2 MeV
|
||||
- neutron inelastic:
|
||||
- cross section: G4NeutronInelasticXS
|
||||
@@ -123,14 +126,14 @@
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: QGSP > 14 GeV; BERT < 15 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTFP > 2 GeV; BERT < 6 GeV
|
||||
- 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:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTF for all energies
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTF for all energies
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
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
|
||||
@@ -140,182 +143,139 @@
|
||||
|
||||
G4HadronPhysicsNuBeam
|
||||
---------------------
|
||||
Hadron nuclear inelastic processes for all hadrons:
|
||||
- proton inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: QGSP with Lund string fragmentation > 100 GeV;
|
||||
3 GeV < FTFP < 101 GeV; BERT < 3.5 GeV
|
||||
- neutron inelastic:
|
||||
- cross section: G4NeutronInelasticXS
|
||||
- final-state: FTFP > 4 GeV; BERT < 5 GeV
|
||||
neutron capture:
|
||||
- cross section: G4NeutronCaptureXS
|
||||
- final-state: G4NeutronRadCapture
|
||||
- charged pions inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 3.5 GeV
|
||||
- kaons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP > 3 GeV; BERT < 3.5 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTFP > 2 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: Chips
|
||||
- final-state: FTFP for all energies
|
||||
Similar to FTFP_BERT, except for the final-state models of the most frequent
|
||||
hadrons:
|
||||
- proton : QGSP with Lund string fragmentation > 100 GeV;
|
||||
3 GeV < FTFP < 101 GeV; BERT < 3.5 GeV
|
||||
- neutron : FTFP > 4 GeV; BERT < 5 GeV
|
||||
- charged pions : FTFP > 3 GeV; BERT < 3.5 GeV
|
||||
- kaons : FTFP > 3 GeV; BERT < 3.5 GeV
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_BERT
|
||||
------------------------
|
||||
Hadron nuclear inelastic processes for all hadrons:
|
||||
- proton inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 9.5 GeV < FTFP < 25 GeV; BERT < 9.9 GeV
|
||||
- cross section: Barashenkov-Glauber-Gribov (G4BGGNucleonInelasticXS)
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- neutron inelastic:
|
||||
- cross section: G4NeutronInelasticXS
|
||||
- final-state: QGSP > 12 GeV; 9.5 GeV < FTFP < 25 GeV; BERT < 9.9 GeV
|
||||
- cross section: G4NeutronInelasticXS
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
neutron capture:
|
||||
- cross section: G4NeutronCaptureXS
|
||||
- final-state: G4NeutronRadCapture
|
||||
- charged pions inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 9.5 GeV < FTFP < 25 GeV; BERT < 9.9 GeV
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- kaons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 9.5 GeV < FTFP < 25 GeV; BERT < 9.9 GeV
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTFP > 2 GeV; BERT < 6 GeV
|
||||
- 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:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_BERT_HP
|
||||
---------------------------
|
||||
Similar to G4HadronPhysicsQGSP_BERT, with the only difference for neutron:
|
||||
Similar to G4HadronPhysicsQGSP_BERT, but with a different treatment of
|
||||
low-energy neutrons:
|
||||
- neutron inelastic: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above G4NeutronCaptureXS cross section;
|
||||
final-state: BERT between 19.9 MeV and 9.9 GeV,
|
||||
FTFP between 9.5 and 25 GeV, QGSP above 12 GeV.
|
||||
final-state: BERT between 19.9 MeV and 6 GeV,
|
||||
FTFP between 3 and 25 GeV, QGSP above 12 GeV.
|
||||
- neutron capture: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above G4NeutronCaptureXS cross section
|
||||
and G4NeutronRadCapture final-state.
|
||||
- neutron fission: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above Gheisha (cross section and final state).
|
||||
Moreover, RadioactiveDecay is activated (as in all the physics lists that use HP).
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_BIC
|
||||
-----------------------
|
||||
Hadron nuclear inelastic processes for all hadrons:
|
||||
- proton inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 9.5 GeV < FTFP < 25 GeV; BIC < 9.9 GeV
|
||||
- cross section: Barashenkov-Glauber-Gribov (G4BGGNucleonInelasticXS)
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BIC < 6 GeV
|
||||
- neutron inelastic:
|
||||
- cross section: G4NeutronInelasticXS
|
||||
- final-state: QGSP > 12 GeV; 9.5 GeV < FTFP < 25 GeV; BIC < 9.9 GeV
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BIC < 6 GeV
|
||||
neutron capture:
|
||||
- cross section: G4NeutronCaptureXS
|
||||
- final-state: G4NeutronRadCapture
|
||||
- charged pions inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 4 GeV < FTFP < 25 GeV; BERT < 5 GeV
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- kaons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 4 GeV < FTFP < 25 GeV; BERT < 5 GeV
|
||||
- final-state: QGSP > 12 GeV; 3 GeV < FTFP < 25 GeV; BERT < 6 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTFP > 2 GeV; BERT < 6 GeV
|
||||
- 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:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_AllHP
|
||||
-----------------------------
|
||||
Similar to G4HadronPhysicsQGSP_BIC_HP (see below) with the only difference
|
||||
for proton: 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; 9.5 GeV < FTFP < 25 GeV; 200 MeV < BIC < 9.9 GeV.
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_HP
|
||||
--------------------------
|
||||
Similar to G4HadronPhysicsQGSP_BIC, with the only difference for neutron:
|
||||
Similar to G4HadronPhysicsQGSP_BIC, but with a different treatment of
|
||||
low-energy neutrons:
|
||||
- neutron inelastic: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above G4NeutronCaptureXS cross section;
|
||||
final-state: BIC between 19.9 MeV and 9.9 GeV,
|
||||
FTFP between 9.5 and 25 GeV, QGSP above 12 GeV.
|
||||
final-state: BIC between 19.9 MeV and 6 GeV,
|
||||
FTFP between 3 and 25 GeV, QGSP above 12 GeV.
|
||||
- neutron capture: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above G4NeutronCaptureXS cross section
|
||||
and G4NeutronRadCapture final-state.
|
||||
- neutron fission: use NeutronHP (for both cross section and final state)
|
||||
below 20 MeV; above Gheisha (cross section and final state).
|
||||
Moreover, RadioactiveDecay is activated (as in all the physics lists that use HP).
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_BIC_AllHP
|
||||
-----------------------------
|
||||
Similar to G4HadronPhysicsQGSP_BIC_HP with the only difference for proton
|
||||
and light ions (d, t, He3, alpha):
|
||||
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.
|
||||
|
||||
|
||||
G4HadronPhysicsQGSP_FTFP_BERT
|
||||
-----------------------------
|
||||
Hadron nuclear inelastic processes for all hadrons:
|
||||
- proton inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 6 GeV < FTFP < 25 GeV; BERT < 8 GeV
|
||||
- neutron inelastic:
|
||||
- cross section: G4NeutronInelasticXS
|
||||
- final-state: QGSP > 12 GeV; 6 GeV < FTFP < 25 GeV; BERT < 8 GeV
|
||||
neutron capture:
|
||||
- cross section: G4NeutronCaptureXS
|
||||
- final-state: G4NeutronRadCapture
|
||||
- charged pions inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 6 GeV < FTFP < 25 GeV; BERT < 8 GeV
|
||||
- kaons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: QGSP > 12 GeV; 6 GeV < FTFP < 25 GeV; BERT < 8 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTFP > 2 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: Chips
|
||||
- final-state: FTFP for all energies
|
||||
Currently it is the same as QGSP_BERT (this was not the case before G4 10.6).
|
||||
It might be removed in future versions of Geant4.
|
||||
|
||||
|
||||
G4HadronPhysicsQGS_BIC
|
||||
----------------------
|
||||
Similar to G4HadronPhysicsQGSP_BIC, with the following differences
|
||||
in the final-state for some projectile hadrons:
|
||||
- proton inelastic:
|
||||
QGS_BIC > 12 GeV; 9.5 GeV < FTF_BIC < 25 GeV; BIC < 9.9 GeV
|
||||
- neutron inelastic:
|
||||
QGS_BIC > 12 GeV; 9.5 GeV < FTF_BIC < 25 GeV; BIC < 9.9 GeV
|
||||
- pions inelastic:
|
||||
QGS_BIC > 12 GeV; 4 GeV < FTF_BIC < 25 GeV; 1.2 GeV < BERT < 5 GeV; BIC < 1.3 GeV
|
||||
- kaons inelastic:
|
||||
QGS_BIC > 12 GeV; 4 GeV < FTF_BIC < 25 GeV; BERT < 5 GeV
|
||||
Note: QGS_BIC and FTF_BIC indicate that QGS and FTF, respectively,
|
||||
are coupled with BIC (instead of Precompound/de-excitation).
|
||||
Similar to G4HadronPhysicsQGSP_BIC, with the following differences:
|
||||
- For proton and neutron, BIC is used (instead of BERT) below 6 GeV
|
||||
- For pions, BIC is used below 1.5 GeV, whereas BERT is used in the
|
||||
interval 1 GeV < BERT < 6 GeV
|
||||
- Both string models (i.e. QGS and FTF) are coupled with BIC
|
||||
(instead of directly to Precompound/de-excitation).
|
||||
|
||||
|
||||
G4HadronPhysicsShielding
|
||||
------------------------
|
||||
Hadron nuclear inelastic processes for all hadrons:
|
||||
- proton inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: FTFP > 9.5 GeV; BERT < 9.9 GeV
|
||||
- cross section: Barashenkov-Glauber-Gribov (G4BGGNucleonInelasticXS)
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- neutron inelastic:
|
||||
- cross section: G4NeutronInelasticXS > 20 MeV; NeutronHP or LEND < 20 MeV
|
||||
- final-state: FTFP > 9.5 GeV; 19.9 MeV < BERT < 9.9 GeV; NeutronHP or LEND < 20 MeV
|
||||
- final-state: FTFP > 3 GeV; 19.9 MeV < BERT < 6 GeV; NeutronHP or LEND < 20 MeV
|
||||
neutron capture:
|
||||
- cross section: G4NeutronCaptureXS > 20 MeV; NeutronHP or LEND < 20 MeV
|
||||
- final-state: G4NeutronRadCapture > 19.9 MeV; NeutronHP or LEND < 20 MeV
|
||||
@@ -324,20 +284,23 @@
|
||||
- final-state: Gheisha > 19.9 MeV; NeutronHP or LEND < 20 MeV
|
||||
- charged pions inelastic:
|
||||
- cross section: Barashenkov-Glauber-Gribov
|
||||
- final-state: FTFP > 9.5 GeV; BERT < 9.9 GeV
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- kaons inelastic:
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP > 9.5 GeV; BERT < 9.9 GeV
|
||||
- final-state: FTFP > 3 GeV; BERT < 6 GeV
|
||||
- hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- final-state: FTFP > 2 GeV; BERT < 6 GeV
|
||||
- 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:
|
||||
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
- anti_hyperons inelastic:
|
||||
- cross section: Chips
|
||||
- cross section: Glauber-Gribov
|
||||
- final-state: FTFP for all energies
|
||||
|
||||
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
|
||||
9.5 and 9.9 GeV (instead of 3-6 GeV).
|
||||
|
||||
G4HadronPhysicsShieldingLEND
|
||||
----------------------------
|
||||
|
||||
+4
-2
@@ -32,10 +32,10 @@
|
||||
// This is a modified version of the FTFP_BERT hadron physics for ATLAS.
|
||||
// The hadron physics of FTFP_BERT_ATL has the transition between Bertini
|
||||
// (BERT) intra-nuclear cascade model and Fritiof (FTF) string model in the
|
||||
// energy region [9, 12] GeV (instead of [4, 5] GeV as in FTFP_BERT).
|
||||
// energy region [9, 12] GeV.
|
||||
//
|
||||
// Modified:
|
||||
// 18.07.2017 A.Dotti: refactor forllowin new code
|
||||
// 18.07.2017 A.Dotti: refactor for allowing new code
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4HadronPhysicsFTFP_BERT_ATL_h
|
||||
@@ -52,6 +52,8 @@ class G4HadronPhysicsFTFP_BERT_ATL : public G4HadronPhysicsFTFP_BERT
|
||||
|
||||
private:
|
||||
//Modify the minimum needed
|
||||
virtual void Neutron() override;
|
||||
virtual void Proton() override;
|
||||
virtual void Pion() override;
|
||||
virtual void Kaon() override;
|
||||
virtual void DumpBanner() override;
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ class G4HadronPhysicsFTFP_BERT_TRV : public G4HadronPhysicsFTFP_BERT
|
||||
//Modify the minimum needed
|
||||
virtual void Pion() override;
|
||||
virtual void Kaon() override;
|
||||
virtual void DumpBanner() override;
|
||||
//virtual void DumpBanner() override;
|
||||
virtual void ExtraConfiguration() override;
|
||||
};
|
||||
|
||||
|
||||
+1
-4
@@ -87,8 +87,6 @@
|
||||
#include "G4AntiHe3InelasticProcess.hh"
|
||||
#include "G4AntiAlphaInelasticProcess.hh"
|
||||
|
||||
#include "G4ChipsHyperonInelasticXS.hh"
|
||||
|
||||
|
||||
class G4HadronPhysicsFTFQGSP_BERT : public G4VPhysicsConstructor
|
||||
{
|
||||
@@ -151,8 +149,7 @@ class G4HadronPhysicsFTFQGSP_BERT : public G4VPhysicsConstructor
|
||||
G4AntiAlphaInelasticProcess* theAntiAlphaInelastic;
|
||||
|
||||
G4VCrossSectionDataSet* thePiXS;
|
||||
G4VCrossSectionDataSet* theKaonXS;
|
||||
G4VCrossSectionDataSet* theChipsHyperonInelasticXS;
|
||||
G4VCrossSectionDataSet* theKaonAndHyperonXS;
|
||||
G4VCrossSectionDataSet* theAntiNucleonXS;
|
||||
G4VCrossSectionDataSet* theNeutronInelasticXS;
|
||||
G4VCrossSectionDataSet* theNeutronCaptureXS;
|
||||
|
||||
+3
-1
@@ -72,7 +72,9 @@ class G4HadronPhysicsFTF_BIC : public G4VPhysicsConstructor
|
||||
virtual void ExtraConfiguration();
|
||||
|
||||
G4double maxBIC_pion;
|
||||
G4double maxBERT_kaon; //Bertini for kaons
|
||||
G4double minBERT_pion;
|
||||
G4double maxBERT_pion;
|
||||
G4double maxBERT_kaon;
|
||||
G4double maxBIC_proton;
|
||||
G4double maxBIC_neutron;
|
||||
};
|
||||
|
||||
+6
-4
@@ -55,6 +55,8 @@
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
|
||||
class G4ComponentGGHadronNucleusXsc;
|
||||
|
||||
@@ -72,10 +74,10 @@ class G4HadronPhysicsQGSP_BIC_AllHP : public G4VPhysicsConstructor
|
||||
private:
|
||||
void CreateModels();
|
||||
|
||||
const G4double maxFTFP = 25.0*CLHEP::GeV;
|
||||
const G4double minFTFP = 9.5*CLHEP::GeV;
|
||||
const G4double maxBIC = 9.9*CLHEP::GeV;
|
||||
const G4double maxBERT = 5.0*CLHEP::GeV;
|
||||
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;
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ class G4HadronPhysicsQGSP_FTFP_BERT : public G4HadronPhysicsQGSP_BERT
|
||||
G4HadronPhysicsQGSP_FTFP_BERT(G4int verbose =1);
|
||||
G4HadronPhysicsQGSP_FTFP_BERT(const G4String& name, G4bool quasiElastic=true);
|
||||
protected:
|
||||
virtual void DumpBanner() override;
|
||||
//virtual void DumpBanner() override;
|
||||
G4bool QuasiElastic;
|
||||
};
|
||||
|
||||
|
||||
+6
-1
@@ -31,6 +31,8 @@
|
||||
// Author: 2007 tatsumi Koi, Gunter Folger
|
||||
// created from G4HadronPhysicsFTFP_BERT
|
||||
// Modified:
|
||||
// 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
|
||||
// FTF transition energy region
|
||||
//
|
||||
@@ -44,6 +46,7 @@
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
|
||||
class G4HadronPhysicsShielding : public G4VPhysicsConstructor
|
||||
@@ -52,7 +55,9 @@ class G4HadronPhysicsShielding : public G4VPhysicsConstructor
|
||||
explicit G4HadronPhysicsShielding(G4int verbose=1);
|
||||
explicit G4HadronPhysicsShielding(const G4String& name, G4bool );
|
||||
explicit G4HadronPhysicsShielding(const G4String& name, G4int verbose=1,
|
||||
G4double minFTFPEnergy=9.5*CLHEP::GeV, G4double maxBertiniEnergy=9.9*CLHEP::GeV);
|
||||
G4double minFTFPEnergy=G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade(),
|
||||
G4double maxBertiniEnergy=G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade());
|
||||
|
||||
virtual ~G4HadronPhysicsShielding();
|
||||
|
||||
public:
|
||||
|
||||
+3
-1
@@ -41,6 +41,7 @@
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
|
||||
class G4HadronPhysicsShieldingLEND : public G4VPhysicsConstructor
|
||||
@@ -49,7 +50,8 @@ class G4HadronPhysicsShieldingLEND : public G4VPhysicsConstructor
|
||||
explicit G4HadronPhysicsShieldingLEND(G4int verbose=1);
|
||||
explicit G4HadronPhysicsShieldingLEND(const G4String& name, G4bool );
|
||||
explicit G4HadronPhysicsShieldingLEND(const G4String& name, G4int verbose=1,
|
||||
G4double minFTFPEnergy=9.5*CLHEP::GeV, G4double maxBertiniEnergy=9.9*CLHEP::GeV);
|
||||
G4double minFTFPEnergy=G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade(),
|
||||
G4double maxBertiniEnergy=G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade());
|
||||
virtual ~G4HadronPhysicsShieldingLEND();
|
||||
|
||||
public:
|
||||
|
||||
@@ -62,7 +62,6 @@
|
||||
#include "G4FTFBuilder.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4ChipsHyperonInelasticXS.hh"
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
|
||||
#include "G4CascadeInterface.hh"
|
||||
@@ -110,22 +109,25 @@ void G4HadronInelasticQBBC::ConstructProcess()
|
||||
if(!thePreCompound) { thePreCompound = new G4PreCompoundModel(); }
|
||||
|
||||
// configure models
|
||||
const G4double eminFtf = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
const G4double emaxBert = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
|
||||
//G4HadronicInteraction* theQGSP =
|
||||
// BuildModel(new G4QGSBuilder("QGSP",thePreCompound,true,false),12.5*GeV,emax);
|
||||
G4HadronicInteraction* theFTFP =
|
||||
BuildModel(new G4FTFBuilder("FTFP",thePreCompound),3.0*GeV,emax);
|
||||
BuildModel(new G4FTFBuilder("FTFP",thePreCompound),eminFtf,emax);
|
||||
G4HadronicInteraction* theFTFP1 =
|
||||
BuildModel(new G4FTFBuilder("FTFP",thePreCompound),3.0*GeV,emax);
|
||||
BuildModel(new G4FTFBuilder("FTFP",thePreCompound),eminFtf,emax);
|
||||
G4HadronicInteraction* theFTFP2 =
|
||||
BuildModel(new G4FTFBuilder("FTFP",thePreCompound),0.0,emax);
|
||||
|
||||
G4CascadeInterface* casc = new G4CascadeInterface();
|
||||
casc->usePreCompoundDeexcitation();
|
||||
G4HadronicInteraction* theBERT = NewModel(casc,1.0*GeV,5.0*GeV);
|
||||
G4HadronicInteraction* theBERT = NewModel(casc,1.0*GeV,emaxBert);
|
||||
|
||||
casc = new G4CascadeInterface();
|
||||
casc->usePreCompoundDeexcitation();
|
||||
G4HadronicInteraction* theBERT1 = NewModel(casc,0.0*GeV,5.0*GeV);
|
||||
G4HadronicInteraction* theBERT1 = NewModel(casc,0.0*GeV,emaxBert);
|
||||
|
||||
//G4cout << "G4HadronInelasticQBBC::ConstructProcess new Binary"<< G4endl;
|
||||
G4BinaryCascade* bic = new G4BinaryCascade(thePreCompound);
|
||||
@@ -141,6 +143,7 @@ void G4HadronInelasticQBBC::ConstructProcess()
|
||||
if(!kaonxs) {
|
||||
kaonxs = new G4CrossSectionInelastic(new G4ComponentGGHadronNucleusXsc());
|
||||
}
|
||||
|
||||
G4HadronicProcess* hp;
|
||||
// loop over particles
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
@@ -157,8 +160,8 @@ void G4HadronInelasticQBBC::ConstructProcess()
|
||||
//
|
||||
if(pname == "proton") {
|
||||
hp = FindInelasticProcess(particle);
|
||||
//hp->AddDataSet(new G4ParticleInelasticXS(particle));
|
||||
hp->AddDataSet(new G4BGGNucleonInelasticXS(particle));
|
||||
hp->AddDataSet(new G4ParticleInelasticXS(particle));
|
||||
//hp->AddDataSet(new G4BGGNucleonInelasticXS(particle));
|
||||
|
||||
hp->RegisterMe(theFTFP);
|
||||
hp->RegisterMe(theBERT);
|
||||
@@ -209,20 +212,26 @@ void G4HadronInelasticQBBC::ConstructProcess()
|
||||
hp = FindInelasticProcess(particle);
|
||||
hp->RegisterMe(theFTFP1);
|
||||
hp->RegisterMe(theBERT1);
|
||||
hp->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsHyperonInelasticXS::Default_Name()));
|
||||
hp->AddDataSet(kaonxs);
|
||||
|
||||
} else if(pname == "anti_lambda" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_sigma0" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0"
|
||||
) {
|
||||
hp = FindInelasticProcess(particle);
|
||||
hp->RegisterMe(theFTFP2);
|
||||
hp->AddDataSet(kaonxs);
|
||||
|
||||
} else if(pname == "anti_alpha" ||
|
||||
pname == "anti_deuteron"||
|
||||
pname == "anti_He3" ||
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_triton" ||
|
||||
pname == "anti_lambda" ||
|
||||
pname == "anti_neutron" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0"
|
||||
pname == "anti_triton" ||
|
||||
pname == "anti_neutron"
|
||||
) {
|
||||
hp = FindInelasticProcess(particle);
|
||||
hp->RegisterMe(theFTFP2);
|
||||
|
||||
+11
-21
@@ -69,18 +69,16 @@
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronInelasticXS.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
|
||||
#include "G4PhysListUtil.hh"
|
||||
#include "G4Threading.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
// factory
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
@@ -94,14 +92,14 @@ G4HadronPhysicsFTFP_BERT::G4HadronPhysicsFTFP_BERT(const G4String& name, G4bool
|
||||
: G4VPhysicsConstructor(name)
|
||||
, QuasiElastic(quasiElastic)
|
||||
{
|
||||
minFTFP_pion = 3.0 * GeV;
|
||||
maxBERT_pion = 12.0 * GeV;
|
||||
minFTFP_kaon = 3.0 * GeV;
|
||||
maxBERT_kaon = 12.0 * GeV;
|
||||
minFTFP_proton = 3.0 * GeV;
|
||||
maxBERT_proton = 12.0 * GeV;
|
||||
minFTFP_neutron = 3.0 * GeV;
|
||||
maxBERT_neutron = 12.0 * GeV;
|
||||
minFTFP_pion = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_pion = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
minFTFP_kaon = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_kaon = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
minFTFP_proton = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_proton = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
minFTFP_neutron = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_neutron = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
}
|
||||
|
||||
G4HadronPhysicsFTFP_BERT::~G4HadronPhysicsFTFP_BERT()
|
||||
@@ -155,7 +153,7 @@ void G4HadronPhysicsFTFP_BERT::Neutron()
|
||||
auto bertn = new G4BertiniNeutronBuilder;
|
||||
AddBuilder(bertn);
|
||||
neu->RegisterMe(bertn);
|
||||
bertn->SetMinEnergy(0.*GeV);
|
||||
bertn->SetMinEnergy(0.0);
|
||||
bertn->SetMaxEnergy(maxBERT_neutron);
|
||||
neu->Build();
|
||||
}
|
||||
@@ -233,14 +231,6 @@ void G4HadronPhysicsFTFP_BERT::ConstructProcess()
|
||||
#include "G4ProcessManager.hh"
|
||||
void G4HadronPhysicsFTFP_BERT::ExtraConfiguration()
|
||||
{
|
||||
//Modify XS for kaons
|
||||
auto xsk = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(xsk);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
//Modify Neutrons
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
|
||||
|
||||
+40
-2
@@ -32,13 +32,20 @@
|
||||
// This is a modified version of the FTFP_BERT hadron physics for ATLAS.
|
||||
// The hadron physics of FTFP_BERT_ATL has the transition between Bertini
|
||||
// (BERT) intra-nuclear cascade model and Fritiof (FTF) string model in the
|
||||
// energy region [9, 12] GeV (instead of [4, 5] GeV as in FTFP_BERT).
|
||||
// energy region [9, 12] GeV.
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
#include <iomanip>
|
||||
|
||||
#include "G4HadronPhysicsFTFP_BERT_ATL.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4BertiniNeutronBuilder.hh"
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4BertiniProtonBuilder.hh"
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4FTFPProtonBuilder.hh"
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4FTFPPiKBuilder.hh"
|
||||
#include "G4BertiniPiKBuilder.hh"
|
||||
@@ -71,10 +78,41 @@ G4HadronPhysicsFTFP_BERT_ATL::G4HadronPhysicsFTFP_BERT_ATL(const G4String& name,
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT_ATL::DumpBanner()
|
||||
{
|
||||
G4cout << " FTFP_BERT_ATL : new threshold between BERT and FTFP"
|
||||
G4cout << " FTFP_BERT_ATL : threshold between BERT and FTFP"
|
||||
<< " is over the interval " << minFTFP_pion/GeV << " to "<< maxBERT_pion/GeV << " GeV." << G4endl;
|
||||
}
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT_ATL::Neutron()
|
||||
{
|
||||
auto neu = new G4NeutronBuilder;
|
||||
AddBuilder(neu);
|
||||
auto ftfpn = new G4FTFPNeutronBuilder(QuasiElastic);
|
||||
AddBuilder(ftfpn);
|
||||
neu->RegisterMe(ftfpn);
|
||||
ftfpn->SetMinEnergy(minFTFP_neutron);
|
||||
auto bertn = new G4BertiniNeutronBuilder;
|
||||
AddBuilder(bertn);
|
||||
neu->RegisterMe(bertn);
|
||||
bertn->SetMinEnergy(0.0);
|
||||
bertn->SetMaxEnergy(maxBERT_neutron);
|
||||
neu->Build();
|
||||
}
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT_ATL::Proton()
|
||||
{
|
||||
auto pro = new G4ProtonBuilder;
|
||||
AddBuilder(pro);
|
||||
auto ftfpp = new G4FTFPProtonBuilder(QuasiElastic);
|
||||
AddBuilder(ftfpp);
|
||||
pro->RegisterMe(ftfpp);
|
||||
ftfpp->SetMinEnergy(minFTFP_proton);
|
||||
auto bertp = new G4BertiniProtonBuilder;
|
||||
AddBuilder(bertp);
|
||||
pro->RegisterMe(bertp);
|
||||
bertp->SetMaxEnergy(maxBERT_proton);
|
||||
pro->Build();
|
||||
}
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT_ATL::Pion()
|
||||
{
|
||||
auto pik = new G4PiKBuilder;
|
||||
|
||||
@@ -38,8 +38,6 @@
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
@@ -103,14 +101,6 @@ void G4HadronPhysicsFTFP_BERT_HP::Neutron()
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT_HP::ExtraConfiguration()
|
||||
{
|
||||
//Modify XS for kaons
|
||||
auto xsk = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(xsk);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
// --- Neutrons ---
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* capture = G4PhysListUtil::FindCaptureProcess(neutron);
|
||||
|
||||
+12
-26
@@ -41,7 +41,6 @@
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4FTFPPiKBuilder.hh"
|
||||
#include "G4BertiniPiKBuilder.hh"
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
@@ -52,11 +51,11 @@
|
||||
#include "G4ios.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
|
||||
#include "G4PhysListUtil.hh"
|
||||
#include "G4Threading.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
// factory
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
@@ -69,18 +68,18 @@ G4HadronPhysicsFTFP_BERT_TRV::G4HadronPhysicsFTFP_BERT_TRV(G4int) :
|
||||
G4HadronPhysicsFTFP_BERT_TRV::G4HadronPhysicsFTFP_BERT_TRV(const G4String& name, G4bool quasiElastic)
|
||||
: G4HadronPhysicsFTFP_BERT(name,quasiElastic)
|
||||
{
|
||||
//Change configuration parameters of FTFP_BERT
|
||||
minFTFP_pion = 2.0 * GeV;
|
||||
maxBERT_pion = 4.0 * GeV;
|
||||
minFTFP_kaon = 2.0 * GeV;
|
||||
maxBERT_kaon = 4.0 * GeV;
|
||||
minFTFP_proton = 2.0 * GeV;
|
||||
maxBERT_proton = 4.0 * GeV;
|
||||
minFTFP_neutron = 2.0 * GeV;
|
||||
maxBERT_neutron = 4.0 * GeV;
|
||||
minFTFP_pion = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_pion = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
minFTFP_kaon = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_kaon = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
minFTFP_proton = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_proton = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
minFTFP_neutron = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_neutron = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
QuasiElastic = false;
|
||||
}
|
||||
|
||||
/*
|
||||
void G4HadronPhysicsFTFP_BERT_TRV::DumpBanner()
|
||||
{
|
||||
G4cout << " Revised FTFTP_BERT_TRV - new threshold between BERT and FTFP "
|
||||
@@ -89,6 +88,7 @@ void G4HadronPhysicsFTFP_BERT_TRV::DumpBanner()
|
||||
G4cout << " -- quasiElastic was asked to be " << QuasiElastic
|
||||
<< " and it is reset to " << false << G4endl;
|
||||
}
|
||||
*/
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT_TRV::Pion()
|
||||
{
|
||||
@@ -112,20 +112,6 @@ void G4HadronPhysicsFTFP_BERT_TRV::Kaon() {
|
||||
|
||||
void G4HadronPhysicsFTFP_BERT_TRV::ExtraConfiguration()
|
||||
{
|
||||
//Modify XS for kaons and hyperons
|
||||
auto ggComponent = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet* ggxs = new G4CrossSectionInelastic(ggComponent);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4Lambda::Lambda())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4SigmaMinus::SigmaMinus())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4SigmaPlus::SigmaPlus())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4XiMinus::XiMinus())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4XiZero::XiZero())->AddDataSet(ggxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4OmegaMinus::OmegaMinus())->AddDataSet(ggxs);
|
||||
|
||||
//Modify Neutrons
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
|
||||
|
||||
+28
-32
@@ -117,8 +117,7 @@ G4HadronPhysicsFTFQGSP_BERT::G4HadronPhysicsFTFQGSP_BERT(G4int)
|
||||
, theAntiHe3Inelastic(0)
|
||||
, theAntiAlphaInelastic(0)
|
||||
, thePiXS(0)
|
||||
, theKaonXS(0)
|
||||
, theChipsHyperonInelasticXS(0)
|
||||
, theKaonAndHyperonXS(0)
|
||||
, theAntiNucleonXS(0)
|
||||
, theNeutronInelasticXS(0)
|
||||
, theNeutronCaptureXS(0)
|
||||
@@ -167,8 +166,7 @@ G4HadronPhysicsFTFQGSP_BERT::G4HadronPhysicsFTFQGSP_BERT(const G4String& name, G
|
||||
, theAntiHe3Inelastic(0)
|
||||
, theAntiAlphaInelastic(0)
|
||||
, thePiXS(0)
|
||||
, theKaonXS(0)
|
||||
, theChipsHyperonInelasticXS(0)
|
||||
, theKaonAndHyperonXS(0)
|
||||
, theAntiNucleonXS(0)
|
||||
, theNeutronInelasticXS(0)
|
||||
, theNeutronCaptureXS(0)
|
||||
@@ -177,9 +175,8 @@ G4HadronPhysicsFTFQGSP_BERT::G4HadronPhysicsFTFQGSP_BERT(const G4String& name, G
|
||||
|
||||
void G4HadronPhysicsFTFQGSP_BERT::CreateModels()
|
||||
{
|
||||
|
||||
G4double minFTFP = 3.0 * GeV;
|
||||
G4double maxBERT = 12.0 * GeV;
|
||||
G4double minFTFP = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
G4double maxBERT = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
G4cout << " FTFQGSP_BERT : similar to FTFP_BERT but with" << G4endl
|
||||
<< " QGS string fragmentation (instead of Lund string fragmentation)." << G4endl;
|
||||
|
||||
@@ -199,24 +196,24 @@ void G4HadronPhysicsFTFQGSP_BERT::CreateModels()
|
||||
|
||||
// BERT for neutrons, protons, pions, and kaons
|
||||
theBertini1 = new G4CascadeInterface;
|
||||
theBertini1->SetMinEnergy( 0.0*GeV );
|
||||
theBertini1->SetMinEnergy( 0.0 );
|
||||
theBertini1->SetMaxEnergy( maxBERT );
|
||||
|
||||
// FTF for hyperons
|
||||
theModel2 = new G4TheoFSGenerator( "FTFP" );
|
||||
theModel2->SetMinEnergy( 2.0*GeV );
|
||||
theModel2->SetMinEnergy( G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade() );
|
||||
theModel2->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() );
|
||||
theModel2->SetTransport( theCascade );
|
||||
theModel2->SetHighEnergyGenerator( theStringModel );
|
||||
|
||||
// BERT for hyperons
|
||||
theBertini2 = new G4CascadeInterface;
|
||||
theBertini2->SetMinEnergy( 0.0*GeV );
|
||||
theBertini2->SetMaxEnergy( 6.0*GeV );
|
||||
theBertini2->SetMinEnergy( 0.0 );
|
||||
theBertini2->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade() );
|
||||
|
||||
// FTF for Antibaryons
|
||||
theModel3 = new G4TheoFSGenerator( "FTFP" );
|
||||
theModel3->SetMinEnergy( 0.0*GeV );
|
||||
theModel3->SetMinEnergy( 0.0 );
|
||||
theModel3->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() );
|
||||
theModel3->SetTransport( theCascade );
|
||||
theModel3->SetHighEnergyGenerator( theStringModel );
|
||||
@@ -229,10 +226,9 @@ void G4HadronPhysicsFTFQGSP_BERT::CreateModels()
|
||||
// Cross sections
|
||||
thePiXS = new G4BGGPionInelasticXS( G4PionMinus::Definition() );
|
||||
theAntiNucleonXS = new G4CrossSectionInelastic( new G4ComponentAntiNuclNuclearXS );
|
||||
theKaonXS = new G4CrossSectionInelastic( new G4ComponentGGHadronNucleusXsc );
|
||||
theChipsHyperonInelasticXS = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4ChipsHyperonInelasticXS::Default_Name() );
|
||||
theNeutronInelasticXS = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4NeutronInelasticXS::Default_Name() );
|
||||
theNeutronCaptureXS = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4NeutronCaptureXS::Default_Name() );
|
||||
theKaonAndHyperonXS = new G4CrossSectionInelastic( new G4ComponentGGHadronNucleusXsc );
|
||||
theNeutronInelasticXS = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4NeutronInelasticXS::Default_Name() );
|
||||
theNeutronCaptureXS = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4NeutronCaptureXS::Default_Name() );
|
||||
}
|
||||
|
||||
|
||||
@@ -301,106 +297,106 @@ void G4HadronPhysicsFTFQGSP_BERT::ConstructProcess()
|
||||
theKaonMinusInelastic = new G4KaonMinusInelasticProcess();
|
||||
theKaonMinusInelastic->RegisterMe( theModel1 );
|
||||
theKaonMinusInelastic->RegisterMe( theBertini1 );
|
||||
theKaonMinusInelastic->AddDataSet( theKaonXS );
|
||||
theKaonMinusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4KaonMinus::KaonMinus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theKaonMinusInelastic );
|
||||
|
||||
theKaonPlusInelastic = new G4KaonPlusInelasticProcess();
|
||||
theKaonPlusInelastic->RegisterMe( theModel1 );
|
||||
theKaonPlusInelastic->RegisterMe( theBertini1 );
|
||||
theKaonPlusInelastic->AddDataSet( theKaonXS );
|
||||
theKaonPlusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4KaonPlus::KaonPlus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theKaonPlusInelastic );
|
||||
|
||||
theKaonZeroLInelastic = new G4KaonZeroLInelasticProcess();
|
||||
theKaonZeroLInelastic->RegisterMe( theModel1 );
|
||||
theKaonZeroLInelastic->RegisterMe( theBertini1 );
|
||||
theKaonZeroLInelastic->AddDataSet( theKaonXS );
|
||||
theKaonZeroLInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theKaonZeroLInelastic );
|
||||
|
||||
theKaonZeroSInelastic = new G4KaonZeroSInelasticProcess();
|
||||
theKaonZeroSInelastic->RegisterMe( theModel1 );
|
||||
theKaonZeroSInelastic->RegisterMe( theBertini1 );
|
||||
theKaonZeroSInelastic->AddDataSet( theKaonXS );
|
||||
theKaonZeroSInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theKaonZeroSInelastic );
|
||||
|
||||
theLambdaInelastic = new G4LambdaInelasticProcess();
|
||||
theLambdaInelastic->RegisterMe( theModel2 );
|
||||
theLambdaInelastic->RegisterMe( theBertini2 );
|
||||
theLambdaInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theLambdaInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4Lambda::Lambda()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theLambdaInelastic );
|
||||
|
||||
theAntiLambdaInelastic = new G4AntiLambdaInelasticProcess();
|
||||
theAntiLambdaInelastic->RegisterMe( theModel3 );
|
||||
theAntiLambdaInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theAntiLambdaInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theAntiLambdaInelastic );
|
||||
|
||||
theSigmaMinusInelastic = new G4SigmaMinusInelasticProcess();
|
||||
theSigmaMinusInelastic->RegisterMe( theModel2 );
|
||||
theSigmaMinusInelastic->RegisterMe( theBertini2 );
|
||||
theSigmaMinusInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theSigmaMinusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theSigmaMinusInelastic );
|
||||
|
||||
theAntiSigmaMinusInelastic = new G4AntiSigmaMinusInelasticProcess();
|
||||
theAntiSigmaMinusInelastic->RegisterMe( theModel3 );
|
||||
theAntiSigmaMinusInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theAntiSigmaMinusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theAntiSigmaMinusInelastic );
|
||||
|
||||
theSigmaPlusInelastic = new G4SigmaPlusInelasticProcess();
|
||||
theSigmaPlusInelastic->RegisterMe( theModel2 );
|
||||
theSigmaPlusInelastic->RegisterMe( theBertini2 );
|
||||
theSigmaPlusInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theSigmaPlusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theSigmaPlusInelastic );
|
||||
|
||||
theAntiSigmaPlusInelastic = new G4AntiSigmaPlusInelasticProcess();
|
||||
theAntiSigmaPlusInelastic->RegisterMe( theModel3 );
|
||||
theAntiSigmaPlusInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theAntiSigmaPlusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theAntiSigmaPlusInelastic );
|
||||
|
||||
theXiMinusInelastic = new G4XiMinusInelasticProcess();
|
||||
theXiMinusInelastic->RegisterMe( theModel2 );
|
||||
theXiMinusInelastic->RegisterMe( theBertini2 );
|
||||
theXiMinusInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theXiMinusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theXiMinusInelastic );
|
||||
|
||||
theAntiXiMinusInelastic = new G4AntiXiMinusInelasticProcess();
|
||||
theAntiXiMinusInelastic->RegisterMe( theModel3 );
|
||||
theAntiXiMinusInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theAntiXiMinusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theAntiXiMinusInelastic );
|
||||
|
||||
theXiZeroInelastic = new G4XiZeroInelasticProcess();
|
||||
theXiZeroInelastic->RegisterMe( theModel2 );
|
||||
theXiZeroInelastic->RegisterMe( theBertini2 );
|
||||
theXiZeroInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theXiZeroInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4XiZero::XiZero()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theXiZeroInelastic );
|
||||
|
||||
theAntiXiZeroInelastic = new G4AntiXiZeroInelasticProcess();
|
||||
theAntiXiZeroInelastic->RegisterMe( theModel3 );
|
||||
theAntiXiZeroInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theAntiXiZeroInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theAntiXiZeroInelastic );
|
||||
|
||||
theOmegaMinusInelastic = new G4OmegaMinusInelasticProcess();
|
||||
theOmegaMinusInelastic->RegisterMe( theModel2 );
|
||||
theOmegaMinusInelastic->RegisterMe( theBertini2 );
|
||||
theOmegaMinusInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theOmegaMinusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theOmegaMinusInelastic );
|
||||
|
||||
theAntiOmegaMinusInelastic = new G4AntiOmegaMinusInelasticProcess();
|
||||
theAntiOmegaMinusInelastic->RegisterMe( theModel3 );
|
||||
theAntiOmegaMinusInelastic->AddDataSet( theChipsHyperonInelasticXS );
|
||||
theAntiOmegaMinusInelastic->AddDataSet( theKaonAndHyperonXS );
|
||||
aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
|
||||
aProcMan->AddDiscreteProcess( theAntiOmegaMinusInelastic );
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
#include "G4PionBuilder.hh"
|
||||
#include "G4KaonBuilder.hh"
|
||||
#include "G4BinaryPionBuilder.hh"
|
||||
#include "G4BertiniPionBuilder.hh"
|
||||
#include "G4BertiniKaonBuilder.hh"
|
||||
#include "G4FTFBinaryPionBuilder.hh"
|
||||
#include "G4FTFBinaryKaonBuilder.hh"
|
||||
@@ -61,14 +62,13 @@
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronInelasticXS.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
#include "G4PhysListUtil.hh"
|
||||
#include "G4HadronicParameters.hh"
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTF_BIC);
|
||||
@@ -80,10 +80,10 @@ G4HadronPhysicsFTF_BIC::G4HadronPhysicsFTF_BIC(const G4String& name, G4bool quas
|
||||
: G4VPhysicsConstructor(name)
|
||||
, QuasiElastic(quasiElastic)
|
||||
{
|
||||
maxBIC_neutron = 5.*GeV;
|
||||
maxBIC_proton = 5.*GeV;
|
||||
maxBERT_kaon = 5.*GeV;
|
||||
maxBIC_pion = 5.*GeV;
|
||||
maxBIC_neutron = maxBIC_proton = maxBERT_kaon = maxBERT_pion =
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
maxBIC_pion = 1.5*GeV;
|
||||
minBERT_pion = 1.0*GeV;
|
||||
}
|
||||
|
||||
G4HadronPhysicsFTF_BIC::~G4HadronPhysicsFTF_BIC()
|
||||
@@ -113,7 +113,7 @@ void G4HadronPhysicsFTF_BIC::Neutron()
|
||||
auto bicn = new G4BinaryNeutronBuilder;
|
||||
AddBuilder(bicn);
|
||||
neu->RegisterMe(bicn);
|
||||
bicn->SetMinEnergy(0.*GeV);
|
||||
bicn->SetMinEnergy(0.0);
|
||||
bicn->SetMaxEnergy(maxBIC_neutron);
|
||||
neu->Build();
|
||||
}
|
||||
@@ -139,6 +139,11 @@ void G4HadronPhysicsFTF_BIC::Pion()
|
||||
auto ftfpi = new G4FTFBinaryPionBuilder(QuasiElastic);
|
||||
AddBuilder(ftfpi);
|
||||
pi->RegisterMe(ftfpi);
|
||||
auto bertpi = new G4BertiniPionBuilder;
|
||||
AddBuilder(bertpi);
|
||||
bertpi->SetMinEnergy(minBERT_pion);
|
||||
bertpi->SetMaxEnergy(maxBERT_pion);
|
||||
pi->RegisterMe(bertpi);
|
||||
auto bicpi = new G4BinaryPionBuilder;
|
||||
AddBuilder(bicpi);
|
||||
pi->RegisterMe(bicpi);
|
||||
@@ -199,14 +204,6 @@ void G4HadronPhysicsFTF_BIC::ConstructProcess()
|
||||
#include "G4PhysListUtil.hh"
|
||||
void G4HadronPhysicsFTF_BIC::ExtraConfiguration()
|
||||
{
|
||||
// --- Kaons ---
|
||||
auto xsk = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(xsk);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
// --- Neutrons ---
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
|
||||
|
||||
@@ -81,8 +81,6 @@
|
||||
#include "G4AntiBarionBuilder.hh"
|
||||
#include "G4FTFPAntiBarionBuilder.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
@@ -279,14 +277,6 @@ void G4HadronPhysicsINCLXX::ConstructProcess()
|
||||
|
||||
void G4HadronPhysicsINCLXX::ExtraConfiguration()
|
||||
{
|
||||
// --- Kaons ---
|
||||
auto xsk = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(xsk);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
// --- Neutrons ---
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* capture = G4PhysListUtil::FindCaptureProcess(neutron);
|
||||
|
||||
+11
-15
@@ -74,16 +74,16 @@
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronInelasticXS.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
|
||||
#include "G4PhysListUtil.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BERT);
|
||||
@@ -96,11 +96,15 @@ G4HadronPhysicsQGSP_BERT::G4HadronPhysicsQGSP_BERT(const G4String& name, G4bool
|
||||
{
|
||||
QuasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
|
||||
QuasiElasticQGS= true; // For QGS, it must use it.
|
||||
minQGSP_proton = minQGSP_neutron = minQGSP_pik = 12.*GeV;
|
||||
maxFTFP_proton = maxFTFP_neutron = maxFTFP_pik = 25.*GeV;
|
||||
minFTFP_proton = minFTFP_neutron = minFTFP_pik = 9.5*GeV;
|
||||
maxBERT_proton = maxBERT_neutron = maxBERT_pik = 9.9*GeV;
|
||||
minBERT_proton = minBERT_neutron = minBERT_pik = 0.*GeV;
|
||||
minQGSP_proton = minQGSP_neutron = minQGSP_pik =
|
||||
G4HadronicParameters::Instance()->GetMinEnergyTransitionQGS_FTF();
|
||||
maxFTFP_proton = maxFTFP_neutron = maxFTFP_pik =
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF();
|
||||
minFTFP_proton = minFTFP_neutron = minFTFP_pik =
|
||||
G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_proton = maxBERT_neutron = maxBERT_pik =
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
minBERT_proton = minBERT_neutron = minBERT_pik = 0.0;
|
||||
|
||||
}
|
||||
|
||||
@@ -215,14 +219,6 @@ void G4HadronPhysicsQGSP_BERT::ConstructParticle()
|
||||
|
||||
void G4HadronPhysicsQGSP_BERT::ExtraConfiguration()
|
||||
{
|
||||
//Modify XS for kaons
|
||||
auto xsk = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(xsk);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
//Modify Neutrons
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
|
||||
|
||||
@@ -56,8 +56,6 @@
|
||||
#include "G4BertiniNeutronBuilder.hh"
|
||||
#include "G4NeutronPHPBuilder.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
@@ -113,14 +111,6 @@ void G4HadronPhysicsQGSP_BERT_HP::Neutron()
|
||||
|
||||
void G4HadronPhysicsQGSP_BERT_HP::ExtraConfiguration()
|
||||
{
|
||||
//Modify XS for kaons
|
||||
auto xsk = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(xsk);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
// --- Neutrons ---
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* capture = G4PhysListUtil::FindCaptureProcess(neutron);
|
||||
|
||||
@@ -72,14 +72,14 @@
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronInelasticXS.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
|
||||
#include "G4PhysListUtil.hh"
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC);
|
||||
@@ -93,12 +93,14 @@ G4HadronPhysicsQGSP_BIC::G4HadronPhysicsQGSP_BIC(const G4String& name, G4bool)
|
||||
{
|
||||
QuasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
|
||||
QuasiElasticQGS= true; // For QGS, it must use it.
|
||||
minQGSP_proton = minQGSP_neutron = minQGSP_pik = 12.0*GeV;
|
||||
maxFTFP_proton = maxFTFP_neutron = maxFTFP_pik = 25.0*GeV;
|
||||
minFTFP_proton = minFTFP_neutron = 9.5*GeV;
|
||||
minFTFP_pik = 4.*GeV;
|
||||
maxBIC_proton = maxBIC_neutron = 9.9*GeV;
|
||||
maxBERT_pik = 5.0*GeV;
|
||||
minQGSP_proton = minQGSP_neutron = minQGSP_pik =
|
||||
G4HadronicParameters::Instance()->GetMinEnergyTransitionQGS_FTF();
|
||||
maxFTFP_proton = maxFTFP_neutron = maxFTFP_pik =
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF();
|
||||
minFTFP_proton = minFTFP_neutron = minFTFP_pik =
|
||||
G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBIC_proton = maxBIC_neutron = maxBERT_pik =
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
}
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC::CreateModels()
|
||||
@@ -212,14 +214,6 @@ void G4HadronPhysicsQGSP_BIC::ConstructProcess()
|
||||
|
||||
void G4HadronPhysicsQGSP_BIC::ExtraConfiguration()
|
||||
{
|
||||
// --- Kaons ---
|
||||
auto xsk = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(xsk);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
// --- Neutrons ---
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
|
||||
|
||||
-10
@@ -41,8 +41,6 @@
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
@@ -157,14 +155,6 @@ void G4HadronPhysicsQGSP_BIC_AllHP::ConstructProcess()
|
||||
tpdata->thePro->Build();
|
||||
tpdata->thePiK->Build();
|
||||
|
||||
// --- Kaons ---
|
||||
G4VCrossSectionDataSet * kaonxs =
|
||||
new G4CrossSectionInelastic(new G4ComponentGGHadronNucleusXsc());
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
tpdata->theHyperon->Build();
|
||||
tpdata->theAntiBaryon->Build();
|
||||
|
||||
|
||||
+4
-14
@@ -54,8 +54,6 @@
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
@@ -87,10 +85,10 @@ void G4HadronPhysicsQGSP_BIC_HP::CreateModels()
|
||||
G4bool quasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
|
||||
G4bool quasiElasticQGS= true; // For QGS, it must use it.
|
||||
|
||||
const G4double maxFTFP = 25.0*GeV;
|
||||
const G4double minFTFP = 9.5*GeV;
|
||||
const G4double maxBIC = 9.9*GeV;
|
||||
const G4double maxBERT = 5.0*GeV;
|
||||
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
|
||||
@@ -172,14 +170,6 @@ void G4HadronPhysicsQGSP_BIC_HP::ConstructProcess()
|
||||
tpdata->thePro->Build();
|
||||
tpdata->thePiK->Build();
|
||||
|
||||
// --- Kaons ---
|
||||
G4VCrossSectionDataSet * kaonxs =
|
||||
new G4CrossSectionInelastic(new G4ComponentGGHadronNucleusXsc());
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
tpdata->theHyperon->Build();
|
||||
tpdata->theAntiBaryon->Build();
|
||||
|
||||
|
||||
+8
-2
@@ -37,6 +37,7 @@
|
||||
|
||||
#include "G4HadronPhysicsQGSP_FTFP_BERT.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4HadronicParameters.hh"
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_FTFP_BERT);
|
||||
@@ -49,11 +50,14 @@ G4HadronPhysicsQGSP_FTFP_BERT::G4HadronPhysicsQGSP_FTFP_BERT(const G4String& nam
|
||||
G4bool quasiElastic)
|
||||
: G4HadronPhysicsQGSP_BERT(name,quasiElastic), QuasiElastic(quasiElastic)
|
||||
{
|
||||
maxBERT_proton = maxBERT_neutron = maxBERT_pik = 8.*GeV;
|
||||
minFTFP_proton = minFTFP_neutron = minFTFP_pik = 6.*GeV;
|
||||
minFTFP_proton = minFTFP_neutron = minFTFP_pik =
|
||||
G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBERT_proton = maxBERT_neutron = maxBERT_pik =
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
void G4HadronPhysicsQGSP_FTFP_BERT::DumpBanner()
|
||||
{
|
||||
G4cout << " New QGSP_FTFP_BERT physics list, replaces LEP with FTF/P for p/n/pi (/K?)";
|
||||
@@ -66,3 +70,5 @@ void G4HadronPhysicsQGSP_FTFP_BERT::DumpBanner()
|
||||
<< " Changed to " << QuasiElasticQGS << " for QGS "
|
||||
<< " and to " << QuasiElasticFTF << " (must be false) for FTF" << G4endl;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
@@ -74,8 +74,6 @@
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4NeutronInelasticXS.hh"
|
||||
@@ -84,6 +82,7 @@
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
|
||||
#include "G4PhysListUtil.hh"
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
@@ -98,17 +97,17 @@ G4HadronPhysicsQGS_BIC::G4HadronPhysicsQGS_BIC(const G4String& name, G4bool /* q
|
||||
QuasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
|
||||
QuasiElasticQGS= true; // For QGS, it must use it.
|
||||
|
||||
maxFTF_neutron = maxFTF_proton = 25.*GeV;
|
||||
minFTF_neutron = minFTF_proton = 9.5*GeV;
|
||||
maxBIC_neutron = maxBIC_proton = 9.9*GeV;
|
||||
maxFTF_neutron = maxFTF_proton = G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF();
|
||||
minFTF_neutron = minFTF_proton = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
maxBIC_neutron = maxBIC_proton = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
|
||||
maxFTF_pion = 25.*GeV;
|
||||
maxBERT_pion = 5.0*GeV;
|
||||
minBERT_pion = 1.2*GeV;
|
||||
maxBIC_pion = 1.3*GeV;
|
||||
maxFTF_pion = G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF();
|
||||
maxBERT_pion = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
minBERT_pion = 1.0*GeV;
|
||||
maxBIC_pion = 1.5*GeV;
|
||||
|
||||
maxFTF_kaon = 25.*GeV;
|
||||
maxBERT_kaon = 5.0*GeV;
|
||||
maxFTF_kaon = G4HadronicParameters::Instance()->GetMaxEnergyTransitionQGS_FTF();
|
||||
maxBERT_kaon = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
}
|
||||
|
||||
G4HadronPhysicsQGS_BIC::~G4HadronPhysicsQGS_BIC()
|
||||
@@ -247,14 +246,6 @@ void G4HadronPhysicsQGS_BIC::ConstructProcess()
|
||||
|
||||
void G4HadronPhysicsQGS_BIC::ExtraConfiguration()
|
||||
{
|
||||
// --- Kaons ---
|
||||
auto xsk = new G4ComponentGGHadronNucleusXsc();
|
||||
G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(xsk);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
|
||||
G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
|
||||
|
||||
// --- Neutrons ---
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
// 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
|
||||
// FTF transition energy region
|
||||
//
|
||||
@@ -107,8 +109,8 @@ G4HadronPhysicsShielding::G4HadronPhysicsShielding( G4int )
|
||||
: G4VPhysicsConstructor("hInelastic Shielding")
|
||||
, useLEND_(false)
|
||||
, evaluation_()
|
||||
, minFTFPEnergy_(9.5*GeV)
|
||||
, maxBertiniEnergy_(9.9*GeV)
|
||||
, minFTFPEnergy_(G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade())
|
||||
, maxBertiniEnergy_(G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade())
|
||||
, minNonHPNeutronEnergy_(19.9*MeV)
|
||||
{}
|
||||
|
||||
@@ -116,8 +118,8 @@ G4HadronPhysicsShielding::G4HadronPhysicsShielding(const G4String& name, G4bool
|
||||
: G4VPhysicsConstructor(name)
|
||||
, useLEND_(false)
|
||||
, evaluation_()
|
||||
, minFTFPEnergy_(9.5*GeV)
|
||||
, maxBertiniEnergy_(9.9*GeV)
|
||||
, minFTFPEnergy_(G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade())
|
||||
, maxBertiniEnergy_(G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade())
|
||||
, minNonHPNeutronEnergy_(19.9*MeV)
|
||||
{}
|
||||
|
||||
|
||||
+4
-4
@@ -104,8 +104,8 @@ G4HadronPhysicsShieldingLEND::G4HadronPhysicsShieldingLEND( G4int )
|
||||
: G4VPhysicsConstructor("hInelastic ShieldingLEND")
|
||||
, useLEND_(false)
|
||||
, evaluation_()
|
||||
, minFTFPEnergy_(9.5*GeV)
|
||||
, maxBertiniEnergy_(9.9*GeV)
|
||||
, minFTFPEnergy_(G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade())
|
||||
, maxBertiniEnergy_(G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade())
|
||||
, minNonHPNeutronEnergy_(19.9*MeV)
|
||||
{}
|
||||
|
||||
@@ -113,8 +113,8 @@ G4HadronPhysicsShieldingLEND::G4HadronPhysicsShieldingLEND(const G4String& name,
|
||||
: G4VPhysicsConstructor(name)
|
||||
, useLEND_(false)
|
||||
, evaluation_()
|
||||
, minFTFPEnergy_(9.5*GeV)
|
||||
, maxBertiniEnergy_(9.9*GeV)
|
||||
, minFTFPEnergy_(G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade())
|
||||
, maxBertiniEnergy_(G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade())
|
||||
, minNonHPNeutronEnergy_(19.9*MeV)
|
||||
{}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user