127 if(regnamesPAI.size() > 0)
132 if(regnamesME.size() > 0)
137 if(regnamesMSC.size() > 0)
148 G4int nreg = regnamesPhys.size();
149 if(0 == nreg) {
return; }
152 G4cout <<
"### G4EmModelActivator::ActivateEmOptions for " << nreg <<
" regions"
177 for(
G4int i=0; i<nreg; ++i) {
180 G4cout << i <<
". region <" << reg <<
">; type <" << typesPhys[i] <<
"> "
184 if(
baseName == typesPhys[i]) {
continue; }
186 if(
"G4EmStandard" == typesPhys[i]) {
199 }
else if(
"G4EmStandard_opt1" == typesPhys[i] ||
200 "G4EmStandard_opt2" == typesPhys[i]) {
211 }
else if(
"G4EmStandard_opt3" == typesPhys[i]) {
251 }
else if(
"G4EmStandard_opt4" == typesPhys[i]) {
281 }
else if(
"G4EmStandardGS" == typesPhys[i]) {
290 }
else if(
"G4EmStandardWVI" == typesPhys[i]) {
302 }
else if(
"G4EmStandardSS" == typesPhys[i] &&
305 for(
const auto& particleName : emList.
PartNames()) {
313 if(particleName ==
"mu+" || particleName ==
"mu-") {
327 }
else if(
"G4EmLivermore" == typesPhys[i]) {
356 em_config->
SetExtraEmModel(
"e-",
"eBrem", mod, reg, 0.0, highEnergyLimit);
365 }
else if(
"G4EmPenelope" == typesPhys[i]) {
392 em_config->
SetExtraEmModel(
"e-",
"eIoni", mod, reg, 0.0, highEnergyLimit, uf);
394 em_config->
SetExtraEmModel(
"e-",
"eBrem", mod, reg, 0.0, highEnergyLimit);
398 em_config->
SetExtraEmModel(
"e+",
"eIoni", mod, reg, 0.0, highEnergyLimit, uf);
400 em_config->
SetExtraEmModel(
"e+",
"eBrem", mod, reg, 0.0, highEnergyLimit);
402 em_config->
SetExtraEmModel(
"e+",
"annihil", mod, reg, 0.0, highEnergyLimit);
411 }
else if(
"G4RadioactiveDecay" == typesPhys[i]) {
421 G4cout <<
"### G4EmModelActivator::ActivateEmOptions WARNING: \n"
422 <<
" EM Physics configuration name <" << typesPhys[i]
423 <<
"> is not known - ignored" <<
G4endl;
434 G4int nreg = regnamesPAI.size();
435 if(0 == nreg) {
return; }
438 G4cout <<
"### G4EmModelActivator::ActivatePAI for " << nreg <<
" regions"
455 for(
G4int i = 0; i < nreg; ++i) {
457 if(particlesPAI[i] !=
"all") {
460 G4cout <<
"### WARNING: ActivatePAI::FindParticle fails to find "
461 << particlesPAI[i] <<
G4endl;
467 G4cout <<
"### WARNING: ActivatePAI::GetRegion fails to find "
468 << regnamesPAI[i] <<
G4endl;
473 if(p == elec || p == posi)
475 else if (p == mupl || p == mumi)
478 { name =
"ionIoni"; }
482 if(!proc->IsIonisationProcess()) {
continue; }
484 G4String namep = proc->GetProcessName();
486 if(name != namep) {
continue; }
488 if(namep !=
"hIoni" && namep !=
"muIoni" &&
489 namep !=
"eIoni" && namep !=
"ionIoni")
494 if(typesPAI[i] ==
"PAIphoton" || typesPAI[i] ==
"pai_photon") {
503 proc->AddEmModel(0, em, fm, r);
505 G4cout <<
"### G4EmModelActivator: add <" << typesPAI[i]
506 <<
"> model for " << particlesPAI[i]
507 <<
" in the " << regnamesPAI[i] <<
G4endl;
518 G4int nreg = regnamesME.size();
526 G4cout <<
"### G4EmModelActivator::ActivateMicroElec for " << nreg
571 for(
G4int i = 0; i < nreg; ++i)
575 G4cout <<
"### MicroElec models are activated for G4Region " << reg
577 <<
" Energy limits for e- elastic: " << elowest/
eV <<
" eV - "
578 << elimel/
MeV <<
" MeV"
580 <<
" Energy limits for e- inelastic: " << elowest/
eV <<
" eV - "
581 << elimin/
MeV <<
" MeV"
583 <<
" Energy limits for hadrons/ions: " << pmin/
MeV <<
" MeV - "
584 << pmax/
MeV <<
" MeV"
597 em_config->
SetExtraEmModel(
"e-",
"CoulombScat", mod, reg, 0.0, elimel);
602 "e-G4MicroElecElastic",
620 "e-G4MicroElecInelastic",
649 "p_G4MicroElecInelastic",
678 "ion_G4MicroElecInelastic",
693 for(
G4int i = 0; i < nproc; ++i)
752 for(
G4int i = 0; i<nproc; ++i) {
753 if(((*pv)[i])->GetProcessName() == name) {
return; }
755 if(name ==
"CoulombScat") {
759 }
else if(name ==
"Rayl") {