ATLAS Offline Software
MuonSegmentInOverlapResolvingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUON_MUONSEGMENTSOVERLAPRESOLVINGTOOL_H
6 #define MUON_MUONSEGMENTSOVERLAPRESOLVINGTOOL_H
7 
8 #include <string>
9 #include <vector>
10 
12 #include "GaudiKernel/ServiceHandle.h"
13 #include "GaudiKernel/ToolHandle.h"
22 
23 class MsgStream;
24 
25 namespace Trk {
26 class MagneticFieldProperties;
27 class MeasurementBase;
28 } // namespace Trk
29 
30 namespace MuonGM {
31 class MdtReadoutElement;
32 }
33 
34 namespace Muon {
35 
36 class MuonSegment;
42  public:
44  MuonSegmentInOverlapResolvingTool(const std::string&, const std::string&, const IInterface*);
45 
48 
51 
53  SegmentMatchResult matchResult(const EventContext& ctx, const MuonSegment& seg1, const MuonSegment& seg2) const;
54 
58  SegmentPositionMatchResult bestPositionAlongTubeMatch(const MuonSegment& seg1, const MuonSegment& seg2,
59  const Amg::Vector3D& segDir1Min) const;
60 
63  SegmentPhiMatchResult bestPhiMatch(const MuonSegment& seg1, const MuonSegment& seg2) const;
64 
67  SegmentPhiMatchResult bestPhiMatchAnalytic(const MuonSegment& seg1, const MuonSegment& seg2) const;
68 
70  Amg::Vector3D updateSegmentDirection(const MuonSegment& seg, double phi) const;
71 
73  SegmentGeometrySummary segmentGeometrySummary(const MuonSegment& seg) const;
74 
75  private:
77  double checkPhiHitConsistency(const EventContext& ctx, const Muon::MuonSegment& segment, SegmentPhiMatchResult& phiMatchResult,
78  SegmentPositionMatchResult& matchResult) const;
79 
80  Amg::Vector3D estimateSegmentDirection(const MuonSegment& seg1, const MuonSegment& seg2, double& phi,
81  double& stereoangle) const;
82 
84  this,
85  "MuonIdHelperSvc",
86  "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
87  };
89  this,
90  "edmHelper",
91  "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
92  "Handle to the service providing the IMuonEDMHelperSvc interface",
93  };
94 
95  PublicToolHandle<MuonEDMPrinterTool> m_printer{
96  this,
97  "Printer",
98  "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
99  };
100  ToolHandle<Trk::IPropagator> m_propagator{
101  this,
102  "AtlasRungeKuttaPropagator",
103  "Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator",
104  };
105  ToolHandle<Trk::IResidualPullCalculator> m_pullCalculator{
106  this,
107  "ResidualPullCalculator",
108  "Trk::ResidualPullCalculator/ResidualPullCalculator",
109  };
110 
112 };
113 
114 } // namespace Muon
115 
116 #endif
Muon::MuonSegmentInOverlapResolvingTool::estimateSegmentDirection
Amg::Vector3D estimateSegmentDirection(const MuonSegment &seg1, const MuonSegment &seg2, double &phi, double &stereoangle) const
Definition: MuonSegmentInOverlapResolvingTool.cxx:69
Muon::MuonSegmentInOverlapResolvingTool::checkPhiHitConsistency
double checkPhiHitConsistency(const EventContext &ctx, const Muon::MuonSegment &segment, SegmentPhiMatchResult &phiMatchResult, SegmentPositionMatchResult &matchResult) const
compare phi hits with segment parameters, return average pull of the phi hits
Definition: MuonSegmentInOverlapResolvingTool.cxx:492
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
Muon::MuonSegmentInOverlapResolvingTool::m_printer
PublicToolHandle< MuonEDMPrinterTool > m_printer
EDM printer tool.
Definition: MuonSegmentInOverlapResolvingTool.h:95
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
MuonEDMPrinterTool.h
Muon::MuonSegmentInOverlapResolvingTool::m_propagator
ToolHandle< Trk::IPropagator > m_propagator
Definition: MuonSegmentInOverlapResolvingTool.h:100
Muon::MuonSegmentInOverlapResolvingTool::MuonSegmentInOverlapResolvingTool
MuonSegmentInOverlapResolvingTool(const std::string &, const std::string &, const IInterface *)
constructor
Definition: MuonSegmentInOverlapResolvingTool.cxx:20
IPropagator.h
Muon::MuonSegmentInOverlapResolvingTool::m_edmHelperSvc
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
EDM Helper tool.
Definition: MuonSegmentInOverlapResolvingTool.h:88
Muon::IMuonSegmentInOverlapResolvingTool
tool to match segments
Definition: IMuonSegmentInOverlapResolvingTool.h:30
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
xAOD::MuonSegment
MuonSegment_v1 MuonSegment
Reference the current persistent version:
Definition: Event/xAOD/xAODMuon/xAODMuon/MuonSegment.h:13
Muon::MuonSegmentInOverlapResolvingTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonSegmentInOverlapResolvingTool.h:83
MagneticFieldProperties.h
Muon::MuonSegmentInOverlapResolvingTool::matchResult
SegmentMatchResult matchResult(const EventContext &ctx, const MuonSegment &seg1, const MuonSegment &seg2) const
performance match and return result
Definition: MuonSegmentInOverlapResolvingTool.cxx:456
GeoPrimitives.h
Muon::MuonSegmentInOverlapResolvingTool::initialize
StatusCode initialize()
AlgTool initilize.
Definition: MuonSegmentInOverlapResolvingTool.cxx:28
Muon::MuonSegmentInOverlapResolvingTool::m_magFieldProperties
Trk::MagneticFieldProperties m_magFieldProperties
magnetic field properties
Definition: MuonSegmentInOverlapResolvingTool.h:111
IMuonSegmentInOverlapResolvingTool.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Muon::MuonSegmentInOverlapResolvingTool::updateSegmentDirection
Amg::Vector3D updateSegmentDirection(const MuonSegment &seg, double phi) const
recalculate the segment direction give a new angle phi, keeps the angle in the precision plane fixed
Definition: MuonSegmentInOverlapResolvingTool.cxx:42
AthAlgTool.h
Muon::MuonSegmentInOverlapResolvingTool::bestPositionAlongTubeMatch
SegmentPositionMatchResult bestPositionAlongTubeMatch(const MuonSegment &seg1, const MuonSegment &seg2, const Amg::Vector3D &segDir1Min) const
calculate the position along a tube direction of the first segment that results in the smallest posit...
Definition: MuonSegmentInOverlapResolvingTool.cxx:305
IMuonEDMHelperSvc.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Muon::MuonSegmentInOverlapResolvingTool::bestPhiMatch
SegmentPhiMatchResult bestPhiMatch(const MuonSegment &seg1, const MuonSegment &seg2) const
calculate the angle phi for which the angular residual in the precision plane of the second segment i...
Definition: MuonSegmentInOverlapResolvingTool.cxx:275
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
IResidualPullCalculator.h
Muon::MuonSegmentInOverlapResolvingTool::m_pullCalculator
ToolHandle< Trk::IResidualPullCalculator > m_pullCalculator
Definition: MuonSegmentInOverlapResolvingTool.h:105
Muon::MuonSegmentInOverlapResolvingTool
tool to match segments
Definition: MuonSegmentInOverlapResolvingTool.h:41
Muon::MuonSegmentInOverlapResolvingTool::~MuonSegmentInOverlapResolvingTool
virtual ~MuonSegmentInOverlapResolvingTool()
destructor
Definition: MuonSegmentInOverlapResolvingTool.h:47
Muon::MuonSegmentInOverlapResolvingTool::bestPhiMatchAnalytic
SegmentPhiMatchResult bestPhiMatchAnalytic(const MuonSegment &seg1, const MuonSegment &seg2) const
calculate the angle phi for which the angular residual in the precision plane of the second segment i...
Definition: MuonSegmentInOverlapResolvingTool.cxx:194
Muon::MuonSegment
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:45
AthAlgTool
Definition: AthAlgTool.h:26
Muon::MuonSegmentInOverlapResolvingTool::segmentGeometrySummary
SegmentGeometrySummary segmentGeometrySummary(const MuonSegment &seg) const
calculate geometrical information for a segment
Definition: MuonSegmentInOverlapResolvingTool.cxx:414
IMuonIdHelperSvc.h
NSWL1::PadTriggerAdapter::segment
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
Definition: PadTriggerAdapter.cxx:5
ServiceHandle< Muon::IMuonIdHelperSvc >