ATLAS Offline Software
ISpacePointCalibrator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONSPACEPOINTCALIBRATOR_ISPACEPOINTCALIBRATOR_H
6 #define MUONSPACEPOINTCALIBRATOR_ISPACEPOINTCALIBRATOR_H
7 
8 #include <GaudiKernel/IAlgTool.h>
9 #include <GaudiKernel/EventContext.h>
10 
13 #include <xAODMuon/MuonSegment.h>
15 #include <Acts/EventData/SourceLink.hpp>
16 
17 #include <memory>
18 
19 namespace ActsTrk{
20  class GeometryContext;
21 }
22 namespace Acts{
23  class CalibrationContext;
24  class GeometryContext;
25 }
26 namespace MuonR4{
27  class SpacePoint;
28  class CalibratedSpacePoint;
29 }
30 
31 namespace MuonR4{
33  class ISpacePointCalibrator : virtual public IAlgTool {
34  public:
36 
37  virtual ~ISpacePointCalibrator() = default;
38 
39  using CalibSpacePointPtr = std::unique_ptr<CalibratedSpacePoint>;
40  using CalibSpacePointVec = std::vector<CalibSpacePointPtr>;
51  virtual CalibSpacePointPtr calibrate(const EventContext& ctx,
52  const SpacePoint* spacePoint,
53  const Amg::Vector3D& seedPosInChamb,
54  const Amg::Vector3D& seedDirInChamb,
55  const double timeDelay) const = 0;
66  virtual CalibSpacePointPtr calibrate(const EventContext& ctx,
67  const CalibratedSpacePoint& spacePoint,
68  const Amg::Vector3D& seedPosInChamb,
69  const Amg::Vector3D& seedDirInChamb,
70  const double timeDelay) const = 0;
77  virtual CalibSpacePointVec calibrate(const EventContext& ctx,
78  const std::vector<const SpacePoint*>& spacePoints,
79  const Amg::Vector3D& seedPosInChamb,
80  const Amg::Vector3D& seedDirInChamb,
81  const double timeDelay) const = 0;
82 
91  virtual CalibSpacePointVec calibrate(const Acts::CalibrationContext& cctx,
92  const Amg::Vector3D& seedPosInChamb,
93  const Amg::Vector3D& seedDirInChamb,
94  const double timeDelay,
95  const CalibSpacePointVec& spacePoints) const = 0;
99  virtual double driftVelocity(const EventContext& ctx,
100  const CalibratedSpacePoint& spacePoint) const = 0;
104  virtual double driftAcceleration(const EventContext& ctx,
105  const CalibratedSpacePoint& spacePoint) const = 0;
111  virtual void calibrateSourceLink(const Acts::GeometryContext& geoctx,
112  const Acts::CalibrationContext& cctx,
113  const Acts::SourceLink& link,
114  ActsTrk::MutableTrackStateBackend::TrackStateProxy state) const = 0;
120  virtual void updateSigns(const Amg::Vector3D& trackPos,
121  const Amg::Vector3D& trackDir,
122  CalibSpacePointVec& hitsToCalib) const = 0;
123 
130  virtual void stampSignsOnMeasurements(const xAOD::MuonSegment& segment) const = 0;
131  };
132 
133 }
134 
135 
136 #endif
MuonR4::ISpacePointCalibrator::CalibSpacePointVec
std::vector< CalibSpacePointPtr > CalibSpacePointVec
Definition: ISpacePointCalibrator.h:40
MuonR4::ISpacePointCalibrator::calibrate
virtual CalibSpacePointVec calibrate(const EventContext &ctx, const std::vector< const SpacePoint * > &spacePoints, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const =0
Calibrates a set of space points.
MuonSegment.h
xAOD::MuonSegment_v1
Class describing a MuonSegment.
Definition: MuonSegment_v1.h:33
MuonR4::ISpacePointCalibrator::calibrate
virtual CalibSpacePointPtr calibrate(const EventContext &ctx, const CalibratedSpacePoint &spacePoint, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const =0
Calibrates a single space point.
MuonR4::ISpacePointCalibrator::calibrate
virtual CalibSpacePointPtr calibrate(const EventContext &ctx, const SpacePoint *spacePoint, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const =0
Calibrates a single space point.
MuonR4::ISpacePointCalibrator::driftVelocity
virtual double driftVelocity(const EventContext &ctx, const CalibratedSpacePoint &spacePoint) const =0
Returns the drift velocity for a given drift-circle space point.
MuonR4::ISpacePointCalibrator::DeclareInterfaceID
DeclareInterfaceID(ISpacePointCalibrator, 1, 0)
SpacePoint
Definition: Trigger/TrigAccel/TrigCudaFitter/src/SpacePoint.h:7
GeoPrimitives.h
MuonR4::ISpacePointCalibrator::driftAcceleration
virtual double driftAcceleration(const EventContext &ctx, const CalibratedSpacePoint &spacePoint) const =0
Returns the drift acceleration for a given drift-circle space point.
Acts
Definition: MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/xAODMuonPrepData/UtilFunctions.h:20
MuonR4::ISpacePointCalibrator::stampSignsOnMeasurements
virtual void stampSignsOnMeasurements(const xAOD::MuonSegment &segment) const =0
Stamps the signs of the drift radii w.r.t.
MuonR4::ISpacePointCalibrator::calibrate
virtual CalibSpacePointVec calibrate(const Acts::CalibrationContext &cctx, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay, const CalibSpacePointVec &spacePoints) const =0
Refines the calibration constants of already calibrated space points.
F600IntegrationConfig.spacePoints
spacePoints
Definition: F600IntegrationConfig.py:122
MuonR4::SpacePoint
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:24
MuonR4::ISpacePointCalibrator::CalibSpacePointPtr
std::unique_ptr< CalibratedSpacePoint > CalibSpacePointPtr
Definition: ISpacePointCalibrator.h:39
MuonR4::ISpacePointCalibrator
Interface class to refine the space point calibration with an external seed.
Definition: ISpacePointCalibrator.h:33
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
MuonR4::ISpacePointCalibrator::calibrateSourceLink
virtual void calibrateSourceLink(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, ActsTrk::MutableTrackStateBackend::TrackStateProxy state) const =0
Function that's hooked to the calibration delegate of the implemented Acts fitters.
MuonR4::CalibratedSpacePoint
The calibrated Space point is created during the calibration process.
Definition: CalibratedSpacePoint.h:14
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MdtCalibInput.h:31
MuonR4::ISpacePointCalibrator::updateSigns
virtual void updateSigns(const Amg::Vector3D &trackPos, const Amg::Vector3D &trackDir, CalibSpacePointVec &hitsToCalib) const =0
Update the signs of the drift radii for a given straight line track to fix the left <-> right ambigui...
MuonR4::ISpacePointCalibrator::~ISpacePointCalibrator
virtual ~ISpacePointCalibrator()=default
TrackContainer.h