Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ErrorPropagationNavigator Class Reference

#include <G4ErrorPropagationNavigator.hh>

+ Inheritance diagram for G4ErrorPropagationNavigator:

Public Member Functions

 G4ErrorPropagationNavigator ()
 
 ~G4ErrorPropagationNavigator ()
 
G4double ComputeStep (const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
 
G4double ComputeSafety (const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
 
- Public Member Functions inherited from G4Navigator
 G4Navigator ()
 
virtual ~G4Navigator ()
 
virtual G4double ComputeStep (const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
 
G4double CheckNextStep (const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
 
virtual G4VPhysicalVolumeResetHierarchyAndLocate (const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &h)
 
virtual G4VPhysicalVolumeLocateGlobalPointAndSetup (const G4ThreeVector &point, const G4ThreeVector *direction=0, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
 
virtual void LocateGlobalPointWithinVolume (const G4ThreeVector &position)
 
void LocateGlobalPointAndUpdateTouchableHandle (const G4ThreeVector &position, const G4ThreeVector &direction, G4TouchableHandle &oldTouchableToUpdate, const G4bool RelativeSearch=true)
 
void LocateGlobalPointAndUpdateTouchable (const G4ThreeVector &position, const G4ThreeVector &direction, G4VTouchable *touchableToUpdate, const G4bool RelativeSearch=true)
 
void LocateGlobalPointAndUpdateTouchable (const G4ThreeVector &position, G4VTouchable *touchableToUpdate, const G4bool RelativeSearch=true)
 
void SetGeometricallyLimitedStep ()
 
virtual G4double ComputeSafety (const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
 
G4VPhysicalVolumeGetWorldVolume () const
 
void SetWorldVolume (G4VPhysicalVolume *pWorld)
 
G4GRSVolumeCreateGRSVolume () const
 
G4GRSSolidCreateGRSSolid () const
 
G4TouchableHistoryCreateTouchableHistory () const
 
G4TouchableHistoryCreateTouchableHistory (const G4NavigationHistory *) const
 
virtual G4TouchableHistoryHandle CreateTouchableHistoryHandle () const
 
virtual G4ThreeVector GetLocalExitNormal (G4bool *valid)
 
virtual G4ThreeVector GetLocalExitNormalAndCheck (const G4ThreeVector &point, G4bool *valid)
 
virtual G4ThreeVector GetGlobalExitNormal (const G4ThreeVector &point, G4bool *valid)
 
G4int GetVerboseLevel () const
 
void SetVerboseLevel (G4int level)
 
G4bool IsActive () const
 
void Activate (G4bool flag)
 
G4bool EnteredDaughterVolume () const
 
G4bool ExitedMotherVolume () const
 
void CheckMode (G4bool mode)
 
G4bool IsCheckModeActive () const
 
void SetPushVerbosity (G4bool mode)
 
void PrintState () const
 
const G4AffineTransformGetGlobalToLocalTransform () const
 
const G4AffineTransform GetLocalToGlobalTransform () const
 
G4AffineTransform GetMotherToDaughterTransform (G4VPhysicalVolume *dVolume, G4int dReplicaNo, EVolume dVolumeType)
 
void ResetStackAndState ()
 
G4int SeverityOfZeroStepping (G4int *noZeroSteps) const
 
G4ThreeVector GetCurrentLocalCoordinate () const
 
G4ThreeVector NetTranslation () const
 
G4RotationMatrix NetRotation () const
 
void EnableBestSafety (G4bool value=false)
 

Additional Inherited Members

- Protected Member Functions inherited from G4Navigator
void SetSavedState ()
 
void RestoreSavedState ()
 
virtual void ResetState ()
 
G4ThreeVector ComputeLocalPoint (const G4ThreeVector &rGlobPoint) const
 
G4ThreeVector ComputeLocalAxis (const G4ThreeVector &pVec) const
 
EVolume VolumeType (const G4VPhysicalVolume *pVol) const
 
EVolume CharacteriseDaughters (const G4LogicalVolume *pLog) const
 
G4int GetDaughtersRegularStructureId (const G4LogicalVolume *pLog) const
 
virtual void SetupHierarchy ()
 
- Protected Attributes inherited from G4Navigator
G4double kCarTolerance
 
G4NavigationHistory fHistory
 
G4bool fEnteredDaughter
 
G4bool fExitedMother
 
G4bool fWasLimitedByGeometry
 
G4ThreeVector fStepEndPoint
 
G4ThreeVector fLastStepEndPointLocal
 
G4int fVerbose
 

Detailed Description

Definition at line 50 of file G4ErrorPropagationNavigator.hh.

Constructor & Destructor Documentation

◆ G4ErrorPropagationNavigator()

G4ErrorPropagationNavigator::G4ErrorPropagationNavigator ( )

Definition at line 43 of file G4ErrorPropagationNavigator.cc.

44 : G4Navigator()
45{
46}

◆ ~G4ErrorPropagationNavigator()

G4ErrorPropagationNavigator::~G4ErrorPropagationNavigator ( )

Definition at line 50 of file G4ErrorPropagationNavigator.cc.

51{
52}

Member Function Documentation

◆ ComputeSafety()

G4double G4ErrorPropagationNavigator::ComputeSafety ( const G4ThreeVector globalpoint,
const G4double  pProposedMaxLength = DBL_MAX,
const G4bool  keepState = true 
)
virtual

Reimplemented from G4Navigator.

Definition at line 125 of file G4ErrorPropagationNavigator.cc.

129{
130 G4double newSafety = G4Navigator::ComputeSafety(pGlobalpoint,
131 pMaxLength, keepState);
132
133 G4ErrorPropagatorData *g4edata
135
136 if (g4edata !=0)
137 {
138 const G4ErrorTarget* target = g4edata->GetTarget();
139 if( target != 0 )
140 {
141 G4double distance = target->GetDistanceFromPoint(pGlobalpoint);
142
143 if(distance<newSafety)
144 {
145 newSafety = distance;
146 }
147 }
148 }
149 return newSafety;
150}
double G4double
Definition: G4Types.hh:64
const G4ErrorTarget * GetTarget(G4bool mustExist=0) const
static G4ErrorPropagatorData * GetErrorPropagatorData()
virtual G4double GetDistanceFromPoint(const G4ThreeVector &, const G4ThreeVector &) const
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)

Referenced by ComputeStep().

◆ ComputeStep()

G4double G4ErrorPropagationNavigator::ComputeStep ( const G4ThreeVector pGlobalPoint,
const G4ThreeVector pDirection,
const G4double  pCurrentProposedStepLength,
G4double pNewSafety 
)
virtual

Reimplemented from G4Navigator.

Definition at line 56 of file G4ErrorPropagationNavigator.cc.

61{
62 G4double Step = G4Navigator::ComputeStep(pGlobalPoint, pDirection,
63 pCurrentProposedStepLength,
64 pNewSafety);
65
66 G4ErrorPropagatorData * g4edata
68
69 if (g4edata !=0)
70 {
71 const G4ErrorTarget* target = g4edata->GetTarget();
72 if( target != 0 )
73 {
74 G4double StepPlane= target->GetDistanceFromPoint(pGlobalPoint,pDirection);
75
76 if( StepPlane < 0. ) // Negative means target is crossed, will not be found
77 {
78 StepPlane = DBL_MAX;
79 }
80#ifdef G4VERBOSE
82 {
83 G4cout << "G4ErrorPropagationNavigator::ComputeStep()" << G4endl
84 << " Target step: " << StepPlane
85 << ", Transportation step: " << Step << G4endl;
86 target->Dump( "G4ErrorPropagationNavigator::ComputeStep Target " );
87 }
88#endif
89
90 if(StepPlane<Step)
91 {
92#ifdef G4VERBOSE
94 {
95 G4cout << "G4ErrorPropagationNavigator::ComputeStep()" << G4endl
96 << " TargetCloserThanBoundary: " << StepPlane << " < "
97 << Step << G4endl;
98 }
99#endif
100 Step = StepPlane;
102 }
103 else
104 {
106 }
107 }
108 }
109 pNewSafety = ComputeSafety(pGlobalPoint, pCurrentProposedStepLength);
110
111#ifdef G4VERBOSE
113 {
114 G4cout << "G4ErrorPropagationNavigator::ComputeStep()" << G4endl
115 << " Step: " << Step << ", ComputeSafety: " << pNewSafety
116 << G4endl;
117 }
118#endif
119
120 return Step;
121}
@ G4ErrorState_TargetCloserThanBoundary
@ G4ErrorState_Propagating
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cout
G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
void SetState(G4ErrorState sta)
virtual void Dump(const G4String &msg) const =0
virtual G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
Definition: G4Navigator.cc:699
#define DBL_MAX
Definition: templates.hh:83

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