ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::KalmanFitterTool Class Reference

#include <KalmanFitterTool.h>

Inheritance diagram for ActsTrk::KalmanFitterTool:

Public Member Functions

virtual ~KalmanFitterTool ()=default
virtual StatusCode initialize () override
virtual std::unique_ptr< ActsTrk::MutableTrackContainer > fit (const std::vector< const xAOD::UncalibratedMeasurement * > &clusterList, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *targetSurface=nullptr) const override
 fit a set of xAOD uncalibrated Measurements
virtual std::unique_ptr< ActsTrk::MutableTrackContainer > fit (const ActsTrk::Seed &seed, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface &targetSurface) const override
 Acts seed fit.
virtual StatusCode fit (const EventContext &ctx, const ActsTrk::TrackContainer::ConstTrackProxy &track, ActsTrk::MutableTrackContainer &trackContainer, const Acts::PerigeeSurface &pSurface) const override
virtual std::unique_ptr< ActsTrk::MutableTrackContainer > fit (const std::vector< Acts::SourceLink > &sourceLinks, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *targetSurface=nullptr) const override
 Fit a set of source links.

Private Types

using TrackState_t = MutableTrackStateBackend::TrackStateProxy
 Abrivate the track state proxy.
using FitterExtension_t = Acts::KalmanFitterExtensions<MutableTrackStateBackend>
 Abbrivation of the fitter extensions.
using FitterOptions_t = Acts::KalmanFitterOptions<MutableTrackStateBackend>
 Abbrivation of the configuration to launch the fit.
using xAODItkCalibrator_t = detail::OnTrackCalibrator<ActsTrk::MutableTrackStateBackend>
 Calibrator of the ID / ITk measurements.
using Fitter = Acts::KalmanFitter<Acts::Propagator<Acts::SympyStepper, Acts::Navigator>, ActsTrk::MutableTrackStateBackend>
 Type erased track fitter function.
using DirectFitter = Acts::KalmanFitter<Acts::Propagator<Acts::SympyStepper, Acts::DirectNavigator>, ActsTrk::MutableTrackStateBackend>

Private Member Functions

FitterOptions_t configureFit (const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *surface, detail::SourceLinkType slType) const
 Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.
const Acts::Logger & logger () const
 Private access to the logger.

Private Attributes

ServiceHandle< ITrackingGeometrySvc > m_trackingGeometrySvc {this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"}
PublicToolHandle< IGeometryRealmConvTool > m_geometryConvTool {this, "GeometryRealmConvTool", ""}
ToolHandle< MuonR4::ISpacePointCalibrator > m_muonCalibrator {this, "MuonCalibrationTool", ""}
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator {this, "RotCreatorTool", ""}
Gaudi::Property< double > m_option_outlierChi2Cut
Gaudi::Property< double > m_option_ReverseFilteringPt
Gaudi::Property< int > m_option_maxPropagationStep
Gaudi::Property< bool > m_useDirectNavigation
Gaudi::Property< std::uint32_t > m_envelopeConstraint
 Stop the propagation as soon as the envelope is left (Gen3 only).
detail::TrkMeasurementCalibrator m_trkCalibrator {}
 Calibrator for the Trk::MeasurementBase track states (legacy EDM).
detail::TrkMeasSurfaceAccessor m_trkSurfAcc {}
 Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM).
detail::TrkPrepRawDataCalibrator m_prdCalibrator {}
 Calibrator for the Trk::PrepRawData track states (legacy EDM).
detail::TrkPrepRawDataSurfaceAcc m_prdSurfAcc {}
 Surface accessor for the Trk::PrepRawData track states (legacy EDM).
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc {}
 Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM).
detail::xAODUncalibMeasCalibrator m_uncalibMeasCalibrator {}
 Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.
xAODItkCalibrator_t m_idCalibrator {}
std::unique_ptr< Fitter > m_fitter {nullptr}
std::unique_ptr< DirectFitter > m_directFitter {nullptr}
std::array< FitterExtension_t, s_nExtensions > m_kfExtensions {}
ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder {0}
ActsTrk::detail::FitterHelperFunctions::ReverseFilteringLogic m_reverseFilteringLogic {0}
std::unique_ptr< const Acts::Logger > m_logger
 logging instance
std::uint32_t m_endOfWorldId {std::numeric_limits<std::uint32_t>::max()}

