 |
ATLAS Offline Software
|
#include <SpacePointCalibrator.h>
|
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 |
|
std::pair< double, double > | calibrateMM (const EventContext &ctx, const ActsGeometryContext &gctx, const xAOD::MMCluster &cluster, const Amg::Vector3D &globalPos, const Amg::Vector3D &globalDir) const |
| Calibrates the position and covariance of a MicroMegas (MM) cluster. More...
|
|
std::pair< double, double > | calibratesTGC (const EventContext &ctx, const ActsGeometryContext &gctx, const xAOD::sTgcStripCluster &cluster, 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. More...
|
|
void | calibrateSourceLink (const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, ActsTrk::MutableTrackContainer::TrackStateProxy state) const override final |
|
template<std::size_t Dim, typename trajectory_t , typename pos_t , typename cov_t > |
void | setState (const ProjectorType projector, const pos_t &locpos, const cov_t &cov, Acts::SourceLink link, TrackState_t< trajectory_t > &trackState) const |
| Copy the local position & covariance into the Acts track state proxy. More...
|
|
|
SG::ReadHandleKey< ActsGeometryContext > | m_geoCtxKey {this, "AlignmentKey", "ActsAlignment", "cond handle key"} |
| access to the ACTS geometry context More...
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
ToolHandle< IMdtCalibrationTool > | m_mdtCalibrationTool {this, "MdtCalibrationTool", ""} |
|
ToolHandle< Muon::INSWCalibTool > | m_nswCalibTool {this, "NSWCalibTool", ""} |
|
ToolHandle< Muon::IMMClusterBuilderTool > | m_clusterBuilderToolMM {this, "MMClusterBuilder", ""} |
|
const MuonGMR4::MuonDetectorManager * | m_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< bool > | m_useRpcTime {this, "useRpcTime", false} |
| Load the Rpc time on the track states for the track fit. More...
|
|
Gaudi::Property< bool > | m_useTgcTime |
| Load the Tgc bunch crossing ID on the track states. More...
|
|
Gaudi::Property< bool > | m_usesTgcTime |
|
|
constexpr static std::array< Acts::BoundSubspaceIndices, 6 > | s_boundSpaceIndices |
| Array to map the Projector types to the bound index configurations used by the ATLAS detector measurements. More...
|
|
Definition at line 30 of file SpacePointCalibrator.h.
◆ ConstTrackState_t
template<typename trajectory_t >
◆ TrackState_t
template<typename trajectory_t >
◆ ProjectorType
Enum encoding the possible projectors used in ATLAS.
Their integer representations correspond to the element index in the s_boundSpaceIndices member
Enumerator |
---|
e1DimNoTime | |
e1DimRotNoTime | Project out solely the locX (Applies to Itk strips, Rpc, Tgc, sTgc, Mm)
|
e2DimNoTime | Project out solely the locY - Complementary projector if the strip plane is rotated (Applies to Itk endcap strips, Rpc, Tgc, sTgc)
|
e1DimWithTime | Project out the two spatial coordinates - (Applies to ITk pixel, BI-Rpc, sTgc pad)
|
e1DimRotWithTime | Project out the locX & time coordinate - (Applies to Rpc, Tgc, Mm, sTgc)
|
e2DimWithTime | Project out the locY & time coordinate - (Applies to Rpc, Tgc, sTgc)
|
Definition at line 29 of file MeasurementCalibratorBase.h.
◆ calibrate() [1/4]
◆ calibrate() [2/4]
Definition at line 52 of file SpacePointCalibrator.cxx.
59 calibSP =
calibrate(ctx, spacePoint.spacePoint(), segPos, segDir, timeDelay);
61 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint);
◆ calibrate() [3/4]
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
Definition at line 80 of file SpacePointCalibrator.cxx.
91 const Amg::Transform3D& locToGlob{spacePoint->msSector()->localToGlobalTrans(*gctx)};
96 Amg::Vector3D calibSpPos = spacePoint->dimension() == 2 ? spPos
97 : spPos + Amg::intersect<3>(posInChamb, dirInChamb, spPos, chDir).value_or(0) * chDir;
101 switch (spacePoint->type()) {
104 + Amg::intersect<3>(spPos, chDir,
105 posInChamb, dirInChamb).value_or(0) * dirInChamb;
107 Amg::Vector3D closestApproach{locToGlob* locClosestApproach};
108 const double timeOfArrival = closestApproach.mag() * c_inv + timeOffset;
110 if (
ATH_LIKELY(spacePoint->dimension() == 1)) {
114 Acts::abs(dirInChamb.phi() - 90._degree) > 1.e-7 );
115 calibInput.setTimeOfFlight(timeOfArrival);
116 calibInput.setClosestApproach(std::move(closestApproach));
124 <<std::endl<<calibInput<<std::endl<<calibOutput);
130 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), fitState);
131 calibSP->setCovariance(
cov);
132 calibSP->setDriftRadius(calibOutput.
driftRadius());
137 calibInput.setTimeOfFlight(timeOfArrival);
139 MdtCalibInput twinInput{dc->twinIdentify(), dc->twinAdc(), dc->twinTdc(), dc->readoutElement(), *gctx};
141 twinInput.setTimeOfFlight(timeOfArrival);
144 std::move(calibInput),
145 std::move(twinInput));
150 <<std::endl<<calibOutput);
151 cov[Acts::toUnderlying(
AxisDefs::etaCov)] = Acts::square(dc->readoutElement()->innerTubeRadius());
152 cov[Acts::toUnderlying(
AxisDefs::phiCov)] = Acts::square(0.5* dc->readoutElement()->activeTubeLength(dc->measurementHash()));
158 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), fitState);
159 calibSP->setCovariance(
cov);
171 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
175 const double time1 =
strip->time()
176 -
strip->readoutElement()->distanceToEdge(
strip->layerHash(),
177 lPos.block<2,1>(0,0),
180 if (spacePoint->dimension() == 2) {
183 const double time2 = strip2->
time() -
184 strip2->readoutElement()->distanceToEdge(strip2->layerHash(),
185 Eigen::Rotation2D{90._degree}*lPos.block<2,1>(0,0),
188 calibSP->setTimeMeasurement(0.5*(time1 + time2));
192 calibSP->setCovariance(
cov);
194 <<
", at "<<
Amg::toString(calibSP->localPosition())<<
", uncalib time: "
195 <<
strip->time()<<
", calib time: "<<calibSP->time()<<
" cov " <<calibSP->covariance());
199 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
200 calibSP->setCovariance(
cov);
208 std::pair<double, double> calibPosCov {
calibrateMM(ctx, *gctx, *cluster, globalPos, globalDir)};
210 ATH_MSG_DEBUG(
"Calibrated pos and cov" << calibPosCov.first <<
" " << calibPosCov.second);
215 Amg::Vector3D calibSpPosInLayer = toChamberTrans.inverse() * calibSpPos;
217 calibSpPosInLayer.x() = calibPosCov.first;
219 calibSpPos = toChamberTrans * calibSpPosInLayer;
221 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
222 calibSP->setCovariance(
cov);
231 if (cluster->channelType() != sTgcIdHelper::sTgcChannelTypes::Strip) {
233 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
234 calibSP->setCovariance(
cov);
238 double posAlongTheStrip{0.};
241 if(spacePoint->secondaryMeasurement()) {
244 posAlongTheStrip = spacePoint->secondaryMeasurement()->localPosition<1>()[0];
253 const auto [calibPos, calibCov] =
calibratesTGC(ctx, *gctx, *stripClus, posAlongTheStrip, globalPos, globalDir);
255 ATH_MSG_DEBUG(
"Calibrated pos and cov" << calibPos <<
" " << calibCov);
260 Amg::Vector3D calibSpPosInLayer = toChamberTrans.inverse() * calibSpPos;
262 calibSpPosInLayer.x() = calibPos;
264 calibSpPos = toChamberTrans * calibSpPosInLayer;
266 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
267 calibSP->setCovariance(
cov);
◆ calibrate() [4/4]
◆ calibrateMM()
Calibrates the position and covariance of a MicroMegas (MM) cluster.
- Parameters
-
ctx | The event context providing the necessary conditions and event-specific information. |
gctx | Pointer to the ActsGeometryContext, used for geometry-related transformations. |
cluster | Pointer to the xAOD::MMCluster representing the MicroMegas cluster to be calibrated. |
globalPos | The global position from an external measurement. |
globalDir | The global position from an external measurement. |
calibLocPos | The calibrated local position of the cluster (output parameter). |
calibLocCov | The calibrated local covariance of the cluster (output parameter). |
Definition at line 314 of file SpacePointCalibrator.cxx.
315 std::vector<NSWCalib::CalibratedStrip> calibClus;
319 return std::make_pair(0., 0.);
326 calibCov.resize(1,1);
328 ATH_MSG_DEBUG(
"old loc pos " << locPos[0] <<
" old cov" << calibCov(0,0) );
331 if(rotAuthor == Muon::IMMClusterBuilderTool::RIO_Author::unKnownAuthor){
334 ATH_MSG_DEBUG(
"new loc pos " << locPos[0] <<
" new cov" << calibCov(0,0) );
335 return std::make_pair(locPos[0], calibCov(0,0));
◆ calibrateSourceLink()
void MuonR4::SpacePointCalibrator::calibrateSourceLink |
( |
const Acts::GeometryContext & |
geoctx, |
|
|
const Acts::CalibrationContext & |
cctx, |
|
|
const Acts::SourceLink & |
link, |
|
|
ActsTrk::MutableTrackContainer::TrackStateProxy |
state |
|
) |
| const |
|
finaloverride |
Construct bound track parameters to fetch the global track position
Vast majority of the measurements are ordinary drift tubes
Invalid drift radius has been created
Twin tube case
Legacy BM / BO chambers
BI clusters
Definition at line 356 of file SpacePointCalibrator.cxx.
362 const Acts::BoundTrackParameters trackPars{trackState.referenceSurface().getSharedPtr(),
363 trackState.parameters(), trackState.covariance(),
369 const EventContext* ctx = cctx.get<
const EventContext*>();
372 <<
" @ surface "<<trackState.referenceSurface().geometryId());
373 switch (muonMeas->type()){
378 calibInput.setClosestApproach(trackPos);
380 calibInput.setTrackDirection(trackDir,
true);
381 const double driftSign =
sign(trackPars.parameters()[Acts::eBoundLoc0]);
384 if (
ATH_LIKELY(muonMeas->numDimensions() == 1)) {
392 <<std::endl<<calibInput<<std::endl<<calibOutput);
393 cov(Acts::eBoundLoc0,Acts::eBoundLoc0) =
std::pow(dc->readoutElement()->innerTubeRadius(), 2);
403 MdtCalibInput twinInput{twinDC->twinIdentify(), twinDC->twinAdc(), twinDC->twinTdc(), twinDC->readoutElement(), *gctx};
404 twinInput.setClosestApproach(trackPos);
405 twinInput.setTimeOfFlight(trackPars.parameters()[Acts::eBoundTime]);
408 std::move(calibInput),
409 std::move(twinInput));
414 <<std::endl<<calibOutput);
415 locCov(Acts::eBoundLoc0, Acts::eBoundLoc0) =
std::pow(dc->readoutElement()->innerTubeRadius(), 2);
416 locCov(Acts::eBoundLoc1, Acts::eBoundLoc1) =
std::pow(0.5* dc->readoutElement()->activeTubeLength(dc->measurementHash()), 2);
419 locCov(Acts::eBoundLoc1, Acts::eBoundLoc1) =
std::pow(calibOutput.
sigmaZ(), 2);
420 locPos[Acts::eBoundLoc0] = driftSign*calibOutput.
primaryDriftR();
421 locPos[Acts::eBoundLoc1] = calibOutput.
locZ();
429 if (
ATH_LIKELY(rpcClust->numDimensions() == 1)) {
432 rpcClust->localPosition<1>(),
433 rpcClust->localCovariance<1>(), link, trackState);
437 measPars[0] = rpcClust->localPosition<1>()[0];
438 measCov(0,0) = rpcClust->localCovariance<1>()(0, 0);
441 measPars, measCov, link, trackState);
448 rpcClust->localPosition<2>(),
449 rpcClust->localCovariance<2>(), link, trackState);
453 measPars.block<2,1>(0,0) = xAOD::toEigen(rpcClust->localPosition<2>());
454 measCov.block<2,2>(0,0) = xAOD::toEigen(rpcClust->localCovariance<2>());
457 measPars, measCov, link, trackState);
464 muonMeas->localPosition<1>(),
465 muonMeas->localCovariance<1>(), link, trackState);
473 std::pair<double, double> calibPosCov{
calibrateMM(*ctx,* gctx, *mmClust, trackPos, trackDir)};
479 cov, link, trackState);
484 if(stgcClust->channelType() == sTgcIdHelper::sTgcChannelTypes::Wire) {
486 muonMeas->localPosition<1>(),
487 muonMeas->localCovariance<1>(), link, trackState);
489 }
else if(stgcClust->channelType() == sTgcIdHelper::sTgcChannelTypes::Pad) {
491 stgcClust->localPosition<2>(),
492 stgcClust->localCovariance<2>(), link, trackState);
497 std::pair<double, double> calibPosCov{
calibratesTGC(*ctx, *gctx, *stgCluster, -FLT_MAX, trackPos, trackDir)};
503 cov, link, trackState);
508 pos[0] = calibPosCov.first;
509 pos[1] = stgCluster->time();
510 cov(0,0) = calibPosCov.second;
515 cov, link, trackState);
523 THROW_EXCEPTION(
"The parsed measurement is not a muon measurement. Please check.");
◆ calibratesTGC()
Calibrates the position and covariance of an sTGC (small-strip Thin Gap Chamber) cluster.
- Parameters
-
| ctx | The event context providing the necessary conditions for the calibration. |
| gctx | Pointer to the ActsGeometryContext, which provides geometry-related information. |
| cluster | Pointer to the sTGC strip cluster to be calibrated. |
| posAlongTheStrip | The position along the strip obtained from the secondary measurement(wire), 0 if no wire measurement is present. |
| globalPos | The global position from an external measurement. |
| globalDir | The global direction from an external measurement. |
[out] | calibLocPos | The calibrated local position of the cluster (output parameter). |
[out] | calibLocCov | The calibrated local covariance of the cluster (output parameter). |
Definition at line 338 of file SpacePointCalibrator.cxx.
346 if(posAlongTheStrip == -FLT_MAX){
348 posAlongTheStrip = extPosLocal[1];
◆ driftAcceleration()
◆ driftVelocity()
◆ initialize()
StatusCode MuonR4::SpacePointCalibrator::initialize |
( |
| ) |
|
|
finaloverride |
◆ setState()
template<std::size_t Dim, typename trajectory_t , typename pos_t , typename cov_t >
void ActsTrk::detail::MeasurementCalibratorBase::setState |
( |
const ProjectorType |
projector, |
|
|
const pos_t & |
locpos, |
|
|
const cov_t & |
cov, |
|
|
Acts::SourceLink |
link, |
|
|
TrackState_t< trajectory_t > & |
trackState |
|
) |
| const |
|
inherited |
Copy the local position & covariance into the Acts track state proxy.
- Template Parameters
-
Dim | Dimension of the measurement |
trajectory_t | Data type of the track state proxy backend |
pos_t | Data type of the [Dim x 1] position vector |
cov_t | Data type of the [Dim x Dim] covariance matrix |
- Parameters
-
projector | Projector configuration of the measurement |
locpos | Calibrated local postion |
cov | Calibrated local covariance |
link | Source link to associate with the state |
trackState | Refrence to the track state proxy to write.
|
◆ m_clusterBuilderToolMM
◆ m_detMgr
◆ m_geoCtxKey
◆ m_idHelperSvc
◆ m_mdtCalibrationTool
ToolHandle<IMdtCalibrationTool> MuonR4::SpacePointCalibrator::m_mdtCalibrationTool {this, "MdtCalibrationTool", ""} |
|
private |
◆ 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 124 of file SpacePointCalibrator.h.
◆ m_nswCalibTool
ToolHandle<Muon::INSWCalibTool> MuonR4::SpacePointCalibrator::m_nswCalibTool {this, "NSWCalibTool", ""} |
|
private |
◆ m_rpcSignalVelocity
Gaudi::Property<double> MuonR4::SpacePointCalibrator::m_rpcSignalVelocity |
|
private |
Initial value:
"Propagation speed of the signal inside the rpc strip"}
How fast does an electron signal travel along an rpc strip
Definition at line 127 of file SpacePointCalibrator.h.
◆ m_rpcTimeResolution
Gaudi::Property<double> MuonR4::SpacePointCalibrator::m_rpcTimeResolution |
|
private |
◆ m_useRpcTime
Gaudi::Property<bool> MuonR4::SpacePointCalibrator::m_useRpcTime {this, "useRpcTime", false} |
|
private |
◆ m_usesTgcTime
Gaudi::Property<bool> MuonR4::SpacePointCalibrator::m_usesTgcTime |
|
private |
Initial value:{this, "usesTgcTime", false,
"Load the sTgc time on the track states for the fit"}
Definition at line 138 of file SpacePointCalibrator.h.
◆ m_useTgcTime
Gaudi::Property<bool> MuonR4::SpacePointCalibrator::m_useTgcTime |
|
private |
Initial value:{this, "useTgcTime", false,
"Load the Tgc BC-ID on the track states for the fit"}
Load the Tgc bunch crossing ID on the track states.
Definition at line 136 of file SpacePointCalibrator.h.
◆ s_boundSpaceIndices
constexpr static std::array<Acts::BoundSubspaceIndices, 6> ActsTrk::detail::MeasurementCalibratorBase::s_boundSpaceIndices |
|
staticconstexprprivateinherited |
Initial value:{
Acts::BoundSubspaceIndices{Acts::eBoundLoc0},
Acts::BoundSubspaceIndices{Acts::eBoundLoc1},
Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundLoc1},
Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundTime},
Acts::BoundSubspaceIndices{Acts::eBoundLoc1, Acts::eBoundTime},
Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundTime}
}
Array to map the Projector types to the bound index configurations used by the ATLAS detector measurements.
Definition at line 66 of file MeasurementCalibratorBase.h.
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
RpcMeasurement_v1: Class storing the geneic.
const Identifier & identify(const UncalibratedMeasurement *meas)
Returns the associated identifier from the muon measurement.
IdentifierHash layerHash() const
Returns the hash of the associated gasGap layer.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
@ e2DimNoTime
Project out solely the locY - Complementary projector if the strip plane is rotated (Applies to Itk e...
Eigen::Matrix< double, 2, 1 > Vector2D
std::array< double, 3 > Cov_t
Abrivation of the covariance type.
const MuonGMR4::MmReadoutElement * readoutElement() const
Retrieve the associated MmReadoutElement.
@ e2DimWithTime
Project out the locY & time coordinate - (Applies to Rpc, Tgc, sTgc)
Amg::Transform3D globalToLocalTrans(const ActsGeometryContext &ctx) const
Transformations to translate between local <-> global coordinates.
@ e1DimRotNoTime
Project out solely the locX (Applies to Itk strips, Rpc, Tgc, sTgc, Mm)
#define ATH_MSG_VERBOSE(x)
class which holds the full set of calibration constants for a given tube
double uncertPrimaryR() const
#define AmgSymMatrix(dim)
@ MdtStatusDriftTime
The tube produced a vaild measurement.
static const xAOD::UncalibratedMeasurement * unpack(const Acts::SourceLink &sl)
Helper method to unpack an Acts source link to an uncalibrated measurement.
ISpacePointCalibrator::CalibSpacePointVec CalibSpacePointVec
Gaudi::Property< double > m_rpcSignalVelocity
How fast does an electron signal travel along an rpc strip
Gaudi::Property< bool > m_useRpcTime
Load the Rpc time on the track states for the track fit.
Gaudi::Property< bool > m_useTgcTime
Load the Tgc bunch crossing ID on the track states.
IdentifierHash layerHash() const
Returns the hash of the associated layer (Needed for surface retrieval)
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Amg::Vector3D toLocal(const Amg::Transform3D &toLocalTrans, const Amg::Vector3D &dir)
Rotates a direction vector into a local frame: x-axis : Parallell to the radial direction of the dete...
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
std::pair< double, double > calibratesTGC(const EventContext &ctx, const ActsGeometryContext &gctx, const xAOD::sTgcStripCluster &cluster, 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.
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
ToolHandle< Muon::INSWCalibTool > m_nswCalibTool
const Identifier & identify() const
: Returns the Athena identifier of the micro mega cluster It's constructed from the measurementHash &...
::StatusCode StatusCode
StatusCode definition for legacy code.
CalibratedSpacePoint::State State
Eigen::Affine3d Transform3D
ToolHandle< Muon::IMMClusterBuilderTool > m_clusterBuilderToolMM
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ConstMatrixMap< N > localCovariance() const
Returns the local covariance of the measurement.
MdtDriftCircleStatus status() const
Status of the calibration.
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
Include the GeoPrimitives which need to be put first.
constexpr double sign(const double x)
Returns the sign of a number.
MuonR4::ISpacePointCalibrator::CalibSpacePointPtr CalibSpacePointPtr
const MuonGMR4::sTgcReadoutElement * readoutElement() const
Retrieve the associated sTgcReadoutElement.
@ e1DimWithTime
Project out the two spatial coordinates - (Applies to ITk pixel, BI-Rpc, sTgc pad)
MdtDriftCircleStatus primaryStatus() const
Gaudi::Property< bool > m_usesTgcTime
Eigen::Matrix< double, 3, 1 > Vector3D
#define THROW_EXCEPTION(MESSAGE)
ToolHandle< IMdtCalibrationTool > m_mdtCalibrationTool
double driftRadiusUncert() const
Returns the uncertainty on the drift radius.
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_rpcTimeResolution
#define ATH_MSG_WARNING(x)
UncalibMeasType
Define the type of the uncalibrated measurement.
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
access to the ACTS geometry context
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
const MuonGMR4::MuonDetectorManager * m_detMgr
double primaryDriftR() const
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
constexpr int pow(int base, int exp) noexcept
float time() const
Returns the time.
double driftRadius() const
Returns the drift radius of the calibrated object.
std::pair< double, double > calibrateMM(const EventContext &ctx, const ActsGeometryContext &gctx, const xAOD::MMCluster &cluster, const Amg::Vector3D &globalPos, const Amg::Vector3D &globalDir) const
Calibrates the position and covariance of a MicroMegas (MM) cluster.