ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGeometryInterfaces
ActsGeometryInterfaces
IExtrapolationTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ACTSGEOMETRYINTERFACES_ActsTrkIExtrapolationTool_H
6
#define ACTSGEOMETRYINTERFACES_ActsTrkIExtrapolationTool_H
7
8
#include "
AthenaBaseComps/AthAlgTool.h
"
9
#include "GaudiKernel/IInterface.h"
10
#include "GaudiKernel/IAlgTool.h"
11
#include "GaudiKernel/EventContext.h"
12
#include "
TrkEventPrimitives/ParticleHypothesis.h
"
13
14
#include "
ActsGeometryInterfaces/GeometryContext.h
"
15
#include "Acts/MagneticField/MagneticFieldContext.hpp"
16
17
#include "Acts/Propagator/MaterialInteractor.hpp"
18
#include "Acts/Propagator/detail/SteppingLogger.hpp"
19
#include "Acts/EventData/BoundTrackParameters.hpp"
20
#include "Acts/Definitions/Units.hpp"
21
22
#include <variant>
23
24
25
namespace
ActsTrk
{
26
using namespace
Acts::UnitLiterals;
27
31
class
IExtrapolationTool
:
virtual
public
IAlgTool {
32
public
:
33
DeclareInterfaceID
(
ActsTrk::IExtrapolationTool
, 1, 0);
34
37
enum class
VolumeAbort
: std::uint8_t{
38
atEntrance
,
//Propagation stops at entrance of the target volume
39
atExit
,
// Propagation stops as soon as the mother volume is entered
40
};
41
42
using
RecordedMaterial
= Acts::MaterialInteractor::result_type;
44
using
PropagationOutput
= std::pair<std::vector<Acts::detail::Step>,
45
RecordedMaterial
>;
47
using
BoundParamVec_t
= std::vector<Acts::BoundTrackParameters>;
58
virtual
Acts::Result<PropagationOutput>
propagationSteps
(
const
EventContext& ctx,
59
const
Acts::BoundTrackParameters& startParameters,
60
const
Acts::Direction navDir = Acts::Direction::Forward(),
61
const
double
pathLimit = 1._km)
const
= 0;
62
69
struct
SurfaceRecordOptions
{
75
explicit
SurfaceRecordOptions
(
const
Acts::TrackingVolume* targetVol,
76
VolumeAbort
abordCond =
VolumeAbort::atExit
):
77
target
{targetVol},
stopVolumeFlag
{abordCond} {}
78
79
explicit
SurfaceRecordOptions
(
const
Acts::Surface* targetSurf,
80
double
extraPath = 0.):
81
target
{targetSurf},
extraPathLength
{extraPath}{}
82
84
std::variant<
const
Acts::TrackingVolume*,
85
const
Acts::Surface*>
target
{};
88
double
extraPathLength
{0.};
90
double
pathLimit
{1._km};
93
VolumeAbort
stopVolumeFlag
{
VolumeAbort::atExit
};
95
Acts::Direction
navDir
{Acts::Direction::Forward()};
98
bool
recordSensitive
{
true
};
101
bool
recordMaterial
{
false
};
104
bool
recordPassive
{
false
};
105
};
106
113
virtual
Acts::Result<BoundParamVec_t>
propagateAndRecord
(
const
EventContext& ctx,
114
const
Acts::BoundTrackParameters& startParameters,
115
const
SurfaceRecordOptions
& recordOpts)
const
= 0;
116
128
virtual
Acts::Result<PropagationOutput>
propagationSteps
(
const
EventContext& ctx,
129
const
Acts::BoundTrackParameters& startParameters,
130
const
Acts::Surface& target,
131
const
Acts::Direction navDir = Acts::Direction::Forward(),
132
const
double
pathLimit = 1._km)
const
= 0;
145
virtual
Acts::Result<Acts::BoundTrackParameters>
propagate
(
const
EventContext& ctx,
146
const
Acts::BoundTrackParameters& startParameters,
147
const
Acts::Surface& target,
148
const
Acts::Direction navDir = Acts::Direction::Forward(),
149
const
double
pathLimit = 1._km)
const
= 0;
163
virtual
Acts::Result<Acts::BoundTrackParameters>
propagate
(
const
EventContext& ctx,
164
const
Acts::BoundTrackParameters& startParameters,
165
const
Acts::TrackingVolume& target,
166
const
VolumeAbort
stopVolumeFlag,
167
const
Acts::Direction navDir = Acts::Direction::Forward(),
168
const
double
pathLimit = 1._km)
const
= 0;
178
virtual
Acts::Result<Acts::BoundTrackParameters>
propagate
(
const
EventContext& ctx,
179
const
Acts::BoundTrackParameters& startParameters,
180
const
Acts::Direction navDir = Acts::Direction::Forward(),
181
const
double
pathLimit = 1._km)
const
= 0;
182
};
183
184
}
185
186
#endif
AthAlgTool.h
GeometryContext.h
ParticleHypothesis.h
ActsTrk::IExtrapolationTool
Tool to extrapolate bound track parameters through the Acts::TrackingGeometry.
Definition
IExtrapolationTool.h:31
ActsTrk::IExtrapolationTool::VolumeAbort
VolumeAbort
Enumeration to define at which stage the propagation shall be terminated.
Definition
IExtrapolationTool.h:37
ActsTrk::IExtrapolationTool::VolumeAbort::atExit
@ atExit
Definition
IExtrapolationTool.h:39
ActsTrk::IExtrapolationTool::VolumeAbort::atEntrance
@ atEntrance
Definition
IExtrapolationTool.h:38
ActsTrk::IExtrapolationTool::propagate
virtual Acts::Result< Acts::BoundTrackParameters > propagate(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, const Acts::Direction navDir=Acts::Direction::Forward(), const double pathLimit=1._km) const =0
Propagate the track parameters until the end of the world volume.
ActsTrk::IExtrapolationTool::PropagationOutput
std::pair< std::vector< Acts::detail::Step >, RecordedMaterial > PropagationOutput
Abrivation of the recorded steps and the allocated material.
Definition
IExtrapolationTool.h:44
ActsTrk::IExtrapolationTool::RecordedMaterial
Acts::MaterialInteractor::result_type RecordedMaterial
Abrivation of the recorded material.
Definition
IExtrapolationTool.h:42
ActsTrk::IExtrapolationTool::propagateAndRecord
virtual Acts::Result< BoundParamVec_t > propagateAndRecord(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, const SurfaceRecordOptions &recordOpts) const =0
Propagate the track parameters forward throuht the detector and record the surface crossings along th...
ActsTrk::IExtrapolationTool::propagationSteps
virtual Acts::Result< PropagationOutput > propagationSteps(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, const Acts::Direction navDir=Acts::Direction::Forward(), const double pathLimit=1._km) const =0
Extrapolate the track parameters until the end of the world and record the performed steps & the allo...
ActsTrk::IExtrapolationTool::propagationSteps
virtual Acts::Result< PropagationOutput > propagationSteps(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, const Acts::Surface &target, const Acts::Direction navDir=Acts::Direction::Forward(), const double pathLimit=1._km) const =0
Extrapolate the track parameters from a start to a target surface and record the peformed steps & all...
ActsTrk::IExtrapolationTool::propagate
virtual Acts::Result< Acts::BoundTrackParameters > propagate(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, const Acts::Surface &target, const Acts::Direction navDir=Acts::Direction::Forward(), const double pathLimit=1._km) const =0
Extrapolates the track parameters from a start to a target surface and returns the extrapolated track...
ActsTrk::IExtrapolationTool::DeclareInterfaceID
DeclareInterfaceID(ActsTrk::IExtrapolationTool, 1, 0)
ActsTrk::IExtrapolationTool::propagate
virtual Acts::Result< Acts::BoundTrackParameters > propagate(const EventContext &ctx, const Acts::BoundTrackParameters &startParameters, const Acts::TrackingVolume &target, const VolumeAbort stopVolumeFlag, const Acts::Direction navDir=Acts::Direction::Forward(), const double pathLimit=1._km) const =0
Extrapolates the track parameters from the start parameters to a target tracking volume which needs t...
ActsTrk::IExtrapolationTool::BoundParamVec_t
std::vector< Acts::BoundTrackParameters > BoundParamVec_t
Abrivation of the recorded surfaces along the propagation.
Definition
IExtrapolationTool.h:47
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
ActsTrk::IExtrapolationTool::SurfaceRecordOptions
Configuration struct to steer the propagation with surface record.
Definition
IExtrapolationTool.h:69
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::extraPathLength
double extraPathLength
Define the extra path length that the propagator may continue after the target surface has been reach...
Definition
IExtrapolationTool.h:88
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::target
std::variant< const Acts::TrackingVolume *, const Acts::Surface * > target
Specify the target volume until which the extrapolation should be persued.
Definition
IExtrapolationTool.h:85
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::stopVolumeFlag
VolumeAbort stopVolumeFlag
Flag toggling how the propagation should end if the volume is a target.
Definition
IExtrapolationTool.h:93
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::recordMaterial
bool recordMaterial
Flag to toggle whether track parameters at material surfaces shall be created if crossed.
Definition
IExtrapolationTool.h:101
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::navDir
Acts::Direction navDir
The direction of the extrapolation.
Definition
IExtrapolationTool.h:95
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::recordSensitive
bool recordSensitive
Flag to toggle whether track parameters at sensitive surfaces shall be created if crossed.
Definition
IExtrapolationTool.h:98
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::pathLimit
double pathLimit
Maximum path limit before aborting the extrapolation.
Definition
IExtrapolationTool.h:90
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::SurfaceRecordOptions
SurfaceRecordOptions(const Acts::TrackingVolume *targetVol, VolumeAbort abordCond=VolumeAbort::atExit)
Record option constructor with a target volume as input.
Definition
IExtrapolationTool.h:75
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::SurfaceRecordOptions
SurfaceRecordOptions(const Acts::Surface *targetSurf, double extraPath=0.)
Definition
IExtrapolationTool.h:79
ActsTrk::IExtrapolationTool::SurfaceRecordOptions::recordPassive
bool recordPassive
Flag to toggle whether track parameters at portal or passive surfaces shall be created if crossed.
Definition
IExtrapolationTool.h:104
Generated on
for ATLAS Offline Software by
1.17.0