ATLAS Offline Software
Loading...
Searching...
No Matches
StripCalibratorToolImpl.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ACTSTRACKRECONSTRUCTION_STRIPCALIBRATOR_IMPL_H
6#define ACTSTRACKRECONSTRUCTION_STRIPCALIBRATOR_IMPL_H
7
11
13
14namespace ActsTrk::detail {
15
16 template <typename traj_t>
18 {
19 public:
21
27 : m_options(cfg)
28 {}
32
33 std::pair<Pos, Cov> calibrate(const Acts::GeometryContext&,
34 const Acts::CalibrationContext&,
35 const xAOD::StripCluster&,
36 const TrackStateProxy&) const;
37
38 std::pair<Pos, Cov> calibrate(const Acts::GeometryContext&,
39 const Acts::CalibrationContext&,
40 const Acts::Surface&,
41 const xAOD::StripCluster&,
42 const Acts::BoundTrackParameters&) const;
43
44 virtual void connectOnTrackCalibrator(BASE::OnTrackCalibrator &calibrator) const override;
45 virtual void connectCalibrator(StripOnBoundStateCalibratorBase::Calibrator &calibrator) const override;
46 protected:
47 const InDetDD::SiDetectorElement& getDetectorElement(const Acts::Surface &surface) const;
48
49 std::pair<Pos,
50 Cov>
51 calibrate(const Acts::GeometryContext&,
52 const Acts::CalibrationContext&,
53 const xAOD::StripCluster&) const;
54
55 std::optional<float> getCorrectedError(const xAOD::StripCluster& cluster) const;
56
58 };
59
60 template <typename traj_t>
62 : public extends<AthAlgTool, IStripOnTrackCalibratorTool<traj_t> > {
63 public:
64 using base_class = typename extends<AthAlgTool, IStripOnTrackCalibratorTool<traj_t>>::base_class;
65
66 StripCalibratorToolImpl(const std::string& type,
67 const std::string& name,
68 const IInterface* parent);
69
70 virtual StatusCode initialize() override;
71
72 virtual std::unique_ptr<StripOnBoundStateCalibratorBase > create(const EventContext &ctx) const override {
73 return createOnTrackCalibrator(ctx);
74 }
75 virtual std::unique_ptr<StripOnTrackCalibratorBase<traj_t> > createOnTrackCalibrator(const EventContext &ctx) const override final {
76 return std::make_unique<StripCalibrator<traj_t> >(createOptions(ctx));
77 }
78
79 virtual bool calibrateAfterMeasurementSelection() const override;
80
81 private:
82 typename StripCalibrator<traj_t>::Options createOptions(const EventContext &) const {
84 .m_errorStrategy=m_errorStrategy,
85 .m_correctCovariance=m_correctCovariance
86 };
87 }
88
89 Gaudi::Property<bool> m_postCalibration{this, "CalibrateAfterMeasurementSelection", false};
90 Gaudi::Property<bool> m_correctCovariance{this, "PerformCovarianceCalibration", true};
91 Gaudi::Property<int> m_errorStrategy {this,"errorStrategy", 0, "Which error strategy to use for clusters on track: 0 - no correction, 1 - cluster size, 2 - from clustering tool"};
92
93 };
94
95} // namespace ActsTrk::detail
96
98
99#endif
100
Acts::Delegate< std::pair< Pos, Cov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const Acts::Surface &, const xAOD::StripCluster &, const Acts::BoundTrackParameters &)> Calibrator
Acts::Delegate< std::pair< Pos, Cov >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::StripCluster &, const TrackStateProxy &)> OnTrackCalibrator
typename Acts::MultiTrajectory< traj_t >::TrackStateProxy TrackStateProxy
StripCalibratorToolImpl(const std::string &type, const std::string &name, const IInterface *parent)
virtual std::unique_ptr< StripOnBoundStateCalibratorBase > create(const EventContext &ctx) const override
virtual std::unique_ptr< StripOnTrackCalibratorBase< traj_t > > createOnTrackCalibrator(const EventContext &ctx) const override final
virtual bool calibrateAfterMeasurementSelection() const override
virtual StatusCode initialize() override
StripCalibrator< traj_t >::Options createOptions(const EventContext &) const
typename extends< AthAlgTool, IStripOnTrackCalibratorTool< traj_t > >::base_class base_class
std::optional< float > getCorrectedError(const xAOD::StripCluster &cluster) const
const InDetDD::SiDetectorElement & getDetectorElement(const Acts::Surface &surface) const
virtual void connectCalibrator(StripOnBoundStateCalibratorBase::Calibrator &calibrator) const override
std::pair< Pos, Cov > calibrate(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::StripCluster &, const TrackStateProxy &) const
virtual void connectOnTrackCalibrator(BASE::OnTrackCalibrator &calibrator) const override
std::pair< Pos, Cov > calibrate(const Acts::GeometryContext &, const Acts::CalibrationContext &, const Acts::Surface &, const xAOD::StripCluster &, const Acts::BoundTrackParameters &) const
std::pair< Pos, Cov > calibrate(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::StripCluster &) const
StripOnTrackCalibratorBase< traj_t > BASE
Class to hold geometrical description of a silicon detector element.
Athena definition of the Eigen plugin.
OnTrackCalibratorBase< xAOD::StripCluster, 1, traj_t > StripOnTrackCalibratorBase
StripCluster_v1 StripCluster
Define the version of the strip cluster class.
Eigen::Matrix< float, N, N > MeasMatrix
Eigen::Matrix< float, N, 1 > MeasVector
Abrivation of the Matrix & Covariance definitions.