Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Attributes | List of all members
MuonR4::SpacePointCalibrator Class Reference

#include <SpacePointCalibrator.h>

Inheritance diagram for MuonR4::SpacePointCalibrator:
Collaboration diagram for MuonR4::SpacePointCalibrator:

Public Member Functions

StatusCode initialize () override final
 
CalibSpacePointPtr calibrate (const EventContext &ctx, const SpacePoint *spacePoint, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const override final
 
CalibSpacePointPtr calibrate (const EventContext &ctx, const CalibratedSpacePoint &spacePoint, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const override final
 
CalibSpacePointVec calibrate (const EventContext &ctx, const std::vector< const SpacePoint * > &spacePoints, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const override final
 
CalibSpacePointVec calibrate (const EventContext &ctx, CalibSpacePointVec &&spacePoints, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay) const override final
 
double driftVelocity (const EventContext &ctx, const CalibratedSpacePoint &spacePoint) const override final
 
double driftAcceleration (const EventContext &ctx, const CalibratedSpacePoint &spacePoint) const override final
 

Private Attributes

SG::ReadHandleKey< ActsGeometryContextm_geoCtxKey {this, "AlignmentKey", "ActsAlignment", "cond handle key"}
 access to the ACTS geometry context More...
 
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
 
ToolHandle< IMdtCalibrationToolm_mdtCalibrationTool {this, "MdtCalibrationTool", ""}
 
const MuonGMR4::MuonDetectorManagerm_detMgr {nullptr}
 
Gaudi::Property< double > m_muonPropSpeed {this, "PropagationSpeed", 1./ Gaudi::Units::c_light }
 Assumed propagation velocity of the muon through the detector. More...
 
Gaudi::Property< double > m_rpcSignalVelocity
 How fast does an electron signal travel along an rpc strip
More...
 
Gaudi::Property< double > m_rpcTimeResolution
 

Detailed Description

Definition at line 24 of file SpacePointCalibrator.h.

Member Function Documentation

◆ calibrate() [1/4]

CalibSpacePointVec MuonR4::SpacePointCalibrator::calibrate ( const EventContext &  ctx,
CalibSpacePointVec &&  spacePoints,
const Amg::Vector3D seedPosInChamb,
const Amg::Vector3D seedDirInChamb,
const double  timeDelay 
) const
finaloverride

Definition at line 52 of file SpacePointCalibrator.cxx.

56  {
57  for (CalibSpacePointPtr& sp : spacePoints){
58  sp = calibrate(ctx, *sp, segPos, segDir, timeDelay);
59  }
60  return spacePoints;
61  }

◆ calibrate() [2/4]

CalibSpacePointPtr MuonR4::SpacePointCalibrator::calibrate ( const EventContext &  ctx,
const CalibratedSpacePoint spacePoint,
const Amg::Vector3D seedPosInChamb,
const Amg::Vector3D seedDirInChamb,
const double  timeDelay 
) const
finaloverride

Definition at line 35 of file SpacePointCalibrator.cxx.

39  {
40  CalibSpacePointPtr calibSP{};
41  if (spacePoint.type() != xAOD::UncalibMeasType::Other){
42  calibSP = calibrate(ctx, spacePoint.spacePoint(), segPos, segDir, timeDelay);
43  } else {
44  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint);
45  }
46  if (spacePoint.fitState() == State::Outlier) {
47  calibSP->setFitState(State::Outlier);
48  }
49  return calibSP;
50  }

◆ calibrate() [3/4]

CalibSpacePointPtr MuonR4::SpacePointCalibrator::calibrate ( const EventContext &  ctx,
const SpacePoint spacePoint,
const Amg::Vector3D seedPosInChamb,
const Amg::Vector3D seedDirInChamb,
const double  timeDelay 
) const
finaloverride

In valid drift radius has been created

Transform the space point into the local frame to calculate the propagation time towards the readout

Average the time

Add the difference to the covariance though

TODO: Use also the time of the secondary measurement...

Reminder to myself, we should modify the covariance if the space point is 1D? Probably... dunno

Definition at line 63 of file SpacePointCalibrator.cxx.

67  {
68 
69  const ActsGeometryContext* gctx{nullptr};
70  if (!SG::get(gctx, m_geoCtxKey, ctx).isSuccess()) {
71  return nullptr;
72  }
73  const Amg::Vector3D& spPos{spacePoint->positionInChamber()};
74  const Amg::Transform3D& locToGlob{spacePoint->msSector()->localToGlobalTrans(*gctx)};
75  Amg::Vector3D chDir{spacePoint->directionInChamber()};
76 
77  // Adjust the space point position according to the external seed. But only if the space point
78  // is a 1D strip
79  Amg::Vector3D calibSpPos = spacePoint->dimension() == 2 ? spPos
80  : spPos + Amg::intersect<3>(posInChamb, dirInChamb, spPos, chDir).value_or(0) * chDir;
81 
82  CalibSpacePointPtr calibSP{};
83  switch (spacePoint->type()) {
85  const Amg::Vector3D locClosestApproach = posInChamb
86  + Amg::intersect<3>(spPos, chDir,
87  posInChamb, dirInChamb).value_or(0) * dirInChamb;
88 
89  Amg::Vector3D closestApproach{locToGlob* locClosestApproach};
90  const double timeOfArrival = closestApproach.mag() * c_inv + timeOffset;
91  AmgSymMatrix(2) jac{AmgSymMatrix(2)::Identity()};
92  jac.col(0) = spacePoint->normalInChamber().block<2,1>(0,0).unit();
93  jac.col(1) = spacePoint->directionInChamber().block<2,1>(0,0).unit();
94 
95  if (spacePoint->dimension() == 1) {
96  auto* dc = static_cast<const xAOD::MdtDriftCircle*>(spacePoint->primaryMeasurement());
97  MdtCalibInput calibInput{*dc, *gctx};
98  calibInput.setTrackDirection(locToGlob.linear() * dirInChamb,
99  dirInChamb.phi() || posInChamb[toInt(AxisDefs::phi)] );
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  ATH_MSG_VERBOSE("Returned calibration object "<<calibOutput);
105  State fitState{State::Valid};
106  AmgSymMatrix(2) diagCov{AmgSymMatrix(2)::Identity()};
107  diagCov(toInt(AxisDefs::eta), toInt(AxisDefs::eta)) = std::pow(0.5* dc->readoutElement()->activeTubeLength(dc->measurementHash()),2);
110  ATH_MSG_DEBUG("Failed to create a valid hit from "<<m_idHelperSvc->toString(dc->identify())
111  <<std::endl<<calibInput<<std::endl<<calibOutput);
112  fitState = State::FailedCalib;
113  diagCov(toInt(AxisDefs::phi), toInt(AxisDefs::phi)) = std::pow(dc->readoutElement()->innerTubeRadius(), 2);
114  } else {
115  diagCov(toInt(AxisDefs::phi), toInt(AxisDefs::phi)) = std::pow(calibOutput.driftRadiusUncert(), 2);
116  }
117  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), std::move(chDir), fitState);
118  calibSP->setCovariance<2>(jac.inverse()*diagCov*jac);
119  calibSP->setDriftRadius(calibOutput.driftRadius());
120  } else {
121  auto* dc = static_cast<const xAOD::MdtTwinDriftCircle*>(spacePoint->primaryMeasurement());
122  MdtCalibInput calibInput{*dc, *gctx};
123  calibInput.setClosestApproach(closestApproach);
124  calibInput.setTimeOfFlight(timeOfArrival);
125 
126  MdtCalibInput twinInput{dc->twinIdentify(), dc->twinAdc(), dc->twinTdc(), dc->readoutElement(), *gctx};
127  twinInput.setClosestApproach(closestApproach);
128  twinInput.setTimeOfFlight(timeOfArrival);
129 
130  MdtCalibTwinOutput calibOutput = m_mdtCalibrationTool->calibrateTwinTubes(ctx,
131  std::move(calibInput),
132  std::move(twinInput));
133 
134  AmgSymMatrix(2) diagCov{AmgSymMatrix(2)::Identity()};
135  State fitState{State::Valid};
137  ATH_MSG_DEBUG("Failed to create a valid hit from "<<m_idHelperSvc->toString(dc->identify())
138  <<std::endl<<calibOutput);
139  diagCov(toInt(AxisDefs::phi), toInt(AxisDefs::phi)) = std::pow(dc->readoutElement()->innerTubeRadius(), 2);
140  diagCov(toInt(AxisDefs::eta), toInt(AxisDefs::eta)) = std::pow(0.5* dc->readoutElement()->activeTubeLength(dc->measurementHash()), 2);
141  fitState = State::FailedCalib;
142  } else {
143  diagCov(toInt(AxisDefs::phi), toInt(AxisDefs::phi)) = std::pow(calibOutput.uncertPrimaryR(), 2);
144  diagCov(toInt(AxisDefs::eta), toInt(AxisDefs::eta)) = std::pow(calibOutput.sigmaZ(), 2);
145  }
146  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), std::move(chDir), fitState);
147  calibSP->setCovariance<2>(jac.inverse()*diagCov*jac);
148  calibSP->setDriftRadius(calibOutput.primaryDriftR());
149  }
150  break;
151  }
153  auto* strip = static_cast<const xAOD::RpcMeasurement*>(spacePoint->primaryMeasurement());
154 
156  const Amg::Transform3D toGasGap{strip->readoutElement()->globalToLocalTrans(*gctx, strip->layerHash()) * locToGlob};
157  const Amg::Vector3D lPos = toGasGap * calibSpPos;
158  using EdgeSide = MuonGMR4::RpcReadoutElement::EdgeSide;
159  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), std::move(chDir));
160  AmgSymMatrix(3) cov{AmgSymMatrix(3)::Identity()};
161  cov.block<2,2>(0, 0) = spacePoint->covariance();
162 
164 
165  const double time1 = strip->time()
166  - strip->readoutElement()->distanceToEdge(strip->layerHash(),
167  lPos.block<2,1>(0,0),
168  EdgeSide::readOut) /m_rpcSignalVelocity;
169 
170  if (spacePoint->dimension() == 2) {
171  auto* strip2 = static_cast<const xAOD::RpcMeasurement*>(spacePoint->secondaryMeasurement());
172 
173  const double time2 = strip2->time() -
174  strip2->readoutElement()->distanceToEdge(strip2->layerHash(),
175  Eigen::Rotation2D{M_PI_2}*lPos.block<2,1>(0,0),
176  EdgeSide::readOut)/m_rpcSignalVelocity;
178  calibSP->setTimeMeasurement(0.5*(time1 + time2));
180  cov(2,2) += std::pow(0.5*(time1 - time2), 2);
181  cov(2,1) = cov(1,2) = - strip->readoutElement()->stripPhiPitch() /m_rpcSignalVelocity / std::sqrt(12.)* std::sqrt(cov(2, 2));
182  cov(2,0) = cov(0,2) = - strip->readoutElement()->stripEtaPitch() /m_rpcSignalVelocity / std::sqrt(12.)* std::sqrt(cov(2, 2));
183 
184  } else {
185  calibSP->setTimeMeasurement(time1);
186  if (strip->measuresPhi()) {
187  cov(2,1) = cov(1,2) = - 0.5 *strip->readoutElement()->stripPhiLength() /m_rpcSignalVelocity * std::sqrt(cov(2, 2));
188  } else {
189  cov(2,0) = cov(0,2) = - 0.5 *strip->readoutElement()->stripEtaLength() /m_rpcSignalVelocity * std::sqrt(cov(2, 2));
190  }
191  }
192  calibSP->setCovariance<3>(std::move(cov));
194  ATH_MSG_VERBOSE("Create rpc space point "<<m_idHelperSvc->toString(strip->identify())<<", dimension "<<spacePoint->dimension()
195  << ", at "<<Amg::toString(calibSP->positionInChamber())<<", uncalib time: "
196  <<strip->time()<<", calib time: "<<calibSP->time()<<" cov " <<toString(calibSP->covariance()));
197  break;
198  }
201  calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), std::move(chDir));
202  calibSP->setCovariance<2>(spacePoint->covariance());
203  break;
204  }
205  default:
206  ATH_MSG_WARNING("Do not know how to calibrate "<<m_idHelperSvc->toString(spacePoint->identify()));
207  }
208  return calibSP;
209  }

