52G4PhysicsListHelper::G4PhysicsListHelper()
53 : useCoupledTransportation(false),
54 theTransportationProcess(0),
62 theParticleIterator = theParticleTable->GetIterator();
64 ReadOrdingParameterTable();
68 DumpOrdingParameterTable();
74G4PhysicsListHelper::~G4PhysicsListHelper()
82 if (theTransportationProcess!=0) {
83 delete theTransportationProcess;
84 theTransportationProcess=0;
92 if (pPLHelper == 0) pPLHelper = &thePLHelper;
99 bool isElectron =
false;
100 bool isPositron =
false;
101 bool isGamma =
false;
102 bool isProton =
false;
103 bool isGenericIon =
false;
104 bool isAnyIon =
false;
105 bool isAnyChargedBaryon =
false;
106 bool isEmProc =
false;
109 theParticleIterator->
reset();
110 while( (*theParticleIterator)() ){
116 for (
int idx=0; idx<list->
size(); idx++){
122 if ( name ==
"e-") isElectron =
true;
123 else if ( name ==
"e+") isPositron =
true;
124 else if ( name ==
"gamma") isGamma =
true;
125 else if ( name ==
"GenericIon") isGenericIon =
true;
126 else if ( name ==
"proton") isProton =
true;
129 if ( particle->
GetPDGCharge() != 0.0 ) isAnyChargedBaryon =
true;
133 if (!isEmProc)
return;
138 bool isEmBasic = isElectron || isPositron || isGamma;
139 bool isMissingEmBasic = !isElectron || !isPositron || !isGamma;
140 if (isEmBasic && isMissingEmBasic) {
142 if (!isElectron) missingName +=
"e- ";
143 if (!isPositron) missingName +=
"e+ ";
144 if (!isGamma) missingName +=
"gamma ";
147 if (verboseLevel >0){
148 G4cout <<
"G4PhysicsListHelper::CheckParticleList: "
149 << missingName <<
" do not exist " <<
G4endl;
150 G4cout <<
" These particle are necessary for basic EM processes"
154 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
156 "Missing EM basic particle");
162 if (!isProton && isAnyChargedBaryon) {
166 if (verboseLevel >0){
167 G4cout <<
"G4PhysicsListHelper::CheckParticleList: "
168 << missingName <<
" does not exist "<<
G4endl;
169 G4cout <<
" Proton is necessary for EM baryon processes" <<
G4endl;
172 missingName +=
" should be created ";
173 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
181 if (!isGenericIon && isAnyIon) {
185 if (verboseLevel >0){
186 G4cout <<
"G4PhysicsListHelper::CheckParticleList: "
187 << missingName <<
" does not exist "<<
G4endl;
188 G4cout <<
" GenericIon should be created if any ion is necessary" <<
G4endl;
191 G4Exception(
"G4PhysicsListHelper::CheckParticleList",
193 "Missing GenericIon");
207 G4int verboseLevelTransport = 0;
210 if (verboseLevel >2){
211 G4cout <<
"G4PhysicsListHelper::AddTransportation() "<<
G4endl;
219 useCoupledTransportation ||
222 if (verboseLevel >0) {
223 G4cout <<
" G4PhysicsListHelper::AddTransportation()"
224 <<
"--- G4CoupledTransportation is used "
234 theParticleIterator->
reset();
235 while( (*theParticleIterator)() ){
239 if ( pmanager == 0) {
243 G4cout <<
"G4PhysicsListHelper::AddTransportation "
244 <<
" : No Process Manager for "
248 G4Exception(
"G4PhysicsListHelper::AddTransportation",
250 "No process manager");
254 pmanager ->
AddProcess(theTransportationProcess);
263void G4PhysicsListHelper::ReadOrdingParameterTable()
265 G4bool readInFile =
false;
268 if( getenv(
"G4ORDPARAMTABLE") ){
269 ordParamFileName = getenv(
"G4ORDPARAMTABLE");
271 if (verboseLevel >1){
272 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable :"
273 << ordParamFileName <<
" is assigned to Ordering Parameter Table "
278 fIn.open(ordParamFileName, std::ios::in);
282 if (verboseLevel >0) {
283 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
284 <<
" Can not open file " << ordParamFileName <<
G4endl;
287 G4Exception(
"G4PhysicsListHelper::ReadOrdingParameterTable",
289 "Fail to open ordering paramter table ");
303 theTable =
new G4OrdParamTable();
311 fIn >> tmp.processTypeName >> tmp.processType >> tmp.processSubType
312 >> tmp.ordering[0] >> tmp.ordering[1] >> tmp.ordering[2] >> flag;
313 tmp.isDuplicable = (flag!=0);
314 theTable->push_back(tmp);
319 ReadInDefaultOrderingParameter();
324 if (verboseLevel >0) {
325 G4cout <<
"G4PhysicsListHelper::ReadOrdingParameterTable "
326 <<
" Empty file " << ordParamFileName <<
G4endl;
329 G4Exception(
"G4PhysicsListHelper::ReadOrdingParameterTable",
331 "The ordering parameter table is empty ");
344 if (verboseLevel >0) {
345 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable "
346 <<
" No ordering parameter table : " << ordParamFileName
352 G4cout <<
"G4PhysicsListHelper::DumpOrdingParameterTable : "
353 << ordParamFileName <<
G4endl;
355 <<
" ProcessType" <<
" SubType"
356 <<
" AtRest" <<
" AlongStep" <<
" PostStep"
357 <<
" Duplicable" <<
G4endl;
358 for (
int i=0; i<sizeOfTable ; i++){
360 if ((subType>=0) && (subType!=tmp->processSubType))
continue;
361 G4cout << std::setw(18) << tmp->processTypeName
362 << std::setw(15) << tmp->processType
363 << std::setw(15) << tmp->processSubType
364 << std::setw(15) << tmp->ordering[0]
365 << std::setw(15) << tmp->ordering[1]
366 << std::setw(15) << tmp->ordering[2];
367 if (tmp->isDuplicable) {
383 if (verboseLevel >0) {
384 G4cout <<
"G4PhysicsListHelper::GetOrderingParameter : "
385 <<
" No ordering parameter table : " << ordParamFileName
392 for (
int i=0; i<sizeOfTable ; i++){
394 if (subType == tmp->processSubType){
395 value.processTypeName = tmp->processTypeName;
396 value.processType = tmp->processType;
397 value.processSubType = tmp->processSubType;
398 value.ordering[0] = tmp->ordering[0];
399 value.ordering[1] = tmp->ordering[1];
400 value.ordering[2] = tmp->ordering[2];
401 value.isDuplicable = tmp->isDuplicable;
413 if (verboseLevel >0) {
414 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
415 <<
" No ordering parameter table : " << ordParamFileName
419 G4Exception(
"G4PhysicsListHelper::RegisterPorcess",
421 "No Ordering Parameter Table");
430 if (verboseLevel >2) {
431 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
432 << pName <<
" Process Type = " << pType
433 <<
" SubType = "<< pSubType
440 if ((pType <1)||(pSubType<1)) {
442 if (verboseLevel >0) {
443 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
445 <<
" has illegal Process Type = " << pType
446 <<
" SubType = "<< pSubType <<
G4endl;
449 G4Exception(
"G4PhysicsListHelper::RegisterPorcess",
451 "No Matching process Type/SubType");
457 G4bool duplicable =
false;
458 for (
int i=0; i<sizeOfTable ; i++){
460 if ((tmp->processType==pType)&&(tmp->processSubType==pSubType)){
461 ord[0] = tmp->ordering[0];
462 ord[1] = tmp->ordering[1];
463 ord[2] = tmp->ordering[2];
464 duplicable = tmp->isDuplicable;
471 if (verboseLevel >0) {
472 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
474 <<
" with type/subtype ="
475 << pType <<
"/" << pSubType
476 <<
" is not reigstered in OrdingParameterTable "
480 G4Exception(
"G4PhysicsListHelper::RegisterPorcess",
482 "No Matching process Type/SubType");
488 if ( pManager == 0) {
492 G4cout <<
"G4PhysicsListHelper::RegisterProcess "
493 <<
" : No Process Manager for "
497 G4Exception(
"G4PhysicsListHelper::RegisterProcess ",
499 "No process manager");
505 G4bool duplicated =
false;
507 for (
G4int idx=0; idx<pList->
size(); idx++) {
513 if (verboseLevel >0) {
514 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
516 <<
" with type/subtype ="
517 << pType <<
"/" << pSubType
518 <<
" is has same subType as "
525 G4Exception(
"G4PhysicsListHelper::RegisterPorcess",
527 "Duplication of processes");
530 if (duplicated)
return false;
535 if (code <0)
return false;
538 for(
G4int idx=0; idx<3; idx++){
542 }
else if (ord[idx]==0) {
544 }
else if (ord[idx]<9999) {
551 if (verboseLevel >1) {
552 G4cout <<
"G4PhysicsListHelper::RegisterProcess :"
554 <<
" with type/subtype ="
555 << pType <<
"/" << pSubType
556 <<
" is sucessfully registered with ordering parameters "
557 << ord[0] <<
":" << ord[1] <<
":" << ord[2]
564void G4PhysicsListHelper::ReadInDefaultOrderingParameter()
569 tmp.processTypeName =
"Transportation";
571 tmp.processSubType = 91;
572 tmp.ordering[0] = -1;
575 tmp.isDuplicable =
false;
576 theTable->push_back(tmp);
579 tmp.processTypeName =
"CoupleTrans";
581 tmp.processSubType = 92;
582 tmp.ordering[0] = -1;
585 tmp.isDuplicable =
false;
586 theTable->push_back(tmp);
589 tmp.processTypeName =
"CoulombScat";
591 tmp.processSubType = 1;
592 tmp.ordering[0] = -1;
593 tmp.ordering[1] = -1;
594 tmp.ordering[2] = 1000;
595 tmp.isDuplicable =
false;
596 theTable->push_back(tmp);
599 tmp.processTypeName =
"Ionisation";
601 tmp.processSubType = 2;
602 tmp.ordering[0] = -1;
605 tmp.isDuplicable =
false;
606 theTable->push_back(tmp);
609 tmp.processTypeName =
"Brems";
611 tmp.processSubType = 3;
612 tmp.ordering[0] = -1;
613 tmp.ordering[1] = -1;
615 tmp.isDuplicable =
false;
616 theTable->push_back(tmp);
619 tmp.processTypeName =
"PairProdCharged";
621 tmp.processSubType = 4;
622 tmp.ordering[0] = -1;
623 tmp.ordering[1] = -1;
625 tmp.isDuplicable =
false;
626 theTable->push_back(tmp);
629 tmp.processTypeName =
"Annih";
631 tmp.processSubType = 5;
633 tmp.ordering[1] = -1;
635 tmp.isDuplicable =
false;
636 theTable->push_back(tmp);
639 tmp.processTypeName =
"AnnihToMuMu";
641 tmp.processSubType = 6;
643 tmp.ordering[1] = -1;
645 tmp.isDuplicable =
false;
646 theTable->push_back(tmp);
649 tmp.processTypeName =
"AnnihToHad";
651 tmp.processSubType = 7;
653 tmp.ordering[1] = -1;
655 tmp.isDuplicable =
false;
656 theTable->push_back(tmp);
659 tmp.processTypeName =
"NuclearStopp";
661 tmp.processSubType = 8;
662 tmp.ordering[0] = -1;
664 tmp.ordering[2] = -1;
665 tmp.isDuplicable =
false;
666 theTable->push_back(tmp);
669 tmp.processTypeName =
"Msc";
671 tmp.processSubType = 10;
672 tmp.ordering[0] = -1;
675 tmp.isDuplicable =
false;
676 theTable->push_back(tmp);
679 tmp.processTypeName =
"Rayleigh";
681 tmp.processSubType = 11;
682 tmp.ordering[0] = -1;
683 tmp.ordering[1] = -1;
684 tmp.ordering[2] = 1000;
685 tmp.isDuplicable =
false;
686 theTable->push_back(tmp);
689 tmp.processTypeName =
"PhotoElectric";
691 tmp.processSubType = 12;
692 tmp.ordering[0] = -1;
693 tmp.ordering[1] = -1;
694 tmp.ordering[2] = 1000;
695 tmp.isDuplicable =
false;
696 theTable->push_back(tmp);
699 tmp.processTypeName =
"Compton";
701 tmp.processSubType = 13;
702 tmp.ordering[0] = -1;
703 tmp.ordering[1] = -1;
704 tmp.ordering[2] = 1000;
705 tmp.isDuplicable =
false;
706 theTable->push_back(tmp);
709 tmp.processTypeName =
"Conv";
711 tmp.processSubType = 14;
712 tmp.ordering[0] = -1;
713 tmp.ordering[1] = -1;
714 tmp.ordering[2] = 1000;
715 tmp.isDuplicable =
false;
716 theTable->push_back(tmp);
719 tmp.processTypeName =
"ConvToMuMu";
721 tmp.processSubType = 15;
722 tmp.ordering[0] = -1;
723 tmp.ordering[1] = -1;
724 tmp.ordering[2] = 1000;
725 tmp.isDuplicable =
false;
726 theTable->push_back(tmp);
729 tmp.processTypeName =
"Cerenkov";
731 tmp.processSubType = 21;
732 tmp.ordering[0] = -1;
733 tmp.ordering[1] = -1;
734 tmp.ordering[2] = 1000;
735 tmp.isDuplicable =
false;
736 theTable->push_back(tmp);
739 tmp.processTypeName =
"Scintillation";
741 tmp.processSubType = 22;
742 tmp.ordering[0] = 9999;
743 tmp.ordering[1] = -1;
744 tmp.ordering[2] = 9999;
745 tmp.isDuplicable =
false;
746 theTable->push_back(tmp);
749 tmp.processTypeName =
"SynchRad";
751 tmp.processSubType = 23;
752 tmp.ordering[0] = -1;
753 tmp.ordering[1] = -1;
754 tmp.ordering[2] = 1000;
755 tmp.isDuplicable =
false;
756 theTable->push_back(tmp);
759 tmp.processTypeName =
"TransRad";
761 tmp.processSubType = 24;
762 tmp.ordering[0] = -1;
763 tmp.ordering[1] = -1;
764 tmp.ordering[2] = 1000;
765 tmp.isDuplicable =
false;
766 theTable->push_back(tmp);
769 tmp.processTypeName =
"OpAbsorb";
771 tmp.processSubType = 31;
772 tmp.ordering[0] = -1;
773 tmp.ordering[1] = -1;
774 tmp.ordering[2] = 1000;
775 tmp.isDuplicable =
false;
776 theTable->push_back(tmp);
779 tmp.processTypeName =
"OpBoundary";
781 tmp.processSubType = 32;
782 tmp.ordering[0] = -1;
783 tmp.ordering[1] = -1;
784 tmp.ordering[2] = 1000;
785 tmp.isDuplicable =
false;
786 theTable->push_back(tmp);
789 tmp.processTypeName =
"OpRayleigh";
791 tmp.processSubType = 33;
792 tmp.ordering[0] = -1;
793 tmp.ordering[1] = -1;
794 tmp.ordering[2] = 1000;
795 tmp.isDuplicable =
false;
796 theTable->push_back(tmp);
799 tmp.processTypeName =
"OpWLS";
801 tmp.processSubType = 34;
802 tmp.ordering[0] = -1;
803 tmp.ordering[1] = -1;
804 tmp.ordering[2] = 1000;
805 tmp.isDuplicable =
false;
806 theTable->push_back(tmp);
809 tmp.processTypeName =
"OpMieHG";
811 tmp.processSubType = 35;
812 tmp.ordering[0] = -1;
813 tmp.ordering[1] = -1;
814 tmp.ordering[2] = 1000;
815 tmp.isDuplicable =
false;
816 theTable->push_back(tmp);
819 tmp.processTypeName =
"DNAElastic";
821 tmp.processSubType = 51;
822 tmp.ordering[0] = -1;
823 tmp.ordering[1] = -1;
824 tmp.ordering[2] = 1000;
825 tmp.isDuplicable =
false;
826 theTable->push_back(tmp);
829 tmp.processTypeName =
"DNAExcit";
831 tmp.processSubType = 52;
832 tmp.ordering[0] = -1;
833 tmp.ordering[1] = -1;
834 tmp.ordering[2] = 1000;
835 tmp.isDuplicable =
false;
836 theTable->push_back(tmp);
839 tmp.processTypeName =
"DNAIonisation";
841 tmp.processSubType = 53;
842 tmp.ordering[0] = -1;
843 tmp.ordering[1] = -1;
844 tmp.ordering[2] = 1000;
845 tmp.isDuplicable =
false;
846 theTable->push_back(tmp);
849 tmp.processTypeName =
"DNAVibExcit";
851 tmp.processSubType = 54;
852 tmp.ordering[0] = -1;
853 tmp.ordering[1] = -1;
854 tmp.ordering[2] = 1000;
855 tmp.isDuplicable =
false;
856 theTable->push_back(tmp);
859 tmp.processTypeName =
"DNAAttachment";
861 tmp.processSubType = 55;
862 tmp.ordering[0] = -1;
863 tmp.ordering[1] = -1;
864 tmp.ordering[2] = 1000;
865 tmp.isDuplicable =
false;
866 theTable->push_back(tmp);
869 tmp.processTypeName =
"DNAChargeDec";
871 tmp.processSubType = 56;
872 tmp.ordering[0] = -1;
873 tmp.ordering[1] = -1;
874 tmp.ordering[2] = 1000;
875 tmp.isDuplicable =
false;
876 theTable->push_back(tmp);
879 tmp.processTypeName =
"DNAChargeInc";
881 tmp.processSubType = 57;
882 tmp.ordering[0] = -1;
883 tmp.ordering[1] = -1;
884 tmp.ordering[2] = 1000;
885 tmp.isDuplicable =
false;
886 theTable->push_back(tmp);
889 tmp.processTypeName =
"DNAElectronSolvatation";
891 tmp.processSubType = 58;
892 tmp.ordering[0] = -1;
893 tmp.ordering[1] = -1;
894 tmp.ordering[2] = 1000;
895 tmp.isDuplicable =
false;
896 theTable->push_back(tmp);
899 tmp.processTypeName =
"DNAMolecularDecay";
901 tmp.processSubType = 59;
902 tmp.ordering[0] = 1000;
903 tmp.ordering[1] = -1;
904 tmp.ordering[2] = -1;
905 tmp.isDuplicable =
false;
906 theTable->push_back(tmp);
909 tmp.processTypeName =
"ITTransportation";
911 tmp.processSubType = 60;
912 tmp.ordering[0] = -1;
915 tmp.isDuplicable =
false;
916 theTable->push_back(tmp);
919 tmp.processTypeName =
"DNABrownianTransportation";
921 tmp.processSubType = 61;
922 tmp.ordering[0] = -1;
923 tmp.ordering[1] = -1;
924 tmp.ordering[2] = -1;
925 tmp.isDuplicable =
false;
926 theTable->push_back(tmp);
929 tmp.processTypeName =
"DNADoubleIonisation";
931 tmp.processSubType = 62;
932 tmp.ordering[0] = -1;
933 tmp.ordering[1] = -1;
934 tmp.ordering[2] = 1000;
935 tmp.isDuplicable =
false;
936 theTable->push_back(tmp);
939 tmp.processTypeName =
"DNADoubleCapture";
941 tmp.processSubType = 63;
942 tmp.ordering[0] = -1;
943 tmp.ordering[1] = -1;
944 tmp.ordering[2] = 1000;
945 tmp.isDuplicable =
false;
946 theTable->push_back(tmp);
949 tmp.processTypeName =
"DNAIonisingTransfer";
951 tmp.processSubType = 64;
952 tmp.ordering[0] = -1;
953 tmp.ordering[1] = -1;
954 tmp.ordering[2] = 1000;
955 tmp.isDuplicable =
false;
956 theTable->push_back(tmp);
959 tmp.processTypeName =
"HadElastic";
961 tmp.processSubType = 111;
962 tmp.ordering[0] = -1;
963 tmp.ordering[1] = -1;
964 tmp.ordering[2] = 1000;
965 tmp.isDuplicable =
false;
966 theTable->push_back(tmp);
969 tmp.processTypeName =
"HadInElastic";
971 tmp.processSubType = 121;
972 tmp.ordering[0] = -1;
973 tmp.ordering[1] = -1;
974 tmp.ordering[2] = 1000;
975 tmp.isDuplicable =
false;
976 theTable->push_back(tmp);
979 tmp.processTypeName =
"HadCapture";
981 tmp.processSubType = 131;
982 tmp.ordering[0] = -1;
983 tmp.ordering[1] = -1;
984 tmp.ordering[2] = 1000;
985 tmp.isDuplicable =
false;
986 theTable->push_back(tmp);
989 tmp.processTypeName =
"HadFission";
991 tmp.processSubType = 141;
992 tmp.ordering[0] = -1;
993 tmp.ordering[1] = -1;
994 tmp.ordering[2] = 1000;
995 tmp.isDuplicable =
false;
996 theTable->push_back(tmp);
999 tmp.processTypeName =
"HadAtRest";
1000 tmp.processType = 4;
1001 tmp.processSubType = 151;
1002 tmp.ordering[0] = 1000;
1003 tmp.ordering[1] = -1;
1004 tmp.ordering[2] = -1;
1005 tmp.isDuplicable =
false;
1006 theTable->push_back(tmp);
1009 tmp.processTypeName =
"HadCEX";
1010 tmp.processType = 4;
1011 tmp.processSubType = 161;
1012 tmp.ordering[0] = -1;
1013 tmp.ordering[1] = -1;
1014 tmp.ordering[2] = 1000;
1015 tmp.isDuplicable =
false;
1016 theTable->push_back(tmp);
1019 tmp.processTypeName =
"Decay";
1020 tmp.processType = 6;
1021 tmp.processSubType = 201;
1022 tmp.ordering[0] = 1000;
1023 tmp.ordering[1] = -1;
1024 tmp.ordering[2] = 1000;
1025 tmp.isDuplicable =
false;
1026 theTable->push_back(tmp);
1029 tmp.processTypeName =
"DecayWSpin";
1030 tmp.processType = 6;
1031 tmp.processSubType = 202;
1032 tmp.ordering[0] = 1000;
1033 tmp.ordering[1] = -1;
1034 tmp.ordering[2] = 1000;
1035 tmp.isDuplicable =
false;
1036 theTable->push_back(tmp);
1039 tmp.processTypeName =
"DecayPiSpin";
1040 tmp.processType = 6;
1041 tmp.processSubType = 203;
1042 tmp.ordering[0] = 1000;
1043 tmp.ordering[1] = -1;
1044 tmp.ordering[2] = 1000;
1045 tmp.isDuplicable =
false;
1046 theTable->push_back(tmp);
1049 tmp.processTypeName =
"DecayRadio";
1050 tmp.processType = 6;
1051 tmp.processSubType = 210;
1052 tmp.ordering[0] = 1000;
1053 tmp.ordering[1] = -1;
1054 tmp.ordering[2] = 1000;
1055 tmp.isDuplicable =
false;
1056 theTable->push_back(tmp);
1059 tmp.processTypeName =
"DecayUnKnown";
1060 tmp.processType = 6;
1061 tmp.processSubType = 211;
1062 tmp.ordering[0] = 1000;
1063 tmp.ordering[1] = -1;
1064 tmp.ordering[2] = 1000;
1065 tmp.isDuplicable =
false;
1066 theTable->push_back(tmp);
1069 tmp.processTypeName =
"DecayExt";
1070 tmp.processType = 6;
1071 tmp.processSubType = 231;
1072 tmp.ordering[0] = 1000;
1073 tmp.ordering[1] = -1;
1074 tmp.ordering[2] = 1000;
1075 tmp.isDuplicable =
false;
1076 theTable->push_back(tmp);
1079 tmp.processTypeName =
"StepLimiter";
1080 tmp.processType = 7;
1081 tmp.processSubType = 401;
1082 tmp.ordering[0] = -1;
1083 tmp.ordering[1] = -1;
1084 tmp.ordering[2] = 1000;
1085 tmp.isDuplicable =
false;
1086 theTable->push_back(tmp);
1089 tmp.processTypeName =
"UsrSepcCuts";
1090 tmp.processType = 7;
1091 tmp.processSubType = 402;
1092 tmp.ordering[0] = -1;
1093 tmp.ordering[1] = -1;
1094 tmp.ordering[2] = 1000;
1095 tmp.isDuplicable =
false;
1096 theTable->push_back(tmp);
1099 tmp.processTypeName =
"NeutronKiller";
1100 tmp.processType = 7;
1101 tmp.processSubType = 403;
1102 tmp.ordering[0] = -1;
1103 tmp.ordering[1] = -1;
1104 tmp.ordering[2] = 1000;
1105 tmp.isDuplicable =
false;
1106 theTable->push_back(tmp);
G4DLLIMPORT std::ostream G4cout
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleType() const
G4double GetPDGCharge() const
const G4String & GetParticleName() 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
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)