ATLAS Offline Software
SpacePointCalibrator.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #include "SpacePointCalibrator.h"
5 
14 #include "GaudiKernel/PhysicalConstants.h"
17 namespace {
18  constexpr double c_inv = 1./ Gaudi::Units::c_light;
19 }
20 
21 namespace MuonR4{
25  using namespace SegmentFit;
26 
27 
28  SpacePointCalibrator::SpacePointCalibrator(const std::string& type, const std::string &name, const IInterface* parent) :
29  base_class(type, name, parent) {}
30 
33  ATH_CHECK(m_idHelperSvc.retrieve());
34  ATH_CHECK(m_mdtCalibrationTool.retrieve(EnableTool{m_idHelperSvc->hasMDT()}));
36  return StatusCode::SUCCESS;
37  }
38 
40  const CalibratedSpacePoint& spacePoint,
41  const Amg::Vector3D& segPos,
42  const Amg::Vector3D& segDir,
43  const double timeDelay) const {
44  CalibSpacePointPtr calibSP{};
45  if (spacePoint.type() != xAOD::UncalibMeasType::Other){
46  calibSP = calibrate(ctx, spacePoint.spacePoint(), segPos, segDir, timeDelay);
47  } else {
48  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint);
49  }
50  if (spacePoint.fitState() == State::Outlier) {
51  calibSP->setFitState(State::Outlier);
52  }
53  return calibSP;
54  }
55 
57  CalibSpacePointVec&& spacePoints,
58  const Amg::Vector3D& segPos,
59  const Amg::Vector3D& segDir,
60  const double timeDelay) const {
61  for (CalibSpacePointPtr& sp : spacePoints){
62  sp = calibrate(ctx, *sp, segPos, segDir, timeDelay);
63  }
64  return spacePoints;
65  }
66 
68  const SpacePoint* spacePoint,
69  const Amg::Vector3D& posInChamb,
70  const Amg::Vector3D& dirInChamb,
71  const double timeOffset) const {
72 
73  SG::ReadHandle gctx{m_geoCtxKey, ctx};
74  const Amg::Vector3D& spPos{spacePoint->positionInChamber()};
75  const Amg::Transform3D& locToGlob{spacePoint->msSector()->localToGlobalTrans(*gctx)};
76  Amg::Vector3D chDir{spacePoint->directionInChamber()};
77 
78  // Adjust the space point position according to the external seed. But only if the space point
79  // is a 1D strip
80  Amg::Vector3D calibSpPos = spacePoint->dimension() == 2 ? spPos
81  : spPos + Amg::intersect<3>(posInChamb, dirInChamb, spPos, chDir).value_or(0) * chDir;
82 
83  CalibSpacePointPtr calibSP{};
84  switch (spacePoint->type()) {
86  const Amg::Vector3D locClosestApproach = posInChamb
87  + Amg::intersect<3>(spPos, chDir,
88  posInChamb, dirInChamb).value_or(0) * dirInChamb;
89 
90  Amg::Vector3D closestApproach{locToGlob* locClosestApproach};
91  const double timeOfArrival = closestApproach.mag() * c_inv + timeOffset;
92  AmgSymMatrix(2) jac{AmgSymMatrix(2)::Identity()};
93  jac.col(0) = spacePoint->normalInChamber().block<2,1>(0,0).unit();
94  jac.col(1) = spacePoint->directionInChamber().block<2,1>(0,0).unit();
95 
96  if (spacePoint->dimension() == 1) {
97  auto* dc = static_cast<const xAOD::MdtDriftCircle*>(spacePoint->primaryMeasurement());
98  MdtCalibInput calibInput{*dc, *gctx};
99  calibInput.setTrackDirection(locToGlob.linear() * dirInChamb);
100  calibInput.setTimeOfFlight(timeOfArrival);
101  calibInput.setClosestApproach(std::move(closestApproach));
102  ATH_MSG_VERBOSE("Parse hit calibration "<<m_idHelperSvc->toString(dc->identify())<<", "<<calibInput);
103  MdtCalibOutput calibOutput = m_mdtCalibrationTool->calibrate(ctx, calibInput);
104  State fitState{State::Valid};
105  AmgSymMatrix(2) diagCov{AmgSymMatrix(2)::Identity()};
106  diagCov(toInt(AxisDefs::eta), toInt(AxisDefs::eta)) = std::pow(0.5* dc->readoutElement()->activeTubeLength(dc->measurementHash()),2);
109  ATH_MSG_DEBUG("Failed to create a valid hit from "<<m_idHelperSvc->toString(dc->identify())
110  <<std::endl<<calibInput<<std::endl<<calibOutput);
111  fitState = State::FailedCalib;
112  diagCov(toInt(AxisDefs::phi), toInt(AxisDefs::phi)) = std::pow(dc->readoutElement()->innerTubeRadius(), 2);
113  } else {
114  double uncert = calibOutput.driftRadiusUncert();
116  uncert = std::hypot(uncert, calibOutput.driftUncertSigProp());
117  }
118  diagCov(toInt(AxisDefs::phi), toInt(AxisDefs::phi)) = std::pow(m_mdtErrorScale * uncert, 2);
119  }
120  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), std::move(chDir), fitState);
121  calibSP->setCovariance<2>(jac.inverse()*diagCov*jac);
122  calibSP->setDriftRadius(calibOutput.driftRadius());
123  } else {
124  auto* dc = static_cast<const xAOD::MdtTwinDriftCircle*>(spacePoint->primaryMeasurement());
125  MdtCalibInput calibInput{*dc, *gctx};
126  calibInput.setClosestApproach(closestApproach);
127  calibInput.setTimeOfFlight(timeOfArrival);
128 
129  MdtCalibInput twinInput{dc->twinIdentify(), dc->twinAdc(), dc->twinTdc(), dc->readoutElement(), *gctx};
130  twinInput.setClosestApproach(closestApproach);
131  twinInput.setTimeOfFlight(timeOfArrival);
132 
133  MdtCalibTwinOutput calibOutput = m_mdtCalibrationTool->calibrateTwinTubes(ctx,
134  std::move(calibInput),
135  std::move(twinInput));
136 
137  AmgSymMatrix(2) diagCov{AmgSymMatrix(2)::Identity()};
138  State fitState{State::Valid};
140  ATH_MSG_DEBUG("Failed to create a valid hit from "<<m_idHelperSvc->toString(dc->identify())
141  <<std::endl<<calibOutput);
142  diagCov(toInt(AxisDefs::phi), toInt(AxisDefs::phi)) = std::pow(dc->readoutElement()->innerTubeRadius(), 2);
143  diagCov(toInt(AxisDefs::eta), toInt(AxisDefs::eta)) = std::pow(0.5* dc->readoutElement()->activeTubeLength(dc->measurementHash()), 2);
144  fitState = State::FailedCalib;
145  } else {
147  diagCov(toInt(AxisDefs::eta), toInt(AxisDefs::eta)) = std::pow(calibOutput.sigmaZ(), 2);
148  }
149  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), std::move(chDir), fitState);
150  calibSP->setCovariance<2>(jac.inverse()*diagCov*jac);
151  calibSP->setDriftRadius(calibOutput.primaryDriftR());
152  }
153  break;
154  }
156  auto* strip = static_cast<const xAOD::RpcMeasurement*>(spacePoint->primaryMeasurement());
157 
159  const Amg::Transform3D toGasGap{strip->readoutElement()->globalToLocalTrans(*gctx, strip->layerHash()) * locToGlob};
160  const Amg::Vector3D lPos = toGasGap * calibSpPos;
161  using EdgeSide = MuonGMR4::RpcReadoutElement::EdgeSide;
162  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), std::move(chDir));
163  AmgSymMatrix(3) cov{AmgSymMatrix(3)::Identity()};
164  cov.block<2,2>(0, 0) = spacePoint->covariance();
165 
167 
168  const double time1 = strip->time()
169  - strip->readoutElement()->distanceToEdge(strip->layerHash(),
170  lPos.block<2,1>(0,0),
171  EdgeSide::readOut) /m_rpcSignalVelocity;
172 
173  if (spacePoint->dimension() == 2) {
174  auto* strip2 = static_cast<const xAOD::RpcMeasurement*>(spacePoint->secondaryMeasurement());
175 
176  const double time2 = strip2->time() -
177  strip2->readoutElement()->distanceToEdge(strip2->layerHash(),
178  Eigen::Rotation2D{M_PI_2}*lPos.block<2,1>(0,0),
179  EdgeSide::readOut)/m_rpcSignalVelocity;
181  calibSP->setTimeMeasurement(0.5*(time1 + time2));
183  cov(2,2) += std::pow(0.5*(time1 - time2), 2);
184  cov(2,1) = cov(1,2) = - strip->readoutElement()->stripPhiPitch() /m_rpcSignalVelocity / std::sqrt(12.)* std::sqrt(cov(2, 2));
185  cov(2,0) = cov(0,2) = - strip->readoutElement()->stripEtaPitch() /m_rpcSignalVelocity / std::sqrt(12.)* std::sqrt(cov(2, 2));
186 
187  } else {
188  calibSP->setTimeMeasurement(time1);
189  if (strip->measuresPhi()) {
190  cov(2,1) = cov(1,2) = - 0.5 *strip->readoutElement()->stripPhiLength() /m_rpcSignalVelocity * std::sqrt(cov(2, 2));
191  } else {
192  cov(2,0) = cov(0,2) = - 0.5 *strip->readoutElement()->stripEtaLength() /m_rpcSignalVelocity * std::sqrt(cov(2, 2));
193  }
194  }
195  calibSP->setCovariance<3>(std::move(cov));
197  ATH_MSG_VERBOSE("Create rpc space point "<<m_idHelperSvc->toString(strip->identify())<<", dimension "<<spacePoint->dimension()
198  << ", at "<<Amg::toString(calibSP->positionInChamber())<<", uncalib time: "
199  <<strip->time()<<", calib time: "<<calibSP->time()<<" cov " <<toString(calibSP->covariance()));
200  break;
201  }
204  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), std::move(chDir));
205  calibSP->setCovariance<2>(spacePoint->covariance());
206  break;
207  }
208  default:
209  ATH_MSG_WARNING("Do not know how to calibrate "<<m_idHelperSvc->toString(spacePoint->identify()));
210  }
211  return calibSP;
212  }
213 
215  const std::vector<const SpacePoint*>& spacePoints,
216  const Amg::Vector3D& posInChamb,
217  const Amg::Vector3D& dirInChamb,
218  const double timeOffset) const {
219  CalibSpacePointVec calibSpacePoints{};
220  calibSpacePoints.reserve(spacePoints.size());
221  for(const SpacePoint* spacePoint : spacePoints) {
222  CalibSpacePointPtr hit = calibrate(ctx, spacePoint, posInChamb, dirInChamb, timeOffset);
223  if (hit) calibSpacePoints.push_back(std::move(hit));
224  }
225  return calibSpacePoints;
226  }
227  double SpacePointCalibrator::driftVelocity(const EventContext& ctx,
228  const CalibratedSpacePoint& spacePoint) const {
229  if(spacePoint.type() == xAOD::UncalibMeasType::MdtDriftCircleType) {
230  const MuonCalib::MdtFullCalibData* calibConsts = m_mdtCalibrationTool->getCalibConstants(ctx, spacePoint.spacePoint()->identify());
231  const std::optional<double> driftTime = calibConsts->rtRelation->tr()->driftTime(spacePoint.driftRadius());
232  return calibConsts->rtRelation->rt()->driftVelocity(driftTime.value_or(0.));
233  }
234  return 0.;
235  }
236  double SpacePointCalibrator::driftAcceleration(const EventContext& ctx,
237  const CalibratedSpacePoint& spacePoint) const {
238  if(spacePoint.type() == xAOD::UncalibMeasType::MdtDriftCircleType) {
239  const MuonCalib::MdtFullCalibData* calibConsts = m_mdtCalibrationTool->getCalibConstants(ctx, spacePoint.spacePoint()->identify());
240  const std::optional<double> driftTime = calibConsts->rtRelation->tr()->driftTime(spacePoint.driftRadius());
241  return calibConsts->rtRelation->rt()->driftAcceleration(driftTime.value_or(0.));
242  }
243  return 0.;
244  }
245 }
MuonR4::ISpacePointCalibrator::CalibSpacePointVec
std::vector< CalibSpacePointPtr > CalibSpacePointVec
Definition: ISpacePointCalibrator.h:26
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
MdtCalibOutput::driftUncertSigProp
double driftUncertSigProp() const
Returns the uncertainty on the drift radius arising from the unknown position along the wire.
Definition: MdtCalibOutput.cxx:56
MuonR4::SpacePoint::msSector
const MuonGMR4::SpectrometerSector * msSector() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:116
xAOD::RpcMeasurement_v1
RpcMeasurement_v1: Class storing the geneic.
Definition: RpcMeasurement_v1.h:21
UtilFunctions.h
MuonR4::SpacePoint::type
xAOD::UncalibMeasType type() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:131
MuonR4::SpacePoint::normalInChamber
const Amg::Vector3D & normalInChamber() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:125
MdtCalibInput.h
MdtCalibInput
Definition: MdtCalibInput.h:35
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
MuonCalib::MdtFullCalibData::rtRelation
RtRelationPtr rtRelation
Definition: MdtFullCalibData.h:21
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
MdtCalibTwinOutput::sigmaZ
double sigmaZ() const
Definition: MdtCalibTwinOutput.cxx:49
MuonR4::CalibratedSpacePoint::State::Outlier
@ Outlier
MuonR4::SpacePoint::secondaryMeasurement
const xAOD::UncalibratedMeasurement * secondaryMeasurement() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:110
MdtTwinDriftCircle.h
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
MuonR4::SpacePointCalibrator::SpacePointCalibrator
SpacePointCalibrator(const std::string &type, const std::string &name, const IInterface *parent)
Definition: SpacePointCalibrator.cxx:28
MuonCalib::MdtFullCalibData
class which holds the full set of calibration constants for a given tube
Definition: MdtFullCalibData.h:15
MuonGMR4::RpcReadoutElement::EdgeSide
EdgeSide
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:107
MdtCalibTwinOutput::uncertPrimaryR
double uncertPrimaryR() const
Definition: MdtCalibTwinOutput.cxx:52
MuonR4::toString
std::string toString(const CalibratedSpacePoint::Covariance_t &mat)
Returns the matrix in string.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/UtilFunctions.cxx:75
Muon::MdtStatusDriftTime
@ MdtStatusDriftTime
The tube produced a vaild measurement.
Definition: MdtDriftCircleStatus.h:34
xAOD::UncalibMeasType::TgcStripType
@ TgcStripType
MuonR4::CalibSpacePointVec
ISpacePointCalibrator::CalibSpacePointVec CalibSpacePointVec
Definition: SpacePointCalibrator.cxx:22
MuonR4::SpacePointCalibrator::m_rpcSignalVelocity
Gaudi::Property< double > m_rpcSignalVelocity
How fast does an electron signal travel along an rpc strip
Definition: SpacePointCalibrator.h:77
MuonR4::SpacePointCalibrator::m_doMdtUncertFromProp
Gaudi::Property< bool > m_doMdtUncertFromProp
Definition: SpacePointCalibrator.h:85
MdtCalibInput::setTrackDirection
void setTrackDirection(const Amg::Vector3D &trackDir)
Sets the track direction if it's given from an external seed.
Definition: MdtCalibInput.cxx:110
MuonR4::SpacePoint::primaryMeasurement
const xAOD::UncalibratedMeasurement * primaryMeasurement() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:107
MuonR4::SegmentFit::AxisDefs::phi
@ phi
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
TRT::Hit::driftTime
@ driftTime
Definition: HitInfo.h:43
MuonR4::SpacePointCalibrator::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: SpacePointCalibrator.h:65
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
UtilFunctions.h
MdtCalibOutput.h
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonR4::CalibratedSpacePoint::State::FailedCalib
@ FailedCalib
xAOD::MdtTwinDriftCircle_v1
Definition: MdtTwinDriftCircle_v1.h:12
MuonR4::CalibratedSpacePoint::State
State
State flag to distinguish different space point states.
Definition: CalibratedSpacePoint.h:24
test_pyathena.parent
parent
Definition: test_pyathena.py:15
xAOD::Other
@ Other
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonR4::CalibratedSpacePoint::type
xAOD::UncalibMeasType type() const
Returns the space point type.
Definition: CalibratedSpacePoint.cxx:36
MdtCalibInput::setClosestApproach
void setClosestApproach(const Amg::Vector3D &approach)
Sets the closest approach.
Definition: MdtCalibInput.cxx:106
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
MuonR4::SpacePointCalibrator::driftVelocity
double driftVelocity(const EventContext &ctx, const CalibratedSpacePoint &spacePoint) const override final
Definition: SpacePointCalibrator.cxx:227
SpacePointCalibrator.h
MdtCalibOutput::status
MdtDriftCircleStatus status() const
Status of the calibration.
Definition: MdtCalibOutput.cxx:40
MdtCalibOutput
Definition: MdtCalibOutput.h:10
MuonR4::SegmentFit::AxisDefs::eta
@ eta
MuonR4::SpacePointCalibrator::driftAcceleration
double driftAcceleration(const EventContext &ctx, const CalibratedSpacePoint &spacePoint) const override final
Definition: SpacePointCalibrator.cxx:236
MdtDriftCircle.h
MuonR4::CalibratedSpacePoint::State::Valid
@ Valid
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:18
MuonR4::ISpacePointCalibrator::CalibSpacePointPtr
std::unique_ptr< CalibratedSpacePoint > CalibSpacePointPtr
Definition: ISpacePointCalibrator.h:25
MuonR4::SpacePoint::directionInChamber
const Amg::Vector3D & directionInChamber() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:122
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MuonR4::CalibratedSpacePoint::fitState
State fitState() const
Returns the state of the calibrated space point.
Definition: CalibratedSpacePoint.cxx:55
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
RpcMeasurement.h
MdtCalibTwinOutput::primaryStatus
MdtDriftCircleStatus primaryStatus() const
Definition: MdtCalibTwinOutput.cxx:54
python.PhysicalConstants.c_light
float c_light
Definition: PhysicalConstants.py:63
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonR4::SpacePointCalibrator::m_mdtCalibrationTool
ToolHandle< IMdtCalibrationTool > m_mdtCalibrationTool
Definition: SpacePointCalibrator.h:67
MdtCalibOutput::driftRadiusUncert
double driftRadiusUncert() const
Returns the uncertainty on the drift radius.
Definition: MdtCalibOutput.cxx:20
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
MuonR4::SpacePoint::positionInChamber
const Amg::Vector3D & positionInChamber() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:119
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:67
MdtCalibTwinOutput
Definition: MdtCalibTwinOutput.h:11
MuonR4::CalibSpacePointPtr
ISpacePointCalibrator::CalibSpacePointPtr CalibSpacePointPtr
Definition: SpacePointCalibrator.cxx:23
SegmentFitterEventData.h
MuonR4::SpacePointCalibrator::m_rpcTimeResolution
Gaudi::Property< double > m_rpcTimeResolution
Definition: SpacePointCalibrator.h:80
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MdtReadoutElement.h
MuonGMR4::SpectrometerSector::localToGlobalTrans
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &gctx) const
Returns the local -> global tarnsformation from the sector.
Definition: SpectrometerSector.cxx:51
unit
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
Definition: AmgMatrixBasePlugin.h:21
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonR4::CalibratedSpacePoint
The calibrated Space point is created during the calibration process.
Definition: CalibratedSpacePoint.h:15
MdtFullCalibData.h
MuonR4::SpacePoint::dimension
unsigned int dimension() const
Is the space point a 1D or combined 2D measurement.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:160
MuonR4::SpacePointCalibrator::m_mdtErrorScale
Gaudi::Property< double > m_mdtErrorScale
Definition: SpacePointCalibrator.h:83
MuonR4::SpacePointCalibrator::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
access to the ACTS geometry context
Definition: SpacePointCalibrator.h:63
MuonR4::SpacePointCalibrator::m_detMgr
const MuonGMR4::MuonDetectorManager * m_detMgr
Definition: SpacePointCalibrator.h:69
MdtCalibTwinOutput::primaryDriftR
double primaryDriftR() const
Definition: MdtCalibTwinOutput.cxx:50
xAOD::MdtDriftCircle_v1
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
Definition: MdtDriftCircle_v1.h:21
MuonR4::CalibratedSpacePoint::spacePoint
const SpacePoint * spacePoint() const
The pointer to the space point out of which this space point has been built.
Definition: CalibratedSpacePoint.cxx:18
MuonR4::AmgSymMatrix
const AmgSymMatrix(2) &SpacePoint
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:150
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
xAOD::UncalibMeasType::RpcStripType
@ RpcStripType
xAOD::RpcMeasurement_v1::time
float time() const
Returns the time.
MuonR4::CalibratedSpacePoint::driftRadius
double driftRadius() const
The drift radius of the calibrated space point.
Definition: CalibratedSpacePoint.cxx:27
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType
MdtCalibOutput::driftRadius
double driftRadius() const
Returns the drift radius of the calibrated object.
Definition: MdtCalibOutput.cxx:19
MuonR4::SpacePoint::identify
const Identifier & identify() const
: Identifier of the primary measurement
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:140
MuonR4::SpacePointCalibrator::initialize
StatusCode initialize() override final
Definition: SpacePointCalibrator.cxx:31