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"
12
13namespace ActsTrk::detail{
20 public:
27 static Acts::SourceLink pack(const xAOD::UncalibratedMeasurement* meas);
30 static const xAOD::UncalibratedMeasurement* unpack(const Acts::SourceLink& sl);
35 template <auto Callable, typename Type>
37 assert(instance);
38 m_calibrators[static_cast<int>(type)].connect<Callable>(instance);
39 }
40
50 void calibrate(const Acts::GeometryContext& gctx,
51 const Acts::CalibrationContext& cctx,
52 const Acts::SourceLink& sl,
53 const MutableTrackStateBackend::TrackStateProxy trackState) const;
54 private:
64 void invalidCalibrator(const Acts::GeometryContext& gctx,
65 const Acts::CalibrationContext& cctx,
66 const Acts::SourceLink& sl,
67 MutableTrackStateBackend::TrackStateProxy trackState) const;
75 void auxillaryCalibrator(const Acts::GeometryContext& gctx,
76 const Acts::CalibrationContext& cctx,
77 const Acts::SourceLink& sl,
78 MutableTrackStateBackend::TrackStateProxy trackState) const;
81 using CalibDelegate = Acts::Experimental::Gx2FitterExtensions<MutableTrackStateBackend>::Calibrator;
82 constexpr static int s_nMeasTypes = static_cast<int>(xAOD::UncalibMeasType::nTypes);
85 std::array<CalibDelegate, s_nMeasTypes> m_calibrators{};
86
87
88
89 };
90}
91
92#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.
const xAOD::UncalibratedMeasurement * SourceLink_t
Underlying source link type of the uncalibrated measurement.
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.
static Acts::SourceLink pack(const xAOD::UncalibratedMeasurement *meas)
Helper method to pack an uncalibrated measurement to an Acts source link.
Athena definition of the Eigen plugin.
UncalibMeasType
Define the type of the uncalibrated measurement.
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.