Import Geant4 10.3.0 source tree
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmDNAPhysics.cc 97523 2016-06-03 14:25:30Z gcosmo $
|
||||
// $Id: G4EmDNAPhysics.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
// add elastic scattering processes of proton, hydrogen, helium, alpha+, alpha++
|
||||
|
||||
#include "G4EmDNAPhysics.hh"
|
||||
@@ -70,6 +70,8 @@
|
||||
#include "G4LivermoreGammaConversionModel.hh"
|
||||
#include "G4RayleighScattering.hh"
|
||||
#include "G4LivermoreRayleighModel.hh"
|
||||
|
||||
#include "G4EmParameters.hh"
|
||||
// end of warning
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
@@ -82,22 +84,18 @@
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics);
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics::G4EmDNAPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance();
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics::G4EmDNAPhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance();
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetAugerCascade(true);
|
||||
param->SetDeexcitationIgnoreCut(true);
|
||||
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
@@ -144,10 +142,11 @@ void G4EmDNAPhysics::ConstructProcess()
|
||||
}
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() )
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "e-") {
|
||||
@@ -295,7 +294,6 @@ void G4EmDNAPhysics::ConstructProcess()
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
de->SetFluo(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,753 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmDNAPhysicsActivator.cc 97499 2016-06-03 12:02:26Z matkara $
|
||||
// add elastic scattering processes of proton, hydrogen, helium, alpha+, alpha++
|
||||
|
||||
#include "G4EmDNAPhysicsActivator.hh"
|
||||
|
||||
#include "G4EmParameters.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4RegionStore.hh"
|
||||
#include "G4Region.hh"
|
||||
#include "G4VEnergyLossProcess.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4EmConfigurator.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
#include "G4Alpha.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4DummyModel.hh"
|
||||
#include "G4EmProcessSubType.hh"
|
||||
#include "G4PhysicsListHelper.hh"
|
||||
|
||||
#include "G4BraggModel.hh"
|
||||
#include "G4BraggIonModel.hh"
|
||||
#include "G4BetheBlochModel.hh"
|
||||
#include "G4UrbanMscModel.hh"
|
||||
#include "G4MollerBhabhaModel.hh"
|
||||
#include "G4IonFluctuations.hh"
|
||||
#include "G4UniversalFluctuation.hh"
|
||||
#include "G4LowECapture.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4eCoulombScatteringModel.hh"
|
||||
#include "G4IonCoulombScatteringModel.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
|
||||
// Processes and models for Geant4-DNA
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
#include "G4DNAElastic.hh"
|
||||
#include "G4DNAChampionElasticModel.hh"
|
||||
//#include "G4DNAScreenedRutherfordElasticModel.hh"
|
||||
#include "G4DNAUeharaScreenedRutherfordElasticModel.hh"
|
||||
#include "G4DNAIonElasticModel.hh"
|
||||
|
||||
#include "G4DNAExcitation.hh"
|
||||
#include "G4DNAAttachment.hh"
|
||||
#include "G4DNAVibExcitation.hh"
|
||||
#include "G4DNAIonisation.hh"
|
||||
#include "G4DNAChargeDecrease.hh"
|
||||
#include "G4DNAChargeIncrease.hh"
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include <vector>
|
||||
|
||||
#include "G4DNAChemistryManager.hh"
|
||||
#include "G4DNAElectronSolvation.hh"
|
||||
#include "G4DNAEmfietzoglouIonisationModel.hh"
|
||||
#include "G4DNAEmfietzoglouExcitationModel.hh"
|
||||
|
||||
#include "G4Threading.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysicsActivator::G4EmDNAPhysicsActivator(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysicsActivator"), verbose(ver)
|
||||
{
|
||||
theParameters = G4EmParameters::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysicsActivator::~G4EmDNAPhysicsActivator()
|
||||
{}
|
||||
|
||||
G4bool G4EmDNAPhysicsActivator::IsVerbose() const
|
||||
{
|
||||
return (0 < verbose && G4Threading::IsMasterThread());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNAPhysicsActivator::ConstructParticle()
|
||||
{
|
||||
// bosons
|
||||
G4Gamma::Gamma();
|
||||
|
||||
// leptons
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
|
||||
// baryons
|
||||
G4Proton::Proton();
|
||||
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
G4DNAGenericIonsManager * genericIonsManager;
|
||||
genericIonsManager=G4DNAGenericIonsManager::Instance();
|
||||
genericIonsManager->GetIon("alpha++");
|
||||
genericIonsManager->GetIon("alpha+");
|
||||
genericIonsManager->GetIon("helium");
|
||||
genericIonsManager->GetIon("hydrogen");
|
||||
//genericIonsManager->GetIon("carbon");
|
||||
//genericIonsManager->GetIon("nitrogen");
|
||||
//genericIonsManager->GetIon("oxygen");
|
||||
//genericIonsManager->GetIon("iron");
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNAPhysicsActivator::ConstructProcess()
|
||||
{
|
||||
const std::vector<G4String>& regnamesDNA = theParameters->RegionsDNA();
|
||||
G4int nreg = regnamesDNA.size();
|
||||
if(0 == nreg)
|
||||
{
|
||||
return;
|
||||
}
|
||||
const std::vector<G4String>& typesDNA = theParameters->TypesDNA();
|
||||
|
||||
if(IsVerbose())
|
||||
{
|
||||
G4cout << "### G4EmDNAPhysicsActivator::ConstructProcess for " << nreg
|
||||
<< " regions; DNA physics type " << typesDNA[0] << G4endl;
|
||||
}
|
||||
|
||||
// list of particles
|
||||
const G4ParticleDefinition* elec = G4Electron::Electron();
|
||||
const G4ParticleDefinition* prot = G4Proton::Proton();
|
||||
const G4ParticleDefinition* gion = G4GenericIon::GenericIon();
|
||||
|
||||
G4DNAGenericIonsManager * genericIonsManager =
|
||||
G4DNAGenericIonsManager::Instance();
|
||||
const G4ParticleDefinition* alpha2 = G4Alpha::Alpha();
|
||||
const G4ParticleDefinition* alpha1 = genericIonsManager->GetIon("alpha+");
|
||||
const G4ParticleDefinition* alpha0 = genericIonsManager->GetIon("helium");
|
||||
const G4ParticleDefinition* h0 = genericIonsManager->GetIon("hydrogen");
|
||||
|
||||
G4ProcessManager* eman = elec->GetProcessManager();
|
||||
G4ProcessManager* pman = prot->GetProcessManager();
|
||||
G4ProcessManager* iman = gion->GetProcessManager();
|
||||
G4ProcessManager* a2man = alpha2->GetProcessManager();
|
||||
G4ProcessManager* a1man = alpha1->GetProcessManager();
|
||||
G4ProcessManager* a0man = alpha0->GetProcessManager();
|
||||
G4ProcessManager* h0man = h0->GetProcessManager();
|
||||
|
||||
G4bool emsc = HasMsc(eman);
|
||||
G4bool pmsc = HasMsc(pman);
|
||||
G4bool a2msc = HasMsc(a2man);
|
||||
G4bool a1msc = HasMsc(a1man);
|
||||
G4bool imsc = HasMsc(iman);
|
||||
|
||||
// alpha+ standard processes
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
G4ParticleDefinition* alpha11 = const_cast<G4ParticleDefinition*>(alpha1);
|
||||
ph->RegisterProcess(new G4hMultipleScattering(), alpha11);
|
||||
ph->RegisterProcess(new G4ionIonisation(), alpha11);
|
||||
|
||||
// processes are defined with dummy models for the world
|
||||
// elastic scatetring
|
||||
G4DNAElastic* theDNAeElasticProcess = new G4DNAElastic("e-_G4DNAElastic");
|
||||
theDNAeElasticProcess->AddEmModel(0, new G4DummyModel());
|
||||
eman->AddDiscreteProcess(theDNAeElasticProcess);
|
||||
|
||||
G4DNAElastic* theDNApElasticProcess = new G4DNAElastic("proton_G4DNAElastic");
|
||||
theDNApElasticProcess->AddEmModel(0, new G4DummyModel());
|
||||
pman->AddDiscreteProcess(theDNApElasticProcess);
|
||||
|
||||
G4DNAElastic* theDNAa2ElasticProcess = new G4DNAElastic("alpha_G4DNAElastic");
|
||||
theDNAa2ElasticProcess->AddEmModel(0, new G4DummyModel());
|
||||
a2man->AddDiscreteProcess(theDNAa2ElasticProcess);
|
||||
|
||||
G4DNAElastic* theDNAa1ElasticProcess =
|
||||
new G4DNAElastic("alpha+_G4DNAElastic");
|
||||
theDNAa1ElasticProcess->AddEmModel(0, new G4DummyModel());
|
||||
a1man->AddDiscreteProcess(theDNAa1ElasticProcess);
|
||||
|
||||
G4DNAElastic* theDNAa0ElasticProcess =
|
||||
new G4DNAElastic("helium_G4DNAElastic");
|
||||
theDNAa0ElasticProcess->AddEmModel(0, new G4DummyModel());
|
||||
a0man->AddDiscreteProcess(theDNAa0ElasticProcess);
|
||||
|
||||
G4DNAElastic* theDNAh0ElasticProcess =
|
||||
new G4DNAElastic("hydrogen_G4DNAElastic");
|
||||
theDNAh0ElasticProcess->AddEmModel(0, new G4DummyModel());
|
||||
h0man->AddDiscreteProcess(theDNAh0ElasticProcess);
|
||||
|
||||
// excitation
|
||||
G4DNAExcitation* theDNAeExcProcess =
|
||||
new G4DNAExcitation("e-_G4DNAExcitation");
|
||||
theDNAeExcProcess->AddEmModel(0, new G4DummyModel());
|
||||
eman->AddDiscreteProcess(theDNAeExcProcess);
|
||||
|
||||
G4DNAExcitation* theDNApExcProcess =
|
||||
new G4DNAExcitation("proton_G4DNAExcitation");
|
||||
theDNApExcProcess->AddEmModel(0, new G4DummyModel());
|
||||
pman->AddDiscreteProcess(theDNApExcProcess);
|
||||
|
||||
G4DNAExcitation* theDNAa2ExcProcess =
|
||||
new G4DNAExcitation("alpha_G4DNAExcitation");
|
||||
theDNAa2ExcProcess->AddEmModel(0, new G4DummyModel());
|
||||
a2man->AddDiscreteProcess(theDNAa2ExcProcess);
|
||||
|
||||
G4DNAExcitation* theDNAa1ExcProcess =
|
||||
new G4DNAExcitation("alpha+_G4DNAExcitation");
|
||||
theDNAa1ExcProcess->AddEmModel(0, new G4DummyModel());
|
||||
a1man->AddDiscreteProcess(theDNAa1ExcProcess);
|
||||
|
||||
G4DNAExcitation* theDNAa0ExcProcess =
|
||||
new G4DNAExcitation("helium_G4DNAExcitation");
|
||||
theDNAa0ExcProcess->AddEmModel(0, new G4DummyModel());
|
||||
a0man->AddDiscreteProcess(theDNAa0ExcProcess);
|
||||
|
||||
G4DNAExcitation* theDNAh0ExcProcess =
|
||||
new G4DNAExcitation("hydrogen_G4DNAExcitation");
|
||||
theDNAh0ExcProcess->AddEmModel(0, new G4DummyModel());
|
||||
h0man->AddDiscreteProcess(theDNAh0ExcProcess);
|
||||
|
||||
// vibration excitation
|
||||
G4DNAVibExcitation* theDNAeVibExcProcess =
|
||||
new G4DNAVibExcitation("e-_G4DNAVibExcitation");
|
||||
theDNAeVibExcProcess->AddEmModel(0, new G4DummyModel());
|
||||
eman->AddDiscreteProcess(theDNAeVibExcProcess);
|
||||
|
||||
// ionisation
|
||||
G4DNAIonisation* theDNAeIoniProcess =
|
||||
new G4DNAIonisation("e-_G4DNAIonisation");
|
||||
theDNAeIoniProcess->AddEmModel(0, new G4DummyModel());
|
||||
eman->AddDiscreteProcess(theDNAeIoniProcess);
|
||||
|
||||
G4DNAIonisation* theDNApIoniProcess =
|
||||
new G4DNAIonisation("proton_G4DNAIonisation");
|
||||
theDNApIoniProcess->AddEmModel(0, new G4DummyModel());
|
||||
pman->AddDiscreteProcess(theDNApIoniProcess);
|
||||
|
||||
G4DNAIonisation* theDNAa2IoniProcess =
|
||||
new G4DNAIonisation("alpha_G4DNAIonisation");
|
||||
theDNAa2IoniProcess->AddEmModel(0, new G4DummyModel());
|
||||
a2man->AddDiscreteProcess(theDNAa2IoniProcess);
|
||||
|
||||
G4DNAIonisation* theDNAa1IoniProcess =
|
||||
new G4DNAIonisation("alpha+_G4DNAIonisation");
|
||||
theDNAa1IoniProcess->AddEmModel(0, new G4DummyModel());
|
||||
a1man->AddDiscreteProcess(theDNAa1IoniProcess);
|
||||
|
||||
G4DNAIonisation* theDNAa0IoniProcess =
|
||||
new G4DNAIonisation("helium_G4DNAIonisation");
|
||||
theDNAa0IoniProcess->AddEmModel(0, new G4DummyModel());
|
||||
a0man->AddDiscreteProcess(theDNAa0IoniProcess);
|
||||
|
||||
G4DNAIonisation* theDNAh0IoniProcess =
|
||||
new G4DNAIonisation("hydrogen_G4DNAIonisation");
|
||||
theDNAh0IoniProcess->AddEmModel(0, new G4DummyModel());
|
||||
h0man->AddDiscreteProcess(theDNAh0IoniProcess);
|
||||
|
||||
G4DNAIonisation* theDNAiIoniProcess =
|
||||
new G4DNAIonisation("GenericIon_G4DNAIonisation");
|
||||
theDNAiIoniProcess->AddEmModel(0, new G4DummyModel());
|
||||
iman->AddDiscreteProcess(theDNAiIoniProcess);
|
||||
|
||||
// attachment
|
||||
G4DNAAttachment* theDNAAttachProcess =
|
||||
new G4DNAAttachment("e-_G4DNAAttachment");
|
||||
theDNAAttachProcess->AddEmModel(0, new G4DummyModel());
|
||||
eman->AddDiscreteProcess(theDNAAttachProcess);
|
||||
|
||||
// charge exchange
|
||||
G4DNAChargeDecrease* theDNApChargeDecreaseProcess =
|
||||
new G4DNAChargeDecrease("proton_G4DNAChargeDecrease");
|
||||
theDNApChargeDecreaseProcess->AddEmModel(0, new G4DummyModel());
|
||||
pman->AddDiscreteProcess(theDNApChargeDecreaseProcess);
|
||||
|
||||
G4DNAChargeDecrease* theDNAa2ChargeDecreaseProcess =
|
||||
new G4DNAChargeDecrease("alpha_G4DNAChargeDecrease");
|
||||
theDNAa2ChargeDecreaseProcess->AddEmModel(0, new G4DummyModel());
|
||||
a2man->AddDiscreteProcess(theDNAa2ChargeDecreaseProcess);
|
||||
|
||||
G4DNAChargeDecrease* theDNAa1ChargeDecreaseProcess =
|
||||
new G4DNAChargeDecrease("alpha+_G4DNAChargeDecrease");
|
||||
theDNAa1ChargeDecreaseProcess->AddEmModel(0, new G4DummyModel());
|
||||
a1man->AddDiscreteProcess(theDNAa1ChargeDecreaseProcess);
|
||||
|
||||
G4DNAChargeIncrease* theDNAa1ChargeIncreaseProcess =
|
||||
new G4DNAChargeIncrease("alpha+_G4DNAChargeIncrease");
|
||||
theDNAa1ChargeIncreaseProcess->AddEmModel(0, new G4DummyModel());
|
||||
a1man->AddDiscreteProcess(theDNAa1ChargeIncreaseProcess);
|
||||
|
||||
G4DNAChargeIncrease* theDNAa0ChargeIncreaseProcess =
|
||||
new G4DNAChargeIncrease("helium_G4DNAChargeIncrease");
|
||||
theDNAa0ChargeIncreaseProcess->AddEmModel(0, new G4DummyModel());
|
||||
a0man->AddDiscreteProcess(theDNAa0ChargeIncreaseProcess);
|
||||
|
||||
G4DNAChargeIncrease* theDNAh0ChargeIncreaseProcess =
|
||||
new G4DNAChargeIncrease("hydrogen_G4DNAChargeIncrease");
|
||||
theDNAh0ChargeIncreaseProcess->AddEmModel(0, new G4DummyModel());
|
||||
h0man->AddDiscreteProcess(theDNAh0ChargeIncreaseProcess);
|
||||
|
||||
// limits for DNA model applicability
|
||||
static const G4double elowest= 4. * eV;
|
||||
static const G4double elimel = 1 * MeV;
|
||||
static const G4double pminbb = 2 * MeV;
|
||||
static const G4double pmin = 10 * keV;
|
||||
static const G4double pmax = 100 * MeV;
|
||||
static const G4double ionmin = 10 * keV;
|
||||
|
||||
// low-energy capture
|
||||
G4LowECapture* ecap = nullptr;
|
||||
if(G4DNAChemistryManager::IsActivated() == false)
|
||||
{
|
||||
// Note: G4DNAElectronSolvation could also be used instead of G4LowECapture
|
||||
ecap = new G4LowECapture(elowest);
|
||||
// ecap->SetVerboseLevel(1);
|
||||
eman->AddDiscreteProcess(ecap);
|
||||
}
|
||||
else
|
||||
{
|
||||
// When chemistry is activated: G4DNAElectronSolvation turns the electron
|
||||
// to a solvated electron, otherwise it kills the electron at the
|
||||
// corresponding high energy limit of the model
|
||||
G4DNAElectronSolvation* solvatation =
|
||||
new G4DNAElectronSolvation("e-_G4DNAElectronSolvation");
|
||||
solvatation->AddEmModel(0, new G4DummyModel());
|
||||
eman->AddDiscreteProcess(solvatation);
|
||||
}
|
||||
|
||||
G4LowECapture* pcap = new G4LowECapture(pmin);
|
||||
pman->AddDiscreteProcess(pcap);
|
||||
G4LowECapture* icap = new G4LowECapture(ionmin);
|
||||
iman->AddDiscreteProcess(icap);
|
||||
G4LowECapture* a2cap = new G4LowECapture(ionmin);
|
||||
a2man->AddDiscreteProcess(a2cap);
|
||||
G4LowECapture* a1cap = new G4LowECapture(ionmin);
|
||||
a1man->AddDiscreteProcess(a1cap);
|
||||
G4LowECapture* a0cap = new G4LowECapture(ionmin);
|
||||
a0man->AddDiscreteProcess(a0cap);
|
||||
G4LowECapture* h0cap = new G4LowECapture(ionmin);
|
||||
h0man->AddDiscreteProcess(h0cap);
|
||||
|
||||
// loop over regions
|
||||
for(G4int i = 0; i < nreg; ++i)
|
||||
{
|
||||
G4String reg = regnamesDNA[i];
|
||||
if(IsVerbose()) {
|
||||
G4cout << "### DNA models type " << typesDNA[i]
|
||||
<< " are activated for G4Region " << reg << G4endl;
|
||||
}
|
||||
|
||||
// type of DNA physics
|
||||
G4int itype = 0;
|
||||
|
||||
if(0 == itype) {
|
||||
AddElectronModels0(reg, ecap, emsc, elowest, elimel);
|
||||
AddProtonModels0(reg, pmsc, elimel, pminbb, pmin, pmax);
|
||||
AddHeliumModels0(reg, a1msc, a2msc, elimel, pminbb, pmin, pmax);
|
||||
AddGenericIonModels0(reg, imsc, elimel, pminbb, pmin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNAPhysicsActivator::AddElectronModels0(const G4String& reg,
|
||||
G4LowECapture* ecap, G4bool emsc,
|
||||
G4double elowest, G4double elimel)
|
||||
{
|
||||
G4EmConfigurator* em_config =
|
||||
G4LossTableManager::Instance()->EmConfigurator();
|
||||
G4VEmModel* mod;
|
||||
|
||||
static const G4double elimin = 1 * MeV;
|
||||
static const G4double elimvb = 100 * eV;
|
||||
static const G4double elimat = 13 * eV;
|
||||
static const G4double elim1 = 10 * keV;
|
||||
|
||||
G4double emax = theParameters->MaxKinEnergy();
|
||||
|
||||
if(IsVerbose()) {
|
||||
G4cout << " Energy limits for e- elastic: "
|
||||
<< elowest/eV << " eV - " << elimel/MeV << " MeV" << G4endl
|
||||
<< " Energy limits for e- inelastic: "
|
||||
<< elowest/eV << " eV - " << elimin/MeV << " MeV" << G4endl;
|
||||
}
|
||||
|
||||
if(emsc) {
|
||||
G4UrbanMscModel* msc = new G4UrbanMscModel();
|
||||
msc->SetActivationLowEnergyLimit(elimel);
|
||||
em_config->SetExtraEmModel("e-", "msc", msc, reg, 0.0, 100*MeV);
|
||||
} else {
|
||||
mod = new G4eCoulombScatteringModel();
|
||||
mod->SetActivationLowEnergyLimit(elimel);
|
||||
em_config->SetExtraEmModel("e-", "CoulombScat", mod, reg, 0.0, emax);
|
||||
}
|
||||
|
||||
// cuts and solvation
|
||||
if(G4DNAChemistryManager::IsActivated()) {
|
||||
// For this condition to work, the chemistry list has to be called
|
||||
// before any standard EM physics list
|
||||
mod = new G4DNATransformElectronModel();
|
||||
mod->SetHighEnergyLimit(elowest);
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAElectronSolvation",
|
||||
mod, reg, 0.,elowest+1.*eV);
|
||||
|
||||
mod = new G4DNAUeharaScreenedRutherfordElasticModel();
|
||||
mod->SetLowEnergyLimit(0.);
|
||||
mod->SetActivationLowEnergyLimit(0.);
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAElastic",
|
||||
mod, reg, 0.0, 7.4*eV);
|
||||
} else if(ecap) {
|
||||
ecap->AddRegion(reg);
|
||||
|
||||
} else {
|
||||
mod = new G4DNAOneStepThermalizationModel();
|
||||
mod->SetHighEnergyLimit(elowest);
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAElectronSolvation",
|
||||
mod, reg, 0., elowest);
|
||||
}
|
||||
|
||||
mod = new G4DNAChampionElasticModel();
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAElastic",
|
||||
mod, reg, 7.4*eV, elimel);
|
||||
|
||||
// ionisation
|
||||
mod = new G4MollerBhabhaModel();
|
||||
mod->SetActivationLowEnergyLimit(elimin);
|
||||
em_config->SetExtraEmModel("e-", "eIoni",
|
||||
mod, reg, 0.0, emax,
|
||||
new G4UniversalFluctuation());
|
||||
|
||||
mod = new G4DNAEmfietzoglouIonisationModel();
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAIonisation",
|
||||
mod, reg, 0.0, elim1);
|
||||
|
||||
mod = new G4DNABornIonisationModel();
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAIonisation",
|
||||
mod, reg, elim1, elimin);
|
||||
|
||||
// exc
|
||||
mod = new G4DNAEmfietzoglouExcitationModel();
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAExcitation",
|
||||
mod, reg, 0.0, elim1);
|
||||
|
||||
mod = new G4DNABornExcitationModel();
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAExcitation",
|
||||
mod, reg, elim1, elimin);
|
||||
|
||||
mod = new G4DNASancheExcitationModel();
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAVibExcitation",
|
||||
mod, reg, 0.0, elimvb);
|
||||
|
||||
mod = new G4DNAMeltonAttachmentModel();
|
||||
em_config->SetExtraEmModel("e-", "e-_G4DNAAttachment",
|
||||
mod, reg, 0.0, elimat);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNAPhysicsActivator::AddProtonModels0(const G4String& reg,
|
||||
G4bool pmsc, G4double elimel,
|
||||
G4double pminbb, G4double pmin,
|
||||
G4double pmax)
|
||||
{
|
||||
G4EmConfigurator* em_config =
|
||||
G4LossTableManager::Instance()->EmConfigurator();
|
||||
G4VEmModel* mod;
|
||||
|
||||
static const G4double pminch = 100 * eV;
|
||||
static const G4double gmmax = 500 * keV;
|
||||
static const G4double hmax = 100 * MeV;
|
||||
|
||||
G4double emax = theParameters->MaxKinEnergy();
|
||||
|
||||
if(IsVerbose()) {
|
||||
G4cout << " Energy limits for protons: "
|
||||
<< pmin/MeV << " MeV - " << pmax/MeV << " MeV" << G4endl;
|
||||
}
|
||||
|
||||
// proton
|
||||
if(pmsc) {
|
||||
G4UrbanMscModel* msc = new G4UrbanMscModel();
|
||||
msc->SetActivationLowEnergyLimit(elimel);
|
||||
em_config->SetExtraEmModel("proton", "msc", msc, reg, 0.0, 100*MeV);
|
||||
} else {
|
||||
mod = new G4eCoulombScatteringModel();
|
||||
mod->SetActivationLowEnergyLimit(elimel);
|
||||
em_config->SetExtraEmModel("proton", "CoulombScat", mod, reg, 0.0, emax);
|
||||
}
|
||||
|
||||
mod = new G4BraggModel();
|
||||
mod->SetActivationLowEnergyLimit(pminbb);
|
||||
em_config->SetExtraEmModel("proton", "hIoni",
|
||||
mod, reg, 0.0, pminbb,
|
||||
new G4UniversalFluctuation());
|
||||
|
||||
mod = new G4BetheBlochModel();
|
||||
mod->SetActivationLowEnergyLimit(pmax);
|
||||
em_config->SetExtraEmModel("proton", "hIoni",
|
||||
mod, reg, pminbb, emax,
|
||||
new G4UniversalFluctuation());
|
||||
|
||||
mod = new G4DNARuddIonisationModel();
|
||||
em_config->SetExtraEmModel("proton", "proton_G4DNAIonisation",
|
||||
mod, reg, 0.0, gmmax);
|
||||
|
||||
mod = new G4DNABornIonisationModel();
|
||||
em_config->SetExtraEmModel("proton", "proton_G4DNAIonisation",
|
||||
mod, reg, gmmax, pmax);
|
||||
|
||||
mod = new G4DNAMillerGreenExcitationModel();
|
||||
em_config->SetExtraEmModel("proton", "proton_G4DNAExcitation",
|
||||
mod, reg, 0.0, gmmax);
|
||||
|
||||
mod = new G4DNABornExcitationModel();
|
||||
em_config->SetExtraEmModel("proton", "proton_G4DNAExcitation",
|
||||
mod, reg, gmmax, pmax);
|
||||
|
||||
mod = new G4DNADingfelderChargeDecreaseModel();
|
||||
em_config->SetExtraEmModel("proton", "proton_G4DNAChargeDecrease",
|
||||
mod, reg, pminch, pmax);
|
||||
|
||||
mod = new G4DNAIonElasticModel();
|
||||
em_config->SetExtraEmModel("proton", "proton_G4DNAElasticModel",
|
||||
mod, reg, 0.0, elimel);
|
||||
|
||||
// hydrogen
|
||||
mod = new G4DNARuddIonisationModel();
|
||||
em_config->SetExtraEmModel("hydrogen", "hydrogen_G4DNAIonisation",
|
||||
mod, reg, 0.0, hmax);
|
||||
|
||||
mod = new G4DNAMillerGreenExcitationModel();
|
||||
em_config->SetExtraEmModel("hydrogen", "hydrogen_G4DNAExcitation",
|
||||
mod, reg, 0.0, gmmax);
|
||||
|
||||
mod = new G4DNADingfelderChargeIncreaseModel();
|
||||
em_config->SetExtraEmModel("hydrogen", "hydrogen_G4DNAChargeIncrease",
|
||||
mod, reg, pminch, pmax);
|
||||
|
||||
mod = new G4DNAIonElasticModel();
|
||||
em_config->SetExtraEmModel("hydrogen", "hydrogen_G4DNAElasticModel",
|
||||
mod, reg, 0.0, elimel);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNAPhysicsActivator::AddGenericIonModels0(const G4String& reg,
|
||||
G4bool imsc, G4double elimel,
|
||||
G4double pminbb, G4double pmin)
|
||||
{
|
||||
G4EmConfigurator* em_config =
|
||||
G4LossTableManager::Instance()->EmConfigurator();
|
||||
G4VEmModel* mod;
|
||||
|
||||
static const G4double gionmax= 1 * GeV;
|
||||
|
||||
G4double emax = theParameters->MaxKinEnergy();
|
||||
|
||||
if(IsVerbose()) {
|
||||
G4cout << " Energy limits for GenericIon: "
|
||||
<< pmin/MeV << " MeV/u - " << gionmax/MeV << " MeV/u" << G4endl;
|
||||
}
|
||||
|
||||
if(imsc) {
|
||||
G4UrbanMscModel* msc = new G4UrbanMscModel();
|
||||
msc->SetActivationLowEnergyLimit(elimel);
|
||||
em_config->SetExtraEmModel("proton", "ionmsc", msc, reg, 0.0, 100*MeV);
|
||||
} else {
|
||||
mod = new G4IonCoulombScatteringModel();
|
||||
mod->SetActivationLowEnergyLimit(elimel);
|
||||
em_config->SetExtraEmModel("proton", "CoulombScat", mod, reg, 0.0, emax);
|
||||
}
|
||||
|
||||
mod = new G4BraggIonModel();
|
||||
mod->SetActivationLowEnergyLimit(pminbb);
|
||||
em_config->SetExtraEmModel("GenericIon", "ionIoni",
|
||||
mod, reg, 0.0, pminbb,
|
||||
new G4IonFluctuations());
|
||||
|
||||
mod = new G4BetheBlochModel();
|
||||
mod->SetActivationLowEnergyLimit(gionmax);
|
||||
em_config->SetExtraEmModel("GenericIon", "ionIoni",
|
||||
mod, reg, pminbb, emax,
|
||||
new G4IonFluctuations());
|
||||
|
||||
mod = new G4DNARuddIonisationExtendedModel();
|
||||
em_config->SetExtraEmModel("GenericIon", "GenericIon_G4DNAIonisation",
|
||||
mod, reg, 0.0, gionmax);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNAPhysicsActivator::AddHeliumModels0(const G4String& reg, G4bool a1msc,
|
||||
G4bool a2msc, G4double elimel,
|
||||
G4double pminbb, G4double pmin,
|
||||
G4double pmax)
|
||||
{
|
||||
G4EmConfigurator* em_config =
|
||||
G4LossTableManager::Instance()->EmConfigurator();
|
||||
G4VEmModel* mod;
|
||||
|
||||
static const G4double mgmin = 1 * keV;
|
||||
static const G4double hemax = 400 * MeV;
|
||||
|
||||
G4double emax = theParameters->MaxKinEnergy();
|
||||
|
||||
if(IsVerbose()) {
|
||||
G4cout << " Energy limits for Helium ions: "
|
||||
<< pmin/MeV << " MeV - " << hemax/MeV << " MeV" << G4endl;
|
||||
}
|
||||
|
||||
// alpha++
|
||||
if(a2msc) {
|
||||
G4UrbanMscModel* msc = new G4UrbanMscModel();
|
||||
msc->SetActivationLowEnergyLimit(elimel);
|
||||
em_config->SetExtraEmModel("alpha++", "msc", msc, reg, 0.0, 100*MeV);
|
||||
}
|
||||
mod = new G4BraggIonModel();
|
||||
mod->SetActivationLowEnergyLimit(pminbb);
|
||||
em_config->SetExtraEmModel("alpha", "ionIoni",
|
||||
mod, reg, 0.0, pminbb,
|
||||
new G4IonFluctuations());
|
||||
|
||||
mod = new G4BetheBlochModel();
|
||||
mod->SetActivationLowEnergyLimit(pmax);
|
||||
em_config->SetExtraEmModel("alpha", "ionIoni",
|
||||
mod, reg, pminbb, emax,
|
||||
new G4IonFluctuations());
|
||||
|
||||
mod = new G4DNARuddIonisationExtendedModel();
|
||||
em_config->SetExtraEmModel("alpha", "alpha_G4DNAIonisation",
|
||||
mod, reg, 0.0, pmax);
|
||||
|
||||
mod = new G4DNAMillerGreenExcitationModel();
|
||||
em_config->SetExtraEmModel("alpha", "alpha_G4DNAExcitation",
|
||||
mod, reg, mgmin, pmax);
|
||||
|
||||
mod = new G4DNADingfelderChargeDecreaseModel();
|
||||
em_config->SetExtraEmModel("alpha", "alpha_G4DNAChargeDecrease",
|
||||
mod, reg, mgmin, hemax);
|
||||
|
||||
mod = new G4DNAIonElasticModel();
|
||||
em_config->SetExtraEmModel("alpha", "alpha_G4DNAElasticModel",
|
||||
mod, reg, 0.0, elimel);
|
||||
|
||||
// ---
|
||||
// alpha+
|
||||
if(a1msc) {
|
||||
G4UrbanMscModel* msc = new G4UrbanMscModel();
|
||||
msc->SetActivationLowEnergyLimit(elimel);
|
||||
em_config->SetExtraEmModel("alpha+", "msc", msc, reg, 0.0, 100*MeV);
|
||||
}
|
||||
mod = new G4BraggIonModel();
|
||||
mod->SetActivationLowEnergyLimit(pminbb);
|
||||
em_config->SetExtraEmModel("alpha+", "ionIoni",
|
||||
mod, reg, 0.0, pminbb,
|
||||
new G4IonFluctuations());
|
||||
|
||||
mod = new G4BetheBlochModel();
|
||||
mod->SetActivationLowEnergyLimit(pmax);
|
||||
em_config->SetExtraEmModel("alpha+", "ionIoni",
|
||||
mod, reg, pminbb, emax,
|
||||
new G4IonFluctuations());
|
||||
|
||||
mod = new G4DNARuddIonisationModel();
|
||||
em_config->SetExtraEmModel("alpha+", "alpha+_G4DNAIonisation",
|
||||
mod, reg, 0.0, pmax);
|
||||
|
||||
mod = new G4DNAMillerGreenExcitationModel();
|
||||
em_config->SetExtraEmModel("alpha+", "alpha+_G4DNAExcitation",
|
||||
mod, reg, mgmin, pmax);
|
||||
|
||||
mod = new G4DNADingfelderChargeDecreaseModel();
|
||||
em_config->SetExtraEmModel("alpha+", "alpha+_G4DNAChargeDecrease",
|
||||
mod, reg, mgmin, hemax);
|
||||
|
||||
mod = new G4DNADingfelderChargeIncreaseModel();
|
||||
em_config->SetExtraEmModel("alpha+", "alpha+_G4DNAChargeIncrease",
|
||||
mod, reg, mgmin, hemax);
|
||||
|
||||
mod = new G4DNAIonElasticModel();
|
||||
em_config->SetExtraEmModel("alpha+", "alpha+_G4DNAElasticModel",
|
||||
mod, reg, 0.0, elimel);
|
||||
|
||||
// ---
|
||||
// helium
|
||||
mod = new G4DNARuddIonisationModel();
|
||||
em_config->SetExtraEmModel("helium", "helium_G4DNAIonisation",
|
||||
mod, reg, 0.0, pmax);
|
||||
|
||||
mod = new G4DNAMillerGreenExcitationModel();
|
||||
em_config->SetExtraEmModel("helium", "helium_G4DNAExcitation",
|
||||
mod, reg, mgmin, pmax);
|
||||
|
||||
mod = new G4DNADingfelderChargeIncreaseModel();
|
||||
em_config->SetExtraEmModel("helium", "helium_G4DNAChargeIncrease",
|
||||
mod, reg, mgmin, hemax);
|
||||
|
||||
mod = new G4DNAIonElasticModel();
|
||||
em_config->SetExtraEmModel("helium", "helium_G4DNAElasticModel",
|
||||
mod, reg, 0.0, elimel);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4bool G4EmDNAPhysicsActivator::HasMsc(G4ProcessManager* pm) const
|
||||
{
|
||||
G4bool res = false;
|
||||
G4ProcessVector* pv = pm->GetProcessList();
|
||||
G4int nproc = pm->GetProcessListLength();
|
||||
for(G4int i = 0; i < nproc; ++i)
|
||||
{
|
||||
if(((*pv)[i])->GetProcessSubType() == fMultipleScattering)
|
||||
{
|
||||
res = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -85,22 +85,18 @@
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option1);
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option1::G4EmDNAPhysics_option1(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics_option1"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option1::G4EmDNAPhysics_option1(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics_option1"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetAugerCascade(true);
|
||||
param->SetDeexcitationIgnoreCut(true);
|
||||
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
@@ -147,10 +143,11 @@ void G4EmDNAPhysics_option1::ConstructProcess()
|
||||
}
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() )
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "e-") {
|
||||
@@ -333,7 +330,6 @@ void G4EmDNAPhysics_option1::ConstructProcess()
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
de->SetFluo(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -84,22 +84,19 @@
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option2);
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option2::G4EmDNAPhysics_option2(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics_option2"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option2::G4EmDNAPhysics_option2(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics_option2"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
|
||||
param->SetDefaults();
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetAugerCascade(true);
|
||||
param->SetDeexcitationIgnoreCut(true);
|
||||
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
@@ -142,10 +139,11 @@ void G4EmDNAPhysics_option2::ConstructProcess()
|
||||
}
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() )
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "e-") {
|
||||
@@ -318,7 +316,6 @@ void G4EmDNAPhysics_option2::ConstructProcess()
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
de->SetFluo(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -83,22 +83,18 @@
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option3);
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option3::G4EmDNAPhysics_option3(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics_option3"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option3::G4EmDNAPhysics_option3(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics_option3"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetAugerCascade(true);
|
||||
param->SetDeexcitationIgnoreCut(true);
|
||||
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
@@ -141,10 +137,11 @@ void G4EmDNAPhysics_option3::ConstructProcess()
|
||||
}
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() )
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "e-") {
|
||||
@@ -275,7 +272,6 @@ void G4EmDNAPhysics_option3::ConstructProcess()
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
de->SetFluo(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -89,22 +89,18 @@
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option4);
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option4::G4EmDNAPhysics_option4(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics_option4"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option4::G4EmDNAPhysics_option4(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics_option4"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetAugerCascade(true);
|
||||
param->SetDeexcitationIgnoreCut(true);
|
||||
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
@@ -147,10 +143,11 @@ void G4EmDNAPhysics_option4::ConstructProcess()
|
||||
}
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() )
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "e-") {
|
||||
@@ -283,7 +280,6 @@ void G4EmDNAPhysics_option4::ConstructProcess()
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
de->SetFluo(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -91,19 +91,16 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option5);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option5::G4EmDNAPhysics_option5(G4int ver) :
|
||||
G4VPhysicsConstructor("G4EmDNAPhysics_option5"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option5::G4EmDNAPhysics_option5(G4int ver, const G4String&) :
|
||||
G4VPhysicsConstructor("G4EmDNAPhysics_option5"), verbose(ver)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetAugerCascade(true);
|
||||
param->SetDeexcitationIgnoreCut(true);
|
||||
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
@@ -148,10 +145,11 @@ void G4EmDNAPhysics_option5::ConstructProcess()
|
||||
}
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() )
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "e-")
|
||||
@@ -324,7 +322,6 @@ void G4EmDNAPhysics_option5::ConstructProcess()
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
de->SetFluo(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -75,6 +75,8 @@
|
||||
#include "G4LivermoreGammaConversionModel.hh"
|
||||
#include "G4RayleighScattering.hh"
|
||||
#include "G4LivermoreRayleighModel.hh"
|
||||
|
||||
#include "G4EmParameters.hh"
|
||||
// end of warning
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
@@ -89,17 +91,16 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option7);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option7::G4EmDNAPhysics_option7(G4int ver) :
|
||||
G4VPhysicsConstructor("G4EmDNAPhysics_option7"), verbose(ver)
|
||||
{
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics_option7::G4EmDNAPhysics_option7(G4int ver, const G4String&) :
|
||||
G4VPhysicsConstructor("G4EmDNAPhysics_option7"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetAugerCascade(true);
|
||||
param->SetDeexcitationIgnoreCut(true);
|
||||
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
@@ -144,10 +145,11 @@ void G4EmDNAPhysics_option7::ConstructProcess()
|
||||
}
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() )
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "e-")
|
||||
@@ -329,7 +331,6 @@ void G4EmDNAPhysics_option7::ConstructProcess()
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
de->SetFluo(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -69,6 +69,7 @@ G4EmLEPTSPhysics::G4EmLEPTSPhysics( const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
G4EmParameters::Instance()->SetDefaults();
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -100,10 +101,11 @@ void G4EmLEPTSPhysics::ConstructParticle()
|
||||
void G4EmLEPTSPhysics::ConstructProcess()
|
||||
{
|
||||
|
||||
aParticleIterator->reset();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition * particle = aParticleIterator->value();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition * particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
G4ProcessManager * manager = particle->GetProcessManager();
|
||||
G4cout << " particle " << particle->GetParticleName() << " manager " << manager << G4endl; //GDEB
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLivermorePhysics.cc 92821 2015-09-17 15:23:49Z gcosmo $
|
||||
// $Id: G4EmLivermorePhysics.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
|
||||
#include "G4EmLivermorePhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
@@ -123,40 +123,21 @@
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4EmLivermorePhysics);
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePhysics::G4EmLivermorePhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePhysics"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePhysics::G4EmLivermorePhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePhysics"), verbose(ver)
|
||||
: G4VPhysicsConstructor("G4EmLivermore"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetMaxEnergy(1*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
@@ -196,10 +177,6 @@ void G4EmLivermorePhysics::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -239,11 +216,12 @@ void G4EmLivermorePhysics::ConstructProcess()
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
// Add Livermore EM Processes
|
||||
aParticleIterator->reset();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
|
||||
while( (*aParticleIterator)() ){
|
||||
while( (*myParticleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -450,8 +428,7 @@ void G4EmLivermorePhysics::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+11
-31
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLivermorePolarizedPhysics.cc 92821 2015-09-17 15:23:49Z gcosmo $
|
||||
// $Id: G4EmLivermorePolarizedPhysics.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
|
||||
#include "G4EmLivermorePolarizedPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
@@ -121,36 +121,20 @@
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4EmLivermorePolarizedPhysics);
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePolarizedPhysics"), verbose(ver)
|
||||
G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(G4int ver,
|
||||
const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePolarized"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePolarizedPhysics"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetMaxEnergy(1*TeV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -189,10 +173,6 @@ void G4EmLivermorePolarizedPhysics::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -232,11 +212,12 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
// Add Livermore EM Processes
|
||||
aParticleIterator->reset();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
|
||||
while( (*aParticleIterator)() ){
|
||||
while( (*myParticleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
//Applicability range for Livermore models
|
||||
@@ -456,8 +437,7 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLowEPPhysics.cc 92821 2015-09-17 15:23:49Z gcosmo $
|
||||
// $Id: G4EmLowEPPhysics.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
|
||||
#include "G4EmLowEPPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
@@ -123,23 +123,6 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmLowEPPhysics);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLowEPPhysics::G4EmLowEPPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmLowEPPhysics"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLowEPPhysics::G4EmLowEPPhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmLowEPPhysics"), verbose(ver)
|
||||
{
|
||||
@@ -147,7 +130,7 @@ G4EmLowEPPhysics::G4EmLowEPPhysics(G4int ver, const G4String&)
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetMaxEnergy(1*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
@@ -189,10 +172,6 @@ void G4EmLowEPPhysics::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -228,11 +207,12 @@ void G4EmLowEPPhysics::ConstructProcess()
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
// Add Livermore EM Processes
|
||||
aParticleIterator->reset();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
|
||||
while( (*aParticleIterator)() ){
|
||||
while( (*myParticleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if(verbose > 1)
|
||||
@@ -423,8 +403,7 @@ void G4EmLowEPPhysics::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmPenelopePhysics.cc 92821 2015-09-17 15:23:49Z gcosmo $
|
||||
// $Id: G4EmPenelopePhysics.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
|
||||
#include "G4EmPenelopePhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
@@ -130,27 +130,8 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmPenelopePhysics);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmPenelopePhysics::G4EmPenelopePhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmPenelopePhysics"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetFluo(true);
|
||||
param->SetPIXEElectronCrossSectionModel("Penelope");
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmPenelopePhysics::G4EmPenelopePhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmPenelopePhysics"), verbose(ver)
|
||||
: G4VPhysicsConstructor("G4EmPenelope"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
@@ -161,6 +142,7 @@ G4EmPenelopePhysics::G4EmPenelopePhysics(G4int ver, const G4String&)
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetFluo(true);
|
||||
param->SetPIXEElectronCrossSectionModel("Penelope");
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
@@ -200,10 +182,6 @@ void G4EmPenelopePhysics::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -243,11 +221,12 @@ void G4EmPenelopePhysics::ConstructProcess()
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
// Add Penelope EM Processes
|
||||
aParticleIterator->reset();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
|
||||
while( (*aParticleIterator)() ){
|
||||
while( (*myParticleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
//Applicability range for Penelope models
|
||||
@@ -487,8 +466,7 @@ void G4EmPenelopePhysics::ConstructProcess()
|
||||
G4VAtomDeexcitation* deexcitation = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(deexcitation);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics.cc 92821 2015-09-17 15:23:49Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -108,17 +108,6 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics::G4EmStandardPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics::G4EmStandardPhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard"), verbose(ver)
|
||||
{
|
||||
@@ -162,10 +151,6 @@ void G4EmStandardPhysics::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -210,9 +195,10 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
|
||||
// Add standard EM Processes
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -360,8 +346,7 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -106,24 +106,8 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsGS);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysicsGS::G4EmStandardPhysicsGS(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetLowestElectronEnergy(10*eV);
|
||||
param->SetMscRangeFactor(0.1);
|
||||
param->SetMscStepLimitType(fUseSafetyPlus);// corresponds to Urban fUseSafety
|
||||
// param->SetMscStepLimitType(fUseSafety);// corresponds to the error-free stepping
|
||||
// param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysicsGS::G4EmStandardPhysicsGS(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard"), verbose(ver)
|
||||
: G4VPhysicsConstructor("G4EmStandardGS"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
@@ -170,10 +154,6 @@ void G4EmStandardPhysicsGS::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -218,9 +198,10 @@ void G4EmStandardPhysicsGS::ConstructProcess()
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
|
||||
// Add standard EM Processes
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -383,8 +364,7 @@ void G4EmStandardPhysicsGS::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -160,10 +160,6 @@ void G4EmStandardPhysicsSS::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -195,9 +191,10 @@ void G4EmStandardPhysicsSS::ConstructProcess()
|
||||
|
||||
|
||||
// Add standard EM Processes
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -317,8 +314,7 @@ void G4EmStandardPhysicsSS::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -116,8 +116,8 @@ G4EmStandardPhysicsWVI::G4EmStandardPhysicsWVI(G4int ver)
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetLowestElectronEnergy(10*eV);
|
||||
// param->SetLatDisplacementBeyondSafety(true);
|
||||
param->SetMuHadLateralDisplacement(false);
|
||||
//param->SetLatDisplacementBeyondSafety(true);
|
||||
//param->SetMuHadLateralDisplacement(false);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetMscThetaLimit(0.15);
|
||||
param->SetFluo(true);
|
||||
@@ -158,10 +158,6 @@ void G4EmStandardPhysicsWVI::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -203,9 +199,10 @@ void G4EmStandardPhysicsWVI::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// Add standard EM Processes
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -336,8 +333,7 @@ void G4EmStandardPhysicsWVI::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+6
-24
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option1.cc 92821 2015-09-17 15:23:49Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics_option1.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -112,20 +112,6 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option1);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option1::G4EmStandardPhysics_option1(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetApplyCuts(true);
|
||||
param->SetMscRangeFactor(0.2);
|
||||
param->SetMscStepLimitType(fMinimal);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option1::G4EmStandardPhysics_option1(G4int ver,
|
||||
const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver)
|
||||
@@ -173,10 +159,6 @@ void G4EmStandardPhysics_option1::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -221,9 +203,10 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
|
||||
// Add standard EM Processes
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -378,8 +361,7 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+6
-24
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option2.cc 92821 2015-09-17 15:23:49Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics_option2.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -118,20 +118,6 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option2);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option2::G4EmStandardPhysics_option2(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt2"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetApplyCuts(false);
|
||||
param->SetMscRangeFactor(0.2);
|
||||
param->SetMscStepLimitType(fMinimal);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option2::G4EmStandardPhysics_option2(G4int ver,
|
||||
const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt2"), verbose(ver)
|
||||
@@ -179,10 +165,6 @@ void G4EmStandardPhysics_option2::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -227,9 +209,10 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
|
||||
// Add standard EM Processes
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -403,8 +386,7 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+8
-29
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option3.cc 96267 2016-04-01 12:38:51Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics_option3.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -115,24 +115,6 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option3);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt3"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(10*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(G4int ver,
|
||||
const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt3"), verbose(ver)
|
||||
@@ -141,10 +123,11 @@ G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(G4int ver,
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(10*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetMaxEnergy(100*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -183,10 +166,6 @@ void G4EmStandardPhysics_option3::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -224,9 +203,10 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
// Add standard EM Processes
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -402,8 +382,7 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+7
-31
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option4.cc 96209 2016-03-30 08:58:33Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics_option4.cc 99938 2016-10-12 08:06:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -119,26 +119,6 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option4);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt4"), verbose(ver)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetLatDisplacementBeyondSafety(true);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver,
|
||||
const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt4"), verbose(ver)
|
||||
@@ -154,7 +134,7 @@ G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver,
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
//param->SetLatDisplacementBeyondSafety(true);
|
||||
// param->SetLatDisplacementBeyondSafety(true);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -193,10 +173,6 @@ void G4EmStandardPhysics_option4::ConstructParticle()
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
// dna
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -247,9 +223,10 @@ void G4EmStandardPhysics_option4::ConstructProcess()
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
// Add standard EM Processes
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
while( (*myParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
@@ -480,8 +457,7 @@ void G4EmStandardPhysics_option4::ConstructProcess()
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
G4EmModelActivator mact(GetPhysicsName());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -335,11 +335,12 @@ void G4OpticalPhysics::ConstructProcess()
|
||||
UIhelpers::buildCommands(CerenkovProcess);
|
||||
OpProcesses[kCerenkov] = CerenkovProcess;
|
||||
|
||||
aParticleIterator->reset();
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
myParticleIterator->reset();
|
||||
|
||||
while( (*aParticleIterator)() ){
|
||||
while( (*myParticleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ParticleDefinition* particle = myParticleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
pManager = particle->GetProcessManager();
|
||||
|
||||
Reference in New Issue
Block a user