◆ calibrate() [4/4]

CalibSpacePointVec MuonR4::SpacePointCalibrator::calibrate ( const EventContext &  ctx,
const std::vector< const SpacePoint * > &  spacePoints,
const Amg::Vector3D seedPosInChamb,
const Amg::Vector3D seedDirInChamb,
const double  timeDelay 
) const
finaloverride

Definition at line 211 of file SpacePointCalibrator.cxx.

215  {
216  CalibSpacePointVec calibSpacePoints{};
217  calibSpacePoints.reserve(spacePoints.size());
218  for(const SpacePoint* spacePoint : spacePoints) {
219  CalibSpacePointPtr hit = calibrate(ctx, spacePoint, posInChamb, dirInChamb, timeOffset);
220  if (hit) calibSpacePoints.push_back(std::move(hit));
221  }
222  return calibSpacePoints;
223  }

◆ driftAcceleration()

double MuonR4::SpacePointCalibrator::driftAcceleration ( const EventContext &  ctx,
const CalibratedSpacePoint spacePoint 
) const
finaloverride

Definition at line 233 of file SpacePointCalibrator.cxx.

234  {
235  if(spacePoint.type() == xAOD::UncalibMeasType::MdtDriftCircleType) {
236  const MuonCalib::MdtFullCalibData* calibConsts = m_mdtCalibrationTool->getCalibConstants(ctx, spacePoint.spacePoint()->identify());
237  const std::optional<double> driftTime = calibConsts->rtRelation->tr()->driftTime(spacePoint.driftRadius());
238  return calibConsts->rtRelation->rt()->driftAcceleration(driftTime.value_or(0.));
239  }
240  return 0.;
241  }

