ATLAS Offline Software
|
#include <IPropagator.h>
Public Member Functions | |
virtual | ~IPropagator ()=default |
Virtual destructor. More... | |
virtual std::unique_ptr< NeutralParameters > | propagate (const NeutralParameters ¶meters, const Surface &sf, PropDirection dir, const BoundaryCheck &bcheck, bool returnCurv=false) const =0 |
Main propagation method for NeutralParameters. More... | |
virtual std::unique_ptr< TrackParameters > | propagate (const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir, const BoundaryCheck &bcheck, const MagneticFieldProperties &mprop, ParticleHypothesis particle=pion, bool returnCurv=false, const TrackingVolume *tVol=nullptr) const =0 |
Main propagation method without transport jacobian production. More... | |
virtual Trk::MultiComponentState | multiStatePropagate (const EventContext &ctx, const MultiComponentState &multiComponentState, const Surface &surface, const MagneticFieldProperties &fieldProperties, const PropDirection direction=Trk::anyDirection, const BoundaryCheck &boundaryCheck=true, const ParticleHypothesis particleHypothesis=nonInteracting) const =0 |
Main propagation method for Multi Component state. More... | |
virtual std::unique_ptr< TrackParameters > | propagate (const EventContext &ctx, const TrackParameters &parm, std::vector< DestSurf > &sfs, PropDirection dir, const MagneticFieldProperties &mprop, ParticleHypothesis particle, std::vector< unsigned int > &solutions, double &path, bool usePathLim=false, bool returnCurv=false, const TrackingVolume *tVol=nullptr) const =0 |
Propagate parameters and covariance with search of closest surface. More... | |
virtual std::unique_ptr< TrackParameters > | propagateT (const EventContext &ctx, const TrackParameters &parm, std::vector< DestSurf > &sfs, PropDirection dir, const MagneticFieldProperties &mprop, ParticleHypothesis particle, std::vector< unsigned int > &solutions, PathLimit &pathLim, TimeLimit &timeLim, bool returnCurv, const TrackingVolume *tVol, std::vector< Trk::HitInfo > *&hitVector) const =0 |
Propagate parameters and covariance with search of closest surface time included. More... | |
virtual std::unique_ptr< TrackParameters > | propagateM (const EventContext &ctx, const TrackParameters &parm, std::vector< DestSurf > &sfs, PropDirection dir, const MagneticFieldProperties &mprop, ParticleHypothesis particle, std::vector< unsigned int > &solutions, std::vector< const Trk::TrackStateOnSurface * > *&matstates, std::vector< std::pair< std::unique_ptr< Trk::TrackParameters >, int >> *intersections, double &path, bool usePathLim=false, bool returnCurv=false, const TrackingVolume *tVol=nullptr, Trk::ExtrapolationCache *cache=nullptr) const =0 |
Propagation interface: The propagation method with internal material collection. More... | |
virtual std::unique_ptr< TrackParameters > | propagate (const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir, const BoundaryCheck &bcheck, const MagneticFieldProperties &mprop, std::optional< TransportJacobian > &jacob, double &pathLength, ParticleHypothesis particle=pion, bool returnCurv=false, const TrackingVolume *tVol=nullptr) const =0 |
Main propagation method with transport jacobian production. More... | |
virtual std::unique_ptr< TrackParameters > | propagateParameters (const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir, const BoundaryCheck &bcheck, const MagneticFieldProperties &mprop, ParticleHypothesis particle=pion, bool returnCurv=false, const TrackingVolume *tVol=nullptr) const =0 |
Main propagation method for parameters only. More... | |
virtual std::unique_ptr< TrackParameters > | propagateParameters (const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir, const BoundaryCheck &bcheck, const MagneticFieldProperties &mprop, std::optional< TransportJacobian > &jacob, ParticleHypothesis particle=pion, bool returnCurv=false, const TrackingVolume *tVol=nullptr) const =0 |
Main propagation method for parameters only with transport jacobian production. More... | |
virtual std::optional< TrackSurfaceIntersection > | intersect (const EventContext &ctx, const TrackParameters &parm, const Surface &sf, const MagneticFieldProperties &mprop, ParticleHypothesis particle=pion, const TrackingVolume *tVol=nullptr) const =0 |
Intersection interface: The intersection interface might be used by the material service as well to estimate the surfaces (sensitive and nonesensitive) while propagation. More... | |
virtual std::optional< TrackSurfaceIntersection > | intersectSurface (const EventContext &ctx, const Surface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP, const MagneticFieldProperties &mft, ParticleHypothesis particle) const =0 |
Intersection and Intersector interface: More... | |
virtual void | globalPositions (const EventContext &ctx, std::deque< Amg::Vector3D > &positionslist, const TrackParameters &parm, const MagneticFieldProperties &mprop, const CylinderBounds &cylbo, double stepSize, ParticleHypothesis particle=pion, const TrackingVolume *tVol=nullptr) const =0 |
GlobalPositions list interface: This is used mostly in pattern recognition in the road finder, the propagation direction is intrinsically given by the sign of the stepSize. More... | |
virtual Trk::ExtrapolationCode | propagate (const EventContext &ctx, Trk::ExCellCharged &eCell, Trk::TargetSurfaces &sfs, Trk::TargetSurfaceVector &solutions) const =0 |
Propagation method needed for StepEngine. More... | |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
AlgTool and IAlgTool interface methods. More... | |
Interface class IPropagators It inherits from IAlgTool.
Definition at line 54 of file IPropagator.h.
|
virtualdefault |
Virtual destructor.
|
pure virtual |
GlobalPositions list interface: This is used mostly in pattern recognition in the road finder, the propagation direction is intrinsically given by the sign of the stepSize.
To avoid memory fragmentation in multiple use of pattern recognition processes and respecting the possible iterative filling of the positions list, the list of GlobalPositions is given by reference through the signature and a void method has been chosen.
Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.
|
inlinestatic |
AlgTool and IAlgTool interface methods.
Definition at line 61 of file IPropagator.h.
|
pure virtual |
Intersection interface: The intersection interface might be used by the material service as well to estimate the surfaces (sensitive and nonesensitive) while propagation.
Implemented in Trk::STEP_Propagator, Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.
|
pure virtual |
Intersection and Intersector interface:
Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.
|
pure virtual |
Main propagation method for Multi Component state.
Implemented in Trk::RungeKuttaPropagator, Trk::STEP_Propagator, and Trk::IntersectorWrapper.
|
pure virtual |
Main propagation method without transport jacobian production.
Implemented in Trk::STEP_Propagator, Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.
|
pure virtual |
Main propagation method with transport jacobian production.
Implemented in Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.
|
pure virtual |
Propagate parameters and covariance with search of closest surface.
Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.
|
pure virtual |
Propagation method needed for StepEngine.
Implemented in Trk::RungeKuttaPropagator, Trk::STEP_Propagator, and Trk::IntersectorWrapper.
|
pure virtual |
Main propagation method for NeutralParameters.
Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.
|
pure virtual |
Propagation interface: The propagation method with internal material collection.
The propagator finds the closest surface.
Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.
|
pure virtual |
Main propagation method for parameters only.
Without transport jacobian production
Implemented in Trk::STEP_Propagator, Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.
|
pure virtual |
Main propagation method for parameters only with transport jacobian production.
Implemented in Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.
|
pure virtual |
Propagate parameters and covariance with search of closest surface time included.
Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.