ATLAS Offline Software
Loading...
Searching...
No Matches
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
23class MsgStream;
24
25namespace Trk {
27class MeasurementBase;
28} // namespace Trk
29
30namespace MuonGM {
32}
33
34namespace Muon {
35
36class MuonSegment;
42 public:
44 MuonSegmentInOverlapResolvingTool(const std::string&, const std::string&, const IInterface*);
45
48
50 StatusCode initialize();
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
Scalar phi() const
phi method
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
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
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
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
PublicToolHandle< MuonEDMPrinterTool > m_printer
EDM printer tool.
Amg::Vector3D estimateSegmentDirection(const MuonSegment &seg1, const MuonSegment &seg2, double &phi, double &stereoangle) const
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...
SegmentGeometrySummary segmentGeometrySummary(const MuonSegment &seg) const
calculate geometrical information for a segment
MuonSegmentInOverlapResolvingTool(const std::string &, const std::string &, const IInterface *)
constructor
ToolHandle< Trk::IResidualPullCalculator > m_pullCalculator
SegmentMatchResult matchResult(const EventContext &ctx, const MuonSegment &seg1, const MuonSegment &seg2) const
performance match and return result
Trk::MagneticFieldProperties m_magFieldProperties
magnetic field properties
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...
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
EDM Helper tool.
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...
This is the common class for 3D segments used in the muon spectrometer.
magnetic field properties to steer the behavior of the extrapolation
This class is the pure abstract base class for all fittable tracking measurements.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the Athena extensions are properly loaded.
Definition GeoMuonHits.h:27
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.