ATLAS Offline Software
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 "CxxUtils/ArrayHelper.h"
12 
13 namespace 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  }
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
UncalibratedMeasurement.h
ActsTrk::detail::xAODUncalibMeasCalibrator::s_nMeasTypes
constexpr static int s_nMeasTypes
Definition: xAODUncalibMeasCalibrator.h:82
ActsTrk::detail::xAODUncalibMeasCalibrator::connect
void connect(const xAOD::UncalibMeasType type, const Type *instance)
Register a calibrator implementation instance for a given measurement type.
Definition: xAODUncalibMeasCalibrator.h:36
ActsTrk::detail::xAODUncalibMeasCalibrator::pack
static Acts::SourceLink pack(const xAOD::UncalibratedMeasurement *meas)
Helper method to pack an uncalibrated measurement to an Acts source link.
Definition: xAODUncalibMeasCalibrator.cxx:9
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
ActsTrk::detail::xAODUncalibMeasCalibrator::unpack
static const xAOD::UncalibratedMeasurement * unpack(const Acts::SourceLink &sl)
Helper method to unpack an Acts source link to an uncalibrated measurement.
Definition: xAODUncalibMeasCalibrator.cxx:12
instance
std::map< std::string, double > instance
Definition: Run_To_Get_Tags.h:8
xAOD::UncalibratedMeasurement_v1
Definition: UncalibratedMeasurement_v1.h:13
ActsTrk::detail::xAODUncalibMeasCalibrator::auxillaryCalibrator
void auxillaryCalibrator(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, MutableTrackStateBackend::TrackStateProxy trackState) const
Delegate method for the Auxiliary measurements.
Definition: xAODUncalibMeasCalibrator.cxx:32
ArrayHelper.h
MeasurementCalibratorBase.h
ActsTrk::detail::xAODUncalibMeasCalibrator::m_calibrators
std::array< CalibDelegate, s_nMeasTypes > m_calibrators
Dispatch table of the calibrators per measurement type.
Definition: xAODUncalibMeasCalibrator.h:85
ActsTrk::detail::MeasurementCalibratorBase
Base class providing the boiler code to fill the Acts multi trajectory track states.
Definition: MeasurementCalibratorBase.h:24
xAODType
Definition: ObjectType.h:13
xAOD::UncalibMeasType::nTypes
@ nTypes
ActsTrk::detail::xAODUncalibMeasCalibrator::calibrate
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 ...
Definition: xAODUncalibMeasCalibrator.cxx:58
ActsTrk::detail::xAODUncalibMeasCalibrator
Source link calibrator implementation for xAOD::Uncalibrated measurements.
Definition: xAODUncalibMeasCalibrator.h:19
ActsTrk::detail::xAODUncalibMeasCalibrator::CalibDelegate
Acts::Experimental::Gx2FitterExtensions< MutableTrackStateBackend >::Calibrator CalibDelegate
Abrivation for the calibrator delegate.
Definition: xAODUncalibMeasCalibrator.h:81
xAOD::UncalibMeasType
UncalibMeasType
Define the type of the uncalibrated measurement.
Definition: MeasurementDefs.h:25
ActsTrk::detail::xAODUncalibMeasCalibrator::invalidCalibrator
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.
Definition: xAODUncalibMeasCalibrator.cxx:25
ActsTrk::detail
Athena definition of the Eigen plugin.
Definition: MeasurementCalibratorBase.h:19
TrackContainer.h
ActsTrk::detail::xAODUncalibMeasCalibrator::xAODUncalibMeasCalibrator
xAODUncalibMeasCalibrator()
Empty default constructor.
Definition: xAODUncalibMeasCalibrator.cxx:17