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