Static Private Attributes

static constexpr unsigned s_nExtensions = static_cast<unsigned>(detail::SourceLinkType::nTypes)
 Array of all configured fitter extensions depending on which source link type is in use.

Detailed Description

Definition at line 45 of file KalmanFitterTool.h.

Member Typedef Documentation

◆ DirectFitter

using ActsTrk::KalmanFitterTool::DirectFitter = Acts::KalmanFitter<Acts::Propagator<Acts::SympyStepper, Acts::DirectNavigator>, ActsTrk::MutableTrackStateBackend>
private

Definition at line 157 of file KalmanFitterTool.h.

◆ Fitter

using ActsTrk::KalmanFitterTool::Fitter = Acts::KalmanFitter<Acts::Propagator<Acts::SympyStepper, Acts::Navigator>, ActsTrk::MutableTrackStateBackend>
private

Type erased track fitter function.

Definition at line 154 of file KalmanFitterTool.h.

◆ FitterExtension_t

using ActsTrk::KalmanFitterTool::FitterExtension_t = Acts::KalmanFitterExtensions<MutableTrackStateBackend>
private

Abbrivation of the fitter extensions.

Definition at line 99 of file KalmanFitterTool.h.

◆ FitterOptions_t

using ActsTrk::KalmanFitterTool::FitterOptions_t = Acts::KalmanFitterOptions<MutableTrackStateBackend>
private

Abbrivation of the configuration to launch the fit.

Definition at line 101 of file KalmanFitterTool.h.

◆ TrackState_t

using ActsTrk::KalmanFitterTool::TrackState_t = MutableTrackStateBackend::TrackStateProxy
private

Abrivate the track state proxy.

Definition at line 97 of file KalmanFitterTool.h.

◆ xAODItkCalibrator_t

Constructor & Destructor Documentation

◆ ~KalmanFitterTool()

virtual ActsTrk::KalmanFitterTool::~KalmanFitterTool ( )
virtualdefault

Member Function Documentation

◆ configureFit()

KalmanFitterTool::FitterOptions_t ActsTrk::KalmanFitterTool::configureFit ( const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface * surface,
detail::SourceLinkType slType ) const
private

Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.

The parsed context objects need to prevail the call of the fit

Parameters
tgContextReference to the geometry context
mfContextReference to the passed magnetic field context
calContextReference to the calibration context
surfaceTarget surface on which the fit result is expressed.
slTypeSwitch of which source link type shall be used to access the surfaces from the measurements & for calibration

Definition at line 143 of file KalmanFitterTool.cxx.

147 {
148
149 //slType = 3 is possible
150 const auto& kfExtensions = m_kfExtensions.at(Acts::toUnderlying(slType));
151
152 Acts::PropagatorPlainOptions propagationOption(tgContext, mfContext);
153 propagationOption.maxSteps = m_option_maxPropagationStep;
154 // Set the KalmanFitter options
155 FitterOptions_t options{tgContext, mfContext, calContext,
156 kfExtensions, propagationOption,
157 surface};
158 options.propagatorPlainOptions.endOfWorldVolumeIds.push_back(m_endOfWorldId);
159 return options;
160}
std::array< FitterExtension_t, s_nExtensions > m_kfExtensions
Acts::KalmanFitterOptions< MutableTrackStateBackend > FitterOptions_t
Abbrivation of the configuration to launch the fit.
Gaudi::Property< int > m_option_maxPropagationStep

◆ fit() [1/4]

std::unique_ptr< MutableTrackContainer > ActsTrk::KalmanFitterTool::fit ( const ActsTrk::Seed & seed,
const Acts::BoundTrackParameters & initialParams,
const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface & targetSurface ) const
overridevirtual

Acts seed fit.

Definition at line 182 of file KalmanFitterTool.cxx.

187 {
188
189 std::vector<const xAOD::UncalibratedMeasurement*> measList;
190 measList.reserve(6);
191
192 const auto& sps = seed.sp();
193 for (const xAOD::SpacePoint* sp : sps) {
194 const auto& measurements = sp->measurements();
195 for (const xAOD::UncalibratedMeasurement *umeas : measurements) {
196 measList.push_back(umeas);
197 }
198 }
199 return fit(measList, initialParams, tgContext, mfContext, calContext, &targetSurface);
200}
static Double_t sp
virtual std::unique_ptr< ActsTrk::MutableTrackContainer > fit(const std::vector< const xAOD::UncalibratedMeasurement * > &clusterList, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *targetSurface=nullptr) const override
fit a set of xAOD uncalibrated Measurements
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.

