ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4VoxelNavigation Class Reference

#include <geant4/tree/geant4-10.6-release/source/geometry/navigation/include/G4VoxelNavigation.hh>

+ Inheritance diagram for G4VoxelNavigation:
+ Collaboration diagram for G4VoxelNavigation:

Public Member Functions

 G4VoxelNavigation ()
 
virtual ~G4VoxelNavigation ()
 
G4SmartVoxelNode * VoxelLocate (G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint)
 
virtual G4bool LevelLocate (G4NavigationHistory &history, const G4VPhysicalVolume *blockedVol, const G4int blockedNum, const G4ThreeVector &globalPoint, const G4ThreeVector *globalDirection, const G4bool pLocatedOnEdge, G4ThreeVector &localPoint)
 
virtual G4double ComputeStep (const G4ThreeVector &globalPoint, const G4ThreeVector &globalDirection, const G4double currentProposedStepLength, G4double &newSafety, G4NavigationHistory &history, G4bool &validExitNormal, G4ThreeVector &exitNormal, G4bool &exiting, G4bool &entering, G4VPhysicalVolume *(*pBlockedPhysical), G4int &blockedReplicaNo)
 
virtual G4double ComputeSafety (const G4ThreeVector &globalpoint, const G4NavigationHistory &history, const G4double pMaxLength=DBL_MAX)
 
G4int GetVerboseLevel () const
 
void SetVerboseLevel (G4int level)
 
void CheckMode (G4bool mode)
 
void EnableBestSafety (G4bool flag=false)
 

Protected Member Functions

G4double ComputeVoxelSafety (const G4ThreeVector &localPoint) const
 
G4bool LocateNextVoxel (const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentStep)
 
G4SmartVoxelNode * VoxelLocateLight (G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint) const
 

Protected Attributes

G4BlockingList fBList
 
G4int fVoxelDepth = -1
 
std::vector< EAxis > fVoxelAxisStack
 
std::vector< G4int > fVoxelNoSlicesStack
 
std::vector< G4double > fVoxelSliceWidthStack
 
std::vector< G4int > fVoxelNodeNoStack
 
std::vector< G4SmartVoxelHeader * > fVoxelHeaderStack
 
G4SmartVoxelNode * fVoxelNode = nullptr
 
G4VoxelSafety * fpVoxelSafety = nullptr
 
G4double fHalfTolerance
 
G4bool fCheck = false
 
G4bool fBestSafety = false
 
G4NavigationLogger * fLogger
 

Private Member Functions

void PreComputeStepLog (const G4VPhysicalVolume *motherPhysical, G4double motherSafety, const G4ThreeVector &localPoint)
 
void AlongComputeStepLog (const G4VSolid *sampleSolid, const G4ThreeVector &samplePoint, const G4ThreeVector &sampleDirection, const G4ThreeVector &localDirection, G4double sampleSafety, G4double sampleStep)
 
void PostComputeStepLog (const G4VSolid *motherSolid, const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, G4double motherStep, G4double motherSafety)
 
void ComputeSafetyLog (const G4VSolid *solid, const G4ThreeVector &point, G4double safety, G4bool banner)
 
void PrintDaughterLog (const G4VSolid *sampleSolid, const G4ThreeVector &samplePoint, G4double sampleSafety, G4double sampleStep)
 

Detailed Description

Definition at line 63 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 63 of file G4VoxelNavigation.hh

Constructor & Destructor Documentation

G4VoxelNavigation::G4VoxelNavigation ( )

Definition at line 43 of file G4VoxelNavigation.cc.

View newest version in sPHENIX GitHub at line 43 of file G4VoxelNavigation.cc

References fHalfTolerance, fLogger, fpVoxelSafety, G4GeometryTolerance::GetInstance(), G4GeometryTolerance::GetSurfaceTolerance(), and SetVerboseLevel().

+ Here is the call graph for this function:

G4VoxelNavigation::~G4VoxelNavigation ( )
virtual

Definition at line 64 of file G4VoxelNavigation.cc.

View newest version in sPHENIX GitHub at line 64 of file G4VoxelNavigation.cc

References fLogger, and fpVoxelSafety.

Member Function Documentation

void G4VoxelNavigation::AlongComputeStepLog ( const G4VSolid *  sampleSolid,
const G4ThreeVector &  samplePoint,
const G4ThreeVector &  sampleDirection,
const G4ThreeVector &  localDirection,
G4double  sampleSafety,
G4double  sampleStep 
)
private
void G4VoxelNavigation::CheckMode ( G4bool  mode)
inline
G4double G4VoxelNavigation::ComputeSafety ( const G4ThreeVector &  globalpoint,
const G4NavigationHistory &  history,
const G4double  pMaxLength = DBL_MAX 
)
virtual
void G4VoxelNavigation::ComputeSafetyLog ( const G4VSolid *  solid,
const G4ThreeVector &  point,
G4double  safety,
G4bool  banner 
)
private
G4double G4VoxelNavigation::ComputeStep ( const G4ThreeVector &  globalPoint,
const G4ThreeVector &  globalDirection,
const G4double  currentProposedStepLength,
G4double &  newSafety,
G4NavigationHistory &  history,
G4bool &  validExitNormal,
G4ThreeVector &  exitNormal,
G4bool &  exiting,
G4bool &  entering,
G4VPhysicalVolume **  pBlockedPhysical,
G4int &  blockedReplicaNo 
)
virtual

