Project
Loading...
Searching...
No Matches
o2::simsetup::VecGeomG4PropagatingNavigator Class Reference

#include <VecGeomG4PropagatingNavigator.h>

Inherits o2::simsetup::VecGeomG4NavigatorBase.

Public Member Functions

 VecGeomG4PropagatingNavigator (VecGeomG4Map const &map, bool zeroSafety)
 
 ~VecGeomG4PropagatingNavigator () 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
 

Additional Inherited Members

- Protected Types inherited from o2::simsetup::VecGeomG4NavigatorBase
using V3 = vecgeom::Vector3D< double >
 
- Protected Member Functions inherited from o2::simsetup::VecGeomG4NavigatorBase
 VecGeomG4NavigatorBase (VecGeomG4Map const &map)
 
G4VPhysicalVolume * historyFromState (vecgeom::NavigationState const &state)
 
bool stateFromHistory (vecgeom::NavigationState &state) const
 
- Static Protected Member Functions inherited from o2::simsetup::VecGeomG4NavigatorBase
static V3 toVG (const G4ThreeVector &p)
 
static V3 toDir (const G4ThreeVector &d)
 
static bool directionLeaves (const V3 &n, const V3 &dir)
 
static bool directionLeaves (vecgeom::NavigationState const &exited, const V3 &point, const V3 &dir)
 The same, with the normal taken from exited, which has the volume left on top.
 
- Protected Attributes inherited from o2::simsetup::VecGeomG4NavigatorBase
VecGeomG4Map const & mMap
 
- Static Protected Attributes inherited from o2::simsetup::VecGeomG4NavigatorBase
static constexpr double kG4ToVG = 1. / CLHEP::cm
 
static constexpr double kVGToG4 = CLHEP::cm
 

Detailed Description

A lighter VecGeom navigator for Geant4, selected with G4.vecgeomNavigator=kPropagated. ComputeStep uses VecGeom's combined step-and-relocate, and a boundary locate adopts the state that step propagated instead of locating again. Safety is zero for the whole step after a crossing, a stuck step is nudged forward, and the exit normal follows the direction of motion. It does less work per step and per crossing than VecGeomG4Navigator.

Definition at line 25 of file VecGeomG4PropagatingNavigator.h.

Constructor & Destructor Documentation

◆ VecGeomG4PropagatingNavigator()

o2::simsetup::VecGeomG4PropagatingNavigator::VecGeomG4PropagatingNavigator ( VecGeomG4Map const &  map,
bool  zeroSafety 
)

Definition at line 39 of file VecGeomG4PropagatingNavigator.cxx.

◆ ~VecGeomG4PropagatingNavigator()

o2::simsetup::VecGeomG4PropagatingNavigator::~VecGeomG4PropagatingNavigator ( )
override

Definition at line 45 of file VecGeomG4PropagatingNavigator.cxx.

Member Function Documentation

◆ ComputeSafety()

G4double o2::simsetup::VecGeomG4PropagatingNavigator::ComputeSafety ( const G4ThreeVector &  globalPoint,
const G4double  proposedMaxLength = DBL_MAX,
const G4bool  keepState = true 
)
override

Definition at line 193 of file VecGeomG4PropagatingNavigator.cxx.

◆ ComputeStep()

G4double o2::simsetup::VecGeomG4PropagatingNavigator::ComputeStep ( const G4ThreeVector &  globalPoint,
const G4ThreeVector &  direction,
const G4double  proposedStepLength,
G4double &  newSafety 
)
override

Definition at line 51 of file VecGeomG4PropagatingNavigator.cxx.

◆ GetGlobalExitNormal()

G4ThreeVector o2::simsetup::VecGeomG4PropagatingNavigator::GetGlobalExitNormal ( const G4ThreeVector &  point,
G4bool *  valid 
)
override

Definition at line 206 of file VecGeomG4PropagatingNavigator.cxx.

◆ GetLocalExitNormal()

G4ThreeVector o2::simsetup::VecGeomG4PropagatingNavigator::GetLocalExitNormal ( G4bool *  valid)
override

Definition at line 235 of file VecGeomG4PropagatingNavigator.cxx.

◆ LocateGlobalPointAndSetup()

G4VPhysicalVolume * o2::simsetup::VecGeomG4PropagatingNavigator::LocateGlobalPointAndSetup ( const G4ThreeVector &  point,
const G4ThreeVector *  direction = nullptr,
const G4bool  relativeSearch = true,
const G4bool  ignoreDirection = true 
)
override

Definition at line 144 of file VecGeomG4PropagatingNavigator.cxx.

◆ LocateGlobalPointWithinVolume()

void o2::simsetup::VecGeomG4PropagatingNavigator::LocateGlobalPointWithinVolume ( const G4ThreeVector &  position)
override

Definition at line 181 of file VecGeomG4PropagatingNavigator.cxx.

◆ ResetHierarchyAndLocate()

G4VPhysicalVolume * o2::simsetup::VecGeomG4PropagatingNavigator::ResetHierarchyAndLocate ( const G4ThreeVector &  point,
const G4ThreeVector &  direction,
const G4TouchableHistory &  history 
)
override

Definition at line 125 of file VecGeomG4PropagatingNavigator.cxx.


The documentation for this class was generated from the following files: