123 if(regnamesDNA.size() > 0)
134 if(regnamesPAI.size() > 0)
139 if(regnamesME.size() > 0)
144 if(regnamesDNA.size() > 0)
155 G4int nreg = regnamesPAI.size();
156 if(0 == nreg)
return;
160 G4cout <<
"### G4EmModelActivator::ActivatePAI for " << nreg <<
" regions"
168 std::vector<G4VEnergyLossProcess*>::const_iterator itr;
177 for(
G4int i = 0; i < nreg; ++i)
181 if(particlesPAI[i] !=
"all")
186 G4cout <<
"### WARNING: ActivatePAI::FindParticle fails to find "
187 << particlesPAI[i] <<
G4endl;
197 G4cout <<
"### WARNING: ActivatePAI::GetRegion fails to find "
198 << regnamesPAI[i] <<
G4endl;
204 if(p == elec || p == posi)
206 else if (p == mupl || p == mumi)
211 for(itr = v.begin(); itr != v.end(); itr++)
220 if(typesPAI[i] ==
"PAIphoton")
235 G4cout <<
"### G4EmModelActivator: add <" << typesPAI[i]
236 <<
"> model for " << particlesPAI[i]
237 <<
" in the " << regnamesPAI[i] <<
G4endl;
252 G4int nreg = regnamesME.size();
260 G4cout <<
"### G4EmModelActivator::ActivateMicroElec for " << nreg
305 for(
G4int i = 0; i < nreg; ++i)
309 G4cout <<
"### MicroElec models are activated for G4Region " << reg
311 <<
" Energy limits for e- elastic: " << elowest/
eV <<
" eV - "
312 << elimel/
MeV <<
" MeV"
314 <<
" Energy limits for e- inelastic: " << elowest/
eV <<
" eV - "
315 << elimin/
MeV <<
" MeV"
317 <<
" Energy limits for hadrons/ions: " << pmin/
MeV <<
" MeV - "
318 << pmax/
MeV <<
" MeV"
331 em_config->
SetExtraEmModel(
"e-",
"CoulombScat", mod, reg, 0.0, elimel);
336 "e-G4MicroElecElastic",
354 "e-G4MicroElecInelastic",
383 "p_G4MicroElecInelastic",
412 "ion_G4MicroElecInelastic",
429 genericIonsManager->
GetIon(
"alpha+");
430 genericIonsManager->
GetIon(
"helium");
431 genericIonsManager->
GetIon(
"hydrogen");
439 G4int nreg = regnamesDNA.size();
448 G4cout <<
"### G4EmModelActivator::ActivateMicroElec for " << nreg
660 for(
G4int i = 0; i < nreg; ++i)
666 G4cout <<
"### DNA models are activated for G4Region " << reg <<
G4endl
667 <<
" Energy limits for e- elastic: " << elowest/
eV <<
" eV - "
669 <<
" Energy limits for e- inelastic: " << elowest/
eV <<
" eV - "
671 <<
" Energy limits for hadrons/ions: " << pmin/
MeV <<
" MeV - "
684 em_config->
SetExtraEmModel(
"e-",
"CoulombScat", mod, reg, 0.0, elimel);
707 "e-_G4DNAIonisation",
715 "e-_G4DNAExcitation",
723 "e-_G4DNAVibExcitation",
731 "e-_G4DNAAttachment",
760 "proton_G4DNAIonisation",
768 "proton_G4DNAIonisation",
776 "proton_G4DNAExcitation",
784 "proton_G4DNAExcitation",
792 "proton_G4DNAChargeDecrease",
800 "proton_G4DNAIonElasticModel",
829 "GenericIon_G4DNAIonisation",
858 "alpha_G4DNAIonisation",
866 "alpha_G4DNAExcitation",
874 "alpha_G4DNAChargeDecrease",
882 "alpha_G4DNAIonElasticModel",
911 "alpha+_G4DNAIonisation",
919 "alpha+_G4DNAExcitation",
927 "alpha+_G4DNAChargeDecrease",
935 "alpha+_G4DNAChargeIncrease",
943 "alpha+_G4DNAIonElasticModel",
952 "helium_G4DNAIonisation",
960 "helium_G4DNAExcitation",
968 "helium_G4DNAChargeIncrease",
976 "helium_G4DNAIonElasticModel",
985 "hydrogen_G4DNAIonisation",
993 "hydrogen_G4DNAExcitation",
1001 "hydrogen_G4DNAChargeIncrease",
1009 "hydrogen_G4DNAIonElasticModel",
1024 for(
G4int i = 0; i < nproc; ++i)
G4EmConfigurator * EmConfigurator()
void SetActivationHighEnergyLimit(G4double)
static G4MuonPlus * MuonPlus()
G4Region * GetRegion(const G4String &name, G4bool verbose=true) const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
#define G4DNABornIonisationModel
static G4LossTableManager * Instance()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
const std::vector< G4String > & ParticlesPAI() const
const std::vector< G4String > & RegionsMicroElec() const
void ConstructDNAParticles()
const std::vector< G4String > & RegionsPAI() const
const std::vector< G4String > & TypesDNA() const
G4ProcessManager * GetProcessManager() const
G4EmParameters * theParameters
G4DNABornExcitationModel1 G4DNABornExcitationModel
static const G4double reg
static G4RegionStore * GetInstance()
G4GLOB_DLL std::ostream G4cout
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4Proton * Proton()
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *fluc=0, const G4Region *region=0)
static G4DNAGenericIonsManager * Instance(void)
const G4String & GetProcessName() const
const std::vector< G4VEnergyLossProcess * > & GetEnergyLossProcessVector()
void SetActivationLowEnergyLimit(G4double)
static G4Positron * Positron()
static G4GenericIon * GenericIon()
static G4ParticleTable * GetParticleTable()
void AddEmModel(G4int, G4VEmModel *, const G4Region *region=0)
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4EmParameters * Instance()
static G4MuonMinus * MuonMinus()
const std::vector< G4String > & RegionsDNA() const
static G4Electron * Electron()
G4int GetProcessListLength() const
G4bool HasMsc(G4ProcessManager *) const
void SetExtraEmModel(const G4String &particleName, const G4String &processName, G4VEmModel *, const G4String ®ionName="", G4double emin=0.0, G4double emax=DBL_MAX, G4VEmFluctuationModel *fm=0)
const std::vector< G4String > & TypesPAI() const
G4ProcessVector * GetProcessList() const
G4ParticleDefinition * GetIon(const G4String &name)
G4bool IsIonisationProcess() const