976 ->GetNavigatorState());
977 fpNavigator->ResetNavigatorState();
988 double proposedTimeStep =
DBL_MAX;
989 G4VProcess* processWithPostStepGivenByTimeStep(0);
1003 fpCurrentProcess =
dynamic_cast<G4VITProcess*
>((*fpProcessInfo
1005 if(fpCurrentProcess == 0)
1018 fPhysIntLength = fpCurrentProcess->
PostStepGPIL(*fpTrack,
1040 G4Exception(
"G4ITStepProcessor::DefinePhysicalStepLength()",
1041 "ITStepProcessor0008",
1043 "This feature is no more supported");
1070 if(fPhysIntLength < fpState->fPhysicalStep)
1077 fPhysIntLength *= -1;
1078 if(fPhysIntLength < proposedTimeStep)
1080 proposedTimeStep = fPhysIntLength;
1081 fPostStepAtTimeDoItProcTriggered = np;
1082 processWithPostStepGivenByTimeStep = fpCurrentProcess;
1089 fPostStepDoItProcTriggered =
G4int(np);
1102 fpCurrentProcess =
dynamic_cast<G4VITProcess*
>((*fpProcessInfo
1104 if(fpCurrentProcess == 0)
continue;
1113 safetyProposedToAndByProcess,
1121 if(fPhysIntLength < fpState->fPhysicalStep)
1139 if(!fpTransportation)
1142 exceptionDescription <<
"No transportation process found ";
1143 G4Exception(
"G4ITStepProcessor::DoDefinePhysicalStepLength",
1144 "ITStepProcessor0009",
1146 exceptionDescription);
1161 if(!fpTransportation)
1164 exceptionDescription <<
"No transportation process found ";
1165 G4Exception(
"G4ITStepProcessor::DoDefinePhysicalStepLength",
1166 "ITStepProcessor0010",
1168 exceptionDescription);
1176 if(proposedTimeStep < fTimeStep)
1178 if(fPostStepAtTimeDoItProcTriggered < fpProcessInfo->MAXofPostStepLoops)
1189 fTimeStep = proposedTimeStep;
1200 if(fPostStepDoItProcTriggered < fpProcessInfo->MAXofPostStepLoops)
1216 if(safetyProposedToAndByProcess < fpState->fProposedSafety)
1226 fpNavigator->ResetNavigatorState();
void SetProcessDefinedStep(const G4VProcess *aValue)
std::ostringstream G4ExceptionDescription
size_t MAXofAlongStepLoops
G4TrackStatus GetTrackStatus() const
G4SelectedPostStepDoItVector fSelectedPostStepDoItVector
G4VPhysicalVolume * GetNextVolume() const
G4ProcessVector * fpAlongStepGetPhysIntVector
G4double AlongStepGPIL(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
virtual void ComputeStep(const G4Track &, const G4Step &, const double timeStep, double &spaceStep)
virtual void DPSLStarted()=0
virtual void DPSLPostStep()=0
G4ProcessVector * fpPostStepGetPhysIntVector
G4double GetInteractionTimeLeft()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4TrackingInformation * GetTrackingInfo()
G4double PostStepGPIL(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
void SetProcessState(G4shared_ptr< G4ProcessState_Lock > aProcInfo)
G4StepPoint * GetPostStepPoint() const
size_t MAXofPostStepLoops
virtual void DPSLAlongStep()=0
G4double fPreviousStepSize
G4bool ProposesTimeStep() const
size_t GetProcessID() const