◆ driftVelocity()

double MuonR4::SpacePointCalibrator::driftVelocity ( const EventContext &  ctx,
const CalibratedSpacePoint spacePoint 
) const
finaloverride

Definition at line 224 of file SpacePointCalibrator.cxx.

225  {
226  if(spacePoint.type() == xAOD::UncalibMeasType::MdtDriftCircleType) {
227  const MuonCalib::MdtFullCalibData* calibConsts = m_mdtCalibrationTool->getCalibConstants(ctx, spacePoint.spacePoint()->identify());
228  const std::optional<double> driftTime = calibConsts->rtRelation->tr()->driftTime(spacePoint.driftRadius());
229  return calibConsts->rtRelation->rt()->driftVelocity(driftTime.value_or(0.));
230  }
231  return 0.;
232  }

◆ initialize()

StatusCode MuonR4::SpacePointCalibrator::initialize ( )
finaloverride

Definition at line 27 of file SpacePointCalibrator.cxx.

27  {
29  ATH_CHECK(m_idHelperSvc.retrieve());
30  ATH_CHECK(m_mdtCalibrationTool.retrieve(EnableTool{m_idHelperSvc->hasMDT()}));
32  return StatusCode::SUCCESS;
33  }

Member Data Documentation

◆ m_detMgr

