Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4ErrorPropagationNavigator Class Reference

#include <G4ErrorPropagationNavigator.hh>

Inheritance diagram for G4ErrorPropagationNavigator:
G4Navigator

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 ()
 
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 ()
 
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 ( )

Definition at line 43 of file G4ErrorPropagationNavigator.cc.

44  : G4Navigator()
45 {
46 }
G4ErrorPropagationNavigator::~G4ErrorPropagationNavigator ( )

Definition at line 50 of file G4ErrorPropagationNavigator.cc.

51 {
52 }

Member Function Documentation

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

Reimplemented from G4Navigator.

Definition at line 126 of file G4ErrorPropagationNavigator.cc.

References G4Navigator::ComputeSafety(), G4ErrorTarget::GetDistanceFromPoint(), G4ErrorPropagatorData::GetErrorPropagatorData(), and G4ErrorPropagatorData::GetTarget().

Referenced by ComputeStep().

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 }
const XML_Char * target
virtual G4double GetDistanceFromPoint(const G4ThreeVector &, const G4ThreeVector &) const
const G4ErrorTarget * GetTarget(G4bool mustExist=0) const
double G4double
Definition: G4Types.hh:76
static G4ErrorPropagatorData * GetErrorPropagatorData()
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
G4double G4ErrorPropagationNavigator::ComputeStep ( const G4ThreeVector pGlobalPoint,
const G4ThreeVector pDirection,
const G4double  pCurrentProposedStepLength,
G4double pNewSafety 
)
virtual

Reimplemented from G4Navigator.

Definition at line 57 of file G4ErrorPropagationNavigator.cc.

References ComputeSafety(), G4Navigator::ComputeStep(), DBL_MAX, G4ErrorTarget::Dump(), G4cout, G4endl, G4ErrorState_Propagating, G4ErrorState_TargetCloserThanBoundary, G4ErrorTarget::GetDistanceFromPoint(), G4ErrorPropagatorData::GetErrorPropagatorData(), G4ErrorPropagatorData::GetTarget(), G4ErrorPropagatorData::SetState(), and G4ErrorPropagatorData::verbose().

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
112  if( G4ErrorPropagatorData::verbose() >= 3 )
113  {
114  G4cout << "G4ErrorPropagationNavigator::ComputeStep()" << G4endl
115  << " Step: " << Step << ", ComputeSafety: " << pNewSafety
116  << G4endl;
117  }
118 #endif
119 
120  return Step;
121 }
virtual G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
Definition: G4Navigator.cc:701
const XML_Char * target
virtual void Dump(const G4String &msg) const =0
void SetState(G4ErrorState sta)
G4GLOB_DLL std::ostream G4cout
G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
Definition: Step.hh:41
virtual G4double GetDistanceFromPoint(const G4ThreeVector &, const G4ThreeVector &) const
const G4ErrorTarget * GetTarget(G4bool mustExist=0) const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
static G4ErrorPropagatorData * GetErrorPropagatorData()
#define DBL_MAX
Definition: templates.hh:83

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