47 #ifndef G4ITPATHFINDER_HH 48 #define G4ITPATHFINDER_HH 1 130 fLastLocatedPosition= Big3Vector;
131 fSafetyLocation= Big3Vector;
132 fPreSafetyLocation= Big3Vector;
133 fPreStepLocation= Big3Vector;
135 fPreSafetyMinValue= -1.0;
136 fMinSafety_PreStepPt= -1.0;
137 fMinSafety_atSafLocation= -1.0;
140 fPreStepCenterRenewed=
false;
142 fNoGeometriesLimiting= 0;
144 for(
G4int num=0; num< G4ITNavigator::fMaxNav; ++num )
146 fLimitTruth[num] =
false;
148 fCurrentStepSize[num] = -1.0;
149 fLocatedVolume[num] = 0;
150 fPreSafetyValues[num]= -1.0;
151 fCurrentPreStepSafety[num] = -1.0;
152 fNewSafetyComputed[num]= -1.0;
167 G4double pCurrentProposedStepLength,
182 G4bool relativeSearch=
true);
203 inline G4bool IsParticleLooping()
const;
205 inline G4double GetCurrentSafety()
const;
207 inline G4double GetMinimumStep()
const;
210 inline unsigned int GetNumberGeometriesLimitingStep()
const;
221 void EnableParallelNavigation(
G4bool enableChoice=
true );
232 inline G4int GetMaxLoopCount()
const;
233 inline void SetMaxLoopCount(
G4int new_max );
239 inline void MovePoint();
251 void PushPostSafetyToPreSafety();
287 inline G4ITNavigator* GetNavigator(
G4int n)
const;
301 G4ITNavigator* fpNavigator[G4ITNavigator::fMaxNav];
321 if( (navId < G4ITNavigator::fMaxNav) && (navId >=0) ) { vol= fpTrackState->fLocatedVolume[navId]; }
327 G4int old= fVerboseLevel; fVerboseLevel= newLevel;
return old;
332 return fpTrackState->fMinStep;
337 unsigned int noGeometries=fpTrackState->fNoGeometriesLimiting;
343 return fpTrackState->fMinSafety_PreStepPt;
348 fpTrackState->fRelocatedPoint=
true;
353 if( (n>fNoActiveNavigators)||(n<0)) { n=0; }
354 return fpNavigator[
n];
359 globalCenterPoint= fpTrackState->fSafetyLocation;
361 return fpTrackState->fNewSafetyComputed[ navId ];
368 globalCenterPoint= fpTrackState->fPreSafetyLocation;
369 minSafety= fpTrackState->fPreSafetyMinValue;
371 return fpTrackState->fPreSafetyValues[ navId ];
G4ITMultiNavigator * fpMultiNavigator
#define fCurrentPreStepSafety
G4double ObtainSafety(G4int navId, G4ThreeVector &globalCenterPoint)
G4double fMinSafety_PreStepPt
G4double LastPreSafety(G4int navId, G4ThreeVector &globalCenterPoint, G4double &minSafety)
static const G4double kInfinity
CLHEP::Hep3Vector G4ThreeVector
G4bool fPreStepCenterRenewed
G4ThreeVector fSafetyLocation
G4double GetCurrentSafety() const
G4ThreeVector fLastLocatedPosition
#define fFieldExertedForce
static G4ThreadLocal G4ITPathFinder * fpPathFinder
unsigned int GetNumberGeometriesLimitingStep() const
G4int fNoGeometriesLimiting
static const G4double minSafety
G4bool fFieldExertedForce
G4double fMinSafety_atSafLocation
G4ITNavigator * GetNavigator(G4int n) const
G4int fNoActiveNavigators
G4double GetMinimumStep() const
std::map< G4String, G4AttDef > * GetInstance(const G4String &storeKey, G4bool &isNew)
G4ThreeVector fPreStepLocation
G4int SetVerboseLevel(G4int lev=-1)
G4ThreeVector fPreSafetyLocation
G4double fPreSafetyMinValue
G4ITTransportationManager * fpTransportManager
G4VPhysicalVolume * GetLocatedVolume(G4int navId) const
#define fNewSafetyComputed