const MuonGMR4::MuonDetectorManager* MuonR4::SpacePointCalibrator::m_detMgr {nullptr}
private

Definition at line 68 of file SpacePointCalibrator.h.

◆ m_geoCtxKey

SG::ReadHandleKey<ActsGeometryContext> MuonR4::SpacePointCalibrator::m_geoCtxKey {this, "AlignmentKey", "ActsAlignment", "cond handle key"}
private

access to the ACTS geometry context

Definition at line 62 of file SpacePointCalibrator.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> MuonR4::SpacePointCalibrator::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 64 of file SpacePointCalibrator.h.

◆ m_mdtCalibrationTool

ToolHandle<IMdtCalibrationTool> MuonR4::SpacePointCalibrator::m_mdtCalibrationTool {this, "MdtCalibrationTool", ""}
private

Definition at line 66 of file SpacePointCalibrator.h.

◆ m_muonPropSpeed

Gaudi::Property<double> MuonR4::SpacePointCalibrator::m_muonPropSpeed {this, "PropagationSpeed", 1./ Gaudi::Units::c_light }
private

Assumed propagation velocity of the muon through the detector.

Needs to be replaced by the proper time estimate once the calibrator is exposed to the Acts propagator

Definition at line 73 of file SpacePointCalibrator.h.

