51G4PhysicsListHelper::G4PhysicsListHelper()
52 : useCoupledTransportation(false)
53 , theTransportationProcess(nullptr)
57 , ordParamFileName(
"")
61 aParticleIterator = theParticleTable->GetIterator();
63 ReadOrdingParameterTable();
68 DumpOrdingParameterTable();
74G4PhysicsListHelper::~G4PhysicsListHelper()
105 G4bool isElectron =
false;
106 G4bool isPositron =
false;
109 G4bool isGenericIon =
false;
111 G4bool isAnyChargedBaryon =
false;
115 aParticleIterator->
reset();
116 while((*aParticleIterator)())
124 for(std::size_t idx = 0; idx < list->
size(); ++idx)
134 else if(name ==
"e+")
136 else if(name ==
"gamma")
138 else if(name ==
"GenericIon")
140 else if(name ==
"proton")
147 isAnyChargedBaryon =
true;
157 G4bool isEmBasic = isElectron || isPositron || isGamma;
158 G4bool isMissingEmBasic = !isElectron || !isPositron || !isGamma;
159 if(isEmBasic && isMissingEmBasic)
163 missingName +=
"e- ";
165 missingName +=
"e+ ";
167 missingName +=
"gamma ";
172 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName
173 <<
" do not exist " <<
G4endl;
174 G4cout <<
" These particle are necessary for basic EM processes"
178 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
"Run0101",
185 if(!isProton && isAnyChargedBaryon)
192 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName
193 <<
" does not exist " <<
G4endl;
194 G4cout <<
" Proton is necessary for EM baryon processes" <<
G4endl;
197 missingName +=
" should be created ";
198 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
"Run0102",
205 if(!isGenericIon && isAnyIon)
207 G4String missingName =
"GenericIon ";
212 G4cout <<
"G4PhysicsListHelper::CheckParticleList: " << missingName
213 <<
" does not exist " <<
G4endl;
214 G4cout <<
" GenericIon should be created if any ion is necessary"
218 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
"Run0103",
231 G4int verboseLevelTransport = 0;
236 G4cout <<
"G4PhysicsListHelper::AddTransportation() " <<
G4endl;
243 if(nParaWorld > 0 || useCoupledTransportation ||
247 if(theLooperThresholds == 0)
248 coupledTransport->SetLowLooperThresholds();
249 if(theLooperThresholds == 2)
250 coupledTransport->SetHighLooperThresholds();
251 theTransportationProcess = coupledTransport;
255 G4cout <<
"--- G4CoupledTransportation is used " <<
G4endl;
261 if(theLooperThresholds == 0)
262 simpleTransport->SetLowLooperThresholds();
263 if(theLooperThresholds == 2)
264 simpleTransport->SetHighLooperThresholds();
265 theTransportationProcess = simpleTransport;
269 aParticleIterator->
reset();
270 while((*aParticleIterator)())
281 G4cout <<
"G4PhysicsListHelper::AddTransportation "
286 G4Exception(
"G4PhysicsListHelper::AddTransportation",
"Run0104",
295 pmanager->
AddProcess(theTransportationProcess);
304void G4PhysicsListHelper::ReadOrdingParameterTable()
306 G4bool readInFile =
false;
309 if(std::getenv(
"G4ORDPARAMTABLE"))
311 ordParamFileName = std::getenv(
"G4ORDPARAMTABLE");
315 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable :"
316 << ordParamFileName <<
" is assigned to Ordering Parameter Table "
321 fIn.open(ordParamFileName, std::ios::in);
328 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
329 <<
" Can not open file " << ordParamFileName <<
G4endl;
332 G4Exception(
"G4PhysicsListHelper::ReadOrdingParameterTable",
"Run0105",
333 JustWarning,
"Fail to open ordering parameter table ");
349 theTable =
new G4OrdParamTable();
359 fIn >> tmp.processTypeName >> tmp.processType >> tmp.processSubType >>
360 tmp.ordering[0] >> tmp.ordering[1] >> tmp.ordering[2] >> flag;
361 tmp.isDuplicable = (flag != 0);
362 theTable->push_back(tmp);
369 ReadInDefaultOrderingParameter();
377 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
378 <<
" Empty file " << ordParamFileName <<
G4endl;
381 G4Exception(
"G4PhysicsListHelper::ReadOrdingParameterTable",
"Run0106",
382 JustWarning,
"The ordering parameter table is empty ");
397 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable "
398 <<
" No ordering parameter table : " << ordParamFileName
404 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable : "
405 << ordParamFileName <<
G4endl;
412 <<
" Duplicable" <<
G4endl;
413 for(
G4int i = 0; i < sizeOfTable; ++i)
416 if((subType >= 0) && (subType != tmp->processSubType))
418 G4cout << std::setw(18) << tmp->processTypeName << std::setw(15)
419 << tmp->processType << std::setw(15) << tmp->processSubType
420 << std::setw(15) << tmp->ordering[0] << std::setw(15)
421 << tmp->ordering[1] << std::setw(15) << tmp->ordering[2];
422 if(tmp->isDuplicable)
445 G4cout <<
"G4PhysicsListHelper::GetOrderingParameter : "
446 <<
" No ordering parameter table : " << ordParamFileName
453 for(
G4int i = 0; i < sizeOfTable; ++i)
456 if(subType == tmp->processSubType)
458 value.processTypeName = tmp->processTypeName;
459 value.processType = tmp->processType;
460 value.processSubType = tmp->processSubType;
461 value.ordering[0] = tmp->ordering[0];
462 value.ordering[1] = tmp->ordering[1];
463 value.ordering[2] = tmp->ordering[2];
464 value.isDuplicable = tmp->isDuplicable;
479 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
480 <<
" No ordering parameter table : " << ordParamFileName
484 G4Exception(
"G4PhysicsListHelper::RegisterProcess",
"Run0107",
496 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName
497 <<
" Process Type = " << pType <<
" SubType = " << pSubType <<
" to "
503 if((pType < 1) || (pSubType < 1))
508 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
510 <<
" has illegal Process Type = " << pType
511 <<
" SubType = " << pSubType <<
G4endl;
514 G4Exception(
"G4PhysicsListHelper::RegisterProcess",
"Run0108",
521 G4bool duplicable =
false;
522 for(
G4int i = 0; i < sizeOfTable; ++i)
525 if((tmp->processType == pType) && (tmp->processSubType == pSubType))
527 ord[0] = tmp->ordering[0];
528 ord[1] = tmp->ordering[1];
529 ord[2] = tmp->ordering[2];
530 duplicable = tmp->isDuplicable;
540 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
543 <<
" is not registered in OrdingParameterTable " <<
G4endl;
546 G4Exception(
"G4PhysicsListHelper::RegisterProcess",
"Run0109",
559 G4cout <<
"G4PhysicsListHelper::RegisterProcess "
564 G4Exception(
"G4PhysicsListHelper::RegisterProcess ",
"Riun0110",
572 G4bool duplicated =
false;
574 for(std::size_t idx = 0; idx < pList->
size(); ++idx)
583 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
585 <<
" with type/subtype =" << pType <<
"/" << pSubType
591 G4Exception(
"G4PhysicsListHelper::RegisterProcess",
"Run0111",
605 for(
G4int idx = 0; idx < 3; ++idx)
613 else if(ord[idx] == 0)
617 else if(ord[idx] < 9999)
629 G4cout <<
"G4PhysicsListHelper::RegisterProcess :" << pName <<
" for "
632 <<
" is successfully registered with ordering parameters " << ord[0]
633 <<
":" << ord[1] <<
":" << ord[2] <<
G4endl;
639void G4PhysicsListHelper::ReadInDefaultOrderingParameter()
643 tmp.processTypeName =
"Transportation";
645 tmp.processSubType = 91;
646 tmp.ordering[0] = -1;
649 tmp.isDuplicable =
false;
650 theTable->push_back(tmp);
653 tmp.processTypeName =
"CoupleTrans";
655 tmp.processSubType = 92;
656 tmp.ordering[0] = -1;
659 tmp.isDuplicable =
false;
660 theTable->push_back(tmp);
663 tmp.processTypeName =
"CoulombScat";
665 tmp.processSubType = 1;
666 tmp.ordering[0] = -1;
667 tmp.ordering[1] = -1;
668 tmp.ordering[2] = 1000;
669 tmp.isDuplicable =
false;
670 theTable->push_back(tmp);
673 tmp.processTypeName =
"Ionisation";
675 tmp.processSubType = 2;
676 tmp.ordering[0] = -1;
679 tmp.isDuplicable =
false;
680 theTable->push_back(tmp);
683 tmp.processTypeName =
"Brems";
685 tmp.processSubType = 3;
686 tmp.ordering[0] = -1;
687 tmp.ordering[1] = -1;
689 tmp.isDuplicable =
false;
690 theTable->push_back(tmp);
693 tmp.processTypeName =
"PairProdCharged";
695 tmp.processSubType = 4;
696 tmp.ordering[0] = -1;
697 tmp.ordering[1] = -1;
699 tmp.isDuplicable =
false;
700 theTable->push_back(tmp);
703 tmp.processTypeName =
"Annih";
705 tmp.processSubType = 5;
707 tmp.ordering[1] = -1;
709 tmp.isDuplicable =
false;
710 theTable->push_back(tmp);
713 tmp.processTypeName =
"AnnihToMuMu";
715 tmp.processSubType = 6;
716 tmp.ordering[0] = -1;
717 tmp.ordering[1] = -1;
719 tmp.isDuplicable =
false;
720 theTable->push_back(tmp);
723 tmp.processTypeName =
"AnnihToHad";
725 tmp.processSubType = 7;
726 tmp.ordering[0] = -1;
727 tmp.ordering[1] = -1;
729 tmp.isDuplicable =
false;
730 theTable->push_back(tmp);
733 tmp.processTypeName =
"NuclearStopp";
735 tmp.processSubType = 8;
736 tmp.ordering[0] = -1;
738 tmp.ordering[2] = -1;
739 tmp.isDuplicable =
false;
740 theTable->push_back(tmp);
743 tmp.processTypeName =
"ElectronSuper";
745 tmp.processSubType = 9;
746 tmp.ordering[0] = -1;
749 tmp.isDuplicable =
false;
750 theTable->push_back(tmp);
753 tmp.processTypeName =
"Msc";
755 tmp.processSubType = 10;
756 tmp.ordering[0] = -1;
758 tmp.ordering[2] = -1;
759 tmp.isDuplicable =
false;
760 theTable->push_back(tmp);
763 tmp.processTypeName =
"Rayleigh";
765 tmp.processSubType = 11;
766 tmp.ordering[0] = -1;
767 tmp.ordering[1] = -1;
768 tmp.ordering[2] = 1000;
769 tmp.isDuplicable =
false;
770 theTable->push_back(tmp);
773 tmp.processTypeName =
"PhotoElectric";
775 tmp.processSubType = 12;
776 tmp.ordering[0] = -1;
777 tmp.ordering[1] = -1;
778 tmp.ordering[2] = 1000;
779 tmp.isDuplicable =
false;
780 theTable->push_back(tmp);
783 tmp.processTypeName =
"Compton";
785 tmp.processSubType = 13;
786 tmp.ordering[0] = -1;
787 tmp.ordering[1] = -1;
788 tmp.ordering[2] = 1000;
789 tmp.isDuplicable =
false;
790 theTable->push_back(tmp);
793 tmp.processTypeName =
"Conv";
795 tmp.processSubType = 14;
796 tmp.ordering[0] = -1;
797 tmp.ordering[1] = -1;
798 tmp.ordering[2] = 1000;
799 tmp.isDuplicable =
false;
800 theTable->push_back(tmp);
803 tmp.processTypeName =
"ConvToMuMu";
805 tmp.processSubType = 15;
806 tmp.ordering[0] = -1;
807 tmp.ordering[1] = -1;
808 tmp.ordering[2] = 1000;
809 tmp.isDuplicable =
false;
810 theTable->push_back(tmp);
813 tmp.processTypeName =
"GammaSuper";
815 tmp.processSubType = 16;
816 tmp.ordering[0] = -1;
817 tmp.ordering[1] = -1;
818 tmp.ordering[2] = 1000;
819 tmp.isDuplicable =
false;
820 theTable->push_back(tmp);
823 tmp.processTypeName =
"Cerenkov";
825 tmp.processSubType = 21;
826 tmp.ordering[0] = -1;
827 tmp.ordering[1] = -1;
828 tmp.ordering[2] = 1000;
829 tmp.isDuplicable =
false;
830 theTable->push_back(tmp);
833 tmp.processTypeName =
"Scintillation";
835 tmp.processSubType = 22;
836 tmp.ordering[0] = 9999;
837 tmp.ordering[1] = -1;
838 tmp.ordering[2] = 9999;
839 tmp.isDuplicable =
false;
840 theTable->push_back(tmp);
843 tmp.processTypeName =
"SynchRad";
845 tmp.processSubType = 23;
846 tmp.ordering[0] = -1;
847 tmp.ordering[1] = -1;
848 tmp.ordering[2] = 1000;
849 tmp.isDuplicable =
false;
850 theTable->push_back(tmp);
853 tmp.processTypeName =
"TransRad";
855 tmp.processSubType = 24;
856 tmp.ordering[0] = -1;
857 tmp.ordering[1] = -1;
858 tmp.ordering[2] = 1000;
859 tmp.isDuplicable =
false;
860 theTable->push_back(tmp);
863 tmp.processTypeName =
"OpAbsorb";
865 tmp.processSubType = 31;
866 tmp.ordering[0] = -1;
867 tmp.ordering[1] = -1;
868 tmp.ordering[2] = 1000;
869 tmp.isDuplicable =
false;
870 theTable->push_back(tmp);
873 tmp.processTypeName =
"OpBoundary";
875 tmp.processSubType = 32;
876 tmp.ordering[0] = -1;
877 tmp.ordering[1] = -1;
878 tmp.ordering[2] = 1000;
879 tmp.isDuplicable =
false;
880 theTable->push_back(tmp);
883 tmp.processTypeName =
"OpRayleigh";
885 tmp.processSubType = 33;
886 tmp.ordering[0] = -1;
887 tmp.ordering[1] = -1;
888 tmp.ordering[2] = 1000;
889 tmp.isDuplicable =
false;
890 theTable->push_back(tmp);
893 tmp.processTypeName =
"OpWLS";
895 tmp.processSubType = 34;
896 tmp.ordering[0] = -1;
897 tmp.ordering[1] = -1;
898 tmp.ordering[2] = 1000;
899 tmp.isDuplicable =
false;
900 theTable->push_back(tmp);
903 tmp.processTypeName =
"OpMieHG";
905 tmp.processSubType = 35;
906 tmp.ordering[0] = -1;
907 tmp.ordering[1] = -1;
908 tmp.ordering[2] = 1000;
909 tmp.isDuplicable =
false;
910 theTable->push_back(tmp);
913 tmp.processTypeName =
"OpWLS2";
915 tmp.processSubType = 36;
916 tmp.ordering[0] = -1;
917 tmp.ordering[1] = -1;
918 tmp.ordering[2] = 1000;
919 tmp.isDuplicable =
false;
920 theTable->push_back(tmp);
923 tmp.processTypeName =
"DNAElastic";
925 tmp.processSubType = 51;
926 tmp.ordering[0] = -1;
927 tmp.ordering[1] = -1;
928 tmp.ordering[2] = 1000;
929 tmp.isDuplicable =
false;
930 theTable->push_back(tmp);
933 tmp.processTypeName =
"DNAExcit";
935 tmp.processSubType = 52;
936 tmp.ordering[0] = -1;
937 tmp.ordering[1] = -1;
938 tmp.ordering[2] = 1000;
939 tmp.isDuplicable =
false;
940 theTable->push_back(tmp);
943 tmp.processTypeName =
"DNAIonisation";
945 tmp.processSubType = 53;
946 tmp.ordering[0] = -1;
947 tmp.ordering[1] = -1;
948 tmp.ordering[2] = 1000;
949 tmp.isDuplicable =
false;
950 theTable->push_back(tmp);
953 tmp.processTypeName =
"DNAVibExcit";
955 tmp.processSubType = 54;
956 tmp.ordering[0] = -1;
957 tmp.ordering[1] = -1;
958 tmp.ordering[2] = 1000;
959 tmp.isDuplicable =
false;
960 theTable->push_back(tmp);
963 tmp.processTypeName =
"DNAAttachment";
965 tmp.processSubType = 55;
966 tmp.ordering[0] = -1;
967 tmp.ordering[1] = -1;
968 tmp.ordering[2] = 1000;
969 tmp.isDuplicable =
false;
970 theTable->push_back(tmp);
973 tmp.processTypeName =
"DNAChargeDec";
975 tmp.processSubType = 56;
976 tmp.ordering[0] = -1;
977 tmp.ordering[1] = -1;
978 tmp.ordering[2] = 1000;
979 tmp.isDuplicable =
false;
980 theTable->push_back(tmp);
983 tmp.processTypeName =
"DNAChargeInc";
985 tmp.processSubType = 57;
986 tmp.ordering[0] = -1;
987 tmp.ordering[1] = -1;
988 tmp.ordering[2] = 1000;
989 tmp.isDuplicable =
false;
990 theTable->push_back(tmp);
993 tmp.processTypeName =
"DNAElectronSolvatation";
995 tmp.processSubType = 58;
996 tmp.ordering[0] = -1;
997 tmp.ordering[1] = -1;
998 tmp.ordering[2] = 1000;
999 tmp.isDuplicable =
false;
1000 theTable->push_back(tmp);
1003 tmp.processTypeName =
"DNAMolecularDecay";
1004 tmp.processType = 6;
1005 tmp.processSubType = 59;
1006 tmp.ordering[0] = 1000;
1007 tmp.ordering[1] = -1;
1008 tmp.ordering[2] = -1;
1009 tmp.isDuplicable =
false;
1010 theTable->push_back(tmp);
1013 tmp.processTypeName =
"ITTransportation";
1014 tmp.processType = 1;
1015 tmp.processSubType = 60;
1016 tmp.ordering[0] = -1;
1017 tmp.ordering[1] = 0;
1018 tmp.ordering[2] = 0;
1019 tmp.isDuplicable =
false;
1020 theTable->push_back(tmp);
1023 tmp.processTypeName =
"DNABrownianTransportation";
1024 tmp.processType = 1;
1025 tmp.processSubType = 61;
1026 tmp.ordering[0] = -1;
1027 tmp.ordering[1] = 0;
1028 tmp.ordering[2] = 0;
1029 tmp.isDuplicable =
false;
1030 theTable->push_back(tmp);
1033 tmp.processTypeName =
"DNADoubleIonisation";
1034 tmp.processType = 2;
1035 tmp.processSubType = 62;
1036 tmp.ordering[0] = -1;
1037 tmp.ordering[1] = -1;
1038 tmp.ordering[2] = 1000;
1039 tmp.isDuplicable =
false;
1040 theTable->push_back(tmp);
1043 tmp.processTypeName =
"DNADoubleCapture";
1044 tmp.processType = 2;
1045 tmp.processSubType = 63;
1046 tmp.ordering[0] = -1;
1047 tmp.ordering[1] = -1;
1048 tmp.ordering[2] = 1000;
1049 tmp.isDuplicable =
false;
1050 theTable->push_back(tmp);
1053 tmp.processTypeName =
"DNAIonisingTransfer";
1054 tmp.processType = 2;
1055 tmp.processSubType = 64;
1056 tmp.ordering[0] = -1;
1057 tmp.ordering[1] = -1;
1058 tmp.ordering[2] = 1000;
1059 tmp.isDuplicable =
false;
1060 theTable->push_back(tmp);
1063 tmp.processTypeName =
"HadElastic";
1064 tmp.processType = 4;
1065 tmp.processSubType = 111;
1066 tmp.ordering[0] = -1;
1067 tmp.ordering[1] = -1;
1068 tmp.ordering[2] = 1000;
1069 tmp.isDuplicable =
false;
1070 theTable->push_back(tmp);
1073 tmp.processTypeName =
"HadInElastic";
1074 tmp.processType = 4;
1075 tmp.processSubType = 121;
1076 tmp.ordering[0] = -1;
1077 tmp.ordering[1] = -1;
1078 tmp.ordering[2] = 1000;
1079 tmp.isDuplicable =
false;
1080 theTable->push_back(tmp);
1083 tmp.processTypeName =
"HadCapture";
1084 tmp.processType = 4;
1085 tmp.processSubType = 131;
1086 tmp.ordering[0] = -1;
1087 tmp.ordering[1] = -1;
1088 tmp.ordering[2] = 1000;
1089 tmp.isDuplicable =
false;
1090 theTable->push_back(tmp);
1093 tmp.processTypeName =
"MuAtomicCapture";
1094 tmp.processType = 4;
1095 tmp.processSubType = 132;
1096 tmp.ordering[0] = -1;
1097 tmp.ordering[1] = -1;
1098 tmp.ordering[2] = 1000;
1099 tmp.isDuplicable =
false;
1100 theTable->push_back(tmp);
1103 tmp.processTypeName =
"HadFission";
1104 tmp.processType = 4;
1105 tmp.processSubType = 141;
1106 tmp.ordering[0] = -1;
1107 tmp.ordering[1] = -1;
1108 tmp.ordering[2] = 1000;
1109 tmp.isDuplicable =
false;
1110 theTable->push_back(tmp);
1113 tmp.processTypeName =
"HadAtRest";
1114 tmp.processType = 4;
1115 tmp.processSubType = 151;
1116 tmp.ordering[0] = 1000;
1117 tmp.ordering[1] = -1;
1118 tmp.ordering[2] = -1;
1119 tmp.isDuplicable =
false;
1120 theTable->push_back(tmp);
1123 tmp.processTypeName =
"HadCEX";
1124 tmp.processType = 4;
1125 tmp.processSubType = 161;
1126 tmp.ordering[0] = -1;
1127 tmp.ordering[1] = -1;
1128 tmp.ordering[2] = 1000;
1129 tmp.isDuplicable =
false;
1130 theTable->push_back(tmp);
1133 tmp.processTypeName =
"Decay";
1134 tmp.processType = 6;
1135 tmp.processSubType = 201;
1136 tmp.ordering[0] = 1000;
1137 tmp.ordering[1] = -1;
1138 tmp.ordering[2] = 1000;
1139 tmp.isDuplicable =
false;
1140 theTable->push_back(tmp);
1143 tmp.processTypeName =
"DecayWSpin";
1144 tmp.processType = 6;
1145 tmp.processSubType = 202;
1146 tmp.ordering[0] = 1000;
1147 tmp.ordering[1] = -1;
1148 tmp.ordering[2] = 1000;
1149 tmp.isDuplicable =
false;
1150 theTable->push_back(tmp);
1153 tmp.processTypeName =
"DecayPiSpin";
1154 tmp.processType = 6;
1155 tmp.processSubType = 203;
1156 tmp.ordering[0] = 1000;
1157 tmp.ordering[1] = -1;
1158 tmp.ordering[2] = 1000;
1159 tmp.isDuplicable =
false;
1160 theTable->push_back(tmp);
1163 tmp.processTypeName =
"DecayRadio";
1164 tmp.processType = 6;
1165 tmp.processSubType = 210;
1166 tmp.ordering[0] = 1000;
1167 tmp.ordering[1] = -1;
1168 tmp.ordering[2] = 1000;
1169 tmp.isDuplicable =
false;
1170 theTable->push_back(tmp);
1173 tmp.processTypeName =
"DecayUnKnown";
1174 tmp.processType = 6;
1175 tmp.processSubType = 211;
1176 tmp.ordering[0] = -1;
1177 tmp.ordering[1] = -1;
1178 tmp.ordering[2] = 1000;
1179 tmp.isDuplicable =
false;
1180 theTable->push_back(tmp);
1183 tmp.processTypeName =
"DecayMuAtom";
1184 tmp.processType = 6;
1185 tmp.processSubType = 221;
1186 tmp.ordering[0] = 1000;
1187 tmp.ordering[1] = -1;
1188 tmp.ordering[2] = 1000;
1189 tmp.isDuplicable =
false;
1190 theTable->push_back(tmp);
1193 tmp.processTypeName =
"DecayExt";
1194 tmp.processType = 6;
1195 tmp.processSubType = 231;
1196 tmp.ordering[0] = 1000;
1197 tmp.ordering[1] = -1;
1198 tmp.ordering[2] = 1000;
1199 tmp.isDuplicable =
false;
1200 theTable->push_back(tmp);
1203 tmp.processTypeName =
"StepLimiter";
1204 tmp.processType = 7;
1205 tmp.processSubType = 401;
1206 tmp.ordering[0] = -1;
1207 tmp.ordering[1] = -1;
1208 tmp.ordering[2] = 1000;
1209 tmp.isDuplicable =
false;
1210 theTable->push_back(tmp);
1213 tmp.processTypeName =
"UsrSepcCuts";
1214 tmp.processType = 7;
1215 tmp.processSubType = 402;
1216 tmp.ordering[0] = -1;
1217 tmp.ordering[1] = -1;
1218 tmp.ordering[2] = 1000;
1219 tmp.isDuplicable =
false;
1220 theTable->push_back(tmp);
1223 tmp.processTypeName =
"NeutronKiller";
1224 tmp.processType = 7;
1225 tmp.processSubType = 403;
1226 tmp.ordering[0] = -1;
1227 tmp.ordering[1] = -1;
1228 tmp.ordering[2] = 1000;
1229 tmp.isDuplicable =
false;
1230 theTable->push_back(tmp);
1233 tmp.processTypeName =
"ParallelWorld";
1234 tmp.processType = 10;
1235 tmp.processSubType = 491;
1236 tmp.ordering[0] = 9900;
1237 tmp.ordering[1] = 1;
1238 tmp.ordering[2] = 9900;
1239 tmp.isDuplicable =
true;
1240 theTable->push_back(tmp);
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4GLOB_DLL std::ostream G4cout
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleType() const
G4double GetPDGCharge() const
const G4String & GetParticleName() const
void reset(G4bool ifSkipIon=true)
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