128  if(regnamesPAI.size() > 0)
 
  133  if(regnamesME.size() > 0)
 
  138  if(regnamesMSC.size() > 0)
 
  149  G4int nreg = regnamesPhys.size();
 
  150  if(0 == nreg) { 
return; }
 
  153    G4cout << 
"### G4EmModelActivator::ActivateEmOptions for " << nreg << 
" regions" 
  178  for(
G4int i=0; i<nreg; ++i) {
 
  181      G4cout << i << 
". region <" << 
reg << 
">; type <" << typesPhys[i] << 
"> "  
  185    if(
baseName == typesPhys[i]) { 
continue; }
 
  187    if(
"G4EmStandard" == typesPhys[i]) {
 
  194    } 
else if(
"G4EmStandard_opt1" == typesPhys[i] || 
"G4EmStandard_opt2" == typesPhys[i]) {
 
  201    } 
else if(
"G4EmStandard_opt3" == typesPhys[i]) { 
 
  237    } 
else if(
"G4EmStandard_opt4" == typesPhys[i]) {
 
  266    } 
else if(
"G4EmStandardGS" == typesPhys[i]) {
 
  273    } 
else if(
"G4EmStandardWVI" == typesPhys[i]) {
 
  287    } 
else if(
"G4EmStandardSS" == typesPhys[i] && 
 
  290      for(
const auto& particleName : emList.
PartNames()) {
 
  298          if(particleName == 
"mu+" || particleName == 
"mu-") {
 
  312    } 
else if(
"G4EmLivermore" == typesPhys[i]) {
 
  344    } 
else if(
"G4EmPenelope" == typesPhys[i]) {
 
  386        G4cout << 
"### G4EmModelActivator::ActivateEmOptions WARNING: \n" 
  387           << 
"    EM Physics configuration name <" << typesPhys[i]
 
  388           << 
"> is not known - ignored" << 
G4endl;
 
  399  G4int nreg = regnamesPAI.size();
 
  400  if(0 == nreg) { 
return; }
 
  403    G4cout << 
"### G4EmModelActivator::ActivatePAI for " << nreg << 
" regions" 
  420  for(
G4int i = 0; i < nreg; ++i) {
 
  422    if(particlesPAI[i] != 
"all") {
 
  425        G4cout << 
"### WARNING: ActivatePAI::FindParticle fails to find " 
  426               << particlesPAI[i] << 
G4endl;
 
  432      G4cout << 
"### WARNING: ActivatePAI::GetRegion fails to find " 
  433         << regnamesPAI[i] << 
G4endl;
 
  438    if(p == elec || p == posi)
 
  440    else if (p == mupl || p == mumi)
 
  443      { 
name = 
"ionIoni"; }
 
  447      if(!proc->IsIonisationProcess()) { 
continue; }
 
  449      G4String namep = proc->GetProcessName();
 
  451    if(
name != namep) { 
continue; }
 
  453        if(namep != 
"hIoni" && namep != 
"muIoni" && 
 
  454       namep != 
"eIoni" && namep != 
"ionIoni")
 
  458      if(namep == 
"eIoni") emin = 110*
CLHEP::eV;
 
  459      else if(namep == 
"muIoni") emin = 5*
CLHEP::keV;
 
  463      if(typesPAI[i] == 
"PAIphoton" || typesPAI[i] == 
"pai_photon") {
 
  474      proc->AddEmModel(0, em, fm, r);
 
  477      if(namep == 
"eIoni") {
 
  480      } 
else if(namep == 
"ionIoni") {
 
  488      proc->AddEmModel(-1, em, fm, r);
 
  491    G4cout << 
"### G4EmModelActivator: add <" << typesPAI[i]
 
  492           << 
"> model for " << particlesPAI[i]
 
  493           << 
" in the " << regnamesPAI[i] 
 
  505  G4int nreg = regnamesME.size();
 
  513    G4cout << 
"### G4EmModelActivator::ActivateMicroElec for " << nreg
 
  558  for(
G4int i = 0; i < nreg; ++i)
 
  562    G4cout << 
"### MicroElec models are activated for G4Region " << 
reg 
  564           << 
"    Energy limits for e- elastic:    " << elowest/
eV << 
" eV - " 
  565           << elimel/
MeV << 
" MeV" 
  567           << 
"    Energy limits for e- inelastic:  " << elowest/
eV << 
" eV - " 
  568           << elimin/
MeV << 
" MeV" 
  570           << 
"    Energy limits for hadrons/ions:  " << pmin/
MeV << 
" MeV - " 
  571           << pmax/
MeV << 
" MeV" 
  589                               "e-G4MicroElecElastic",
 
  607                               "e-G4MicroElecInelastic",
 
  636                               "p_G4MicroElecInelastic",
 
  665                               "ion_G4MicroElecInelastic",
 
  680  for(
G4int i = 0; i < nproc; ++i)
 
  725    if(phys == 
"G4EmStandard_opt1" || phys == 
"G4EmStandard_opt2") {
 
  728    } 
else if(phys == 
"G4EmStandard_opt3") {
 
  730    } 
else if(phys == 
"G4EmStandard_opt4" || phys == 
"G4EmLivermore" || phys == 
"G4EmPenelope") {
 
  734    } 
else if(phys == 
"G4EmStandardGS") {
 
  738    if(phys != 
"G4EmStandard" && phys != 
"G4EmStandard_opt1" && phys != 
"G4EmStandard_opt2") {
 
  753  for(
G4int i = 0; i<nproc; ++i) {
 
  754    if(((*pv)[i])->GetProcessName() == 
name) { 
return; }
 
  756  if(
name == 
"CoulombScat") {
 
  760  } 
else if(
name == 
"Rayl") {
 
static const G4double e1[44]
static const G4double e2[44]
static const G4double reg
static constexpr double keV
static constexpr double eV
static constexpr double GeV
static constexpr double MeV
static constexpr double TeV
G4GLOB_DLL std::ostream G4cout
static G4Electron * Electron()
void SetExtraEmModel(const G4String &particleName, const G4String &processName, G4VEmModel *, const G4String ®ionName="", G4double emin=0.0, G4double emax=DBL_MAX, G4VEmFluctuationModel *fm=nullptr)
G4EmModelActivator(const G4String &emphys="")
G4EmParameters * theParameters
void FindOrAddProcess(const G4ParticleDefinition *, const G4String &)
void AddStandardScattering(const G4ParticleDefinition *, G4EmConfigurator *, G4VMscModel *, const G4String &, G4double, G4double, const G4String &)
G4bool HasMsc(G4ProcessManager *) const
void SetMscParameters(const G4ParticleDefinition *, G4VMscModel *, const G4String &phys)
void SetNumberOfBinsPerDecade(G4int val)
static G4EmParameters * Instance()
const std::vector< G4String > & TypesPhysics() const
void SetMscThetaLimit(G4double val)
G4double MscEnergyLimit() const
const std::vector< G4String > & RegionsPAI() const
void SetDeexActiveRegion(const G4String ®ion, G4bool fdeex, G4bool fauger, G4bool fpixe)
const std::vector< G4String > & ParticlesPAI() const
const std::vector< G4String > & RegionsPhysics() const
void DefineRegParamForDeex(G4VAtomDeexcitation *) const
G4double MaxKinEnergy() const
void SetUseMottCorrection(G4bool val)
const std::vector< G4String > & RegionsMicroElec() const
const std::vector< G4String > & TypesPAI() const
const std::vector< G4String > & PartNames() const
static G4GenericIon * GenericIon()
static G4LossTableManager * Instance()
G4EmConfigurator * EmConfigurator()
const std::vector< G4VEnergyLossProcess * > & GetEnergyLossProcessVector()
G4VAtomDeexcitation * AtomDeexcitation()
static G4MuonMinus * MuonMinus()
static G4MuonPlus * MuonPlus()
G4ProcessManager * GetProcessManager() const
G4double GetPDGCharge() const
const G4String & GetParticleName() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
static G4Positron * Positron()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4int GetProcessListLength() const
G4ProcessVector * GetProcessList() const
static G4Proton * Proton()
static G4RegionStore * GetInstance()
G4Region * GetRegion(const G4String &name, G4bool verbose=true) const
void SetPolarAngleLimit(G4double)
void SetHighEnergyLimit(G4double)
void SetActivationLowEnergyLimit(G4double)
void SetLowEnergyLimit(G4double)
void SetActivationHighEnergyLimit(G4double)
void SetEmModel(G4VEmModel *, G4int index=0)
void SetRangeFactor(G4double)
void SetLateralDisplasmentFlag(G4bool val)
void SetStepLimitType(G4MscStepLimitType)
static constexpr double keV
static constexpr double eV
const char * name(G4int ptype)