◆ m_rpcSignalVelocity

Gaudi::Property<double> MuonR4::SpacePointCalibrator::m_rpcSignalVelocity
private
Initial value:
{this, "rpcSignalVelocity", 0.5 * Gaudi::Units::c_light,
"Propagation speed of the signal inside the rpc strip"}

How fast does an electron signal travel along an rpc strip

Definition at line 76 of file SpacePointCalibrator.h.

◆ m_rpcTimeResolution

Gaudi::Property<double> MuonR4::SpacePointCalibrator::m_rpcTimeResolution
private
Initial value:
{this, "rpcTimeResolution", 0.6 * Gaudi::Units::nanosecond,
"Estimated time resolution of the strip readout"}

Definition at line 79 of file SpacePointCalibrator.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
MdtCalibInput::setTrackDirection
void setTrackDirection(const Amg::Vector3D &trackDir, bool hasPhi)
Sets the direction of the externally determined track.
Definition: MdtCalibInput.cxx:110
xAOD::RpcMeasurement_v1
RpcMeasurement_v1: Class storing the geneic.
Definition: RpcMeasurement_v1.h:21
python.SystemOfUnits.nanosecond
int nanosecond
Definition: SystemOfUnits.py:119
MdtCalibInput
Definition: MdtCalibInput.h:34
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
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h: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
keylayer_zslicemap.strip
strip
Definition: keylayer_zslicemap.py:151
SpacePoint
Definition: Trigger/TrigAccel/TrigCudaFitter/src/SpacePoint.h:7
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:76
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:64
SG::get
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Definition: ReadCondHandle.h:287
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonR4::State
CalibratedSpacePoint::State State
Definition: SpacePointCalibrator.cxx:24
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonR4::CalibratedSpacePoint::State::FailedCalib
@ FailedCalib
xAOD::MdtTwinDriftCircle_v1
Definition: MdtTwinDriftCircle_v1.h:12
xAOD::Other
@ Other
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
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
F600IntegrationConfig.spacePoints
spacePoints
Definition: F600IntegrationConfig.py:65
MdtCalibOutput::status
MdtDriftCircleStatus status() const
Status of the calibration.
Definition: MdtCalibOutput.cxx:40
MdtCalibOutput
Definition: MdtCalibOutput.h:10
MuonR4::SegmentFit::AxisDefs::eta
@ eta
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
MuonR4::CalibratedSpacePoint::State::Valid
@ Valid
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
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:66
MdtCalibOutput::driftRadiusUncert
double driftRadiusUncert() const
Returns the uncertainty on the drift radius.
Definition: MdtCalibOutput.cxx:20
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:63
MdtCalibTwinOutput
Definition: MdtCalibTwinOutput.h:11
MuonR4::CalibSpacePointPtr
ISpacePointCalibrator::CalibSpacePointPtr CalibSpacePointPtr
Definition: SpacePointCalibrator.cxx:23
MuonR4::SpacePointCalibrator::m_rpcTimeResolution
Gaudi::Property< double > m_rpcTimeResolution
Definition: SpacePointCalibrator.h:79
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
unit
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
Definition: AmgMatrixBasePlugin.h:21
MuonR4::SpacePointCalibrator::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
access to the ACTS geometry context
Definition: SpacePointCalibrator.h:62
MuonR4::SpacePointCalibrator::m_detMgr
const MuonGMR4::MuonDetectorManager * m_detMgr
Definition: SpacePointCalibrator.h:68
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::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.
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType
MdtCalibOutput::driftRadius
double driftRadius() const
Returns the drift radius of the calibrated object.
Definition: MdtCalibOutput.cxx:19