◆ fit() [2/4]

virtual StatusCode ActsTrk::KalmanFitterTool::fit ( const EventContext & ctx,
const ActsTrk::TrackContainer::ConstTrackProxy & track,
ActsTrk::MutableTrackContainer & trackContainer,
const Acts::PerigeeSurface & pSurface ) const
overridevirtual

◆ fit() [3/4]

std::unique_ptr< MutableTrackContainer > ActsTrk::KalmanFitterTool::fit ( const std::vector< Acts::SourceLink > & sourceLinks,
const Acts::BoundTrackParameters & initialParams,
const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface * targetSurface = nullptr ) const
overridevirtual

Fit a set of source links.

Definition at line 213 of file KalmanFitterTool.cxx.

218 {
219
220 if (sourceLinks.empty()) {
221 ATH_MSG_DEBUG("No measurements given. Nothing to do");
222 return nullptr;
223 }
224
225 // Construct a perigee surface as the target surface if none is provided
226 std::shared_ptr<Acts::Surface> pSurface{nullptr};
227 if (!targetSurface){
228 pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
229 targetSurface = pSurface.get();
230 }
231
233
234 Acts::KalmanFitterOptions kfOptions = configureFit(tgContext, mfContext, calContext,
235 targetSurface, slType);
236
237 ActsTrk::MutableTrackBackend trackContainerBackEnd;
238 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
239 auto tracks = std::make_unique<MutableTrackContainer>(std::move(trackContainerBackEnd),
240 std::move(multiTrajBackEnd));
241
242 bool fitSuccess = false;
244
245 std::vector<const Acts::Surface*> surfaces;
246 surfaces.reserve(sourceLinks.size());
247 switch (slType) {
249 std::ranges::for_each(sourceLinks, [this, &surfaces](const Acts::SourceLink& sl) {
250 surfaces.push_back(m_trkSurfAcc(sl));
251 });
252 break;
253 }
255 std::ranges::for_each(sourceLinks, [this, &surfaces](const Acts::SourceLink& sl) {
256 surfaces.push_back(m_prdSurfAcc(sl));
257 });
258 break;
259 }
261 std::ranges::for_each(sourceLinks, [this, &surfaces](const Acts::SourceLink& sl) {
262 surfaces.push_back(m_unalibMeasSurfAcc(sl));
263 });
264 break;
265 }
266 default:
267 ATH_MSG_ERROR("Unsupported source link type for KalmanFitterTool::fit");
268 return nullptr;
269 }
270
271 fitSuccess = m_directFitter->fit(sourceLinks.begin(), sourceLinks.end(),
272 initialParams, kfOptions, surfaces, *tracks.get()).ok();
273
274 } else {
275
276 fitSuccess = m_fitter->fit(sourceLinks.begin(), sourceLinks.end(),
277 initialParams, kfOptions, *tracks.get()).ok();
278 }
279
280 if (!fitSuccess) {
281 ATH_MSG_VERBOSE("Kalman Fitter on Seed has failed");
282 return nullptr;
283 }
284
286 for (auto trkProxy : *tracks) {
288 }
289
290 return tracks;
291}
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
#define ATH_MSG_VERBOSE(x,...)
Gaudi::Property< bool > m_useDirectNavigation
detail::TrkPrepRawDataSurfaceAcc m_prdSurfAcc
Surface accessor for the Trk::PrepRawData track states (legacy EDM).
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc
Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM).
std::unique_ptr< Fitter > m_fitter
detail::TrkMeasSurfaceAccessor m_trkSurfAcc
Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM).
std::unique_ptr< DirectFitter > m_directFitter
FitterOptions_t configureFit(const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *surface, detail::SourceLinkType slType) const
Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.
static SourceLinkType getType(const Acts::SourceLink &sl)
Returns the enumeration corresponding to the object type cached within the Acts::SourceLink.
SourceLinkType
Enumeration to distinguish between the ATLAS EDM -> Acts::SourceLink variants.
@ xAODUnCalibMeas
UnCalibrated Trk::PrepRawData objects.
@ TrkPrepRawData
Calibrated Trk::MeasurementBase objects.
Acts::VectorMultiTrajectory MutableTrackStateBackend
Acts::VectorTrackContainer MutableTrackBackend
@ KalmanFitter
tracks produced by the Kalman Fitter
static void addFitterTypeProperty(track_container_t &tracksContainer)
add fitter column to the track container
static void setFitterType(trackproxy_t &trackProxy, xAOD::TrackFitter fitterType)
set fitter type of a track

