ATLAS Offline Software
Loading...
Searching...
No Matches
ISpacePointCalibrator.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 MUONSPACEPOINTCALIBRATOR_ISPACEPOINTCALIBRATOR_H
6#define MUONSPACEPOINTCALIBRATOR_ISPACEPOINTCALIBRATOR_H
7
8#include <GaudiKernel/IAlgTool.h>
9#include <GaudiKernel/EventContext.h>
10
15
16#include <Acts/EventData/SourceLink.hpp>
17#include <Acts/Utilities/CloneablePtr.hpp>
18
19#include <memory>
20
21namespace ActsTrk{
22 class GeometryContext;
23}
24namespace Acts{
25 class CalibrationContext;
26 class GeometryContext;
27}
28namespace MuonR4{
29 class SpacePoint;
31}
32
33namespace MuonR4{
35 class ISpacePointCalibrator : virtual public IAlgTool {
36 public:
38
39 virtual ~ISpacePointCalibrator() = default;
40
41 using CalibSpacePointPtr = Acts::CloneablePtr<CalibratedSpacePoint>;
42 using CalibSpacePointVec = std::vector<CalibSpacePointPtr>;
54 virtual CalibSpacePointPtr calibrate(const EventContext& ctx,
55 const SpacePoint* spacePoint,
56 const Amg::Vector3D& seedPosInChamb,
57 const Amg::Vector3D& seedDirInChamb,
58 const double timeDelay) const = 0;
70 virtual CalibSpacePointPtr calibrate(const EventContext& ctx,
71 const CalibratedSpacePoint& spacePoint,
72 const Amg::Vector3D& seedPosInChamb,
73 const Amg::Vector3D& seedDirInChamb,
74 const double timeDelay) const = 0;
82 virtual CalibSpacePointVec calibrate(const EventContext& ctx,
83 const std::vector<const SpacePoint*>& spacePoints,
84 const Amg::Vector3D& seedPosInChamb,
85 const Amg::Vector3D& seedDirInChamb,
86 const double timeDelay) const = 0;
87
95
96 virtual CalibSpacePointVec calibrate(const Acts::CalibrationContext& cctx,
97 const Amg::Vector3D& seedPosInChamb,
98 const Amg::Vector3D& seedDirInChamb,
99 const double timeDelay,
100 const CalibSpacePointVec& spacePoints) const = 0;
101
105 virtual double driftVelocity(const Acts::CalibrationContext& cctx,
106 const CalibratedSpacePoint& spacePoint) const = 0;
110 virtual double driftAcceleration(const Acts::CalibrationContext& cctx,
111 const CalibratedSpacePoint& spacePoint) const = 0;
117 virtual void calibrateSourceLink(const Acts::GeometryContext& geoctx,
118 const Acts::CalibrationContext& cctx,
119 const Acts::SourceLink& link,
120 ActsTrk::MutableTrackStateBackend::TrackStateProxy state) const = 0;
126 virtual void updateSigns(const Amg::Vector3D& trackPos,
127 const Amg::Vector3D& trackDir,
128 CalibSpacePointVec& hitsToCalib) const = 0;
129
136 virtual void stampSignsOnMeasurements(const xAOD::MuonSegment& segment) const = 0;
137
143 virtual double driftRadius(const Acts::CalibrationContext& cctx,
144 const CalibratedSpacePoint& spacePoint,
145 const double timeDelay) const = 0;
151 virtual double driftVelocity(const Acts::CalibrationContext& cctx,
152 const CalibratedSpacePoint& spacePoint,
153 const double timeDelay) const = 0;
159 virtual double driftAcceleration(const Acts::CalibrationContext& cctx,
160 const CalibratedSpacePoint& spacePoint,
161 const double timeDelay) const = 0;
162 };
163
164}
165
166
167#endif
The calibrated Space point is created during the calibration process.
Interface class to refine the space point calibration with an external seed.
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.
virtual double driftAcceleration(const Acts::CalibrationContext &cctx, const CalibratedSpacePoint &spacePoint) const =0
Returns the drift acceleration (in ACTS units) for a given drift-circle space point.
Acts::CloneablePtr< CalibratedSpacePoint > CalibSpacePointPtr
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...
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.
virtual double driftVelocity(const Acts::CalibrationContext &cctx, const CalibratedSpacePoint &spacePoint, const double timeDelay) const =0
Returns the drift velocity (in ACTS units) for a given drift-circle space point and time delay.
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.
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.
virtual void stampSignsOnMeasurements(const xAOD::MuonSegment &segment) const =0
Stamps the signs of the drift radii w.r.t.
DeclareInterfaceID(ISpacePointCalibrator, 1, 0)
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.
virtual double driftVelocity(const Acts::CalibrationContext &cctx, const CalibratedSpacePoint &spacePoint) const =0
Returns the drift velocity (in ACTS units) for a given drift-circle space point.
virtual double driftAcceleration(const Acts::CalibrationContext &cctx, const CalibratedSpacePoint &spacePoint, const double timeDelay) const =0
Returns the drift acceleration (in ACTS units) for a given drift-circle space point and time delay.
std::vector< CalibSpacePointPtr > CalibSpacePointVec
virtual double driftRadius(const Acts::CalibrationContext &cctx, const CalibratedSpacePoint &spacePoint, const double timeDelay) const =0
Returns the drift radius for a given drift-circle space point and time delay.
virtual ~ISpacePointCalibrator()=default
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Eigen::Matrix< double, 3, 1 > Vector3D
This header ties the generic definitions in this package.
MuonSegment_v1 MuonSegment
Reference the current persistent version: