ATLAS Offline Software
Loading...
Searching...
No Matches
IMuonHitSummaryTool.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_IMUONHITSUMMARYTOOL_H
6#define MUON_IMUONHITSUMMARYTOOL_H
7
8#include <iostream>
9#include <map>
10#include <set>
11
12#include "GaudiKernel/IAlgTool.h"
14
15namespace Trk {
16 class Track;
17 class TrackSummary;
18 class MuonTrackSummary;
19 class MeasurementBase;
20} // namespace Trk
21
22static const InterfaceID IID_IMuonHitSummaryTool("Muon::IMuonHitSummaryTool", 1, 0);
23
24namespace Muon {
25 class MuonSegment;
26
28 class IMuonHitSummaryTool : virtual public IAlgTool {
29 public:
30 struct HitSummary {
45
47 unsigned int nprecisionHits;
48 unsigned int nprecisionGoodHits;
49 unsigned int netaTriggerLayers;
50 unsigned int nphiLayers;
51 unsigned int netaPhiLayers;
52
54 unsigned int nprecisionHoles;
55 unsigned int netaTriggerHoleLayers;
56 unsigned int nphiHoleLayers;
57
59 unsigned int nprecisionOutliers;
60 unsigned int nprecisionCloseHits;
61 unsigned int noutBoundsHits;
62
63 // some basic info
65 bool isSmall;
66
67 std::string dump() const;
68 };
69
82
84 unsigned int nprecisionLayers;
85 unsigned int nphiLayers;
86 unsigned int ntrigEtaLayers;
87 unsigned int nprecisionHoleLayers;
88 unsigned int ntrigEtaHoleLayers;
89 unsigned int nphiHoleLayers;
90 unsigned int nprecisionGoodLayers;
91 bool isEndcap;
92 bool isSmall;
93
94 std::set<int> sectors;
95 std::map<MuonStationIndex::StIndex, HitSummary> stationLayers;
96 std::set<MuonStationIndex::PhiIndex> phiLayers;
97
98 std::string dump() const;
99 };
100
101 public:
103 static const InterfaceID& interfaceID();
104
109 virtual CompactSummary summary(const Trk::Track& track) const = 0;
110
116
122
127 virtual CompactSummary summary(const Muon::MuonSegment& segment) const = 0;
128
133 virtual CompactSummary summary(const std::vector<const Muon::MuonSegment*>& segments) const = 0;
134
139 virtual CompactSummary summary(const std::vector<const Trk::MeasurementBase*>& measurements) const = 0;
140 };
141
142 inline const InterfaceID& IMuonHitSummaryTool::interfaceID() { return IID_IMuonHitSummaryTool; }
143
144 inline std::string IMuonHitSummaryTool::CompactSummary::dump() const {
145 std::ostringstream sout;
146 sout << " IMuonHitSummaryTool::CompactSummary: sectors " << sectors.size() << std::endl << " sector indices: ";
147 for (std::set<int>::const_iterator it = sectors.begin(); it != sectors.end(); ++it) sout << " " << *it;
148
149 sout << std::endl << " StationLayers " << stationLayers.size();
150 for (std::map<MuonStationIndex::StIndex, HitSummary>::const_iterator it = stationLayers.begin(); it != stationLayers.end(); ++it) {
151 sout << std::endl << " " << MuonStationIndex::stName(it->first) << " " << it->second.dump();
152 }
153 sout << std::endl << " Phi layers " << phiLayers.size();
154 for (std::set<MuonStationIndex::PhiIndex>::const_iterator it = phiLayers.begin(); it != phiLayers.end(); ++it)
155 sout << " " << MuonStationIndex::phiName(*it);
156 return sout.str();
157 }
158
159 inline std::string IMuonHitSummaryTool::HitSummary::dump() const {
160 std::ostringstream sout;
161 sout << " precHits " << nprecisionHits << " etaTrigLay " << netaTriggerLayers << " phiLay " << nphiLayers << " etaPhiLay "
162 << netaPhiLayers << " precHoles " << nprecisionHoles << " etaTrigHoleLay " << netaTriggerHoleLayers << " phiHoleLay "
163 << nphiHoleLayers << " isEndcap " << isEndcap << " isSmall " << isSmall;
164 return sout.str();
165 }
166
167} // namespace Muon
168
169#endif // IMuonHitSummaryTool_H
static const InterfaceID IID_IMuonHitSummaryTool("Muon::IMuonHitSummaryTool", 1, 0)
This is the common class for 3D segments used in the muon spectrometer.
Interface for tools calculating hit count summaries for track.
virtual CompactSummary summary(const Trk::TrackSummary &summary) const =0
Calculate compact summary.
virtual CompactSummary summary(const Muon::MuonSegment &segment) const =0
Calculate compact summary.
static const InterfaceID & interfaceID()
IAlgTool interface.
virtual CompactSummary summary(const Trk::MuonTrackSummary &summary) const =0
Calculate compact summary.
virtual CompactSummary summary(const std::vector< const Trk::MeasurementBase * > &measurements) const =0
Calculate compact summary.
virtual CompactSummary summary(const Trk::Track &track) const =0
Calculate compact summary.
virtual CompactSummary summary(const std::vector< const Muon::MuonSegment * > &segments) const =0
Calculate compact summary.
This is the common class for 3D segments used in the muon spectrometer.
This class is the pure abstract base class for all fittable tracking measurements.
Detailed track summary for the muon system Give access to hit counts per chamber.
A summary of the information contained by a track.
const std::string & stName(StIndex index)
convert StIndex into a string
const std::string & phiName(PhiIndex index)
convert PhiIndex into a string
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.
unsigned int nphiHoleLayers
number of eta trigger layer holes
unsigned int nprecisionGoodLayers
number of phi layer holes
std::map< MuonStationIndex::StIndex, HitSummary > stationLayers
std::set< int > sectors
true if non-deweighted chambers are small
unsigned int ntrigEtaLayers
number of phi layers
bool isSmall
true if non-deweighted chambers are in endcap
unsigned int ntrigEtaHoleLayers
number of precision holes
unsigned int nphiLayers
number of precision layers
unsigned int nprecisionHoleLayers
number of eta trigger layers
bool isEndcap
number of precision layers not deweighted
std::set< MuonStationIndex::PhiIndex > phiLayers
unsigned int nprecisionHoles
number of paired eta/phi trigger layers
unsigned int nphiHoleLayers
number of eta trigger layer holes
unsigned int nprecisionCloseHits
number of outliers hits
unsigned int netaTriggerHoleLayers
number of precision holes
unsigned int noutBoundsHits
number of close hits hits
unsigned int nprecisionGoodHits
number of precision hits
unsigned int netaTriggerLayers
number of precision hits that are not deweighted
bool isEndcap
number of out of bounds hits
unsigned int netaPhiLayers
number of phi layers
unsigned int nprecisionOutliers
number of phi layer holes
unsigned int nphiLayers
number of eta trigger layers