ATLAS Offline Software
IActsExtrapolationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSGEOMETRYINTERFACES_IACTSEXTRAPOLATIONTOOL_H
6 #define ACTSGEOMETRYINTERFACES_IACTSEXTRAPOLATIONTOOL_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 
22 using ActsRecordedMaterial = Acts::MaterialInteractor::result_type;
25  std::pair<std::vector<Acts::detail::Step>, ActsRecordedMaterial>;
26 
27 
28 
29 class IActsExtrapolationTool : virtual public IAlgTool {
30  public:
31 
33 
34  virtual
36  propagationSteps(const EventContext& ctx,
37  const Acts::BoundTrackParameters& startParameters,
38  Acts::Direction navDir = Acts::Direction::Forward(),
39  double pathLimit = std::numeric_limits<double>::max()) const = 0;
40 
41  virtual
42  std::optional<const Acts::BoundTrackParameters>
43  propagate(const EventContext& ctx,
44  const Acts::BoundTrackParameters& startParameters,
45  Acts::Direction navDir = Acts::Direction::Forward(),
46  double pathLimit = std::numeric_limits<double>::max()) const = 0;
47 
48  virtual
50  propagationSteps(const EventContext& ctx,
51  const Acts::BoundTrackParameters& startParameters,
52  const Acts::Surface& target,
53  Acts::Direction navDir = Acts::Direction::Forward(),
54  double pathLimit = std::numeric_limits<double>::max()) const = 0;
55 
56  virtual
57  std::optional<const Acts::BoundTrackParameters>
58  propagate(const EventContext& ctx,
59  const Acts::BoundTrackParameters& startParameters,
60  const Acts::Surface& target,
61  Acts::Direction navDir = Acts::Direction::Forward(),
62  double pathLimit = std::numeric_limits<double>::max()) const = 0;
63 
64 
65  virtual
66  Acts::MagneticFieldContext getMagneticFieldContext(const EventContext& ctx) const = 0;
67 };
68 
69 #endif
IActsExtrapolationTool::propagate
virtual std::optional< const 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
ActsGeometryContext.h
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
IActsExtrapolationTool::DeclareInterfaceID
DeclareInterfaceID(IActsExtrapolationTool, 1, 0)
ActsRecordedMaterial
Acts::MaterialInteractor::result_type ActsRecordedMaterial
Using some short hands for Recorded Material.
Definition: IActsExtrapolationTool.h:22
IActsExtrapolationTool
Definition: IActsExtrapolationTool.h:29
IActsExtrapolationTool::getMagneticFieldContext
virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext &ctx) const =0
AthAlgTool.h
ParticleHypothesis.h
IActsExtrapolationTool::propagate
virtual std::optional< const 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
copySelective.target
string target
Definition: copySelective.py:36
IActsExtrapolationTool::propagationSteps
virtual ActsPropagationOutput propagationSteps(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, Acts::Direction navDir=Acts::Direction::Forward(), double pathLimit=std::numeric_limits< double >::max()) const =0
IActsExtrapolationTool::propagationSteps
virtual ActsPropagationOutput 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
ActsPropagationOutput
std::pair< std::vector< Acts::detail::Step >, ActsRecordedMaterial > ActsPropagationOutput
Finally the output of the propagation test.
Definition: IActsExtrapolationTool.h:25