ATLAS Offline Software
Loading...
Searching...
No Matches
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
22namespace 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
Tool to extrapolate bound track parameters.
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...
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...
Acts::MaterialInteractor::result_type RecordedMaterial
Abrivation of the recorded material.
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...
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
virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext &ctx) const =0
Retrieves the magnetic field conditions from the Conditions store & wraps them into a Magnetic field ...
std::pair< std::vector< Acts::detail::Step >, RecordedMaterial > PropagationOutput
Abrivation of the recorded steps and the allocated material.
DeclareInterfaceID(ActsTrk::IExtrapolationTool, 1, 0)
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...