ATLAS Offline Software
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

 SpacePointCalibrator (const std::string &type, const std::string &name, const IInterface *parent)
 
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
 

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
 
Gaudi::Property< double > m_mdtErrorScale {this, "mdtErrorScaleFactor", 1.0, "Scaling to apply to MDT errors for the pattern"}
 
Gaudi::Property< bool > m_doMdtUncertFromProp {this, "MdtPropagationTimeUncert", false}
 

Detailed Description

Definition at line 24 of file SpacePointCalibrator.h.

Constructor & Destructor Documentation

◆ SpacePointCalibrator()

MuonR4::SpacePointCalibrator::SpacePointCalibrator ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 28 of file SpacePointCalibrator.cxx.

28  :
29  base_class(type, name, parent) {}

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 56 of file SpacePointCalibrator.cxx.

60  {
61  for (CalibSpacePointPtr& sp : spacePoints){
62  sp = calibrate(ctx, *sp, segPos, segDir, timeDelay);
63  }
64  return spacePoints;
65  }

◆ 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 39 of file SpacePointCalibrator.cxx.

43  {
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  }

◆ 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 67 of file SpacePointCalibrator.cxx.

71  {
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  }

◆ 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 214 of file SpacePointCalibrator.cxx.

218  {
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  }

◆ driftVelocity()

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

Definition at line 227 of file SpacePointCalibrator.cxx.

228  {
229  if(spacePoint.type() == xAOD::UncalibMeasType::MdtDriftCircleType) {
230  const MuonCalib::MdtFullCalibData* calibConsts = m_mdtCalibrationTool->getCalibConstants(ctx, spacePoint.spacePoint()->identify());
231  bool valid{false};
232  const double driftTime = calibConsts->rtRelation->tr()->tFromR(spacePoint.driftRadius(), valid);
233  return calibConsts->rtRelation->rt()->driftVelocity(driftTime);
234  }
235  return 0.;
236  }

◆ initialize()

StatusCode MuonR4::SpacePointCalibrator::initialize ( )
finaloverride

Definition at line 31 of file SpacePointCalibrator.cxx.

31  {
33  ATH_CHECK(m_idHelperSvc.retrieve());
34  ATH_CHECK(m_mdtCalibrationTool.retrieve(EnableTool{m_idHelperSvc->hasMDT()}));
36  return StatusCode::SUCCESS;
37  }

Member Data Documentation

◆ m_detMgr

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

Definition at line 67 of file SpacePointCalibrator.h.

◆ m_doMdtUncertFromProp

Gaudi::Property<bool> MuonR4::SpacePointCalibrator::m_doMdtUncertFromProp {this, "MdtPropagationTimeUncert", false}
private

Definition at line 83 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 61 of file SpacePointCalibrator.h.

◆ m_idHelperSvc

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

Definition at line 63 of file SpacePointCalibrator.h.

◆ m_mdtCalibrationTool

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

Definition at line 65 of file SpacePointCalibrator.h.

◆ m_mdtErrorScale

Gaudi::Property<double> MuonR4::SpacePointCalibrator::m_mdtErrorScale {this, "mdtErrorScaleFactor", 1.0, "Scaling to apply to MDT errors for the pattern"}
private

Definition at line 81 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 72 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 75 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 78 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
MdtCalibOutput::driftUncertSigProp
double driftUncertSigProp() const
Returns the uncertainty on the drift radius arising from the unknown position along the wire.
Definition: MdtCalibOutput.cxx:56
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:35
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
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:75
MuonR4::SpacePointCalibrator::m_doMdtUncertFromProp
Gaudi::Property< bool > m_doMdtUncertFromProp
Definition: SpacePointCalibrator.h:83
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::SegmentFit::AxisDefs::phi
@ phi
calibdata.valid
list valid
Definition: calibdata.py:45
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:63
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
test_pyathena.parent
parent
Definition: test_pyathena.py:15
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
MdtCalibOutput::status
MdtDriftCircleStatus status() const
Status of the calibration.
Definition: MdtCalibOutput.cxx:40
MdtCalibOutput
Definition: MdtCalibOutput.h:10
MuonR4::SegmentFit::AxisDefs::eta
@ eta
MuonR4::CalibratedSpacePoint::State::Valid
@ Valid
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
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:65
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:67
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:78
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
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonR4::SpacePointCalibrator::m_mdtErrorScale
Gaudi::Property< double > m_mdtErrorScale
Definition: SpacePointCalibrator.h:81
MuonR4::SpacePointCalibrator::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
access to the ACTS geometry context
Definition: SpacePointCalibrator.h:61
MuonR4::SpacePointCalibrator::m_detMgr
const MuonGMR4::MuonDetectorManager * m_detMgr
Definition: SpacePointCalibrator.h:67
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
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