5#ifndef ACTSTRACKRECONSTRUCTION_PIXELCLUSTERCALIBRATIONTOOLBASE_H
6#define ACTSTRACKRECONSTRUCTION_PIXELCLUSTERCALIBRATIONTOOLBASE_H
28 template <
typename traj_t>
52 return m_baseOptions.m_lorentzAngleTool->getLorentzShift(elementHash, ctx);
64 std::pair<typename PixelClusterCalibratorCommon<traj_t>::Pos,
67 [[maybe_unused]]
const Acts::GeometryContext& gctx,
68 [[maybe_unused]]
const Acts::CalibrationContext& cctx,
71 [[maybe_unused]]
const std::pair<float, float>& tan_incident_angles)
const {
72 return std::make_pair(cluster.template localPosition<2>(),
73 cluster.template localCovariance<2>());
77 std::pair<float, float>
79 const Acts::GeometryContext& gctx,
80 const Acts::Surface &surface,
82 const Acts::Vector3& direction)
const;
88 template <
typename derived_t,
typename traj_t>
101 requires(
std::is_base_of_v<
std::remove_cvref_t<decltype( *this )>, derived_t >)
103 return *
static_cast<const derived_t *
>(
this);
106 std::pair<Pos, Cov>
calibrate(
const Acts::GeometryContext&,
107 const Acts::CalibrationContext&,
111 std::pair<Pos, Cov>
calibrate(
const Acts::GeometryContext&,
112 const Acts::CalibrationContext&,
113 const Acts::Surface&,
115 const Acts::BoundTrackParameters&)
const;
132 template <
typename traj_t>
134 :
public extends<AthAlgTool, ActsTrk::IPixelOnTrackCalibratorTool<traj_t>> {
137 using base_class::base_class;
143 virtual std::unique_ptr<PixelOnBoundStateCalibratorBase >
create(
const EventContext &ctx)
const override {
144 return this->createOnTrackCalibrator(ctx);
154 .m_lorentzAngleTool=&(*m_lorentzAngleTool),
161 "Tool to retreive Lorentz angle"
This is an Identifier helper class for the Pixel subdetector.
Acts::Delegate< std::pair< Pos, Cov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const Acts::Surface &, const cluster_t &, const Acts::BoundTrackParameters &)> Calibrator
Acts::Delegate< std::pair< Pos, Cov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const cluster_t &, const TrackStateProxy &)> OnTrackCalibrator
typename Acts::MultiTrajectory< traj_t >::TrackStateProxy TrackStateProxy
OnBoundStateCalibratorBase< xAOD::PixelCluster, DIM > BASE
std::pair< Pos, Cov > calibrate(const Acts::GeometryContext &, const Acts::CalibrationContext &, const Acts::Surface &, const xAOD::PixelCluster &, const Acts::BoundTrackParameters &) const
const derived_t & derived() const
OnBoundStateCalibratorBase< xAOD::PixelCluster, 2 >::Calibrator Calibrator
OnTrackCalibratorBase< xAOD::PixelCluster, 2, traj_t >::OnTrackCalibrator OnTrackCalibrator
OnTrackCalibratorBase< xAOD::PixelCluster, 2, traj_t >::TrackStateProxy TrackStateProxy
PixelClusterCalibratorCommon< traj_t > BASE
virtual void connectCalibrator(Calibrator &calibrator) const override
connect the calibrator (derived class) to the given OnBoundState calaibrator delegate
std::pair< Pos, Cov > calibrate(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::PixelCluster &, const TrackStateProxy &) const
virtual void connectOnTrackCalibrator(OnTrackCalibrator &calibrator) const override
connect the calibrator (derived class) to the given OnTrack calaibrator delegate
xAOD::MeasMatrix< 2 > Cov
PixelClusterCalibratorCommon(PixelClusterCalibratorOptionsBase &&base_options)
PixelClusterCalibratorOptionsBase m_baseOptions
double getLorentzShift(const IdentifierHash &elementHash, const EventContext &ctx) const
@breif get the lorentz shift for the given module.
const InDetDD::SiDetectorElement & getDetectorElement(const Acts::Surface &surface) const
convenience method to get the detector element for a module
const PixelID & pixelID() const
get the Pixel ID helper.
xAOD::MeasVector< 2 > Pos
std::pair< typename PixelClusterCalibratorCommon< traj_t >::Pos, typename PixelClusterCalibratorCommon< traj_t >::Cov > calibrate(const EventContext &ctx, const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const xAOD::PixelCluster &cluster, const InDetDD::SiDetectorElement &detElement, const std::pair< float, float > &tan_incident_angles) const
single calibrate method serving OnTrack and OnBoundState cluster calibration
std::pair< float, float > tanAnglesOfIncidence(const EventContext &ctx, const Acts::GeometryContext &gctx, const Acts::Surface &surface, const InDetDD::SiDetectorElement &element, const Acts::Vector3 &direction) const
compute tan of Lorentz angle corrected incidence angles in local-x and local-y direction.
This is a "hash" representation of an Identifier.
Class to hold geometrical description of a silicon detector element.
This is an Identifier helper class for the Pixel subdetector.
Athena definition of the Eigen plugin.
OnTrackCalibratorBase< xAOD::PixelCluster, 2, traj_t > PixelOnTrackCalibratorBase
Eigen::Matrix< float, N, N > MeasMatrix
Eigen::Matrix< float, N, 1 > MeasVector
Abrivation of the Matrix & Covariance definitions.
PixelCluster_v1 PixelCluster
Define the version of the pixel cluster class.
the base options the options of the options of every PixelClusterCalibrator must be based on
const PixelID * m_pixelID
const ISiLorentzAngleTool * m_lorentzAngleTool