ATLAS Offline Software
IExtrapolationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSGEOMETRYINTERFACES_ActsTrkIExtrapolationTool_H
6 #define ACTSGEOMETRYINTERFACES_ActsTrkIExtrapolationTool_H
7 
9 #include "GaudiKernel/IInterface.h"
10 #include "GaudiKernel/IAlgTool.h"
11 #include "GaudiKernel/EventContext.h"
13 
15 #include "Acts/MagneticField/MagneticFieldContext.hpp"
16 
17 #include "Acts/Propagator/MaterialInteractor.hpp"
18 #include "Acts/Propagator/detail/SteppingLogger.hpp"
19 #include "Acts/EventData/TrackParameters.hpp"
20 
21 
22 namespace ActsTrk {
24  class IExtrapolationTool : virtual public IAlgTool {
25  public:
28  using RecordedMaterial = Acts::MaterialInteractor::result_type;
30  using PropagationOutput = std::pair<std::vector<Acts::detail::Step>,
42  virtual PropagationOutput propagationSteps(const EventContext& ctx,
43  const Acts::BoundTrackParameters& startParameters,
44  Acts::Direction navDir = Acts::Direction::Forward(),
45  double pathLimit = std::numeric_limits<double>::max()) const = 0;
57  virtual PropagationOutput propagationSteps(const EventContext& ctx,
58  const Acts::BoundTrackParameters& startParameters,
59  const Acts::Surface& target,
60  Acts::Direction navDir = Acts::Direction::Forward(),
61  double pathLimit = std::numeric_limits<double>::max()) const = 0;
74  virtual std::optional<Acts::BoundTrackParameters> propagate(const EventContext& ctx,
75  const Acts::BoundTrackParameters& startParameters,
76  const Acts::Surface& target,
77  Acts::Direction navDir = Acts::Direction::Forward(),
78  double pathLimit = std::numeric_limits<double>::max()) const = 0;
88  virtual std::optional<Acts::BoundTrackParameters> propagate(const EventContext& ctx,
89  const Acts::BoundTrackParameters& startParameters,
90  Acts::Direction navDir = Acts::Direction::Forward(),
91  double pathLimit = std::numeric_limits<double>::max()) const = 0;
95  virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext& ctx) const = 0;
96  };
97 
98 }
99 
100 #endif
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
ActsTrk::IExtrapolationTool::propagationSteps
virtual PropagationOutput propagationSteps(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, Acts::Direction navDir=Acts::Direction::Forward(), double pathLimit=std::numeric_limits< double >::max()) const =0
Extrapolate the track parameters until the end of the world and record the performed steps & the allo...
ActsTrk::IExtrapolationTool::propagate
virtual std::optional< Acts::BoundTrackParameters > propagate(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, Acts::Direction navDir=Acts::Direction::Forward(), double pathLimit=std::numeric_limits< double >::max()) const =0
ActsTrk::IExtrapolationTool::propagate
virtual std::optional< Acts::BoundTrackParameters > propagate(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, const Acts::Surface &target, Acts::Direction navDir=Acts::Direction::Forward(), double pathLimit=std::numeric_limits< double >::max()) const =0
Extrapolates the track parameters from a start to a target surface and returns the extrapolated track...
ActsTrk::IExtrapolationTool::propagationSteps
virtual PropagationOutput propagationSteps(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, const Acts::Surface &target, Acts::Direction navDir=Acts::Direction::Forward(), double pathLimit=std::numeric_limits< double >::max()) const =0
Extrapolate the track parameters from a start to a target surface and record the peformed steps & all...
GeometryContext.h
ActsTrk::IExtrapolationTool::RecordedMaterial
Acts::MaterialInteractor::result_type RecordedMaterial
Abrivation of the recorded material
Definition: IExtrapolationTool.h:28
ActsTrk::IExtrapolationTool::getMagneticFieldContext
virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext &ctx) const =0
Retrieves the magnetic field conditions from the Conditions store & wraps them into a Magnetic field ...
AthAlgTool.h
ActsTrk::IExtrapolationTool::PropagationOutput
std::pair< std::vector< Acts::detail::Step >, RecordedMaterial > PropagationOutput
Abrivation of the recorded steps and the allocated material.
Definition: IExtrapolationTool.h:31
ParticleHypothesis.h
ActsTrk::IExtrapolationTool
Tool to extrapolate bound track parameters.
Definition: IExtrapolationTool.h:24
ActsTrk::IExtrapolationTool::DeclareInterfaceID
DeclareInterfaceID(ActsTrk::IExtrapolationTool, 1, 0)
copySelective.target
string target
Definition: copySelective.py:36
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MdtCalibInput.h:31