ATLAS Offline Software
OnTrackCalibrator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ONTRACKCALIBRATOR_H
6 #define ONTRACKCALIBRATOR_H
7 
8 
9 #include <GaudiKernel/ToolHandle.h>
10 
11 #include "MeasurementCalibrator.h"
12 
13 namespace ActsTrk {
14 
15 template <typename traj_t>
16 class OnTrackCalibrator : MeasurementCalibratorBase {
17 public:
18  using TrackStateProxy = typename Acts::MultiTrajectory<traj_t>::TrackStateProxy;
19 
22  using PixelCalibrator = Acts::Delegate<
23  std::pair<PixelPos, PixelCov>(const Acts::GeometryContext&,
24  const Acts::CalibrationContext&,
25  const xAOD::PixelCluster&,
26  const TrackStateProxy&)>;
27 
30  using StripCalibrator = Acts::Delegate<
31  std::pair<StripPos, StripCov>(const Acts::GeometryContext&,
32  const Acts::CalibrationContext&,
33  const xAOD::StripCluster&,
34  const TrackStateProxy&)>;
35 
38 
39  static OnTrackCalibrator
41  const TrackingSurfaceHelper &surface_helper);
42 
44  const TrackingSurfaceHelper &surface_helper,
45  const ToolHandle<IOnTrackCalibratorTool<traj_t>> &pixelTool,
46  const ToolHandle<IOnTrackCalibratorTool<traj_t>> &stripTool);
47 
48  void calibrate(const Acts::GeometryContext& geoctx,
49  const Acts::CalibrationContext& cctx,
50  const Acts::SourceLink& link,
51  TrackStateProxy state) const;
52 
53 private:
54 
55  // Support the no-calibration case
56  template <std::size_t Dim, typename Cluster>
57  std::pair<xAOD::MeasVector<Dim>, xAOD::MeasMatrix<Dim>>
58  passthrough(const Acts::GeometryContext& gctx,
59  const Acts::CalibrationContext& /*cctx*/,
60  const Cluster& cluster,
61  const TrackStateProxy& state) const;
62 
63  // Helper to locate surfaces
65 };
66 
67 } // namespace ActsTrk
68 
69 #include "OnTrackCalibrator.icc"
70 
71 #endif
TrackingSurfaceHelper
Simple helper class which allows to access the tracking surface associated to a certain (Si-)measurem...
Definition: TrackingSurfaceHelper.h:17
ActsTrk::OnTrackCalibrator::TrackStateProxy
typename Acts::MultiTrajectory< traj_t >::TrackStateProxy TrackStateProxy
Definition: OnTrackCalibrator.h:18
ActsTrk::OnTrackCalibrator::NoCalibration
static OnTrackCalibrator NoCalibration(const ActsTrk::IActsToTrkConverterTool &converter_tool, const TrackingSurfaceHelper &surface_helper)
ActsTrk::OnTrackCalibrator::pixel_calibrator
PixelCalibrator pixel_calibrator
Definition: OnTrackCalibrator.h:36
ActsTrk::OnTrackCalibrator::m_surfaceHelper
const TrackingSurfaceHelper * m_surfaceHelper
Definition: OnTrackCalibrator.h:64
ActsTrk::OnTrackCalibrator::OnTrackCalibrator
OnTrackCalibrator(const ActsTrk::IActsToTrkConverterTool &converter_tool, const TrackingSurfaceHelper &surface_helper, const ToolHandle< IOnTrackCalibratorTool< traj_t >> &pixelTool, const ToolHandle< IOnTrackCalibratorTool< traj_t >> &stripTool)
OnTrackCalibrator.icc
ActsTrk::OnTrackCalibrator::strip_calibrator
StripCalibrator strip_calibrator
Definition: OnTrackCalibrator.h:37
ActsTrk::OnTrackCalibrator::PixelPos
xAOD::MeasVector< 2 > PixelPos
Definition: OnTrackCalibrator.h:20
ActsTrk::IActsToTrkConverterTool
Definition: IActsToTrkConverterTool.h:43
ActsTrk::IOnTrackCalibratorTool
Definition: IOnTrackCalibratorTool.h:16
xAOD::StripCluster_v1
Definition: StripCluster_v1.h:17
ActsTrk::OnTrackCalibrator::PixelCalibrator
Acts::Delegate< std::pair< PixelPos, PixelCov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::PixelCluster &, const TrackStateProxy &)> PixelCalibrator
Definition: OnTrackCalibrator.h:26
ActsTrk::OnTrackCalibrator::StripCalibrator
Acts::Delegate< std::pair< StripPos, StripCov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::StripCluster &, const TrackStateProxy &)> StripCalibrator
Definition: OnTrackCalibrator.h:34
xAOD::MeasVector
Eigen::Matrix< float, N, 1 > MeasVector
Abrivation of the Matrix & Covariance definitions.
Definition: MeasurementDefs.h:52
MeasurementCalibrator.h
ActsTrk::OnTrackCalibrator::calibrate
void calibrate(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, TrackStateProxy state) const
xAOD::PixelCluster_v1
Definition: PixelCluster_v1.h:17
ActsTrk::OnTrackCalibrator::StripPos
xAOD::MeasVector< 1 > StripPos
Definition: OnTrackCalibrator.h:28
ActsTrk::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
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:34
ActsTrk::OnTrackCalibrator
Definition: IOnTrackCalibratorTool.h:13
xAOD::MeasMatrix
Eigen::Matrix< float, N, N > MeasMatrix
Definition: MeasurementDefs.h:54
ActsTrk::OnTrackCalibrator::PixelCov
xAOD::MeasMatrix< 2 > PixelCov
Definition: OnTrackCalibrator.h:21
ActsTrk::OnTrackCalibrator::StripCov
xAOD::MeasMatrix< 1 > StripCov
Definition: OnTrackCalibrator.h:29