Reimplemented in G4ParameterisedNavigation.

Definition at line 75 of file G4VoxelNavigation.cc.

View newest version in sPHENIX GitHub at line 75 of file G4VoxelNavigation.cc

References G4NavigationLogger::AlongComputeStepLog(), G4BlockingList::BlockVolume(), G4NavigationLogger::CheckAndReportBadNormal(), G4NavigationLogger::CheckDaughterEntryPoint(), ComputeVoxelSafety(), DBL_MAX, G4VSolid::DistanceToIn(), G4VSolid::DistanceToOut(), CLHEP::Hep3Vector::dot(), G4BlockingList::Enlarge(), fBList, fCheck, fLogger, fVoxelNode, G4LogicalVolume::GetDaughter(), G4VPhysicalVolume::GetLogicalVolume(), G4SmartVoxelNode::GetNoContained(), G4LogicalVolume::GetNoDaughters(), G4VPhysicalVolume::GetRotation(), G4LogicalVolume::GetSolid(), G4NavigationHistory::GetTopVolume(), G4VPhysicalVolume::GetTranslation(), G4SmartVoxelNode::GetVolume(), CLHEP::HepRotation::inverse(), G4AffineTransform::Invert(), G4BlockingList::IsBlocked(), kInfinity, kMinExitingNormalCosine, LocateNextVoxel(), G4NavigationLogger::PostComputeStepLog(), G4NavigationLogger::PreComputeStepLog(), G4NavigationLogger::PrintDaughterLog(), G4NavigationLogger::ReportOutsideMother(), and G4BlockingList::Reset().

Referenced by G4Navigator::ComputeStep(), G4ITNavigator1::ComputeStep(), and G4ITNavigator2::ComputeStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4VoxelNavigation::ComputeVoxelSafety ( const G4ThreeVector &  localPoint) const
protected

Definition at line 403 of file G4VoxelNavigation.cc.

View newest version in sPHENIX GitHub at line 403 of file G4VoxelNavigation.cc

References fVoxelAxisStack, fVoxelDepth, fVoxelHeaderStack, fVoxelNode, fVoxelNodeNoStack, fVoxelSliceWidthStack, G4SmartVoxelNode::GetMaxEquivalentSliceNo(), G4SmartVoxelNode::GetMinEquivalentSliceNo(), G4SmartVoxelHeader::GetMinExtent(), and min.

Referenced by ComputeSafety(), ComputeStep(), and G4ParameterisedNavigation::ComputeVoxelSafety().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4VoxelNavigation::EnableBestSafety ( G4bool  flag = false)
inline
G4int G4VoxelNavigation::GetVerboseLevel ( ) const
inline
virtual G4bool G4VoxelNavigation::LevelLocate ( G4NavigationHistory &  history,
const G4VPhysicalVolume *  blockedVol,
const G4int  blockedNum,
const G4ThreeVector &  globalPoint,
const G4ThreeVector *  globalDirection,
const G4bool  pLocatedOnEdge,
G4ThreeVector &  localPoint 
)
virtual

Reimplemented in G4ParameterisedNavigation.

Referenced by G4Navigator::LocateGlobalPointAndSetup(), G4ITNavigator1::LocateGlobalPointAndSetup(), and G4ITNavigator2::LocateGlobalPointAndSetup().

+ Here is the caller graph for this function:

G4bool G4VoxelNavigation::LocateNextVoxel ( const G4ThreeVector &  localPoint,
const G4ThreeVector &  localDirection,
const G4double  currentStep 
)
protected

Definition at line 492 of file G4VoxelNavigation.cc.

View newest version in sPHENIX GitHub at line 492 of file G4VoxelNavigation.cc

References fHalfTolerance, fVoxelAxisStack, fVoxelDepth, fVoxelHeaderStack, fVoxelNode, fVoxelNodeNoStack, fVoxelNoSlicesStack, fVoxelSliceWidthStack, G4SmartVoxelHeader::GetAxis(), G4SmartVoxelProxy::GetHeader(), G4SmartVoxelNode::GetMaxEquivalentSliceNo(), G4SmartVoxelNode::GetMinEquivalentSliceNo(), G4SmartVoxelHeader::GetMinExtent(), G4SmartVoxelProxy::GetNode(), and G4SmartVoxelProxy::IsNode().

