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 void calibrate(const Acts::GeometryContext&,
34 const Acts::CalibrationContext&,
35 const xAOD::StripCluster&,
36 TrackStateProxy&) const;
37
38 std::tuple<Pos, Cov, unsigned int> 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::tuple<Pos,
50 Cov,
51 unsigned int>
52 calibrate(const Acts::GeometryContext&,
53 const Acts::CalibrationContext&,
54 const xAOD::StripCluster&) const;
55
56 std::optional<float> getCorrectedError(const xAOD::StripCluster& cluster) const;
57
59 };
60
61 template <typename traj_t>
63 : public extends<AthAlgTool, IStripOnTrackCalibratorTool<traj_t> > {
64 public:
65 using base_class = typename extends<AthAlgTool, IStripOnTrackCalibratorTool<traj_t>>::base_class;
66
67 StripCalibratorToolImpl(const std::string& type,
68 const std::string& name,
69 const IInterface* parent);
70
71 virtual StatusCode initialize() override;
72
73 virtual std::unique_ptr<StripOnBoundStateCalibratorBase > create(const EventContext &ctx) const override {
74 return createOnTrackCalibrator(ctx);
75 }
76 virtual std::unique_ptr<StripOnTrackCalibratorBase<traj_t> > createOnTrackCalibrator(const EventContext &ctx) const override final {
77 return std::make_unique<StripCalibrator<traj_t> >(createOptions(ctx));
78 }
79
80 virtual bool calibrateAfterMeasurementSelection() const override;
81
82 private:
83 typename StripCalibrator<traj_t>::Options createOptions(const EventContext &) const {
85 .m_errorStrategy=m_errorStrategy,
86 .m_correctCovariance=m_correctCovariance
87 };
88 }
89
90 Gaudi::Property<bool> m_postCalibration{this, "CalibrateAfterMeasurementSelection", false};
91 Gaudi::Property<bool> m_correctCovariance{this, "PerformCovarianceCalibration", true};
92 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"};
93
94 };
95
96} // namespace ActsTrk::detail
97
99
100#endif
101
Acts::Delegate< std::tuple< Pos, Cov, unsigned int >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const Acts::Surface &, const xAOD::StripCluster &, const Acts::BoundTrackParameters &)> Calibrator
typename Acts::MultiTrajectory< traj_t >::TrackStateProxy TrackStateProxy
Acts::Delegate< void(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::StripCluster &, TrackStateProxy &)> OnTrackCalibrator
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
virtual void connectOnTrackCalibrator(BASE::OnTrackCalibrator &calibrator) const override
StripOnTrackCalibratorBase< traj_t > BASE
std::tuple< Pos, Cov, unsigned int > calibrate(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::StripCluster &) const
std::tuple< Pos, Cov, unsigned int > calibrate(const Acts::GeometryContext &, const Acts::CalibrationContext &, const Acts::Surface &, const xAOD::StripCluster &, const Acts::BoundTrackParameters &) const
void calibrate(const Acts::GeometryContext &, const Acts::CalibrationContext &, const xAOD::StripCluster &, TrackStateProxy &) const
Class to hold geometrical description of a silicon detector element.
Hash functions to pack the source link into unordered_maps / unordered_sets.
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.