Import Geant4 10.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2018-12-07 15:15:39 +01:00
parent 6aa23be517
commit db49709b53
11370 changed files with 187480 additions and 160142 deletions
@@ -26,7 +26,6 @@
/// \file PhysicsList.cc
/// \brief Implementation of the PhysicsList class
//
// $Id: PhysicsList.cc 70268 2013-05-28 14:17:50Z maire $
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -39,10 +38,13 @@
#include "G4HadronPhysicsFTFP_BERT_HP.hh"
#include "G4HadronPhysicsQGSP_BIC_HP.hh"
#include "G4HadronPhysicsQGSP_BIC_AllHP.hh"
#include "G4HadronInelasticQBBC.hh"
#include "G4HadronPhysicsINCLXX.hh"
#include "G4IonPhysics.hh"
#include "G4IonElasticPhysics.hh"
#include "G4IonPhysicsXS.hh"
#include "G4IonPhysicsPHP.hh"
#include "G4IonINCLXXPhysics.hh"
#include "G4StoppingPhysics.hh"
@@ -53,48 +55,69 @@
#include "G4DecayPhysics.hh"
#include "G4RadioactiveDecayPhysics.hh"
#include "G4Neutron.hh"
#include "G4ProcessManager.hh"
#include "G4HadronicInteraction.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsList::PhysicsList()
:G4VModularPhysicsList()
:G4VModularPhysicsList(),
fHadronElastic(nullptr), fHadronInelastic(nullptr),
fIonElastic(nullptr), fIonInelastic(nullptr),
fGammaNuclear(nullptr), fElectromagnetic(nullptr),
fDecay(nullptr), fRadioactiveDecay(nullptr)
{
G4int verb = 0;
SetVerboseLevel(verb);
//add new units
//
new G4UnitDefinition( "millielectronVolt", "meV", "Energy", 1.e-3*eV);
new G4UnitDefinition( "millielectronVolt", "meV", "Energy", 1.e-3*eV);
new G4UnitDefinition( "mm2/g", "mm2/g", "Surface/Mass", mm2/g);
new G4UnitDefinition( "um2/mg", "um2/mg","Surface/Mass", um*um/mg);
// Hadron Elastic scattering
RegisterPhysics( new HadronElasticPhysicsHP(verb));
fHadronElastic = new HadronElasticPhysicsHP(verb);
RegisterPhysics(fHadronElastic);
// Hadron Inelastic Physics
////RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb));
RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb));
////RegisterPhysics( new G4HadronInelasticQBBC(verb));
////RegisterPhysics( new G4HadronPhysicsINCLXX(verb));
////fHadronInelastic = new G4HadronPhysicsFTFP_BERT_HP(verb);
fHadronInelastic = new G4HadronPhysicsQGSP_BIC_HP(verb);
////fHadronInelastic = new G4HadronPhysicsQGSP_BIC_AllHP(verb);
////fHadronInelastic = new G4HadronInelasticQBBC(verb);
////fHadronInelastic = new G4HadronPhysicsINCLXX(verb);
RegisterPhysics(fHadronInelastic);
// Ion Physics
RegisterPhysics( new G4IonPhysics(verb));
////RegisterPhysics( new G4IonINCLXXPhysics(verb));
// Ion Elastic Physics
fIonElastic = new G4IonElasticPhysics(verb);
RegisterPhysics(fIonElastic);
// Ion Inelastic Physics
fIonInelastic = new G4IonPhysicsXS(verb);
////fIonInelastic = new G4IonPhysicsPHP(verb)
////fIonInelastic = new G4IonINCLXXPhysics(verb);
RegisterPhysics(fIonInelastic);
// stopping Particles
///RegisterPhysics( new G4StoppingPhysics(verb));
// Gamma-Nuclear Physics
RegisterPhysics( new GammaNuclearPhysics("gamma"));
fGammaNuclear = new GammaNuclearPhysics("gamma");
RegisterPhysics(fGammaNuclear);
// EM physics
RegisterPhysics(new ElectromagneticPhysics());
////RegisterPhysics(new G4EmStandardPhysics());
fElectromagnetic = new ElectromagneticPhysics();
////fElectromagnetic = new G4EmStandardPhysics();
RegisterPhysics(fElectromagnetic);
// Decay
RegisterPhysics(new G4DecayPhysics());
fDecay = new G4DecayPhysics();
RegisterPhysics(fDecay);
// Radioactive decay
RegisterPhysics(new G4RadioactiveDecayPhysics());
fRadioactiveDecay = new G4RadioactiveDecayPhysics();
RegisterPhysics(fRadioactiveDecay);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -104,12 +127,40 @@ PhysicsList::~PhysicsList()
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::ConstructProcess()
{
// Transportation first (mandatory)
//
AddTransportation();
// Physics constructors
//
fHadronElastic->ConstructProcess();
fHadronInelastic->ConstructProcess();
fIonElastic->ConstructProcess();
fIonInelastic->ConstructProcess();
fGammaNuclear->ConstructProcess();
fElectromagnetic->ConstructProcess();
fDecay->ConstructProcess();
fRadioactiveDecay->ConstructProcess();
// example of GetHadronicModel (due to bug in QGSP_BIC_AllHP)
//
G4ProcessManager* pManager = G4Neutron::Neutron()->GetProcessManager();
G4HadronicProcess* process
= dynamic_cast<G4HadronicProcess*>(pManager->GetProcess("nCapture"));
G4HadronicInteraction* model = process->GetHadronicModel("nRadCapture");
if(model) model->SetMinEnergy(19.9*MeV);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetCuts()
{
SetCutValue(0*mm, "proton");
SetCutValue(10*km, "e-");
SetCutValue(10*km, "e+");
SetCutValue(10*km, "gamma");
SetCutValue(10*km, "gamma");
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......