ATLAS Offline Software
Public Member Functions | Static Public Member Functions | List of all members
Trk::IPropagator Class Referenceabstract

#include <IPropagator.h>

Inheritance diagram for Trk::IPropagator:
Collaboration diagram for Trk::IPropagator:

Public Member Functions

virtual ~IPropagator ()=default
 Virtual destructor. More...
 
virtual std::unique_ptr< NeutralParameterspropagate (const NeutralParameters &parameters, const Surface &sf, PropDirection dir, const BoundaryCheck &bcheck, bool returnCurv=false) const =0
 Main propagation method for NeutralParameters. More...
 
virtual std::unique_ptr< TrackParameterspropagate (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< TrackParameterspropagate (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< TrackParameterspropagateT (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< TrackParameterspropagateM (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< TrackParameterspropagate (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< TrackParameterspropagateParameters (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< TrackParameterspropagateParameters (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< TrackSurfaceIntersectionintersect (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< TrackSurfaceIntersectionintersectSurface (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...
 

Detailed Description

Interface class IPropagators It inherits from IAlgTool.

Definition at line 54 of file IPropagator.h.

Constructor & Destructor Documentation

◆ ~IPropagator()

virtual Trk::IPropagator::~IPropagator ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ globalPositions()

virtual void Trk::IPropagator::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
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.

◆ interfaceID()

static const InterfaceID& Trk::IPropagator::interfaceID ( )
inlinestatic

AlgTool and IAlgTool interface methods.

Definition at line 61 of file IPropagator.h.

61 { return IID_IPropagator; }

◆ intersect()

virtual std::optional<TrackSurfaceIntersection> Trk::IPropagator::intersect ( const EventContext &  ctx,
const TrackParameters parm,
const Surface sf,
const MagneticFieldProperties mprop,
ParticleHypothesis  particle = pion,
const TrackingVolume tVol = nullptr 
) const
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.

◆ intersectSurface()

virtual std::optional<TrackSurfaceIntersection> Trk::IPropagator::intersectSurface ( const EventContext &  ctx,
const Surface surface,
const TrackSurfaceIntersection trackIntersection,
const double  qOverP,
const MagneticFieldProperties mft,
ParticleHypothesis  particle 
) const
pure virtual

Intersection and Intersector interface:

Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.

◆ multiStatePropagate()

virtual Trk::MultiComponentState Trk::IPropagator::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
pure virtual

Main propagation method for Multi Component state.

Implemented in Trk::RungeKuttaPropagator, Trk::STEP_Propagator, and Trk::IntersectorWrapper.

◆ propagate() [1/5]

virtual std::unique_ptr<TrackParameters> Trk::IPropagator::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
pure virtual

Main propagation method without transport jacobian production.

Implemented in Trk::STEP_Propagator, Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.

◆ propagate() [2/5]

virtual std::unique_ptr<TrackParameters> Trk::IPropagator::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
pure virtual

Main propagation method with transport jacobian production.

Implemented in Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.

◆ propagate() [3/5]

virtual std::unique_ptr<TrackParameters> Trk::IPropagator::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
pure virtual

Propagate parameters and covariance with search of closest surface.

Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.

◆ propagate() [4/5]

virtual Trk::ExtrapolationCode Trk::IPropagator::propagate ( const EventContext &  ctx,
Trk::ExCellCharged eCell,
Trk::TargetSurfaces sfs,
Trk::TargetSurfaceVector solutions 
) const
pure virtual

Propagation method needed for StepEngine.

Implemented in Trk::RungeKuttaPropagator, Trk::STEP_Propagator, and Trk::IntersectorWrapper.

◆ propagate() [5/5]

virtual std::unique_ptr<NeutralParameters> Trk::IPropagator::propagate ( const NeutralParameters parameters,
const Surface sf,
PropDirection  dir,
const BoundaryCheck bcheck,
bool  returnCurv = false 
) const
pure virtual

Main propagation method for NeutralParameters.

Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.

◆ propagateM()

virtual std::unique_ptr<TrackParameters> Trk::IPropagator::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
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.

◆ propagateParameters() [1/2]

virtual std::unique_ptr<TrackParameters> Trk::IPropagator::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
pure virtual

Main propagation method for parameters only.

Without transport jacobian production

Implemented in Trk::STEP_Propagator, Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.

◆ propagateParameters() [2/2]

virtual std::unique_ptr<TrackParameters> Trk::IPropagator::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
pure virtual

Main propagation method for parameters only with transport jacobian production.

Implemented in Trk::IntersectorWrapper, and Trk::RungeKuttaPropagator.

◆ propagateT()

virtual std::unique_ptr<TrackParameters> Trk::IPropagator::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
pure virtual

Propagate parameters and covariance with search of closest surface time included.

Implemented in Trk::STEP_Propagator, Trk::RungeKuttaPropagator, and Trk::IntersectorWrapper.


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