69 if(
nullptr == theInstance) {
71 theInstance = &manager;
86 G4EmParameters::G4EmParameters()
93 emSaturation =
nullptr;
98 if(!IsLocked()) { Initialise(); }
101 void G4EmParameters::Initialise()
103 lossFluctuation =
true;
104 buildCSDARange =
false;
107 cutAsFinalRange =
false;
110 beardenFluoDir =
false;
112 augerCascade =
false;
114 deexIgnoreCut =
false;
115 lateralDisplacement =
true;
116 muhadLateralDisplacement =
false;
117 latDisplacementBeyondSafety =
false;
118 useAngGeneratorForIonisation =
false;
119 useMottCorrection =
false;
130 bremsTh = maxKinEnergy;
132 factorForAngleLimit = 1.0;
135 rangeFactorMuHad = 0.2;
140 dRoverRangeMuHad = 0.2;
152 namePIXE =
"Empirical";
153 nameElectronPIXE =
"Livermore";
158 if(IsLocked()) {
return; }
159 lossFluctuation = val;
164 return lossFluctuation;
169 if(IsLocked()) {
return; }
170 buildCSDARange = val;
175 return buildCSDARange;
180 if(IsLocked()) {
return; }
191 if(IsLocked()) {
return; }
202 if(IsLocked()) {
return; }
203 cutAsFinalRange = val;
208 return cutAsFinalRange;
213 if(IsLocked()) {
return; }
224 if(IsLocked()) {
return; }
235 if(IsLocked()) {
return; }
236 beardenFluoDir = val;
241 return beardenFluoDir;
246 if(IsLocked()) {
return; }
248 if(val) { fluo =
true; }
258 if(IsLocked()) {
return; }
260 if(val) { fluo =
true; auger =
true; }
270 if(IsLocked()) {
return; }
272 if(val) { fluo =
true; }
282 if(IsLocked()) {
return; }
288 return deexIgnoreCut;
293 if(IsLocked()) {
return; }
294 lateralDisplacement = val;
299 return lateralDisplacement;
304 if(IsLocked()) {
return; }
305 muhadLateralDisplacement = val;
310 return muhadLateralDisplacement;
315 if(IsLocked()) {
return; }
316 latDisplacementBeyondSafety = val;
321 return latDisplacementBeyondSafety;
326 if(IsLocked()) {
return; }
327 useAngGeneratorForIonisation = val;
332 return useAngGeneratorForIonisation;
337 if(IsLocked()) {
return; }
338 useMottCorrection = val;
343 return useMottCorrection;
348 if(IsLocked()) {
return; }
359 if(IsLocked()) {
return; }
374 if(emSaturation != ptr) {
388 if(IsLocked()) {
return; }
389 if(val > 0.0 && val < 1.0) {
393 ed <<
"Value of MinSubRange is out of range (0 - 1): " << val
406 if(IsLocked()) {
return; }
407 if(val > 1.e-3*
eV && val < maxKinEnergy) {
409 nbins = nbinsPerDecade*
G4lrint(std::log10(maxKinEnergy/minKinEnergy));
412 ed <<
"Value of MinKinEnergy is out of range: " << val/
MeV
413 <<
" MeV is ignored";
425 if(IsLocked()) {
return; }
426 if(val > minKinEnergy && val < 1.e+7*
TeV) {
428 nbins = nbinsPerDecade*
G4lrint(std::log10(maxKinEnergy/minKinEnergy));
431 ed <<
"Value of MaxKinEnergy is out of range: "
432 << val/
GeV <<
" GeV is ignored";
444 if(IsLocked()) {
return; }
445 if(val > minKinEnergy && val <= 100*
TeV) {
446 maxKinEnergyCSDA = val;
449 ed <<
"Value of MaxKinEnergyCSDA is out of range: "
450 << val/
GeV <<
" GeV is ignored";
457 return maxKinEnergyCSDA;
462 if(IsLocked()) {
return; }
464 lowestElectronEnergy = val;
467 ed <<
"Value of lowestElectronEnergy is out of range: "
468 << val/
MeV <<
" MeV is ignored";
475 return lowestElectronEnergy;
480 if(IsLocked()) {
return; }
482 lowestMuHadEnergy = val;
485 ed <<
"Value of lowestMuHadEnergy is out of range: "
486 << val/
MeV <<
" MeV is ignored";
493 return lowestMuHadEnergy;
498 if(IsLocked()) {
return; }
499 if(val > 0.0 && val < 0.5) {
503 ed <<
"Value of linLossLimit is out of range: " << val
516 if(IsLocked()) {
return; }
521 ed <<
"Value of bremsstrahlung threshold is out of range: "
522 << val/
GeV <<
" GeV is ignored";
534 if(IsLocked()) {
return; }
535 if(val > 0.0 && val < 1.0) {
539 ed <<
"Value of lambda factor is out of range: " << val
552 if(IsLocked()) {
return; }
554 factorForAngleLimit = val;
557 ed <<
"Value of factor for enegry limit is out of range: "
558 << val <<
" is ignored";
565 return factorForAngleLimit;
570 if(IsLocked()) {
return; }
571 if(val >= 0.0 && val <=
pi) {
575 ed <<
"Value of polar angle limit is out of range: "
576 << val <<
" is ignored";
588 if(IsLocked()) {
return; }
589 if(val > 0.0 && val < 1.0) {
593 ed <<
"Value of rangeFactor is out of range: "
594 << val <<
" is ignored";
606 if(IsLocked()) {
return; }
607 if(val > 0.0 && val < 1.0) {
608 rangeFactorMuHad = val;
611 ed <<
"Value of rangeFactorMuHad is out of range: "
612 << val <<
" is ignored";
619 return rangeFactorMuHad;
624 if(IsLocked()) {
return; }
629 ed <<
"Value of geomFactor is out of range: "
630 << val <<
" is ignored";
642 if(IsLocked()) {
return; }
647 ed <<
"Value of skin is out of range: "
648 << val <<
" is ignored";
660 if(IsLocked()) {
return; }
661 if(v1 > 0.0 && v1 <= 1.0 && v2 > 0.0) {
666 ed <<
"Values of step function are out of range: "
667 << v1 <<
", " << v2/
CLHEP::mm <<
" mm - are ignored";
674 if(IsLocked()) {
return; }
675 if(v1 > 0.0 && v1 <= 1.0 && v2 > 0.0) {
676 dRoverRangeMuHad = v1;
677 finalRangeMuHad = v2;
680 ed <<
"Values of step function are out of range: "
681 << v1 <<
", " << v2/
CLHEP::mm <<
" mm - are ignored";
688 if(IsLocked()) {
return; }
689 if(val >= 5 && val < 10000000) {
691 nbinsPerDecade =
G4lrint(nbins/std::log10(maxKinEnergy/minKinEnergy));
694 ed <<
"Value of number of bins is out of range: "
695 << val <<
" is ignored";
707 if(IsLocked()) {
return; }
708 if(val >= 5 && val < 1000000) {
709 nbinsPerDecade = val;
710 nbins = nbinsPerDecade*
G4lrint(std::log10(maxKinEnergy/minKinEnergy));
713 ed <<
"Value of number of bins per decade is out of range: "
714 << val <<
" is ignored";
721 return nbinsPerDecade;
726 if(IsLocked()) {
return; }
728 workerVerbose =
std::min(workerVerbose, verbose);
738 if(IsLocked()) {
return; }
744 return workerVerbose;
749 if(IsLocked()) {
return; }
760 if(IsLocked()) {
return; }
761 mscStepLimitMuHad = val;
766 return mscStepLimitMuHad;
772 if(IsLocked()) {
return; }
778 return nucFormfactor;
783 G4cout <<
"G4EmParameters::SetPIXECrossSectionModel " << sss <<
G4endl;
784 if(IsLocked()) {
return; }
795 if(IsLocked()) {
return; }
796 nameElectronPIXE =
sss;
801 return nameElectronPIXE;
812 if(r ==
"" || r ==
"world" || r ==
"World") {
813 r =
"DefaultRegionForTheWorld";
823 G4int nreg = m_regnamesPAI.size();
824 for(
G4int i=0; i<nreg; ++i) {
825 if((m_particlesPAI[i] == particle ||
826 m_particlesPAI[i] ==
"all" ||
827 particle ==
"all") &&
828 (m_regnamesPAI[i] == r ||
829 m_regnamesPAI[i] ==
"DefaultRegionForTheWorld" ||
830 r ==
"DefaultRegionForTheWorld") ) {
832 m_typesPAI[i] = type;
833 if(particle ==
"all") { m_particlesPAI[i] = particle; }
834 if(r ==
"DefaultRegionForTheWorld") { m_regnamesPAI[i] = r; }
838 m_particlesPAI.push_back(particle);
839 m_regnamesPAI.push_back(r);
840 m_typesPAI.push_back(type);
845 return m_particlesPAI;
850 return m_regnamesPAI;
861 G4int nreg = m_regnamesME.size();
862 for(
G4int i=0; i<nreg; ++i) {
863 if(r == m_regnamesME[i]) {
return; }
865 m_regnamesME.push_back(r);
876 G4int nreg = m_regnamesDNA.size();
877 for(
G4int i=0; i<nreg; ++i) {
878 if(r == m_regnamesDNA[i]) {
return; }
880 m_regnamesDNA.push_back(r);
881 m_typesDNA.push_back(type);
886 return m_regnamesDNA;
897 G4int nreg = m_regnamesMsc.size();
898 for(
G4int i=0; i<nreg; ++i) {
899 if(r == m_regnamesMsc[i]) {
return; }
901 m_regnamesMsc.push_back(r);
902 m_typesMsc.push_back(type);
907 return m_regnamesMsc;
917 if(IsLocked()) {
return; }
919 G4int nreg = m_regnamesSubCut.size();
920 for(
G4int i=0; i<nreg; ++i) {
921 if(r == m_regnamesSubCut[i]) {
926 m_regnamesSubCut.push_back(r);
927 m_subCuts.push_back(val);
934 if(IsLocked()) {
return; }
935 if(fdeex) { fluo =
true; }
937 G4int nreg = m_regnamesDeex.size();
938 if(0 == nreg && r !=
"DefaultRegionForTheWorld") {
939 m_regnamesDeex.push_back(
"DefaultRegionForTheWorld");
940 m_fluo.push_back(
false);
941 m_auger.push_back(
false);
942 m_pixe.push_back(
false);
945 for(
G4int i=0; i<nreg; ++i) {
946 if(r == m_regnamesDeex[i]) {
953 m_regnamesDeex.push_back(r);
954 m_fluo.push_back(fdeex);
955 m_auger.push_back(fauger);
956 m_pixe.push_back(fpixe);
963 if(IsLocked()) {
return; }
965 G4int n = m_procBiasedXS.size();
966 for(
G4int i=0; i<
n; ++i) {
967 if(procname == m_procBiasedXS[i]) {
968 m_factBiasedXS[i] = val;
969 m_weightBiasedXS[i]= wflag;
973 m_procBiasedXS.push_back(procname);
974 m_factBiasedXS.push_back(val);
975 m_weightBiasedXS.push_back(wflag);
978 ed <<
"Process: " << procname <<
" XS biasing factor "
979 << val <<
" is negative - ignored";
990 if(IsLocked()) {
return; }
993 G4int n = m_procForced.size();
994 for(
G4int i=0; i<
n; ++i) {
995 if(procname == m_procForced[i] && r == m_regnamesForced[i] ) {
996 m_lengthForced[i] = length;
997 m_weightForced[i]= wflag;
1001 m_regnamesForced.push_back(r);
1002 m_procForced.push_back(procname);
1003 m_lengthForced.push_back(length);
1004 m_weightForced.push_back(wflag);
1007 ed <<
"Process: " << procname <<
" in region " << r
1008 <<
" : forced interacttion length= "
1009 << length <<
" is negative - ignored";
1020 if(IsLocked()) {
return; }
1022 if(factor >= 0.0 && energyLimit >= 0.0) {
1023 G4int n = m_procBiasedSec.size();
1024 for(
G4int i=0; i<
n; ++i) {
1025 if(procname == m_procBiasedSec[i] && r == m_regnamesBiasedSec[i] ) {
1026 m_factBiasedSec[i] = factor;
1027 m_elimBiasedSec[i] = energyLimit;
1031 m_regnamesBiasedSec.push_back(r);
1032 m_procBiasedSec.push_back(procname);
1033 m_factBiasedSec.push_back(factor);
1034 m_elimBiasedSec.push_back(energyLimit);
1037 ed <<
"Process: " << procname <<
" in region " << r
1038 <<
" : secondary bised factor= "
1039 << factor <<
", Elim= " << energyLimit <<
" - ignored";
1047 if(isElectron) { ptr->
SetStepFunction(dRoverRange, finalRange,
false); }
1048 else { ptr->
SetStepFunction(dRoverRangeMuHad, finalRangeMuHad,
false); }
1051 G4int n = m_regnamesSubCut.size();
1052 for(
G4int i=0; i<
n; ++i) {
1056 n = m_procBiasedXS.size();
1057 for(
G4int i=0; i<
n; ++i) {
1060 m_weightBiasedXS[i]);
1064 n = m_procForced.size();
1065 for(
G4int i=0; i<
n; ++i) {
1068 m_regnamesForced[i],
1073 n = m_procBiasedSec.size();
1074 for(
G4int i=0; i<
n; ++i) {
1078 m_elimBiasedSec[i]);
1086 G4int n = m_procBiasedXS.size();
1087 for(
G4int i=0; i<
n; ++i) {
1090 m_weightBiasedXS[i]);
1094 n = m_procForced.size();
1095 for(
G4int i=0; i<
n; ++i) {
1098 m_regnamesForced[i],
1103 n = m_procBiasedSec.size();
1104 for(
G4int i=0; i<
n; ++i) {
1108 m_elimBiasedSec[i]);
1116 G4int n = m_regnamesDeex.size();
1117 for(
G4int i=0; i<
n; ++i) {
1119 m_fluo[i], m_auger[i], m_pixe[i]);
1126 os <<
"=======================================================================" <<
"\n";
1127 os <<
"====== Electromagnetic Physics Parameters ========" <<
"\n";
1128 os <<
"=======================================================================" <<
"\n";
1129 os <<
"Fluctuations of dE/dx are enabled " <<lossFluctuation <<
"\n";
1130 os <<
"Build CSDA range enabled " <<buildCSDARange <<
"\n";
1131 os <<
"LPM effect enabled " <<flagLPM <<
"\n";
1132 os <<
"Spline of EM tables enabled " <<spline <<
"\n";
1133 os <<
"Use cut as a final range enabled " <<finalRange <<
"\n";
1134 os <<
"Apply cuts on all EM processes " <<applyCuts <<
"\n";
1135 os <<
"Fluorescence enabled " <<fluo <<
"\n";
1136 os <<
"Fluorescence Bearden data files enabled " <<beardenFluoDir <<
"\n";
1137 os <<
"Auger electron production enabled " <<auger <<
"\n";
1138 os <<
"Auger cascade enabled " <<augerCascade <<
"\n";
1139 os <<
"PIXE atomic de-excitation enabled " <<pixe <<
"\n";
1140 os <<
"De-excitation module ignores cuts " <<deexIgnoreCut <<
"\n";
1141 os <<
"Msc lateraral displacement for e+- enabled " <<lateralDisplacement <<
"\n";
1142 os <<
"Msc lateraral displacement for muons and hadrons " <<muhadLateralDisplacement <<
"\n";
1143 os <<
"Msc lateraral displacement beyond geometry safety " <<latDisplacementBeyondSafety <<
"\n";
1144 os <<
"Enable angular generator interface "
1145 <<useAngGeneratorForIonisation <<
"\n";
1146 os <<
"Use Mott correction for e- scattering "
1147 <<useMottCorrection <<
"\n";
1148 os <<
"Use integral approach for tracking "
1150 os <<
"Use built-in Birks satuaration "
1153 os <<
"Factor of cut reduction for sub-cutoff method " <<minSubRange <<
"\n";
1154 os <<
"Min kinetic energy for tables "
1156 os <<
"Max kinetic energy for tables "
1158 os <<
"Max kinetic energy for CSDA tables "
1159 <<
G4BestUnit(maxKinEnergyCSDA,
"Energy") <<
"\n";
1160 os <<
"Lowest e+e- kinetic energy "
1161 <<
G4BestUnit(lowestElectronEnergy,
"Energy") <<
"\n";
1162 os <<
"Lowest muon/hadron kinetic energy "
1163 <<
G4BestUnit(lowestMuHadEnergy,
"Energy") <<
"\n";
1164 os <<
"Linear loss limit " <<linLossLimit <<
"\n";
1165 os <<
"Bremsstrahlung energy threshold above which \n"
1166 <<
" primary is added to the list of secondary "
1168 os <<
"X-section factor for integral approach " <<lambdaFactor <<
"\n";
1169 os <<
"Factor used for dynamic computation of angular \n"
1170 <<
" limit between single and multiple scattering " << factorForAngleLimit <<
"\n";
1171 os <<
"Fixed angular limit between single \n"
1172 <<
" and multiple scattering "
1173 <<thetaLimit/
rad <<
" rad" <<
"\n";
1174 os <<
"Range factor for msc step limit for e+- " <<rangeFactor <<
"\n";
1175 os <<
"Range factor for msc step limit for muons/hadrons " <<rangeFactorMuHad <<
"\n";
1176 os <<
"Geometry factor for msc step limitation of e+- " <<geomFactor <<
"\n";
1177 os <<
"Skin parameter for msc step limitation of e+- " <<skin <<
"\n";
1178 os <<
"Step function for e+- " <<
"("<< dRoverRange
1179 <<
", " << finalRange <<
" mm)\n";
1180 os <<
"Step function for muons/hadrons " <<
"("<< dRoverRangeMuHad
1181 <<
", " << finalRangeMuHad <<
" mm)\n";
1183 os <<
"Number of bins in tables " <<nbins <<
"\n";
1184 os <<
"Number of bins per decade of a table " <<nbinsPerDecade <<
"\n";
1185 os <<
"Verbose level " <<verbose <<
"\n";
1186 os <<
"Verbose level for worker thread " <<workerVerbose <<
"\n";
1188 os <<
"Type of msc step limit algorithm for e+- " <<mscStepLimit <<
"\n";
1189 os <<
"Type of msc step limit algorithm for muons/hadrons " <<mscStepLimitMuHad <<
"\n";
1190 os <<
"Type of nuclear form-factor " <<nucFormfactor <<
"\n";
1192 os <<
"Type of PIXE cross section for hadrons " <<namePIXE <<
"\n";
1193 os <<
"Type of PIXE cross section for e+- " <<nameElectronPIXE <<
"\n";
1194 os <<
"=======================================================================" <<
"\n";
1209 G4bool G4EmParameters::IsLocked()
const
void ActivateForcedInteraction(G4double length=0.0, const G4String &r="", G4bool flag=true)
G4bool UseCutAsFinalRange() const
void SetLossFluctuations(G4bool val)
G4int NumberOfBinsPerDecade() const
void SetApplyCuts(G4bool val)
void SetProcessBiasingFactor(const G4String &procname, G4double val, G4bool wflag)
G4int NumberOfBins() const
G4Region * GetRegion(const G4String &name, G4bool verbose=true) const
void SetVerbose(G4int val)
G4int WorkerVerbose() const
G4double MaxKinEnergy() const
void SetEmSaturation(G4EmSaturation *)
G4bool isElectron(G4int ityp)
void ActivateSecondaryBiasing(const G4String &name, const G4String ®ion, G4double factor, G4double energyLimit)
void SetDeexcitationIgnoreCut(G4bool val)
void SetUseMottCorrection(G4bool val)
std::ostringstream G4ExceptionDescription
void SetLowestElectronEnergy(G4double val)
void SetLatDisplacementBeyondSafety(G4bool val)
G4MscStepLimitType MscMuHadStepLimitType() const
void SetMscStepLimitType(G4MscStepLimitType val)
static constexpr double keV
G4bool AugerCascade() const
G4double LowestElectronEnergy() const
G4bool BirksActive() const
void SetBeardenFluoDir(G4bool val)
void SetLinearLossLimit(G4double val)
G4double MscGeomFactor() const
G4double MscMuHadRangeFactor() const
G4double MscThetaLimit() const
void SetAuger(G4bool val)
const std::vector< G4String > & ParticlesPAI() const
const std::vector< G4String > & RegionsMicroElec() const
void SetDeexcitationActiveRegion(const G4String &rname, G4bool valDeexcitation, G4bool valAuger, G4bool valPIXE)
std::ostream & StreamInfo(std::ostream &os) const
void SetNumberOfBins(G4int val)
void SetMinSubRange(G4double val)
void SetMaxEnergyForCSDARange(G4double val)
const std::vector< G4String > & RegionsPAI() const
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
void ActivateSecondaryBiasing(const G4String ®ion, G4double factor, G4double energyLimit)
static constexpr double rad
void DefineRegParamForLoss(G4VEnergyLossProcess *, G4bool isElectron) const
void SetStepFunctionMuHad(G4double v1, G4double v2)
const std::vector< G4String > & TypesDNA() const
void SetPIXEElectronCrossSectionModel(const G4String &)
void SetDeexActiveRegion(const G4String ®ion, G4bool fdeex, G4bool fauger, G4bool fpixe)
const std::vector< G4String > & RegionsMsc() const
void SetMaxEnergy(G4double val)
void SetBremsstrahlungTh(G4double val)
void SetStepFunction(G4double v1, G4double v2, G4bool lock=true)
static G4NistManager * Instance()
G4double MinSubRange() const
G4bool DeexcitationIgnoreCut() const
void ActivateSecondaryBiasing(const G4String ®ion, G4double factor, G4double energyLimit)
static const G4double reg
G4bool LatDisplacementBeyondSafety() const
void SetBirksActive(G4bool val)
void SetCrossSectionBiasingFactor(G4double f, G4bool flag=true)
static constexpr double TeV
void AddPAIModel(const G4String &particle, const G4String ®ion, const G4String &type)
static G4RegionStore * GetInstance()
void SetLateralDisplacement(G4bool val)
G4bool BuildCSDARange() const
G4EmSaturation * GetEmSaturation()
void SetWorkerVerbose(G4int val)
static G4StateManager * GetStateManager()
G4double LinearLossLimit() const
void SetPIXECrossSectionModel(const G4String &)
G4double LambdaFactor() const
void SetCrossSectionBiasingFactor(G4double f, G4bool flag=true)
G4GLOB_DLL std::ostream G4cout
G4bool MuHadLateralDisplacement() const
const G4String & PIXECrossSectionModel()
G4double LowestMuHadEnergy() const
void SetMscRangeFactor(G4double val)
void InitialiseG4Saturation()
static constexpr double mm
void SetAugerCascade(G4bool val)
void SetNumberOfBinsPerDecade(G4int val)
G4bool LateralDisplacement() const
void ActivateForcedInteraction(G4double length, const G4String ®ion, G4bool flag=true)
static constexpr double eV
void SetNuclearFormfactorType(G4NuclearFormfactorType val)
void SetLowestMuHadEnergy(G4double val)
void SetMscGeomFactor(G4double val)
G4double MinKinEnergy() const
G4ApplicationState GetCurrentState() const
void SetMscMuHadStepLimitType(G4MscStepLimitType val)
const G4String & GetProcessName() const
void AddDNA(const G4String ®ion, const G4String &type)
void SetSubCutoff(G4bool val, const G4String ®ion="")
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static constexpr double GeV
G4NuclearFormfactorType NuclearFormfactorType() const
void SetBuildCSDARange(G4bool val)
void AddMicroElec(const G4String ®ion)
G4bool LossFluctuation() const
const std::vector< G4String > & TypesMsc() const
void SetMscMuHadRangeFactor(G4double val)
void SetSpline(G4bool val)
static const char sss[MAX_N_PAR+2]
void SetMuHadLateralDisplacement(G4bool val)
void SetMinEnergy(G4double val)
G4bool UseAngularGeneratorForIonisation() const
G4double BremsstrahlungTh() const
static G4EmParameters * Instance()
void DefineRegParamForDeex(G4VAtomDeexcitation *) const
std::ostream & operator<<(std::ostream &, const BasicVector3D< float > &)
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
G4double MscRangeFactor() const
void SetIntegral(G4bool val)
static constexpr double GeV
void AddMsc(const G4String ®ion, const G4String &type)
void ActivateAngularGeneratorForIonisation(G4bool val)
void ActivateForcedInteraction(const G4String &procname, const G4String ®ion, G4double length, G4bool wflag)
void SetUseCutAsFinalRange(G4bool val)
G4bool UseMottCorrection() const
const std::vector< G4String > & RegionsDNA() const
static constexpr double MeV
static constexpr double pi
static constexpr double TeV
G4MscStepLimitType MscStepLimitType() const
void ActivateSubCutoff(G4bool val, const G4Region *region=nullptr)
void SetMscThetaLimit(G4double val)
void SetLambdaFactor(G4double val)
void SetFactorForAngleLimit(G4double val)
void DefineRegParamForEM(G4VEmProcess *) const
G4double MaxEnergyForCSDARange() const
const G4String & PIXEElectronCrossSectionModel()
static constexpr double pi
const std::vector< G4String > & TypesPAI() const
void SetStepFunction(G4double v1, G4double v2)
G4double FactorForAngleLimit() const
G4bool BeardenFluoDir() const
void SetMscSkin(G4double val)