ATLAS Offline Software
SpacePointCalibrator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONSPACEPOINTCALIBRATOR_SPACEPOINTCALIBRATOR_H
5 #define MUONSPACEPOINTCALIBRATOR_SPACEPOINTCALIBRATOR_H
6 
8 
9 
15 
19 
20 #include "GaudiKernel/PhysicalConstants.h"
23 
24 namespace MuonR4{
25  /*** @brief Implementation of the space point calibrator interface */
26  class SpacePointCalibrator : public extends<AthAlgTool, ISpacePointCalibrator>,
28  public:
30  using base_class::base_class;
31 
32  StatusCode initialize() override final;
33 
34  CalibSpacePointPtr calibrate(const EventContext& ctx,
35  const SpacePoint* spacePoint,
36  const Amg::Vector3D& seedPosInChamb,
37  const Amg::Vector3D& seedDirInChamb,
38  const double timeDelay) const override final;
39 
40  CalibSpacePointPtr calibrate(const EventContext& ctx,
41  const CalibratedSpacePoint& spacePoint,
42  const Amg::Vector3D& seedPosInChamb,
43  const Amg::Vector3D& seedDirInChamb,
44  const double timeDelay) const override final;
45 
46 
47  CalibSpacePointVec calibrate(const EventContext& ctx,
48  const std::vector<const SpacePoint*>& spacePoints,
49  const Amg::Vector3D& seedPosInChamb,
50  const Amg::Vector3D& seedDirInChamb,
51  const double timeDelay) const override final;
52 
53  CalibSpacePointVec calibrate(const EventContext& ctx,
55  const Amg::Vector3D& seedPosInChamb,
56  const Amg::Vector3D& seedDirInChamb,
57  const double timeDelay) const override final;
58 
59  double driftVelocity(const EventContext& ctx,
60  const CalibratedSpacePoint& spacePoint) const override final;
61  double driftAcceleration(const EventContext& ctx,
62  const CalibratedSpacePoint& spacePoint) const override final;
63 
64 
65  void calibrateSourceLink(const Acts::GeometryContext& geoctx,
66  const Acts::CalibrationContext& cctx,
67  const Acts::SourceLink& link,
68  ActsTrk::MutableTrackContainer::TrackStateProxy state) const override final;
69  private:
71  SG::ReadHandleKey<ActsGeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
72 
73  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
74 
75  ToolHandle<IMdtCalibrationTool> m_mdtCalibrationTool{this, "MdtCalibrationTool", ""};
76 
77  ToolHandle<Muon::INSWCalibTool> m_nswCalibTool{this, "NSWCalibTool", ""};
78 
79  ToolHandle<Muon::IMMClusterBuilderTool> m_clusterBuilderToolMM{this, "MMClusterBuilder", ""};
80 
82 
86  Gaudi::Property<double> m_muonPropSpeed{this, "PropagationSpeed", 1./ Gaudi::Units::c_light };
87 
89  Gaudi::Property<double> m_rpcSignalVelocity {this, "rpcSignalVelocity", 0.5 * Gaudi::Units::c_light,
90  "Propagation speed of the signal inside the rpc strip"};
91  /*** Resolution of the rpc time measurement */
92  Gaudi::Property<double> m_rpcTimeResolution{this, "rpcTimeResolution", 0.6 * Gaudi::Units::nanosecond,
93  "Estimated time resolution of the strip readout"};
94 
96  Gaudi::Property<bool> m_useRpcTime{this, "useRpcTime", false};
98  Gaudi::Property<bool> m_useTgcTime{this, "useTgcTime", false,
99  "Load the Tgc BC-ID on the track states for the fit"};
100  };
101 
102 }
103 #endif
MuonGMR4::MuonDetectorManager
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonDetectorManager.h:62
ActsGeometryContext.h
IMdtCalibrationTool.h
INSWCalibTool.h
SpacePoint.h
ISpacePointCalibrator.h
python.SystemOfUnits.nanosecond
float nanosecond
Definition: SystemOfUnits.py:134
SG::ReadHandleKey< ActsGeometryContext >
MuonR4::SpacePointCalibrator::m_muonPropSpeed
Gaudi::Property< double > m_muonPropSpeed
Assumed propagation velocity of the muon through the detector.
Definition: SpacePointCalibrator.h:86
MuonR4::CalibSpacePointVec
ISpacePointCalibrator::CalibSpacePointVec CalibSpacePointVec
Definition: SpacePointCalibrator.cxx:31
MuonR4::SpacePointCalibrator::m_rpcSignalVelocity
Gaudi::Property< double > m_rpcSignalVelocity
How fast does an electron signal travel along an rpc strip
Definition: SpacePointCalibrator.h:89
MuonR4::SpacePointCalibrator::m_useRpcTime
Gaudi::Property< bool > m_useRpcTime
Load the Rpc time on the track states for the track fit.
Definition: SpacePointCalibrator.h:96
MuonR4::SpacePointCalibrator::m_useTgcTime
Gaudi::Property< bool > m_useTgcTime
Load the Tgc bunch crossing ID on the track states.
Definition: SpacePointCalibrator.h:98
CalibratedSpacePoint.h
MuonR4::SpacePointCalibrator::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: SpacePointCalibrator.h:73
MuonR4::SpacePointCalibrator::m_nswCalibTool
ToolHandle< Muon::INSWCalibTool > m_nswCalibTool
Definition: SpacePointCalibrator.h:77
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
MuonDetectorManager.h
MuonR4::SpacePointCalibrator::calibrateSourceLink
void calibrateSourceLink(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, ActsTrk::MutableTrackContainer::TrackStateProxy state) const override final
Definition: SpacePointCalibrator.cxx:288
MeasurementCalibratorBase.h
MuonR4::SpacePointCalibrator::m_clusterBuilderToolMM
ToolHandle< Muon::IMMClusterBuilderTool > m_clusterBuilderToolMM
Definition: SpacePointCalibrator.h:79
MuonR4::SpacePointCalibrator::driftVelocity
double driftVelocity(const EventContext &ctx, const CalibratedSpacePoint &spacePoint) const override final
Definition: SpacePointCalibrator.cxx:269
ActsTrk::detail::MeasurementCalibratorBase
Base class providing the boiler code to fill the Acts multi trajectory track states.
Definition: MeasurementCalibratorBase.h:24
F600IntegrationConfig.spacePoints
spacePoints
Definition: F600IntegrationConfig.py:122
MuonR4::SpacePointCalibrator::driftAcceleration
double driftAcceleration(const EventContext &ctx, const CalibratedSpacePoint &spacePoint) const override final
Definition: SpacePointCalibrator.cxx:278
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:19
python.PhysicalConstants.c_light
float c_light
Definition: PhysicalConstants.py:73
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonR4::SpacePointCalibrator::m_mdtCalibrationTool
ToolHandle< IMdtCalibrationTool > m_mdtCalibrationTool
Definition: SpacePointCalibrator.h:75
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
MuonR4::SpacePointCalibrator
Definition: SpacePointCalibrator.h:27
MuonR4::SpacePointCalibrator::calibrate
CalibSpacePointPtr calibrate(const EventContext &ctx, const SpacePoint *spacePoint, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const override final
Definition: SpacePointCalibrator.cxx:73
MuonR4::CalibSpacePointPtr
ISpacePointCalibrator::CalibSpacePointPtr CalibSpacePointPtr
Definition: SpacePointCalibrator.cxx:32
MuonR4::SpacePointCalibrator::m_rpcTimeResolution
Gaudi::Property< double > m_rpcTimeResolution
Definition: SpacePointCalibrator.h:92
MuonR4::CalibratedSpacePoint
The calibrated Space point is created during the calibration process.
Definition: CalibratedSpacePoint.h:15
MuonR4::SpacePointCalibrator::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
access to the ACTS geometry context
Definition: SpacePointCalibrator.h:71
MuonR4::SpacePointCalibrator::m_detMgr
const MuonGMR4::MuonDetectorManager * m_detMgr
Definition: SpacePointCalibrator.h:81
IMMClusterBuilderTool.h
IMuonIdHelperSvc.h
MuonR4::SpacePointCalibrator::initialize
StatusCode initialize() override final
Definition: SpacePointCalibrator.cxx:36
ServiceHandle< Muon::IMuonIdHelperSvc >