5#ifndef ACTSTRACKRECONSTRUCTION_ANALOGUECLUSTERINGTOOL_IMPL_H
6#define ACTSTRACKRECONSTRUCTION_ANALOGUECLUSTERINGTOOL_IMPL_H
20 template <
typename calib_data_t,
typename traj_t>
24 template <
typename calib_data_t>
26 using error_data_t =
typename std::remove_pointer_t<decltype(std::declval<calib_data_t>().getClusterErrorData())>;
35 template <
typename calib_data_t,
typename traj_t>
47 :
BASE(
std::move(base_options)),
56 std::pair<typename AnalogueClusteringCalibrator<calib_data_t, traj_t>::BASE::Pos,
59 const Acts::GeometryContext& gctx,
60 const Acts::CalibrationContext& cctx,
63 const std::pair<float, float>& angles)
const;
69 std::pair<std::optional<float>, std::optional<float>>
74 const std::pair<float, float>& angles)
const;
76 std::pair<std::optional<float>, std::optional<float>>
79 const std::pair<float, float>& angles,
86 template <
typename calib_data_t,
typename traj_t>
95 virtual std::unique_ptr<PixelOnBoundStateCalibratorBase >
create(
const EventContext &ctx)
const override {
99 virtual std::unique_ptr<PixelOnTrackCalibratorBase<traj_t> >
createOnTrackCalibrator(
const EventContext &ctx)
const override final {
100 return std::make_unique<AnalogueClusteringCalibrator<calib_data_t,traj_t> >(this->
createBaseOptions(ctx),
119 "Calibration data for pixel clusters"
127 Gaudi::Property<int>
m_errorStrategy {
this,
"errorStrategy", 1,
"Which error strategy to use for clusters on track: 0 - calibrated, 1 - cluster pitch, to be used only if broadClusters is used during clustering"};
This is an Identifier helper class for the Pixel subdetector.
the Analogue clustering calibrator
AnalogueClusteringCalibratorOptions< calib_data_t > m_options
std::pair< std::optional< float >, std::optional< float > > getCorrectedError(const error_data_t &errorData, const InDetDD::SiDetectorElement &element, const std::pair< float, float > &angles, const xAOD::PixelCluster &cluster) const
AnalogueClusteringCalibratorOptions< calib_data_t > Options
std::pair< std::optional< float >, std::optional< float > > getCorrectedPosition(const EventContext &ctx, const xAOD::PixelCluster &cluster, const error_data_t &errorData, const InDetDD::SiDetectorElement &element, const std::pair< float, float > &angles) const
PixelClusterCalibratorBase< AnalogueClusteringCalibrator< calib_data_t, traj_t >, traj_t > BASE
AnalogueClusteringCalibrator(PixelClusterCalibratorOptionsBase &&base_options, Options &&options)
const error_data_t * getErrorData() const
std::pair< typename AnalogueClusteringCalibrator< calib_data_t, traj_t >::BASE::Pos, typename AnalogueClusteringCalibrator< calib_data_t, traj_t >::BASE::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 > &angles) const
std::pair< float, float > getCentroid(const EventContext &ctx, const xAOD::PixelCluster &cluster, const InDetDD::SiDetectorElement &element) const
AnalogueClusteringCalibratorOptions< calib_data_t >::error_data_t error_data_t
Class to hold geometrical description of a silicon detector element.
Athena definition of the Eigen plugin.
PixelCluster_v1 PixelCluster
Define the version of the pixel cluster class.
Options for the analogue clustering calibrator.
typename std::remove_pointer_t< decltype(std::declval< calib_data_t >().getClusterErrorData())> error_data_t
double m_calibratedCovarianceLowerBound
const error_data_t * m_errorData
the base options the options of the options of every PixelClusterCalibrator must be based on