60G4PhysicsListHelper::G4PhysicsListHelper()
64 aParticleIterator = theParticleTable->
GetIterator();
66 ReadOrdingParameterTable();
77G4PhysicsListHelper::~G4PhysicsListHelper()
79 if(theTable !=
nullptr)
91 if(pPLHelper ==
nullptr)
102 G4bool isElectron =
false;
103 G4bool isPositron =
false;
106 G4bool isGenericIon =
false;
108 G4bool isAnyChargedBaryon =
false;
112 aParticleIterator->
reset();
113 while((*aParticleIterator)())
131 else if(name ==
"e+")
133 else if(name ==
"gamma")
135 else if(name ==
"GenericIon")
137 else if(name ==
"proton")
144 isAnyChargedBaryon =
true;
154 G4bool isEmBasic = isElectron || isPositron || isGamma;
155 G4bool isMissingEmBasic = !isElectron || !isPositron || !isGamma;
156 if(isEmBasic && isMissingEmBasic)
160 missingName +=
"e- ";
162 missingName +=
"e+ ";
164 missingName +=
"gamma ";
169 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName
170 <<
" do not exist " <<
G4endl;
171 G4cout <<
" These particle are necessary for basic EM processes"
175 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
"Run0101",
182 if(!isProton && isAnyChargedBaryon)
189 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName
190 <<
" does not exist " <<
G4endl;
191 G4cout <<
" Proton is necessary for EM baryon processes" <<
G4endl;
194 missingName +=
" should be created ";
195 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
"Run0102",
202 if(!isGenericIon && isAnyIon)
204 G4String missingName =
"GenericIon ";
209 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName
210 <<
" does not exist " <<
G4endl;
211 G4cout <<
" GenericIon should be created if any ion is necessary"
215 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
"Run0103",
223 G4int verboseLevelTransport = 0;
228 G4cout <<
"G4PhysicsListHelper::AddTransportation() " <<
G4endl;
235 if(nParaWorld > 0 || useCoupledTransportation ||
239 if(theLooperThresholds == 0)
240 coupledTransport->SetLowLooperThresholds();
241 if(theLooperThresholds == 2)
242 coupledTransport->SetHighLooperThresholds();
243 theTransportationProcess = coupledTransport;
247 G4cout <<
"--- G4CoupledTransportation is used " <<
G4endl;
253 if(theLooperThresholds == 0)
254 simpleTransport->SetLowLooperThresholds();
255 if(theLooperThresholds == 2)
256 simpleTransport->SetHighLooperThresholds();
257 theTransportationProcess = simpleTransport;
261 aParticleIterator->
reset();
262 while((*aParticleIterator)())
273 G4cout <<
"G4PhysicsListHelper::AddTransportation "
278 G4Exception(
"G4PhysicsListHelper::AddTransportation",
"Run0104",
287 pmanager->
AddProcess(theTransportationProcess);
294void G4PhysicsListHelper::ReadOrdingParameterTable()
296 G4bool readInFile =
false;
299 if(std::getenv(
"G4ORDPARAMTABLE"))
301 ordParamFileName = std::getenv(
"G4ORDPARAMTABLE");
305 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable :"
306 << ordParamFileName <<
" is assigned to Ordering Parameter Table "
311 fIn.open(ordParamFileName, std::ios::in);
318 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
319 <<
" Can not open file " << ordParamFileName <<
G4endl;
322 G4Exception(
"G4PhysicsListHelper::ReadOrdingParameterTable",
"Run0105",
323 JustWarning,
"Fail to open ordering parameter table ");
332 if(theTable !=
nullptr)
339 theTable =
new G4OrdParamTable();
349 fIn >> tmp.processTypeName >> tmp.processType >> tmp.processSubType >>
350 tmp.ordering[0] >> tmp.ordering[1] >> tmp.ordering[2] >> flag;
351 tmp.isDuplicable = (flag != 0);
352 theTable->push_back(tmp);
359 ReadInDefaultOrderingParameter();
367 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
368 <<
" Empty file " << ordParamFileName <<
G4endl;
371 G4Exception(
"G4PhysicsListHelper::ReadOrdingParameterTable",
"Run0106",
372 JustWarning,
"The ordering parameter table is empty ");
382 if(theTable ==
nullptr)
387 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable "
388 <<
" No ordering parameter table : " << ordParamFileName
394 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable : "
395 << ordParamFileName <<
G4endl;
402 <<
" Duplicable" <<
G4endl;
403 for(
G4int i = 0; i < sizeOfTable; ++i)
406 if((subType >= 0) && (subType != tmp->processSubType))
408 G4cout << std::setw(18) << tmp->processTypeName << std::setw(15)
409 << tmp->processType << std::setw(15) << tmp->processSubType
410 << std::setw(15) << tmp->ordering[0] << std::setw(15)
411 << tmp->ordering[1] << std::setw(15) << tmp->ordering[2];
412 if(tmp->isDuplicable)
430 if(theTable ==
nullptr)
435 G4cout <<
"G4PhysicsListHelper::GetOrderingParameter : "
436 <<
" No ordering parameter table : " << ordParamFileName
443 for(
G4int i = 0; i < sizeOfTable; ++i)
446 if(subType == tmp->processSubType)
448 value.processTypeName = tmp->processTypeName;
449 value.processType = tmp->processType;
450 value.processSubType = tmp->processSubType;
451 value.ordering[0] = tmp->ordering[0];
452 value.ordering[1] = tmp->ordering[1];
453 value.ordering[2] = tmp->ordering[2];
454 value.isDuplicable = tmp->isDuplicable;
464 if(theTable ==
nullptr)
469 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
470 <<
" No ordering parameter table : " << ordParamFileName
474 G4Exception(
"G4PhysicsListHelper::RegisterProcess",
"Run0107",
486 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName
487 <<
" Process Type = " << pType <<
" SubType = " << pSubType <<
" to "
493 if((pType < 1) || (pSubType < 1))
498 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
500 <<
" has illegal Process Type = " << pType
501 <<
" SubType = " << pSubType <<
G4endl;
504 G4Exception(
"G4PhysicsListHelper::RegisterProcess",
"Run0108",
511 G4bool duplicable =
false;
512 for(
G4int i = 0; i < sizeOfTable; ++i)
515 if((tmp->processType == pType) && (tmp->processSubType == pSubType))
517 ord[0] = tmp->ordering[0];
518 ord[1] = tmp->ordering[1];
519 ord[2] = tmp->ordering[2];
520 duplicable = tmp->isDuplicable;
530 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
533 <<
" is not registered in OrdingParameterTable " <<
G4endl;
536 G4Exception(
"G4PhysicsListHelper::RegisterProcess",
"Run0109",
543 if(pManager ==
nullptr)
549 G4cout <<
"G4PhysicsListHelper::RegisterProcess "
554 G4Exception(
"G4PhysicsListHelper::RegisterProcess ",
"Riun0110",
562 G4bool duplicated =
false;
573 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
575 <<
" with type/subtype =" << pType <<
"/" << pSubType
581 G4Exception(
"G4PhysicsListHelper::RegisterProcess",
"Run0111",
595 for(
G4int idx = 0; idx < 3; ++idx)
603 else if(ord[idx] == 0)
607 else if(ord[idx] < 9999)
619 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
622 <<
" is successfully registered with ordering parameters " << ord[0]
623 <<
":" << ord[1] <<
":" << ord[2] <<
G4endl;
630void G4PhysicsListHelper::ReadInDefaultOrderingParameter()
637 tmp.processTypeName =
"Transportation";
640 tmp.ordering[0] = -1;
643 tmp.isDuplicable =
false;
644 theTable->push_back(tmp);
647 tmp.processTypeName =
"CoupleTrans";
650 tmp.ordering[0] = -1;
653 tmp.isDuplicable =
false;
654 theTable->push_back(tmp);
657 tmp.processTypeName =
"CoulombScat";
660 tmp.ordering[0] = -1;
661 tmp.ordering[1] = -1;
662 tmp.ordering[2] = 1000;
663 tmp.isDuplicable =
false;
664 theTable->push_back(tmp);
667 tmp.processTypeName =
"Ionisation";
670 tmp.ordering[0] = -1;
673 tmp.isDuplicable =
false;
674 theTable->push_back(tmp);
677 tmp.processTypeName =
"Brems";
680 tmp.ordering[0] = -1;
681 tmp.ordering[1] = -1;
683 tmp.isDuplicable =
false;
684 theTable->push_back(tmp);
687 tmp.processTypeName =
"PairProdCharged";
690 tmp.ordering[0] = -1;
691 tmp.ordering[1] = -1;
693 tmp.isDuplicable =
false;
694 theTable->push_back(tmp);
697 tmp.processTypeName =
"Annih";
701 tmp.ordering[1] = -1;
703 tmp.isDuplicable =
false;
704 theTable->push_back(tmp);
707 tmp.processTypeName =
"AnnihToMuMu";
710 tmp.ordering[0] = -1;
711 tmp.ordering[1] = -1;
713 tmp.isDuplicable =
false;
714 theTable->push_back(tmp);
717 tmp.processTypeName =
"AnnihToTauTau";
720 tmp.ordering[0] = -1;
721 tmp.ordering[1] = -1;
723 tmp.isDuplicable =
false;
724 theTable->push_back(tmp);
727 tmp.processTypeName =
"AnnihToHad";
730 tmp.ordering[0] = -1;
731 tmp.ordering[1] = -1;
733 tmp.isDuplicable =
false;
734 theTable->push_back(tmp);
737 tmp.processTypeName =
"NuclearStopping";
740 tmp.ordering[0] = -1;
742 tmp.ordering[2] = -1;
743 tmp.isDuplicable =
false;
744 theTable->push_back(tmp);
747 tmp.processTypeName =
"ElectronGeneral";
750 tmp.ordering[0] = -1;
753 tmp.isDuplicable =
false;
754 theTable->push_back(tmp);
757 tmp.processTypeName =
"Msc";
760 tmp.ordering[0] = -1;
762 tmp.ordering[2] = -1;
763 tmp.isDuplicable =
false;
764 theTable->push_back(tmp);
767 tmp.processTypeName =
"Rayleigh";
770 tmp.ordering[0] = -1;
771 tmp.ordering[1] = -1;
772 tmp.ordering[2] = 1000;
773 tmp.isDuplicable =
false;
774 theTable->push_back(tmp);
777 tmp.processTypeName =
"PhotoElectric";
780 tmp.ordering[0] = -1;
781 tmp.ordering[1] = -1;
782 tmp.ordering[2] = 1000;
783 tmp.isDuplicable =
false;
784 theTable->push_back(tmp);
787 tmp.processTypeName =
"Compton";
790 tmp.ordering[0] = -1;
791 tmp.ordering[1] = -1;
792 tmp.ordering[2] = 1000;
793 tmp.isDuplicable =
false;
794 theTable->push_back(tmp);
797 tmp.processTypeName =
"Conv";
800 tmp.ordering[0] = -1;
801 tmp.ordering[1] = -1;
802 tmp.ordering[2] = 1000;
803 tmp.isDuplicable =
false;
804 theTable->push_back(tmp);
807 tmp.processTypeName =
"ConvToMuMu";
810 tmp.ordering[0] = -1;
811 tmp.ordering[1] = -1;
812 tmp.ordering[2] = 1000;
813 tmp.isDuplicable =
false;
814 theTable->push_back(tmp);
817 tmp.processTypeName =
"GammaGeneral";
820 tmp.ordering[0] = -1;
821 tmp.ordering[1] = -1;
822 tmp.ordering[2] = 1000;
823 tmp.isDuplicable =
false;
824 theTable->push_back(tmp);
827 tmp.processTypeName =
"PositronGeneral";
833 tmp.isDuplicable =
false;
834 theTable->push_back(tmp);
837 tmp.processTypeName =
"MuPairByMuon";
840 tmp.ordering[0] = -1;
841 tmp.ordering[1] = -1;
842 tmp.ordering[2] = 10;
843 tmp.isDuplicable =
false;
844 theTable->push_back(tmp);
847 tmp.processTypeName =
"Cerenkov";
850 tmp.ordering[0] = -1;
851 tmp.ordering[1] = -1;
852 tmp.ordering[2] = 1000;
853 tmp.isDuplicable =
false;
854 theTable->push_back(tmp);
857 tmp.processTypeName =
"Scintillation";
860 tmp.ordering[0] = 9999;
861 tmp.ordering[1] = -1;
862 tmp.ordering[2] = 9999;
863 tmp.isDuplicable =
false;
864 theTable->push_back(tmp);
867 tmp.processTypeName =
"SynchRad";
870 tmp.ordering[0] = -1;
871 tmp.ordering[1] = -1;
872 tmp.ordering[2] = 1000;
873 tmp.isDuplicable =
false;
874 theTable->push_back(tmp);
877 tmp.processTypeName =
"TransRad";
880 tmp.ordering[0] = -1;
881 tmp.ordering[1] = -1;
882 tmp.ordering[2] = 1000;
883 tmp.isDuplicable =
false;
884 theTable->push_back(tmp);
887 tmp.processTypeName =
"SurfaceRefl";
890 tmp.ordering[0] = -1;
891 tmp.ordering[1] = -1;
892 tmp.ordering[2] = 1000;
893 tmp.isDuplicable =
false;
894 theTable->push_back(tmp);
897 tmp.processTypeName =
"OpAbsorb";
900 tmp.ordering[0] = -1;
901 tmp.ordering[1] = -1;
902 tmp.ordering[2] = 1000;
903 tmp.isDuplicable =
false;
904 theTable->push_back(tmp);
907 tmp.processTypeName =
"OpBoundary";
910 tmp.ordering[0] = -1;
911 tmp.ordering[1] = -1;
912 tmp.ordering[2] = 1000;
913 tmp.isDuplicable =
false;
914 theTable->push_back(tmp);
917 tmp.processTypeName =
"OpRayleigh";
920 tmp.ordering[0] = -1;
921 tmp.ordering[1] = -1;
922 tmp.ordering[2] = 1000;
923 tmp.isDuplicable =
false;
924 theTable->push_back(tmp);
927 tmp.processTypeName =
"OpWLS";
929 tmp.processSubType =
fOpWLS;
930 tmp.ordering[0] = -1;
931 tmp.ordering[1] = -1;
932 tmp.ordering[2] = 1000;
933 tmp.isDuplicable =
false;
934 theTable->push_back(tmp);
937 tmp.processTypeName =
"OpMieHG";
940 tmp.ordering[0] = -1;
941 tmp.ordering[1] = -1;
942 tmp.ordering[2] = 1000;
943 tmp.isDuplicable =
false;
944 theTable->push_back(tmp);
947 tmp.processTypeName =
"OpWLS2";
950 tmp.ordering[0] = -1;
951 tmp.ordering[1] = -1;
952 tmp.ordering[2] = 1000;
953 tmp.isDuplicable =
false;
954 theTable->push_back(tmp);
957 tmp.processTypeName =
"DNAElastic";
960 tmp.ordering[0] = -1;
961 tmp.ordering[1] = -1;
962 tmp.ordering[2] = 1000;
963 tmp.isDuplicable =
false;
964 theTable->push_back(tmp);
967 tmp.processTypeName =
"DNAExcit";
970 tmp.ordering[0] = -1;
971 tmp.ordering[1] = -1;
972 tmp.ordering[2] = 1000;
973 tmp.isDuplicable =
false;
974 theTable->push_back(tmp);
977 tmp.processTypeName =
"DNAIonisation";
980 tmp.ordering[0] = -1;
981 tmp.ordering[1] = -1;
982 tmp.ordering[2] = 1000;
983 tmp.isDuplicable =
false;
984 theTable->push_back(tmp);
987 tmp.processTypeName =
"DNAVibExcit";
990 tmp.ordering[0] = -1;
991 tmp.ordering[1] = -1;
992 tmp.ordering[2] = 1000;
993 tmp.isDuplicable =
false;
994 theTable->push_back(tmp);
997 tmp.processTypeName =
"DNAAttachment";
1000 tmp.ordering[0] = -1;
1001 tmp.ordering[1] = -1;
1002 tmp.ordering[2] = 1000;
1003 tmp.isDuplicable =
false;
1004 theTable->push_back(tmp);
1007 tmp.processTypeName =
"DNAChargeDec";
1010 tmp.ordering[0] = -1;
1011 tmp.ordering[1] = -1;
1012 tmp.ordering[2] = 1000;
1013 tmp.isDuplicable =
false;
1014 theTable->push_back(tmp);
1017 tmp.processTypeName =
"DNAChargeInc";
1020 tmp.ordering[0] = -1;
1021 tmp.ordering[1] = -1;
1022 tmp.ordering[2] = 1000;
1023 tmp.isDuplicable =
false;
1024 theTable->push_back(tmp);
1027 tmp.processTypeName =
"DNAElecSolv";
1030 tmp.ordering[0] = -1;
1031 tmp.ordering[1] = -1;
1032 tmp.ordering[2] = 1000;
1033 tmp.isDuplicable =
false;
1034 theTable->push_back(tmp);
1037 tmp.processTypeName =
"DNAMolecDecay";
1038 tmp.processType =
fDecay;
1040 tmp.ordering[0] = 1000;
1041 tmp.ordering[1] = -1;
1042 tmp.ordering[2] = -1;
1043 tmp.isDuplicable =
false;
1044 theTable->push_back(tmp);
1047 tmp.processTypeName =
"ITTransport";
1050 tmp.ordering[0] = -1;
1051 tmp.ordering[1] = 0;
1052 tmp.ordering[2] = 0;
1053 tmp.isDuplicable =
false;
1054 theTable->push_back(tmp);
1057 tmp.processTypeName =
"DNABrownTrans";
1060 tmp.ordering[0] = -1;
1061 tmp.ordering[1] = 0;
1062 tmp.ordering[2] = 0;
1063 tmp.isDuplicable =
false;
1064 theTable->push_back(tmp);
1067 tmp.processTypeName =
"DNADoubleIoni";
1070 tmp.ordering[0] = -1;
1071 tmp.ordering[1] = -1;
1072 tmp.ordering[2] = 1000;
1073 tmp.isDuplicable =
false;
1074 theTable->push_back(tmp);
1077 tmp.processTypeName =
"DNADoubleCap";
1080 tmp.ordering[0] = -1;
1081 tmp.ordering[1] = -1;
1082 tmp.ordering[2] = 1000;
1083 tmp.isDuplicable =
false;
1084 theTable->push_back(tmp);
1087 tmp.processTypeName =
"DNAIoniTransfer";
1090 tmp.ordering[0] = -1;
1091 tmp.ordering[1] = -1;
1092 tmp.ordering[2] = 1000;
1093 tmp.isDuplicable =
false;
1094 theTable->push_back(tmp);
1097 tmp.processTypeName =
"DNAStaticMol";
1100 tmp.ordering[0] = -1;
1101 tmp.ordering[1] = -1;
1102 tmp.ordering[2] = 1000;
1103 tmp.isDuplicable =
false;
1104 theTable->push_back(tmp);
1107 tmp.processTypeName =
"DNAScavenger";
1110 tmp.ordering[0] = -1;
1111 tmp.ordering[1] = -1;
1112 tmp.ordering[2] = 1000;
1113 tmp.isDuplicable =
false;
1114 theTable->push_back(tmp);
1117 tmp.processTypeName =
"HadElastic";
1120 tmp.ordering[0] = -1;
1121 tmp.ordering[1] = -1;
1122 tmp.ordering[2] = 1000;
1123 tmp.isDuplicable =
false;
1124 theTable->push_back(tmp);
1127 tmp.processTypeName =
"NeutronGeneral";
1130 tmp.ordering[0] = -1;
1131 tmp.ordering[1] = -1;
1132 tmp.ordering[2] = 1000;
1133 tmp.isDuplicable =
false;
1134 theTable->push_back(tmp);
1137 tmp.processTypeName =
"HadInelastic";
1140 tmp.ordering[0] = -1;
1141 tmp.ordering[1] = -1;
1142 tmp.ordering[2] = 1000;
1143 tmp.isDuplicable =
false;
1144 theTable->push_back(tmp);
1147 tmp.processTypeName =
"HadCapture";
1150 tmp.ordering[0] = -1;
1151 tmp.ordering[1] = -1;
1152 tmp.ordering[2] = 1000;
1153 tmp.isDuplicable =
false;
1154 theTable->push_back(tmp);
1157 tmp.processTypeName =
"MuAtomCapture";
1160 tmp.ordering[0] = -1;
1161 tmp.ordering[1] = -1;
1162 tmp.ordering[2] = 1000;
1163 tmp.isDuplicable =
false;
1164 theTable->push_back(tmp);
1167 tmp.processTypeName =
"HadFission";
1170 tmp.ordering[0] = -1;
1171 tmp.ordering[1] = -1;
1172 tmp.ordering[2] = 1000;
1173 tmp.isDuplicable =
false;
1174 theTable->push_back(tmp);
1177 tmp.processTypeName =
"HadAtRest";
1180 tmp.ordering[0] = 1000;
1181 tmp.ordering[1] = -1;
1182 tmp.ordering[2] = -1;
1183 tmp.isDuplicable =
false;
1184 theTable->push_back(tmp);
1187 tmp.processTypeName =
"HadCEX";
1190 tmp.ordering[0] = -1;
1191 tmp.ordering[1] = -1;
1192 tmp.ordering[2] = 1000;
1193 tmp.isDuplicable =
false;
1194 theTable->push_back(tmp);
1197 tmp.processTypeName =
"Decay";
1198 tmp.processType =
fDecay;
1199 tmp.processSubType =
DECAY;
1200 tmp.ordering[0] = 1000;
1201 tmp.ordering[1] = -1;
1202 tmp.ordering[2] = 1000;
1203 tmp.isDuplicable =
false;
1204 theTable->push_back(tmp);
1207 tmp.processTypeName =
"DecayWSpin";
1208 tmp.processType =
fDecay;
1210 tmp.ordering[0] = 1000;
1211 tmp.ordering[1] = -1;
1212 tmp.ordering[2] = 1000;
1213 tmp.isDuplicable =
false;
1214 theTable->push_back(tmp);
1217 tmp.processTypeName =
"DecayPiSpin";
1218 tmp.processType =
fDecay;
1220 tmp.ordering[0] = 1000;
1221 tmp.ordering[1] = -1;
1222 tmp.ordering[2] = 1000;
1223 tmp.isDuplicable =
false;
1224 theTable->push_back(tmp);
1227 tmp.processTypeName =
"DecayRadio";
1228 tmp.processType =
fDecay;
1230 tmp.ordering[0] = 1000;
1231 tmp.ordering[1] = -1;
1232 tmp.ordering[2] = 1000;
1233 tmp.isDuplicable =
false;
1234 theTable->push_back(tmp);
1237 tmp.processTypeName =
"DecayUnKnown";
1238 tmp.processType =
fDecay;
1240 tmp.ordering[0] = -1;
1241 tmp.ordering[1] = -1;
1242 tmp.ordering[2] = 1000;
1243 tmp.isDuplicable =
false;
1244 theTable->push_back(tmp);
1247 tmp.processTypeName =
"DecayMuAtom";
1248 tmp.processType =
fDecay;
1250 tmp.ordering[0] = 1000;
1251 tmp.ordering[1] = -1;
1252 tmp.ordering[2] = 1000;
1253 tmp.isDuplicable =
false;
1254 theTable->push_back(tmp);
1257 tmp.processTypeName =
"DecayExt";
1258 tmp.processType =
fDecay;
1260 tmp.ordering[0] = 1000;
1261 tmp.ordering[1] = -1;
1262 tmp.ordering[2] = 1000;
1263 tmp.isDuplicable =
false;
1264 theTable->push_back(tmp);
1267 tmp.processTypeName =
"StepLimiter";
1270 tmp.ordering[0] = -1;
1271 tmp.ordering[1] = -1;
1272 tmp.ordering[2] = 1000;
1273 tmp.isDuplicable =
false;
1274 theTable->push_back(tmp);
1277 tmp.processTypeName =
"UsrSepcCuts";
1280 tmp.ordering[0] = -1;
1281 tmp.ordering[1] = -1;
1282 tmp.ordering[2] = 1000;
1283 tmp.isDuplicable =
false;
1284 theTable->push_back(tmp);
1287 tmp.processTypeName =
"NeutronKiller";
1290 tmp.ordering[0] = -1;
1291 tmp.ordering[1] = -1;
1292 tmp.ordering[2] = 1000;
1293 tmp.isDuplicable =
false;
1294 theTable->push_back(tmp);
1297 tmp.processTypeName =
"ParallelWorld";
1300 tmp.ordering[0] = 9900;
1301 tmp.ordering[1] = 1;
1302 tmp.ordering[2] = 9900;
1303 tmp.isDuplicable =
true;
1304 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