ATLAS Offline Software
OnTrackCalibrator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSTRACKRECONSTRUCTION_ONTRACKCALIBRATOR_H
6 #define ACTSTRACKRECONSTRUCTION_ONTRACKCALIBRATOR_H
7 
8 #include "GaudiKernel/ToolHandle.h"
11 #include "Acts/Geometry/TrackingGeometry.hpp"
12 
18 namespace ActsTrk::detail {
19 
21 template <typename traj_t>
22 class OnTrackCalibrator : MeasurementCalibratorBase {
23 public:
24  using TrackStateProxy = typename Acts::MultiTrajectory<traj_t>::TrackStateProxy;
25 
28  using PixelCalibrator = Acts::Delegate<
29  std::pair<PixelPos, PixelCov>(const Acts::GeometryContext&,
30  const Acts::CalibrationContext&,
31  const xAOD::PixelCluster&,
32  const TrackStateProxy&)>;
33 
36  using StripCalibrator = Acts::Delegate<
37  std::pair<StripPos, StripCov>(const Acts::GeometryContext&,
38  const Acts::CalibrationContext&,
39  const xAOD::StripCluster&,
40  const TrackStateProxy&)>;
41 
44  using HGTDCalibrator = Acts::Delegate<
45  std::pair<HgtdPos, HgtdCov>(const Acts::GeometryContext&,
46  const Acts::CalibrationContext&,
47  const xAOD::HGTDCluster &,
48  const TrackStateProxy&)>;
49 
50 
57  static OnTrackCalibrator
60  OnTrackCalibrator() = default;
71  const ToolHandle<IOnTrackCalibratorTool<traj_t>> &pixelTool,
72  const ToolHandle<IOnTrackCalibratorTool<traj_t>> &stripTool,
73  const ToolHandle<IOnTrackCalibratorTool<traj_t>> &hgtdTool);
74 
80  void calibrate(const Acts::GeometryContext& geoctx,
81  const Acts::CalibrationContext& cctx,
82  const Acts::SourceLink& link,
83  TrackStateProxy state) const;
84 
85 private:
88  // Support the no-calibration case
89  template <std::size_t Dim, typename Cluster>
90  std::pair<xAOD::MeasVector<Dim>, xAOD::MeasMatrix<Dim>>
91  passthrough(const Acts::GeometryContext& gctx,
92  const Acts::CalibrationContext& /*cctx*/,
93  const Cluster& cluster,
94  const TrackStateProxy& state) const;
95 };
96 
97 } // namespace ActsTrk
98 
100 
101 #endif
ActsTrk::detail::OnTrackCalibrator::passthrough
std::pair< xAOD::MeasVector< Dim >, xAOD::MeasMatrix< Dim > > passthrough(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &, const Cluster &cluster, const TrackStateProxy &state) const
StripCluster.h
ActsTrk::detail::OnTrackCalibrator::pixelCalibrator
PixelCalibrator pixelCalibrator
Definition: OnTrackCalibrator.h:51
HGTDCluster.h
ActsTrk::detail::OnTrackCalibrator::m_surfAcc
xAODUncalibMeasSurfAcc m_surfAcc
Helper class to access the Acts surfaces.
Definition: OnTrackCalibrator.h:87
IOnTrackCalibratorTool.h
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::HGTDCalibrator
Acts::Delegate< std::pair< HgtdPos, HgtdCov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::HGTDCluster &, const TrackStateProxy &)> HGTDCalibrator
Definition: OnTrackCalibrator.h:48
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::StripCalibrator
Acts::Delegate< std::pair< StripPos, StripCov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::StripCluster &, const TrackStateProxy &)> StripCalibrator
Definition: OnTrackCalibrator.h:40
ActsTrk::ITrackingGeometryTool
Geometry helper tool extending the Tracking geometry service by the data dependency to fetch the geom...
Definition: ITrackingGeometryTool.h:24
xAOD::HGTDCluster_v1
Definition: HGTDCluster_v1.h:23
ActsTrk::detail::OnTrackCalibrator::stripCalibrator
StripCalibrator stripCalibrator
Definition: OnTrackCalibrator.h:52
OnTrackCalibrator.icc
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::PixelCalibrator
Acts::Delegate< std::pair< PixelPos, PixelCov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::PixelCluster &, const TrackStateProxy &)> PixelCalibrator
Definition: OnTrackCalibrator.h:32
ActsTrk::detail::OnTrackCalibrator::calibrate
void calibrate(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, TrackStateProxy state) const
Function that's hooked to the calibration delegate of the implemented Acts fitters.
PixelCluster.h
ActsTrk::IOnTrackCalibratorTool
Definition: IOnTrackCalibratorTool.h:18
MeasurementCalibratorBase.h
xAOD::StripCluster_v1
Definition: StripCluster_v1.h:17
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::TrackStateProxy
typename Acts::MultiTrajectory< ActsTrk::MutableTrackStateBackend >::TrackStateProxy TrackStateProxy
Definition: OnTrackCalibrator.h:24
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::HgtdCov
xAOD::MeasMatrix< 3 > HgtdCov
Definition: OnTrackCalibrator.h:43
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::StripCov
xAOD::MeasMatrix< 1 > StripCov
Definition: OnTrackCalibrator.h:35
xAOD::MeasVector
Eigen::Matrix< float, N, 1 > MeasVector
Abrivation of the Matrix & Covariance definitions.
Definition: MeasurementDefs.h:53
ActsTrk::detail::OnTrackCalibrator::OnTrackCalibrator
OnTrackCalibrator()=default
Empty default constructor.
ActsTrk::detail::OnTrackCalibrator::OnTrackCalibrator
OnTrackCalibrator(const ActsTrk::ITrackingGeometryTool *trackGeoTool, const ToolHandle< IOnTrackCalibratorTool< traj_t >> &pixelTool, const ToolHandle< IOnTrackCalibratorTool< traj_t >> &stripTool, const ToolHandle< IOnTrackCalibratorTool< traj_t >> &hgtdTool)
Standard cosntructor which activates the calibration of the ITk & HGTD measurements based on the best...
xAODUncalibMeasSurfAcc.h
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::HgtdPos
xAOD::MeasVector< 3 > HgtdPos
Definition: OnTrackCalibrator.h:42
ActsTrk::detail::OnTrackCalibrator::NoCalibration
static OnTrackCalibrator NoCalibration(const ActsTrk::ITrackingGeometryTool *trackGeoTool)
Constructs a calibrator which copies the local position & covariance of the ITk measurements onto the...
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::PixelCov
xAOD::MeasMatrix< 2 > PixelCov
Definition: OnTrackCalibrator.h:27
xAOD::PixelCluster_v1
Definition: PixelCluster_v1.h:17
ITrackingGeometryTool.h
xAOD::MeasMatrix
Eigen::Matrix< float, N, N > MeasMatrix
Definition: MeasurementDefs.h:55
ActsTrk::detail::xAODUncalibMeasSurfAcc
Helper class to access the Acts::surface associated with an Uncalibrated xAOD measurement.
Definition: xAODUncalibMeasSurfAcc.h:22
ActsTrk::detail::OnTrackCalibrator
Inner detector / ITk calibrator implementation used in the KalmanFilterTool.
Definition: IOnTrackCalibratorTool.h:14
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::StripPos
xAOD::MeasVector< 1 > StripPos
Definition: OnTrackCalibrator.h:34
ActsTrk::detail
Athena definition of the Eigen plugin.
Definition: MeasurementCalibratorBase.h:19
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::PixelPos
xAOD::MeasVector< 2 > PixelPos
Definition: OnTrackCalibrator.h:26
ActsTrk::detail::OnTrackCalibrator::hgtdCalibrator
HGTDCalibrator hgtdCalibrator
Definition: OnTrackCalibrator.h:53