72 if(
nullptr == theInstance) {
74 if(
nullptr == theInstance) {
76 theInstance = &manager;
105 emSaturation =
nullptr;
112 fBParameters->Initialise();
113 fCParameters->Initialise();
117void G4EmParameters::Initialise()
119 lossFluctuation =
true;
120 buildCSDARange =
false;
122 cutAsFinalRange =
false;
124 lateralDisplacement =
true;
125 lateralDisplacementAlg96 =
true;
126 muhadLateralDisplacement =
false;
127 useAngGeneratorForIonisation =
false;
128 useMottCorrection =
false;
134 fSamplingTable =
false;
135 fPolarisation =
false;
136 fMuDataFromFile =
false;
139 fUseEPICS2017XS =
false;
140 f3GammaAnnihilationOnFly =
false;
141 fUseRiGePairProductionModel =
false;
145 minKinEnergy = 0.1*CLHEP::keV;
146 maxKinEnergy = 100.0*CLHEP::TeV;
147 maxKinEnergyCSDA = 1.0*CLHEP::GeV;
148 max5DEnergyForMuPair = 0.0;
149 lowestElectronEnergy = 1.0*CLHEP::keV;
150 lowestMuHadEnergy = 1.0*CLHEP::keV;
151 lowestTripletEnergy = 1.0*CLHEP::MeV;
154 bremsTh = bremsMuHadTh = maxKinEnergy;
156 factorForAngleLimit = 1.0;
157 thetaLimit = CLHEP::pi;
158 energyLimit = 100.0*CLHEP::MeV;
160 rangeFactorMuHad = 0.2;
164 lambdaLimit = 1.0*CLHEP::mm;
182 if (
nullptr != data_dir) {
187 "G4LEDATA data directory was not found.");
193 if(IsLocked()) {
return; }
194 lossFluctuation = val;
199 return lossFluctuation;
204 if(IsLocked()) {
return; }
205 buildCSDARange = val;
210 return buildCSDARange;
215 if(IsLocked()) {
return; }
226 if(IsLocked()) {
return; }
227 cutAsFinalRange = val;
232 return cutAsFinalRange;
237 if(IsLocked()) {
return; }
248 if(IsLocked()) {
return; }
249 fCParameters->SetFluo(val);
254 return fCParameters->Fluo();
259 return fCParameters->FluoDirectory();
264 if(IsLocked()) {
return; }
265 fCParameters->SetFluoDirectory(val);
270 if(IsLocked()) {
return; }
271 fCParameters->SetBeardenFluoDir(val);
276 if(IsLocked()) {
return; }
277 fCParameters->SetANSTOFluoDir(val);
282 if(IsLocked()) {
return; }
283 fCParameters->SetXDB_EADLFluoDir(val);
288 if(IsLocked()) {
return; }
289 fCParameters->SetAuger(val);
294 auto dir = fCParameters->FluoDirectory();
300 auto dir = fCParameters->FluoDirectory();
306 return fCParameters->Auger();
311 if(IsLocked()) {
return; }
312 fCParameters->SetPixe(val);
317 return fCParameters->Pixe();
322 if(IsLocked()) {
return; }
323 fCParameters->SetDeexcitationIgnoreCut(val);
328 return fCParameters->DeexcitationIgnoreCut();
333 if(IsLocked()) {
return; }
334 lateralDisplacement = val;
339 return lateralDisplacement;
344 if(IsLocked()) {
return; }
345 lateralDisplacementAlg96 = val;
350 return lateralDisplacementAlg96;
355 if(IsLocked()) {
return; }
356 muhadLateralDisplacement = val;
361 return muhadLateralDisplacement;
366 if(IsLocked()) {
return; }
367 useAngGeneratorForIonisation = val;
372 return useAngGeneratorForIonisation;
377 if(IsLocked()) {
return; }
378 useMottCorrection = val;
383 return useMottCorrection;
388 if(IsLocked()) {
return; }
399 if(IsLocked()) {
return; }
405 return fPolarisation;
410 if(IsLocked()) {
return; }
412 if(birks &&
nullptr == emSaturation) { emSaturation =
new G4EmSaturation(1); }
422 if(IsLocked()) {
return; }
433 if(IsLocked()) {
return; }
434 fCParameters->SetDNAFast(val);
440 return fCParameters->DNAFast();
445 if(IsLocked()) {
return; }
446 fCParameters->SetDNAStationary(val);
452 return fCParameters->DNAStationary();
457 if(IsLocked()) {
return; }
458 fCParameters->SetDNAElectronMsc(val);
464 return fCParameters->DNAElectronMsc();
469 if(IsLocked()) {
return; }
480 if(IsLocked()) {
return; }
481 birks = (
nullptr != ptr);
482 if(emSaturation != ptr) {
490 return fMuDataFromFile;
500 if(IsLocked()) {
return; }
511 if(IsLocked()) {
return; }
512 fSamplingTable = val;
517 return fSamplingTable;
527 if(IsLocked()) {
return; }
538 if(IsLocked()) {
return; }
544 return fUseEPICS2017XS;
549 if(IsLocked()) {
return; }
555 return f3GammaAnnihilationOnFly;
560 if(IsLocked()) {
return; }
561 f3GammaAnnihilationOnFly = v;
566 return fUseRiGePairProductionModel;
571 if (IsLocked()) {
return; }
572 fUseRiGePairProductionModel = v;
577 if(IsLocked()) {
return; }
593 if(
nullptr == emSaturation) {
594#ifdef G4MULTITHREADED
596 if(
nullptr == emSaturation) {
599#ifdef G4MULTITHREADED
610 if(IsLocked()) {
return; }
611 if(val > 1.e-3*CLHEP::eV && val < maxKinEnergy) {
615 ed <<
"Value of MinKinEnergy - is out of range: " << val/CLHEP::MeV
616 <<
" MeV is ignored";
628 if(IsLocked()) {
return; }
629 if(val > std::max(minKinEnergy,599.9*CLHEP::MeV) && val < 1.e+7*CLHEP::TeV) {
633 ed <<
"Value of MaxKinEnergy is out of range: "
635 <<
" GeV is ignored; allowed range 600 MeV - 1.e+7 TeV";
647 if(IsLocked()) {
return; }
648 if(val > minKinEnergy && val <= 100*CLHEP::TeV) {
649 maxKinEnergyCSDA = val;
652 ed <<
"Value of MaxKinEnergyCSDA is out of range: "
653 << val/CLHEP::GeV <<
" GeV is ignored; allowed range "
654 << minKinEnergy <<
" MeV - 100 TeV";
661 return maxKinEnergyCSDA;
666 if(IsLocked()) {
return; }
667 if(val >= 0.0) { lowestElectronEnergy = val; }
672 return lowestElectronEnergy;
677 if(IsLocked()) {
return; }
678 if(val >= 0.0) { lowestMuHadEnergy = val; }
683 return lowestMuHadEnergy;
688 if(IsLocked()) {
return; }
689 if(val > 0.0) { lowestTripletEnergy = val; }
694 return lowestTripletEnergy;
699 if(IsLocked()) {
return; }
700 if(val >= 0.0) { maxNIELEnergy = val; }
705 return maxNIELEnergy;
710 if(IsLocked()) {
return; }
711 if(val > 0.0) { max5DEnergyForMuPair = val; }
716 return max5DEnergyForMuPair;
721 if(IsLocked()) {
return; }
722 if(val > 0.0 && val < 0.5) {
726 ed <<
"Value of linLossLimit is out of range: " << val
739 if(IsLocked()) {
return; }
744 ed <<
"Value of bremsstrahlung threshold is out of range: "
745 << val/GeV <<
" GeV is ignored";
757 if(IsLocked()) {
return; }
762 ed <<
"Value of bremsstrahlung threshold is out of range: "
763 << val/GeV <<
" GeV is ignored";
775 if(IsLocked()) {
return; }
776 if(val > 0.0 && val < 1.0) {
780 ed <<
"Value of lambda factor is out of range: " << val
793 if(IsLocked()) {
return; }
795 factorForAngleLimit = val;
798 ed <<
"Value of factor for enegry limit is out of range: "
799 << val <<
" is ignored";
806 return factorForAngleLimit;
811 if(IsLocked()) {
return; }
812 if(val >= 0.0 && val <= pi) {
816 ed <<
"Value of polar angle limit is out of range: "
817 << val <<
" is ignored";
829 if(IsLocked()) {
return; }
834 ed <<
"Value of msc energy limit is out of range: "
835 << val <<
" is ignored";
847 if(IsLocked()) {
return; }
848 if(val > 0.0 && val < 1.0) {
852 ed <<
"Value of rangeFactor is out of range: "
853 << val <<
" is ignored";
865 if(IsLocked()) {
return; }
866 if(val > 0.0 && val < 1.0) {
867 rangeFactorMuHad = val;
870 ed <<
"Value of rangeFactorMuHad is out of range: "
871 << val <<
" is ignored";
878 return rangeFactorMuHad;
883 if(IsLocked()) {
return; }
888 ed <<
"Value of geomFactor is out of range: "
889 << val <<
" is ignored";
901 if(IsLocked()) {
return; }
906 ed <<
"Value of safetyFactor is out of range: "
907 << val <<
" is ignored";
919 if(IsLocked()) {
return; }
924 ed <<
"Value of lambdaLimit is out of range: "
925 << val <<
" is ignored";
937 if(IsLocked()) {
return; }
942 ed <<
"Value of skin is out of range: "
943 << val <<
" is ignored";
955 if(IsLocked()) {
return; }
960 ed <<
"Value of factorScreen is out of range: "
961 << val <<
" is ignored";
973 if(IsLocked()) {
return; }
974 fBParameters->SetStepFunction(v1, v2);
979 if(IsLocked()) {
return; }
980 fBParameters->SetStepFunctionMuHad(v1, v2);
985 if(IsLocked()) {
return; }
986 fBParameters->SetStepFunctionLightIons(v1, v2);
991 if(IsLocked()) {
return; }
992 fBParameters->SetStepFunctionIons(v1, v2);
997 fBParameters->FillStepFunction(part, proc);
1002 return nbinsPerDecade*
G4lrint(std::log10(maxKinEnergy/minKinEnergy));
1007 if(IsLocked()) {
return; }
1008 if(val >= 5 && val < 1000000) {
1009 nbinsPerDecade = val;
1012 ed <<
"Value of number of bins per decade is out of range: "
1013 << val <<
" is ignored";
1020 return nbinsPerDecade;
1025 if(IsLocked()) {
return; }
1027 workerVerbose = std::min(workerVerbose, verbose);
1037 if(IsLocked()) {
return; }
1038 workerVerbose = val;
1043 return workerVerbose;
1048 if(IsLocked()) {
return; }
1049 nForFreeVector = val;
1054 return nForFreeVector;
1059 if(IsLocked()) {
return; }
1060 fTransportationWithMsc = val;
1065 return fTransportationWithMsc;
1070 if(IsLocked()) {
return; }
1081 if(IsLocked()) {
return; }
1087 return fPositronium;
1092 if(IsLocked()) {
return; }
1098 return mscStepLimit;
1103 if(IsLocked()) {
return; }
1104 mscStepLimitMuHad = val;
1109 return mscStepLimitMuHad;
1114 if(IsLocked()) {
return; }
1126 if(IsLocked()) {
return; }
1127 nucFormfactor = val;
1132 return nucFormfactor;
1137 if(IsLocked()) {
return; }
1138 fCParameters->SetDNAeSolvationSubType(val);
1144 return fCParameters->DNAeSolvationSubType();
1149 if(IsLocked()) {
return; }
1160 if(IsLocked()) {
return; }
1161 fCParameters->SetPIXECrossSectionModel(sss);
1166 return fCParameters->PIXECrossSectionModel();
1171 if(IsLocked()) {
return; }
1172 fCParameters->SetPIXEElectronCrossSectionModel(sss);
1177 return fCParameters->PIXEElectronCrossSectionModel();
1182 if(IsLocked()) {
return; }
1183 fCParameters->SetLivermoreDataDir(sss);
1188 return fCParameters->LivermoreDataDir();
1200 if(IsLocked()) {
return; }
1201 fBParameters->AddPAIModel(particle, region, type);
1206 return fBParameters->ParticlesPAI();
1211 return fBParameters->RegionsPAI();
1216 return fBParameters->TypesPAI();
1221 if(IsLocked()) {
return; }
1222 fCParameters->AddMicroElec(region);
1227 return fCParameters->RegionsMicroElec();
1232 if(IsLocked()) {
return; }
1233 fCParameters->AddDNA(region, type);
1239 return fCParameters->RegionsDNA();
1244 return fCParameters->TypesDNA();
1249 if(IsLocked()) {
return; }
1250 fBParameters->AddPhysics(region, type);
1255 return fBParameters->RegionsPhysics();
1260 return fBParameters->TypesPhysics();
1265 if(IsLocked()) {
return; }
1266 fBParameters->SetSubCutRegion(region);
1273 if(IsLocked()) {
return; }
1274 fCParameters->SetDeexActiveRegion(region, adeex, aauger, apixe);
1281 if(IsLocked()) {
return; }
1282 fBParameters->SetProcessBiasingFactor(procname, val, wflag);
1291 if(IsLocked() && !gener) {
return; }
1292 fBParameters->ActivateForcedInteraction(procname, region, length, wflag);
1301 if(IsLocked()) {
return; }
1302 fBParameters->ActivateSecondaryBiasing(procname, region, factor, energyLim);
1307 fBParameters->DefineRegParamForLoss(ptr);
1312 fBParameters->DefineRegParamForEM(ptr);
1317 return fBParameters->QuantumEntanglement();
1322 if(IsLocked()) {
return; }
1323 fBParameters->SetQuantumEntanglement(v);
1327 return fBParameters->GetDirectionalSplitting();
1332 if(IsLocked()) {
return; }
1333 fBParameters->SetDirectionalSplitting(v);
1338 if(IsLocked()) {
return; }
1339 fBParameters->SetDirectionalSplittingTarget(v);
1344 return fBParameters->GetDirectionalSplittingTarget();
1349 if(IsLocked()) {
return; }
1350 fBParameters->SetDirectionalSplittingRadius(r);
1355 return fBParameters->GetDirectionalSplittingRadius();
1360 fCParameters->DefineRegParamForDeex(ptr);
1370 G4long prec = os.precision(5);
1371 os <<
"=======================================================================" <<
"\n";
1372 os <<
"====== Electromagnetic Physics Parameters ========" <<
"\n";
1373 os <<
"=======================================================================" <<
"\n";
1374 os <<
"LPM effect enabled " <<flagLPM <<
"\n";
1375 os <<
"Enable creation and use of sampling tables " <<fSamplingTable <<
"\n";
1376 os <<
"Apply cuts on all EM processes " <<applyCuts <<
"\n";
1377 const char* transportationWithMsc =
"Disabled";
1379 transportationWithMsc =
"Enabled";
1381 transportationWithMsc =
"MultipleSteps";
1383 os <<
"Use combined TransportationWithMsc " <<transportationWithMsc <<
"\n";
1384 os <<
"Use general process " <<gener <<
"\n";
1385 os <<
"Enable linear polarisation for gamma " <<fPolarisation <<
"\n";
1386 os <<
"Enable photoeffect sampling below K-shell " <<fPEKShell <<
"\n";
1387 os <<
"Enable sampling of quantum entanglement "
1388 <<fBParameters->QuantumEntanglement() <<
"\n";
1389 os <<
"X-section factor for integral approach " <<lambdaFactor <<
"\n";
1390 os <<
"Min kinetic energy for tables "
1392 os <<
"Max kinetic energy for tables "
1394 os <<
"Number of bins per decade of a table " <<nbinsPerDecade <<
"\n";
1395 os <<
"Verbose level " <<verbose <<
"\n";
1396 os <<
"Verbose level for worker thread " <<workerVerbose <<
"\n";
1397 os <<
"Bremsstrahlung energy threshold above which \n"
1398 <<
" primary e+- is added to the list of secondary "
1400 os <<
"Bremsstrahlung energy threshold above which primary\n"
1401 <<
" muon/hadron is added to the list of secondary "
1403 G4String name3g =
"SimplePositronium";
1405 else if (fPositronium ==
fOrePowell) { name3g =
"OrePowell"; }
1406 else if (fPositronium ==
fOrePowellPolar) { name3g =
"OrePowellPolar"; }
1407 os <<
"Positron annihilation at rest model " << name3g <<
"\n";
1409 os <<
"Enable 3 gamma annihilation on fly "
1410 << f3GammaAnnihilationOnFly <<
"\n";
1411 os <<
"Lowest triplet kinetic energy "
1412 <<
G4BestUnit(lowestTripletEnergy,
"Energy") <<
"\n";
1413 os <<
"Enable sampling of gamma linear polarisation " <<fPolarisation <<
"\n";
1414 os <<
"5D gamma conversion model type " <<tripletConv <<
"\n";
1415 os <<
"5D gamma conversion model on isolated ion " <<onIsolated <<
"\n";
1416 if(max5DEnergyForMuPair>0.0) {
1417 os <<
"5D gamma conversion limit for muon pair "
1418 << max5DEnergyForMuPair/CLHEP::GeV <<
" GeV\n";
1420 os <<
"Use Ricardo-Gerardo pair production model "
1421 << fUseRiGePairProductionModel <<
"\n";
1422 os <<
"Livermore data directory "
1423 << fCParameters->LivermoreDataDir() <<
"\n";
1425 os <<
"=======================================================================" <<
"\n";
1426 os <<
"====== Ionisation Parameters ========" <<
"\n";
1427 os <<
"=======================================================================" <<
"\n";
1428 os <<
"Step function for e+- "
1429 <<
"("<<fBParameters->GetStepFunctionP1() <<
", "
1430 << fBParameters->GetStepFunctionP2()/CLHEP::mm <<
" mm)\n";
1431 os <<
"Step function for muons/hadrons "
1432 <<
"("<<fBParameters->GetStepFunctionMuHadP1() <<
", "
1433 << fBParameters->GetStepFunctionMuHadP2()/CLHEP::mm <<
" mm)\n";
1434 os <<
"Step function for light ions "
1435 <<
"("<<fBParameters->GetStepFunctionLightIonsP1() <<
", "
1436 << fBParameters->GetStepFunctionLightIonsP2()/CLHEP::mm <<
" mm)\n";
1437 os <<
"Step function for general ions "
1438 <<
"("<<fBParameters->GetStepFunctionIonsP1() <<
", "
1439 << fBParameters->GetStepFunctionIonsP2()/CLHEP::mm <<
" mm)\n";
1440 os <<
"Lowest e+e- kinetic energy "
1441 <<
G4BestUnit(lowestElectronEnergy,
"Energy") <<
"\n";
1442 os <<
"Lowest muon/hadron kinetic energy "
1443 <<
G4BestUnit(lowestMuHadEnergy,
"Energy") <<
"\n";
1444 os <<
"Use ICRU90 data " << fICRU90 <<
"\n";
1445 os <<
"Fluctuations of dE/dx are enabled " <<lossFluctuation <<
"\n";
1449 os <<
"Type of fluctuation model for leptons and hadrons " << namef <<
"\n";
1450 os <<
"Use built-in Birks satuaration " << birks <<
"\n";
1451 os <<
"Build CSDA range enabled " <<buildCSDARange <<
"\n";
1452 os <<
"Use cut as a final range enabled " <<cutAsFinalRange <<
"\n";
1453 os <<
"Enable angular generator interface "
1454 <<useAngGeneratorForIonisation <<
"\n";
1455 os <<
"Max kinetic energy for CSDA tables "
1456 <<
G4BestUnit(maxKinEnergyCSDA,
"Energy") <<
"\n";
1457 os <<
"Max kinetic energy for NIEL computation "
1458 <<
G4BestUnit(maxNIELEnergy,
"Energy") <<
"\n";
1459 os <<
"Linear loss limit " <<linLossLimit <<
"\n";
1460 os <<
"Read data from file for e+e- pair production by mu " <<fMuDataFromFile <<
"\n";
1462 os <<
"=======================================================================" <<
"\n";
1463 os <<
"====== Multiple Scattering Parameters ========" <<
"\n";
1464 os <<
"=======================================================================" <<
"\n";
1465 os <<
"Type of msc step limit algorithm for e+- " <<mscStepLimit <<
"\n";
1466 os <<
"Type of msc step limit algorithm for muons/hadrons " <<mscStepLimitMuHad <<
"\n";
1467 os <<
"Msc lateral displacement for e+- enabled " <<lateralDisplacement <<
"\n";
1468 os <<
"Msc lateral displacement for muons and hadrons " <<muhadLateralDisplacement <<
"\n";
1469 os <<
"Urban msc model lateral displacement alg96 " <<lateralDisplacementAlg96 <<
"\n";
1470 os <<
"Range factor for msc step limit for e+- " <<rangeFactor <<
"\n";
1471 os <<
"Range factor for msc step limit for muons/hadrons " <<rangeFactorMuHad <<
"\n";
1472 os <<
"Geometry factor for msc step limitation of e+- " <<geomFactor <<
"\n";
1473 os <<
"Safety factor for msc step limit for e+- " <<safetyFactor <<
"\n";
1474 os <<
"Skin parameter for msc step limitation of e+- " <<skin <<
"\n";
1475 os <<
"Lambda limit for msc step limit for e+- " <<lambdaLimit/CLHEP::mm <<
" mm\n";
1476 os <<
"Use Mott correction for e- scattering " << useMottCorrection <<
"\n";
1477 os <<
"Factor used for dynamic computation of angular \n"
1478 <<
" limit between single and multiple scattering " << factorForAngleLimit <<
"\n";
1479 os <<
"Fixed angular limit between single \n"
1480 <<
" and multiple scattering "
1481 << thetaLimit/CLHEP::rad <<
" rad\n";
1482 os <<
"Upper energy limit for e+- multiple scattering "
1483 << energyLimit/CLHEP::MeV <<
" MeV\n";
1484 os <<
"Type of electron single scattering model " <<fSStype <<
"\n";
1485 os <<
"Type of nuclear form-factor " <<nucFormfactor <<
"\n";
1486 os <<
"Screening factor " <<factorScreen <<
"\n";
1487 os <<
"=======================================================================" <<
"\n";
1489 if(fCParameters->Fluo()) {
1490 os <<
"====== Atomic Deexcitation Parameters ========" <<
"\n";
1491 os <<
"=======================================================================" <<
"\n";
1492 os <<
"Fluorescence enabled " <<fCParameters->Fluo() <<
"\n";
1495 if(fdir ==
fluoBearden) { named =
"fluor_Bearden"; }
1496 else if(fdir ==
fluoANSTO) { named =
"fluor_ANSTO"; }
1497 else if(fdir ==
fluoXDB_EADL) { named =
"fluor_XDB_EADL"; }
1498 os <<
"Directory in G4LEDATA for fluorescence data files " << named <<
"\n";
1499 os <<
"Auger electron cascade enabled "
1500 <<fCParameters->Auger() <<
"\n";
1501 os <<
"PIXE atomic de-excitation enabled " <<fCParameters->Pixe() <<
"\n";
1502 os <<
"De-excitation module ignores cuts "
1503 <<fCParameters->DeexcitationIgnoreCut() <<
"\n";
1504 os <<
"Type of PIXE cross section for hadrons "
1505 <<fCParameters->PIXECrossSectionModel() <<
"\n";
1506 os <<
"Type of PIXE cross section for e+- "
1507 <<fCParameters->PIXEElectronCrossSectionModel() <<
"\n";
1508 os <<
"=======================================================================" <<
"\n";
1511 os <<
"====== DNA Physics Parameters ========" <<
"\n";
1512 os <<
"=======================================================================" <<
"\n";
1513 os <<
"Use fast sampling in DNA models "
1514 << fCParameters->DNAFast() <<
"\n";
1515 os <<
"Use Stationary option in DNA models "
1516 << fCParameters->DNAStationary() <<
"\n";
1517 os <<
"Use DNA with multiple scattering of e- "
1518 << fCParameters->DNAElectronMsc() <<
"\n";
1519 os <<
"Use DNA e- solvation model type "
1520 << fCParameters->DNAeSolvationSubType() <<
"\n";
1521 auto chemModel = fCParameters->GetChemTimeStepModel();
1524 std::vector<G4String> ChemModel{
"Unknown",
"SBS",
"IRT",
"IRT_syn"};
1525 os <<
"Use DNA Chemistry model "
1526 << ChemModel.at((std::size_t)chemModel) <<
"\n";
1528 os <<
"=======================================================================" <<
G4endl;
1535 if(fIsPrinted)
return;
1537#ifdef G4MULTITHREADED
1541#ifdef G4MULTITHREADED
1552G4bool G4EmParameters::IsLocked()
const
1563 fCParameters-> SetChemTimeStepModel(model);
1568 return fCParameters->GetChemTimeStepModel();
G4TemplateAutoLock< G4Mutex > G4AutoLock
std::ostream & operator<<(std::ostream &os, const G4EmParameters &par)
G4TransportationWithMscType
G4PositronAtRestModelType
const char * G4FindDataDir(const char *)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
#define G4MUTEX_INITIALIZER
#define G4MUTEXLOCK(mutex)
#define G4MUTEXUNLOCK(mutex)
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cout
void SetEmSaturation(G4EmSaturation *)
void SetBeardenFluoDir(G4bool val)
G4bool IsPrintLocked() const
void DefineRegParamForLoss(G4VEnergyLossProcess *) const
void SetLambdaFactor(G4double val)
void SetMinEnergy(G4double val)
void SetLowestElectronEnergy(G4double val)
void SetBuildCSDARange(G4bool val)
void SetStepFunctionLightIons(G4double v1, G4double v2)
void SetEnablePolarisation(G4bool val)
void AddDNA(const G4String ®ion, const G4String &type)
G4bool LateralDisplacementAlg96() const
void FillStepFunction(const G4ParticleDefinition *, G4VEnergyLossProcess *) const
G4EmParameters(G4EmParameters &)=delete
void SetNumberOfBinsPerDecade(G4int val)
G4bool UseEPICS2017XS() const
static G4EmParameters * Instance()
void SetDirectionalSplittingTarget(const G4ThreeVector &v)
G4DNAModelSubType DNAeSolvationSubType() const
G4bool RetrieveMuDataFromFile() const
G4bool PhotoeffectBelowKShell() const
G4int NumberOfBins() const
G4double MscMuHadRangeFactor() const
void SetGeneralProcessActive(G4bool val)
void SetDNAFast(G4bool val)
void SetMscSafetyFactor(G4double val)
G4bool EnablePolarisation() const
void SetLateralDisplacementAlg96(G4bool val)
void SetFactorForAngleLimit(G4double val)
const G4String & PIXECrossSectionModel()
const G4String & PIXEElectronCrossSectionModel()
G4double MaxNIELEnergy() const
void SetRetrieveMuDataFromFile(G4bool v)
void SetDirectionalSplitting(G4bool v)
const G4String & LivermoreDataDir()
G4bool OnIsolated() const
void SetMscMuHadRangeFactor(G4double val)
G4bool DNAElectronMsc() const
G4double MinKinEnergy() const
G4int NumberOfBinsPerDecade() const
G4bool BuildCSDARange() const
G4double MscThetaLimit() const
G4bool LossFluctuation() const
G4double MuHadBremsstrahlungTh() const
void AddPAIModel(const G4String &particle, const G4String ®ion, const G4String &type)
void SetPositronAtRestModelType(G4PositronAtRestModelType val)
void SetDNAStationary(G4bool val)
void SetDNAElectronMsc(G4bool val)
const std::vector< G4String > & TypesPhysics() const
void SetMaxEnergyFor5DMuPair(G4double val)
G4double GetDirectionalSplittingRadius()
void SetLinearLossLimit(G4double val)
void SetMscThetaLimit(G4double val)
G4int GetConversionType() const
G4MscStepLimitType MscMuHadStepLimitType() const
G4double MscEnergyLimit() const
void ActivateSecondaryBiasing(const G4String &name, const G4String ®ion, G4double factor, G4double energyLimit)
G4bool BirksActive() const
G4bool DNAStationary() const
G4bool MscPositronCorrection() const
const std::vector< G4String > & RegionsPAI() const
G4int NumberForFreeVector() const
void SetSubCutRegion(const G4String ®ion="")
void SetLossFluctuations(G4bool val)
void SetDeexActiveRegion(const G4String ®ion, G4bool fdeex, G4bool fauger, G4bool fpixe)
G4bool UseCutAsFinalRange() const
void SetPIXEElectronCrossSectionModel(const G4String &)
void SetLowestTripletEnergy(G4double val)
void SetMuHadLateralDisplacement(G4bool val)
G4EmSaturation * GetEmSaturation()
void SetDNAeSolvationSubType(G4DNAModelSubType val)
void SetQuantumEntanglement(G4bool v)
void SetNumberForFreeVector(G4int val)
void DefineRegParamForEM(G4VEmProcess *) const
void ActivateForcedInteraction(const G4String &procname, const G4String ®ion, G4double length, G4bool wflag)
void SetXDB_EADLFluoDir(G4bool val)
void ActivateAngularGeneratorForIonisation(G4bool val)
void SetScreeningFactor(G4double val)
void SetNuclearFormfactorType(G4NuclearFormfactorType val)
void SetStepFunction(G4double v1, G4double v2)
void SetLateralDisplacement(G4bool val)
G4bool QuantumEntanglement() const
void SetWorkerVerbose(G4int val)
void SetUseCutAsFinalRange(G4bool val)
void SetDeexcitationIgnoreCut(G4bool val)
void SetBirksActive(G4bool val)
G4double ScreeningFactor() const
G4bool UseMottCorrection() const
void SetMuHadBremsstrahlungTh(G4double val)
const std::vector< G4String > & ParticlesPAI() const
const std::vector< G4String > & RegionsPhysics() const
void SetFluctuationType(G4EmFluctuationType val)
void DefineRegParamForDeex(G4VAtomDeexcitation *) const
void SetStepFunctionMuHad(G4double v1, G4double v2)
G4double MscSafetyFactor() const
void SetVerbose(G4int val)
G4int WorkerVerbose() const
void SetMscGeomFactor(G4double val)
void SetMscLambdaLimit(G4double val)
void SetMscSkin(G4double val)
void SetApplyCuts(G4bool val)
const std::vector< G4String > & TypesDNA() const
void SetUseRiGePairProductionModel(G4bool v)
G4MscStepLimitType MscStepLimitType() const
void SetEnableSamplingTable(G4bool val)
const std::vector< G4String > & RegionsDNA() const
void SetLivermoreDataDir(const G4String &)
void SetFluoDirectory(G4EmFluoDirectory)
G4double BremsstrahlungTh() const
void SetMaxNIELEnergy(G4double val)
void SetStepFunctionIons(G4double v1, G4double v2)
G4PositronAtRestModelType PositronAtRestModelType() const
void SetMaxEnergyForCSDARange(G4double val)
G4eSingleScatteringType SingleScatteringType() const
G4bool DeexcitationIgnoreCut() const
G4TransportationWithMscType TransportationWithMsc() const
void SetProcessBiasingFactor(const G4String &procname, G4double val, G4bool wflag)
G4double MscGeomFactor() const
void SetMscMuHadStepLimitType(G4MscStepLimitType val)
G4EmFluctuationType FluctuationType() const
void SetMscStepLimitType(G4MscStepLimitType val)
void AddPhysics(const G4String ®ion, const G4String &type)
void SetMscEnergyLimit(G4double val)
void SetBremsstrahlungTh(G4double val)
void SetAuger(G4bool val)
void SetUseEPICS2017XS(G4bool v)
G4bool GetDirectionalSplitting() const
void SetIsPrintedFlag(G4bool val)
G4double MaxKinEnergy() const
G4bool UseICRU90Data() const
void SetDirectionalSplittingRadius(G4double r)
void SetConversionType(G4int val)
G4bool LateralDisplacement() const
void SetUseICRU90Data(G4bool val)
G4ChemTimeStepModel GetTimeStepModel() const
G4bool MuHadLateralDisplacement() const
void SetOnIsolated(G4bool val)
void SetTransportationWithMsc(G4TransportationWithMscType val)
G4bool EnableSamplingTable() const
G4EmFluoDirectory FluoDirectory() const
void StreamInfo(std::ostream &os) const
G4double MscLambdaLimit() const
void SetPIXECrossSectionModel(const G4String &)
void SetIntegral(G4bool val)
G4ThreeVector GetDirectionalSplittingTarget() const
void SetUseMottCorrection(G4bool val)
void AddMicroElec(const G4String ®ion)
const std::vector< G4String > & RegionsMicroElec() const
G4double MaxEnergyFor5DMuPair() const
void SetMscPositronCorrection(G4bool v)
G4double MaxEnergyForCSDARange() const
G4bool UseRiGePairProductionModel() const
void SetLowestMuHadEnergy(G4double val)
const std::vector< G4String > & TypesPAI() const
G4bool UseAngularGeneratorForIonisation() const
void SetMaxEnergy(G4double val)
G4double LinearLossLimit() const
G4NuclearFormfactorType NuclearFormfactorType() const
G4double LowestMuHadEnergy() const
G4double MscRangeFactor() const
G4double LambdaFactor() const
G4double FactorForAngleLimit() const
G4bool Use3GammaAnnihilationOnFly() const
const G4String & GetDirLEDATA() const
void SetSingleScatteringType(G4eSingleScatteringType val)
void SetANSTOFluoDir(G4bool val)
G4double LowestTripletEnergy() const
void SetPhotoeffectBelowKShell(G4bool v)
G4double LowestElectronEnergy() const
void SetMscRangeFactor(G4double val)
void SetTimeStepModel(const G4ChemTimeStepModel &model)
void Set3GammaAnnihilationOnFly(G4bool v)
G4bool GeneralProcessActive() const
static G4NistManager * Instance()
const G4ApplicationState & GetCurrentState() const
static G4StateManager * GetStateManager()