55 #ifndef G4ITNAVIGATOR_HH
56 #define G4ITNAVIGATOR_HH
110 const G4double pCurrentProposedStepLength,
127 const G4double pCurrentProposedStepLength,
148 const G4bool pRelativeSearch=
true,
149 const G4bool ignoreDirection=
true);
180 const G4bool RelativeSearch =
true);
189 const G4bool RelativeSearch =
true);
197 const G4bool RelativeSearch =
true);
206 const G4bool keepState =
false);
397 G4bool fLastTriedStepComputation;
403 G4bool fEntering,fExiting;
413 G4int fBlockedReplicaNo;
417 G4bool fLocatedOutsideWorld;
437 G4int fNumberZeroSteps;
439 G4int fActionThreshold_NoZeroSteps;
441 G4int fAbandonThreshold_NoZeroSteps;
458 G4SaveNavigatorState();
459 virtual ~G4SaveNavigatorState(){;}
462 G4bool sEntering, sExiting;
464 G4int sBlockedReplicaNo;
465 G4int sLastStepWasZero;
469 G4bool sWasLimitedByGeometry;
471 G4int sNumberZeroSteps;
476 G4bool sLocatedOutsideWorld;
478 G4bool sEnteredDaughter, sExitedMother;
483 G4SaveNavigatorState* fpSaveState;
496 G4bool fPushed, fWarnPush;
508 #include "G4ITNavigator.icc"
G4ThreeVector GetCurrentLocalCoordinate() const
G4bool IsCheckModeActive() const
virtual G4VPhysicalVolume * ResetHierarchyAndLocate(const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &h)
virtual void ResetState()
G4int GetDaughtersRegularStructureId(const G4LogicalVolume *pLog) const
void SetWorldVolume(G4VPhysicalVolume *pWorld)
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=false)
virtual G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
G4ITNavigatorState_Lock()
G4GRSVolume * CreateGRSVolume() const
friend std::ostream & operator<<(std::ostream &os, const G4ITNavigator &n)
const G4AffineTransform & GetGlobalToLocalTransform() const
virtual G4VPhysicalVolume * LocateGlobalPointAndSetup(const G4ThreeVector &point, const G4ThreeVector *direction=0, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
virtual void LocateGlobalPointWithinVolume(const G4ThreeVector &position)
virtual G4TouchableHistoryHandle CreateTouchableHistoryHandle() const
G4bool ExitedMotherVolume() const
G4ThreeVector fLastStepEndPointLocal
G4RotationMatrix NetRotation() const
EVolume VolumeType(const G4VPhysicalVolume *pVol) const
G4ITNavigatorState_Lock * GetNavigatorState()
G4int SeverityOfZeroStepping(G4int *noZeroSteps) const
void SetGeometricallyLimitedStep()
const G4AffineTransform GetLocalToGlobalTransform() const
G4VPhysicalVolume * GetWorldVolume() const
virtual G4ThreeVector GetLocalExitNormal(G4bool *valid)
void Activate(G4bool flag)
G4int GetVerboseLevel() const
void SetPushVerbosity(G4bool mode)
G4double CheckNextStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
G4ThreeVector ComputeLocalAxis(const G4ThreeVector &pVec) const
void CheckMode(G4bool mode)
void LocateGlobalPointAndUpdateTouchableHandle(const G4ThreeVector &position, const G4ThreeVector &direction, G4TouchableHandle &oldTouchableToUpdate, const G4bool RelativeSearch=true)
G4NavigationHistory fHistory
G4GRSSolid * CreateGRSSolid() const
void LocateGlobalPointAndUpdateTouchable(const G4ThreeVector &position, const G4ThreeVector &direction, G4VTouchable *touchableToUpdate, const G4bool RelativeSearch=true)
G4bool EnteredDaughterVolume() const
void SetVerboseLevel(G4int level)
void SetNavigatorState(G4ITNavigatorState_Lock *)
G4ThreeVector NetTranslation() const
const XML_Char int const XML_Char * value
virtual void SetupHierarchy()
G4bool fWasLimitedByGeometry
void ResetStackAndState()
EVolume CharacteriseDaughters(const G4LogicalVolume *pLog) const
G4TouchableHistory * CreateTouchableHistory() const
G4AffineTransform GetMotherToDaughterTransform(G4VPhysicalVolume *dVolume, G4int dReplicaNo, EVolume dVolumeType)
virtual G4ThreeVector GetLocalExitNormalAndCheck(const G4ThreeVector &point, G4bool *valid)
G4ThreeVector ComputeLocalPoint(const G4ThreeVector &rGlobPoint) const
void EnableBestSafety(G4bool value=false)
virtual ~G4ITNavigatorState_Lock()
G4ThreeVector fStepEndPoint
virtual G4ThreeVector GetGlobalExitNormal(const G4ThreeVector &point, G4bool *valid)