20 {
21
22
23 if (!trackSummary && (
muon.muonType() != xAOD::Muon::SegmentTagged &&
muon.muonType() != xAOD::Muon::CaloTagged ) ) {
24
26 if (primTrk->
track()) {
28 }
29 }
30
33
36
40 case LayerIndex::Inner:
43 break;
44 case LayerIndex::Middle:
47 break;
48 case LayerIndex::Outer:
51 break;
52 case LayerIndex::Extended:
55 break;
56 case LayerIndex::BarrelExtended:
59 break;
60 case LayerIndex::LayerIndexMax:
61 case LayerIndex::LayerUnknown:
63 break;
64 }
65 };
66
67
68
71
74
77
80
83
86
89
92
93 auto incrementTrigSummary = [&](const Identifier& chId,
97 switch (phiIndex) {
98 case PhiIndex::BI1:
99 case PhiIndex::BM1:
100 case PhiIndex::T4:
101 case PhiIndex::CSC:
102 case PhiIndex::STGC1:
105 break;
106 case PhiIndex::BI2:
107 case PhiIndex::BM2:
108 case PhiIndex::T1:
109 case PhiIndex::STGC2:
112 break;
113 case PhiIndex::BO1:
114 case PhiIndex::T2:
117 break;
118 case PhiIndex::BO2:
119 case PhiIndex::T3:
122 break;
123
124 case PhiIndex::PhiIndexMax:
125 case PhiIndex::PhiUnknown:
127 break;
128 }
130 switch (phiIndex) {
131 case PhiIndex::PhiIndexMax:
132 case PhiIndex::PhiUnknown:
133 case PhiIndex::CSC:
135 break;
136 case PhiIndex::BI1:
137 case PhiIndex::BI2:
139 break;
140 case PhiIndex::BM1:
143 break;
144 case PhiIndex::BM2:
147 break;
148 case PhiIndex::BO1:
151 break;
152 case PhiIndex::BO2:
155 break;
156 case PhiIndex::T4:
159 break;
160 case PhiIndex::T1:
163 break;
164 case PhiIndex::T2:
167 break;
168 case PhiIndex::T3:
171 break;
172 case PhiIndex::STGC1:
175 break;
176 case PhiIndex::STGC2:
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
195
197
198
199
200 if (trackSummary) {
202 mainSector = secondSector =
summary.mainSector;
203
204 for (
auto sec :
summary.sectors) {
205 if (sec !=
summary.mainSector) {
206 secondSector = sec;
207 }
208 }
209
217
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:
243 break;
244 }
245 }
246
247
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:
271 break;
272 }
273 }
274 }
275
276 if (trackSummary->muonTrackSummary()) {
277 const Trk::MuonTrackSummary& mts = *trackSummary->muonTrackSummary();
278
279 for (
const Trk::MuonTrackSummary::ChamberHitSummary& summary : mts.
chamberHitSummary()) {
281 case TechnologyIndex::TechnologyUnknown:
282 case TechnologyIndex::TechnologyIndexMax:
284 break;
285 case TechnologyIndex::MDT:{
287 break;
288 } case TechnologyIndex::CSC:{
292 break;
293 } case TechnologyIndex::MM:{
297 break;
298 } case TechnologyIndex::STGC:{
300 incrementTrigSummary(
summary.chamberId(),
303 break;
304 } case TechnologyIndex::RPC:
305 case TechnologyIndex::TGC: {
306 incrementTrigSummary(
summary.chamberId(),
309 break;
310 }
311 }
312 }
313 }
314 }
315
323
334
343
348
353
358
363
368
373
378
383
388
393
398
403
404
405
408
411
414
417
418
421
426
431
433
436
439 }
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
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
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
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