44 fFirstCall(true), fVerbose(0)
72 G4Exception(
"G4ITSafetyHelper::InitialiseNavigator",
74 "Found that existing tracking Navigator has NULL world");
102 currentMaxStep, newSafety);
121 if ((moveLengthSq > 0.0))
135 if (newSafety < maxLength)
163 ed <<
" Safety Sphere: Radius = " <<
fpTrackState->fLastSafety;
165 ed <<
" New Location : Move = " << moveVec.mag2();
166 ed <<
" Position = " << newPosition <<
G4endl;
167 G4Exception(
"G4ITSafetyHelper::ReLocateWithinVolume",
"GeomNav999",
169 "Unsafe Move> Asked to relocate beyond 'Safety sphere'.");
189 fpMassNavigator->LocateGlobalPointAndSetup(newPosition, &newDirection,
true,
static G4PathFinder * GetInstance()
void Locate(const G4ThreeVector &position, const G4ThreeVector &direction, G4bool relativeSearch=true)
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
StateTypeHandle fpTrackState
G4double CheckNextStep(const G4ThreeVector &position, const G4ThreeVector &direction, const G4double currentMaxStep, G4double &newSafety)
void ReLocate(const G4ThreeVector &position)
void ReLocateWithinVolume(const G4ThreeVector &pGlobalPoint)
static G4ITTransportationManager * GetTransportationManager()
virtual void NewTrackState()
G4double ComputeSafety(const G4ThreeVector &globalPoint)
G4bool fUseParallelGeometries
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4ITNavigator * fpMassNavigator
void InitialiseNavigator()
G4PathFinder * fpPathFinder
G4ITNavigator * GetNavigatorForTracking() const
G4double ComputeSafety(const G4ThreeVector &pGlobalPoint, G4double maxRadius=DBL_MAX)
void Locate(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &direction)