 |
ATLAS Offline Software
|
#include <MuTagMatchingTool.h>
|
| MuTagMatchingTool (const std::string &t, const std::string &n, const IInterface *p) |
|
virtual | ~MuTagMatchingTool ()=default |
|
virtual StatusCode | initialize () override |
|
bool | match (const Trk::TrackParameters &atSurface, const Muon::MuonSegment &segment, int surfaceName) const override |
|
bool | surfaceMatch (const Muon::MuonSegment &segment, int surfaceName) const override |
|
bool | phiMatch (const Trk::TrackParameters &atSurface, const Muon::MuonSegment &segment) const override |
|
bool | thetaMatch (const Trk::TrackParameters &atSurface, const Muon::MuonSegment &segment) const override |
|
bool | rMatch (const Trk::TrackParameters &atSurface, const Muon::MuonSegment &segment) const override |
|
std::unique_ptr< Trk::TrackParameters > | ExtrapolateTrktoMSEntrance (const EventContext &ctx, const Trk::Track &pTrack, Trk::PropDirection direction) const override |
| Get extrapolation at MS entrance level. More...
|
|
std::unique_ptr< Trk::TrackParameters > | ExtrapolateTrktoMSSurface (const EventContext &ctx, const Trk::Surface &surface, const Trk::TrackParameters &pTrack, Trk::PropDirection direction) const override |
| Get extrapolation at MSSurface level. More...
|
|
std::shared_ptr< Trk::AtaPlane > | ExtrapolateTrktoSegmentSurface (const EventContext &ctx, const Muon::MuonSegment &segment, const Trk::TrackParameters &pTrack, Trk::PropDirection direction) const override |
| Get extrapolation at Segment Plane Surface level. More...
|
|
bool | matchSegmentPosition (const MuonCombined::MuonSegmentInfo &info, bool idHasEtaHits) const override |
|
bool | matchSegmentDirection (const MuonCombined::MuonSegmentInfo &info, bool idHasEtaHits) const override |
|
bool | matchPtDependentPull (const MuonCombined::MuonSegmentInfo &info, const Trk::Track &trk) const override |
|
bool | matchDistance (const MuonCombined::MuonSegmentInfo &info) const override |
|
bool | matchCombinedPull (const MuonCombined::MuonSegmentInfo &info) const override |
|
MuonCombined::MuonSegmentInfo | muTagSegmentInfo (const EventContext &ctx, const Trk::Track *track, const Muon::MuonSegment &segment, std::shared_ptr< const Trk::AtaPlane > exTrack) const override |
|
|
void | testExtrapolation (const Trk::Surface &pSurface, const Trk::Track &pTrack) const |
|
bool | isCscSegment (const Muon::MuonSegment &seg) const |
|
unsigned int | cscHits (const Muon::MuonSegment &seg) const |
|
void | nrTriggerHits (const Muon::MuonSegment &seg, int &nRPC, int &nTGC) const |
|
bool | hasPhi (const Muon::MuonSegment &seg) const |
|
double | errorProtection (double exTrk_Err, bool isAngle) const |
|
std::unique_ptr< Trk::Perigee > | flipDirection (const Trk::Perigee &inputPars) const |
|
double | matchingDistanceCorrection (double resPos, double resAngle) |
|
void | calculateLocalAngleErrors (const Trk::AtaPlane &expPars, double &exTrkErrXZ, double &exTrkErrYZ, double &covLocYYZ) const |
|
void | calculateLocalAngleErrors (const Muon::MuonSegment &segment, double &exTrkErrXZ, double &exTrkErrYZ) const |
|
const Trk::TrackingVolume * | getVolume (const EventContext &ctx, const std::string &&vol_name) const |
|
Definition at line 38 of file MuTagMatchingTool.h.
◆ MuTagMatchingTool()
MuTagMatchingTool::MuTagMatchingTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
Definition at line 30 of file MuTagMatchingTool.cxx.
30 : base_class(
t,
n,
p) {
44 declareProperty(
"DoDistanceCut",
m_doDistCut =
true);
45 declareProperty(
"PositionDistance",
m_DIST_POS = 2000.);
48 declareProperty(
"ThetaSafety",
50 declareProperty(
"PhiSafety",
m_SAFE_PHI = 100.);
51 declareProperty(
"ThetaAngleSafety",
53 declareProperty(
"PhiAngleSafety",
56 declareProperty(
"ChamberPullCut",
59 declareProperty(
"CombinedPullCut",
64 declareProperty(
"MuonChamberT0s",
m_t0Location =
"MooreMuonChamberT0s");
◆ ~MuTagMatchingTool()
virtual MuTagMatchingTool::~MuTagMatchingTool |
( |
| ) |
|
|
virtualdefault |
◆ calculateLocalAngleErrors() [1/2]
void MuTagMatchingTool::calculateLocalAngleErrors |
( |
const Muon::MuonSegment & |
segment, |
|
|
double & |
exTrkErrXZ, |
|
|
double & |
exTrkErrYZ |
|
) |
| const |
|
private |
◆ calculateLocalAngleErrors() [2/2]
void MuTagMatchingTool::calculateLocalAngleErrors |
( |
const Trk::AtaPlane & |
expPars, |
|
|
double & |
exTrkErrXZ, |
|
|
double & |
exTrkErrYZ, |
|
|
double & |
covLocYYZ |
|
) |
| const |
|
private |
Definition at line 797 of file MuTagMatchingTool.cxx.
800 if (!exTrack.covariance())
return;
805 const AmgVector(5)& exTrkParms = exTrack.parameters();
816 const AmgSymMatrix(2)& anglesCovLoc = anglesCovGlob.similarity(jacobianExTrk);
818 if (anglesCovLoc(0, 0) >= 0) angleXZerror = std::sqrt(anglesCovLoc(0, 0));
819 if (anglesCovLoc(1, 1) >= 0) angleYZerror = std::sqrt(anglesCovLoc(1, 1));
824 << jacobianExTrk(0, 1) <<
" J11 " << jacobianExTrk(0, 1));
826 ATH_MSG_DEBUG(std::setw(20) <<
"Angles Jacobian used for TRACK angle errors below: " << jacobianExTrk);
828 ATH_MSG_DEBUG(std::setw(20) <<
"NEW TRACK angleXZ error = " << std::setprecision(6) << std::setw(10) << angleXZerror << std::setw(20)
829 <<
" and angleYZ error = " << std::setw(10) << angleYZerror);
◆ cscHits()
◆ errorProtection()
double MuTagMatchingTool::errorProtection |
( |
double |
exTrk_Err, |
|
|
bool |
isAngle |
|
) |
| const |
|
private |
◆ ExtrapolateTrktoMSEntrance()
Get extrapolation at MS entrance level.
Get extrapolation at MS entrance: this will be the starting point to following extrapolations.
Definition at line 143 of file MuTagMatchingTool.cxx.
148 if (!MSEntranceVolume) {
return nullptr; }
150 std::unique_ptr<Trk::TrackParameters> exTrk{
154 ATH_MSG_DEBUG(
"Track could not be extrapolated to MS entrance...");
156 ATH_MSG_DEBUG(
"Track extrapolated to MS entrance Radius " << exTrk->position().perp() <<
" Z " << exTrk->position().z());
◆ ExtrapolateTrktoMSSurface()
Get extrapolation at MSSurface level.
Definition at line 162 of file MuTagMatchingTool.cxx.
166 std::unique_ptr<Trk::TrackParameters> exTrk{
m_IExtrapolator->extrapolate(ctx, pTrack, pSurface, direction,
false,
Trk::muon)};
168 ATH_MSG_DEBUG(
" didn't manage to extrapolate TrackParameters to abstract surface Radius " << pSurface.center().perp() <<
" Z "
169 << pSurface.center().z());
◆ ExtrapolateTrktoSegmentSurface()
Get extrapolation at Segment Plane Surface level.
Definition at line 192 of file MuTagMatchingTool.cxx.
202 ATH_MSG_DEBUG(
"CSC segment is identified to be 2D. Not extrapolating.");
207 std::shared_ptr<Trk::TrackParameters> atap{
210 ATH_MSG_DEBUG(
" didn't manage to extrapolate TrackParameters to segment surface Radius"
211 <<
segment.associatedSurface().center().perp() <<
" Z " <<
segment.associatedSurface().center().z());
215 std::shared_ptr<Trk::AtaPlane> matap = std::dynamic_pointer_cast<Trk::AtaPlane>(atap);
218 ATH_MSG_DEBUG(
" didn't manage to extrapolate MeasuredTrackParameters to segment surface atap Radius "
219 << atap->position().perp() <<
" Z" << atap->position().z());
222 ATH_MSG_DEBUG(
" Succesfull extrapolation segment surface matap Radius " << matap->position().perp() <<
" Z"
223 << matap->position().z());
◆ flipDirection()
Definition at line 174 of file MuTagMatchingTool.cxx.
178 if (flippedPhi >
M_PI) flippedPhi -= 2 *
M_PI;
179 double flippedTheta =
M_PI -
pars[3];
180 if (flippedTheta < 0.) flippedTheta +=
M_PI;
181 if (inputPars.covariance()) {
186 ATH_MSG_DEBUG(
"flipDirection: no covariance associated to input parameters " << inputPars);
◆ getVolume()
Definition at line 192 of file MuTagMatchingTool.h.
194 if (!handle.isValid()) {
198 return handle.cptr()->trackingVolume(vol_name);
◆ hasPhi()
◆ initialize()
StatusCode MuTagMatchingTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ isCscSegment()
◆ match()
◆ matchCombinedPull()
Definition at line 326 of file MuTagMatchingTool.cxx.
328 if (!
info.segment || !
info.trackAtSegment) {
329 ATH_MSG_DEBUG(
" No segment and or trackAtSegment pointer matchCombinedPull ");
336 <<
info.hasPhi <<
" minimumPullPhi " <<
info.minimumPullPhi <<
" pullChamber " <<
info.pullChamber <<
" cut "
◆ matchDistance()
◆ matchingDistanceCorrection()
double MuTagMatchingTool::matchingDistanceCorrection |
( |
double |
resPos, |
|
|
double |
resAngle |
|
) |
| |
|
private |
◆ matchPtDependentPull()
Definition at line 342 of file MuTagMatchingTool.cxx.
344 if (!
info.segment || !
info.trackAtSegment) {
345 ATH_MSG_DEBUG(
" No segment and or trackAtSegment pointermatchPtDependentPull ");
353 double Pullcut = 2.0;
355 if (
pT > 2.) { Pullcut = 5.0 - 6.0 /
pT; }
358 if (std::abs(
info.pullCY) > Pullcut) pass =
false;
◆ matchSegmentDirection()
◆ matchSegmentPosition()
◆ muTagSegmentInfo()
The cut off variable is used to avoid FPEs risen where one of the matrix enties exceeds a large number and hence the determinant becomes tremendously larger
What do these magic numbers represent?
Definition at line 467 of file MuTagMatchingTool.cxx.
475 info.trackAtSegment = exTrack;
485 info.dtheta = exTrack->momentum().theta() -
segment.globalDirection().theta();
486 info.dphi = exTrack->momentum().deltaPhi(
segment.globalDirection());
490 info.dthetaPos = exTrack->position().theta() -
segment.globalPosition().theta();
491 info.dphiPos = exTrack->position().deltaPhi (
segment.globalPosition());
500 info.exCovYTheta = 0.;
501 if (exTrack->covariance()) {
510 info.exErrorX = -999.;
511 info.exErrorY = -999.;
528 exTrack->
associatedSurface().globalToLocalDirection(exTrack->momentum(), exTrkLocDir);
534 double exTrkErrXZ(0.), exTrkErrYZ(0.), segErrXZ(0.), segErrYZ(0.), covLocYYZ(0.);
537 info.exErrorXZ = exTrkErrXZ;
538 info.exErrorYZ = exTrkErrYZ;
539 info.exCovYZY = covLocYYZ;
541 info.segErrorXZ = segErrXZ;
542 info.segErrorYZ = segErrYZ;
549 ATH_MSG_DEBUG(
" info.exErrorYZ " <<
info.exErrorYZ <<
" info.segErrorYZ " <<
info.segErrorYZ <<
" info.exCovYZY " <<
info.exCovYZY);
567 ATH_MSG_ERROR(
"Null pointer to the read MuonDetectorManager conditions object");
570 double maxResXMdt{-1e9}, maxResPhi{-1e9}, maxPullPhi{-1e9}, minResPhi{1e9}, minPullPhi{1e9};
598 <<
" exPos " << exP->parameters()[
Trk::locR] <<
" y " << exP->parameters()[
Trk::locZ] <<
" tubeL " << tubeLen);
599 double exResidual = std::abs(exP->parameters()[
Trk::locZ]) - 0.5 * tubeLen;
600 if (maxResXMdt < exResidual) maxResXMdt = exResidual;
601 if (exResidual > 0.)
ATH_MSG_DEBUG(
"Extrapolated position outside tube, " << exResidual);
608 std::unique_ptr<Trk::TrackParameters> exP{
614 std::optional<Trk::ResidualPull> resPull{
621 const double residual = resPull->residual().front();
622 const double pull = resPull->pull().front();
632 ATH_MSG_DEBUG(
"Residual phi min " << minResPhi <<
" max " << maxResPhi <<
" pull min " << minPullPhi <<
" max " << maxPullPhi
633 <<
" dist from tube end " << maxResXMdt);
638 info.maximumResidualAlongTube = maxResXMdt;
639 info.maximumResidualPhi = maxResPhi;
640 info.maximumPullPhi = maxPullPhi;
642 info.minimumResidualPhi = minResPhi;
643 info.minimumPullPhi = minPullPhi;
645 info.pullChamber = maxResXMdt /
info.exErrorX;
651 constexpr
double matrix_cutoff = 1.e20;
653 double b = std::abs(
info.exCovYZY) < matrix_cutoff ?
info.exCovYZY : (
info.exCovYZY < 0 ? -1. : 1) * matrix_cutoff;
658 if (
det < 0.1 *
a *
d) {
659 scale = std::sqrt(0.9 *
a *
d) / std::abs(
b);
675 ATH_MSG_DEBUG(
" segment direction theta " <<
segment.globalDirection().theta() <<
" position theta "
680 if (error_rescy > 0) {
681 error_rescy = std::sqrt(error_rescy + error_segcy);
683 error_rescy = std::sqrt(
info.exErrorY *
info.exErrorY + error_segcy);
693 info.chi2Y = 0.5*( chi2Y /
det);
694 if (
info.chi2Y < 0)
ATH_MSG_DEBUG(
" NEGATIVE chi2Y " << chi2Y <<
" dydyz " << dydyz <<
" determinant " <<
det);
705 info.stationLayer = 0;
708 info.stationLayer = 1;
711 info.stationLayer = 2;
714 info.stationLayer = 3;
717 info.stationLayer = 4;
723 info.stationLayer = 12;
726 info.stationLayer = 13;
729 info.stationLayer = 14;
731 case StIndex::StUnknown:
732 case StIndex::StIndexMax:
733 ATH_MSG_WARNING(__func__<<
"(): "<<__LINE__<<
"Invalid station index passed");
741 if (
q)
info.nholes =
q->numberOfHoles();
756 constexpr
double a_locY{13.8269}, b_locY{1.23548}, c_locY{2.73400}, a_AYZ{12.0655}, b_AYZ{1.87578}, c_AYZ{1.88660}, width_locY{20.},
759 double dlocY =
info.resY;
760 double dAYZ =
info.dangleYZ;
762 double logLocY =
std::log(1 + std::abs(dlocY / width_locY));
763 double logAYZ =
std::log(1 + std::abs(dAYZ / width_AYZ));
765 info.RLocY = a_locY / (1. + b_locY * (logLocY) * (logLocY) + c_locY * (logLocY) * (logLocY) * (logLocY));
766 info.RAYZ = a_AYZ / (1. + b_AYZ * (logAYZ) * (logAYZ) + c_AYZ * (logAYZ) * (logAYZ) * (logAYZ));
774 if (pass) selected = 1;
777 info.selected = selected;
◆ nrTriggerHits()
◆ phiMatch()
Definition at line 228 of file MuTagMatchingTool.cxx.
235 const double deltaPhi = exTrkPos.deltaPhi(segPos);
237 double sigma_phi = 0.;
239 const AmgSymMatrix(5)& covAtCyl = *atSurface.covariance();
243 const AmgSymMatrix(5)& covAtPlane = *atSurface.covariance();
246 const AmgSymMatrix(5)& covAtDisc = *atSurface.covariance();
249 double errPhi = std::hypot(PHI_CUT, sigma_phi);
254 <<
" while the cut is set on " << std::setw(10) << errPhi);
◆ rMatch()
Definition at line 276 of file MuTagMatchingTool.cxx.
278 double L = exTrkPos.mag();
282 const double dPerp = std::abs(exTrkPos.perp() - segPos.perp());
286 ATH_MSG_DEBUG(std::setw(30) <<
"rough R failed: d_R = " << std::setw(10) << dPerp <<
" while the cut is set on "
287 << std::setw(10) << R_CUT);
◆ surfaceMatch()
◆ testExtrapolation()
Definition at line 363 of file MuTagMatchingTool.cxx.
369 const EventContext& ctx = Gaudi::Hive::currentContext();
370 const AmgVector(5)& oripars = oriPerigee->parameters();
372 std::unique_ptr<Trk::Perigee> pPerigee = std::make_unique<Trk::Perigee>(oripars[0], oripars[1], oripars[2], oripars[3], 0., periSurf, std::nullopt);
377 ATH_MSG_DEBUG(
"==============================================================================");
380 ATH_MSG_DEBUG(
"=== global position " << startPos.x() <<
" " << startPos.y() <<
" " << startPos.z());
381 ATH_MSG_DEBUG(
"=== global directn " << startMom.phi() <<
" " << startMom.theta());
383 std::unique_ptr<Trk::TrackParameters> alongPars{
386 ATH_MSG_DEBUG(
"======= EXTRAPOLATED ALONG MOMENTUM ORIGINAL PERIGEE");
391 ATH_MSG_DEBUG(
"=== global position " << alongPos.x() <<
" " << alongPos.y() <<
" " << alongPos.z());
392 ATH_MSG_DEBUG(
"=== global position phi theta " << alongPos.phi() <<
" " << alongPos.theta());
393 ATH_MSG_DEBUG(
"=== global directn " << alongMom.phi() <<
" " << alongMom.theta());
397 ATH_MSG_DEBUG(
"======= EXTRAPOLATED OPPOSITE MOMENTUM ORIGINAL PERIGEE");
398 std::unique_ptr<const Trk::TrackParameters> oppositePars{
403 ATH_MSG_DEBUG(
"=== global position " << oppositePos.x() <<
" " << oppositePos.y() <<
" " << oppositePos.z());
404 ATH_MSG_DEBUG(
"=== global position phi theta " << oppositePos.phi() <<
" " << oppositePos.theta());
405 ATH_MSG_DEBUG(
"=== global directn " << oppositeMom.phi() <<
" " << oppositeMom.theta());
410 std::unique_ptr<const Trk::Perigee> flippedPerigee =
flipDirection(*pPerigee);
411 const AmgVector(5)& flipPars = flippedPerigee->parameters();
417 ATH_MSG_DEBUG(
"=== parameters are " << flipPars[0] <<
" " << flipPars[1] <<
" " << flipPars[2] <<
" " << flipPars[3] <<
" "
419 ATH_MSG_DEBUG(
"=== global position " << flipPos.x() <<
" " << flipPos.y() <<
" " << flipPos.z());
420 ATH_MSG_DEBUG(
"=== global directn " << flipMom.phi() <<
" " << flipMom.theta());
422 std::unique_ptr<const Trk::TrackParameters> alongFlipPars{
425 ATH_MSG_DEBUG(
"======= EXTRAPOLATED ALONGFLIP MOMENTUM ORIGINAL PERIGEE");
427 const Amg::Vector3D alongFlipPos = alongFlipPars->position();
428 const Amg::Vector3D alongFlipMom = alongFlipPars->momentum();
429 ATH_MSG_DEBUG(
"=== global position " << alongFlipPos.x() <<
" " << alongFlipPos.y() <<
" " << alongFlipPos.z());
430 ATH_MSG_DEBUG(
"=== global position phi theta " << alongFlipPos.phi() <<
" " << alongFlipPos.theta());
431 ATH_MSG_DEBUG(
"=== global directn " << alongFlipMom.phi() <<
" " << alongFlipMom.theta());
435 ATH_MSG_DEBUG(
"======= EXTRAPOLATED OPPOSITEFLIP MOMENTUM ORIGINAL PERIGEE");
436 std::unique_ptr<const Trk::TrackParameters> oppositeFlipPars{
438 if (oppositeFlipPars) {
439 const Amg::Vector3D oppositeFlipPos = oppositeFlipPars->position();
440 const Amg::Vector3D oppositeFlipMom = oppositeFlipPars->momentum();
441 ATH_MSG_DEBUG(
"=== global position " << oppositeFlipPos.x() <<
" " << oppositeFlipPos.y() <<
" " << oppositeFlipPos.z());
442 ATH_MSG_DEBUG(
"=== global position phi theta " << oppositeFlipPos.phi() <<
" " << oppositeFlipPos.theta());
443 ATH_MSG_DEBUG(
"=== global directn " << oppositeFlipMom.phi() <<
" " << oppositeFlipMom.theta());
447 ATH_MSG_DEBUG(
"==============================================================================");
◆ thetaMatch()
Definition at line 263 of file MuTagMatchingTool.cxx.
267 const double dTheta = std::abs(exTrkPos.theta() - segPos.theta());
268 if (dTheta < THETA_CUT)
271 ATH_MSG_DEBUG(std::setw(30) <<
"roughTheta failed: d_theta = " << std::setw(10) << dTheta <<
" while the cut is set on "
272 << std::setw(10) << THETA_CUT);
◆ m_assumeLocalErrors
bool MuTagMatchingTool::m_assumeLocalErrors |
|
private |
◆ m_chamberPullCut
double MuTagMatchingTool::m_chamberPullCut |
|
private |
◆ m_combinedPullCut
double MuTagMatchingTool::m_combinedPullCut |
|
private |
◆ m_DetectorManagerKey
Initial value:{
this,
"DetectorManagerKey",
"MuonDetectorManager",
"Key of input MuonDetectorManager condition data",
}
Definition at line 155 of file MuTagMatchingTool.h.
◆ m_DIST_ANGLE
double MuTagMatchingTool::m_DIST_ANGLE |
|
private |
◆ m_DIST_POS
double MuTagMatchingTool::m_DIST_POS |
|
private |
◆ m_doDistCut
bool MuTagMatchingTool::m_doDistCut |
|
private |
◆ m_edmHelperSvc
Initial value:{
this,
"edmHelper",
"Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
"Handle to the service providing the IMuonEDMHelperSvc interface",
}
Definition at line 144 of file MuTagMatchingTool.h.
◆ m_ERROR_EX_ANGLE_CUT
double MuTagMatchingTool::m_ERROR_EX_ANGLE_CUT |
|
private |
◆ m_ERROR_EX_POS_CUT
double MuTagMatchingTool::m_ERROR_EX_POS_CUT |
|
private |
◆ m_extrapolatePerigee
bool MuTagMatchingTool::m_extrapolatePerigee |
|
private |
◆ m_GLOBAL_PHI_CUT
double MuTagMatchingTool::m_GLOBAL_PHI_CUT |
|
private |
◆ m_GLOBAL_R_CUT
double MuTagMatchingTool::m_GLOBAL_R_CUT |
|
private |
◆ m_GLOBAL_THETA_CUT
double MuTagMatchingTool::m_GLOBAL_THETA_CUT |
|
private |
◆ m_hitSummaryTool
Initial value:{
this,
"MuonSegmentHitSummary",
"Muon::MuonSegmentHitSummaryTool/MuonSegmentHitSummaryTool",
}
Definition at line 123 of file MuTagMatchingTool.h.
◆ m_idHelperSvc
Initial value:{
this,
"MuonIdHelperSvc",
"Muon::MuonIdHelperSvc/MuonIdHelperSvc",
}
Definition at line 139 of file MuTagMatchingTool.h.
◆ m_IExtrapolator
Initial value:{
this,
"IExtrapolator",
"Trk::Extrapolator/AtlasExtrapolator",
}
Pointer on IExtrapolator.
Definition at line 112 of file MuTagMatchingTool.h.
◆ m_MATCH_PHI
double MuTagMatchingTool::m_MATCH_PHI |
|
private |
◆ m_MATCH_PHIANGLE
double MuTagMatchingTool::m_MATCH_PHIANGLE |
|
private |
◆ m_MATCH_THETA
double MuTagMatchingTool::m_MATCH_THETA |
|
private |
◆ m_MATCH_THETAANGLE
double MuTagMatchingTool::m_MATCH_THETAANGLE |
|
private |
◆ m_printer
◆ m_propagator
Initial value:{
this,
"Propagator",
"Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator",
}
Pointer on propagator for SL propagation.
Definition at line 117 of file MuTagMatchingTool.h.
◆ m_pullCalculator
Initial value:{
this,
"ResidualPullCalculator",
"Trk::ResidualPullCalculator/ResidualPullCalculator",
}
Definition at line 133 of file MuTagMatchingTool.h.
◆ m_SAFE_PHI
double MuTagMatchingTool::m_SAFE_PHI |
|
private |
◆ m_SAFE_PHIANGLE
double MuTagMatchingTool::m_SAFE_PHIANGLE |
|
private |
◆ m_SAFE_THETA
double MuTagMatchingTool::m_SAFE_THETA |
|
private |
◆ m_SAFE_THETAANGLE
double MuTagMatchingTool::m_SAFE_THETAANGLE |
|
private |
◆ m_selectionTool
Initial value:{
this,
"MuonSegmentSelection",
"Muon::MuonSegmentSelectionTool/MuonSegmentSelectionTool",
}
Definition at line 128 of file MuTagMatchingTool.h.
◆ m_t0Location
std::string MuTagMatchingTool::m_t0Location |
|
private |
◆ m_trackingGeometryReadKey
Initial value:{this, "TrackingGeometryReadKey", "",
"Key of input TrackingGeometry"}
Definition at line 162 of file MuTagMatchingTool.h.
◆ p_StoreGateSvc
The documentation for this class was generated from the following files:
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
virtual const MdtPrepData * prepRawData() const override final
Returns the PrepRawData used to create this corrected measurement.
const Amg::Vector3D & position() const
Access method for the position.
const float EO[NO]
Energy levels for Oxygen.
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
@ Unbiased
RP with track state that has measurement not included.
bool const RAWDATA *ch2 const
bool empty() const
Test if the key is blank.
#define AmgSymMatrix(dim)
double angleYZ() const
access method for angle of local YZ projection
virtual const S & associatedSurface() const override final
Access to the Surface method.
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
double getActiveTubeLength(const int tubeLayer, const int tube) const
const std::vector< const Trk::MeasurementBase * > & containedMeasurements() const
returns the vector of Trk::MeasurementBase objects
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
represents the three-dimensional global direction with respect to a planar surface frame.
StIndex
enum to classify the different station layers in the muon spectrometer
@ NoField
Field is set to 0., 0., 0.,.
const Perigee * perigeeParameters() const
return Perigee.
Ensure that the ATLAS eigen extensions are properly loaded.
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
#define ATH_MSG_WARNING(x)
virtual const Trk::StraightLineSurface & associatedSurface() const override final
Returns the surface on which this measurement was taken.
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Identifier identify() const
return the identifier -extends MeasurementBase
double angleXZ() const
access method for angle of local XZ projection
constexpr int pow(int base, int exp) noexcept
virtual const MuonGM::MdtReadoutElement * detectorElement() const override
Returns the detector element corresponding to this PRD.
constexpr virtual SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
virtual double r() const =0
Interface method for the maximal extension or the radius.