126   const std::vector<G4String> regnamesPAI = theParameters->
RegionsPAI();
 
  127   if(regnamesPAI.size() > 0)
 
  132   if(regnamesME.size() > 0)
 
  136   const std::vector<G4String> regnamesMSC = theParameters->
RegionsMsc();
 
  137   if(regnamesMSC.size() > 0)
 
  145 void G4EmModelActivator::ActivateEmOptions()
 
  147   const std::vector<G4String> regnamesMSC = theParameters->
RegionsMsc();
 
  148   G4int nreg = regnamesMSC.size();
 
  149   if(0 == nreg) { 
return; }
 
  152     G4cout << 
"### G4EmModelActivator::ActivateEmOptions for " << nreg << 
" regions" 
  155   const std::vector<G4String> typesMSC = theParameters->
TypesMsc();
 
  166   for(
G4int i=0; i<nreg; ++i) {
 
  169       G4cout << i << 
". region <" << reg << 
">; type <" << typesMSC[i] << 
"> "  
  173     if(baseName == typesMSC[i]) { 
continue; }
 
  175     if(
"G4EmStandard" == typesMSC[i]) {
 
  183     } 
else if(
"G4EmStandard_opt1" == typesMSC[i] || 
 
  184           "G4EmStandard_opt2" == typesMSC[i]) {
 
  196     } 
else if(
"G4EmStandard_opt3" == typesMSC[i]) { 
 
  214       FindOrAddProcess(phot, 
"Rayl");
 
  217       FindOrAddProcess(phot, 
"phot");
 
  220       FindOrAddProcess(phot, 
"compt");
 
  224     } 
else if(
"G4EmStandard_opt4" == typesMSC[i]) {
 
  239       FindOrAddProcess(phot, 
"Rayl");
 
  242       FindOrAddProcess(phot, 
"phot");
 
  245       FindOrAddProcess(phot, 
"compt");
 
  252     } 
else if(
"G4EmStandardGS" == typesMSC[i]) {
 
  264     } 
else if(
"G4EmStandardWVI" == typesMSC[i]) {
 
  272       FindOrAddProcess(elec, 
"CoulombScat");
 
  273       FindOrAddProcess(posi, 
"CoulombScat");
 
  284     } 
else if(
"G4EmStandardSS" == typesMSC[i] && 
 
  285           baseName != 
"G4EmStandard_opt3") {
 
  321     } 
else if(
"G4EmLivermore" == typesMSC[i]) {
 
  330       FindOrAddProcess(phot, 
"Rayl");
 
  345     } 
else if(
"G4EmPenelope" == typesMSC[i]) {
 
  353       FindOrAddProcess(phot, 
"Rayl");
 
  376     } 
else if(
"G4RadioactiveDecay" == typesMSC[i]) {
 
  388         G4cout << 
"### G4EmModelActivator::ActivateEmOptions WARNING: \n" 
  389            << 
"    EM Physics configuration name <" << typesMSC[i]
 
  390            << 
"> is not known - ignored" << 
G4endl;
 
  398 void G4EmModelActivator::ActivatePAI()
 
  400   const std::vector<G4String> regnamesPAI = theParameters->
RegionsPAI();
 
  401   G4int nreg = regnamesPAI.size();
 
  402   if(0 == nreg) { 
return; }
 
  405     G4cout << 
"### G4EmModelActivator::ActivatePAI for " << nreg << 
" regions" 
  408   const std::vector<G4String> particlesPAI = theParameters->
ParticlesPAI();
 
  409   const std::vector<G4String> typesPAI = theParameters->
TypesPAI();
 
  413   std::vector<G4VEnergyLossProcess*>::const_iterator itr;
 
  422   for(
G4int i = 0; i < nreg; ++i) {
 
  424     if(particlesPAI[i] != 
"all") {
 
  427         G4cout << 
"### WARNING: ActivatePAI::FindParticle fails to find " 
  428                << particlesPAI[i] << 
G4endl;
 
  434       G4cout << 
"### WARNING: ActivatePAI::GetRegion fails to find " 
  435          << regnamesPAI[i] << 
G4endl;
 
  440     if(p == elec || p == posi)
 
  442     else if (p == mupl || p == mumi)
 
  445       { name = 
"ionIoni"; }
 
  447     for(itr = v.begin(); itr != v.end(); ++itr) {
 
  454     if(name != namep) { 
continue; }
 
  456         if(namep != 
"hIoni" && namep != 
"muIoni" && namep != 
"eIoni")
 
  461       if(typesPAI[i] == 
"PAIphoton") {
 
  472     G4cout << 
"### G4EmModelActivator: add <" << typesPAI[i]
 
  473            << 
"> model for " << particlesPAI[i]
 
  474            << 
" in the " << regnamesPAI[i] << 
G4endl;
 
  482 void G4EmModelActivator::ActivateMicroElec()
 
  485   G4int nreg = regnamesME.size();
 
  493     G4cout << 
"### G4EmModelActivator::ActivateMicroElec for " << nreg
 
  505   G4bool emsc = HasMsc(eman);
 
  538   for(
G4int i = 0; i < nreg; ++i)
 
  542     G4cout << 
"### MicroElec models are activated for G4Region " << reg
 
  544            << 
"    Energy limits for e- elastic:    " << elowest/
eV << 
" eV - " 
  545            << elimel/
MeV << 
" MeV" 
  547            << 
"    Energy limits for e- inelastic:  " << elowest/
eV << 
" eV - " 
  548            << elimin/
MeV << 
" MeV" 
  550            << 
"    Energy limits for hadrons/ions:  " << pmin/
MeV << 
" MeV - " 
  551            << pmax/
MeV << 
" MeV" 
  564       em_config->
SetExtraEmModel(
"e-", 
"CoulombScat", mod, reg, 0.0, elimel);
 
  569                                "e-G4MicroElecElastic",
 
  587                                "e-G4MicroElecInelastic",
 
  616                                "p_G4MicroElecInelastic",
 
  645                                "ion_G4MicroElecInelastic",
 
  660   for(
G4int i = 0; i < nproc; ++i)
 
  677   for(
G4int i = 0; i<nproc; ++i) {
 
  678     if(((*pv)[i])->GetProcessName() == name) { 
return; }
 
  680   if(name == 
"CoulombScat") {
 
  684   } 
else if(name == 
"Rayl") {
 
G4EmConfigurator * EmConfigurator()
 
void SetActivationHighEnergyLimit(G4double)
 
static G4MuonPlus * MuonPlus()
 
G4Region * GetRegion(const G4String &name, G4bool verbose=true) const 
 
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
 
static G4LossTableManager * Instance()
 
void SetDeexcitationIgnoreCut(G4bool val)
 
void SetAuger(G4bool val)
 
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
 
void SetExtraEmModel(const G4String &particleName, const G4String &processName, G4VEmModel *, const G4String ®ionName="", G4double emin=0.0, G4double emax=DBL_MAX, G4VEmFluctuationModel *fm=nullptr)
 
const std::vector< G4String > & ParticlesPAI() const 
 
const std::vector< G4String > & RegionsMicroElec() const 
 
const std::vector< G4String > & RegionsPAI() const 
 
void SetStepLimitType(G4MscStepLimitType)
 
void SetDeexActiveRegion(const G4String ®ion, G4bool fdeex, G4bool fauger, G4bool fpixe)
 
const std::vector< G4String > & RegionsMsc() const 
 
static const G4double reg
 
void SetHighEnergyLimit(G4double)
 
static constexpr double TeV
 
static G4RegionStore * GetInstance()
 
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *fluc=0, const G4Region *region=nullptr)
 
void SetEmModel(G4VEmModel *, G4int index=1)
 
G4GLOB_DLL std::ostream G4cout
 
void SetRangeFactor(G4double)
 
void SetAugerCascade(G4bool val)
 
static G4Proton * Proton()
 
static constexpr double eV
 
const G4String & GetProcessName() const 
 
const std::vector< G4VEnergyLossProcess * > & GetEnergyLossProcessVector()
 
void SetActivationLowEnergyLimit(G4double)
 
static G4Positron * Positron()
 
static G4GenericIon * GenericIon()
 
const std::vector< G4String > & TypesMsc() const 
 
static G4ParticleTable * GetParticleTable()
 
G4ProcessManager * GetProcessManager() const 
 
static G4EmParameters * Instance()
 
void DefineRegParamForDeex(G4VAtomDeexcitation *) const 
 
static constexpr double GeV
 
G4EmModelActivator(const G4String &emphys="")
 
static G4MuonMinus * MuonMinus()
 
static G4Electron * Electron()
 
static constexpr double MeV
 
G4VAtomDeexcitation * AtomDeexcitation()
 
G4int GetProcessListLength() const 
 
static constexpr double keV
 
const std::vector< G4String > & TypesPAI() const 
 
void SetPolarAngleLimit(G4double)
 
G4ProcessVector * GetProcessList() const 
 
G4bool IsIonisationProcess() const