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 
29 
30 
31 class IActsExtrapolationTool : virtual public IAlgTool {
32  public:
33 
35 
36  virtual
38  propagationSteps(const EventContext& ctx,
39  const Acts::BoundTrackParameters& startParameters,
40  Acts::Direction navDir = Acts::Direction::Forward,
41  double pathLimit = std::numeric_limits<double>::max()) const = 0;
42 
43  virtual
44  std::optional<const Acts::CurvilinearTrackParameters>
45  propagate(const EventContext& ctx,
46  const Acts::BoundTrackParameters& startParameters,
47  Acts::Direction navDir = Acts::Direction::Forward,
48  double pathLimit = std::numeric_limits<double>::max()) const = 0;
49 
50  virtual
52  propagationSteps(const EventContext& ctx,
53  const Acts::BoundTrackParameters& startParameters,
54  const Acts::Surface& target,
55  Acts::Direction navDir = Acts::Direction::Forward,
56  double pathLimit = std::numeric_limits<double>::max()) const = 0;
57 
58  virtual
59  std::optional<const Acts::BoundTrackParameters>
60  propagate(const EventContext& ctx,
61  const Acts::BoundTrackParameters& startParameters,
62  const Acts::Surface& target,
63  Acts::Direction navDir = Acts::Direction::Forward,
64  double pathLimit = std::numeric_limits<double>::max()) const = 0;
65 
66  virtual
68  trackingGeometryTool() const = 0;
69 
70  virtual
71  Acts::MagneticFieldContext getMagneticFieldContext(const EventContext& ctx) const = 0;
72 };
73 
74 #endif
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
max
#define max(a, b)
Definition: cfImp.cxx:41
ActsGeometryContext.h
IActsExtrapolationTool::DeclareInterfaceID
DeclareInterfaceID(IActsExtrapolationTool, 1, 0)
ActsRecordedMaterial
Acts::MaterialInteractor::result_type ActsRecordedMaterial
Using some short hands for Recorded Material.
Definition: IActsExtrapolationTool.h:22
IActsTrackingGeometryTool
Definition: IActsTrackingGeometryTool.h:18
IActsExtrapolationTool
Definition: IActsExtrapolationTool.h:31
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
IActsExtrapolationTool::getMagneticFieldContext
virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext &ctx) const =0
AthAlgTool.h
ParticleHypothesis.h
IActsExtrapolationTool::propagate
virtual std::optional< const Acts::CurvilinearTrackParameters > propagate(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, Acts::Direction navDir=Acts::Direction::Forward, double pathLimit=std::numeric_limits< double >::max()) const =0
IActsExtrapolationTool::trackingGeometryTool
virtual const IActsTrackingGeometryTool * trackingGeometryTool() const =0
COOLRates.target
target
Definition: COOLRates.py:1106
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
ActsPropagationOutput
std::pair< std::vector< Acts::detail::Step >, ActsRecordedMaterial > ActsPropagationOutput
Finally the output of the propagation test.
Definition: IActsExtrapolationTool.h:25