Import Geant4 10.6.0.beta source tree
This commit is contained in:
@@ -13,7 +13,13 @@ introduced in the code and keeptrack of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
05-Mar-2019, A. Ribon (phys-ctor-helastic-V10-04-06)
|
||||
08-May-2019, V. Ivanchenko (phys-ctor-helastic-V10-05-01)
|
||||
- G4HadronElasticPhysics : use Glauber-Gribov x-section for hyperons
|
||||
- G4HadronDElasticPhysics, G4HadronDElasticPhysics : use
|
||||
Glauber-Gribov x-section for hyperons, d, t, He3, He4
|
||||
- G4HadronElasticPhysicsXS, G4IonElasticPhysics - removed commented lines
|
||||
|
||||
05-Mar-2019, A. Ribon (phys-ctor-helastic-V10-05-00)
|
||||
- G4HadronElasticPhysics : for deuteron, triton and alpha, use Glauber-Gribov
|
||||
elastic cross sections (instead of Gheisha ones, which returns zero).
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
class G4ThermalNeutrons : public G4VHadronPhysics {
|
||||
|
||||
public:
|
||||
explicit G4ThermalNeutrons(G4int ver);
|
||||
explicit G4ThermalNeutrons(G4int ver=1);
|
||||
virtual ~G4ThermalNeutrons();
|
||||
|
||||
void ConstructProcess() override;
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronDElasticPhysics
|
||||
@@ -70,6 +69,8 @@
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
#include "G4NeutronElasticXS.hh"
|
||||
|
||||
#include "G4ComponentGGHadronNucleusXsc.hh"
|
||||
#include "G4ComponentGGNuclNuclXsc.hh"
|
||||
#include "G4CrossSectionDataSetRegistry.hh"
|
||||
|
||||
#include "G4ChipsKaonPlusElasticXS.hh"
|
||||
@@ -124,6 +125,12 @@ void G4HadronDElasticPhysics::ConstructProcess()
|
||||
G4CrossSectionElastic* anucxs =
|
||||
new G4CrossSectionElastic(anuc->GetComponentCrossSection());
|
||||
|
||||
G4VCrossSectionDataSet* theComponentGGHadronNucleusData =
|
||||
new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
|
||||
|
||||
G4VCrossSectionDataSet* theComponentGGNuclNuclData =
|
||||
new G4CrossSectionElastic( new G4ComponentGGNuclNuclXsc );
|
||||
|
||||
G4HadronElastic* lhep0 = new G4HadronElastic();
|
||||
G4HadronElastic* lhep1 = new G4HadronElastic();
|
||||
lhep1->SetMaxEnergy(10.1*MeV);
|
||||
@@ -159,6 +166,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->RegisterMe(lhep0);
|
||||
hel->AddDataSet( theComponentGGHadronNucleusData );
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronDElasticPhysics: " << hel->GetProcessName()
|
||||
@@ -178,11 +186,10 @@ void G4HadronDElasticPhysics::ConstructProcess()
|
||||
G4cout << "### HadronDElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
} else if(pname == "neutron") {
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronElasticXS::Default_Name()));
|
||||
hel->AddDataSet(new G4NeutronElasticXS());
|
||||
model = new G4DiffuseElastic();
|
||||
hel->RegisterMe(lhep1);
|
||||
hel->RegisterMe(model);
|
||||
@@ -192,7 +199,6 @@ void G4HadronDElasticPhysics::ConstructProcess()
|
||||
<< hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
} else if (pname == "pi+" || pname == "pi-") {
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
@@ -205,45 +211,36 @@ void G4HadronDElasticPhysics::ConstructProcess()
|
||||
G4cout << "### HadronDElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
} else if(pname == "kaon-") {
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusElasticXS::Default_Name()));
|
||||
model = new G4DiffuseElastic();
|
||||
hel->RegisterMe(lhep1);
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
} else if(pname == "kaon+") {
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusElasticXS::Default_Name()));
|
||||
model = new G4DiffuseElastic();
|
||||
hel->RegisterMe(lhep1);
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
} else if(pname == "kaon0S" ||
|
||||
} else if(pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L"
|
||||
) {
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonZeroElasticXS::Default_Name()));
|
||||
model = new G4DiffuseElastic();
|
||||
hel->RegisterMe(lhep1);
|
||||
hel->RegisterMe(model);
|
||||
hel->AddDataSet( theComponentGGHadronNucleusData );
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
} else if(pname == "alpha" ||
|
||||
pname == "deuteron" ||
|
||||
pname == "triton" ||
|
||||
pname == "He3"
|
||||
) {
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet(theComponentGGNuclNuclData);
|
||||
hel->RegisterMe(lhep0);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
} else if(
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_alpha" ||
|
||||
|
||||
@@ -130,6 +130,9 @@ void G4HadronElasticPhysics::ConstructProcess()
|
||||
G4VCrossSectionDataSet* theComponentGGHadronNucleusData =
|
||||
new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
|
||||
|
||||
G4VCrossSectionDataSet* theComponentGGNuclNuclData =
|
||||
new G4CrossSectionElastic( new G4ComponentGGNuclNuclXsc );
|
||||
|
||||
G4HadronElasticProcess* hel = nullptr;
|
||||
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
@@ -155,6 +158,7 @@ void G4HadronElasticPhysics::ConstructProcess()
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->RegisterMe(lhep0);
|
||||
hel->AddDataSet( theComponentGGHadronNucleusData );
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
@@ -167,8 +171,6 @@ void G4HadronElasticPhysics::ConstructProcess()
|
||||
pname == "He3"
|
||||
) {
|
||||
hel = new G4HadronElasticProcess();
|
||||
G4VCrossSectionDataSet* theComponentGGNuclNuclData =
|
||||
new G4CrossSectionElastic(new G4ComponentGGNuclNuclXsc());
|
||||
hel->AddDataSet(theComponentGGNuclNuclData);
|
||||
hel->RegisterMe(lhep0);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
@@ -181,9 +183,6 @@ void G4HadronElasticPhysics::ConstructProcess()
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
|
||||
//hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsProtonElasticXS::Default_Name()));
|
||||
|
||||
hel->RegisterMe(new G4ChipsElasticModel());
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
@@ -194,7 +193,7 @@ void G4HadronElasticPhysics::ConstructProcess()
|
||||
} else if(pname == "neutron") {
|
||||
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronElasticXS::Default_Name()));
|
||||
hel->AddDataSet(new G4NeutronElasticXS());
|
||||
hel->RegisterMe(new G4ChipsElasticModel());
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronElasticPhysicsXS
|
||||
@@ -68,14 +67,5 @@ G4HadronElasticPhysicsXS::~G4HadronElasticPhysicsXS()
|
||||
void G4HadronElasticPhysicsXS::ConstructProcess()
|
||||
{
|
||||
G4HadronElasticPhysics::ConstructProcess();
|
||||
/*
|
||||
const G4ParticleDefinition* part = G4Proton::Proton();
|
||||
AddXSection(part, new G4BGGNucleonElasticXS(part));
|
||||
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronElasticPhysicsXS is constructed "
|
||||
<< G4endl;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronHElasticPhysics
|
||||
@@ -133,6 +132,8 @@ void G4HadronHElasticPhysics::ConstructProcess() {
|
||||
G4HadronElastic* lhep = new G4HadronElastic();
|
||||
lhep->SetMaxEnergy( elimitAntiNuc + delta );
|
||||
|
||||
G4HadronElastic* lhep0 = new G4HadronElastic();
|
||||
|
||||
// Three instances of Chips elastic model: one used everywhere,
|
||||
// one used below a energy threshold, and one used only for the
|
||||
// hydrogen element.
|
||||
@@ -223,7 +224,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
|
||||
|
||||
} else if ( pname == "neutron" ) {
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronElasticXS::Default_Name()) );
|
||||
hel->AddDataSet(new G4NeutronElasticXS() );
|
||||
// To preserve reproducibility, a different instance of
|
||||
// G4DiffuseElastic must be used for each particle type.
|
||||
G4DiffuseElastic* neutronDiffuseElastic = new G4DiffuseElastic();
|
||||
@@ -238,31 +239,15 @@ void G4HadronHElasticPhysics::ConstructProcess() {
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
} else if ( pname == "pi-" ) {
|
||||
} else if ( pname == "pi-" || pname == "pi+" ) {
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet( new G4BGGPionElasticXS( particle ) );
|
||||
// To preserve reproducibility, a different instance of
|
||||
// G4DiffuseElastic must be used for each particle type.
|
||||
G4DiffuseElastic* pionMinusDiffuseElastic = new G4DiffuseElastic();
|
||||
pionMinusDiffuseElastic->SetMinEnergy( elimitDiffuse );
|
||||
G4DiffuseElastic* dElastic = new G4DiffuseElastic();
|
||||
dElastic->SetMinEnergy( elimitDiffuse );
|
||||
hel->RegisterMe( chipsH ); // Use Chips only for Hydrogen element
|
||||
hel->RegisterMe( pionMinusDiffuseElastic );
|
||||
pmanager->AddDiscreteProcess( hel );
|
||||
if(fDiffraction) { hel->SetDiffraction(diffGen, diffRatio); }
|
||||
if ( verbose > 1 ) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
} else if ( pname == "pi+" ) {
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet( new G4BGGPionElasticXS( particle ) );
|
||||
// To preserve reproducibility, a different instance of
|
||||
// G4DiffuseElastic must be used for each particle type.
|
||||
G4DiffuseElastic* pionPlusDiffuseElastic = new G4DiffuseElastic();
|
||||
hel->RegisterMe( chipsH ); // Use Chips only for Hydrogen element
|
||||
pionPlusDiffuseElastic->SetMinEnergy( elimitDiffuse );
|
||||
hel->RegisterMe( pionPlusDiffuseElastic );
|
||||
hel->RegisterMe( dElastic );
|
||||
pmanager->AddDiscreteProcess( hel );
|
||||
if(fDiffraction) { hel->SetDiffraction(diffGen, diffRatio); }
|
||||
if ( verbose > 1 ) {
|
||||
@@ -291,17 +276,16 @@ void G4HadronHElasticPhysics::ConstructProcess() {
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
} else if (
|
||||
pname == "deuteron" ||
|
||||
pname == "triton" ||
|
||||
pname == "He3" ||
|
||||
pname == "alpha"
|
||||
) {
|
||||
} else if(pname == "alpha" ||
|
||||
pname == "deuteron" ||
|
||||
pname == "triton" ||
|
||||
pname == "He3"
|
||||
) {
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet( theComponentGGNuclNuclData );
|
||||
hel->RegisterMe( diffuseNuclNuclElastic );
|
||||
pmanager->AddDiscreteProcess( hel );
|
||||
if ( verbose > 1 ) {
|
||||
hel->AddDataSet(theComponentGGNuclNuclData);
|
||||
hel->RegisterMe(lhep0);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
@@ -331,16 +315,6 @@ void G4HadronHElasticPhysics::ConstructProcess() {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
} else if ( pname == "GenericIon" ) {
|
||||
hel = new G4HadronElasticProcess();
|
||||
hel->AddDataSet( theComponentGGNuclNuclData );
|
||||
hel->RegisterMe( diffuseNuclNuclElastic );
|
||||
pmanager->AddDiscreteProcess( hel );
|
||||
if ( verbose > 1 ) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4IonElasticPhysics
|
||||
|
||||
Reference in New Issue
Block a user