4#ifndef MUONSPACEPOINTCALIBRATOR_SPACEPOINTCALIBRATOR_H
5#define MUONSPACEPOINTCALIBRATOR_SPACEPOINTCALIBRATOR_H
20#include "GaudiKernel/PhysicalConstants.h"
34 using base_class::base_class;
42 const double timeDelay)
const override final;
48 const double timeDelay)
const override final;
52 const std::vector<const SpacePoint*>& spacePoints,
55 const double timeDelay)
const override final;
60 const double timeDelay,
74 const Acts::CalibrationContext& cctx,
75 const Acts::SourceLink& link,
76 ActsTrk::MutableTrackContainer::TrackStateProxy state)
const override final;
90 ActsTrk::MutableTrackContainer::TrackStateProxy state)
const;
100 std::pair<double, double>
calibrateMM(
const EventContext& ctx,
116 std::pair<double, double>
calibratesTGC(
const EventContext& ctx,
119 std::optional<double> posAlongTheStrip,
139 Gaudi::Property<double>
m_muonPropSpeed{
this,
"PropagationSpeed", 1./ Gaudi::Units::c_light };
143 "Propagation speed of the signal inside the rpc strip"};
146 "Estimated time resolution of the strip readout"};
152 "Load the Tgc BC-ID on the track states for the fit"};
154 "Load the sTgc time on the track states for the fit"};
156 "Mdt drift signs are copied from the segment line instead from the track state"};
Base class providing the boiler code to fill the Acts multi trajectory track states.
The calibrated Space point is created during the calibration process.
Gaudi::Property< bool > m_useRpcTime
Load the Rpc time on the track states for the track fit.
void calibrateCombinedPrd(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, const xAOD::CombinedMuonStrip *combinedPrd, ActsTrk::MutableTrackContainer::TrackStateProxy state) const
Calibrates the track states from a combined muon strip.
ToolHandle< Muon::IMMClusterBuilderTool > m_clusterBuilderToolMM
void calibrateSourceLink(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, ActsTrk::MutableTrackContainer::TrackStateProxy state) const override final
ToolHandle< Muon::INSWCalibTool > m_nswCalibTool
std::pair< double, double > calibratesTGC(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, const xAOD::sTgcStripCluster &cluster, std::optional< double > posAlongTheStrip, const Amg::Vector3D &globalPos, const Amg::Vector3D &globalDir) const
Calibrates the position and covariance of an sTGC (small-strip Thin Gap Chamber) cluster.
double driftVelocity(const Acts::CalibrationContext &ctx, const CalibratedSpacePoint &spacePoint) const override final
ToolHandle< IMdtCalibrationTool > m_mdtCalibrationTool
CalibSpacePointPtr calibrate(const EventContext &ctx, const SpacePoint *spacePoint, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const override final
Gaudi::Property< double > m_rpcSignalVelocity
How fast does an electron signal travel along an rpc strip.
void updateSigns(const Amg::Vector3D &trackPos, const Amg::Vector3D &trackDir, CalibSpacePointVec &hitsToCalib) const override final
StatusCode initialize() override final
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
const MuonGMR4::MuonDetectorManager * m_detMgr
Gaudi::Property< bool > m_MdtSignFromSegment
Gaudi::Property< bool > m_useTgcTime
Load the Tgc bunch crossing ID on the track states.
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
access to the ACTS geometry context
Gaudi::Property< double > m_muonPropSpeed
Assumed propagation velocity of the muon through the detector.
Gaudi::Property< bool > m_usesTgcTime
double driftAcceleration(const Acts::CalibrationContext &ctx, const CalibratedSpacePoint &spacePoint) const override final
Gaudi::Property< double > m_rpcTimeResolution
std::pair< double, double > calibrateMM(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, const xAOD::MMCluster &cluster, const Amg::Vector3D &globalPos, const Amg::Vector3D &globalDir) const
Calibrates the position and covariance of a MicroMegas (MM) cluster.
void stampSignsOnMeasurements(const xAOD::MuonSegment &segment) const override final
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
Property holding a SG store/key/clid from which a ReadHandle is made.
Eigen::Matrix< double, 3, 1 > Vector3D
This header ties the generic definitions in this package.
ISpacePointCalibrator::CalibSpacePointVec CalibSpacePointVec
ISpacePointCalibrator::CalibSpacePointPtr CalibSpacePointPtr
sTgcStripCluster_v1 sTgcStripCluster
MuonSegment_v1 MuonSegment
Reference the current persistent version:
CombinedMuonStrip_v1 CombinedMuonStrip