◆ fit() [4/4]

std::unique_ptr< MutableTrackContainer > ActsTrk::KalmanFitterTool::fit ( const std::vector< const xAOD::UncalibratedMeasurement * > & clusterList,
const Acts::BoundTrackParameters & initialParams,
const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface * targetSurface = nullptr ) const
overridevirtual

fit a set of xAOD uncalibrated Measurements

Definition at line 165 of file KalmanFitterTool.cxx.

170 {
171 ATH_MSG_DEBUG("--> entering KalmanFitter::fit(xAODMeasure...things,TP,)");
172
173 std::vector<Acts::SourceLink> sourceLinks;
174 sourceLinks.reserve(clusterList.size());
175
176 detail::MeasurementCalibratorBase::pack(clusterList, sourceLinks);
177
178 return fit(sourceLinks, initialParams, tgContext, mfContext, calContext, targetSurface);
179}
static Acts::SourceLink pack(const Ptr_t &measurement)
Pack the measurement type pointer to an Acts::SourceLink including the intermediate conversion into a...

◆ initialize()

StatusCode ActsTrk::KalmanFitterTool::initialize ( )
overridevirtual

Configure the fit extensions for Trk::MeasuremenBase pass through fits.

Configure the fit extensions for the Trk::PrepRawData fits

Configure the fit extensions for the uncalibrated measurement fits

Connect the muon types with the muon calibrator

Definition at line 31 of file KalmanFitterTool.cxx.

31 {
32
34 ATH_CHECK(m_geometryConvTool.retrieve());
35 ATH_CHECK(m_ROTcreator.retrieve(EnableTool{!m_ROTcreator.empty()}));
36 ATH_CHECK(m_muonCalibrator.retrieve(EnableTool{!m_muonCalibrator.empty()}));
37 m_logger = makeActsAthenaLogger(this, "KalmanRefit");
38
39
40 auto trkGeo = m_trackingGeometrySvc->trackingGeometry();
41 if (trkGeo->geometryVersion() == Acts::TrackingGeometry::GeometryVersion::Gen3) {
42 switch (m_envelopeConstraint.value()) {
43 using enum ActsTrk::SystemEnvelope;
44 case Acts::toUnderlying(ITkExit):
45 case Acts::toUnderlying(CaloExit): {
46 const Acts::TrackingVolume* volume = m_trackingGeometrySvc
47 ->getEnvelope(static_cast<SystemEnvelope>(m_envelopeConstraint.value()));
48 ATH_CHECK(volume != nullptr);
49 m_endOfWorldId = volume->motherVolume()->geometryId().volume();
50 break;
51 } case Acts::toUnderlying(MsExit) : {
52 break;
53 } default: {
54 ATH_MSG_ERROR("Invalid configuration "<<m_envelopeConstraint);
55 return StatusCode::FAILURE;
56 }
57 }
58 ATH_MSG_DEBUG("Abort propagation if "<<m_envelopeConstraint<<" is reached");
59
60 }
61 auto field = std::make_shared<ATLASMagneticFieldWrapper>();
62
63 // Fitter
64 Acts::SympyStepper stepper(field);
65 if (m_useDirectNavigation) {
66 // Direct Fitter
67 Acts::DirectNavigator directNavigator( logger().cloneWithSuffix("DirectNavigator") );
68 Acts::Propagator<Acts::SympyStepper, Acts::DirectNavigator> directPropagator(std::move(stepper),
69 std::move(directNavigator),
70 logger().cloneWithSuffix("DirectPropagator"));
71
72 m_directFitter = std::make_unique<DirectFitter>(std::move(directPropagator),
73 logger().cloneWithSuffix("DirectKalmanFitter"));
74
75 } else {
76 Acts::Navigator navigator( Acts::Navigator::Config{trkGeo},
77 logger().cloneWithSuffix("Navigator"));
78 Acts::Propagator<Acts::SympyStepper, Acts::Navigator> propagator(stepper,
79 std::move(navigator),
80 logger().cloneWithSuffix("Prop"));
81
82 m_fitter = std::make_unique<Fitter>(std::move(propagator),
83 logger().cloneWithSuffix("KalmanFitter"));
84 }
85
87 m_outlierFinder.StateChiSquaredPerNumberDoFCut = m_option_outlierChi2Cut;
88 m_reverseFilteringLogic.momentumMax = m_option_ReverseFilteringPt;
89
90 FitterExtension_t extensionTemplate{};
91 extensionTemplate.outlierFinder.connect<&detail::FitterHelperFunctions::ATLASOutlierFinder::operator()<MutableTrackStateBackend>>(&m_outlierFinder);
92 extensionTemplate.reverseFilteringLogic.connect<&detail::FitterHelperFunctions::ReverseFilteringLogic::operator()<MutableTrackStateBackend>>(&m_reverseFilteringLogic);
93 extensionTemplate.updater.connect<&detail::FitterHelperFunctions::gainMatrixUpdate<MutableTrackStateBackend>>();
94 extensionTemplate.smoother.connect<&detail::FitterHelperFunctions::mbfSmoother<MutableTrackStateBackend>>();
95
97 {
98 m_trkSurfAcc = detail::TrkMeasSurfaceAccessor{m_geometryConvTool.get()};
99
100 FitterExtension_t& configureMe = m_kfExtensions[Acts::toUnderlying(detail::SourceLinkType::TrkMeasurement)];
101 configureMe = extensionTemplate;
102 configureMe.calibrator.connect<&detail::TrkMeasurementCalibrator::calibrate<TrackState_t>>(&m_trkCalibrator);
103 configureMe.surfaceAccessor.connect<&detail::TrkMeasSurfaceAccessor::operator()>(&m_trkSurfAcc);
104 }
106 {
107 m_prdSurfAcc = detail::TrkPrepRawDataSurfaceAcc{m_geometryConvTool.get()};
108 m_prdCalibrator = detail::TrkPrepRawDataCalibrator{m_geometryConvTool.get(), m_ROTcreator.get()};
109
110 FitterExtension_t& configureMe = m_kfExtensions[Acts::toUnderlying(detail::SourceLinkType::TrkPrepRawData)];
111 configureMe = extensionTemplate;
112 configureMe.calibrator.connect<&detail::TrkPrepRawDataCalibrator::calibrate<TrackState_t>>(&m_prdCalibrator);
113 configureMe.surfaceAccessor.connect<&detail::TrkPrepRawDataSurfaceAcc::operator()>(&m_prdSurfAcc);
114 }
116 {
117 m_unalibMeasSurfAcc = detail::xAODUncalibMeasSurfAcc{m_trackingGeometrySvc.get()};
118
119
120 m_idCalibrator = xAODItkCalibrator_t::NoCalibration(m_trackingGeometrySvc.get());
121
123 using enum xAOD::UncalibMeasType;
124 if (m_muonCalibrator.isEnabled()) {
126 m_uncalibMeasCalibrator.connect<&MuonR4::ISpacePointCalibrator::calibrateSourceLink>(muonType, m_muonCalibrator.get());
127 }
128 }
129 for (const auto idType: {PixelClusterType, StripClusterType, HGTDClusterType}) {
130 m_uncalibMeasCalibrator.connect<&xAODItkCalibrator_t::calibrate>(idType, &m_idCalibrator);
131 }
132
133 FitterExtension_t& configureMe = m_kfExtensions[Acts::toUnderlying(detail::SourceLinkType::xAODUnCalibMeas)];
134 configureMe = extensionTemplate;
135 configureMe.surfaceAccessor.connect<&detail::xAODUncalibMeasSurfAcc::operator()>(&m_unalibMeasSurfAcc);
136 configureMe.calibrator.connect<&detail::xAODUncalibMeasCalibrator::calibrate>(&m_uncalibMeasCalibrator);
137 }
138 return StatusCode::SUCCESS;
139}
#define ATH_CHECK
Evaluate an expression and check for errors.
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Definition Logger.cxx:64
ToolHandle< MuonR4::ISpacePointCalibrator > m_muonCalibrator
Gaudi::Property< std::uint32_t > m_envelopeConstraint
Stop the propagation as soon as the envelope is left (Gen3 only).
std::unique_ptr< const Acts::Logger > m_logger
logging instance
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
PublicToolHandle< IGeometryRealmConvTool > m_geometryConvTool
ServiceHandle< ITrackingGeometrySvc > m_trackingGeometrySvc
virtual void calibrateSourceLink(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, ActsTrk::MutableTrackStateBackend::TrackStateProxy state) const =0
Function that's hooked to the calibration delegate of the implemented Acts fitters.
static Root::TMsgLogger logger("iLumiCalc")
SystemEnvelope
Define an enumeration to retrieve the envelope tracking volume from.
UncalibMeasType
Define the type of the uncalibrated measurement.

◆ logger()

const Acts::Logger & ActsTrk::KalmanFitterTool::logger ( ) const
inlineprivate

Private access to the logger.

Definition at line 168 of file KalmanFitterTool.h.

168 {
169 return *m_logger;
170 }

Member Data Documentation

◆ m_directFitter

std::unique_ptr<DirectFitter> ActsTrk::KalmanFitterTool::m_directFitter {nullptr}
private

Definition at line 158 of file KalmanFitterTool.h.

158{nullptr};

◆ m_endOfWorldId

std::uint32_t ActsTrk::KalmanFitterTool::m_endOfWorldId {std::numeric_limits<std::uint32_t>::max()}
private

Definition at line 175 of file KalmanFitterTool.h.

175{std::numeric_limits<std::uint32_t>::max()};

◆ m_envelopeConstraint

Gaudi::Property<std::uint32_t> ActsTrk::KalmanFitterTool::m_envelopeConstraint
private
Initial value:
{this, "EnvelopeConstaint",
Acts::toUnderlying(ActsTrk::SystemEnvelope::ITkExit)}

Stop the propagation as soon as the envelope is left (Gen3 only).

Definition at line 134 of file KalmanFitterTool.h.

134 {this, "EnvelopeConstaint",
135 Acts::toUnderlying(ActsTrk::SystemEnvelope::ITkExit)};

◆ m_fitter

std::unique_ptr<Fitter> ActsTrk::KalmanFitterTool::m_fitter {nullptr}
private

Definition at line 155 of file KalmanFitterTool.h.

155{nullptr};

◆ m_geometryConvTool

PublicToolHandle<IGeometryRealmConvTool> ActsTrk::KalmanFitterTool::m_geometryConvTool {this, "GeometryRealmConvTool", ""}
private

Definition at line 118 of file KalmanFitterTool.h.

118{this, "GeometryRealmConvTool", ""};

◆ m_idCalibrator

xAODItkCalibrator_t ActsTrk::KalmanFitterTool::m_idCalibrator {}
private

Definition at line 150 of file KalmanFitterTool.h.

150{};

◆ m_kfExtensions

std::array<FitterExtension_t, s_nExtensions> ActsTrk::KalmanFitterTool::m_kfExtensions {}
private

Definition at line 162 of file KalmanFitterTool.h.

162{};

◆ m_logger

std::unique_ptr<const Acts::Logger> ActsTrk::KalmanFitterTool::m_logger
private

logging instance

Definition at line 173 of file KalmanFitterTool.h.

◆ m_muonCalibrator

ToolHandle<MuonR4::ISpacePointCalibrator> ActsTrk::KalmanFitterTool::m_muonCalibrator {this, "MuonCalibrationTool", ""}
private

Definition at line 120 of file KalmanFitterTool.h.

120{this, "MuonCalibrationTool", ""};

◆ m_option_maxPropagationStep

Gaudi::Property< int > ActsTrk::KalmanFitterTool::m_option_maxPropagationStep
private
Initial value:
{this, "MaxPropagationStep", 5000,
"Maximum number of steps for one propagate call"}

Definition at line 129 of file KalmanFitterTool.h.

129 {this, "MaxPropagationStep", 5000,
130 "Maximum number of steps for one propagate call"};

◆ m_option_outlierChi2Cut

Gaudi::Property< double > ActsTrk::KalmanFitterTool::m_option_outlierChi2Cut
private
Initial value:
{this, "OutlierChi2Cut", 12.5,
"Chi2 cut used by the outlier finder" }

Definition at line 125 of file KalmanFitterTool.h.

125 {this, "OutlierChi2Cut", 12.5,
126 "Chi2 cut used by the outlier finder" };

◆ m_option_ReverseFilteringPt

Gaudi::Property< double > ActsTrk::KalmanFitterTool::m_option_ReverseFilteringPt
private
Initial value:
{this, "ReverseFilteringPt", 1.0 * Acts::UnitConstants::GeV,
"Pt cut used for the ReverseFiltering logic"}

Definition at line 127 of file KalmanFitterTool.h.

127 {this, "ReverseFilteringPt", 1.0 * Acts::UnitConstants::GeV,
128 "Pt cut used for the ReverseFiltering logic"};

◆ m_outlierFinder

ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder ActsTrk::KalmanFitterTool::m_outlierFinder {0}
private

Definition at line 164 of file KalmanFitterTool.h.

164{0};

◆ m_prdCalibrator

detail::TrkPrepRawDataCalibrator ActsTrk::KalmanFitterTool::m_prdCalibrator {}
private

Calibrator for the Trk::PrepRawData track states (legacy EDM).

Definition at line 141 of file KalmanFitterTool.h.

141{};

◆ m_prdSurfAcc

detail::TrkPrepRawDataSurfaceAcc ActsTrk::KalmanFitterTool::m_prdSurfAcc {}
private

Surface accessor for the Trk::PrepRawData track states (legacy EDM).

Definition at line 143 of file KalmanFitterTool.h.

143{};

◆ m_reverseFilteringLogic

ActsTrk::detail::FitterHelperFunctions::ReverseFilteringLogic ActsTrk::KalmanFitterTool::m_reverseFilteringLogic {0}
private

Definition at line 165 of file KalmanFitterTool.h.

165{0};

◆ m_ROTcreator

ToolHandle<Trk::IRIO_OnTrackCreator> ActsTrk::KalmanFitterTool::m_ROTcreator {this, "RotCreatorTool", ""}
private

Definition at line 122 of file KalmanFitterTool.h.

122{this, "RotCreatorTool", ""};

◆ m_trackingGeometrySvc

ServiceHandle<ITrackingGeometrySvc> ActsTrk::KalmanFitterTool::m_trackingGeometrySvc {this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"}
private

Definition at line 116 of file KalmanFitterTool.h.

116{this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"};

◆ m_trkCalibrator

detail::TrkMeasurementCalibrator ActsTrk::KalmanFitterTool::m_trkCalibrator {}
private

Calibrator for the Trk::MeasurementBase track states (legacy EDM).

Definition at line 137 of file KalmanFitterTool.h.

137{};

◆ m_trkSurfAcc

detail::TrkMeasSurfaceAccessor ActsTrk::KalmanFitterTool::m_trkSurfAcc {}
private

Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM).

Definition at line 139 of file KalmanFitterTool.h.

139{};

◆ m_unalibMeasSurfAcc

detail::xAODUncalibMeasSurfAcc ActsTrk::KalmanFitterTool::m_unalibMeasSurfAcc {}
private

Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM).

Definition at line 145 of file KalmanFitterTool.h.

145{};

◆ m_uncalibMeasCalibrator

detail::xAODUncalibMeasCalibrator ActsTrk::KalmanFitterTool::m_uncalibMeasCalibrator {}
private

Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.

Definition at line 147 of file KalmanFitterTool.h.

147{};

◆ m_useDirectNavigation

Gaudi::Property<bool> ActsTrk::KalmanFitterTool::m_useDirectNavigation
private
Initial value:
{this, "UseDirectNavigation", true,
"GSF with direct navigation when refitting measurements"}

Definition at line 131 of file KalmanFitterTool.h.

131 {this, "UseDirectNavigation", true,
132 "GSF with direct navigation when refitting measurements"};

◆ s_nExtensions

unsigned ActsTrk::KalmanFitterTool::s_nExtensions = static_cast<unsigned>(detail::SourceLinkType::nTypes)
staticconstexprprivate

Array of all configured fitter extensions depending on which source link type is in use.

Definition at line 161 of file KalmanFitterTool.h.


The documentation for this class was generated from the following files: