47 #ifndef G4PropagatorInField_hh
48 #define G4PropagatorInField_hh 1
G4double GetZeroStepThreshold()
G4FieldManager * fCurrentFieldMgr
void SetEpsilonStep(G4double newEps)
void SetNavigatorForPropagating(G4Navigator *SimpleOrMultiNavigator)
G4int GetMaxLoopCount() const
G4Navigator * GetNavigatorForPropagating()
void SetIntersectionLocator(G4VIntersectionLocator *pLocator)
G4VCurvedTrajectoryFilter * fpTrajectoryFilter
std::vector< G4ThreeVector > * GimmeTrajectoryVectorAndForgetIt() const
CLHEP::Hep3Vector G4ThreeVector
void SetThresholdNoZeroStep(G4int noAct, G4int noHarsh, G4int noAbandon)
void PrintStepLengthDiagnostic(G4double currentProposedStepLength, G4double decreaseFactor, G4double stepTrial, const G4FieldTrack &aFieldTrack)
G4double fLast_ProposedStepLength
G4ThreeVector EndPosition() const
void SetUseSafetyForOptimization(G4bool)
G4double GetDeltaIntersection() const
G4ThreeVector EndMomentumDir() const
void RefreshIntersectionLocator()
G4PropagatorInField(G4Navigator *theNavigator, G4FieldManager *detectorFieldMgr, G4VIntersectionLocator *vLocator=0)
G4ThreeVector fPreviousSftOrigin
void SetVerboseTrace(G4bool enable)
G4double fFull_CurveLen_of_LastAttempt
G4bool fUseSafetyForOptimisation
G4double GetMaximumEpsilonStep() const
G4int SetVerboseLevel(G4int verbose)
G4bool IsFirstStepInVolume()
G4FieldTrack GetEndState() const
G4EquationOfMotion * GetCurrentEquationOfMotion()
void ReportLoopingParticle(G4int count, double StepTaken, G4VPhysicalVolume *pPhysVol)
G4int GetVerboseLevel() const
G4double fZeroStepThreshold
G4double fLargestAcceptableStep
G4bool GetUseSafetyForOptimization()
void SetZeroStepThreshold(G4double newLength)
G4double GetDeltaOneStep() const
G4bool IsLastStepInVolume()
G4FieldManager * FindAndSetFieldManager(G4VPhysicalVolume *pCurrentPhysVol)
void SetMaxLoopCount(G4int new_max)
G4double ComputeStep(G4FieldTrack &pFieldTrack, G4double pCurrentProposedStepLength, G4double &pNewSafety, G4VPhysicalVolume *pPhysVol=0)
G4int GetThresholdNoZeroSteps(G4int i)
G4int fSevereActionThreshold_NoZeroSteps
G4bool IsParticleLooping() const
void ReportStuckParticle(G4int noZeroSteps, G4double proposedStep, G4double lastTriedStep, G4VPhysicalVolume *physVol)
G4ChordFinder * GetChordFinder()
G4FieldManager * GetCurrentFieldManager()
G4bool fFirstStepInVolume
void SetMinimumEpsilonStep(G4double newEpsMin)
G4FieldManager * fDetectorFieldMgr
G4bool IntersectChord(const G4ThreeVector &StartPointA, const G4ThreeVector &EndPointB, G4double &NewSafety, G4double &LinearStepLength, G4ThreeVector &IntersectionPoint)
void SetTrajectoryFilter(G4VCurvedTrajectoryFilter *filter)
void ClearPropagatorState()
G4bool fParticleIsLooping
G4int fAbandonThreshold_NoZeroSteps
G4double GetMinimumEpsilonStep() const
G4FieldTrack End_PointAndTangent
void SetLargestAcceptableStep(G4double newBigDist)
void SetDetectorFieldManager(G4FieldManager *newGlobalFieldManager)
void SetMaximumEpsilonStep(G4double newEpsMax)
G4double GetLargestAcceptableStep()
G4int fActionThreshold_NoZeroSteps
G4VIntersectionLocator * GetIntersectionLocator()
G4double GetEpsilonStep() const
G4VIntersectionLocator * fIntersectionLocator
void printStatus(const G4FieldTrack &startFT, const G4FieldTrack ¤tFT, G4double requestStep, G4double safety, G4int step, G4VPhysicalVolume *startVolume)