56G4PhysicsListHelper::G4PhysicsListHelper()
60 aParticleIterator = theParticleTable->
GetIterator();
62 ReadOrdingParameterTable();
65 if (verboseLevel > 1) {
72G4PhysicsListHelper::~G4PhysicsListHelper()
74 if (theTable !=
nullptr) {
85 if (pPLHelper ==
nullptr) {
99 G4bool isGenericIon =
false;
101 G4bool isAnyChargedBaryon =
false;
105 aParticleIterator->
reset();
106 while ((*aParticleIterator)()) {
120 else if (name ==
"e+")
122 else if (name ==
"gamma")
124 else if (name ==
"GenericIon")
126 else if (name ==
"proton")
131 if (particle->
GetPDGCharge() != 0.0) isAnyChargedBaryon =
true;
135 if (!isEmProc)
return;
140 G4bool isEmBasic = isElectron || isPositron || isGamma;
141 G4bool isMissingEmBasic = !isElectron || !isPositron || !isGamma;
142 if (isEmBasic && isMissingEmBasic) {
144 if (!isElectron) missingName +=
"e- ";
145 if (!isPositron) missingName +=
"e+ ";
146 if (!isGamma) missingName +=
"gamma ";
149 if (verboseLevel > 0) {
150 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName <<
" do not exist "
152 G4cout <<
" These particle are necessary for basic EM processes" <<
G4endl;
156 "Missing EM basic particle");
162 if (!isProton && isAnyChargedBaryon) {
166 if (verboseLevel > 0) {
167 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName <<
" does not exist "
169 G4cout <<
" Proton is necessary for EM baryon processes" <<
G4endl;
172 missingName +=
" should be created ";
180 if (!isGenericIon && isAnyIon) {
181 G4String missingName =
"GenericIon ";
184 if (verboseLevel > 0) {
185 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName <<
" does not exist "
187 G4cout <<
" GenericIon should be created if any ion is necessary" <<
G4endl;
191 "Missing GenericIon");
198 G4int verboseLevelTransport = 0;
201 if (verboseLevel > 2) {
202 G4cout <<
"G4PhysicsListHelper::AddTransportation() " <<
G4endl;
208 if (nParaWorld > 0 || useCoupledTransportation
212 if (theLooperThresholds == 0) coupledTransport->SetLowLooperThresholds();
213 if (theLooperThresholds == 2) coupledTransport->SetHighLooperThresholds();
214 theTransportationProcess = coupledTransport;
216 if (verboseLevel > 0) {
217 G4cout <<
"--- G4CoupledTransportation is used " <<
G4endl;
222 if (theLooperThresholds == 0) simpleTransport->SetLowLooperThresholds();
223 if (theLooperThresholds == 2) simpleTransport->SetHighLooperThresholds();
224 theTransportationProcess = simpleTransport;
228 aParticleIterator->
reset();
229 while ((*aParticleIterator)()) {
233 if (pmanager ==
nullptr) {
236 if (verboseLevel > 0) {
237 G4cout <<
"G4PhysicsListHelper::AddTransportation "
242 "No process manager");
249 pmanager->
AddProcess(theTransportationProcess);
256void G4PhysicsListHelper::ReadOrdingParameterTable()
261 if (theTable !=
nullptr) {
267 theTable =
new G4OrdParamTable();
270 ReadInDefaultOrderingParameter();
272 if (sizeOfTable == 0) {
274 if (verboseLevel > 0) {
275 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
276 <<
" Empty file " << ordParamFileName <<
G4endl;
280 "The ordering parameter table is empty ");
290 if (theTable ==
nullptr) {
292 if (verboseLevel > 0) {
293 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable "
294 <<
" No ordering parameter table : " << ordParamFileName <<
G4endl;
299 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable : " << ordParamFileName <<
G4endl;
306 <<
" Duplicable" <<
G4endl;
307 for (
G4int i = 0; i < sizeOfTable; ++i) {
309 if ((subType >= 0) && (subType != tmp->processSubType))
continue;
310 G4cout << std::setw(18) << tmp->processTypeName << std::setw(15) << tmp->processType
311 << std::setw(15) << tmp->processSubType << std::setw(15) << tmp->ordering[0]
312 << std::setw(15) << tmp->ordering[1] << std::setw(15) << tmp->ordering[2];
313 if (tmp->isDuplicable) {
328 if (theTable ==
nullptr) {
330 if (verboseLevel > 0) {
331 G4cout <<
"G4PhysicsListHelper::GetOrderingParameter : "
332 <<
" No ordering parameter table : " << ordParamFileName <<
G4endl;
338 for (
G4int i = 0; i < sizeOfTable; ++i) {
340 if (subType == tmp->processSubType) {
341 value.processTypeName = tmp->processTypeName;
342 value.processType = tmp->processType;
343 value.processSubType = tmp->processSubType;
344 value.ordering[0] = tmp->ordering[0];
345 value.ordering[1] = tmp->ordering[1];
346 value.ordering[2] = tmp->ordering[2];
347 value.isDuplicable = tmp->isDuplicable;
356 if (theTable ==
nullptr) {
358 if (verboseLevel > 0) {
359 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
360 <<
" No ordering parameter table : " << ordParamFileName <<
G4endl;
364 "No Ordering Parameter Table");
373 if (verboseLevel > 2) {
374 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" Process Type = " << pType
380 if ((pType < 1) || (pSubType < 1)) {
382 if (verboseLevel > 0) {
383 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
384 << particle->
GetParticleName() <<
" has illegal Process Type = " << pType
385 <<
" SubType = " << pSubType <<
G4endl;
389 "No Matching process Type/SubType");
395 G4bool duplicable =
false;
396 for (
G4int i = 0; i < sizeOfTable; ++i) {
398 if ((tmp->processType == pType) && (tmp->processSubType == pSubType)) {
399 ord[0] = tmp->ordering[0];
400 ord[1] = tmp->ordering[1];
401 ord[2] = tmp->ordering[2];
402 duplicable = tmp->isDuplicable;
409 if (verboseLevel > 0) {
410 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
411 << particle->
GetParticleName() <<
" with type/subtype =" << pType <<
"/" << pSubType
412 <<
" is not registered in OrdingParameterTable " <<
G4endl;
416 "No Matching process Type/SubType");
422 if (pManager ==
nullptr) {
425 if (verboseLevel > 0) {
426 G4cout <<
"G4PhysicsListHelper::RegisterProcess "
431 "No process manager");
437 G4bool duplicated =
false;
444 if (verboseLevel > 0) {
445 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
446 << particle->
GetParticleName() <<
" with type/subtype =" << pType <<
"/"
447 << pSubType <<
" is has same subType as " << p->
GetProcessName() <<
" for "
453 "Duplication of processes");
456 if (duplicated)
return false;
461 if (
code < 0)
return false;
464 for (
G4int idx = 0; idx < 3; ++idx) {
469 else if (ord[idx] == 0) {
472 else if (ord[idx] < 9999) {
480 if (verboseLevel > 1) {
481 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
482 << particle->
GetParticleName() <<
" with type/subtype =" << pType <<
"/" << pSubType
483 <<
" is successfully registered with ordering parameters " << ord[0] <<
":" << ord[1]
484 <<
":" << ord[2] <<
G4endl;
491void G4PhysicsListHelper::ReadInDefaultOrderingParameter()
498 tmp.processTypeName =
"Transportation";
501 tmp.ordering[0] = -1;
504 tmp.isDuplicable =
false;
505 theTable->push_back(tmp);
508 tmp.processTypeName =
"CoupleTrans";
511 tmp.ordering[0] = -1;
514 tmp.isDuplicable =
false;
515 theTable->push_back(tmp);
518 tmp.processTypeName =
"CoulombScat";
521 tmp.ordering[0] = -1;
522 tmp.ordering[1] = -1;
523 tmp.ordering[2] = 1000;
524 tmp.isDuplicable =
false;
525 theTable->push_back(tmp);
528 tmp.processTypeName =
"Ionisation";
531 tmp.ordering[0] = -1;
534 tmp.isDuplicable =
false;
535 theTable->push_back(tmp);
538 tmp.processTypeName =
"Brems";
541 tmp.ordering[0] = -1;
542 tmp.ordering[1] = -1;
544 tmp.isDuplicable =
false;
545 theTable->push_back(tmp);
548 tmp.processTypeName =
"PairProdCharged";
551 tmp.ordering[0] = -1;
552 tmp.ordering[1] = -1;
554 tmp.isDuplicable =
false;
555 theTable->push_back(tmp);
558 tmp.processTypeName =
"Annih";
562 tmp.ordering[1] = -1;
564 tmp.isDuplicable =
false;
565 theTable->push_back(tmp);
568 tmp.processTypeName =
"AnnihToMuMu";
571 tmp.ordering[0] = -1;
572 tmp.ordering[1] = -1;
574 tmp.isDuplicable =
false;
575 theTable->push_back(tmp);
578 tmp.processTypeName =
"AnnihToTauTau";
581 tmp.ordering[0] = -1;
582 tmp.ordering[1] = -1;
584 tmp.isDuplicable =
false;
585 theTable->push_back(tmp);
588 tmp.processTypeName =
"AnnihToHad";
591 tmp.ordering[0] = -1;
592 tmp.ordering[1] = -1;
594 tmp.isDuplicable =
false;
595 theTable->push_back(tmp);
598 tmp.processTypeName =
"NuclearStopping";
601 tmp.ordering[0] = -1;
603 tmp.ordering[2] = -1;
604 tmp.isDuplicable =
false;
605 theTable->push_back(tmp);
608 tmp.processTypeName =
"ElectronGeneral";
611 tmp.ordering[0] = -1;
614 tmp.isDuplicable =
false;
615 theTable->push_back(tmp);
618 tmp.processTypeName =
"Msc";
621 tmp.ordering[0] = -1;
623 tmp.ordering[2] = -1;
624 tmp.isDuplicable =
false;
625 theTable->push_back(tmp);
628 tmp.processTypeName =
"Rayleigh";
631 tmp.ordering[0] = -1;
632 tmp.ordering[1] = -1;
633 tmp.ordering[2] = 1000;
634 tmp.isDuplicable =
false;
635 theTable->push_back(tmp);
638 tmp.processTypeName =
"PhotoElectric";
641 tmp.ordering[0] = -1;
642 tmp.ordering[1] = -1;
643 tmp.ordering[2] = 1000;
644 tmp.isDuplicable =
false;
645 theTable->push_back(tmp);
648 tmp.processTypeName =
"Compton";
651 tmp.ordering[0] = -1;
652 tmp.ordering[1] = -1;
653 tmp.ordering[2] = 1000;
654 tmp.isDuplicable =
false;
655 theTable->push_back(tmp);
658 tmp.processTypeName =
"Conv";
661 tmp.ordering[0] = -1;
662 tmp.ordering[1] = -1;
663 tmp.ordering[2] = 1000;
664 tmp.isDuplicable =
false;
665 theTable->push_back(tmp);
668 tmp.processTypeName =
"ConvToMuMu";
671 tmp.ordering[0] = -1;
672 tmp.ordering[1] = -1;
673 tmp.ordering[2] = 1000;
674 tmp.isDuplicable =
false;
675 theTable->push_back(tmp);
678 tmp.processTypeName =
"GammaGeneral";
681 tmp.ordering[0] = -1;
682 tmp.ordering[1] = -1;
683 tmp.ordering[2] = 1000;
684 tmp.isDuplicable =
false;
685 theTable->push_back(tmp);
688 tmp.processTypeName =
"PositronGeneral";
694 tmp.isDuplicable =
false;
695 theTable->push_back(tmp);
698 tmp.processTypeName =
"MuPairByMuon";
701 tmp.ordering[0] = -1;
702 tmp.ordering[1] = -1;
703 tmp.ordering[2] = 10;
704 tmp.isDuplicable =
false;
705 theTable->push_back(tmp);
708 tmp.processTypeName =
"Cerenkov";
711 tmp.ordering[0] = -1;
712 tmp.ordering[1] = -1;
713 tmp.ordering[2] = 1000;
714 tmp.isDuplicable =
false;
715 theTable->push_back(tmp);
718 tmp.processTypeName =
"Scintillation";
721 tmp.ordering[0] = 9999;
722 tmp.ordering[1] = -1;
723 tmp.ordering[2] = 9999;
724 tmp.isDuplicable =
false;
725 theTable->push_back(tmp);
728 tmp.processTypeName =
"SynchRad";
731 tmp.ordering[0] = -1;
732 tmp.ordering[1] = -1;
733 tmp.ordering[2] = 1000;
734 tmp.isDuplicable =
false;
735 theTable->push_back(tmp);
738 tmp.processTypeName =
"TransRad";
741 tmp.ordering[0] = -1;
742 tmp.ordering[1] = -1;
743 tmp.ordering[2] = 1000;
744 tmp.isDuplicable =
false;
745 theTable->push_back(tmp);
748 tmp.processTypeName =
"SurfaceRefl";
751 tmp.ordering[0] = -1;
752 tmp.ordering[1] = -1;
753 tmp.ordering[2] = 1000;
754 tmp.isDuplicable =
false;
755 theTable->push_back(tmp);
758 tmp.processTypeName =
"OpAbsorb";
761 tmp.ordering[0] = -1;
762 tmp.ordering[1] = -1;
763 tmp.ordering[2] = 1000;
764 tmp.isDuplicable =
false;
765 theTable->push_back(tmp);
768 tmp.processTypeName =
"OpBoundary";
771 tmp.ordering[0] = -1;
772 tmp.ordering[1] = -1;
773 tmp.ordering[2] = 1000;
774 tmp.isDuplicable =
false;
775 theTable->push_back(tmp);
778 tmp.processTypeName =
"OpRayleigh";
781 tmp.ordering[0] = -1;
782 tmp.ordering[1] = -1;
783 tmp.ordering[2] = 1000;
784 tmp.isDuplicable =
false;
785 theTable->push_back(tmp);
788 tmp.processTypeName =
"OpWLS";
790 tmp.processSubType =
fOpWLS;
791 tmp.ordering[0] = -1;
792 tmp.ordering[1] = -1;
793 tmp.ordering[2] = 1000;
794 tmp.isDuplicable =
false;
795 theTable->push_back(tmp);
798 tmp.processTypeName =
"OpMieHG";
801 tmp.ordering[0] = -1;
802 tmp.ordering[1] = -1;
803 tmp.ordering[2] = 1000;
804 tmp.isDuplicable =
false;
805 theTable->push_back(tmp);
808 tmp.processTypeName =
"OpWLS2";
811 tmp.ordering[0] = -1;
812 tmp.ordering[1] = -1;
813 tmp.ordering[2] = 1000;
814 tmp.isDuplicable =
false;
815 theTable->push_back(tmp);
818 tmp.processTypeName =
"DNAElastic";
821 tmp.ordering[0] = -1;
822 tmp.ordering[1] = -1;
823 tmp.ordering[2] = 1000;
824 tmp.isDuplicable =
false;
825 theTable->push_back(tmp);
828 tmp.processTypeName =
"DNAExcit";
831 tmp.ordering[0] = -1;
832 tmp.ordering[1] = -1;
833 tmp.ordering[2] = 1000;
834 tmp.isDuplicable =
false;
835 theTable->push_back(tmp);
838 tmp.processTypeName =
"DNAIonisation";
841 tmp.ordering[0] = -1;
842 tmp.ordering[1] = -1;
843 tmp.ordering[2] = 1000;
844 tmp.isDuplicable =
false;
845 theTable->push_back(tmp);
848 tmp.processTypeName =
"DNAVibExcit";
851 tmp.ordering[0] = -1;
852 tmp.ordering[1] = -1;
853 tmp.ordering[2] = 1000;
854 tmp.isDuplicable =
false;
855 theTable->push_back(tmp);
858 tmp.processTypeName =
"DNAAttachment";
861 tmp.ordering[0] = -1;
862 tmp.ordering[1] = -1;
863 tmp.ordering[2] = 1000;
864 tmp.isDuplicable =
false;
865 theTable->push_back(tmp);
868 tmp.processTypeName =
"DNAChargeDec";
871 tmp.ordering[0] = -1;
872 tmp.ordering[1] = -1;
873 tmp.ordering[2] = 1000;
874 tmp.isDuplicable =
false;
875 theTable->push_back(tmp);
878 tmp.processTypeName =
"DNAChargeInc";
881 tmp.ordering[0] = -1;
882 tmp.ordering[1] = -1;
883 tmp.ordering[2] = 1000;
884 tmp.isDuplicable =
false;
885 theTable->push_back(tmp);
888 tmp.processTypeName =
"DNAElecSolv";
891 tmp.ordering[0] = -1;
892 tmp.ordering[1] = -1;
893 tmp.ordering[2] = 1000;
894 tmp.isDuplicable =
false;
895 theTable->push_back(tmp);
898 tmp.processTypeName =
"DNAMolecDecay";
901 tmp.ordering[0] = 1000;
902 tmp.ordering[1] = -1;
903 tmp.ordering[2] = -1;
904 tmp.isDuplicable =
false;
905 theTable->push_back(tmp);
908 tmp.processTypeName =
"ITTransport";
911 tmp.ordering[0] = -1;
914 tmp.isDuplicable =
false;
915 theTable->push_back(tmp);
918 tmp.processTypeName =
"DNABrownTrans";
921 tmp.ordering[0] = -1;
924 tmp.isDuplicable =
false;
925 theTable->push_back(tmp);
928 tmp.processTypeName =
"DNADoubleIoni";
931 tmp.ordering[0] = -1;
932 tmp.ordering[1] = -1;
933 tmp.ordering[2] = 1000;
934 tmp.isDuplicable =
false;
935 theTable->push_back(tmp);
938 tmp.processTypeName =
"DNADoubleCap";
941 tmp.ordering[0] = -1;
942 tmp.ordering[1] = -1;
943 tmp.ordering[2] = 1000;
944 tmp.isDuplicable =
false;
945 theTable->push_back(tmp);
948 tmp.processTypeName =
"DNAIoniTransfer";
951 tmp.ordering[0] = -1;
952 tmp.ordering[1] = -1;
953 tmp.ordering[2] = 1000;
954 tmp.isDuplicable =
false;
955 theTable->push_back(tmp);
958 tmp.processTypeName =
"DNAStaticMol";
961 tmp.ordering[0] = -1;
962 tmp.ordering[1] = -1;
963 tmp.ordering[2] = 1000;
964 tmp.isDuplicable =
false;
965 theTable->push_back(tmp);
968 tmp.processTypeName =
"DNAScavenger";
971 tmp.ordering[0] = -1;
972 tmp.ordering[1] = -1;
973 tmp.ordering[2] = 1000;
974 tmp.isDuplicable =
false;
975 theTable->push_back(tmp);
978 tmp.processTypeName =
"HadElastic";
981 tmp.ordering[0] = -1;
982 tmp.ordering[1] = -1;
983 tmp.ordering[2] = 1000;
984 tmp.isDuplicable =
false;
985 theTable->push_back(tmp);
988 tmp.processTypeName =
"NeutronGeneral";
991 tmp.ordering[0] = -1;
992 tmp.ordering[1] = -1;
993 tmp.ordering[2] = 1000;
994 tmp.isDuplicable =
false;
995 theTable->push_back(tmp);
998 tmp.processTypeName =
"HadInelastic";
1001 tmp.ordering[0] = -1;
1002 tmp.ordering[1] = -1;
1003 tmp.ordering[2] = 1000;
1004 tmp.isDuplicable =
false;
1005 theTable->push_back(tmp);
1008 tmp.processTypeName =
"HadCapture";
1011 tmp.ordering[0] = -1;
1012 tmp.ordering[1] = -1;
1013 tmp.ordering[2] = 1000;
1014 tmp.isDuplicable =
false;
1015 theTable->push_back(tmp);
1018 tmp.processTypeName =
"MuAtomCapture";
1021 tmp.ordering[0] = -1;
1022 tmp.ordering[1] = -1;
1023 tmp.ordering[2] = 1000;
1024 tmp.isDuplicable =
false;
1025 theTable->push_back(tmp);
1028 tmp.processTypeName =
"HadFission";
1031 tmp.ordering[0] = -1;
1032 tmp.ordering[1] = -1;
1033 tmp.ordering[2] = 1000;
1034 tmp.isDuplicable =
false;
1035 theTable->push_back(tmp);
1038 tmp.processTypeName =
"HadAtRest";
1041 tmp.ordering[0] = 1000;
1042 tmp.ordering[1] = -1;
1043 tmp.ordering[2] = -1;
1044 tmp.isDuplicable =
false;
1045 theTable->push_back(tmp);
1048 tmp.processTypeName =
"HadCEX";
1051 tmp.ordering[0] = -1;
1052 tmp.ordering[1] = -1;
1053 tmp.ordering[2] = 1000;
1054 tmp.isDuplicable =
false;
1055 theTable->push_back(tmp);
1058 tmp.processTypeName =
"Decay";
1059 tmp.processType =
fDecay;
1060 tmp.processSubType =
DECAY;
1061 tmp.ordering[0] = 1000;
1062 tmp.ordering[1] = -1;
1063 tmp.ordering[2] = 1000;
1064 tmp.isDuplicable =
false;
1065 theTable->push_back(tmp);
1068 tmp.processTypeName =
"DecayWSpin";
1069 tmp.processType =
fDecay;
1071 tmp.ordering[0] = 1000;
1072 tmp.ordering[1] = -1;
1073 tmp.ordering[2] = 1000;
1074 tmp.isDuplicable =
false;
1075 theTable->push_back(tmp);
1078 tmp.processTypeName =
"DecayPiSpin";
1079 tmp.processType =
fDecay;
1081 tmp.ordering[0] = 1000;
1082 tmp.ordering[1] = -1;
1083 tmp.ordering[2] = 1000;
1084 tmp.isDuplicable =
false;
1085 theTable->push_back(tmp);
1088 tmp.processTypeName =
"DecayRadio";
1089 tmp.processType =
fDecay;
1091 tmp.ordering[0] = 1000;
1092 tmp.ordering[1] = -1;
1093 tmp.ordering[2] = 1000;
1094 tmp.isDuplicable =
false;
1095 theTable->push_back(tmp);
1098 tmp.processTypeName =
"DecayUnKnown";
1099 tmp.processType =
fDecay;
1101 tmp.ordering[0] = -1;
1102 tmp.ordering[1] = -1;
1103 tmp.ordering[2] = 1000;
1104 tmp.isDuplicable =
false;
1105 theTable->push_back(tmp);
1108 tmp.processTypeName =
"DecayMuAtom";
1109 tmp.processType =
fDecay;
1111 tmp.ordering[0] = 1000;
1112 tmp.ordering[1] = -1;
1113 tmp.ordering[2] = 1000;
1114 tmp.isDuplicable =
false;
1115 theTable->push_back(tmp);
1118 tmp.processTypeName =
"DecayExt";
1119 tmp.processType =
fDecay;
1121 tmp.ordering[0] = 1000;
1122 tmp.ordering[1] = -1;
1123 tmp.ordering[2] = 1000;
1124 tmp.isDuplicable =
false;
1125 theTable->push_back(tmp);
1128 tmp.processTypeName =
"StepLimiter";
1131 tmp.ordering[0] = -1;
1132 tmp.ordering[1] = -1;
1133 tmp.ordering[2] = 1000;
1134 tmp.isDuplicable =
false;
1135 theTable->push_back(tmp);
1138 tmp.processTypeName =
"UsrSepcCuts";
1141 tmp.ordering[0] = -1;
1142 tmp.ordering[1] = -1;
1143 tmp.ordering[2] = 1000;
1144 tmp.isDuplicable =
false;
1145 theTable->push_back(tmp);
1148 tmp.processTypeName =
"NeutronKiller";
1151 tmp.ordering[0] = -1;
1152 tmp.ordering[1] = -1;
1153 tmp.ordering[2] = 1000;
1154 tmp.isDuplicable =
false;
1155 theTable->push_back(tmp);
1158 tmp.processTypeName =
"ParallelWorld";
1161 tmp.ordering[0] = 9900;
1162 tmp.ordering[1] = 1;
1163 tmp.ordering[2] = 9900;
1164 tmp.isDuplicable =
true;
1165 theTable->push_back(tmp);
@ fPositronGeneralProcess
@ fElectronGeneralProcess
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
@ fLowEnergyBrownianTransportation
@ fLowEnergyDoubleIonisation
@ fLowEnergyChargeIncrease
@ fLowEnergyMolecularDecay
@ fLowEnergyVibrationalExcitation
@ fLowEnergyElectronSolvation
@ fLowEnergyTransportation
@ fLowEnergyChargeDecrease
G4GLOB_DLL std::ostream G4cout
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleType() const
G4double GetPDGCharge() const
const G4String & GetParticleName() const
void reset(G4bool ifSkipIon=true)
G4PTblDicIterator * GetIterator() const
static G4ParticleTable * GetParticleTable()
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
void CheckParticleList() const
static G4PhysicsListHelper * GetPhysicsListHelper()
void DumpOrdingParameterTable(G4int subType=-1) const
G4PhysicsListOrderingParameter GetOrdingParameter(G4int subType) const
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
G4ProcessVector * GetProcessList() const
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
void SetProcessOrderingToLast(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
void SetProcessOrderingToFirst(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
static G4RunManagerKernel * GetRunManagerKernel()
G4int GetNumberOfParallelWorld() const
static G4ScoringManager * GetScoringManagerIfExist()
G4ProcessType GetProcessType() const
G4int GetProcessSubType() const
const G4String & GetProcessName() const