CMS 3D CMS Logo

HitPattern.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 #ifndef TrackReco_HitPattern_h
4 #define TrackReco_HitPattern_h
5 
6 //
7 // File: DataFormats/TrackReco/interface/HitPattern.h
8 //
9 // Marcel Vos, INFN Pisa
10 // v1.10 2007/05/08 bellan
11 // Zongru Wan, Kansas State University
12 // Jean-Roch Vlimant
13 // Kevin Burkett
14 // Boris Mangano
15 //
16 // Hit pattern is the summary information of the hits associated to track in
17 // AOD. When RecHits are no longer available, the compact hit pattern should
18 // allow basic track selection based on the hits in various subdetectors.
19 // The hits of a track are saved in unit16_t hitPattern[MaxHits].
20 //
21 // uint16_t
22 // +------------+---------------+---------------------------+-----------------+----------------+
23 // | tk/mu/mtd | sub-structure | sub-sub-structure | stereo | hit type |
24 // +------------+---------------+---------------------------+-----------------+----------------+
25 // | 11-10 | 9 8 7 | 6 5 4 3 | 2 | 1 0 | bit
26 // +------------+---------------+---------------------------+-----------------+----------------|
27 // | tk = 1 | PXB = 1 | layer = 1-3 | | hit type = 0-3 |
28 // | tk = 1 | PXF = 2 | disk = 1-2 | | hit type = 0-3 |
29 // | tk = 1 | TIB = 3 | layer = 1-4 | 0=rphi,1=stereo | hit type = 0-3 |
30 // | tk = 1 | TID = 4 | wheel = 1-3 | 0=rphi,1=stereo | hit type = 0-3 |
31 // | tk = 1 | TOB = 5 | layer = 1-6 | 0=rphi,1=stereo | hit type = 0-3 |
32 // | tk = 1 | TEC = 6 | wheel = 1-9 | 0=rphi,1=stereo | hit type = 0-3 |
33 // | mu = 0 | DT = 1 | 4*(stat-1)+superlayer | | hit type = 0-3 |
34 // | mu = 0 | CSC = 2 | 4*(stat-1)+(ring-1) | | hit type = 0-3 |
35 // | mu = 0 | RPC = 3 | 4*(stat-1)+2*layer+region | | hit type = 0-3 |
36 // | mu = 0 | GEM = 4 | 2*(stat-1)+2*(layer-1) | | hit type = 0-3 |
37 // | mu = 0 | ME0 = 5 | roll | | hit type = 0-3 |
38 // | mtd = 2 | BTL = 1 | moduleType = 1-3 | | hit type = 0-3 |
39 // | mtd = 2 | ETL = 2 | ring = 1-12 | | hit type = 0-3 |
40 // +------------+---------------+---------------------------+-----------------+----------------+
41 //
42 // hit type, see DataFormats/TrackingRecHit/interface/TrackingRecHit.h
43 // VALID = valid hit = 0
44 // MISSING = detector is good, but no rec hit found = 1
45 // INACTIVE = detector is off, so there was no hope = 2
46 // BAD = there were many bad strips within the ellipse = 3
47 //
48 // It had been shown by Zongru using a 100 GeV muon sample with 5000 events
49 // uniform in eta and phi, the average (maximum) number of tracker hits is
50 // 13 (17) and the average (maximum) number of muon detector hits is about
51 // 26 (50). If the number of hits of a track is larger than 80 then the extra
52 // hits are ignored by hit pattern. The static hit pattern array might be
53 // improved to a dynamic one in the future.
54 //
55 // Because of tracking with/without overlaps and with/without hit-splitting,
56 // the final number of hits per track is pretty "variable". Compared with the
57 // number of valid hits, the number of crossed layers with measurement should
58 // be more robust to discriminate between good and fake track.
59 //
60 // Since 4-bit for sub-sub-structure is not enough to specify a muon layer,
61 // the layer case counting methods are implemented for tracker only. This is
62 // different from the hit counting methods which are implemented for both
63 // tracker and muon detector.
64 //
65 // Given a tracker layer, specified by sub-structure and layer, the method
66 // getTrackerLayerCase(substr, layer) groups all of the hits in the hit pattern
67 // array for the layer together and returns one of the four cases
68 //
69 // crossed
70 // layer case 0: VALID + (MISSING, OFF, BAD) ==> with measurement
71 // layer case 1: MISSING + (OFF, BAD) ==> without measurement
72 // layer case 2: OFF, BAD ==> totally off or bad, cannot say much
73 // not crossed
74 // layer case NULL_RETURN: track outside acceptance or in gap ==> null
75 //
76 // Given a tracker layer, specified by sub-structure and layer, the method
77 // getTrackerMonoStereo(substr, layer) groups all of the valid hits in the hit
78 // pattern array for the layer together and returns
79 //
80 // 0: neither a valid mono nor a valid stereo hit
81 // MONO: valid mono hit
82 // STEREO: valid stereo hit
83 // MONO | STEREO: both
84 //
85 //
86 // Given a track, here is an example usage of hit pattern
87 //
88 // // hit pattern of the track
89 // const reco::HitPattern &p = track->hitPattern();
90 //
91 // // loop over the hits of the track.
92 // for (int i = 0; i < p.numberOfAllHits(HitPattern::TRACK_HITS); i++) {
93 // uint32_t hit = p.getHitPattern(HitPattern::TRACK_HITS, i);
94 //
95 // // if the hit is valid and in pixel barrel, print out the layer
96 // if (p.validHitFilter(hit) && p.pixelBarrelHitFilter(hit)){
97 // cout << "valid hit found in pixel barrel layer "
98 // << p.getLayer(hit)
99 // << endl;
100 // }
101 //
102 // // expert level: printout the hit in 11-bit binary format
103 // cout << "hit in 11-bit binary format = ";
104 // for (int j = 10; j >= 0; j--){
105 // int bit = (hit >> j) & 0x1;
106 // cout << bit;
107 // }
108 // cout << endl;
109 // }
110 //
111 // //count the number of valid pixel barrel *** hits ***
112 // cout << "number of of valid pixel barrel hits is "
113 // << p.numberOfValidPixelBarrelHits()
114 // << endl;
115 //
116 // //count the number of pixel barrel *** layers *** with measurement
117 // cout << "number of of pixel barrel layers with measurement is "
118 // << p.pixelBarrelLayersWithMeasurement()
119 // << endl;
120 //
121 
130 
131 #include <utility>
132 #include <algorithm>
133 #include <iostream>
134 #include <ostream>
135 #include <memory>
136 
137 class TrackerTopology;
138 
139 namespace test {
140  namespace TestHitPattern {
141  int test();
142  }
143 } // namespace test
144 
145 namespace reco {
146 
147  class HitPattern {
148  public:
149  enum { MONO = 1, STEREO = 2 };
150 
152 
153  enum HIT_TYPE { VALID = 0, MISSING = 1, INACTIVE = 2, BAD = 3 };
154 
156  const static unsigned short ARRAY_LENGTH = 57;
157  const static unsigned short HIT_LENGTH = 12;
158  const static unsigned short MaxHits = (8 * sizeof(uint16_t) * ARRAY_LENGTH) / HIT_LENGTH;
159 
160  static const uint32_t NULL_RETURN = 999999;
161  static const uint16_t EMPTY_PATTERN = 0x0;
162 
163  static bool trackerHitFilter(uint16_t pattern);
164  static bool muonHitFilter(uint16_t pattern);
165  static bool timingHitFilter(uint16_t pattern);
166 
167  static bool validHitFilter(uint16_t pattern);
168  static bool missingHitFilter(uint16_t pattern);
169  static bool inactiveHitFilter(uint16_t pattern);
170  static bool badHitFilter(uint16_t pattern);
171 
172  static bool pixelHitFilter(uint16_t pattern);
173  static bool pixelBarrelHitFilter(uint16_t pattern);
174  static bool pixelEndcapHitFilter(uint16_t pattern);
175  static bool stripHitFilter(uint16_t pattern);
176  static bool stripTIBHitFilter(uint16_t pattern);
177  static bool stripTIDHitFilter(uint16_t pattern);
178  static bool stripTOBHitFilter(uint16_t pattern);
179  static bool stripTECHitFilter(uint16_t pattern);
180 
181  static bool muonDTHitFilter(uint16_t pattern);
182  static bool muonCSCHitFilter(uint16_t pattern);
183  static bool muonRPCHitFilter(uint16_t pattern);
184  static bool muonGEMHitFilter(uint16_t pattern);
185  static bool muonME0HitFilter(uint16_t pattern);
186 
187  static bool timingBTLHitFilter(uint16_t pattern);
188  static bool timingETLHitFilter(uint16_t pattern);
189 
190  static uint32_t getHitType(uint16_t pattern);
191 
192  // mono (0) or stereo (1)
193  static uint32_t getSide(uint16_t pattern);
194  static uint32_t getLayer(uint16_t pattern);
195  static uint32_t getSubSubStructure(uint16_t pattern);
196  static uint32_t getSubStructure(uint16_t pattern);
197  static uint32_t getSubDetector(uint16_t pattern);
198 
200  static uint16_t getMuonStation(uint16_t pattern);
201 
203  static uint16_t getDTSuperLayer(uint16_t pattern); // only for DT patterns
204 
206  static uint16_t getCSCRing(uint16_t pattern);
207 
209  static uint16_t getRPCLayer(uint16_t pattern);
210 
212  static uint16_t getRPCregion(uint16_t pattern);
213 
215  static uint16_t getGEMStation(uint16_t pattern);
216 
218  static uint16_t getGEMLayer(uint16_t pattern);
219 
221  static uint16_t getBTLModType(uint16_t pattern);
222 
224  static uint16_t getETLRing(uint16_t pattern);
225 
226  HitPattern();
227 
228  ~HitPattern();
229 
230  HitPattern(const HitPattern &other);
231 
233 
234  template <typename I>
235  bool appendHits(const I &begin, const I &end, const TrackerTopology &ttopo);
236  bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo);
237  bool appendHit(const TrackingRecHitRef &ref, const TrackerTopology &ttopo);
238  bool appendHit(const DetId &id, TrackingRecHit::Type hitType, const TrackerTopology &ttopo);
239  bool appendHit(const uint16_t pattern, TrackingRecHit::Type hitType);
240 
247  bool appendTrackerHit(uint16_t subdet, uint16_t layer, uint16_t stereo, TrackingRecHit::Type hitType);
248 
255  bool appendMuonHit(const DetId &id, TrackingRecHit::Type hitType);
256 
257  // get the pattern of the position-th hit
258  uint16_t getHitPattern(HitCategory category, int position) const;
259 
260  void clear();
261 
262  // print the pattern of the position-th hit
263  void printHitPattern(HitCategory category, int position, std::ostream &stream) const;
264  void print(HitCategory category, std::ostream &stream = std::cout) const;
265 
266  // has valid hit in PXB/PXF layer x
267  bool hasValidHitInPixelLayer(enum PixelSubdetector::SubDetector, uint16_t layer) const;
268 
269  int numberOfAllHits(HitCategory category) const; // not-null
270  int numberOfValidHits() const; // not-null, valid
271 
272  int numberOfAllTrackerHits(HitCategory category) const; // not-null, tracker
273  int numberOfValidTrackerHits() const; // not-null, valid, tracker
274  int numberOfValidPixelHits() const; // not-null, valid, pixel
275  int numberOfValidPixelBarrelHits() const; // not-null, valid, pixel PXB
276  int numberOfValidPixelEndcapHits() const; // not-null, valid, pixel PXF
277  int numberOfValidStripHits() const; // not-null, valid, strip
278  int numberOfValidStripTIBHits() const; // not-null, valid, strip TIB
279  int numberOfValidStripTIDHits() const; // not-null, valid, strip TID
280  int numberOfValidStripTOBHits() const; // not-null, valid, strip TOB
281  int numberOfValidStripTECHits() const; // not-null, valid, strip TEC
282 
283  int numberOfLostHits(HitCategory category) const; // not-null, not valid
284  int numberOfLostTrackerHits(HitCategory category) const; // not-null, not valid, tracker
285  int numberOfLostPixelHits(HitCategory category) const; // not-null, not valid, pixel
286  int numberOfLostPixelBarrelHits(HitCategory category) const; // not-null, not valid, pixel PXB
287  int numberOfLostPixelEndcapHits(HitCategory category) const; // not-null, not valid, pixel PXF
288  int numberOfLostStripHits(HitCategory category) const; // not-null, not valid, strip
289  int numberOfLostStripTIBHits(HitCategory category) const; // not-null, not valid, strip TIB
290  int numberOfLostStripTIDHits(HitCategory category) const; // not-null, not valid, strip TID
291  int numberOfLostStripTOBHits(HitCategory category) const; // not-null, not valid, strip TOB
292  int numberOfLostStripTECHits(HitCategory category) const; // not-null, not valid, strip TEC
293 
294  int numberOfTimingHits() const; // not-null timing
295  int numberOfValidTimingHits() const; // not-null, valid, timing
296  int numberOfValidTimingBTLHits() const; // not-null, valid, timing BTL
297  int numberOfValidTimingETLHits() const; // not-null, valid, timing ETL
298 
299  int numberOfLostTimingHits() const; // not-null, not valid, timing
300  int numberOfLostTimingBTLHits() const; // not-null, not valid, timing BTL
301  int numberOfLostTimingETLHits() const; // not-null, not valid, timing ETL
302 
303  int numberOfMuonHits() const; // not-null, muon
304  int numberOfValidMuonHits() const; // not-null, valid, muon
305  int numberOfValidMuonDTHits() const; // not-null, valid, muon DT
306  int numberOfValidMuonCSCHits() const; // not-null, valid, muon CSC
307  int numberOfValidMuonRPCHits() const; // not-null, valid, muon RPC
308  int numberOfValidMuonGEMHits() const; // not-null, valid, muon GEM
309  int numberOfValidMuonME0Hits() const; // not-null, valid, muon ME0
310 
311  int numberOfLostMuonHits() const; // not-null, not valid, muon
312  int numberOfLostMuonDTHits() const; // not-null, not valid, muon DT
313  int numberOfLostMuonCSCHits() const; // not-null, not valid, muon CSC
314  int numberOfLostMuonRPCHits() const; // not-null, not valid, muon RPC
315  int numberOfLostMuonGEMHits() const; // not-null, not valid, muon GEM
316  int numberOfLostMuonME0Hits() const; // not-null, not valid, muon ME0
317 
318  int numberOfBadHits() const; // not-null, bad (only used in Muon Ch.)
319  int numberOfBadMuonHits() const; // not-null, bad, muon
320  int numberOfBadMuonDTHits() const; // not-null, bad, muon DT
321  int numberOfBadMuonCSCHits() const; // not-null, bad, muon CSC
322  int numberOfBadMuonRPCHits() const; // not-null, bad, muon RPC
323  int numberOfBadMuonGEMHits() const; // not-null, bad, muon GEM
324  int numberOfBadMuonME0Hits() const; // not-null, bad, muon ME0
325 
326  int numberOfInactiveHits() const; // not-null, inactive
327  int numberOfInactiveTrackerHits() const; // not-null, inactive, tracker
328  int numberOfInactiveTimingHits() const; // not-null, inactive, timing
329 
330  // count strip layers that have non-null, valid mono and stereo hits
331  int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const;
333  int numberOfValidTOBLayersWithMonoAndStereo(uint32_t layer = 0) const;
334  int numberOfValidTIBLayersWithMonoAndStereo(uint32_t layer = 0) const;
335  int numberOfValidTIDLayersWithMonoAndStereo(uint32_t layer = 0) const;
336  int numberOfValidTECLayersWithMonoAndStereo(uint32_t layer = 0) const;
337 
338  uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const;
339  uint16_t getTrackerMonoStereo(HitCategory category, uint16_t substr, uint16_t layer) const;
340 
341  int trackerLayersWithMeasurementOld() const; // case 0: tracker
342  int trackerLayersWithMeasurement() const; // case 0: tracker
343  int pixelLayersWithMeasurementOld() const; // case 0: pixel
344  int pixelLayersWithMeasurement() const; // case 0: pixel
345  int stripLayersWithMeasurement() const; // case 0: strip
346  int pixelBarrelLayersWithMeasurement() const; // case 0: pixel PXB
347  int pixelEndcapLayersWithMeasurement() const; // case 0: pixel PXF
348  int stripTIBLayersWithMeasurement() const; // case 0: strip TIB
349  int stripTIDLayersWithMeasurement() const; // case 0: strip TID
350  int stripTOBLayersWithMeasurement() const; // case 0: strip TOB
351  int stripTECLayersWithMeasurement() const; // case 0: strip TEC
352 
353  int trackerLayersWithoutMeasurement(HitCategory category) const; // case 1: tracker
354  int trackerLayersWithoutMeasurementOld(HitCategory category) const; // case 1: tracker
355  int pixelLayersWithoutMeasurement(HitCategory category) const; // case 1: pixel
356  int stripLayersWithoutMeasurement(HitCategory category) const; // case 1: strip
357  int pixelBarrelLayersWithoutMeasurement(HitCategory category) const; // case 1: pixel PXB
358  int pixelEndcapLayersWithoutMeasurement(HitCategory category) const; // case 1: pixel PXF
359  int stripTIBLayersWithoutMeasurement(HitCategory category) const; // case 1: strip TIB
360  int stripTIDLayersWithoutMeasurement(HitCategory category) const; // case 1: strip TID
361  int stripTOBLayersWithoutMeasurement(HitCategory category) const; // case 1: strip TOB
362  int stripTECLayersWithoutMeasurement(HitCategory category) const; // case 1: strip TEC
363 
364  int trackerLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: tracker
365  int pixelLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: pixel
366  int stripLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: strip
367  int pixelBarrelLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: pixel PXB
368  int pixelEndcapLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: pixel PXF
369  int stripTIBLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: strip TIB
370  int stripTIDLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: strip TID
371  int stripTOBLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: strip TOB
372  int stripTECLayersTotallyOffOrBad(HitCategory category = TRACK_HITS) const; // case 2: strip TEC
373 
374  int trackerLayersNull() const; // case NULL_RETURN: tracker
375  int pixelLayersNull() const; // case NULL_RETURN: pixel
376  int stripLayersNull() const; // case NULL_RETURN: strip
377  int pixelBarrelLayersNull() const; // case NULL_RETURN: pixel PXB
378  int pixelEndcapLayersNull() const; // case NULL_RETURN: pixel PXF
379  int stripTIBLayersNull() const; // case NULL_RETURN: strip TIB
380  int stripTIDLayersNull() const; // case NULL_RETURN: strip TID
381  int stripTOBLayersNull() const; // case NULL_RETURN: strip TOB
382  int stripTECLayersNull() const; // case NULL_RETURN: strip TEC
383 
385  int muonStations(int subdet, int hitType) const;
386 
387  int muonStationsWithValidHits() const;
388  int muonStationsWithBadHits() const;
389  int muonStationsWithAnyHits() const;
390 
391  int dtStationsWithValidHits() const;
392  int dtStationsWithBadHits() const;
393  int dtStationsWithAnyHits() const;
394 
395  int cscStationsWithValidHits() const;
396  int cscStationsWithBadHits() const;
397  int cscStationsWithAnyHits() const;
398 
399  int rpcStationsWithValidHits() const;
400  int rpcStationsWithBadHits() const;
401  int rpcStationsWithAnyHits() const;
402 
403  int gemStationsWithValidHits() const;
404  int gemStationsWithBadHits() const;
405  int gemStationsWithAnyHits() const;
406 
407  int me0StationsWithValidHits() const;
408  int me0StationsWithBadHits() const;
409  int me0StationsWithAnyHits() const;
410 
412  int innermostMuonStationWithHits(int hitType) const;
416 
418  int outermostMuonStationWithHits(int hitType) const;
422 
423  int numberOfDTStationsWithRPhiView() const;
424  int numberOfDTStationsWithRZView() const;
426 
427  //only used by ROOT IO rule to read v12 HitPatterns
428  static bool fillNewHitPatternWithOldHitPattern_v12(const uint16_t oldHitPattern[],
429  uint8_t hitCount,
430  uint8_t beginTrackHits,
431  uint8_t endTrackHits,
432  uint8_t beginInner,
433  uint8_t endInner,
434  uint8_t beginOuter,
435  uint8_t endOuter,
436  reco::HitPattern *newObj);
437 
438  private:
439  // 3 bits for hit type
440  const static unsigned short HitTypeOffset = 0;
441  const static unsigned short HitTypeMask = 0x3;
442 
443  // 1 bit to identify the side in double-sided detectors
444  const static unsigned short SideOffset = 2;
445  const static unsigned short SideMask = 0x1;
446 
447  // 4 bits to identify the layer/disk/wheel within the substructure
448  const static unsigned short LayerOffset = 3;
449  const static unsigned short LayerMask = 0xF;
450 
451  // 3 bits to identify the tracker/muon detector substructure
452  const static unsigned short SubstrOffset = 7;
453  const static unsigned short SubstrMask = 0x7;
454 
455  // 2 bits to distinguish tracker, muon, mtd subsystems
456  const static unsigned short SubDetectorOffset = 10;
457  const static unsigned short SubDetectorMask = 0x3;
458 
459  const static unsigned short minTrackerWord = 1 << SubDetectorOffset;
460  const static unsigned short maxTrackerWord = (2 << SubDetectorOffset) - 1;
461  const static unsigned short minPixelWord = minTrackerWord | (1 << SubstrOffset);
462  const static unsigned short minStripWord = minTrackerWord | (3 << SubstrOffset);
463 
464  // detector side for tracker modules (mono/stereo)
465  static uint16_t isStereo(DetId i, const TrackerTopology &ttopo);
466  static bool stripSubdetectorHitFilter(uint16_t pattern, StripSubdetector::SubDetector substructure);
467 
468  static uint16_t encode(const TrackingRecHit &hit, const TrackerTopology &ttopo);
469  static uint16_t encode(const DetId &id, TrackingRecHit::Type hitType, const TrackerTopology &ttopo);
470  static uint16_t encode(uint16_t det, uint16_t subdet, uint16_t layer, uint16_t side, TrackingRecHit::Type hitType);
471 
472  // generic count methods
473  typedef bool filterType(uint16_t);
474 
475  template <typename F>
476  void call(HitCategory category, filterType typeFilter, F f) const;
477 
480 
481  bool insertTrackHit(const uint16_t pattern);
482  bool insertExpectedInnerHit(const uint16_t pattern);
483  bool insertExpectedOuterHit(const uint16_t pattern);
484  void insertHit(const uint16_t pattern);
485 
486  uint16_t getHitPatternByAbsoluteIndex(int position) const;
487 
488  std::pair<uint8_t, uint8_t> getCategoryIndexRange(HitCategory category) const;
489 
491  uint8_t hitCount;
492 
493  uint8_t beginTrackHits;
494  uint8_t endTrackHits;
495  uint8_t beginInner;
496  uint8_t endInner;
497  uint8_t beginOuter;
498  uint8_t endOuter;
499 
501 
502  template <int N>
503  friend struct PatternSet;
504  };
505 
506  inline std::pair<uint8_t, uint8_t> HitPattern::getCategoryIndexRange(HitCategory category) const {
507  switch (category) {
508  case TRACK_HITS:
509  return std::pair<uint8_t, uint8_t>(beginTrackHits, endTrackHits);
510  break;
511  case MISSING_INNER_HITS:
512  return std::pair<uint8_t, uint8_t>(beginInner, endInner);
513  break;
514  case MISSING_OUTER_HITS:
515  return std::pair<uint8_t, uint8_t>(beginOuter, endOuter);
516  break;
517  }
518  return std::pair<uint8_t, uint8_t>(-1, -1);
519  }
520 
521  template <typename I>
522  bool HitPattern::appendHits(const I &begin, const I &end, const TrackerTopology &ttopo) {
523  for (I hit = begin; hit != end; hit++) {
524  if
525  UNLIKELY((!appendHit(*hit, ttopo))) { return false; }
526  }
527  return true;
528  }
529 
531  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
532  if
533  UNLIKELY((position < 0 || (position + range.first) >= range.second)) { return HitPattern::EMPTY_PATTERN; }
534 
536  }
537 
539  int count = 0;
540  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
541  for (int i = range.first; i < range.second; ++i) {
543  ++count;
544  }
545  }
546  return count;
547  }
548 
549  template <typename F>
550  void HitPattern::call(HitCategory category, filterType typeFilter, F f) const {
551  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
552  for (int i = range.first; i < range.second; i++) {
554  // f() return false to ask to stop looping
555  if (typeFilter(pattern) && !f(pattern)) {
556  break;
557  }
558  }
559  }
560 
562  int count = 0;
563  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
564  for (int i = range.first; i < range.second; ++i) {
566  if (typeFilter(pattern) && filter(pattern)) {
567  ++count;
568  }
569  }
570  return count;
571  }
572 
573  inline bool HitPattern::pixelHitFilter(uint16_t pattern) {
574  if
575  UNLIKELY(!trackerHitFilter(pattern)) { return false; }
576 
577  uint32_t substructure = getSubStructure(pattern);
578  return (substructure == PixelSubdetector::PixelBarrel || substructure == PixelSubdetector::PixelEndcap);
579  }
580 
582  if
583  UNLIKELY(!trackerHitFilter(pattern)) { return false; }
584 
585  uint32_t substructure = getSubStructure(pattern);
586  return (substructure == PixelSubdetector::PixelBarrel);
587  }
588 
590  if
591  UNLIKELY(!trackerHitFilter(pattern)) { return false; }
592 
593  uint32_t substructure = getSubStructure(pattern);
594  return (substructure == PixelSubdetector::PixelEndcap);
595  }
596 
597  inline bool HitPattern::stripHitFilter(uint16_t pattern) {
599  }
600 
602  if
603  UNLIKELY(!trackerHitFilter(pattern)) { return false; }
604 
605  return substructure == getSubStructure(pattern);
606  }
607 
608  inline bool HitPattern::stripTIBHitFilter(uint16_t pattern) {
610  }
611 
612  inline bool HitPattern::stripTIDHitFilter(uint16_t pattern) {
614  }
615 
616  inline bool HitPattern::stripTOBHitFilter(uint16_t pattern) {
618  }
619 
620  inline bool HitPattern::stripTECHitFilter(uint16_t pattern) {
622  }
623 
624  inline bool HitPattern::muonDTHitFilter(uint16_t pattern) {
625  if
626  UNLIKELY(!muonHitFilter(pattern)) { return false; }
627 
628  uint32_t substructure = getSubStructure(pattern);
629  return (substructure == (uint32_t)MuonSubdetId::DT);
630  }
631 
632  inline bool HitPattern::muonCSCHitFilter(uint16_t pattern) {
633  if
634  UNLIKELY(!muonHitFilter(pattern)) { return false; }
635 
636  uint32_t substructure = getSubStructure(pattern);
637  return (substructure == (uint32_t)MuonSubdetId::CSC);
638  }
639 
640  inline bool HitPattern::muonRPCHitFilter(uint16_t pattern) {
641  if
642  UNLIKELY(!muonHitFilter(pattern)) { return false; }
643 
644  uint32_t substructure = getSubStructure(pattern);
645  return (substructure == (uint32_t)MuonSubdetId::RPC);
646  }
647 
648  inline bool HitPattern::muonGEMHitFilter(uint16_t pattern) {
649  if
650  UNLIKELY(!muonHitFilter(pattern)) { return false; }
651 
652  uint32_t substructure = getSubStructure(pattern);
653  return (substructure == (uint32_t)MuonSubdetId::GEM);
654  }
655 
656  inline bool HitPattern::muonME0HitFilter(uint16_t pattern) {
657  if
658  UNLIKELY(!muonHitFilter(pattern)) return false;
659  uint16_t substructure = getSubStructure(pattern);
660  return (substructure == (uint16_t)MuonSubdetId::ME0);
661  }
662 
663  inline bool HitPattern::trackerHitFilter(uint16_t pattern) {
665  }
666 
667  inline bool HitPattern::muonHitFilter(uint16_t pattern) {
668  if
669  UNLIKELY(pattern == HitPattern::EMPTY_PATTERN) { return false; }
670 
671  return (((pattern >> SubDetectorOffset) & SubDetectorMask) == 0);
672  }
673 
674  inline bool HitPattern::timingBTLHitFilter(uint16_t pattern) {
675  if
676  UNLIKELY(!timingHitFilter(pattern)) return false;
677  uint16_t substructure = getSubStructure(pattern);
678  return (substructure == (uint16_t)MTDDetId::BTL);
679  }
680 
681  inline bool HitPattern::timingETLHitFilter(uint16_t pattern) {
682  if
683  UNLIKELY(!timingHitFilter(pattern)) return false;
684  uint16_t substructure = getSubStructure(pattern);
685  return (substructure == (uint16_t)MTDDetId::ETL);
686  }
687 
688  inline bool HitPattern::timingHitFilter(uint16_t pattern) {
689  if
690  UNLIKELY(pattern == HitPattern::EMPTY_PATTERN) { return false; }
691 
692  return (((pattern >> SubDetectorOffset) & SubDetectorMask) == 2);
693  }
694 
695  inline uint32_t HitPattern::getSubStructure(uint16_t pattern) {
696  if
698 
699  return ((pattern >> SubstrOffset) & SubstrMask);
700  }
701 
703 
704  inline uint32_t HitPattern::getSubSubStructure(uint16_t pattern) {
705  if
707 
708  return ((pattern >> LayerOffset) & LayerMask);
709  }
710 
711  inline uint32_t HitPattern::getSubDetector(uint16_t pattern) {
712  if
714 
715  return ((pattern >> SubDetectorOffset) & SubDetectorMask);
716  }
717 
718  inline uint32_t HitPattern::getSide(uint16_t pattern) {
719  if
721 
722  return (pattern >> SideOffset) & SideMask;
723  }
724 
725  inline uint32_t HitPattern::getHitType(uint16_t pattern) {
726  if
728 
729  return ((pattern >> HitTypeOffset) & HitTypeMask);
730  }
731 
732  inline uint16_t HitPattern::getMuonStation(uint16_t pattern) { return (getSubSubStructure(pattern) >> 2) + 1; }
733 
734  inline uint16_t HitPattern::getDTSuperLayer(uint16_t pattern) { return (getSubSubStructure(pattern) & 3); }
735 
736  inline uint16_t HitPattern::getCSCRing(uint16_t pattern) { return (getSubSubStructure(pattern) & 3) + 1; }
737 
738  inline uint16_t HitPattern::getRPCLayer(uint16_t pattern) {
739  uint16_t subSubStructure = getSubSubStructure(pattern);
740  uint16_t stat = subSubStructure >> 2;
741 
742  if
743  LIKELY(stat <= 1) { return ((subSubStructure >> 1) & 1) + 1; }
744 
745  return 0;
746  }
747 
748  inline uint16_t HitPattern::getRPCregion(uint16_t pattern) { return getSubSubStructure(pattern) & 1; }
749 
751  inline uint16_t HitPattern::getGEMStation(uint16_t pattern)
752 
753  {
754  uint16_t sss = getSubSubStructure(pattern), stat = sss >> 1;
755  return stat + 1;
756  }
757 
759  inline uint16_t HitPattern::getBTLModType(uint16_t pattern) { return getSubSubStructure(pattern); }
760 
761  inline uint16_t HitPattern::getETLRing(uint16_t pattern) { return getSubSubStructure(pattern); }
762 
763  inline uint16_t HitPattern::getGEMLayer(uint16_t pattern) { return (getSubSubStructure(pattern) & 1) + 1; }
764 
766 
768 
770 
771  inline bool HitPattern::badHitFilter(uint16_t pattern) { return getHitType(pattern) == HitPattern::BAD; }
772 
774  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
775  return range.second - range.first;
776  }
777 
780  }
781 
783 
785 
787 
790  }
791 
794  }
795 
798  }
799 
802  }
803 
806  }
807 
810  }
811 
814  }
815 
818  }
819 
822  }
823 
826  }
827 
830  }
831 
834  }
835 
838  }
839 
842  }
843 
846  }
847 
850  }
851 
854  }
855 
858  }
859 
861 
864  }
865 
866  inline int HitPattern::numberOfLostMuonHits() const {
868  }
869 
872  }
873 
876  }
877 
880  }
881 
884  }
885 
888  }
889 
892  }
893 
896  }
897 
900  }
901 
904  }
905 
908  }
909 
912  }
913 
916  }
917 
920  }
921 
924  }
925 
928  }
929 
932  }
933 
935 
936  inline int HitPattern::numberOfBadMuonHits() const {
938  }
939 
942  }
943 
946  }
947 
950  }
951 
954  }
955 
958  }
959 
961 
964  }
965 
968  }
969 
972  }
973 
977  }
978 
981  }
982 
985  }
986 
990  }
991 
994  }
995 
998  }
999 
1003  }
1004 
1006 
1008 
1009  inline int HitPattern::stripLayersNull() const {
1011  }
1012 
1013  inline int HitPattern::muonStationsWithValidHits() const { return muonStations(0, 0); }
1014 
1015  inline int HitPattern::muonStationsWithBadHits() const { return muonStations(0, 3); }
1016 
1017  inline int HitPattern::muonStationsWithAnyHits() const { return muonStations(0, -1); }
1018 
1019  inline int HitPattern::dtStationsWithValidHits() const { return muonStations(1, 0); }
1020 
1021  inline int HitPattern::dtStationsWithBadHits() const { return muonStations(1, 3); }
1022 
1023  inline int HitPattern::dtStationsWithAnyHits() const { return muonStations(1, -1); }
1024 
1025  inline int HitPattern::cscStationsWithValidHits() const { return muonStations(2, 0); }
1026 
1027  inline int HitPattern::cscStationsWithBadHits() const { return muonStations(2, 3); }
1028 
1029  inline int HitPattern::cscStationsWithAnyHits() const { return muonStations(2, -1); }
1030 
1031  inline int HitPattern::rpcStationsWithValidHits() const { return muonStations(3, 0); }
1032 
1033  inline int HitPattern::rpcStationsWithBadHits() const { return muonStations(3, 3); }
1034 
1035  inline int HitPattern::rpcStationsWithAnyHits() const { return muonStations(3, -1); }
1036 
1037  inline int HitPattern::gemStationsWithValidHits() const { return muonStations(4, 0); }
1038 
1039  inline int HitPattern::gemStationsWithBadHits() const { return muonStations(4, 3); }
1040 
1041  inline int HitPattern::gemStationsWithAnyHits() const { return muonStations(4, -1); }
1042 
1043  inline int HitPattern::me0StationsWithValidHits() const { return muonStations(5, 0); }
1044 
1045  inline int HitPattern::me0StationsWithBadHits() const { return muonStations(5, 3); }
1046 
1047  inline int HitPattern::me0StationsWithAnyHits() const { return muonStations(5, -1); }
1048 
1050 
1052 
1054 
1056 
1058 
1060 
1061  template <int N = HitPattern::MaxHits>
1062  struct PatternSet {
1063  static constexpr int MaxHits = N;
1064  unsigned char hit[N];
1065  unsigned char nhit;
1066 
1067  unsigned char const *begin() const { return hit; }
1068 
1069  unsigned char const *end() const { return hit + nhit; }
1070 
1071  unsigned char *begin() { return hit; }
1072 
1073  unsigned char *end() { return hit + nhit; }
1074 
1075  int size() const { return nhit; }
1076 
1077  unsigned char operator[](int i) const { return hit[i]; }
1078 
1079  PatternSet() : nhit(0) {}
1080 
1082 
1084  int lhit = 0;
1085  auto unpack = [&lhit, this](uint16_t pattern) -> bool {
1086  unsigned char p = 255 & (pattern >> 3);
1087  hit[lhit++] = p;
1088 
1089  // bouble sort
1090  if (lhit > 1) {
1091  for (auto h = hit + lhit - 1; h != hit; --h) {
1092  if ((*(h - 1)) <= p) {
1093  break;
1094  }
1095  (*h) = *(h - 1);
1096  *(h - 1) = p;
1097  }
1098  }
1099  return lhit < MaxHits;
1100  };
1101 
1103  nhit = lhit;
1104  }
1105  };
1106 
1107  template <int N>
1109  PatternSet<N> comm;
1110  comm.nhit = std::set_intersection(p1.begin(), p1.end(), p2.begin(), p2.end(), comm.begin()) - comm.begin();
1111  return comm;
1112  }
1113 
1114 } // namespace reco
1115 
1116 #endif
reco::HitPattern::appendHit
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:201
reco::HitPattern::operator=
HitPattern & operator=(const HitPattern &other)
Definition: HitPattern.cc:37
reco::HitPattern::STEREO
Definition: HitPattern.h:149
MuonSubdetId::GEM
static constexpr int GEM
Definition: MuonSubdetId.h:14
Likely.h
reco::HitPattern::numberOfBadMuonDTHits
int numberOfBadMuonDTHits() const
Definition: HitPattern.h:940
reco::HitPattern::MISSING_OUTER_HITS
Definition: HitPattern.h:155
reco::HitPattern::getHitPattern
uint16_t getHitPattern(HitCategory category, int position) const
Definition: HitPattern.h:530
reco::HitPattern::getSubStructure
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:695
reco::HitPattern::cscStationsWithAnyHits
int cscStationsWithAnyHits() const
Definition: HitPattern.h:1029
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
reco::HitPattern::numberOfValidStripTECHits
int numberOfValidStripTECHits() const
Definition: HitPattern.h:828
taus_updatedMVAIds_cff.category
category
Definition: taus_updatedMVAIds_cff.py:31
reco::HitPattern::inactiveHitFilter
static bool inactiveHitFilter(uint16_t pattern)
Definition: HitPattern.h:769
MuonSubdetId::CSC
static constexpr int CSC
Definition: MuonSubdetId.h:12
reco::HitPattern::HIT_LENGTH
const static unsigned short HIT_LENGTH
Definition: HitPattern.h:157
mps_fire.i
i
Definition: mps_fire.py:428
PixelSubdetector.h
reco::HitPattern::LayerOffset
const static unsigned short LayerOffset
Definition: HitPattern.h:448
reco::HitPattern::numberOfLostMuonDTHits
int numberOfLostMuonDTHits() const
Definition: HitPattern.h:914
reco::HitPattern::numberOfValidTimingBTLHits
int numberOfValidTimingBTLHits() const
Definition: HitPattern.h:852
reco::HitPattern::getSubDetector
static uint32_t getSubDetector(uint16_t pattern)
Definition: HitPattern.h:711
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
reco::HitPattern::beginTrackHits
uint8_t beginTrackHits
Definition: HitPattern.h:493
reco::HitPattern::pixelEndcapLayersWithMeasurement
int pixelEndcapLayersWithMeasurement() const
Definition: HitPattern.cc:566
reco::HitPattern::filterType
bool filterType(uint16_t)
Definition: HitPattern.h:473
reco::HitPattern::innermostMuonStationWithBadHits
int innermostMuonStationWithBadHits() const
Definition: HitPattern.h:1051
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
reco::HitPattern::stripTOBLayersWithMeasurement
int stripTOBLayersWithMeasurement() const
Definition: HitPattern.cc:597
reco::HitPattern::numberOfAllTrackerHits
int numberOfAllTrackerHits(HitCategory category) const
Definition: HitPattern.h:778
reco::HitPattern::trackerLayersWithoutMeasurement
int trackerLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:532
reco::HitPattern::numberOfTimingHits
int numberOfTimingHits() const
Definition: HitPattern.h:784
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
reco::HitPattern::numberOfLostStripTIBHits
int numberOfLostStripTIBHits(HitCategory category) const
Definition: HitPattern.h:898
reco::HitPattern::stripTIBLayersWithoutMeasurement
int stripTIBLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:639
reco::HitPattern::beginInner
uint8_t beginInner
Definition: HitPattern.h:495
reco::HitPattern::muonRPCHitFilter
static bool muonRPCHitFilter(uint16_t pattern)
Definition: HitPattern.h:640
reco::HitPattern::numberOfValidTOBLayersWithMonoAndStereo
int numberOfValidTOBLayersWithMonoAndStereo(uint32_t layer=0) const
Definition: HitPattern.cc:414
reco::PatternSet::PatternSet
PatternSet(HitPattern::HitCategory category, HitPattern const &hp)
Definition: HitPattern.h:1081
reco::HitPattern::SideMask
const static unsigned short SideMask
Definition: HitPattern.h:445
TrackerTopology
Definition: TrackerTopology.h:16
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
h
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
Definition: L1TUtmAlgorithmRcd.h:4
reco::PatternSet::fill
void fill(HitPattern::HitCategory category, HitPattern const &hp)
Definition: HitPattern.h:1083
bJpsiMuMuTrigSettings_cff.filterType
filterType
Definition: bJpsiMuMuTrigSettings_cff.py:3
reco::HitPattern::validHitFilter
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
cms::cuda::stream
cudaStream_t stream
Definition: HistoContainer.h:57
reco::HitPattern::numberOfLostTimingBTLHits
int numberOfLostTimingBTLHits() const
Definition: HitPattern.h:874
gather_cfg.cout
cout
Definition: gather_cfg.py:144
reco::HitPattern::HitTypeOffset
const static unsigned short HitTypeOffset
Definition: HitPattern.h:440
reco::HitPattern::clear
void clear()
Definition: HitPattern.cc:58
reco::HitPattern::numberOfLostStripTECHits
int numberOfLostStripTECHits(HitCategory category) const
Definition: HitPattern.h:910
reco::HitPattern::muonHitFilter
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:667
reco::HitPattern::trackerHitFilter
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:663
reco::HitPattern::dtStationsWithValidHits
int dtStationsWithValidHits() const
Definition: HitPattern.h:1019
reco::HitPattern::numberOfBadMuonGEMHits
int numberOfBadMuonGEMHits() const
Definition: HitPattern.h:952
reco::HitPattern::numberOfMuonHits
int numberOfMuonHits() const
Definition: HitPattern.h:782
reco::HitPattern::gemStationsWithAnyHits
int gemStationsWithAnyHits() const
Definition: HitPattern.h:1041
reco::HitPattern::stripTIBLayersNull
int stripTIBLayersNull() const
Definition: HitPattern.cc:763
reco::HitPattern::getGEMLayer
static uint16_t getGEMLayer(uint16_t pattern)
GEM layer: 1,2. Only valid for muon GEM patterns, of course.
Definition: HitPattern.h:763
reco::HitPattern::MUON_HIT
Definition: HitPattern.h:151
reco::HitPattern::numberOfLostTimingHits
int numberOfLostTimingHits() const
Definition: HitPattern.h:870
reco::HitPattern::muonGEMHitFilter
static bool muonGEMHitFilter(uint16_t pattern)
Definition: HitPattern.h:648
reco::HitPattern::stripLayersWithoutMeasurement
int stripLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.h:987
reco::HitPattern::HitPattern
HitPattern()
Definition: HitPattern.cc:19
reco::HitPattern::beginOuter
uint8_t beginOuter
Definition: HitPattern.h:497
reco::HitPattern::trackerLayersWithoutMeasurementOld
int trackerLayersWithoutMeasurementOld(HitCategory category) const
Definition: HitPattern.h:979
TrackingRecHitFwd.h
reco::PatternSet::hit
unsigned char hit[N]
Definition: HitPattern.h:1064
reco::HitPattern::getCSCRing
static uint16_t getCSCRing(uint16_t pattern)
CSC ring (1-4). Only valid for muon CSC patterns, of course.
Definition: HitPattern.h:736
reco::HitPattern::muonCSCHitFilter
static bool muonCSCHitFilter(uint16_t pattern)
Definition: HitPattern.h:632
reco::HitPattern::dtStationsWithBadHits
int dtStationsWithBadHits() const
Definition: HitPattern.h:1021
reco::HitPattern::stripTOBHitFilter
static bool stripTOBHitFilter(uint16_t pattern)
Definition: HitPattern.h:616
reco::HitPattern::fillNewHitPatternWithOldHitPattern_v12
static bool fillNewHitPatternWithOldHitPattern_v12(const uint16_t oldHitPattern[], uint8_t hitCount, uint8_t beginTrackHits, uint8_t endTrackHits, uint8_t beginInner, uint8_t endInner, uint8_t beginOuter, uint8_t endOuter, reco::HitPattern *newObj)
Definition: rootio_HitPattern.cc:60
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
reco::HitPattern::rpcStationsWithBadHits
int rpcStationsWithBadHits() const
Definition: HitPattern.h:1033
reco::PatternSet::PatternSet
PatternSet()
Definition: HitPattern.h:1079
reco::HitPattern::insertExpectedInnerHit
bool insertExpectedInnerHit(const uint16_t pattern)
Definition: HitPattern.cc:985
reco::HitPattern::numberOfLostHits
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:860
reco::HitPattern::numberOfValidPixelEndcapHits
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.h:808
reco::HitPattern::stripTIBHitFilter
static bool stripTIBHitFilter(uint16_t pattern)
Definition: HitPattern.h:608
reco::HitPattern::trackerLayersTotallyOffOrBad
int trackerLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.h:992
reco::HitPattern::maxTrackerWord
const static unsigned short maxTrackerWord
Definition: HitPattern.h:460
reco::HitPattern::getRPCLayer
static uint16_t getRPCLayer(uint16_t pattern)
RPC layer: for station 1 and 2, layer = 1(inner) or 2(outer); for station 3, 4 layer is always 0....
Definition: HitPattern.h:738
reco::HitPattern::me0StationsWithBadHits
int me0StationsWithBadHits() const
Definition: HitPattern.h:1045
reco::HitPattern::getHitType
static uint32_t getHitType(uint16_t pattern)
Definition: HitPattern.h:725
reco::HitPattern::getSide
static uint32_t getSide(uint16_t pattern)
Definition: HitPattern.h:718
reco::HitPattern::numberOfLostPixelEndcapHits
int numberOfLostPixelEndcapHits(HitCategory category) const
Definition: HitPattern.h:890
reco::HitPattern::pixelLayersWithMeasurement
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:492
reco::HitPattern::stripTOBLayersWithoutMeasurement
int stripTOBLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:659
edm::Ref
Definition: AssociativeIterator.h:58
reco::HitPattern::numberOfInactiveTrackerHits
int numberOfInactiveTrackerHits() const
Definition: HitPattern.h:962
F
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163
reco::HitPattern::pixelBarrelLayersWithMeasurement
int pixelBarrelLayersWithMeasurement() const
Definition: HitPattern.cc:555
reco::HitPattern::numberOfBadHits
int numberOfBadHits() const
Definition: HitPattern.h:934
reco::HitPattern::numberOfLostMuonHits
int numberOfLostMuonHits() const
Definition: HitPattern.h:866
DetId
Definition: DetId.h:17
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
reco::HitPattern::minTrackerWord
const static unsigned short minTrackerWord
Definition: HitPattern.h:459
reco::HitPattern::outermostMuonStationWithBadHits
int outermostMuonStationWithBadHits() const
Definition: HitPattern.h:1057
reco::HitPattern::numberOfValidPixelBarrelHits
int numberOfValidPixelBarrelHits() const
Definition: HitPattern.h:804
reco::HitPattern
Definition: HitPattern.h:147
TrackingRecHit.h
test
Definition: SmallWORMDict.h:13
reco::HitPattern::pixelLayersNull
int pixelLayersNull() const
Definition: HitPattern.h:1007
reco::HitPattern::pixelBarrelLayersNull
int pixelBarrelLayersNull() const
Definition: HitPattern.cc:741
reco::HitPattern::trackerLayersWithMeasurementOld
int trackerLayersWithMeasurementOld() const
Definition: HitPattern.h:966
reco::HitPattern::stripLayersWithMeasurement
int stripLayersWithMeasurement() const
Definition: HitPattern.h:974
reco::HitPattern::TRACKER_HIT
Definition: HitPattern.h:151
reco::HitPattern::numberOfLostStripTIDHits
int numberOfLostStripTIDHits(HitCategory category) const
Definition: HitPattern.h:902
reco::HitPattern::endOuter
uint8_t endOuter
Definition: HitPattern.h:498
trackingPlots.hp
hp
Definition: trackingPlots.py:1248
reco::HitPattern::encode
static uint16_t encode(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:74
reco::HitPattern::numberOfValidMuonGEMHits
int numberOfValidMuonGEMHits() const
Definition: HitPattern.h:844
reco::HitPattern::muonStationsWithValidHits
int muonStationsWithValidHits() const
Definition: HitPattern.h:1013
reco::HitPattern::innermostMuonStationWithValidHits
int innermostMuonStationWithValidHits() const
Definition: HitPattern.h:1049
hgcalPlots.stat
stat
Definition: hgcalPlots.py:1119
Exhume::I
const std::complex< double > I
Definition: I.h:8
reco::HitPattern::trackerLayersWithMeasurement
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:513
reco::HitPattern::stripTIDHitFilter
static bool stripTIDHitFilter(uint16_t pattern)
Definition: HitPattern.h:612
reco::HitPattern::minPixelWord
const static unsigned short minPixelWord
Definition: HitPattern.h:461
reco::HitPattern::getTrackerLayerCase
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:430
reco::HitPattern::timingETLHitFilter
static bool timingETLHitFilter(uint16_t pattern)
Definition: HitPattern.h:681
reco::HitPattern::numberOfLostStripTOBHits
int numberOfLostStripTOBHits(HitCategory category) const
Definition: HitPattern.h:906
reco::HitPattern::getSubSubStructure
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:704
TrackingRecHit::Type
Type
Definition: TrackingRecHit.h:45
reco::HitPattern::stripTIDLayersTotallyOffOrBad
int stripTIDLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.cc:711
mps_fire.end
end
Definition: mps_fire.py:242
reco::HitPattern::print
void print(HitCategory category, std::ostream &stream=std::cout) const
Definition: HitPattern.cc:839
p2
double p2[4]
Definition: TauolaWrapper.h:90
reco::PatternSet::operator[]
unsigned char operator[](int i) const
Definition: HitPattern.h:1077
N
#define N
Definition: blowfish.cc:9
reco::HitPattern::minStripWord
const static unsigned short minStripWord
Definition: HitPattern.h:462
reco::HitPattern::numberOfLostTimingETLHits
int numberOfLostTimingETLHits() const
Definition: HitPattern.h:878
reco::HitPattern::pixelEndcapLayersTotallyOffOrBad
int pixelEndcapLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.cc:690
reco::HitPattern::getGEMStation
static uint16_t getGEMStation(uint16_t pattern)
GEM station: 1,2. Only valid for muon GEM patterns, of course.
Definition: HitPattern.h:751
reco::HitPattern::getCategoryIndexRange
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:506
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
reco::HitPattern::hasValidHitInPixelLayer
bool hasValidHitInPixelLayer(enum PixelSubdetector::SubDetector, uint16_t layer) const
Definition: HitPattern.cc:337
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
trackingPlots.other
other
Definition: trackingPlots.py:1467
reco::HitPattern::missingHitFilter
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:767
reco::HitPattern::numberOfInactiveTimingHits
int numberOfInactiveTimingHits() const
reco::HitPattern::HIT_DETECTOR_TYPE
HIT_DETECTOR_TYPE
Definition: HitPattern.h:151
reco::HitPattern::muonStationsWithAnyHits
int muonStationsWithAnyHits() const
Definition: HitPattern.h:1017
MuonSubdetId::DT
static constexpr int DT
Definition: MuonSubdetId.h:11
h
reco::HitPattern::pixelBarrelLayersWithoutMeasurement
int pixelBarrelLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:617
reco::HitPattern::insertHit
void insertHit(const uint16_t pattern)
Definition: HitPattern.cc:955
ALCARECOTkAlBeamHalo_cff.filter
filter
Definition: ALCARECOTkAlBeamHalo_cff.py:27
reco::HitPattern::getRPCregion
static uint16_t getRPCregion(uint16_t pattern)
RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course.
Definition: HitPattern.h:748
reco::HitPattern::VALID
Definition: HitPattern.h:153
reco::HitPattern::numberOfValidMuonCSCHits
int numberOfValidMuonCSCHits() const
Definition: HitPattern.h:836
reco::HitPattern::SideOffset
const static unsigned short SideOffset
Definition: HitPattern.h:444
PixelSubdetector::SubDetector
SubDetector
Definition: PixelSubdetector.h:11
reco::HitPattern::pixelHitFilter
static bool pixelHitFilter(uint16_t pattern)
Definition: HitPattern.h:573
reco::HitPattern::stripTIBLayersWithMeasurement
int stripTIBLayersWithMeasurement() const
Definition: HitPattern.cc:577
reco::HitPattern::numberOfDTStationsWithBothViews
int numberOfDTStationsWithBothViews() const
Definition: HitPattern.cc:942
reco::HitPattern::getLayer
static uint32_t getLayer(uint16_t pattern)
Definition: HitPattern.h:702
reco::PatternSet::end
unsigned const char * end() const
Definition: HitPattern.h:1069
reco::HitPattern::printHitPattern
void printHitPattern(HitCategory category, int position, std::ostream &stream) const
Definition: HitPattern.cc:803
reco::HitPattern::MONO
Definition: HitPattern.h:149
reco::HitPattern::numberOfInactiveHits
int numberOfInactiveHits() const
Definition: HitPattern.h:960
reco::HitPattern::cscStationsWithBadHits
int cscStationsWithBadHits() const
Definition: HitPattern.h:1027
reco::HitPattern::pixelEndcapHitFilter
static bool pixelEndcapHitFilter(uint16_t pattern)
Definition: HitPattern.h:589
reco::HitPattern::stripTECLayersTotallyOffOrBad
int stripTECLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.cc:731
reco::HitPattern::appendHits
bool appendHits(const I &begin, const I &end, const TrackerTopology &ttopo)
Definition: HitPattern.h:522
reco::HitPattern::innermostMuonStationWithAnyHits
int innermostMuonStationWithAnyHits() const
Definition: HitPattern.h:1053
MTDDetId.h
reco::HitPattern::numberOfLostPixelHits
int numberOfLostPixelHits(HitCategory category) const
Definition: HitPattern.h:882
reco::HitPattern::outermostMuonStationWithValidHits
int outermostMuonStationWithValidHits() const
Definition: HitPattern.h:1055
reco::HitPattern::SubstrMask
const static unsigned short SubstrMask
Definition: HitPattern.h:453
reco::HitPattern::outermostMuonStationWithAnyHits
int outermostMuonStationWithAnyHits() const
Definition: HitPattern.h:1059
reco::HitPattern::pixelLayersTotallyOffOrBad
int pixelLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.h:996
reco::HitPattern::numberOfBadMuonME0Hits
int numberOfBadMuonME0Hits() const
Definition: HitPattern.h:956
reco::HitPattern::timingHitFilter
static bool timingHitFilter(uint16_t pattern)
Definition: HitPattern.h:688
reco::PatternSet::nhit
unsigned char nhit
Definition: HitPattern.h:1065
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
reco::HitPattern::numberOfValidTECLayersWithMonoAndStereo
int numberOfValidTECLayersWithMonoAndStereo(uint32_t layer=0) const
Definition: HitPattern.cc:426
reco::HitPattern::HIT_TYPE
HIT_TYPE
Definition: HitPattern.h:153
reco::HitPattern::EMPTY_PATTERN
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:161
reco::PatternSet::begin
unsigned char * begin()
Definition: HitPattern.h:1071
reco::HitPattern::numberOfBadMuonRPCHits
int numberOfBadMuonRPCHits() const
Definition: HitPattern.h:948
topSingleLeptonDQM_PU_cfi.pattern
pattern
Definition: topSingleLeptonDQM_PU_cfi.py:39
reco::HitPattern::getETLRing
static uint16_t getETLRing(uint16_t pattern)
ETL Ring: 1-12. Only valid for ETL patterns of course.
Definition: HitPattern.h:761
reco::HitPattern::stripTIDLayersWithoutMeasurement
int stripTIDLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:649
reco::HitPattern::pixelLayersWithMeasurementOld
int pixelLayersWithMeasurementOld() const
Definition: HitPattern.h:970
p1
double p1[4]
Definition: TauolaWrapper.h:89
reco::HitPattern::rpcStationsWithValidHits
int rpcStationsWithValidHits() const
Definition: HitPattern.h:1031
reco::HitPattern::numberOfValidStripTIBHits
int numberOfValidStripTIBHits() const
Definition: HitPattern.h:816
reco::HitPattern::getMuonStation
static uint16_t getMuonStation(uint16_t pattern)
Muon station (1-4). Only valid for muon patterns, of course. only for patterns from muon,...
Definition: HitPattern.h:732
reco::HitPattern::numberOfValidTimingETLHits
int numberOfValidTimingETLHits() const
Definition: HitPattern.h:856
MuonSubdetId::ME0
static constexpr int ME0
Definition: MuonSubdetId.h:15
reco::HitPattern::muonStationsWithBadHits
int muonStationsWithBadHits() const
Definition: HitPattern.h:1015
reco::HitPattern::countTypedHits
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:561
reco::HitPattern::numberOfLostMuonCSCHits
int numberOfLostMuonCSCHits() const
Definition: HitPattern.h:918
reco::HitPattern::getHitPatternByAbsoluteIndex
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:297
reco::HitPattern::SubDetectorMask
const static unsigned short SubDetectorMask
Definition: HitPattern.h:457
reco::HitPattern::numberOfLostMuonGEMHits
int numberOfLostMuonGEMHits() const
Definition: HitPattern.h:926
MuonSubdetId.h
reco::HitPattern::LayerMask
const static unsigned short LayerMask
Definition: HitPattern.h:449
reco::HitPattern::isStereo
static uint16_t isStereo(DetId i, const TrackerTopology &ttopo)
Definition: HitPattern.cc:855
reco::HitPattern::timingBTLHitFilter
static bool timingBTLHitFilter(uint16_t pattern)
Definition: HitPattern.h:674
reco::HitPattern::badHitFilter
static bool badHitFilter(uint16_t pattern)
Definition: HitPattern.h:771
reco::HitPattern::pixelBarrelLayersTotallyOffOrBad
int pixelBarrelLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.cc:679
reco::HitPattern::TRACK_HITS
Definition: HitPattern.h:155
reco::HitPattern::numberOfValidMuonDTHits
int numberOfValidMuonDTHits() const
Definition: HitPattern.h:832
TrackingRecHit
Definition: TrackingRecHit.h:21
reco::HitPattern::ARRAY_LENGTH
const static unsigned short ARRAY_LENGTH
Definition: HitPattern.h:156
reco::HitPattern::~HitPattern
~HitPattern()
Definition: HitPattern.cc:35
reco::HitPattern::pixelEndcapLayersNull
int pixelEndcapLayersNull() const
Definition: HitPattern.cc:752
reco::HitPattern::getBTLModType
static uint16_t getBTLModType(uint16_t pattern)
BTL Module type: 1,2,3. Only valid for BTL patterns of course.
Definition: HitPattern.h:759
reco::HitPattern::numberOfLostPixelBarrelHits
int numberOfLostPixelBarrelHits(HitCategory category) const
Definition: HitPattern.h:886
reco::HitPattern::numberOfValidStripTIDHits
int numberOfValidStripTIDHits() const
Definition: HitPattern.h:820
reco::HitPattern::stripTOBLayersTotallyOffOrBad
int stripTOBLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.cc:721
MTDDetId::BTL
Definition: MTDDetId.h:27
reco::PatternSet::end
unsigned char * end()
Definition: HitPattern.h:1073
reco::PatternSet::size
int size() const
Definition: HitPattern.h:1075
reco::HitPattern::stripTIDLayersWithMeasurement
int stripTIDLayersWithMeasurement() const
Definition: HitPattern.cc:587
reco::HitPattern::numberOfAllHits
int numberOfAllHits(HitCategory category) const
Definition: HitPattern.h:773
reco::HitPattern::HitCategory
HitCategory
Definition: HitPattern.h:155
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
reco::HitPattern::trackerLayersNull
int trackerLayersNull() const
Definition: HitPattern.h:1005
reco::HitPattern::gemStationsWithBadHits
int gemStationsWithBadHits() const
Definition: HitPattern.h:1039
reco::HitPattern::rpcStationsWithAnyHits
int rpcStationsWithAnyHits() const
Definition: HitPattern.h:1035
reco::HitPattern::muonStations
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC) 4(GEM); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:877
reco::PatternSet::begin
unsigned const char * begin() const
Definition: HitPattern.h:1067
reco::HitPattern::me0StationsWithAnyHits
int me0StationsWithAnyHits() const
Definition: HitPattern.h:1047
reco::HitPattern::numberOfValidStripHits
int numberOfValidStripHits() const
Definition: HitPattern.h:812
reco::HitPattern::numberOfValidTrackerHits
int numberOfValidTrackerHits() const
Definition: HitPattern.h:788
reco::HitPattern::numberOfValidStripTOBHits
int numberOfValidStripTOBHits() const
Definition: HitPattern.h:824
reco::HitPattern::appendMuonHit
bool appendMuonHit(const DetId &id, TrackingRecHit::Type hitType)
Definition: HitPattern.cc:281
DetId.h
reco::HitPattern::INACTIVE
Definition: HitPattern.h:153
MuonSubdetId::RPC
static constexpr int RPC
Definition: MuonSubdetId.h:13
reco::HitPattern::stripLayersNull
int stripLayersNull() const
Definition: HitPattern.h:1009
reco::HitPattern::innermostMuonStationWithHits
int innermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:890
LIKELY
#define LIKELY(x)
Definition: Likely.h:20
MTDDetId::ETL
Definition: MTDDetId.h:27
reco::HitPattern::stripSubdetectorHitFilter
static bool stripSubdetectorHitFilter(uint16_t pattern, StripSubdetector::SubDetector substructure)
Definition: HitPattern.h:601
reco::HitPattern::appendTrackerHit
bool appendTrackerHit(uint16_t subdet, uint16_t layer, uint16_t stereo, TrackingRecHit::Type hitType)
Definition: HitPattern.cc:277
reco::HitPattern::numberOfValidMuonHits
int numberOfValidMuonHits() const
Definition: HitPattern.h:792
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
reco::HitPattern::cscStationsWithValidHits
int cscStationsWithValidHits() const
Definition: HitPattern.h:1025
reco::HitPattern::stripLayersTotallyOffOrBad
int stripLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.h:1000
reco::HitPattern::BAD
Definition: HitPattern.h:153
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
BeamSpotPI::unpack
std::pair< unsigned int, unsigned int > unpack(cond::Time_t since)
Definition: BeamSpotPayloadInspectorHelper.h:22
reco::HitPattern::HitTypeMask
const static unsigned short HitTypeMask
Definition: HitPattern.h:441
reco::HitPattern::stripTECHitFilter
static bool stripTECHitFilter(uint16_t pattern)
Definition: HitPattern.h:620
reco::HitPattern::countHits
int countHits(HitCategory category, filterType filter) const
Definition: HitPattern.h:538
reco::HitPattern::numberOfBadMuonCSCHits
int numberOfBadMuonCSCHits() const
Definition: HitPattern.h:944
reco::commonHits
PatternSet< N > commonHits(PatternSet< N > const &p1, PatternSet< N > const &p2)
Definition: HitPattern.h:1108
reco::HitPattern::hitCount
uint8_t hitCount
Definition: HitPattern.h:491
reco::HitPattern::numberOfBadMuonHits
int numberOfBadMuonHits() const
Definition: HitPattern.h:936
reco::HitPattern::pixelEndcapLayersWithoutMeasurement
int pixelEndcapLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:628
reco::HitPattern::numberOfValidMuonRPCHits
int numberOfValidMuonRPCHits() const
Definition: HitPattern.h:840
reco::HitPattern::numberOfLostTrackerHits
int numberOfLostTrackerHits(HitCategory category) const
Definition: HitPattern.h:862
reco::HitPattern::numberOfValidPixelHits
int numberOfValidPixelHits() const
Definition: HitPattern.h:800
reco::HitPattern::numberOfLostStripHits
int numberOfLostStripHits(HitCategory category) const
Definition: HitPattern.h:894
reco::HitPattern::MTD_HIT
Definition: HitPattern.h:151
test::TestHitPattern::test
int test()
reco::HitPattern::numberOfDTStationsWithRPhiView
int numberOfDTStationsWithRPhiView() const
Definition: HitPattern.cc:919
reco::HitPattern::NULL_RETURN
static const uint32_t NULL_RETURN
Definition: HitPattern.h:160
reco::HitPattern::endTrackHits
uint8_t endTrackHits
Definition: HitPattern.h:494
reco::HitPattern::SubstrOffset
const static unsigned short SubstrOffset
Definition: HitPattern.h:452
reco::HitPattern::numberOfLostMuonME0Hits
int numberOfLostMuonME0Hits() const
Definition: HitPattern.h:930
reco::HitPattern::pixelBarrelHitFilter
static bool pixelBarrelHitFilter(uint16_t pattern)
Definition: HitPattern.h:581
reco::HitPattern::pixelLayersWithoutMeasurement
int pixelLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.h:983
reco::HitPattern::numberOfValidStripLayersWithMonoAndStereo
int numberOfValidStripLayersWithMonoAndStereo() const
Definition: HitPattern.cc:393
reco::HitPattern::numberOfValidMuonME0Hits
int numberOfValidMuonME0Hits() const
Definition: HitPattern.h:848
reco::HitPattern::numberOfValidTIDLayersWithMonoAndStereo
int numberOfValidTIDLayersWithMonoAndStereo(uint32_t layer=0) const
Definition: HitPattern.cc:422
reco::HitPattern::stripTECLayersWithMeasurement
int stripTECLayersWithMeasurement() const
Definition: HitPattern.cc:607
reco::HitPattern::numberOfValidTimingHits
int numberOfValidTimingHits() const
Definition: HitPattern.h:796
reco::HitPattern::outermostMuonStationWithHits
int outermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:905
reco::HitPattern::numberOfValidHits
int numberOfValidHits() const
Definition: HitPattern.h:786
reco::HitPattern::insertExpectedOuterHit
bool insertExpectedOuterHit(const uint16_t pattern)
Definition: HitPattern.cc:998
reco::HitPattern::stripTIBLayersTotallyOffOrBad
int stripTIBLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.cc:701
SiStripSubdetector::Subdetector
Subdetector
Definition: SiStripEnums.h:5
reco::HitPattern::SubDetectorOffset
const static unsigned short SubDetectorOffset
Definition: HitPattern.h:456
reco::HitPattern::stripHitFilter
static bool stripHitFilter(uint16_t pattern)
Definition: HitPattern.h:597
reco::HitPattern::MaxHits
const static unsigned short MaxHits
Definition: HitPattern.h:158
reco::HitPattern::me0StationsWithValidHits
int me0StationsWithValidHits() const
Definition: HitPattern.h:1043
reco::HitPattern::gemStationsWithValidHits
int gemStationsWithValidHits() const
Definition: HitPattern.h:1037
reco::HitPattern::muonDTHitFilter
static bool muonDTHitFilter(uint16_t pattern)
Definition: HitPattern.h:624
reco::HitPattern::getTrackerMonoStereo
uint16_t getTrackerMonoStereo(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:458
reco::HitPattern::numberOfDTStationsWithRZView
int numberOfDTStationsWithRZView() const
Definition: HitPattern.cc:931
reco::HitPattern::getDTSuperLayer
static uint16_t getDTSuperLayer(uint16_t pattern)
DT superlayer (1-3). Where the "hit" was a DT segment, superlayer is 0. Only valid for muon DT patter...
Definition: HitPattern.h:734
reco::HitPattern::MISSING
Definition: HitPattern.h:153
reco::PatternSet
Definition: HitPattern.h:1062
StripSubdetector.h
reco::HitPattern::endInner
uint8_t endInner
Definition: HitPattern.h:496
reco::HitPattern::hitPattern
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:490
reco::HitPattern::numberOfLostMuonRPCHits
int numberOfLostMuonRPCHits() const
Definition: HitPattern.h:922
reco::HitPattern::numberOfValidTIBLayersWithMonoAndStereo
int numberOfValidTIBLayersWithMonoAndStereo(uint32_t layer=0) const
Definition: HitPattern.cc:418
reco::HitPattern::muonME0HitFilter
static bool muonME0HitFilter(uint16_t pattern)
Definition: HitPattern.h:656
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
reco::HitPattern::stripTECLayersNull
int stripTECLayersNull() const
Definition: HitPattern.cc:793
hit
Definition: SiStripHitEffFromCalibTree.cc:88
reco::HitPattern::stripTECLayersWithoutMeasurement
int stripTECLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:669
reco::HitPattern::call
void call(HitCategory category, filterType typeFilter, F f) const
Definition: HitPattern.h:550
reco::PatternSet::MaxHits
static constexpr int MaxHits
Definition: HitPattern.h:1063
reco::HitPattern::insertTrackHit
bool insertTrackHit(const uint16_t pattern)
Definition: HitPattern.cc:966
reco::HitPattern::stripTOBLayersNull
int stripTOBLayersNull() const
Definition: HitPattern.cc:783
reco::HitPattern::stripTIDLayersNull
int stripTIDLayersNull() const
Definition: HitPattern.cc:773
reco::HitPattern::dtStationsWithAnyHits
int dtStationsWithAnyHits() const
Definition: HitPattern.h:1023