Import Geant4 11.4.0.beta source tree
This commit is contained in:
@@ -6,7 +6,7 @@ It must **not** be used as a substitute for writing good git commit messages!
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
## 2024-04-23 Alberto Ribon (phys-list-V11-02-04)
|
||||
## 2025-04-23 Alberto Ribon (phys-lists-V11-03-03)
|
||||
- FTFP_BERT_ATL : removed the special FTF tune for ATLAS (introduced in
|
||||
phys-lists-V11-01-05 to overcome the problem of too optimistic (i.e. narrow)
|
||||
pion shower energy resolution).
|
||||
@@ -18,6 +18,20 @@ It must **not** be used as a substitute for writing good git commit messages!
|
||||
or the UI command (before run-initialization):
|
||||
/process/had/models/ftf/selectTuneByIndex 4
|
||||
|
||||
## 2025-04-15 Vladimir Ivanchenko (phys-list-V11-03-02)
|
||||
- QBBC - added G4ChargeExchangePhysics
|
||||
|
||||
## 2025-03-03 Dmitri Konstantinov (phys-list-V11-03-01)
|
||||
- G4PhysListFactory: Prevent fallback to default physics list
|
||||
when an invalid name is provided. Now, if a user specifies an unknown physics list,
|
||||
Geant4 will throw a fatal error instead of silently using FTFP_BERT.
|
||||
This ensures that users are aware of incorrect configurations and
|
||||
helps prevent unintended simulation results.
|
||||
|
||||
## 2024-12-10 Douglas M Wright (phys-list-V11-03-00)
|
||||
- Shielding: Simplify logic tree for inelastic models
|
||||
and move all LEND hadronic inelastic processes to G4HadronPhysicsLEND
|
||||
|
||||
## 2024-11-04 Vladimir Ivantchenko (phys-list-V11-02-03)
|
||||
- G4PhysListFactory - use std::size_t
|
||||
|
||||
|
||||
@@ -206,11 +206,13 @@ G4PhysListFactory::GetReferencePhysList(const G4String& name)
|
||||
else if(had_name == "ShieldingM_HPT") {p = new Shielding(verbose,"HP","M");
|
||||
p->RegisterPhysics(new G4ThermalNeutrons);}
|
||||
else {
|
||||
p = new FTFP_BERT(verbose);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "PhysicsList " << had_name << " is not known;"
|
||||
<< " the default FTFP_BERT is created";
|
||||
G4Exception("G4PhysListFactory: ","pl0003",JustWarning,ed,"");
|
||||
ed << "ERROR: The requested physics list " << had_name
|
||||
<< " is NOT available in the Physics List Factory.\n"
|
||||
<< "Please choose a valid physics list.\n";
|
||||
|
||||
G4Exception("G4PhysListFactory", "pl0003", FatalException, ed);
|
||||
return nullptr;
|
||||
}
|
||||
if(nullptr != p) {
|
||||
if(0 < em_opt && had_name != "LBE") {
|
||||
|
||||
@@ -88,6 +88,8 @@ QBBC::QBBC( G4int ver, const G4String&)
|
||||
|
||||
RegisterPhysics( new G4HadronInelasticQBBC(ver));
|
||||
|
||||
RegisterPhysics( new G4ChargeExchangePhysics(ver) );
|
||||
|
||||
// Neutron tracking cut
|
||||
RegisterPhysics( new G4NeutronTrackingCut(ver) );
|
||||
}
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
// fragments
|
||||
// 06.08.2019 A.Ribon: Replacing explicit values for the energy transition
|
||||
// region with values from G4HadronicParameters
|
||||
// 19.11.2024 D.M.Wright: Simplify logic tree for inelastic models and
|
||||
// move LEND hadronic inelastic processes to G4HadronPhysicsLEND
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -59,11 +61,12 @@
|
||||
#include "G4IonElasticPhysics.hh"
|
||||
#include "G4StoppingPhysics.hh"
|
||||
#include "G4HadronElasticPhysicsHP.hh"
|
||||
#include "G4HadronElasticPhysicsLEND.hh"
|
||||
#include "G4ParticleHPManager.hh"
|
||||
|
||||
#include "G4HadronElasticPhysicsLEND.hh"
|
||||
#include "G4HadronPhysicsLEND.hh"
|
||||
#include "G4HadronPhysicsShielding.hh"
|
||||
#include "G4HadronPhysicsShieldingLEND.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
@@ -97,12 +100,13 @@ Shielding::Shielding(G4int verbose, const G4String& n_model,
|
||||
// EM Physics
|
||||
RegisterPhysics( new G4EmStandardPhysics(verbose));
|
||||
|
||||
// Synchroton Radiation & GN Physics
|
||||
// Synchroton Radiation & Gamma Nuclear Physics
|
||||
G4EmExtraPhysics* emExtraPhysics = new G4EmExtraPhysics(verbose);
|
||||
if ( LEN_model == "LEND" ) {
|
||||
// Use LEND model for Gamma Nuclear
|
||||
|
||||
// Adjust energy bounds of gamma nuclear models from G4EmExtraPhysics
|
||||
if ( LEN_model == "LEND" )
|
||||
emExtraPhysics->LENDGammaNuclear(true);
|
||||
}
|
||||
|
||||
RegisterPhysics( emExtraPhysics );
|
||||
|
||||
// Decays
|
||||
@@ -110,16 +114,11 @@ Shielding::Shielding(G4int verbose, const G4String& n_model,
|
||||
RegisterPhysics( new G4RadioactiveDecayPhysics(verbose) );
|
||||
|
||||
// Hadron Elastic scattering
|
||||
if ( LEN_model == "HP" )
|
||||
{
|
||||
if ( LEN_model == "HP" ) {
|
||||
RegisterPhysics( new G4HadronElasticPhysicsHP(verbose) );
|
||||
}
|
||||
else if ( LEN_model == "LEND" )
|
||||
{
|
||||
} else if ( LEN_model == "LEND" ) {
|
||||
RegisterPhysics( new G4HadronElasticPhysicsLEND(verbose,evaluation));
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
if(verbose > 0) {
|
||||
G4cout << "Shielding Physics List: Warning!" <<G4endl;
|
||||
G4cout << "\"" << LEN_model
|
||||
@@ -129,46 +128,40 @@ Shielding::Shielding(G4int verbose, const G4String& n_model,
|
||||
RegisterPhysics( new G4HadronElasticPhysicsHP(verbose) );
|
||||
}
|
||||
|
||||
// Hadron Physics = Bertini and FTF with HP or LEND
|
||||
G4VPhysicsConstructor* hpc;
|
||||
// Hadron Physics HP or LEND
|
||||
G4String HadPhysName = "hInelastic Shielding";
|
||||
if ( LEN_model == "LEND" ) HadPhysName += "LEND";
|
||||
|
||||
G4double HadPhysEmin, HadPhysEmax;
|
||||
if (HadrPhysVariant == "M") {
|
||||
// The variant "M" has a special, dedicated energy transition region
|
||||
// between the string model and cascade model, therefore the recommended
|
||||
// values from G4HadronicParameters are intentionally not used.
|
||||
hpc = new G4HadronPhysicsShielding("hInelastic Shielding", verbose,
|
||||
9.5*CLHEP::GeV, 9.9*CLHEP::GeV);
|
||||
// The variant "M" has a special, dedicated energy transition region
|
||||
// between the string model and cascade model, therefore the recommended
|
||||
// values from G4HadronicParameters are intentionally not used.
|
||||
HadPhysEmin = 9.5*CLHEP::GeV;
|
||||
HadPhysEmax = 9.9*CLHEP::GeV;
|
||||
} else {
|
||||
hpc = new G4HadronPhysicsShielding("hInelastic Shielding", verbose,
|
||||
G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade(),
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade());
|
||||
HadPhysEmin = G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade();
|
||||
HadPhysEmax = G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade();
|
||||
}
|
||||
|
||||
if ( LEN_model == "LEND" ) {
|
||||
delete hpc;
|
||||
if (HadrPhysVariant == "M") {
|
||||
// The variant "M" has a special, dedicated energy transition region
|
||||
// between the string model and cascade model, therefore the recommended
|
||||
// values from G4HadronicParameters are intentionally not used.
|
||||
hpc = new G4HadronPhysicsShieldingLEND("hInelastic ShieldingLEND", verbose,
|
||||
9.5*CLHEP::GeV, 9.9*CLHEP::GeV);
|
||||
} else {
|
||||
hpc = new G4HadronPhysicsShieldingLEND("hInelastic ShieldingLEND", verbose,
|
||||
G4HadronicParameters::Instance()->GetMinEnergyTransitionFTF_Cascade(),
|
||||
G4HadronicParameters::Instance()->GetMaxEnergyTransitionFTF_Cascade());
|
||||
}
|
||||
} else {
|
||||
//G4cout << "Shielding Physics List: Warning." <<G4endl;
|
||||
//G4cout << "Name of Low Energy Neutron model " << LEN_model
|
||||
// << " is invalid." <<G4endl;
|
||||
//G4cout << "Will use neutron HP package." <<G4endl;
|
||||
}
|
||||
// N.B., G4HadronPhysicsShielding only builds neutron processes
|
||||
hpc = new G4HadronPhysicsShielding(HadPhysName, verbose, HadPhysEmin, HadPhysEmax);
|
||||
|
||||
// Turn off HP low energy model defined by G4HadronPhysicsShielding
|
||||
if ( LEN_model == "LEND" )
|
||||
((G4HadronPhysicsShielding*)hpc)->UseLEND();
|
||||
|
||||
RegisterPhysics( hpc );
|
||||
|
||||
if ( LEN_model == "HP" ) {
|
||||
//Activate prodcuton of fission fragments in neutronHP
|
||||
G4ParticleHPManager::GetInstance()->SetProduceFissionFragments( true );
|
||||
}
|
||||
|
||||
// Activate production of fission fragments in NeutronHP
|
||||
if ( LEN_model == "HP" )
|
||||
G4ParticleHPManager::GetInstance()->SetProduceFissionFragments( true );
|
||||
|
||||
// Add LEND processes (neutron and photon induced)
|
||||
if ( LEN_model == "LEND" )
|
||||
RegisterPhysics( new G4HadronPhysicsLEND(verbose, evaluation));
|
||||
|
||||
// Stopping Physics
|
||||
RegisterPhysics( new G4StoppingPhysics(verbose) );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user