ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::IPropagator Class Referenceabstract

Interface class IPropagators It inherits from IAlgTool. More...

#include <IPropagator.h>

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

Public Member Functions

virtual ~IPropagator ()=default
 Virtual destructor.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool and IAlgTool interface methods.

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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ interfaceID()

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

AlgTool and IAlgTool interface methods.

Definition at line 61 of file IPropagator.h.

61{ return IID_IPropagator; }
static const InterfaceID IID_IPropagator("IPropagator", 1, 0)
Interface ID for IPropagators.

◆ 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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ 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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ 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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ propagate() [1/4]

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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ propagate() [2/4]

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, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ propagate() [3/4]

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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ propagate() [4/4]

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

◆ 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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ 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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.

◆ 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::IntersectorWrapper, Trk::RungeKuttaPropagator, and Trk::STEP_Propagator.


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