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 ()
 
G4SmartVoxelNodeVoxelLocate (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)
 
G4SmartVoxelNodeVoxelLocateLight (G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint) const
 

Protected Attributes

G4BlockingList fBList
 
G4int fVoxelDepth = -1
 
std::vector< EAxisfVoxelAxisStack
 
std::vector< G4intfVoxelNoSlicesStack
 
std::vector< G4doublefVoxelSliceWidthStack
 
std::vector< G4intfVoxelNodeNoStack
 
std::vector< G4SmartVoxelHeader * > fVoxelHeaderStack
 
G4SmartVoxelNodefVoxelNode = nullptr
 
G4VoxelSafetyfpVoxelSafety = nullptr
 
G4double fHalfTolerance
 
G4bool fCheck = false
 
G4bool fBestSafety = false
 
G4NavigationLoggerfLogger
 

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: