52 G4PhysicsListHelper::G4PhysicsListHelper()
53 : useCoupledTransportation(false),
54 theTransportationProcess(0),
62 aParticleIterator = theParticleTable->GetIterator();
64 ReadOrdingParameterTable();
68 DumpOrdingParameterTable();
74 G4PhysicsListHelper::~G4PhysicsListHelper()
82 if (theTransportationProcess!=0) {
83 delete theTransportationProcess;
84 theTransportationProcess=0;
102 bool isPositron =
false;
103 bool isGamma =
false;
104 bool isProton =
false;
105 bool isGenericIon =
false;
106 bool isAnyIon =
false;
107 bool isAnyChargedBaryon =
false;
108 bool isEmProc =
false;
111 aParticleIterator->
reset();
112 while( (*aParticleIterator)() ){
118 for (
int idx=0; idx<list->
size(); idx++){
124 if ( name ==
"e-") isElectron =
true;
125 else if ( name ==
"e+") isPositron =
true;
126 else if ( name ==
"gamma") isGamma =
true;
127 else if ( name ==
"GenericIon") isGenericIon =
true;
128 else if ( name ==
"proton") isProton =
true;
131 if ( particle->
GetPDGCharge() != 0.0 ) isAnyChargedBaryon =
true;
135 if (!isEmProc)
return;
140 bool isEmBasic = isElectron || isPositron || isGamma;
141 bool 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: "
151 << missingName <<
" do not exist " <<
G4endl;
152 G4cout <<
" These particle are necessary for basic EM processes"
156 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
158 "Missing EM basic particle");
164 if (!isProton && isAnyChargedBaryon) {
168 if (verboseLevel >0){
169 G4cout <<
"G4PhysicsListHelper::CheckParticleList: "
170 << missingName <<
" does not exist "<<
G4endl;
171 G4cout <<
" Proton is necessary for EM baryon processes" <<
G4endl;
174 missingName +=
" should be created ";
175 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
183 if (!isGenericIon && isAnyIon) {
187 if (verboseLevel >0){
188 G4cout <<
"G4PhysicsListHelper::CheckParticleList: "
189 << missingName <<
" does not exist "<<
G4endl;
190 G4cout <<
" GenericIon should be created if any ion is necessary" <<
G4endl;
193 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
195 "Missing GenericIon");
209 G4int verboseLevelTransport = 0;
212 if (verboseLevel >2){
213 G4cout <<
"G4PhysicsListHelper::AddTransportation() "<<
G4endl;
221 useCoupledTransportation ||
224 if (verboseLevel >0) {
225 G4cout <<
" G4PhysicsListHelper::AddTransportation()"
226 <<
"--- G4CoupledTransportation is used "
236 aParticleIterator->
reset();
237 while( (*aParticleIterator)() ){
241 if ( pmanager == 0) {
245 G4cout <<
"G4PhysicsListHelper::AddTransportation "
246 <<
" : No Process Manager for "
250 G4Exception(
"G4PhysicsListHelper::AddTransportation",
252 "No process manager");
259 pmanager ->
AddProcess(theTransportationProcess);
268 void G4PhysicsListHelper::ReadOrdingParameterTable()
270 G4bool readInFile =
false;
273 if( getenv(
"G4ORDPARAMTABLE") ){
274 ordParamFileName = getenv(
"G4ORDPARAMTABLE");
276 if (verboseLevel >1){
277 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable :"
278 << ordParamFileName <<
" is assigned to Ordering Parameter Table "
283 fIn.open(ordParamFileName, std::ios::in);
287 if (verboseLevel >0) {
288 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
289 <<
" Can not open file " << ordParamFileName <<
G4endl;
292 G4Exception(
"G4PhysicsListHelper::ReadOrdingParameterTable",
294 "Fail to open ordering paramter table ");
308 theTable =
new G4OrdParamTable();
316 fIn >> tmp.processTypeName >> tmp.processType >> tmp.processSubType
317 >> tmp.ordering[0] >> tmp.ordering[1] >> tmp.ordering[2] >> flag;
318 tmp.isDuplicable = (flag!=0);
319 theTable->push_back(tmp);
324 ReadInDefaultOrderingParameter();
329 if (verboseLevel >0) {
330 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
331 <<
" Empty file " << ordParamFileName <<
G4endl;
334 G4Exception(
"G4PhysicsListHelper::ReadOrdingParameterTable",
336 "The ordering parameter table is empty ");
349 if (verboseLevel >0) {
350 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable "
351 <<
" No ordering parameter table : " << ordParamFileName
357 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable : "
358 << ordParamFileName <<
G4endl;
360 <<
" ProcessType" <<
" SubType"
361 <<
" AtRest" <<
" AlongStep" <<
" PostStep"
362 <<
" Duplicable" <<
G4endl;
363 for (
int i=0; i<sizeOfTable ; i++){
365 if ((subType>=0) && (subType!=tmp->processSubType))
continue;
366 G4cout << std::setw(18) << tmp->processTypeName
367 << std::setw(15) << tmp->processType
368 << std::setw(15) << tmp->processSubType
369 << std::setw(15) << tmp->ordering[0]
370 << std::setw(15) << tmp->ordering[1]
371 << std::setw(15) << tmp->ordering[2];
372 if (tmp->isDuplicable) {
388 if (verboseLevel >0) {
389 G4cout <<
"G4PhysicsListHelper::GetOrderingParameter : "
390 <<
" No ordering parameter table : " << ordParamFileName
397 for (
int i=0; i<sizeOfTable ; i++){
399 if (subType == tmp->processSubType){
400 value.processTypeName = tmp->processTypeName;
401 value.processType = tmp->processType;
402 value.processSubType = tmp->processSubType;
403 value.ordering[0] = tmp->ordering[0];
404 value.ordering[1] = tmp->ordering[1];
405 value.ordering[2] = tmp->ordering[2];
406 value.isDuplicable = tmp->isDuplicable;
418 if (verboseLevel >0) {
419 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
420 <<
" No ordering parameter table : " << ordParamFileName
424 G4Exception(
"G4PhysicsListHelper::RegisterPorcess",
426 "No Ordering Parameter Table");
435 if (verboseLevel >2) {
436 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
437 << pName <<
" Process Type = " << pType
438 <<
" SubType = "<< pSubType
445 if ((pType <1)||(pSubType<1)) {
447 if (verboseLevel >0) {
448 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
450 <<
" has illegal Process Type = " << pType
451 <<
" SubType = "<< pSubType <<
G4endl;
454 G4Exception(
"G4PhysicsListHelper::RegisterPorcess",
456 "No Matching process Type/SubType");
462 G4bool duplicable =
false;
463 for (
int i=0; i<sizeOfTable ; i++){
465 if ((tmp->processType==pType)&&(tmp->processSubType==pSubType)){
466 ord[0] = tmp->ordering[0];
467 ord[1] = tmp->ordering[1];
468 ord[2] = tmp->ordering[2];
469 duplicable = tmp->isDuplicable;
476 if (verboseLevel >0) {
477 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
479 <<
" with type/subtype ="
480 << pType <<
"/" << pSubType
481 <<
" is not reigstered in OrdingParameterTable "
485 G4Exception(
"G4PhysicsListHelper::RegisterPorcess",
487 "No Matching process Type/SubType");
493 if ( pManager == 0) {
497 G4cout <<
"G4PhysicsListHelper::RegisterProcess "
498 <<
" : No Process Manager for "
502 G4Exception(
"G4PhysicsListHelper::RegisterProcess ",
504 "No process manager");
510 G4bool duplicated =
false;
512 for (
G4int idx=0; idx<pList->
size(); idx++) {
518 if (verboseLevel >0) {
519 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
521 <<
" with type/subtype ="
522 << pType <<
"/" << pSubType
523 <<
" is has same subType as "
530 G4Exception(
"G4PhysicsListHelper::RegisterPorcess",
532 "Duplication of processes");
535 if (duplicated)
return false;
540 if (code <0)
return false;
543 for(
G4int idx=0; idx<3; idx++){
547 }
else if (ord[idx]==0) {
549 }
else if (ord[idx]<9999) {
556 if (verboseLevel >1) {
557 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
559 <<
" with type/subtype ="
560 << pType <<
"/" << pSubType
561 <<
" is sucessfully registered with ordering parameters "
562 << ord[0] <<
":" << ord[1] <<
":" << ord[2]
569 void G4PhysicsListHelper::ReadInDefaultOrderingParameter()
574 tmp.processTypeName =
"Transportation";
576 tmp.processSubType = 91;
577 tmp.ordering[0] = -1;
580 tmp.isDuplicable =
false;
581 theTable->push_back(tmp);
584 tmp.processTypeName =
"CoupleTrans";
586 tmp.processSubType = 92;
587 tmp.ordering[0] = -1;
590 tmp.isDuplicable =
false;
591 theTable->push_back(tmp);
594 tmp.processTypeName =
"CoulombScat";
596 tmp.processSubType = 1;
597 tmp.ordering[0] = -1;
598 tmp.ordering[1] = -1;
599 tmp.ordering[2] = 1000;
600 tmp.isDuplicable =
false;
601 theTable->push_back(tmp);
604 tmp.processTypeName =
"Ionisation";
606 tmp.processSubType = 2;
607 tmp.ordering[0] = -1;
610 tmp.isDuplicable =
false;
611 theTable->push_back(tmp);
614 tmp.processTypeName =
"Brems";
616 tmp.processSubType = 3;
617 tmp.ordering[0] = -1;
618 tmp.ordering[1] = -1;
620 tmp.isDuplicable =
false;
621 theTable->push_back(tmp);
624 tmp.processTypeName =
"PairProdCharged";
626 tmp.processSubType = 4;
627 tmp.ordering[0] = -1;
628 tmp.ordering[1] = -1;
630 tmp.isDuplicable =
false;
631 theTable->push_back(tmp);
634 tmp.processTypeName =
"Annih";
636 tmp.processSubType = 5;
638 tmp.ordering[1] = -1;
640 tmp.isDuplicable =
false;
641 theTable->push_back(tmp);
644 tmp.processTypeName =
"AnnihToMuMu";
646 tmp.processSubType = 6;
647 tmp.ordering[0] = -1;
648 tmp.ordering[1] = -1;
650 tmp.isDuplicable =
false;
651 theTable->push_back(tmp);
654 tmp.processTypeName =
"AnnihToHad";
656 tmp.processSubType = 7;
657 tmp.ordering[0] = -1;
658 tmp.ordering[1] = -1;
660 tmp.isDuplicable =
false;
661 theTable->push_back(tmp);
664 tmp.processTypeName =
"NuclearStopp";
666 tmp.processSubType = 8;
667 tmp.ordering[0] = -1;
669 tmp.ordering[2] = -1;
670 tmp.isDuplicable =
false;
671 theTable->push_back(tmp);
674 tmp.processTypeName =
"Msc";
676 tmp.processSubType = 10;
677 tmp.ordering[0] = -1;
679 tmp.ordering[2] = -1;
680 tmp.isDuplicable =
false;
681 theTable->push_back(tmp);
684 tmp.processTypeName =
"Rayleigh";
686 tmp.processSubType = 11;
687 tmp.ordering[0] = -1;
688 tmp.ordering[1] = -1;
689 tmp.ordering[2] = 1000;
690 tmp.isDuplicable =
false;
691 theTable->push_back(tmp);
694 tmp.processTypeName =
"PhotoElectric";
696 tmp.processSubType = 12;
697 tmp.ordering[0] = -1;
698 tmp.ordering[1] = -1;
699 tmp.ordering[2] = 1000;
700 tmp.isDuplicable =
false;
701 theTable->push_back(tmp);
704 tmp.processTypeName =
"Compton";
706 tmp.processSubType = 13;
707 tmp.ordering[0] = -1;
708 tmp.ordering[1] = -1;
709 tmp.ordering[2] = 1000;
710 tmp.isDuplicable =
false;
711 theTable->push_back(tmp);
714 tmp.processTypeName =
"Conv";
716 tmp.processSubType = 14;
717 tmp.ordering[0] = -1;
718 tmp.ordering[1] = -1;
719 tmp.ordering[2] = 1000;
720 tmp.isDuplicable =
false;
721 theTable->push_back(tmp);
724 tmp.processTypeName =
"ConvToMuMu";
726 tmp.processSubType = 15;
727 tmp.ordering[0] = -1;
728 tmp.ordering[1] = -1;
729 tmp.ordering[2] = 1000;
730 tmp.isDuplicable =
false;
731 theTable->push_back(tmp);
734 tmp.processTypeName =
"Cerenkov";
736 tmp.processSubType = 21;
737 tmp.ordering[0] = -1;
738 tmp.ordering[1] = -1;
739 tmp.ordering[2] = 1000;
740 tmp.isDuplicable =
false;
741 theTable->push_back(tmp);
744 tmp.processTypeName =
"Scintillation";
746 tmp.processSubType = 22;
747 tmp.ordering[0] = 9999;
748 tmp.ordering[1] = -1;
749 tmp.ordering[2] = 9999;
750 tmp.isDuplicable =
false;
751 theTable->push_back(tmp);
754 tmp.processTypeName =
"SynchRad";
756 tmp.processSubType = 23;
757 tmp.ordering[0] = -1;
758 tmp.ordering[1] = -1;
759 tmp.ordering[2] = 1000;
760 tmp.isDuplicable =
false;
761 theTable->push_back(tmp);
764 tmp.processTypeName =
"TransRad";
766 tmp.processSubType = 24;
767 tmp.ordering[0] = -1;
768 tmp.ordering[1] = -1;
769 tmp.ordering[2] = 1000;
770 tmp.isDuplicable =
false;
771 theTable->push_back(tmp);
774 tmp.processTypeName =
"OpAbsorb";
776 tmp.processSubType = 31;
777 tmp.ordering[0] = -1;
778 tmp.ordering[1] = -1;
779 tmp.ordering[2] = 1000;
780 tmp.isDuplicable =
false;
781 theTable->push_back(tmp);
784 tmp.processTypeName =
"OpBoundary";
786 tmp.processSubType = 32;
787 tmp.ordering[0] = -1;
788 tmp.ordering[1] = -1;
789 tmp.ordering[2] = 1000;
790 tmp.isDuplicable =
false;
791 theTable->push_back(tmp);
794 tmp.processTypeName =
"OpRayleigh";
796 tmp.processSubType = 33;
797 tmp.ordering[0] = -1;
798 tmp.ordering[1] = -1;
799 tmp.ordering[2] = 1000;
800 tmp.isDuplicable =
false;
801 theTable->push_back(tmp);
804 tmp.processTypeName =
"OpWLS";
806 tmp.processSubType = 34;
807 tmp.ordering[0] = -1;
808 tmp.ordering[1] = -1;
809 tmp.ordering[2] = 1000;
810 tmp.isDuplicable =
false;
811 theTable->push_back(tmp);
814 tmp.processTypeName =
"OpMieHG";
816 tmp.processSubType = 35;
817 tmp.ordering[0] = -1;
818 tmp.ordering[1] = -1;
819 tmp.ordering[2] = 1000;
820 tmp.isDuplicable =
false;
821 theTable->push_back(tmp);
824 tmp.processTypeName =
"DNAElastic";
826 tmp.processSubType = 51;
827 tmp.ordering[0] = -1;
828 tmp.ordering[1] = -1;
829 tmp.ordering[2] = 1000;
830 tmp.isDuplicable =
false;
831 theTable->push_back(tmp);
834 tmp.processTypeName =
"DNAExcit";
836 tmp.processSubType = 52;
837 tmp.ordering[0] = -1;
838 tmp.ordering[1] = -1;
839 tmp.ordering[2] = 1000;
840 tmp.isDuplicable =
false;
841 theTable->push_back(tmp);
844 tmp.processTypeName =
"DNAIonisation";
846 tmp.processSubType = 53;
847 tmp.ordering[0] = -1;
848 tmp.ordering[1] = -1;
849 tmp.ordering[2] = 1000;
850 tmp.isDuplicable =
false;
851 theTable->push_back(tmp);
854 tmp.processTypeName =
"DNAVibExcit";
856 tmp.processSubType = 54;
857 tmp.ordering[0] = -1;
858 tmp.ordering[1] = -1;
859 tmp.ordering[2] = 1000;
860 tmp.isDuplicable =
false;
861 theTable->push_back(tmp);
864 tmp.processTypeName =
"DNAAttachment";
866 tmp.processSubType = 55;
867 tmp.ordering[0] = -1;
868 tmp.ordering[1] = -1;
869 tmp.ordering[2] = 1000;
870 tmp.isDuplicable =
false;
871 theTable->push_back(tmp);
874 tmp.processTypeName =
"DNAChargeDec";
876 tmp.processSubType = 56;
877 tmp.ordering[0] = -1;
878 tmp.ordering[1] = -1;
879 tmp.ordering[2] = 1000;
880 tmp.isDuplicable =
false;
881 theTable->push_back(tmp);
884 tmp.processTypeName =
"DNAChargeInc";
886 tmp.processSubType = 57;
887 tmp.ordering[0] = -1;
888 tmp.ordering[1] = -1;
889 tmp.ordering[2] = 1000;
890 tmp.isDuplicable =
false;
891 theTable->push_back(tmp);
894 tmp.processTypeName =
"DNAElectronSolvatation";
896 tmp.processSubType = 58;
897 tmp.ordering[0] = -1;
898 tmp.ordering[1] = -1;
899 tmp.ordering[2] = 1000;
900 tmp.isDuplicable =
false;
901 theTable->push_back(tmp);
904 tmp.processTypeName =
"DNAMolecularDecay";
906 tmp.processSubType = 59;
907 tmp.ordering[0] = 1000;
908 tmp.ordering[1] = -1;
909 tmp.ordering[2] = -1;
910 tmp.isDuplicable =
false;
911 theTable->push_back(tmp);
914 tmp.processTypeName =
"ITTransportation";
916 tmp.processSubType = 60;
917 tmp.ordering[0] = -1;
920 tmp.isDuplicable =
false;
921 theTable->push_back(tmp);
924 tmp.processTypeName =
"DNABrownianTransportation";
926 tmp.processSubType = 61;
927 tmp.ordering[0] = -1;
930 tmp.isDuplicable =
false;
931 theTable->push_back(tmp);
934 tmp.processTypeName =
"DNADoubleIonisation";
936 tmp.processSubType = 62;
937 tmp.ordering[0] = -1;
938 tmp.ordering[1] = -1;
939 tmp.ordering[2] = 1000;
940 tmp.isDuplicable =
false;
941 theTable->push_back(tmp);
944 tmp.processTypeName =
"DNADoubleCapture";
946 tmp.processSubType = 63;
947 tmp.ordering[0] = -1;
948 tmp.ordering[1] = -1;
949 tmp.ordering[2] = 1000;
950 tmp.isDuplicable =
false;
951 theTable->push_back(tmp);
954 tmp.processTypeName =
"DNAIonisingTransfer";
956 tmp.processSubType = 64;
957 tmp.ordering[0] = -1;
958 tmp.ordering[1] = -1;
959 tmp.ordering[2] = 1000;
960 tmp.isDuplicable =
false;
961 theTable->push_back(tmp);
964 tmp.processTypeName =
"HadElastic";
966 tmp.processSubType = 111;
967 tmp.ordering[0] = -1;
968 tmp.ordering[1] = -1;
969 tmp.ordering[2] = 1000;
970 tmp.isDuplicable =
false;
971 theTable->push_back(tmp);
974 tmp.processTypeName =
"HadInElastic";
976 tmp.processSubType = 121;
977 tmp.ordering[0] = -1;
978 tmp.ordering[1] = -1;
979 tmp.ordering[2] = 1000;
980 tmp.isDuplicable =
false;
981 theTable->push_back(tmp);
984 tmp.processTypeName =
"HadCapture";
986 tmp.processSubType = 131;
987 tmp.ordering[0] = -1;
988 tmp.ordering[1] = -1;
989 tmp.ordering[2] = 1000;
990 tmp.isDuplicable =
false;
991 theTable->push_back(tmp);
994 tmp.processTypeName =
"HadFission";
996 tmp.processSubType = 141;
997 tmp.ordering[0] = -1;
998 tmp.ordering[1] = -1;
999 tmp.ordering[2] = 1000;
1000 tmp.isDuplicable =
false;
1001 theTable->push_back(tmp);
1004 tmp.processTypeName =
"HadAtRest";
1005 tmp.processType = 4;
1006 tmp.processSubType = 151;
1007 tmp.ordering[0] = 1000;
1008 tmp.ordering[1] = -1;
1009 tmp.ordering[2] = -1;
1010 tmp.isDuplicable =
false;
1011 theTable->push_back(tmp);
1014 tmp.processTypeName =
"HadCEX";
1015 tmp.processType = 4;
1016 tmp.processSubType = 161;
1017 tmp.ordering[0] = -1;
1018 tmp.ordering[1] = -1;
1019 tmp.ordering[2] = 1000;
1020 tmp.isDuplicable =
false;
1021 theTable->push_back(tmp);
1024 tmp.processTypeName =
"Decay";
1025 tmp.processType = 6;
1026 tmp.processSubType = 201;
1027 tmp.ordering[0] = 1000;
1028 tmp.ordering[1] = -1;
1029 tmp.ordering[2] = 1000;
1030 tmp.isDuplicable =
false;
1031 theTable->push_back(tmp);
1034 tmp.processTypeName =
"DecayWSpin";
1035 tmp.processType = 6;
1036 tmp.processSubType = 202;
1037 tmp.ordering[0] = 1000;
1038 tmp.ordering[1] = -1;
1039 tmp.ordering[2] = 1000;
1040 tmp.isDuplicable =
false;
1041 theTable->push_back(tmp);
1044 tmp.processTypeName =
"DecayPiSpin";
1045 tmp.processType = 6;
1046 tmp.processSubType = 203;
1047 tmp.ordering[0] = 1000;
1048 tmp.ordering[1] = -1;
1049 tmp.ordering[2] = 1000;
1050 tmp.isDuplicable =
false;
1051 theTable->push_back(tmp);
1054 tmp.processTypeName =
"DecayRadio";
1055 tmp.processType = 6;
1056 tmp.processSubType = 210;
1057 tmp.ordering[0] = 1000;
1058 tmp.ordering[1] = -1;
1059 tmp.ordering[2] = 1000;
1060 tmp.isDuplicable =
false;
1061 theTable->push_back(tmp);
1064 tmp.processTypeName =
"DecayUnKnown";
1065 tmp.processType = 6;
1066 tmp.processSubType = 211;
1067 tmp.ordering[0] = -1;
1068 tmp.ordering[1] = -1;
1069 tmp.ordering[2] = 1000;
1070 tmp.isDuplicable =
false;
1071 theTable->push_back(tmp);
1074 tmp.processTypeName =
"DecayExt";
1075 tmp.processType = 6;
1076 tmp.processSubType = 231;
1077 tmp.ordering[0] = 1000;
1078 tmp.ordering[1] = -1;
1079 tmp.ordering[2] = 1000;
1080 tmp.isDuplicable =
false;
1081 theTable->push_back(tmp);
1084 tmp.processTypeName =
"StepLimiter";
1085 tmp.processType = 7;
1086 tmp.processSubType = 401;
1087 tmp.ordering[0] = -1;
1088 tmp.ordering[1] = -1;
1089 tmp.ordering[2] = 1000;
1090 tmp.isDuplicable =
false;
1091 theTable->push_back(tmp);
1094 tmp.processTypeName =
"UsrSepcCuts";
1095 tmp.processType = 7;
1096 tmp.processSubType = 402;
1097 tmp.ordering[0] = -1;
1098 tmp.ordering[1] = -1;
1099 tmp.ordering[2] = 1000;
1100 tmp.isDuplicable =
false;
1101 theTable->push_back(tmp);
1104 tmp.processTypeName =
"NeutronKiller";
1105 tmp.processType = 7;
1106 tmp.processSubType = 403;
1107 tmp.ordering[0] = -1;
1108 tmp.ordering[1] = -1;
1109 tmp.ordering[2] = 1000;
1110 tmp.isDuplicable =
false;
1111 theTable->push_back(tmp);
1114 tmp.processTypeName =
"ParallelWorld";
1115 tmp.processType = 10;
1116 tmp.processSubType = 491;
1117 tmp.ordering[0] = 9900;
1118 tmp.ordering[1] = 1;
1119 tmp.ordering[2] = 9900;
1120 tmp.isDuplicable =
true;
1121 theTable->push_back(tmp);
G4int GetNumberOfParallelWorld() const
G4bool isElectron(G4int ityp)
void SetProcessOrderingToFirst(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
G4PhysicsListOrderingParameter GetOrdingParameter(G4int subType) const
G4ProcessType GetProcessType() const
static G4RunManagerKernel * GetRunManagerKernel()
const G4String & GetParticleName() const
void DumpOrdingParameterTable(G4int subType=-1) const
G4GLOB_DLL std::ostream G4cout
void reset(G4bool ifSkipIon=true)
static G4ScoringManager * GetScoringManagerIfExist()
const XML_Char int const XML_Char * value
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
const G4String & GetParticleType() const
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
const G4String & GetProcessName() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static G4ParticleTable * GetParticleTable()
void SetProcessOrderingToLast(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
G4ProcessManager * GetProcessManager() const
static G4PhysicsListHelper * GetPhysicsListHelper()
void CheckParticleList() const
G4double GetPDGCharge() const
G4int GetProcessSubType() const
G4ProcessVector * GetProcessList() const