11#ifndef TRKEXRUNGEKUTTAINTERSECTOR_INTERSECTORWRAPPER_H
12#define TRKEXRUNGEKUTTAINTERSECTOR_INTERSECTORWRAPPER_H
15#include "GaudiKernel/ToolHandle.h"
30 const std::string& name,
31 const IInterface* parent);
34 virtual StatusCode
initialize() override final;
35 virtual StatusCode
finalize() override final;
46 bool)
const override final;
54 const EventContext& ctx,
89 std::vector<DestSurf>&,
93 std::vector<unsigned int>&,
98 std::vector<Trk::HitInfo>*&)
const override final
107 virtual std::unique_ptr<TrackParameters>
propagate(
108 const EventContext& ctx,
114 std::optional<TransportJacobian>&,
124 const EventContext& ctx,
131 bool returnCurv =
false,
136 const EventContext& ctx,
144 bool returnCurv = false,
152 const EventContext& ctx,
189 std::vector<DestSurf>&,
193 std::vector<unsigned int>&,
194 std::vector<const Trk::TrackStateOnSurface*>*,
195 std::vector<std::pair<std::unique_ptr<Trk::TrackParameters>,
int>>*,
215 ATH_MSG_ERROR(
"Call to non-implemented multiStatePropagate");
243 bool curvilinear)
const;
251 "Trk::RungeKuttaIntersector/RungeKuttaIntersector"};
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Bounds for a cylindrical Surface.
Interface class IPropagators It inherits from IAlgTool.
ToolHandle< IIntersector > m_intersector
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 override final
Propagation interface without Covariance matrix propagation the pathlength has to be returned for eve...
virtual std::optional< TrackSurfaceIntersection > intersectSurface(const EventContext &, const Surface &, const TrackSurfaceIntersection &, const double, const MagneticFieldProperties &, ParticleHypothesis) const override final
Intersection and Intersector interface:
virtual std::optional< Trk::TrackSurfaceIntersection > intersect(const EventContext &ctx, const TrackParameters &parm, const Surface &sf, const MagneticFieldProperties &mprop, ParticleHypothesis particle=pion, const TrackingVolume *tVol=nullptr) const override final
Intersection interface: The intersection interface might be used by the material service as well to e...
virtual void globalPositions(const EventContext &, std::deque< Amg::Vector3D > &, const TrackParameters &, const MagneticFieldProperties &, const CylinderBounds &, double, ParticleHypothesis, const TrackingVolume *) const override final
GlobalPositions list interface: This is used mostly in pattern recognition in the road finder,...
IntersectorWrapper(const std::string &type, const std::string &name, const IInterface *parent)
void findIntersection(Cache &cache, const TrackParameters ¶meters, const Surface &surface, PropDirection dir=Trk::anyDirection) const
void createParameters(Cache &cache, const Surface &surface, const BoundaryCheck &boundsCheck, bool curvilinear) const
~IntersectorWrapper(void)
virtual std::unique_ptr< Trk::TrackParameters > propagateM(const EventContext &, const TrackParameters &, std::vector< DestSurf > &, PropDirection, const MagneticFieldProperties &, ParticleHypothesis, std::vector< unsigned int > &, std::vector< const Trk::TrackStateOnSurface * > *, std::vector< std::pair< std::unique_ptr< Trk::TrackParameters >, int > > *, double &, bool, bool, const Trk::TrackingVolume *, Trk::ExtrapolationCache *) const override final
unimplemented propagateM
virtual std::unique_ptr< TrackParameters > propagateT(const EventContext &, const TrackParameters &, std::vector< DestSurf > &, PropDirection, const MagneticFieldProperties &, ParticleHypothesis, std::vector< unsigned int > &, PathLimit &, TimeLimit &, bool, const TrackingVolume *, std::vector< Trk::HitInfo > *&) const override final
Propagate parameters and covariance with search of closest surface time included.
virtual StatusCode initialize() override final
virtual std::unique_ptr< NeutralParameters > propagate(const NeutralParameters &, const Surface &, PropDirection, const BoundaryCheck &, bool) const override final
N 0) Neutral parameters method
ToolHandle< IPropagator > m_linePropagator
virtual Trk::MultiComponentState multiStatePropagate(const EventContext &, const MultiComponentState &, const Surface &, const MagneticFieldProperties &, const PropDirection, const BoundaryCheck &, const ParticleHypothesis) const override final
unimplemented multiStatePropagate
virtual StatusCode finalize() override final
magnetic field properties to steer the behavior of the extrapolation
Abstract Base Class for tracking surfaces.
An intersection with a Surface is given by.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
This class represents the jacobian for transforming initial track parameters to new track parameters ...
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
std::vector< ComponentParameters > MultiComponentState
ParametersBase< NeutralParametersDim, Neutral > NeutralParameters
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
std::pair< const Surface *, BoundaryCheck > DestSurf
typedef for input surfaces, boundary check
ParametersBase< TrackParametersDim, Charged > TrackParameters
std::optional< TrackSurfaceIntersection > m_intersection
std::unique_ptr< TrackParameters > m_parameters