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]
void SetProcessOrderingToFirst(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
G4ProcessType GetProcessType() const
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
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)
void SetProcessOrderingToLast(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
G4ProcessManager * GetProcessManager() const
G4int GetProcessSubType() const
G4ProcessVector * GetProcessList() const