Referenced by ComputeStep(), and G4ParameterisedNavigation::LocateNextVoxel().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4VoxelNavigation::PostComputeStepLog ( const G4VSolid *  motherSolid,
const G4ThreeVector &  localPoint,
const G4ThreeVector &  localDirection,
G4double  motherStep,
G4double  motherSafety 
)
private
void G4VoxelNavigation::PreComputeStepLog ( const G4VPhysicalVolume *  motherPhysical,
G4double  motherSafety,
const G4ThreeVector &  localPoint 
)
private
void G4VoxelNavigation::PrintDaughterLog ( const G4VSolid *  sampleSolid,
const G4ThreeVector &  samplePoint,
G4double  sampleSafety,
G4double  sampleStep 
)
inlineprivate
void G4VoxelNavigation::SetVerboseLevel ( G4int  level)

Definition at line 787 of file G4VoxelNavigation.cc.

View newest version in sPHENIX GitHub at line 787 of file G4VoxelNavigation.cc

References fLogger, fpVoxelSafety, G4VoxelSafety::SetVerboseLevel(), and G4NavigationLogger::SetVerboseLevel().

Referenced by G4VoxelNavigation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4SmartVoxelNode* G4VoxelNavigation::VoxelLocate ( G4SmartVoxelHeader *  pHead,
const G4ThreeVector &  localPoint 
)

Referenced by G4Navigator::LocateGlobalPointWithinVolume(), G4ITNavigator1::LocateGlobalPointWithinVolume(), and G4ITNavigator2::LocateGlobalPointWithinVolume().

+ Here is the caller graph for this function:

G4SmartVoxelNode* G4VoxelNavigation::VoxelLocateLight ( G4SmartVoxelHeader *  pHead,
const G4ThreeVector &  localPoint 
) const
protected

Member Data Documentation

G4bool G4VoxelNavigation::fBestSafety = false
protected

Definition at line 186 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 186 of file G4VoxelNavigation.hh

Referenced by ComputeSafety().

G4BlockingList G4VoxelNavigation::fBList
protected

Definition at line 146 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 146 of file G4VoxelNavigation.hh

Referenced by G4ParameterisedNavigation::ComputeStep(), and ComputeStep().

G4bool G4VoxelNavigation::fCheck = false
protected

Definition at line 185 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 185 of file G4VoxelNavigation.hh

Referenced by ComputeSafety(), G4ParameterisedNavigation::ComputeStep(), and ComputeStep().

G4double G4VoxelNavigation::fHalfTolerance
protected

Definition at line 182 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 182 of file G4VoxelNavigation.hh

Referenced by G4VoxelNavigation(), and LocateNextVoxel().

G4NavigationLogger* G4VoxelNavigation::fLogger
protected

Definition at line 188 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 188 of file G4VoxelNavigation.hh

Referenced by ComputeSafety(), G4ParameterisedNavigation::ComputeStep(), ComputeStep(), G4VoxelNavigation(), SetVerboseLevel(), and ~G4VoxelNavigation().

G4VoxelSafety* G4VoxelNavigation::fpVoxelSafety = nullptr
protected

Definition at line 179 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 179 of file G4VoxelNavigation.hh

Referenced by ComputeSafety(), G4VoxelNavigation(), SetVerboseLevel(), and ~G4VoxelNavigation().

std::vector<EAxis> G4VoxelNavigation::fVoxelAxisStack
protected

Definition at line 157 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 157 of file G4VoxelNavigation.hh

Referenced by ComputeVoxelSafety(), and LocateNextVoxel().

G4int G4VoxelNavigation::fVoxelDepth = -1
protected

Definition at line 153 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 153 of file G4VoxelNavigation.hh

Referenced by ComputeVoxelSafety(), and LocateNextVoxel().

std::vector<G4SmartVoxelHeader*> G4VoxelNavigation::fVoxelHeaderStack
protected

Definition at line 169 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 169 of file G4VoxelNavigation.hh

Referenced by ComputeVoxelSafety(), and LocateNextVoxel().

std::vector<G4int> G4VoxelNavigation::fVoxelNodeNoStack
protected

Definition at line 166 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 166 of file G4VoxelNavigation.hh

Referenced by ComputeVoxelSafety(), and LocateNextVoxel().

std::vector<G4int> G4VoxelNavigation::fVoxelNoSlicesStack
protected

Definition at line 160 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 160 of file G4VoxelNavigation.hh

Referenced by LocateNextVoxel().

std::vector<G4double> G4VoxelNavigation::fVoxelSliceWidthStack
protected

Definition at line 163 of file G4VoxelNavigation.hh.

View newest version in sPHENIX GitHub at line 163 of file G4VoxelNavigation.hh

Referenced by ComputeVoxelSafety(), and LocateNextVoxel().


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