Geant4  10.02
G4MultiLevelLocator Class Reference

#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=0)
 
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 ()
 
G4Navigator * GetNavigatorFor ()
 
G4ChordFinder * GetChordFinderFor ()
 
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
 
unsigned int fWarnSteps
 
G4FieldTrack * ptrInterMedFT [max_depth+1]
 
unsigned long int fNumCalls
 
unsigned long int fNumAdvanceFull
 
unsigned long int fNumAdvanceGood
 
unsigned long int fNumAdvanceTrials
 

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, double tolerance, unsigned long int numCalls)
 
- Protected Attributes inherited from G4VIntersectionLocator
G4double kCarTolerance
 
G4int fVerboseLevel
 
G4bool fUseNormalCorrection
 
G4bool fCheckMode
 
G4Navigator * fiNavigator
 
G4ChordFinder * fiChordFinder
 
G4double fiEpsilonStep
 
G4double fiDeltaIntersection
 
G4bool fiUseSafety
 
G4Navigator * fHelpingNavigator
 
G4TouchableHistory * fpTouchable
 

Detailed Description

Definition at line 51 of file G4MultiLevelLocator.hh.

Constructor & Destructor Documentation

G4MultiLevelLocator::G4MultiLevelLocator ( G4Navigator *  theNavigator)

Definition at line 40 of file G4MultiLevelLocator.cc.

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

+ Here is the call graph for this function:

G4MultiLevelLocator::~G4MultiLevelLocator ( )

Definition at line 65 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 119 of file G4MultiLevelLocator.cc.

References G4MagInt_Driver::AccurateAdvance(), G4VIntersectionLocator::AdjustmentOfFoundIntersection(), G4ChordFinder::ApproxCurvePointV(), G4VIntersectionLocator::CheckAndReEstimateEndpoint(), 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(), G4MagIntegratorStepper::GetEquationOfMotion(), G4ChordFinder::GetIntegrationDriver(), G4FieldTrack::GetMomentumDir(), G4FieldTrack::GetMomentumDirection(), G4VIntersectionLocator::GetNavigatorFor(), G4FieldTrack::GetPosition(), G4FieldTrack::GetRestMass(), G4MagInt_Driver::GetStepper(), G4VIntersectionLocator::GetSurfaceNormal(), G4VIntersectionLocator::IntersectChord(), JustWarning, G4VIntersectionLocator::kCarTolerance, G4Navigator::LocateGlobalPointWithinVolume(), G4INCL::Math::max(), max_depth, mm, perThousand, G4VIntersectionLocator::printStatus(), ptrInterMedFT, ReportFieldValue(), G4VIntersectionLocator::ReportImmediateHit(), G4VIntersectionLocator::ReportProgress(), G4VIntersectionLocator::ReportReversedPoints(), G4VIntersectionLocator::ReportTrialStep(), G4FieldTrack::SetPosition(), sqr(), and tolerance.

+ Here is the call graph for this function:

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

Definition at line 848 of file G4MultiLevelLocator.cc.

References G4cout, G4endl, G4EquationOfMotion::GetFieldValue(), G4FieldTrack::GetLabTimeOfFlight(), G4FieldTrack::GetPosition(), and position.

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 837 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 75 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 76 of file G4MultiLevelLocator.hh.

References fWarnSteps.

Referenced by G4MultiLevelLocator().

+ Here is the caller graph for this function:

Member Data Documentation

unsigned int G4MultiLevelLocator::fMaxSteps
private

Definition at line 87 of file G4MultiLevelLocator.hh.

Referenced by EstimateIntersectionPoint(), and SetMaxSteps().

unsigned long int G4MultiLevelLocator::fNumAdvanceFull
private

Definition at line 96 of file G4MultiLevelLocator.hh.

Referenced by EstimateIntersectionPoint(), and ReportStatistics().

unsigned long int G4MultiLevelLocator::fNumAdvanceGood
private

Definition at line 96 of file G4MultiLevelLocator.hh.

Referenced by EstimateIntersectionPoint(), and ReportStatistics().

unsigned long int G4MultiLevelLocator::fNumAdvanceTrials
private

Definition at line 96 of file G4MultiLevelLocator.hh.

Referenced by EstimateIntersectionPoint(), and ReportStatistics().

unsigned long int G4MultiLevelLocator::fNumCalls
private

Definition at line 95 of file G4MultiLevelLocator.hh.

Referenced by EstimateIntersectionPoint(), and ReportStatistics().

unsigned int G4MultiLevelLocator::fWarnSteps
private

Definition at line 88 of file G4MultiLevelLocator.hh.

Referenced by EstimateIntersectionPoint(), and SetWarnSteps().

const G4int G4MultiLevelLocator::max_depth =10
staticprivate
G4FieldTrack* G4MultiLevelLocator::ptrInterMedFT[max_depth+1]
private

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