Import Geant4 10.6.0 source tree

This commit is contained in:
Gabriele Cosmo
2019-12-06 15:12:28 +01:00
parent b2a62ae692
commit 5baee230e9
2997 changed files with 141580 additions and 98673 deletions
@@ -13,6 +13,17 @@ introduced in the code and keeptrack of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
22-Oct-2019, A. Ribon (phys-ctor-helastic-V10-05-03)
- G4HadronElasticPhysics, G4HadronDElasticPhysics : use the Glauber-Gribov
elastic cross section for anti-baryons also for anti-neutron;
extended to sigma0, anti_sigma0 and xi0.
- G4HadronHElasticPhysics : use the Glauber-Gribov elastic cross section
for anti-hyperons (instead of Chips).
- README : updated.
06-Aug-2019, V. Ivanchenko (phys-ctor-helastic-V10-05-02)
- G4HadronElasticPhysics - use HE elastic model for the full energy range
08-May-2019, V. Ivanchenko (phys-ctor-helastic-V10-05-01)
- G4HadronElasticPhysics : use Glauber-Gribov x-section for hyperons
- G4HadronDElasticPhysics, G4HadronDElasticPhysics : use
@@ -1,31 +1,6 @@
-------------------------------------------------------------------
G4ChargeExchangePhysics
-----------------------
Hadron nuclear coherent charge exchange, used in this constructor
only for nucleons and charged pions.
G4HadronDElasticPhysics
-----------------------
Hadron nuclear elastic process for all hadrons:
- proton and charged pions:
- cross section: Barashenkov-Glauber-Gribov
- final-state: Diffuse model where applicable, else Gheisha
- neutron:
- cross section: G4NeutronElasticXS
- final-state: Diffuse model where applicable, else Gheisha
- kaons
- cross section: Chips
- final-state: Diffuse model where applicable, else Gheisha
- hyperons, anti-hyperons, deuteron, triton, alpha
- cross section: Gheisha
- final-state: Gheisha
- anti_proton, anti_deuteron, anti_triton, anti_He3, anti_alpha
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
- final-state: Galoyan-Uzhinsky model above 100 MeV/nucleon,
Gheisha below.
G4HadronElasticPhysics
----------------------
Hadron nuclear elastic process for all hadrons:
@@ -37,17 +12,15 @@
- final-state: Chips
- charged pions:
- cross section: Barashenkov-Glauber-Gribov
- final-state: Starkov's model above 1 GeV, Gheisha below.
- kaons
- final-state: Starkov's model (G4ElasticHadrNucleusHE) for all energies
- kaons, hyperons, anti-hyperons
- cross section: Glauber-Gribov
- final-state: Gheisha
- hyperons, anti-hyperons
- cross section: Gheisha
- final-state: Gheisha
- deuteron, triton, He3, alpha
- cross section: Glauber-Gribov
- final-state: Gheisha
- anti_proton, anti_deuteron, anti_triton, anti_He3, anti_alpha
- anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3,
anti_alpha
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
- final-state: Galoyan-Uzhinsky model above 100 MeV/nucleon,
Gheisha below.
@@ -82,9 +55,9 @@
- kaons, hyperons, anti-hyperons
- cross section: Glauber-Gribov
- final-state: Chips
- deuteron, triton, He3, alpha, and generic ions
- deuteron, triton, He3, alpha
- cross section: Glauber-Gribov
- final-state: Diffuse
- final-state: Gheisha
- anti_proton, anti_neutron
- cross section: Galoyan-Uzhinsky-Glauber-Gribov
- final-state: Galoyan-Uzhinsky model above 100 MeV/nucleon,
@@ -101,3 +74,30 @@
- cross section: Glauber-Gribov
- final-state: Diffuse model
G4HadronDElasticPhysics
-----------------------
Hadron nuclear elastic process for all hadrons:
- proton and charged pions:
- cross section: Barashenkov-Glauber-Gribov
- final-state: Diffuse model where applicable, else Gheisha
- neutron:
- cross section: G4NeutronElasticXS
- final-state: Diffuse model where applicable, else Gheisha
- kaons
- cross section: Glauber-Gribov
- final-state: Diffuse model where applicable, else Gheisha
- hyperons, anti-hyperons, deuteron, triton, He3, alpha
- cross section: Glauber-Gribov
- final-state: Gheisha
- anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3,
anti_alpha
- cross-section: Galoyan-Uzhinsky-Glauber-Gribov
- final-state: Galoyan-Uzhinsky model above 100 MeV/nucleon,
Gheisha below.
G4ChargeExchangePhysics
-----------------------
Hadron nuclear coherent charge exchange, used in this constructor
only for nucleons and charged pions.
@@ -148,21 +148,20 @@ void G4HadronDElasticPhysics::ConstructProcess()
G4ProcessManager* pmanager = particle->GetProcessManager();
G4String pname = particle->GetParticleName();
if(pname == "anti_lambda" ||
pname == "anti_neutron" ||
pname == "anti_omega-" ||
pname == "anti_sigma-" ||
pname == "anti_sigma0" ||
pname == "anti_sigma+" ||
pname == "anti_xi-" ||
pname == "anti_xi0" ||
pname == "lambda" ||
pname == "omega-" ||
pname == "sigma-" ||
pname == "sigma+" ||
pname == "xi-" ||
pname == "alpha" ||
pname == "deuteron" ||
pname == "triton"
) {
pname == "anti_xi-" ||
pname == "anti_xi0" ||
pname == "lambda" ||
pname == "omega-" ||
pname == "sigma-" ||
pname == "sigma0" ||
pname == "sigma+" ||
pname == "xi-" ||
pname == "xi0"
) {
hel = new G4HadronElasticProcess();
hel->RegisterMe(lhep0);
@@ -177,7 +176,6 @@ void G4HadronDElasticPhysics::ConstructProcess()
hel = new G4HadronElasticProcess();
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
//hel->AddDataSet(new G4CHIPSElasticXS());
model = new G4DiffuseElastic();
hel->RegisterMe(lhep1);
hel->RegisterMe(model);
@@ -218,7 +216,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
) {
hel = new G4HadronElasticProcess();
model = new G4DiffuseElastic();
model = new G4DiffuseElastic();
hel->RegisterMe(lhep1);
hel->RegisterMe(model);
hel->AddDataSet( theComponentGGHadronNucleusData );
@@ -242,6 +240,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
}
} else if(
pname == "anti_neutron" ||
pname == "anti_proton" ||
pname == "anti_alpha" ||
pname == "anti_deuteron" ||
@@ -103,14 +103,12 @@ void G4HadronElasticPhysics::ConstructParticle()
void G4HadronElasticPhysics::ConstructProcess()
{
const G4double elimitPi = 1.0*GeV;
const G4double elimitAntiNuc = 100.*MeV;
const G4double delta = 0.1*MeV;
if(verbose > 1) {
G4cout << "### HadronElasticPhysics::ConstructProcess: Elimit for pi "
<< elimitPi/GeV << " GeV" << G4endl;
G4cout << " for anti-neuclei "
<< elimitAntiNuc/GeV << " GeV" << G4endl;
G4cout << "### HadronElasticPhysics::ConstructProcess: "
<< "Elimit for for anti-neuclei " << elimitAntiNuc/GeV << " GeV"
<< G4endl;
}
G4AntiNuclElastic* anuc = new G4AntiNuclElastic();
@@ -119,13 +117,10 @@ void G4HadronElasticPhysics::ConstructProcess()
new G4CrossSectionElastic(anuc->GetComponentCrossSection());
G4HadronElastic* lhep0 = new G4HadronElastic();
G4HadronElastic* lhep1 = new G4HadronElastic();
G4HadronElastic* lhep2 = new G4HadronElastic();
lhep1->SetMaxEnergy(elimitPi+delta);
lhep2->SetMaxEnergy(elimitAntiNuc+delta);
G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE();
he->SetMinEnergy(elimitPi);
G4VCrossSectionDataSet* theComponentGGHadronNucleusData =
new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
@@ -143,17 +138,19 @@ void G4HadronElasticPhysics::ConstructProcess()
G4ProcessManager* pmanager = particle->GetProcessManager();
G4String pname = particle->GetParticleName();
if(pname == "anti_lambda" ||
pname == "anti_neutron" ||
pname == "anti_omega-" ||
pname == "anti_sigma-" ||
pname == "anti_sigma0" ||
pname == "anti_sigma+" ||
pname == "anti_xi-" ||
pname == "anti_xi0" ||
pname == "lambda" ||
pname == "omega-" ||
pname == "sigma-" ||
pname == "sigma+" ||
pname == "xi-"
pname == "anti_xi-" ||
pname == "anti_xi0" ||
pname == "lambda" ||
pname == "omega-" ||
pname == "sigma-" ||
pname == "sigma0" ||
pname == "sigma+" ||
pname == "xi-" ||
pname == "xi0"
) {
hel = new G4HadronElasticProcess();
@@ -205,7 +202,6 @@ void G4HadronElasticPhysics::ConstructProcess()
hel = new G4HadronElasticProcess();
hel->AddDataSet(new G4BGGPionElasticXS(particle));
hel->RegisterMe(lhep1);
hel->RegisterMe(he);
pmanager->AddDiscreteProcess(hel);
if(verbose > 1) {
@@ -236,6 +232,7 @@ void G4HadronElasticPhysics::ConstructProcess()
} else if(
pname == "anti_proton" ||
pname == "anti_neutron" ||
pname == "anti_alpha" ||
pname == "anti_deuteron" ||
pname == "anti_triton" ||
@@ -37,11 +37,6 @@
//
//----------------------------------------------------------------------------
//
// CHIPS for sampling scattering for p and n
// Glauber model for samplimg of high energy pi+- (E > 1GeV)
// LHEP sampling model for the other particle
// BBG cross sections for p, n and pi+-
// LHEP cross sections for other particles
#include "G4HadronHElasticPhysics.hh"
@@ -178,25 +173,15 @@ void G4HadronHElasticPhysics::ConstructProcess() {
pname == "anti_sigma+" ||
pname == "anti_xi-" ||
pname == "anti_xi0" ||
pname == "anti_omega-"
) {
hel = new G4HadronElasticProcess();
hel->AddDataSet( G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4ChipsAntiBaryonElasticXS::Default_Name() ) );
hel->RegisterMe( chips1 );
pmanager->AddDiscreteProcess( hel );
if ( verbose > 1 ) {
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
<< " added for " << particle->GetParticleName() << G4endl;
}
} else if ( pname == "lambda" ||
pname == "sigma-" ||
pname == "sigma0" ||
pname == "sigma+" ||
pname == "xi-" ||
pname == "xi0" ||
pname == "omega-"
) {
pname == "anti_omega-" ||
pname == "lambda" ||
pname == "sigma-" ||
pname == "sigma0" ||
pname == "sigma+" ||
pname == "xi-" ||
pname == "xi0" ||
pname == "omega-"
) {
hel = new G4HadronElasticProcess();
hel->AddDataSet( theComponentGGHadronNucleusData );
hel->RegisterMe( chips1 );