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

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

+ Inheritance diagram for G4MultiLevelLocator:
+ Collaboration diagram for G4MultiLevelLocator:

Public Member Functions

 G4MultiLevelLocator (G4Navigator *theNavigator)
 
 ~G4MultiLevelLocator ()
 
G4bool EstimateIntersectionPoint (const G4FieldTrack &curveStartPointTangent, const G4FieldTrack &curveEndPointTangent, const G4ThreeVector &trialPoint, G4FieldTrack &intersectPointTangent, G4bool &recalculatedEndPoint, G4double &fPreviousSafety, G4ThreeVector &fPreviousSftOrigin)
 
void ReportStatistics ()
 
void SetMaxSteps (unsigned int valMax)
 
void SetWarnSteps (unsigned int valWarn)
 
- Public Member Functions inherited from G4VIntersectionLocator
 G4VIntersectionLocator (G4Navigator *theNavigator)
 
virtual ~G4VIntersectionLocator ()
 
void printStatus (const G4FieldTrack &startFT, const G4FieldTrack &currentFT, G4double requestStep, G4double safety, G4int stepNum)
 
G4bool IntersectChord (const G4ThreeVector &StartPointA, const G4ThreeVector &EndPointB, G4double &NewSafety, G4double &PreviousSafety, G4ThreeVector &PreviousSftOrigin, G4double &LinearStepLength, G4ThreeVector &IntersectionPoint, G4bool *calledNavigator=nullptr)
 
void SetEpsilonStepFor (G4double EpsilonStep)
 
void SetDeltaIntersectionFor (G4double deltaIntersection)
 
void SetNavigatorFor (G4Navigator *fNavigator)
 
void SetChordFinderFor (G4ChordFinder *fCFinder)
 
void SetVerboseFor (G4int fVerbose)
 
G4int GetVerboseFor ()
 
G4double GetDeltaIntersectionFor ()
 
G4double GetEpsilonStepFor ()
 
G4NavigatorGetNavigatorFor ()
 
G4ChordFinderGetChordFinderFor ()
 
void SetSafetyParametersFor (G4bool UseSafety)
 
void AddAdjustementOfFoundIntersection (G4bool UseCorrection)
 
G4bool GetAdjustementOfFoundIntersection ()
 
void AdjustIntersections (G4bool UseCorrection)
 
G4bool AreIntersectionsAdjusted ()
 

Private Member Functions

void ReportFieldValue (const G4FieldTrack &locationPV, const char *nameLoc, const G4EquationOfMotion *equation)
 

Private Attributes

unsigned int fMaxSteps = 10000
 
unsigned int fWarnSteps = 1000
 
G4FieldTrackptrInterMedFT [max_depth+1]
 
unsigned long int fNumCalls = 0
 
unsigned long int fNumAdvanceFull = 0
 
unsigned long int fNumAdvanceGood = 0
 
unsigned long int fNumAdvanceTrials = 0
 

Static Private Attributes

static const G4int max_depth = 10
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VIntersectionLocator
static void printStatus (const G4FieldTrack &startFT, const G4FieldTrack &currentFT, G4double requestStep, G4double safety, G4int stepNum, std::ostream &oss, G4int verboseLevel)
 
- Protected Member Functions inherited from G4VIntersectionLocator
G4FieldTrack ReEstimateEndpoint (const G4FieldTrack &CurrentStateA, const G4FieldTrack &EstimtdEndStateB, G4double linearDistSq, G4double curveDist)
 
G4bool CheckAndReEstimateEndpoint (const G4FieldTrack &CurrentStartA, const G4FieldTrack &EstimatedEndB, G4FieldTrack &RevisedEndPoint, G4int &errorCode)
 
G4ThreeVector GetSurfaceNormal (const G4ThreeVector &CurrentInt_Point, G4bool &validNormal)
 
G4ThreeVector GetGlobalSurfaceNormal (const G4ThreeVector &CurrentE_Point, G4bool &validNormal)
 
G4bool AdjustmentOfFoundIntersection (const G4ThreeVector &A, const G4ThreeVector &CurrentE_Point, const G4ThreeVector &CurrentF_Point, const G4ThreeVector &MomentumDir, const G4bool IntersectAF, G4ThreeVector &IntersectionPoint, G4double &NewSafety, G4double &fPrevSafety, G4ThreeVector &fPrevSftOrigin)
 
void ReportTrialStep (G4int step_no, const G4ThreeVector &ChordAB_v, const G4ThreeVector &ChordEF_v, const G4ThreeVector &NewMomentumDir, const G4ThreeVector &NormalAtEntry, G4bool validNormal)
 
G4bool LocateGlobalPointWithinVolumeAndCheck (const G4ThreeVector &pos)
 
void LocateGlobalPointWithinVolumeCheckAndReport (const G4ThreeVector &pos, const G4String &CodeLocationInfo, G4int CheckMode)
 
void SetCheckMode (G4bool value)
 
G4bool GetCheckMode ()
 
void ReportReversedPoints (std::ostringstream &ossMsg, const G4FieldTrack &StartPointVel, const G4FieldTrack &EndPointVel, G4double NewSafety, G4double epsStep, const G4FieldTrack &CurrentA_PointVelocity, const G4FieldTrack &CurrentB_PointVelocity, const G4FieldTrack &SubStart_PointVelocity, const G4ThreeVector &CurrentE_Point, const G4FieldTrack &ApproxIntersecPointV, G4int sbstp_no, G4int sbstp_no_p, G4int depth)
 
void ReportProgress (std::ostream &oss, const G4FieldTrack &StartPointVel, const G4FieldTrack &EndPointVel, G4int substep_no, const G4FieldTrack &A_PtVel, const G4FieldTrack &B_PtVel, G4double safetyLast, G4int depth=-1)
 
void ReportImmediateHit (const char *MethodName, const G4ThreeVector &StartPosition, const G4ThreeVector &TrialPoint, G4double tolerance, unsigned long int numCalls)
 
- Protected Attributes inherited from G4VIntersectionLocator
G4double kCarTolerance
 
G4int fVerboseLevel = 0
 
G4bool fUseNormalCorrection = false
 
G4bool fCheckMode = false
 
G4NavigatorfiNavigator
 
G4ChordFinderfiChordFinder = nullptr
 
G4double fiEpsilonStep = -1.0
 
G4double fiDeltaIntersection = -1.0
 
G4bool fiUseSafety = false
 
G4NavigatorfHelpingNavigator
 
G4TouchableHistoryfpTouchable = nullptr
 

Detailed Description

Definition at line 47 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 47 of file G4MultiLevelLocator.hh

Constructor & Destructor Documentation

G4MultiLevelLocator::G4MultiLevelLocator ( G4Navigator theNavigator)

Definition at line 37 of file G4MultiLevelLocator.cc.

View newest version in sPHENIX GitHub at line 37 of file G4MultiLevelLocator.cc

References max_depth, ptrInterMedFT, SetMaxSteps(), and SetWarnSteps().

+ Here is the call graph for this function:

G4MultiLevelLocator::~G4MultiLevelLocator ( )

Definition at line 58 of file G4MultiLevelLocator.cc.

View newest version in sPHENIX GitHub at line 58 of file G4MultiLevelLocator.cc

References max_depth, ptrInterMedFT, and ReportStatistics().

+ Here is the call graph for this function:

Member Function Documentation

G4bool G4MultiLevelLocator::EstimateIntersectionPoint ( const G4FieldTrack curveStartPointTangent,
const G4FieldTrack curveEndPointTangent,
const G4ThreeVector trialPoint,
G4FieldTrack intersectPointTangent,
G4bool recalculatedEndPoint,
G4double fPreviousSafety,
G4ThreeVector fPreviousSftOrigin 
)
virtual

Implements G4VIntersectionLocator.

Definition at line 112 of file G4MultiLevelLocator.cc.

View newest version in sPHENIX GitHub at line 112 of file G4MultiLevelLocator.cc

References kdfinder::abs(), G4VIntersectionLocator::AdjustmentOfFoundIntersection(), G4ChordFinder::ApproxCurvePointV(), G4VIntersectionLocator::CheckAndReEstimateEndpoint(), G4VIntegrationDriver::DoesReIntegrate(), CLHEP::Hep3Vector::dot(), FatalException, G4VIntersectionLocator::fiDeltaIntersection, G4VIntersectionLocator::fiEpsilonStep, fMaxSteps, fNumAdvanceFull, fNumAdvanceGood, fNumAdvanceTrials, fNumCalls, G4VIntersectionLocator::fVerboseLevel, fWarnSteps, G4cout, G4endl, G4Exception(), G4ThreadLocal, G4VIntersectionLocator::GetAdjustementOfFoundIntersection(), G4VIntersectionLocator::GetChordFinderFor(), G4FieldTrack::GetCurveLength(), G4VIntersectionLocator::GetEpsilonStepFor(), G4ChordFinder::GetIntegrationDriver(), G4FieldTrack::GetMomentumDir(), G4FieldTrack::GetMomentumDirection(), G4VIntersectionLocator::GetNavigatorFor(), G4FieldTrack::GetPosition(), G4FieldTrack::GetRestMass(), G4VIntersectionLocator::GetSurfaceNormal(), G4VIntersectionLocator::IntersectChord(), JustWarning, G4VIntersectionLocator::kCarTolerance, G4Navigator::LocateGlobalPointWithinVolume(), CLHEP::Hep3Vector::mag(), CLHEP::Hep3Vector::mag2(), max, max_depth, message(), CLHEP::mm, CLHEP::perThousand, G4VIntersectionLocator::printStatus(), ptrInterMedFT, ReportFieldValue(), G4VIntersectionLocator::ReportImmediateHit(), G4VIntersectionLocator::ReportProgress(), G4VIntersectionLocator::ReportReversedPoints(), G4VIntersectionLocator::ReportTrialStep(), G4FieldTrack::SetPosition(), and sqr().

+ Here is the call graph for this function:

void G4MultiLevelLocator::ReportFieldValue ( const G4FieldTrack locationPV,
const char *  nameLoc,
const G4EquationOfMotion equation 
)
private

Definition at line 840 of file G4MultiLevelLocator.cc.

View newest version in sPHENIX GitHub at line 840 of file G4MultiLevelLocator.cc

References G4cout, G4endl, G4EquationOfMotion::GetFieldValue(), G4FieldTrack::GetLabTimeOfFlight(), G4FieldTrack::GetPosition(), CLHEP::Hep3Vector::mag2(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by EstimateIntersectionPoint().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4MultiLevelLocator::ReportStatistics ( )

Definition at line 829 of file G4MultiLevelLocator.cc.

View newest version in sPHENIX GitHub at line 829 of file G4MultiLevelLocator.cc

References fNumAdvanceFull, fNumAdvanceGood, fNumAdvanceTrials, fNumCalls, G4cout, and G4endl.

Referenced by ~G4MultiLevelLocator().

+ Here is the caller graph for this function:

void G4MultiLevelLocator::SetMaxSteps ( unsigned int  valMax)
inline

Definition at line 71 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 71 of file G4MultiLevelLocator.hh

References fMaxSteps.

Referenced by G4MultiLevelLocator().

+ Here is the caller graph for this function:

void G4MultiLevelLocator::SetWarnSteps ( unsigned int  valWarn)
inline

Definition at line 72 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 72 of file G4MultiLevelLocator.hh

References fWarnSteps.

Referenced by G4MultiLevelLocator().

+ Here is the caller graph for this function:

Member Data Documentation

unsigned int G4MultiLevelLocator::fMaxSteps = 10000
private

Definition at line 83 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 83 of file G4MultiLevelLocator.hh

Referenced by EstimateIntersectionPoint(), and SetMaxSteps().

unsigned long int G4MultiLevelLocator::fNumAdvanceFull = 0
private

Definition at line 92 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 92 of file G4MultiLevelLocator.hh

Referenced by EstimateIntersectionPoint(), and ReportStatistics().

unsigned long int G4MultiLevelLocator::fNumAdvanceGood = 0
private

Definition at line 93 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 93 of file G4MultiLevelLocator.hh

Referenced by EstimateIntersectionPoint(), and ReportStatistics().

unsigned long int G4MultiLevelLocator::fNumAdvanceTrials = 0
private

Definition at line 94 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 94 of file G4MultiLevelLocator.hh

Referenced by EstimateIntersectionPoint(), and ReportStatistics().

unsigned long int G4MultiLevelLocator::fNumCalls = 0
private

Definition at line 91 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 91 of file G4MultiLevelLocator.hh

Referenced by EstimateIntersectionPoint(), and ReportStatistics().

unsigned int G4MultiLevelLocator::fWarnSteps = 1000
private

Definition at line 84 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 84 of file G4MultiLevelLocator.hh

Referenced by EstimateIntersectionPoint(), and SetWarnSteps().

const G4int G4MultiLevelLocator::max_depth = 10
staticprivate

Definition at line 82 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 82 of file G4MultiLevelLocator.hh

Referenced by EstimateIntersectionPoint(), G4MultiLevelLocator(), and ~G4MultiLevelLocator().

G4FieldTrack* G4MultiLevelLocator::ptrInterMedFT[max_depth+1]
private

Definition at line 88 of file G4MultiLevelLocator.hh.

View newest version in sPHENIX GitHub at line 88 of file G4MultiLevelLocator.hh

Referenced by EstimateIntersectionPoint(), G4MultiLevelLocator(), and ~G4MultiLevelLocator().


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