ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCombined::MuonDressingTool Class Reference

#include <MuonDressingTool.h>

Inheritance diagram for MuonCombined::MuonDressingTool:
Collaboration diagram for MuonCombined::MuonDressingTool:

Public Member Functions

 ~MuonDressingTool ()=default
StatusCode initialize () override
void addMuonHitSummary (xAOD::Muon &muon, const Trk::TrackSummary *summary=0) const override

Private Attributes

ToolHandle< Muon::IMuonHitSummaryToolm_hitSummaryTool {this, "MuonHitSummaryTool", "Muon::MuonHitSummaryTool/MuonHitSummaryTool"}
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}

Detailed Description

Definition at line 21 of file MuonDressingTool.h.

Constructor & Destructor Documentation

◆ ~MuonDressingTool()

MuonCombined::MuonDressingTool::~MuonDressingTool ( )
default

Member Function Documentation

◆ addMuonHitSummary()

void MuonCombined::MuonDressingTool::addMuonHitSummary ( xAOD::Muon & muon,
const Trk::TrackSummary * summary = 0 ) const
override

Now fill the hit summary per technology

Definition at line 20 of file MuonDressingTool.cxx.

20 {
21
22
23 if (!trackSummary && (muon.muonType() != xAOD::Muon::MuonType::SegmentTagged &&
24 muon.muonType() != xAOD::Muon::MuonType::CaloTagged ) ) {
25 // get link to track particle
26 const xAOD::TrackParticle* primTrk = muon.primaryTrackParticle();
27 if (primTrk->track()) {
28 trackSummary = primTrk->track()->trackSummary();
29 }
30 }
31
34
37
38 auto incrementPrecSummary = [&](const Identifier chId, const uint8_t hits, const uint8_t holes) {
39 const ChIndex chIdx = m_idHelperSvc->chamberIndex(chId);
40 switch (toLayerIndex(chIdx)) {
41 case LayerIndex::Inner:
42 (isSmall(chIdx) ? innerSmallHits : innerLargeHits) += hits;
43 (isSmall(chIdx) ? innerSmallHoles : innerLargeHoles) += holes;
44 break;
45 case LayerIndex::Middle:
46 (isSmall(chIdx) ? middleSmallHits : middleLargeHits) += hits;
47 (isSmall(chIdx) ? middleSmallHoles : middleLargeHoles) += holes;
48 break;
49 case LayerIndex::Outer:
50 (isSmall(chIdx) ? outerSmallHits : outerLargeHits) += hits;
51 (isSmall(chIdx) ? outerSmallHoles : outerLargeHoles) += holes;
52 break;
53 case LayerIndex::Extended:
54 (isSmall(chIdx) ? extendedSmallHits : extendedLargeHits) += hits;
55 (isSmall(chIdx) ? extendedSmallHoles : extendedLargeHoles) += holes;
56 break;
57 case LayerIndex::BarrelExtended:
60 break;
61 case LayerIndex::LayerIndexMax:
62 case LayerIndex::LayerUnknown:
63 ATH_MSG_WARNING("Unknown ChamberIndex " << chName(chIdx));
64 break;
65 }
66 };
67
68
69
72
75
78
81
84
87
90
93
94 auto incrementTrigSummary = [&](const Identifier& chId,
95 const uint8_t etaHits, const uint8_t etaHoles,
96 const uint8_t phiHits, const uint8_t phiHoles) {
97 const PhiIndex phiIndex = m_idHelperSvc->phiIndex(chId);
98 switch (phiIndex) {
99 case PhiIndex::BI1:
100 case PhiIndex::BM1:
101 case PhiIndex::T4:
102 case PhiIndex::CSC:
103 case PhiIndex::STGC1:
104 phiLayer1Hits += phiHits; phiLayer1Holes += phiHoles;
105 etaLayer1Hits += etaHits; etaLayer1Holes += etaHoles;
106 break;
107 case PhiIndex::BI2:
108 case PhiIndex::BM2:
109 case PhiIndex::T1:
110 case PhiIndex::STGC2:
111 phiLayer2Hits += phiHits; phiLayer2Holes += phiHoles;
112 etaLayer2Hits += etaHits; etaLayer2Holes += etaHoles;
113 break;
114 case PhiIndex::BO1:
115 case PhiIndex::T2:
116 phiLayer3Hits += phiHits; phiLayer3Holes += phiHoles;
117 etaLayer3Hits += etaHits; etaLayer3Holes += etaHoles;
118 break;
119 case PhiIndex::BO2:
120 case PhiIndex::T3:
121 phiLayer4Hits += phiHits; phiLayer4Holes += phiHoles;
122 etaLayer4Hits += etaHits; etaLayer4Holes += etaHoles;
123 break;
124
125 case PhiIndex::PhiIndexMax:
126 case PhiIndex::PhiUnknown:
127 ATH_MSG_WARNING("Unknown ChamberIndex" << Muon::MuonStationIndex::phiName(phiIndex));
128 break;
129 }
131 switch (phiIndex) {
132 case PhiIndex::PhiIndexMax:
133 case PhiIndex::PhiUnknown:
134 case PhiIndex::CSC:
135 ATH_MSG_WARNING("Unknown ChamberIndex" << Muon::MuonStationIndex::phiName(phiIndex));
136 break;
137 case PhiIndex::BI1:
138 case PhiIndex::BI2:
139 ATH_MSG_VERBOSE("BI chambers "<<m_idHelperSvc->toString(chId)<<" are not part of the summary");
140 break;
141 case PhiIndex::BM1:
142 phiLayer1RPCHits += phiHits; etaLayer1RPCHits += etaHits;
143 phiLayer1RPCHoles += phiHoles; etaLayer1RPCHoles += etaHoles;
144 break;
145 case PhiIndex::BM2:
146 phiLayer2RPCHits += phiHits; etaLayer2RPCHits += etaHits;
147 phiLayer2RPCHoles += phiHoles; etaLayer2RPCHoles += etaHoles;
148 break;
149 case PhiIndex::BO1:
150 phiLayer3RPCHits += phiHits; etaLayer3RPCHits += etaHits;
151 phiLayer3RPCHoles += phiHoles; etaLayer3RPCHoles += etaHoles;
152 break;
153 case PhiIndex::BO2:
154 phiLayer4RPCHits += phiHits; etaLayer4RPCHits += etaHits;
155 phiLayer4RPCHoles += phiHoles; etaLayer4RPCHoles += etaHoles;
156 break;
157 case PhiIndex::T4:
158 phiLayer1TGCHits += phiHits; etaLayer1TGCHits += etaHits;
159 phiLayer1TGCHoles += phiHoles; etaLayer1TGCHoles += etaHoles;
160 break;
161 case PhiIndex::T1:
162 phiLayer2TGCHits += phiHits; etaLayer2TGCHits += etaHits;
163 phiLayer2TGCHoles += phiHoles; etaLayer2TGCHoles += etaHoles;
164 break;
165 case PhiIndex::T2:
166 phiLayer3TGCHits += phiHits; etaLayer3TGCHits += etaHits;
167 phiLayer3TGCHoles += phiHoles; etaLayer3TGCHoles += etaHoles;
168 break;
169 case PhiIndex::T3:
170 phiLayer4TGCHits += phiHits; etaLayer4TGCHits += etaHits;
171 phiLayer4TGCHoles += phiHoles; etaLayer4TGCHoles += etaHoles;
172 break;
173 case PhiIndex::STGC1:
174 phiLayer1STGCHits += phiHits; etaLayer1STGCHits += etaHits;
175 phiLayer1STGCHoles += phiHoles; etaLayer1STGCHoles += etaHoles;
176 break;
177 case PhiIndex::STGC2:
178 phiLayer2STGCHits += phiHits; etaLayer2STGCHits += etaHits;
179 phiLayer2STGCHoles += phiHoles; etaLayer2STGCHoles += etaHoles;
180 break;
181 }
182 };
183
184 uint8_t innerCloseHits{0}, middleCloseHits{0}, outerCloseHits{0}, extendedCloseHits{0};
185 uint8_t innerOutBoundsHits{0}, middleOutBoundsHits{0}, outerOutBoundsHits{0}, extendedOutBoundsHits{0};
186
187 uint8_t combinedTrackOutBoundsHits{0};
188
191
193
194
195 uint8_t mainSector{0}, secondSector{0}, isEndcap{0}, isSmall{0};
196
198
199
200
201 if (trackSummary) {
202 Muon::IMuonHitSummaryTool::CompactSummary summary = m_hitSummaryTool->summary(*trackSummary);
203 mainSector = secondSector = summary.mainSector;
204
205 for (auto sec : summary.sectors) {
206 if (sec != summary.mainSector) {
207 secondSector = sec;
208 }
209 }
210
211 numberOfPrecisionLayers = summary.nprecisionLayers;
212 numberOfPrecisionHoleLayers = summary.nprecisionHoleLayers;
213 numberOfPhiLayers = summary.nphiLayers;
214 numberOfPhiHoleLayers = summary.nphiHoleLayers;
215 numberOfTriggerEtaLayers = summary.ntrigEtaLayers;
216 numberOfTriggerEtaHoleLayers = summary.ntrigEtaHoleLayers;
217 numberOfGoodPrecisionLayers = summary.nprecisionGoodLayers;
218
219 isEndcap = (summary.isEndcap);
220 isSmall = (summary.isSmall);
221
222 for (auto layer : summary.stationLayers) {
223 combinedTrackOutBoundsHits += layer.second.noutBoundsHits;
224 switch (layer.first) {
225 case StIndex::BI:
226 case StIndex::EI:
227 innerCloseHits += layer.second.nprecisionCloseHits;
228 break;
229 case StIndex::BM:
230 case StIndex::EM:
231 middleCloseHits += layer.second.nprecisionCloseHits;
232 break;
233 case StIndex::BO:
234 case StIndex::EO:
235 outerCloseHits += layer.second.nprecisionCloseHits;
236 break;
237 case StIndex::BE:
238 case StIndex::EE:
239 extendedCloseHits += layer.second.nprecisionCloseHits;
240 break;
241 case StIndex::StUnknown:
242 case StIndex::StIndexMax:
243 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" Unexpected st index");
244 break;
245 }
246 }
247
248 // get out-of-bounds from ME track, shouldn't be any on combined track anyway
249 const xAOD::TrackParticle* MStrk = muon.trackParticle(xAOD::Muon::TrackParticleType::MuonSpectrometerTrackParticle);
250 if (MStrk && MStrk->track() && MStrk->track()->trackSummary()) {
251 for (const auto& layer : m_hitSummaryTool->summary(*MStrk->track()->trackSummary()).stationLayers) {
252 switch (layer.first) {
253 case StIndex::BI:
254 case StIndex::EI:
255 innerOutBoundsHits += layer.second.noutBoundsHits;
256 break;
257 case StIndex::EM:
258 case StIndex::BM:
259 middleOutBoundsHits += layer.second.noutBoundsHits;
260 break;
261 case StIndex::EO:
262 case StIndex::BO:
263 outerOutBoundsHits += layer.second.noutBoundsHits;
264 break;
265 case StIndex::BE:
266 case StIndex::EE:
267 extendedOutBoundsHits += layer.second.noutBoundsHits;
268 break;
269 case StIndex::StUnknown:
270 case StIndex::StIndexMax:
271 ATH_MSG_WARNING("Station index should not be unknown or max");
272 break;
273 }
274 }
275 }
276
277 if (trackSummary->muonTrackSummary()) {
278 const Trk::MuonTrackSummary& mts = *trackSummary->muonTrackSummary();
279 // loop over chambers
280 for (const Trk::MuonTrackSummary::ChamberHitSummary& summary : mts.chamberHitSummary()) {
281 switch (m_idHelperSvc->technologyIndex(summary.chamberId())) {
282 case TechnologyIndex::TechnologyUnknown:
283 case TechnologyIndex::TechnologyIndexMax:
284 ATH_MSG_WARNING("Unkown technology");
285 break;
286 case TechnologyIndex::MDT:{
287 incrementPrecSummary(summary.chamberId(), summary.nhits(), summary.nholes());
288 break;
289 } case TechnologyIndex::CSC:{
290 incrementPrecSummary(summary.chamberId(), summary.netaHits(), summary.etaProjection().nholes);
291 cscEtaHits += summary.etaProjection().nhits;
292 cscUnspoiledEtaHits += summary.etaProjection().ngoodHits;
293 break;
294 } case TechnologyIndex::MM:{
295 incrementPrecSummary(summary.chamberId(), summary.nhits(), summary.nholes());
296 MMHits += summary.nhits();
297 MMHoles += summary.nholes();
298 break;
299 } case TechnologyIndex::STGC:{
300 incrementPrecSummary(summary.chamberId(), summary.netaHits(), summary.etaProjection().nholes);
301 incrementTrigSummary(summary.chamberId(),
302 summary.netaHits(), summary.etaProjection().nholes,
303 summary.nphiHits(), summary.phiProjection().nholes);
304 break;
305 } case TechnologyIndex::RPC:
306 case TechnologyIndex::TGC: {
307 incrementTrigSummary(summary.chamberId(),
308 summary.netaHits(), summary.etaProjection().nholes,
309 summary.nphiHits(), summary.phiProjection().nholes);
310 break;
311 }
312 }
313 }
314 }
315 }
316
317 muon.setSummaryValue(numberOfPrecisionLayers, xAOD::numberOfPrecisionLayers);
318 muon.setSummaryValue(numberOfPrecisionHoleLayers, xAOD::numberOfPrecisionHoleLayers);
319 muon.setSummaryValue(numberOfPhiLayers, xAOD::numberOfPhiLayers);
320 muon.setSummaryValue(numberOfPhiHoleLayers, xAOD::numberOfPhiHoleLayers);
321 muon.setSummaryValue(numberOfTriggerEtaLayers, xAOD::numberOfTriggerEtaLayers);
322 muon.setSummaryValue(numberOfTriggerEtaHoleLayers, xAOD::numberOfTriggerEtaHoleLayers);
323 muon.setSummaryValue(numberOfGoodPrecisionLayers, xAOD::numberOfGoodPrecisionLayers);
324
325 muon.setSummaryValue(mainSector, xAOD::primarySector);
326 muon.setSummaryValue(secondSector, xAOD::secondarySector);
327 muon.setSummaryValue(innerSmallHits, xAOD::innerSmallHits);
328 muon.setSummaryValue(innerLargeHits, xAOD::innerLargeHits);
329 muon.setSummaryValue(middleSmallHits, xAOD::middleSmallHits);
330 muon.setSummaryValue(middleLargeHits, xAOD::middleLargeHits);
331 muon.setSummaryValue(outerSmallHits, xAOD::outerSmallHits);
332 muon.setSummaryValue(outerLargeHits, xAOD::outerLargeHits);
333 muon.setSummaryValue(extendedSmallHits, xAOD::extendedSmallHits);
334 muon.setSummaryValue(extendedLargeHits, xAOD::extendedLargeHits);
335
336 muon.setSummaryValue(innerSmallHoles, xAOD::innerSmallHoles);
337 muon.setSummaryValue(innerLargeHoles, xAOD::innerLargeHoles);
338 muon.setSummaryValue(middleSmallHoles, xAOD::middleSmallHoles);
339 muon.setSummaryValue(middleLargeHoles, xAOD::middleLargeHoles);
340 muon.setSummaryValue(outerSmallHoles, xAOD::outerSmallHoles);
341 muon.setSummaryValue(outerLargeHoles, xAOD::outerLargeHoles);
342 muon.setSummaryValue(extendedSmallHoles, xAOD::extendedSmallHoles);
343 muon.setSummaryValue(extendedLargeHoles, xAOD::extendedLargeHoles);
344
345 muon.setSummaryValue(phiLayer1Hits, xAOD::phiLayer1Hits);
346 muon.setSummaryValue(phiLayer2Hits, xAOD::phiLayer2Hits);
347 muon.setSummaryValue(phiLayer3Hits, xAOD::phiLayer3Hits);
348 muon.setSummaryValue(phiLayer4Hits, xAOD::phiLayer4Hits);
349
350 muon.setSummaryValue(etaLayer1Hits, xAOD::etaLayer1Hits);
351 muon.setSummaryValue(etaLayer2Hits, xAOD::etaLayer2Hits);
352 muon.setSummaryValue(etaLayer3Hits, xAOD::etaLayer3Hits);
353 muon.setSummaryValue(etaLayer4Hits, xAOD::etaLayer4Hits);
354
355 muon.setSummaryValue(phiLayer1Holes, xAOD::phiLayer1Holes);
356 muon.setSummaryValue(phiLayer2Holes, xAOD::phiLayer2Holes);
357 muon.setSummaryValue(phiLayer3Holes, xAOD::phiLayer3Holes);
358 muon.setSummaryValue(phiLayer4Holes, xAOD::phiLayer4Holes);
359
360 muon.setSummaryValue(etaLayer1Holes, xAOD::etaLayer1Holes);
361 muon.setSummaryValue(etaLayer2Holes, xAOD::etaLayer2Holes);
362 muon.setSummaryValue(etaLayer3Holes, xAOD::etaLayer3Holes);
363 muon.setSummaryValue(etaLayer4Holes, xAOD::etaLayer4Holes);
364
365 muon.setSummaryValue(phiLayer1RPCHits, xAOD::phiLayer1RPCHits);
366 muon.setSummaryValue(phiLayer2RPCHits, xAOD::phiLayer2RPCHits);
367 muon.setSummaryValue(phiLayer3RPCHits, xAOD::phiLayer3RPCHits);
368 muon.setSummaryValue(phiLayer4RPCHits, xAOD::phiLayer4RPCHits);
369
370 muon.setSummaryValue(etaLayer1RPCHits, xAOD::etaLayer1RPCHits);
371 muon.setSummaryValue(etaLayer2RPCHits, xAOD::etaLayer2RPCHits);
372 muon.setSummaryValue(etaLayer3RPCHits, xAOD::etaLayer3RPCHits);
373 muon.setSummaryValue(etaLayer4RPCHits, xAOD::etaLayer4RPCHits);
374
375 muon.setSummaryValue(phiLayer1RPCHoles, xAOD::phiLayer1RPCHoles);
376 muon.setSummaryValue(phiLayer2RPCHoles, xAOD::phiLayer2RPCHoles);
377 muon.setSummaryValue(phiLayer3RPCHoles, xAOD::phiLayer3RPCHoles);
378 muon.setSummaryValue(phiLayer4RPCHoles, xAOD::phiLayer4RPCHoles);
379
380 muon.setSummaryValue(etaLayer1RPCHoles, xAOD::etaLayer1RPCHoles);
381 muon.setSummaryValue(etaLayer2RPCHoles, xAOD::etaLayer2RPCHoles);
382 muon.setSummaryValue(etaLayer3RPCHoles, xAOD::etaLayer3RPCHoles);
383 muon.setSummaryValue(etaLayer4RPCHoles, xAOD::etaLayer4RPCHoles);
384
385 muon.setSummaryValue(phiLayer1TGCHits, xAOD::phiLayer1TGCHits);
386 muon.setSummaryValue(phiLayer2TGCHits, xAOD::phiLayer2TGCHits);
387 muon.setSummaryValue(phiLayer3TGCHits, xAOD::phiLayer3TGCHits);
388 muon.setSummaryValue(phiLayer4TGCHits, xAOD::phiLayer4TGCHits);
389
390 muon.setSummaryValue(etaLayer1TGCHits, xAOD::etaLayer1TGCHits);
391 muon.setSummaryValue(etaLayer2TGCHits, xAOD::etaLayer2TGCHits);
392 muon.setSummaryValue(etaLayer3TGCHits, xAOD::etaLayer3TGCHits);
393 muon.setSummaryValue(etaLayer4TGCHits, xAOD::etaLayer4TGCHits);
394
395 muon.setSummaryValue(phiLayer1TGCHoles, xAOD::phiLayer1TGCHoles);
396 muon.setSummaryValue(phiLayer2TGCHoles, xAOD::phiLayer2TGCHoles);
397 muon.setSummaryValue(phiLayer3TGCHoles, xAOD::phiLayer3TGCHoles);
398 muon.setSummaryValue(phiLayer4TGCHoles, xAOD::phiLayer4TGCHoles);
399
400 muon.setSummaryValue(etaLayer1TGCHoles, xAOD::etaLayer1TGCHoles);
401 muon.setSummaryValue(etaLayer2TGCHoles, xAOD::etaLayer2TGCHoles);
402 muon.setSummaryValue(etaLayer3TGCHoles, xAOD::etaLayer3TGCHoles);
403 muon.setSummaryValue(etaLayer4TGCHoles, xAOD::etaLayer4TGCHoles);
404
405 // New Small Wheel
406 // STGC
407 muon.setSummaryValue(phiLayer1STGCHits, xAOD::phiLayer1STGCHits);
408 muon.setSummaryValue(phiLayer2STGCHits, xAOD::phiLayer2STGCHits);
409
410 muon.setSummaryValue(etaLayer1STGCHits, xAOD::etaLayer1STGCHits);
411 muon.setSummaryValue(etaLayer2STGCHits, xAOD::etaLayer2STGCHits);
412
413 muon.setSummaryValue(phiLayer1STGCHoles, xAOD::phiLayer1STGCHoles);
414 muon.setSummaryValue(phiLayer2STGCHoles, xAOD::phiLayer2STGCHoles);
415
416 muon.setSummaryValue(etaLayer1STGCHoles, xAOD::etaLayer1STGCHoles);
417 muon.setSummaryValue(etaLayer2STGCHoles, xAOD::etaLayer2STGCHoles);
418
419 // MM
420 muon.setSummaryValue(MMHits, xAOD::MMHits);
421 muon.setSummaryValue(MMHoles, xAOD::MMHoles);
422
423 muon.setSummaryValue(innerCloseHits, xAOD::innerClosePrecisionHits);
424 muon.setSummaryValue(middleCloseHits, xAOD::middleClosePrecisionHits);
425 muon.setSummaryValue(outerCloseHits, xAOD::outerClosePrecisionHits);
426 muon.setSummaryValue(extendedCloseHits, xAOD::extendedClosePrecisionHits);
427
428 muon.setSummaryValue(innerOutBoundsHits, xAOD::innerOutBoundsPrecisionHits);
429 muon.setSummaryValue(middleOutBoundsHits, xAOD::middleOutBoundsPrecisionHits);
430 muon.setSummaryValue(outerOutBoundsHits, xAOD::outerOutBoundsPrecisionHits);
431 muon.setSummaryValue(extendedOutBoundsHits, xAOD::extendedOutBoundsPrecisionHits);
432
433 muon.setSummaryValue(combinedTrackOutBoundsHits, xAOD::combinedTrackOutBoundsPrecisionHits);
434
435 muon.setSummaryValue(isEndcap, xAOD::isEndcapGoodLayers);
436 muon.setSummaryValue(isSmall, xAOD::isSmallGoodSectors);
437
438 muon.setSummaryValue(cscEtaHits, xAOD::cscEtaHits);
439 muon.setSummaryValue(cscUnspoiledEtaHits, xAOD::cscUnspoiledEtaHits);
440 }
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ToolHandle< Muon::IMuonHitSummaryTool > m_hitSummaryTool
const std::vector< ChamberHitSummary > & chamberHitSummary() const
access to the vector of chamber hit summaries on the track
const Trk::TrackSummary * trackSummary() const
Returns a pointer to the const Trk::TrackSummary owned by this const track (could be nullptr).
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
PhiIndex
enum to classify the different phi layers in the muon spectrometer
bool isSmall(const ChIndex index)
Returns true if the chamber index is in a small sector.
const std::string & chName(ChIndex index)
convert ChIndex into a string
const std::string & phiName(PhiIndex index)
convert PhiIndex into a string
LayerIndex toLayerIndex(ChIndex index)
convert ChIndex into LayerIndex
ChIndex
enum to classify the different chamber layers in the muon spectrometer
@ layer
Definition HitInfo.h:79
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
Definition EtaPhiLUT.cxx:23
TrackParticle_v1 TrackParticle
Reference the current persistent version:
@ numberOfPrecisionLayers
layers with at least 3 hits [unit8_t].
@ numberOfTriggerEtaHoleLayers
layers with trigger eta holes but no hits [unit8_t].
@ numberOfPhiHoleLayers
layers with trigger phi holes but no hits [unit8_t].
@ numberOfTriggerEtaLayers
layers with trigger eta hits [unit8_t].
@ numberOfPhiLayers
layers with a trigger phi hit [unit8_t].
@ numberOfPrecisionHoleLayers
layers with holes AND no hits [unit8_t].
@ numberOfGoodPrecisionLayers
layers with at least 3 hits that are not deweighted [uint8_t]
@ phiLayer3TGCHoles
number of phi holes in the third TGC trigger layer (T2)
@ phiLayer3Hits
number of phi hits in the third trigger layer (BOL1 ot T2)
@ middleSmallHoles
number of precision holes in the middle small layer
@ cscEtaHits
number of CSC eta clusters on the track
@ etaLayer4RPCHits
number of eta hits in the fourth RPC trigger layer (BOL2)
@ phiLayer2TGCHits
number of phi hits in the second TGC trigger layer (T1)
@ outerSmallHits
number of precision hits in the outer small layer
@ etaLayer2TGCHoles
number of eta holes in the second TGC trigger layer (T1)
@ phiLayer1RPCHoles
number of phi holes in the first RPC trigger layer (BML1)
@ phiLayer2Hits
number of phi hits in the second trigger layer (BML2 ot T1)
@ phiLayer1TGCHits
number of phi hits in the first TGC trigger layer (T4)
@ middleSmallHits
number of precision hits in the middle small layer
@ etaLayer1RPCHits
number of eta hits in the first RPC trigger layer (BML1)
@ phiLayer2TGCHoles
number of phi holes in the second TGC trigger layer (T1)
@ phiLayer1RPCHits
number of phi hits in the first RPC trigger layer (BML1)
@ phiLayer4Holes
number of phi holes in the fourth trigger layer (T3)
@ middleClosePrecisionHits
number of close precision hits in the middle layer
@ etaLayer4RPCHoles
number of eta holes in the fourth RPC trigger layer (BOL2)
@ innerClosePrecisionHits
number of close precision hits in the inner layer
@ phiLayer4RPCHits
number of phi hits in the fourth RPC trigger layer (BOL2)
@ phiLayer2RPCHoles
number of phi holes in the second RPC trigger layer (BML2)
@ etaLayer3RPCHoles
number of eta holes in the third RPC trigger layer (BOL1)
@ etaLayer1TGCHits
number of eta hits in the first TGC trigger layer (T4)
@ phiLayer1Holes
number of phi holes in the first trigger layer (BML1 ot T4)
@ etaLayer2STGCHoles
number of eta holes in the second STGC trigger layer (STGC2)
@ outerLargeHits
number of precision hits in the outer large layer
@ phiLayer4RPCHoles
number of phi holes in the fourth RPC trigger layer (BOL2)
@ etaLayer2RPCHoles
number of eta holes in the second RPC trigger layer (BML2)
@ etaLayer4TGCHoles
number of eta holes in the fourth TGC trigger layer (T3)
@ phiLayer3RPCHoles
number of phi holes in the third RPC trigger layer (BOL1)
@ etaLayer1STGCHoles
number of eta holes in the first STGC trigger layer (STGC1)
@ primarySector
primary sector crossed by the muon
@ etaLayer3Hits
number of eta hits in the third trigger layer (BOL1 ot T2)
@ phiLayer1STGCHoles
number of phi holes in the first STGC trigger layer (STGC1)
@ etaLayer3Holes
number of eta holes in the third trigger layer (BOL1 ot T2)
@ secondarySector
secondary sector crossed by the muon (set to the primary if the muon only passed one sector)
@ middleLargeHits
number of precision hits in the middle large layer
@ outerClosePrecisionHits
number of close precision hits in the outer layer
@ etaLayer4TGCHits
number of eta hits in the fourth TGC trigger layer (T3)
@ etaLayer1RPCHoles
number of eta holes in the first RPC trigger layer (BML1)
@ phiLayer4TGCHoles
number of phi holes in the fourth TGC trigger layer (T3)
@ innerOutBoundsPrecisionHits
number of out-of-bounds hits in the inner layer
@ etaLayer1Hits
number of eta hits in the first trigger layer (BML1 ot T4)
@ phiLayer2Holes
number of phi holes in the second trigger layer (BML2 ot T1)
@ etaLayer3RPCHits
number of eta hits in the third RPC trigger layer (BOL1)
@ phiLayer1Hits
number of phi hits in the first trigger layer (BML1 ot T4)
@ isSmallGoodSectors
if non-deweighted track chambers are small
@ phiLayer3Holes
number of phi holes in the third trigger layer (BOL1 ot T2)
@ etaLayer4Holes
number of eta holes in the fourth trigger layer (T3)
@ extendedSmallHits
number of precision hits in the extended small layer
@ etaLayer1TGCHoles
number of eta holes in the first TGC trigger layer (T4)
@ phiLayer1TGCHoles
number of phi holes in the first TGC trigger layer (T4)
@ extendedLargeHits
number of precision hits in the extended large layer
@ etaLayer3TGCHits
number of eta hits in the third TGC trigger layer (T2)
@ phiLayer1STGCHits
number of phi hits in the first STGC trigger layer (STGC1)
@ phiLayer4Hits
number of phi hits in the fourth trigger layer (T3)
@ outerLargeHoles
number of precision holes in the outer large layer
@ extendedSmallHoles
number of precision holes in the extended small layer
@ innerLargeHits
number of precision hits in the inner large layer
@ middleLargeHoles
number of precision holes in the middle large layer
@ middleOutBoundsPrecisionHits
number of out-of-bounds hits in the middle layer
@ etaLayer2STGCHits
number of eta hits in the second STGC trigger layer (STGC2)
@ innerLargeHoles
number of precision holes in the inner large layer
@ phiLayer2RPCHits
number of phi hits in the second RPC trigger layer (BML2)
@ extendedClosePrecisionHits
number of close precision hits in the extended layer
@ etaLayer2RPCHits
number of eta hits in the second RPC trigger layer (BML2)
@ etaLayer4Hits
number of eta hits in the fourth trigger layer (T3)
@ etaLayer3TGCHoles
number of eta holes in the third TGC trigger layer (T2)
@ etaLayer1STGCHits
number of eta hits in the first STGC trigger layer (STGC1)
@ etaLayer2TGCHits
number of eta hits in the second TGC trigger layer (T1)
@ etaLayer2Holes
number of eta holes in the second trigger layer (BML2 ot T1)
@ phiLayer2STGCHits
number of phi hits in the second STGC trigger layer (STGC2)
@ phiLayer3RPCHits
number of phi hits in the third RPC trigger layer (BOL1)
@ etaLayer2Hits
number of eta hits in the second trigger layer (BML2 ot T1)
@ innerSmallHoles
number of precision holes in the inner small layer
@ phiLayer4TGCHits
number of phi hits in the fourth TGC trigger layer (T3)
@ etaLayer1Holes
number of eta holes in the first trigger layer (BML1 ot T4)
@ extendedLargeHoles
number of precision holes in the extended large layer
@ phiLayer3TGCHits
number of phi hits in the third TGC trigger layer (T2)
@ combinedTrackOutBoundsPrecisionHits
total out-of-bounds hits on the combined track
@ cscUnspoiledEtaHits
number of unspoiled CSC eta clusters on track
@ extendedOutBoundsPrecisionHits
number of out-of-bounds hits in the extended layer
@ outerOutBoundsPrecisionHits
number of out-of-bounds hits in the outer layer
@ phiLayer2STGCHoles
number of phi holes in the second STGC trigger layer (STGC2)
@ isEndcapGoodLayers
if non-deweighted track chambers are in endcap
@ outerSmallHoles
number of precision holes in the outer small layer
@ innerSmallHits
number of precision hits in the inner small layer

◆ initialize()

StatusCode MuonCombined::MuonDressingTool::initialize ( )
override

Definition at line 14 of file MuonDressingTool.cxx.

14 {
15 ATH_CHECK(m_hitSummaryTool.retrieve());
16 ATH_CHECK(m_idHelperSvc.retrieve());
17 return StatusCode::SUCCESS;
18 }
#define ATH_CHECK
Evaluate an expression and check for errors.

Member Data Documentation

◆ m_hitSummaryTool

ToolHandle<Muon::IMuonHitSummaryTool> MuonCombined::MuonDressingTool::m_hitSummaryTool {this, "MuonHitSummaryTool", "Muon::MuonHitSummaryTool/MuonHitSummaryTool"}
private

Definition at line 31 of file MuonDressingTool.h.

31{this, "MuonHitSummaryTool", "Muon::MuonHitSummaryTool/MuonHitSummaryTool"};

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> MuonCombined::MuonDressingTool::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 32 of file MuonDressingTool.h.

32{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};

The documentation for this class was generated from the following files: