ATLAS Offline Software
Loading...
Searching...
No Matches
xAODUncalibMeasCalibrator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef ACTSCALIBRATION_DETAIL_XAODUNCALIBMEASCALIBRATOR_H
5#define ACTSCALIBRATION_DETAIL_XAODUNCALIBMEASCALIBRATOR_H
6
10#include "Acts/TrackFitting/GlobalChiSquareFitter.hpp"
11#include "Acts/Utilities/Helpers.hpp"
13
14namespace ActsTrk::detail{
21 public:
26 static const xAOD::UncalibratedMeasurement* unpack(const Acts::SourceLink& sl);
31 template <auto Callable, typename Type>
33 assert(instance);
34 m_calibrators[static_cast<int>(type)].connect<Callable>(instance);
35 }
36
46 void calibrate(const Acts::GeometryContext& gctx,
47 const Acts::CalibrationContext& cctx,
48 const Acts::SourceLink& sl,
49 const MutableTrackStateBackend::TrackStateProxy trackState) const;
50 private:
60 void invalidCalibrator(const Acts::GeometryContext& gctx,
61 const Acts::CalibrationContext& cctx,
62 const Acts::SourceLink& sl,
63 MutableTrackStateBackend::TrackStateProxy trackState) const;
71 void auxillaryCalibrator(const Acts::GeometryContext& gctx,
72 const Acts::CalibrationContext& cctx,
73 const Acts::SourceLink& sl,
74 MutableTrackStateBackend::TrackStateProxy trackState) const;
77 using CalibDelegate = Acts::Experimental::Gx2FitterExtensions<MutableTrackStateBackend>::Calibrator;
78 constexpr static std::size_t s_nMeasTypes = Acts::toUnderlying(xAOD::UncalibMeasType::nTypes);
81 std::array<CalibDelegate, s_nMeasTypes> m_calibrators{};
82
83
84
85 };
86}
87
88#endif
std::map< std::string, double > instance
std::array< CalibDelegate, s_nMeasTypes > m_calibrators
Dispatch table of the calibrators per measurement type.
Acts::Experimental::Gx2FitterExtensions< MutableTrackStateBackend >::Calibrator CalibDelegate
Abrivation for the calibrator delegate.
void auxillaryCalibrator(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, MutableTrackStateBackend::TrackStateProxy trackState) const
Delegate method for the Auxiliary measurements.
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, const MutableTrackStateBackend::TrackStateProxy trackState) const
: Interface method for the Acts fitter to calibrate the trajectory track states from the source link ...
static const xAOD::UncalibratedMeasurement * unpack(const Acts::SourceLink &sl)
Helper method to unpack an Acts source link to an uncalibrated measurement.
void connect(const xAOD::UncalibMeasType type, const Type *instance)
Register a calibrator implementation instance for a given measurement type.
void invalidCalibrator(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, MutableTrackStateBackend::TrackStateProxy trackState) const
Delegate method that's assigned during the construction phase of this class.
Hash functions to pack the source link into unordered_maps / unordered_sets.
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.
UncalibMeasType
Define the type of the uncalibrated measurement.