Import Geant4 10.5.0 source tree
This commit is contained in:
@@ -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......
|
||||
|
||||
Reference in New Issue
Block a user