60 const G4double pCurrentProposedStepLength,
66 pCurrentProposedStepLength,
72 if ( g4edata !=
nullptr )
75 if( target !=
nullptr )
86 G4cout <<
"G4ErrorPropagationNavigator::ComputeStep()" <<
G4endl
87 <<
" Target step: " << StepPlane
88 <<
", Transportation step: " << Step <<
G4endl;
89 target->
Dump(
"G4ErrorPropagationNavigator::ComputeStep Target " );
93 if( StepPlane < Step )
98 G4cout <<
"G4ErrorPropagationNavigator::ComputeStep()" <<
G4endl
99 <<
" TargetCloserThanBoundary: " << StepPlane <<
" < "
116 pNewSafety =
std::min(safetyGeom, safetyTarget);
121 G4cout <<
"G4ErrorPropagationNavigator::ComputeStep()" <<
G4endl
122 <<
" Step: " << Step <<
", ComputeSafety: " << pNewSafety
140 if ( g4edata !=
nullptr )
143 if( target !=
nullptr )
159 pMaxLength, keepState);
163 return std::min(safetyGeom, safetyTarget);
179 if ( g4edata !=
nullptr )
182 if( target !=
nullptr )
205 G4Exception(
"G4ErrorPropagationNavigator::GetGlobalExitNormal",
@ G4ErrorState_TargetCloserThanBoundary
@ G4ErrorState_Propagating
@ G4ErrorTarget_PlaneSurface
@ G4ErrorTarget_CylindricalSurface
@ G4ErrorTarget_GeomVolume
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cout
G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
~G4ErrorPropagationNavigator()
G4ErrorPropagationNavigator()
G4double TargetSafetyFromPoint(const G4ThreeVector &pGlobalpoint)
G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
G4ThreeVector GetGlobalExitNormal(const G4ThreeVector &point, G4bool *valid)
static G4ErrorPropagatorData * GetErrorPropagatorData()
const G4ErrorTarget * GetTarget(G4bool mustExist=false) const
void SetState(G4ErrorState sta)
virtual G4Plane3D GetTangentPlane(const G4ThreeVector &point) const =0
virtual void Dump(const G4String &msg) const =0
G4ErrorTargetType GetType() const
virtual G4double GetDistanceFromPoint(const G4ThreeVector &, const G4ThreeVector &) const
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
virtual G4ThreeVector GetGlobalExitNormal(const G4ThreeVector &point, G4bool *valid)
virtual G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
Normal3D< T > normal() const
static double normal(HepRandomEngine *eptr)
T min(const T t1, const T t2)
brief Return the smallest of the two arguments