 |
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 Acts::CalibrationContext &ctx, const Amg::Vector3D &seedPosInChamb, const Amg::Vector3D &seedDirInChamb, const double timeDelay, const CalibSpacePointVec &spacePoints) const override final |
| |
| void | updateSigns (const Amg::Vector3D &trackPos, const Amg::Vector3D &trackDir, CalibSpacePointVec &hitsToCalib) 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 |
| |
| void | calibrateSourceLink (const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, ActsTrk::MutableTrackContainer::TrackStateProxy state) const override final |
| |
| void | stampSignsOnMeasurements (const xAOD::MuonSegment &segment) 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...
|
| |
|
| 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. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
|
| SG::ReadHandleKey< ActsTrk::GeometryContext > | 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 |
| |
| Gaudi::Property< bool > | m_MdtSignFromSegment |
| |
|
| 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]
Definition at line 82 of file SpacePointCalibrator.cxx.
88 const EventContext* ctx = cctx.get<
const EventContext*>();
91 newCalib.emplace_back(
calibrate(*ctx, *sp, segPos, segDir, timeDelay));
◆ calibrate() [2/4]
Definition at line 63 of file SpacePointCalibrator.cxx.
70 calibSP =
calibrate(ctx, spacePoint.spacePoint(), segPos, segDir, timeDelay);
72 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 96 of file SpacePointCalibrator.cxx.
107 const Amg::Transform3D& locToGlob{spacePoint->msSector()->localToGlobalTrans(*gctx)};
112 Amg::Vector3D calibSpPos = spacePoint->dimension() == 2 ? spPos
113 : spPos + Amg::intersect<3>(posInChamb, dirInChamb, spPos, chDir).value_or(0) * chDir;
118 switch (spacePoint->type()) {
121 + Amg::intersect<3>(spPos, chDir,
122 posInChamb, dirInChamb).value_or(0) * dirInChamb;
124 Amg::Vector3D closestApproach{locToGlob* locClosestApproach};
125 const double timeOfArrival = closestApproach.mag() * c_inv + timeOffset;
127 if (
ATH_LIKELY(spacePoint->dimension() == 1)) {
131 Acts::abs(dirInChamb.phi() - 90._degree) > 1.e-7 );
132 calibInput.setTimeOfFlight(timeOfArrival);
133 calibInput.setClosestApproach(std::move(closestApproach));
141 <<std::endl<<calibInput<<std::endl<<calibOutput);
147 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), fitState);
148 calibSP->setCovariance(
cov);
149 calibSP->setDriftRadius(calibOutput.
driftRadius());
154 calibInput.setTimeOfFlight(timeOfArrival);
156 MdtCalibInput twinInput{dc->twinIdentify(), dc->twinAdc(), dc->twinTdc(), dc->readoutElement(), *gctx};
158 twinInput.setTimeOfFlight(timeOfArrival);
161 std::move(calibInput),
162 std::move(twinInput));
167 <<std::endl<<calibOutput);
168 cov[Acts::toUnderlying(
AxisDefs::etaCov)] = Acts::square(dc->readoutElement()->innerTubeRadius());
169 cov[Acts::toUnderlying(
AxisDefs::phiCov)] = Acts::square(0.5* dc->readoutElement()->activeTubeLength(dc->measurementHash()));
175 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos), fitState);
176 calibSP->setCovariance(
cov);
188 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
192 const double time1 =
strip->time()
193 -
strip->readoutElement()->distanceToEdge(
strip->layerHash(), lPos,
196 if (spacePoint->dimension() == 2) {
199 const double time2 = strip2->
time() -
200 strip2->readoutElement()->distanceToEdge(strip2->layerHash(),lPos, EdgeSide::readOut)/
m_rpcSignalVelocity;
202 calibSP->setTimeMeasurement(0.5*(time1 + time2));
206 calibSP->setCovariance(
cov);
208 <<
", at "<<
Amg::toString(calibSP->localPosition())<<
", uncalib time: "
209 <<
strip->time()<<
", calib time: "<<calibSP->time()<<
" cov " <<calibSP->covariance());
213 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
214 calibSP->setCovariance(
cov);
222 std::pair<double, double> calibPosCov {
calibrateMM(ctx, *gctx, *cluster, globalPos, globalDir)};
224 ATH_MSG_DEBUG(
"Calibrated pos and cov" << calibPosCov.first <<
" " << calibPosCov.second);
229 Amg::Vector3D calibSpPosInLayer = toChamberTrans.inverse() * calibSpPos;
231 calibSpPosInLayer.x() = calibPosCov.first;
233 calibSpPos = toChamberTrans * calibSpPosInLayer;
235 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
236 calibSP->setCovariance(
cov);
245 if (cluster->channelType() != sTgcIdHelper::sTgcChannelTypes::Strip) {
247 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
248 calibSP->setCovariance(
cov);
252 std::optional<double> posAlongTheStrip{std::nullopt};
255 if(spacePoint->secondaryMeasurement()) {
258 posAlongTheStrip =
static_cast<double>(spacePoint->secondaryMeasurement()->localPosition<1>()[0]);
267 const auto [calibPos, calibCov] =
calibratesTGC(ctx, *gctx, *stripClus, posAlongTheStrip, globalPos, globalDir);
269 ATH_MSG_DEBUG(
"Calibrated pos and cov" << calibPos <<
" " << calibCov);
274 Amg::Vector3D calibSpPosInLayer = toChamberTrans.inverse() * calibSpPos;
276 calibSpPosInLayer.x() = calibPos;
278 calibSpPos = toChamberTrans * calibSpPosInLayer;
280 calibSP = std::make_unique<CalibratedSpacePoint>(spacePoint, std::move(calibSpPos));
281 calibSP->setCovariance(
cov);
◆ calibrate() [4/4]
◆ calibrateCombinedPrd()
Calibrates the track states from a combined muon strip.
It's a pseudo measurement composed out of two 1D strip measurements residing in the same gas gap (Relevant for Rpc/Tgc/sTgc)
- Parameters
-
| ctx | The event context providing the necessary conditions and event-specific information. |
| gctx | Pointer to the ActsTrk::GeometryContext, used for geometry-related transformations. |
| combinedPrd | Pointer to the measurement carrying the actual prds which are to be combined on the track state |
| state | The proxy to the actual track state to fill |
Apply the stereo transform to the covariance
Definition at line 372 of file SpacePointCalibrator.cxx.
397 const auto& wireDesign = wireMeas->readoutElement()->wireGangLayout(wireMeas->layerHash());
399 const double dirDots = radialDesign.
stripDir(stripMeas->channelNumber()).
dot(wireDesign.stripNormal());
402 const double invDist = 1. / (1. - Acts::square(dirDots));
403 stereoTrf(0, 0) = stereoTrf(1, 1) = invDist;
404 stereoTrf(0, 1) = stereoTrf(1, 0) = -dirDots * invDist;
407 stripMeas->localPosition<1>()[0]};
409 cmbCov (0, 0) = wireMeas->localCovariance<1>()(0,0);
410 cmbCov (1, 1) = stripMeas->localCovariance<1>()(0,0);
413 stereoTrf*cmbCov*stereoTrf.transpose(), sl, state);
◆ 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 ActsTrk::GeometryContext, 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 327 of file SpacePointCalibrator.cxx.
332 std::vector<NSWCalib::CalibratedStrip> calibClus;
336 return std::make_pair(0., 0.);
343 calibCov.resize(1,1);
345 ATH_MSG_DEBUG(
"old loc pos " << locPos[0] <<
" old cov" << calibCov(0,0) );
348 if(rotAuthor == Muon::IMMClusterBuilderTool::RIO_Author::unKnownAuthor){
351 ATH_MSG_DEBUG(
"new loc pos " << locPos[0] <<
" new cov" << calibCov(0,0) );
352 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
Only the combined muonstrip has zero dimensions
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 419 of file SpacePointCalibrator.cxx.
425 const Acts::BoundTrackParameters trackPars{trackState.referenceSurface().getSharedPtr(),
426 trackState.parameters(), trackState.covariance(),
432 const EventContext* ctx = cctx.get<
const EventContext*>();
434 <<
" @ surface "<<trackState.referenceSurface().geometryId());
436 if (muonMeas->numDimensions() == 0
u) {
445 switch (muonMeas->type()){
450 calibInput.setClosestApproach(trackPos);
452 calibInput.setTrackDirection(trackDir,
true);
454 static_cast<double>(dec_trackSign(*dc)) :
455 sign(trackPars.parameters()[Acts::eBoundLoc0]);
458 if (
ATH_LIKELY(muonMeas->numDimensions() == 1)) {
466 <<std::endl<<calibInput<<std::endl<<calibOutput);
467 cov(Acts::eBoundLoc0,Acts::eBoundLoc0) =
std::pow(dc->readoutElement()->innerTubeRadius(), 2);
477 MdtCalibInput twinInput{twinDC->twinIdentify(), twinDC->twinAdc(), twinDC->twinTdc(), twinDC->readoutElement(), *gctx};
478 twinInput.setClosestApproach(trackPos);
479 twinInput.setTimeOfFlight(trackPars.parameters()[Acts::eBoundTime]);
482 std::move(calibInput),
483 std::move(twinInput));
488 <<std::endl<<calibOutput);
489 locCov(Acts::eBoundLoc0, Acts::eBoundLoc0) =
std::pow(dc->readoutElement()->innerTubeRadius(), 2);
490 locCov(Acts::eBoundLoc1, Acts::eBoundLoc1) =
std::pow(0.5* dc->readoutElement()->activeTubeLength(dc->measurementHash()), 2);
493 locCov(Acts::eBoundLoc1, Acts::eBoundLoc1) =
std::pow(calibOutput.
sigmaZ(), 2);
494 locPos[Acts::eBoundLoc0] = driftSign*calibOutput.
primaryDriftR();
495 locPos[Acts::eBoundLoc1] = calibOutput.
locZ();
503 if (
ATH_LIKELY(rpcClust->numDimensions() == 1)) {
508 setState<1, ActsTrk::MutableTrackStateBackend>(
proj,
509 rpcClust->localPosition<1>(),
510 rpcClust->localCovariance<1>(), link, trackState);
514 measPars[0] = rpcClust->localPosition<1>()[0];
515 measCov(0,0) = rpcClust->localCovariance<1>()(0, 0);
516 ATH_MSG_WARNING(__FILE__<<
":"<<__LINE__<<
"Please fix me using the ActsInterops package");
520 setState<2, ActsTrk::MutableTrackStateBackend>(
proj,
521 measPars, measCov, link, trackState);
528 rpcClust->localPosition<2>(),
529 rpcClust->localCovariance<2>(), link, trackState);
533 measPars.block<2,1>(0,0) = xAOD::toEigen(rpcClust->localPosition<2>());
534 measCov.block<2,2>(0,0) = xAOD::toEigen(rpcClust->localCovariance<2>());
535 ATH_MSG_WARNING(__FILE__<<
":"<<__LINE__<<
"Please fix me using the ActsInterops package");
538 measPars, measCov, link, trackState);
543 const auto* tgcClust =
static_cast<const xAOD::TgcStrip*
>(muonMeas);
547 setState<1, ActsTrk::MutableTrackStateBackend>(
proj,
548 tgcClust->localPosition<1>(),
549 tgcClust->localCovariance<1>(), link, trackState);
557 std::pair<double, double> calibPosCov{
calibrateMM(*ctx,* gctx, *mmClust, trackPos, trackDir)};
562 pos,
cov, link, trackState);
567 if(stgcClust->channelType() == sTgcIdHelper::sTgcChannelTypes::Wire) {
569 muonMeas->localPosition<1>(),
570 muonMeas->localCovariance<1>(), link, trackState);
572 }
else if(stgcClust->channelType() == sTgcIdHelper::sTgcChannelTypes::Pad) {
574 stgcClust->localPosition<2>(),
575 stgcClust->localCovariance<2>(), link, trackState);
580 std::pair<double, double> calibPosCov{
calibratesTGC(*ctx, *gctx, *stgCluster, std::nullopt, trackPos, trackDir)};
586 cov, link, trackState);
591 pos[0] = calibPosCov.first;
592 pos[1] = stgCluster->time();
593 cov(0,0) = calibPosCov.second;
594 ATH_MSG_WARNING(__FILE__<<
":"<<__LINE__<<
"Please fix me using the ActsInterops package");
599 cov, link, trackState);
607 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 ActsTrk::GeometryContext, 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 355 of file SpacePointCalibrator.cxx.
363 if(!posAlongTheStrip) {
365 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.
|
◆ stampSignsOnMeasurements()
Definition at line 611 of file SpacePointCalibrator.cxx.
614 for (
const auto& meas : detSeg->measurements()) {
616 dec_trackSign(*meas->spacePoint()->primaryMeasurement()) =
617 SeedingAux::strawSign(segPos, segLine, *meas);
◆ updateSigns()
Definition at line 54 of file SpacePointCalibrator.cxx.
57 std::vector<int> signs = SeedingAux::strawSigns(trackPos, trackDir,
59 for (
const auto& [spIdx, sp]: Acts::enumerate(hitsToCalib)) {
60 sp->setDriftRadius(sp->driftRadius() * signs[spIdx]);
◆ m_clusterBuilderToolMM
◆ m_detMgr
◆ m_geoCtxKey
◆ m_idHelperSvc
◆ m_mdtCalibrationTool
| ToolHandle<IMdtCalibrationTool> MuonR4::SpacePointCalibrator::m_mdtCalibrationTool {this, "MdtCalibrationTool", ""} |
|
private |
◆ m_MdtSignFromSegment
| Gaudi::Property<bool> MuonR4::SpacePointCalibrator::m_MdtSignFromSegment |
|
private |
Initial value:{this, "useSegmentSigns", true,
"Mdt drift signs are copied from the segment line instead from the track state"}
Definition at line 154 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 138 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 141 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 152 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 150 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...
const xAOD::UncalibratedMeasurement * primaryStrip() const
Returns the primary associated measurement.
virtual xAOD::UncalibMeasType type() const override final
Returns the type of the measurement type as a simple enumeration.
Eigen::Matrix< double, 2, 1 > Vector2D
std::array< double, 3 > Cov_t
Abrivation of the covariance type.
Gaudi::Property< bool > m_MdtSignFromSegment
const MuonGMR4::MmReadoutElement * readoutElement() const
Retrieve the associated MmReadoutElement.
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
access to the ACTS geometry context
@ e2DimWithTime
Project out the locY & time coordinate - (Applies to Rpc, Tgc, sTgc)
const xAOD::UncalibratedMeasurement * secondaryStrip() const
Returns the secondary associated measurement.
@ e1DimRotNoTime
Project out solely the locX (Applies to Itk strips, Rpc, Tgc, sTgc, Mm)
#define ATH_MSG_VERBOSE(x)
std::pair< Amg::Vector3D, Amg::Vector3D > makeLine(const Parameters &pars)
Returns the parsed parameters into an Eigen line parametrization.
static Acts::SourceLink pack(const xAOD::UncalibratedMeasurement *meas)
Helper method to pack an uncalibrated measurement to an Acts source link.
class which holds the full set of calibration constants for a given tube
double uncertPrimaryR() const
@ u
Enums for curvilinear frames.
#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
const Segment * detailedSegment(const xAOD::MuonSegment &seg)
Helper function to navigate from the xAOD::MuonSegment to the MuonR4::Segment.
Gaudi::Property< double > m_rpcSignalVelocity
How fast does an electron signal travel along an rpc strip
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.
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.
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.
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
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
const Amg::Transform3D & localToGlobalTrans(const ActsTrk::GeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
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.
const MuonGMR4::TgcReadoutElement * readoutElement() const
Retrieve the associated TgcReadoutElement.
def dot(G, fn, nodesToHighlight=[])
Amg::Vector2D stripDir(int stripNumber) const
: Returns the direction of the radial strip (Pointing from the bottom edge to the top edge)
constexpr double sign(const double x)
Returns the sign of a number.
@ e1DimRotWithTime
Project out the locX & time coordinate - (Applies to Rpc, Tgc, Mm, sTgc)
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
The Acts fitters running on the Uncalibrated measurements are uncapable of producing two track states...
Gaudi::Property< double > m_rpcTimeResolution
#define ATH_MSG_WARNING(x)
UncalibMeasType
Define the type of the uncalibrated measurement.
const MuonGMR4::MuonDetectorManager * m_detMgr
Parameters localSegmentPars(const xAOD::MuonSegment &seg)
Returns the localSegPars decoration from a xAODMuon::Segment.
double primaryDriftR() const
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
constexpr int pow(int base, int exp) noexcept
Amg::Transform3D globalToLocalTrans(const ActsTrk::GeometryContext &ctx) const
Transformations to translate between local <-> global coordinates.
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.
float time() const
Returns the time.
double driftRadius() const
Returns the drift radius of the calibrated object.
const RadialStripDesign & stripLayout(const IdentifierHash &layHash) const
Returns access to the strip design of the given gasGap [1-3] If the gap does not have strips an excep...