Import Geant4 10.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2017-12-08 12:52:30 +01:00
parent 98e455a940
commit fc6af9e721
2166 changed files with 276760 additions and 100873 deletions
@@ -1,4 +1,4 @@
$Id: History 104019 2017-05-08 07:34:08Z gcosmo $
$Id: History 107437 2017-11-13 07:37:11Z gcosmo $
-------------------------------------------------------------------
=========================================================
@@ -14,6 +14,31 @@ introduced in the code and keeptrack of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
10-Nov-2017, T. Koi (phys-ctor-helastic-V10-03-04)
-Dumpping LEND target information in G4HadronElasticPhysicsLEND
7-Nov-2017, T. Koi (phys-ctor-helastic-V10-03-03)
- G4HadronElasticPhysicsLEND: Modify setting of selection of target data
19-Oct-2017, A. Ribon (phys-ctor-helastic-V10-03-02)
- G4HadronHElasticPhysics : use G4NuclNuclDiffuseElastic for the elastic
scattering of light and generic ions (this is possible now because
the latest version of G4NuclNuclDiffuseElastic respects reproducibility).
14-Aug-2017, A. Ribon (phys-ctor-helastic-V10-03-01)
- G4HadronElasticPhysics, G4HadronHElasticPhysics : changed kaon elastic
cross sections from, respectively, Gheisha (used in G4HadronElasticPhysics)
and Chips (used in G4HadronHElasticPhysics), to Grichine's Glauber Gribov
ones. In this way, the total (elastic + inelastic) kaon cross sections
are consistent with the PDG ones.
Notes:
- For the time being, kept the original elastic final-state model
(i.e. Gheisha in G4HadronElasticPhysics and Chips in
G4HadronHElasticPhysics).
- These two changes should be used also for the next patch of G4 10.3
(i.e. for 10.3.p03 : the two files G4HadronElasticPhysics.cc and
G4HadronHElasticPhysics.cc can be taken directly).
04-May-2017, V.Ivanchenko (phys-ctor-helastic-V10-03-00)
- G4ThermalNeutrons - new class for addition of thermal neutron
scattering below 4 eV (backported from CMS simulation)
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysics.cc 99978 2016-10-13 07:28:13Z gcosmo $
// $Id: G4HadronElasticPhysics.cc 105730 2017-08-16 12:51:52Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -63,6 +63,7 @@
#include "G4ElasticHadrNucleusHE.hh"
#include "G4AntiNuclElastic.hh"
#include "G4ComponentGGHadronNucleusXsc.hh"
#include "G4ComponentGGNuclNuclXsc.hh"
#include "G4BGGNucleonElasticXS.hh"
@@ -142,6 +143,9 @@ void G4HadronElasticPhysics::ConstructProcess()
G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE();
he->SetMinEnergy(elimitPi);
G4VCrossSectionDataSet* theComponentGGHadronNucleusData =
new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
auto myParticleIterator=GetParticleIterator();
myParticleIterator->reset();
while( (*myParticleIterator)() )
@@ -232,6 +236,13 @@ void G4HadronElasticPhysics::ConstructProcess()
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
//AR-14Aug2017 : Replaced Gheisha elastic kaon cross sections with
// Grichine's Glauber-Gribov ones. In this way, the
// total (elastic + inelastic) kaon cross sections
// are consistent with the PDG ones.
// For the time being, kept Gheisha elastic as
// final-state model.
hel->AddDataSet( theComponentGGHadronNucleusData );
hel->RegisterMe(lhep0);
pmanager->AddDiscreteProcess(hel);
if(verbose > 1) {
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysicsLEND.cc 71037 2013-06-10 09:20:54Z gcosmo $
// $Id: G4HadronElasticPhysicsLEND.cc 107437 2017-11-13 07:37:11Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -94,13 +94,14 @@ void G4HadronElasticPhysicsLEND::ConstructProcess()
G4LENDElastic* lend = new G4LENDElastic( G4Neutron::Neutron() );
if ( evaluation.size() > 0 ) lend->ChangeDefaultEvaluation( evaluation );
//lend->AllowNaturalAbundanceTarget();
lend->AllowAnyCandidateTarget();
lend->AllowNaturalAbundanceTarget();
//lend->AllowAnyCandidateTarget();
lend->DumpLENDTargetInfo(true);
hel->RegisterMe(lend);
G4LENDElasticCrossSection* lend_XS = new G4LENDElasticCrossSection( G4Neutron::Neutron() );
if ( evaluation.size() > 0 ) lend_XS->ChangeDefaultEvaluation( evaluation );
//lend_XS->AllowNaturalAbundanceTarget();
lend_XS->AllowAnyCandidateTarget();
lend_XS->AllowNaturalAbundanceTarget();
//lend_XS->AllowAnyCandidateTarget();
hel->AddDataSet( lend_XS );
if(verbose > 1) {
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronHElasticPhysics.cc 99978 2016-10-13 07:28:13Z gcosmo $
// $Id: G4HadronHElasticPhysics.cc 106721 2017-10-20 09:46:54Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -72,6 +72,7 @@
#include "G4ChipsKaonZeroElasticXS.hh"
#include "G4ChipsHyperonElasticXS.hh"
#include "G4ChipsAntiBaryonElasticXS.hh"
#include "G4ComponentGGHadronNucleusXsc.hh"
#include "G4ComponentGGNuclNuclXsc.hh"
#include "G4CrossSectionDataSetRegistry.hh"
@@ -149,6 +150,9 @@ void G4HadronHElasticPhysics::ConstructProcess() {
G4NuclNuclDiffuseElastic* diffuseNuclNuclElastic = new G4NuclNuclDiffuseElastic();
diffuseNuclNuclElastic->SetMinEnergy( elimitDiffuse );
G4VCrossSectionDataSet* theComponentGGHadronNucleusData =
new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
G4VCrossSectionDataSet* theComponentGGNuclNuclData =
new G4CrossSectionElastic( new G4ComponentGGNuclNuclXsc() );
@@ -272,13 +276,13 @@ void G4HadronHElasticPhysics::ConstructProcess() {
pname == "kaon0L"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
if ( pname == "kaon-" ) {
hel->AddDataSet( G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusElasticXS::Default_Name() ) );
} else if ( pname == "kaon+" ) {
hel->AddDataSet( G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusElasticXS::Default_Name() ) );
} else {
hel->AddDataSet( G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4ChipsKaonZeroElasticXS::Default_Name() ) );
}
//AR-14Aug2017 : Replaced Chips elastic kaon cross sections with
// Grichine's Glauber-Gribov ones. In this way, the
// total (elastic + inelastic) kaon cross sections
// are consistent with the PDG ones.
// For the time being, kept Chips elastic as
// final-state model.
hel->AddDataSet( theComponentGGHadronNucleusData );
hel->RegisterMe( chips1 );
pmanager->AddDiscreteProcess( hel );
if(fDiffraction) { hel->SetDiffraction(diffGen, diffRatio); }
@@ -295,11 +299,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel->AddDataSet( theComponentGGNuclNuclData );
// To preserve reproducibility, replace temporarily
// G4NuclNuclDiffuseElastic with the Gheisha elastic model.
//hel->RegisterMe( diffuseNuclNuclElastic );
G4HadronElastic* lhepLightIon = new G4HadronElastic();
hel->RegisterMe( lhepLightIon );
hel->RegisterMe( diffuseNuclNuclElastic );
pmanager->AddDiscreteProcess( hel );
if ( verbose > 1 ) {
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
@@ -333,16 +333,14 @@ void G4HadronHElasticPhysics::ConstructProcess() {
}
} else if ( pname == "GenericIon" ) {
// To preserve reproducibility, disable temporarily
// G4NuclNuclDiffuseElastic.
//G4HadronElasticProcess* hel = new G4HadronElasticProcess();
//hel->AddDataSet( theComponentGGNuclNuclData );
//hel->RegisterMe( diffuseNuclNuclElastic );
//pmanager->AddDiscreteProcess( hel );
//if ( verbose > 1 ) {
// G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
// << " added for " << particle->GetParticleName() << G4endl;
//}
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel->AddDataSet( theComponentGGNuclNuclData );
hel->RegisterMe( diffuseNuclNuclElastic );
pmanager->AddDiscreteProcess( hel );
if ( verbose > 1 ) {
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
<< " added for " << particle->GetParticleName() << G4endl;
}
}