|
| | VecGeomG4Navigator (VecGeomG4Map const &map, double pushDepth, bool zeroSafety) |
| |
| | ~VecGeomG4Navigator () override |
| |
| G4double | ComputeStep (const G4ThreeVector &globalPoint, const G4ThreeVector &direction, const G4double proposedStepLength, G4double &newSafety) override |
| |
| G4VPhysicalVolume * | ResetHierarchyAndLocate (const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &history) override |
| |
| G4VPhysicalVolume * | LocateGlobalPointAndSetup (const G4ThreeVector &point, const G4ThreeVector *direction=nullptr, const G4bool relativeSearch=true, const G4bool ignoreDirection=true) override |
| |
| void | LocateGlobalPointWithinVolume (const G4ThreeVector &position) override |
| |
| G4double | ComputeSafety (const G4ThreeVector &globalPoint, const G4double proposedMaxLength=DBL_MAX, const G4bool keepState=true) override |
| |
| G4ThreeVector | GetLocalExitNormal (G4bool *valid) override |
| |
| G4ThreeVector | GetGlobalExitNormal (const G4ThreeVector &point, G4bool *valid) override |
| |
A Geant4 tracking navigator that answers every navigation query from VecGeom while keeping the Geant4 navigation history, the touchable the scoring code reads, in step with the VecGeom state. Selected with G4.vecgeomNavigator=kRelocating, the default. It works as G4VecGeomNav's TG4VecGeomNavigator does:
- ComputeStep leaves the current volume alone. It records whether the step ends on a boundary and, for a daughter hit, the state that enters it.
- The locate on a boundary relocates: into the recorded daughter, or out of the current volume. The point is first pushed across the face by a small depth, and afterwards leaves every volume it is flush with and heading out of. As in Geant4, the volume left is blocked only in the first ComputeStep after the exit, and only while the direction points away from it.
- Safety is zero only at the boundary point itself.
Unlike TG4VecGeomNavigator, the VecGeom geometry is converted from TGeo, not from Geant4, so one VecGeom placement can stand for a chain of g4root volumes (VecGeomG4Map).
Definition at line 35 of file VecGeomG4Navigator.h.