|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef RungeKuttaPropagator_H
10 #define RungeKuttaPropagator_H
13 #include "GaudiKernel/ServiceHandle.h"
29 class MagneticFieldProperties;
31 class CylinderSurface;
32 class PatternTrackParameters;
144 virtual std::unique_ptr<NeutralParameters>
propagate(
149 bool)
const override final;
153 const EventContext& ctx,
165 const EventContext& ctx,
176 const EventContext& ctx,
182 std::optional<TransportJacobian>&,
190 const EventContext& ctx,
192 std::vector<DestSurf>&,
196 std::vector<unsigned int>&,
205 const EventContext& ctx,
218 const EventContext& ctx,
224 std::optional<TransportJacobian>&,
231 virtual std::optional<Trk::TrackSurfaceIntersection>
intersect(
232 const EventContext& ctx,
241 const EventContext& ctx,
256 const EventContext& ctx,
266 const EventContext& ctx,
277 const EventContext& ctx,
288 const EventContext& ctx,
298 const EventContext& ctx,
313 std::
vector<
unsigned int>&,
328 std::vector<DestSurf>&,
332 std::vector<unsigned int>&,
333 std::vector<const Trk::TrackStateOnSurface*>*&,
334 std::vector<std::pair<std::unique_ptr<Trk::TrackParameters>,
int>>*,
398 "AtlasFieldCacheCondObj",
400 "Name of the Magnetic Field conditions object key"
411 #endif // RungeKuttaPropagator_H
virtual std::optional< Trk::TrackSurfaceIntersection > intersectSurface(const EventContext &, const Surface &, const TrackSurfaceIntersection &, const double, const MagneticFieldProperties &, ParticleHypothesis) const override final
unimplemented intersectSurface
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
virtual StatusCode initialize() override final
virtual std::unique_ptr< TrackParameters > propagate(const EventContext &ctx, const TrackParameters &, const Surface &, const PropDirection, const BoundaryCheck &, const MagneticFieldProperties &, std::optional< TransportJacobian > &, double &, ParticleHypothesis, bool, const TrackingVolume *) const override final
Main propagation method with transport jacobian production.
virtual std::unique_ptr< TrackParameters > propagateParameters(const EventContext &ctx, const TrackParameters &, const Surface &, const PropDirection, const BoundaryCheck &, const MagneticFieldProperties &, ParticleHypothesis, bool, const TrackingVolume *) const override final
Main propagation method for parameters only.
interface for track parameter propagation through the magnetic field, using the Trk::PatternTrackPara...
bool const RAWDATA *ch2 const
RungeKuttaPropagator(const std::string &, const std::string &, const IInterface *)
MagField::AtlasFieldCache m_fieldCache
virtual ~RungeKuttaPropagator()=default
virtual std::optional< Trk::TrackSurfaceIntersection > intersect(const EventContext &ctx, const TrackParameters &, const Surface &, const MagneticFieldProperties &, ParticleHypothesis, const TrackingVolume *tvol=nullptr) const override final
Global position together with direction of the trajectory on the surface.
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 override final
Main propagation method for Multi Component state.
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< ComponentParameters > MultiComponentState
std::pair< const Surface *, BoundaryCheck > DestSurf
typedef for input surfaces, boundary check
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
virtual std::unique_ptr< Trk::TrackParameters > propagateT(const EventContext &, const TrackParameters &, std::vector< DestSurf > &, PropDirection, const MagneticFieldProperties &, ParticleHypothesis, std::vector< unsigned int > &, PathLimit &, TimeLimit &, bool, const Trk::TrackingVolume *, std::vector< Trk::HitInfo > *&) const override final
unimplemented propagateT
virtual Trk::ExtrapolationCode propagate(const EventContext &, Trk::ExCellCharged &, Trk::TargetSurfaces &, Trk::TargetSurfaceVector &) const override final
Propagation method needed for StepEngine.
Eigen::Matrix< double, 3, 1 > Vector3D
virtual std::unique_ptr< TrackParameters > propagateParameters(const EventContext &ctx, const TrackParameters &, const Surface &, const PropDirection, const BoundaryCheck &, const MagneticFieldProperties &, std::optional< TransportJacobian > &, ParticleHypothesis, bool, const TrackingVolume *) const override final
Main propagation method for parameters only with transport jacobian production.
virtual void globalPositions(const EventContext &ctx, std::deque< Amg::Vector3D > &, const TrackParameters &, const MagneticFieldProperties &, const CylinderBounds &, double, ParticleHypothesis, const TrackingVolume *tvol=nullptr) const override final
GlobalPositions list interface:
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
std::vector< TargetSurface > TargetSurfaceVector
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
virtual std::unique_ptr< NeutralParameters > propagate(const NeutralParameters &, const Surface &, PropDirection, const BoundaryCheck &, bool) const override final
Main propagation method for NeutralParameters.
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 > propagate(const EventContext &ctx, const TrackParameters &, const Surface &, const PropDirection, const BoundaryCheck &, const MagneticFieldProperties &, ParticleHypothesis, bool, const TrackingVolume *) const override final
Main propagation method without transport jacobian production.
virtual std::unique_ptr< TrackParameters > propagate(const EventContext &ctx, const TrackParameters &, std::vector< DestSurf > &, PropDirection, const MagneticFieldProperties &, ParticleHypothesis, std::vector< unsigned int > &, double &, bool, bool, const TrackingVolume *) const override final
The propagation method finds the closest surface.
Cache getInitializedCache(const EventContext &ctx) const