|
ATLAS Offline Software
|
Go to the documentation of this file.
12 #include "GaudiKernel/SystemOfUnits.h"
33 const std::string&
name,
36 m_intersector (
"Trk::RungeKuttaIntersector/RungeKuttaIntersector"),
39 declareInterface<Trk::IPropagator>(
this);
60 return StatusCode::SUCCESS;
66 return StatusCode::SUCCESS;
69 std::unique_ptr<NeutralParameters>
74 bool curvilinear)
const
79 std::unique_ptr<TrackParameters>
93 return std::move(cache.m_parameters);
96 std::unique_ptr<TrackParameters>
103 std::optional<TransportJacobian>& ,
112 return std::move(cache.m_parameters);
115 std::unique_ptr<TrackParameters>
130 return std::move(cache.m_parameters);
133 std::unique_ptr<TrackParameters>
140 std::optional<TransportJacobian>& ,
148 return std::move(cache.m_parameters);
151 std::optional<Trk::TrackSurfaceIntersection>
161 auto solution = cache.m_intersection;
171 bool curvilinear)
const
229 ATH_MSG_DEBUG(
" requested oppositeMomentum, but pathlength "
238 <<
" intersection at r,phi,z "
239 << std::setw(10) << std::setprecision(1) << cache.
m_intersection->position().perp()
240 << std::setw(9) << std::setprecision(4) << cache.
m_intersection->position().phi()
241 << std::setw(10) << std::setprecision(1) << cache.
m_intersection->position().z()
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...
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
void createParameters(Cache &cache, const Surface &surface, const BoundaryCheck &boundsCheck, bool curvilinear) const
bool msgLvl(const MSG::Level lvl) const
virtual StatusCode initialize() override final
#define ATH_MSG_VERBOSE(x)
~IntersectorWrapper(void)
ToolHandle< IIntersector > m_intersector
virtual ChargedTrackParametersUniquePtr createUniqueTrackParameters(double l1, double l2, double phi, double theat, double qop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const =0
Use the Surface as a ParametersBase constructor, from local parameters - charged.
::StatusCode StatusCode
StatusCode definition for legacy code.
std::optional< TrackSurfaceIntersection > m_intersection
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...
ToolHandle< IPropagator > m_linePropagator
Ensure that the ATLAS eigen extensions are properly loaded.
virtual StatusCode finalize() override final
void findIntersection(Cache &cache, const TrackParameters ¶meters, const Surface &surface, PropDirection dir=Trk::anyDirection) const
Eigen::Matrix< double, 3, 1 > Vector3D
std::unique_ptr< TrackParameters > m_parameters
#define ATH_MSG_WARNING(x)
virtual std::unique_ptr< NeutralParameters > propagate(const NeutralParameters &, const Surface &, PropDirection, const BoundaryCheck &, bool) const override final
N 0) Neutral parameters method
IntersectorWrapper(const std::string &type, const std::string &name, const IInterface *parent)