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>
11 #include <memory>
12 
13 #include "Acts/EventData/SourceLink.hpp"
14 #include "Acts/Utilities/CalibrationContext.hpp"
16 
17 
18 class EventContext;
19 
20 namespace MuonR4{
21  class SpacePoint;
22  class CalibratedSpacePoint;
24  class ISpacePointCalibrator : virtual public IAlgTool {
25  public:
27 
28  virtual ~ISpacePointCalibrator() = default;
29 
30  using CalibSpacePointPtr = std::unique_ptr<CalibratedSpacePoint>;
31  using CalibSpacePointVec = std::vector<CalibSpacePointPtr>;
42  virtual CalibSpacePointPtr calibrate(const EventContext& ctx,
43  const SpacePoint* spacePoint,
44  const Amg::Vector3D& seedPosInChamb,
45  const Amg::Vector3D& seedDirInChamb,
46  const double timeDelay) const = 0;
57  virtual CalibSpacePointPtr calibrate(const EventContext& ctx,
58  const CalibratedSpacePoint& spacePoint,
59  const Amg::Vector3D& seedPosInChamb,
60  const Amg::Vector3D& seedDirInChamb,
61  const double timeDelay) const = 0;
68  virtual CalibSpacePointVec calibrate(const EventContext& ctx,
69  const std::vector<const SpacePoint*>& spacePoints,
70  const Amg::Vector3D& seedPosInChamb,
71  const Amg::Vector3D& seedDirInChamb,
72  const double timeDelay) const = 0;
73 
80  virtual CalibSpacePointVec calibrate(const EventContext& ctx,
82  const Amg::Vector3D& seedPosInChamb,
83  const Amg::Vector3D& seedDirInChamb,
84  const double timeDelay) const = 0;
88  virtual double driftVelocity(const EventContext& ctx,
89  const CalibratedSpacePoint& spacePoint) const = 0;
93  virtual double driftAcceleration(const EventContext& ctx,
94  const CalibratedSpacePoint& spacePoint) const = 0;
100  virtual void calibrateSourceLink(const Acts::GeometryContext& geoctx,
101  const Acts::CalibrationContext& cctx,
102  const Acts::SourceLink& link,
103  ActsTrk::MutableTrackStateBackend::TrackStateProxy state) const = 0;
104  };
105 
106 }
107 
108 
109 #endif
MuonR4::ISpacePointCalibrator::CalibSpacePointVec
std::vector< CalibSpacePointPtr > CalibSpacePointVec
Definition: ISpacePointCalibrator.h:31
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.
MuonR4::ISpacePointCalibrator::calibrate
virtual CalibSpacePointVec calibrate(const EventContext &ctx, CalibSpacePointVec &&spacePoints, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const =0
Refines the calibration constants of already calibrated space points.
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.
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:30
MuonR4::ISpacePointCalibrator
Interface class to refine the space point calibration with an external seed.
Definition: ISpacePointCalibrator.h:24
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
MuonR4::ISpacePointCalibrator::~ISpacePointCalibrator
virtual ~ISpacePointCalibrator()=default
TrackContainer.h