CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends
reco::HitPattern Class Reference

#include <HitPattern.h>

Public Types

enum  { MONO = 1, STEREO = 2 }
 
enum  HIT_TYPE { VALID = 0, MISSING = 1, INACTIVE = 2, BAD = 3 }
 
enum  HitCategory { TRACK_HITS = 0, MISSING_INNER_HITS = 1, MISSING_OUTER_HITS = 2 }
 

Public Member Functions

bool appendHit (const TrackingRecHit &hit, const TrackerTopology &ttopo)
 
bool appendHit (const TrackingRecHitRef &ref, const TrackerTopology &ttopo)
 
bool appendHit (const DetId &id, TrackingRecHit::Type hitType, const TrackerTopology &ttopo)
 
template<typename I >
bool appendHits (const I &begin, const I &end, const TrackerTopology &ttopo)
 
bool appendMuonHit (const DetId &id, TrackingRecHit::Type hitType)
 
bool appendTrackerHit (uint16_t subdet, uint16_t layer, uint16_t stereo, TrackingRecHit::Type hitType)
 
void clear ()
 
int cscStationsWithAnyHits () const
 
int cscStationsWithBadHits () const
 
int cscStationsWithValidHits () const
 
int dtStationsWithAnyHits () const
 
int dtStationsWithBadHits () const
 
int dtStationsWithValidHits () const
 
int gemStationsWithAnyHits () const
 
int gemStationsWithBadHits () const
 
int gemStationsWithValidHits () const
 
uint16_t getHitPattern (HitCategory category, int position) const
 
uint32_t getTrackerLayerCase (HitCategory category, uint16_t substr, uint16_t layer) const
 
uint16_t getTrackerMonoStereo (HitCategory category, uint16_t substr, uint16_t layer) const
 
bool hasValidHitInFirstPixelBarrel () const
 
bool hasValidHitInFirstPixelEndcap () const
 
 HitPattern ()
 
 HitPattern (const HitPattern &other)
 
int innermostMuonStationWithAnyHits () const
 
int innermostMuonStationWithBadHits () const
 
int innermostMuonStationWithHits (int hitType) const
 hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all More...
 
int innermostMuonStationWithValidHits () const
 
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 More...
 
int muonStationsWithAnyHits () const
 
int muonStationsWithBadHits () const
 
int muonStationsWithValidHits () const
 
int numberOfBadHits () const
 
int numberOfBadMuonCSCHits () const
 
int numberOfBadMuonDTHits () const
 
int numberOfBadMuonGEMHits () const
 
int numberOfBadMuonHits () const
 
int numberOfBadMuonRPCHits () const
 
int numberOfDTStationsWithBothViews () const
 
int numberOfDTStationsWithRPhiView () const
 
int numberOfDTStationsWithRZView () const
 
int numberOfHits (HitCategory category) const
 
int numberOfInactiveHits () const
 
int numberOfInactiveTrackerHits () const
 
int numberOfLostHits (HitCategory category) const
 
int numberOfLostMuonCSCHits () const
 
int numberOfLostMuonDTHits () const
 
int numberOfLostMuonGEMHits () const
 
int numberOfLostMuonHits () const
 
int numberOfLostMuonRPCHits () const
 
int numberOfLostPixelBarrelHits (HitCategory category) const
 
int numberOfLostPixelEndcapHits (HitCategory category) const
 
int numberOfLostPixelHits (HitCategory category) const
 
int numberOfLostStripHits (HitCategory category) const
 
int numberOfLostStripTECHits (HitCategory category) const
 
int numberOfLostStripTIBHits (HitCategory category) const
 
int numberOfLostStripTIDHits (HitCategory category) const
 
int numberOfLostStripTOBHits (HitCategory category) const
 
int numberOfLostTrackerHits (HitCategory category) const
 
int numberOfMuonHits () const
 
int numberOfTrackerHits (HitCategory category) const
 
int numberOfValidHits () const
 
int numberOfValidMuonCSCHits () const
 
int numberOfValidMuonDTHits () const
 
int numberOfValidMuonGEMHits () const
 
int numberOfValidMuonHits () const
 
int numberOfValidMuonRPCHits () const
 
int numberOfValidPixelBarrelHits () const
 
int numberOfValidPixelEndcapHits () const
 
int numberOfValidPixelHits () const
 
int numberOfValidStripHits () const
 
int numberOfValidStripLayersWithMonoAndStereo (uint16_t stripdet, uint16_t layer) const
 
int numberOfValidStripLayersWithMonoAndStereo () const
 
int numberOfValidStripTECHits () const
 
int numberOfValidStripTIBHits () const
 
int numberOfValidStripTIDHits () const
 
int numberOfValidStripTOBHits () const
 
int numberOfValidTECLayersWithMonoAndStereo (uint32_t layer=0) const
 
int numberOfValidTIBLayersWithMonoAndStereo (uint32_t layer=0) const
 
int numberOfValidTIDLayersWithMonoAndStereo (uint32_t layer=0) const
 
int numberOfValidTOBLayersWithMonoAndStereo (uint32_t layer=0) const
 
int numberOfValidTrackerHits () const
 
HitPatternoperator= (const HitPattern &other)
 
int outermostMuonStationWithAnyHits () const
 
int outermostMuonStationWithBadHits () const
 
int outermostMuonStationWithHits (int hitType) const
 hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all More...
 
int outermostMuonStationWithValidHits () const
 
int pixelBarrelLayersNull () const
 
int pixelBarrelLayersTotallyOffOrBad () const
 
int pixelBarrelLayersWithMeasurement () const
 
int pixelBarrelLayersWithoutMeasurement (HitCategory category) const
 
int pixelEndcapLayersNull () const
 
int pixelEndcapLayersTotallyOffOrBad () const
 
int pixelEndcapLayersWithMeasurement () const
 
int pixelEndcapLayersWithoutMeasurement (HitCategory category) const
 
int pixelLayersNull () const
 
int pixelLayersTotallyOffOrBad () const
 
int pixelLayersWithMeasurement () const
 
int pixelLayersWithMeasurementOld () const
 
int pixelLayersWithoutMeasurement (HitCategory category) const
 
void print (HitCategory category, std::ostream &stream=std::cout) const
 
void printHitPattern (HitCategory category, int position, std::ostream &stream) const
 
int rpcStationsWithAnyHits () const
 
int rpcStationsWithBadHits () const
 
int rpcStationsWithValidHits () const
 
int stripLayersNull () const
 
int stripLayersTotallyOffOrBad () const
 
int stripLayersWithMeasurement () const
 
int stripLayersWithoutMeasurement (HitCategory category) const
 
int stripTECLayersNull () const
 
int stripTECLayersTotallyOffOrBad () const
 
int stripTECLayersWithMeasurement () const
 
int stripTECLayersWithoutMeasurement (HitCategory category) const
 
int stripTIBLayersNull () const
 
int stripTIBLayersTotallyOffOrBad () const
 
int stripTIBLayersWithMeasurement () const
 
int stripTIBLayersWithoutMeasurement (HitCategory category) const
 
int stripTIDLayersNull () const
 
int stripTIDLayersTotallyOffOrBad () const
 
int stripTIDLayersWithMeasurement () const
 
int stripTIDLayersWithoutMeasurement (HitCategory category) const
 
int stripTOBLayersNull () const
 
int stripTOBLayersTotallyOffOrBad () const
 
int stripTOBLayersWithMeasurement () const
 
int stripTOBLayersWithoutMeasurement (HitCategory category) const
 
int trackerLayersNull () const
 
int trackerLayersTotallyOffOrBad () const
 
int trackerLayersWithMeasurement () const
 
int trackerLayersWithMeasurementOld () const
 
int trackerLayersWithoutMeasurement (HitCategory category) const
 
int trackerLayersWithoutMeasurementOld (HitCategory category) const
 
 ~HitPattern ()
 

Static Public Member Functions

static bool badHitFilter (uint16_t pattern)
 
static uint16_t getCSCRing (uint16_t pattern)
 CSC ring (1-4). Only valid for muon CSC patterns, of course. More...
 
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 patterns, of course. More...
 
static uint16_t getGEMLayer (uint16_t pattern)
 GEM layer: 1,2. Only valid for muon GEM patterns, of course. More...
 
static uint16_t getGEMStation (uint16_t pattern)
 GEM station: 1,2. Only valid for muon GEM patterns, of course. More...
 
static uint32_t getHitType (uint16_t pattern)
 
static uint32_t getLayer (uint16_t pattern)
 
static uint16_t getMuonStation (uint16_t pattern)
 Muon station (1-4). Only valid for muon patterns, of course. only for patterns from muon, of course. More...
 
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. Only valid for muon RPC patterns, of course. More...
 
static uint16_t getRPCregion (uint16_t pattern)
 RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course. More...
 
static uint32_t getSide (uint16_t pattern)
 
static uint32_t getSubDetector (uint16_t pattern)
 
static uint32_t getSubStructure (uint16_t pattern)
 
static uint32_t getSubSubStructure (uint16_t pattern)
 
static bool inactiveHitFilter (uint16_t pattern)
 
static bool missingHitFilter (uint16_t pattern)
 
static bool muonCSCHitFilter (uint16_t pattern)
 
static bool muonDTHitFilter (uint16_t pattern)
 
static bool muonGEMHitFilter (uint16_t pattern)
 
static bool muonHitFilter (uint16_t pattern)
 
static bool muonRPCHitFilter (uint16_t pattern)
 
static bool pixelBarrelHitFilter (uint16_t pattern)
 
static bool pixelEndcapHitFilter (uint16_t pattern)
 
static bool pixelHitFilter (uint16_t pattern)
 
static bool stripHitFilter (uint16_t pattern)
 
static bool stripTECHitFilter (uint16_t pattern)
 
static bool stripTIBHitFilter (uint16_t pattern)
 
static bool stripTIDHitFilter (uint16_t pattern)
 
static bool stripTOBHitFilter (uint16_t pattern)
 
static bool trackerHitFilter (uint16_t pattern)
 
static bool validHitFilter (uint16_t pattern)
 

Static Public Attributes

static const unsigned short ARRAY_LENGTH = 50
 
static const uint16_t EMPTY_PATTERN = 0x0
 
static const unsigned short HIT_LENGTH = 11
 
static const unsigned short MaxHits = (8 * sizeof(uint16_t) * ARRAY_LENGTH) / HIT_LENGTH
 
static const uint32_t NULL_RETURN = 999999
 

Private Types

typedef bool filterType (uint16_t)
 

Private Member Functions

bool appendHit (const uint16_t pattern, TrackingRecHit::Type hitType)
 
template<typename F >
void call (HitCategory category, filterType typeFilter, F f) const
 
int countHits (HitCategory category, filterType filter) const
 
int countTypedHits (HitCategory category, filterType typeFilter, filterType filter) const
 
std::pair< uint8_t, uint8_t > getCategoryIndexRange (HitCategory category) const
 
uint16_t getHitPatternByAbsoluteIndex (int position) const
 
bool insertExpectedInnerHit (const uint16_t pattern)
 
bool insertExpectedOuterHit (const uint16_t pattern)
 
void insertHit (const uint16_t pattern)
 
bool insertTrackHit (const uint16_t pattern)
 

Static Private Member Functions

static uint16_t encode (const TrackingRecHit &hit, const TrackerTopology &ttopo)
 
static uint16_t encode (const DetId &id, TrackingRecHit::Type hitType, const TrackerTopology &ttopo)
 
static uint16_t encode (uint16_t det, uint16_t subdet, uint16_t layer, uint16_t side, TrackingRecHit::Type hitType)
 
static uint16_t isStereo (DetId i, const TrackerTopology &ttopo)
 
static bool stripSubdetectorHitFilter (uint16_t pattern, StripSubdetector::SubDetector substructure)
 

Private Attributes

uint8_t beginInner
 
uint8_t beginOuter
 
uint8_t beginTrackHits
 
uint8_t endInner
 
uint8_t endOuter
 
uint8_t endTrackHits
 
uint8_t hitCount
 
uint16_t hitPattern [ARRAY_LENGTH]
 

Static Private Attributes

static const unsigned short HitTypeMask = 0x3
 
static const unsigned short HitTypeOffset = 0
 
static const unsigned short LayerMask = 0xF
 
static const unsigned short LayerOffset = 3
 
static const unsigned short minPixelWord = minTrackerWord | (1<<SubstrOffset)
 
static const unsigned short minStripWord = minTrackerWord | (3<<SubstrOffset)
 
static const unsigned short minTrackerWord = 1<< SubDetectorOffset
 
static const unsigned short SideMask = 0x1
 
static const unsigned short SideOffset = 2
 
static const unsigned short SubDetectorMask = 0x1
 
static const unsigned short SubDetectorOffset = 10
 
static const unsigned short SubstrMask = 0x7
 
static const unsigned short SubstrOffset = 7
 

Friends

template<int N>
struct PatternSet
 
int test::TestHitPattern::test ()
 

Detailed Description

Definition at line 144 of file HitPattern.h.

Member Typedef Documentation

typedef bool reco::HitPattern::filterType(uint16_t)
private

Definition at line 441 of file HitPattern.h.

Member Enumeration Documentation

anonymous enum
Enumerator
MONO 
STEREO 

Definition at line 148 of file HitPattern.h.

148  {
149  MONO = 1,
150  STEREO = 2
151  };
Enumerator
VALID 
MISSING 
INACTIVE 
BAD 

Definition at line 153 of file HitPattern.h.

Enumerator
TRACK_HITS 
MISSING_INNER_HITS 
MISSING_OUTER_HITS 

Definition at line 160 of file HitPattern.h.

Constructor & Destructor Documentation

HitPattern::HitPattern ( )

Definition at line 20 of file HitPattern.cc.

References ARRAY_LENGTH, EMPTY_PATTERN, and hitPattern.

20  :
21  hitCount(0),
22  beginTrackHits(0),
23  endTrackHits(0),
24  beginInner(0),
25  endInner(0),
26  beginOuter(0),
27  endOuter(0)
28 {
30 }
static const unsigned short ARRAY_LENGTH
Definition: HitPattern.h:165
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
uint8_t endInner
Definition: HitPattern.h:465
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:459
uint8_t beginInner
Definition: HitPattern.h:464
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint8_t hitCount
Definition: HitPattern.h:460
uint8_t beginOuter
Definition: HitPattern.h:466
uint8_t endOuter
Definition: HitPattern.h:467
HitPattern::~HitPattern ( )

Definition at line 44 of file HitPattern.cc.

45 {
46  ;
47 }
HitPattern::HitPattern ( const HitPattern other)

Definition at line 32 of file HitPattern.cc.

References ARRAY_LENGTH, and hitPattern.

32  :
33  hitCount(other.hitCount),
36  beginInner(other.beginInner),
37  endInner(other.endInner),
38  beginOuter(other.beginOuter),
39  endOuter(other.endOuter)
40 {
41  memcpy(this->hitPattern, other.hitPattern, sizeof(uint16_t) * HitPattern::ARRAY_LENGTH);
42 }
static const unsigned short ARRAY_LENGTH
Definition: HitPattern.h:165
uint8_t endInner
Definition: HitPattern.h:465
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:459
uint8_t beginInner
Definition: HitPattern.h:464
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint8_t hitCount
Definition: HitPattern.h:460
uint8_t beginOuter
Definition: HitPattern.h:466
uint8_t endOuter
Definition: HitPattern.h:467

Member Function Documentation

bool HitPattern::appendHit ( const TrackingRecHit hit,
const TrackerTopology ttopo 
)

Definition at line 178 of file HitPattern.cc.

References TrackingRecHit::geographicalId(), and TrackingRecHit::getType().

Referenced by FixTrackHitPattern::analyze(), appendHit(), reco::TrackBase::appendHitPattern(), appendHits(), appendMuonHit(), and appendTrackerHit().

179 {
180  return appendHit(hit.geographicalId(), hit.getType(), ttopo);
181 }
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:178
Type getType() const
DetId geographicalId() const
bool HitPattern::appendHit ( const TrackingRecHitRef ref,
const TrackerTopology ttopo 
)

Definition at line 84 of file HitPattern.cc.

References appendHit().

85 {
86  return appendHit(*ref, ttopo);
87 }
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:178
bool HitPattern::appendHit ( const DetId id,
TrackingRecHit::Type  hitType,
const TrackerTopology ttopo 
)

Definition at line 183 of file HitPattern.cc.

References appendHit(), encode(), hitCount, MaxHits, chain::pattern, and unlikely.

184 {
185  //if HitPattern is full, journey ends no matter what.
187  return false;
188  }
189 
190  uint16_t pattern = HitPattern::encode(id, hitType, ttopo);
191 
192  return appendHit(pattern, hitType);
193 }
static const unsigned short MaxHits
Definition: HitPattern.h:167
list pattern
Definition: chain.py:104
#define unlikely(x)
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:178
uint8_t hitCount
Definition: HitPattern.h:460
static uint16_t encode(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:89
bool HitPattern::appendHit ( const uint16_t  pattern,
TrackingRecHit::Type  hitType 
)
private

Definition at line 195 of file HitPattern.cc.

References TrackingRecHit::bad, beginInner, beginOuter, beginTrackHits, endInner, endOuter, endTrackHits, Exception, hitCount, TrackingRecHit::inactive, insertExpectedInnerHit(), insertExpectedOuterHit(), insertTrackHit(), MaxHits, TrackingRecHit::missing, TrackingRecHit::missing_inner, TrackingRecHit::missing_outer, unlikely, and TrackingRecHit::valid.

196 {
197  //if HitPattern is full, journey ends no matter what.
199  return false;
200  }
201 
202  switch (hitType) {
206  case TrackingRecHit::bad:
207  // hitCount != endT => we are not inserting T type of hits but of T'
208  // 0 != beginT || 0 != endT => we already have hits of T type
209  // so we already have hits of T in the vector and we don't want to
210  // mess them with T' hits.
211  if unlikely(((hitCount != endTrackHits) && (0 != beginTrackHits || 0 != endTrackHits))) {
212  cms::Exception("HitPattern")
213  << "TRACK_HITS"
214  << " were stored on this object before hits of some other category were inserted "
215  << "but hits of the same category should be inserted in a row. "
216  << "Please rework the code so it inserts all "
217  << "TRACK_HITS"
218  << " in a row.";
219  return false;
220  }
221  return insertTrackHit(pattern);
222  break;
224  if unlikely(((hitCount != endInner) && (0 != beginInner || 0 != endInner))) {
225  cms::Exception("HitPattern")
226  << "MISSING_INNER_HITS"
227  << " were stored on this object before hits of some other category were inserted "
228  << "but hits of the same category should be inserted in a row. "
229  << "Please rework the code so it inserts all "
230  << "MISSING_INNER_HITS"
231  << " in a row.";
232  return false;
233  }
235  break;
237  if unlikely(((hitCount != endOuter) && (0 != beginOuter || 0 != endOuter))) {
238  cms::Exception("HitPattern")
239  << "MISSING_OUTER_HITS"
240  << " were stored on this object before hits of some other category were inserted "
241  << "but hits of the same category should be inserted in a row. "
242  << "Please rework the code so it inserts all "
243  << "MISSING_OUTER_HITS"
244  << " in a row.";
245  return false;
246  }
248  break;
249  }
250 
251  return false;
252 }
static const unsigned short MaxHits
Definition: HitPattern.h:167
list pattern
Definition: chain.py:104
bool insertExpectedOuterHit(const uint16_t pattern)
Definition: HitPattern.cc:1039
#define unlikely(x)
uint8_t endInner
Definition: HitPattern.h:465
uint8_t beginInner
Definition: HitPattern.h:464
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint8_t hitCount
Definition: HitPattern.h:460
uint8_t beginOuter
Definition: HitPattern.h:466
bool insertExpectedInnerHit(const uint16_t pattern)
Definition: HitPattern.cc:1026
bool insertTrackHit(const uint16_t pattern)
Definition: HitPattern.cc:1007
uint8_t endOuter
Definition: HitPattern.h:467
template<typename I >
bool reco::HitPattern::appendHits ( const I &  begin,
const I &  end,
const TrackerTopology ttopo 
)

Definition at line 492 of file HitPattern.h.

References appendHit(), end, Exhume::I, and unlikely.

Referenced by reco::TrackBase::appendHits().

493 {
494  for (I hit = begin; hit != end; hit++) {
495  if unlikely((!appendHit(*hit, ttopo))) {
496  return false;
497  }
498  }
499  return true;
500 }
#define unlikely(x)
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:178
const std::complex< double > I
Definition: I.h:8
#define end
Definition: vmac.h:37
#define begin
Definition: vmac.h:30
bool HitPattern::appendMuonHit ( const DetId id,
TrackingRecHit::Type  hitType 
)

This is meant to be used only in cases where the an already-packed hit information is re-interpreted in terms of HitPattern (i.e. the IO rule for reading old versions of HitPattern)

Definition at line 258 of file HitPattern.cc.

References appendHit(), encode(), Exception, hitCount, MaxHits, DetId::Muon, and unlikely.

Referenced by reco::TrackBase::appendMuonHitPattern().

258  {
259  //if HitPattern is full, journey ends no matter what.
261  return false;
262  }
263 
264  if unlikely(id.det() != DetId::Muon) {
265  throw cms::Exception("HitPattern") << "Got DetId from det " << id.det() << " that is not Muon in appendMuonHit(), which should only be used for muon hits in the HitPattern IO rule";
266  }
267 
268  uint16_t detid = id.det();
269  uint16_t subdet = id.subdetId();
270  return appendHit(encode(detid, subdet, encodeMuonLayer(id), 0, hitType), hitType);
271 }
static const unsigned short MaxHits
Definition: HitPattern.h:167
#define unlikely(x)
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:178
uint8_t hitCount
Definition: HitPattern.h:460
static uint16_t encode(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:89
bool HitPattern::appendTrackerHit ( uint16_t  subdet,
uint16_t  layer,
uint16_t  stereo,
TrackingRecHit::Type  hitType 
)

This is meant to be used only in cases where the an already-packed hit information is re-interpreted in terms of HitPattern (i.e. MiniAOD PackedCandidate, and the IO rule for reading old versions of HitPattern)

Definition at line 254 of file HitPattern.cc.

References appendHit(), encode(), and DetId::Tracker.

Referenced by reco::TrackBase::appendTrackerHitPattern().

254  {
255  return appendHit(encode(DetId::Tracker, subdet, layer, stereo, hitType), hitType);
256 }
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:178
static uint16_t encode(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:89
bool reco::HitPattern::badHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 780 of file HitPattern.h.

References BAD, and getHitType().

Referenced by numberOfBadHits().

781 {
783 }
list pattern
Definition: chain.py:104
static uint32_t getHitType(uint16_t pattern)
Definition: HitPattern.h:713
template<typename F >
void reco::HitPattern::call ( HitCategory  category,
filterType  typeFilter,
F  f 
) const
private

Definition at line 526 of file HitPattern.h.

References f, getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), i, and chain::pattern.

527 {
528  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
529  for (int i = range.first; i < range.second; i++) {
531  // f() return false to ask to stop looping
532  if (typeFilter(pattern) && !f(pattern)) {
533  break;
534  }
535  }
536 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
double f[11][100]
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
void HitPattern::clear ( void  )

Definition at line 71 of file HitPattern.cc.

References ARRAY_LENGTH, beginInner, beginOuter, beginTrackHits, EMPTY_PATTERN, endInner, endOuter, endTrackHits, hitCount, and hitPattern.

Referenced by Vispa.Views.WidgetView.WidgetView::closeEvent(), Vispa.Views.BoxDecayView.BoxDecayView::closeEvent(), Vispa.Share.FindAlgorithm.FindAlgorithm::findUsingFindDialog(), reco::TrackBase::resetHitPattern(), Vispa.Views.LineDecayView.LineDecayView::setDataObjects(), Vispa.Views.WidgetView.WidgetView::setDataObjects(), BeautifulSoup.Tag::setString(), Vispa.Views.TreeView.TreeView::updateContent(), Vispa.Views.TableView.TableView::updateContent(), Vispa.Views.BoxDecayView.BoxDecayView::updateContent(), and Vispa.Views.PropertyView.PropertyView::updateContent().

72 {
73  this->hitCount = 0;
74  this->beginTrackHits = 0;
75  this->endTrackHits = 0;
76  this->beginInner = 0;
77  this->endInner = 0;
78  this->beginOuter = 0;
79  this->endOuter = 0;
80 
81  memset(this->hitPattern, EMPTY_PATTERN, sizeof(uint16_t) * HitPattern::ARRAY_LENGTH);
82 }
static const unsigned short ARRAY_LENGTH
Definition: HitPattern.h:165
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
uint8_t endInner
Definition: HitPattern.h:465
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:459
uint8_t beginInner
Definition: HitPattern.h:464
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint8_t hitCount
Definition: HitPattern.h:460
uint8_t beginOuter
Definition: HitPattern.h:466
uint8_t endOuter
Definition: HitPattern.h:467
int reco::HitPattern::countHits ( HitCategory  category,
filterType  filter 
) const
inlineprivate

Definition at line 512 of file HitPattern.h.

References prof2calltree::count, alcazmumu_cfi::filter, getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), and i.

Referenced by numberOfBadHits(), numberOfInactiveHits(), numberOfLostHits(), numberOfMuonHits(), numberOfTrackerHits(), and numberOfValidHits().

513 {
514  int count = 0;
515  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
516  for (int i = range.first; i < range.second; ++i) {
518  ++count;
519  }
520  }
521  return count;
522 }
int i
Definition: DBlmapReader.cc:9
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
int reco::HitPattern::countTypedHits ( HitCategory  category,
filterType  typeFilter,
filterType  filter 
) const
inlineprivate

Definition at line 538 of file HitPattern.h.

References prof2calltree::count, alcazmumu_cfi::filter, getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), i, and chain::pattern.

Referenced by numberOfBadMuonCSCHits(), numberOfBadMuonDTHits(), numberOfBadMuonGEMHits(), numberOfBadMuonHits(), numberOfBadMuonRPCHits(), numberOfInactiveTrackerHits(), numberOfLostMuonCSCHits(), numberOfLostMuonDTHits(), numberOfLostMuonGEMHits(), numberOfLostMuonHits(), numberOfLostMuonRPCHits(), numberOfLostPixelBarrelHits(), numberOfLostPixelEndcapHits(), numberOfLostPixelHits(), numberOfLostStripHits(), numberOfLostStripTECHits(), numberOfLostStripTIBHits(), numberOfLostStripTIDHits(), numberOfLostStripTOBHits(), numberOfLostTrackerHits(), numberOfValidMuonCSCHits(), numberOfValidMuonDTHits(), numberOfValidMuonGEMHits(), numberOfValidMuonHits(), numberOfValidMuonRPCHits(), numberOfValidPixelBarrelHits(), numberOfValidPixelEndcapHits(), numberOfValidPixelHits(), numberOfValidStripHits(), numberOfValidStripTECHits(), numberOfValidStripTIBHits(), numberOfValidStripTIDHits(), numberOfValidStripTOBHits(), and numberOfValidTrackerHits().

539 {
540  int count = 0;
541  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
542  for (int i = range.first; i < range.second; ++i) {
544  if (typeFilter(pattern) && filter(pattern)) {
545  ++count;
546  }
547  }
548  return count;
549 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
int reco::HitPattern::cscStationsWithAnyHits ( ) const
inline

Definition at line 1107 of file HitPattern.h.

References muonStations().

1108 {
1109  return muonStations(2, -1);
1110 }
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:904
int reco::HitPattern::cscStationsWithBadHits ( ) const
inline

Definition at line 1102 of file HitPattern.h.

References muonStations().

1103 {
1104  return muonStations(2, 3);
1105 }
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:904
int reco::HitPattern::cscStationsWithValidHits ( ) const
inline

Definition at line 1097 of file HitPattern.h.

References muonStations().

1098 {
1099  return muonStations(2, 0);
1100 }
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:904
int reco::HitPattern::dtStationsWithAnyHits ( ) const
inline

Definition at line 1092 of file HitPattern.h.

References muonStations().

1093 {
1094  return muonStations(1, -1);
1095 }
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:904
int reco::HitPattern::dtStationsWithBadHits ( ) const
inline

Definition at line 1087 of file HitPattern.h.

References muonStations().

1088 {
1089  return muonStations(1, 3);
1090 }
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:904
int reco::HitPattern::dtStationsWithValidHits ( ) const
inline

Definition at line 1082 of file HitPattern.h.

References muonStations().

1083 {
1084  return muonStations(1, 0);
1085 }
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:904
uint16_t HitPattern::encode ( const TrackingRecHit hit,
const TrackerTopology ttopo 
)
staticprivate

Definition at line 89 of file HitPattern.cc.

References TrackingRecHit::geographicalId(), and TrackingRecHit::getType().

Referenced by appendHit(), appendMuonHit(), appendTrackerHit(), and encode().

90 {
91  return encode(hit.geographicalId(), hit.getType(), ttopo);
92 }
Type getType() const
DetId geographicalId() const
static uint16_t encode(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:89
uint16_t HitPattern::encode ( const DetId id,
TrackingRecHit::Type  hitType,
const TrackerTopology ttopo 
)
staticprivate

Definition at line 131 of file HitPattern.cc.

References encode(), isStereo(), TrackerTopology::layer(), DetId::Muon, and DetId::Tracker.

132 {
133  uint16_t detid = id.det();
134  uint16_t subdet = id.subdetId();
135 
136  // adding layer/disk/wheel bits
137  uint16_t layer = 0x0;
138  if (detid == DetId::Tracker) {
139  layer = ttopo.layer(id);
140  } else if (detid == DetId::Muon) {
141  layer = encodeMuonLayer(id);
142  }
143 
144  // adding mono/stereo bit
145  uint16_t side = 0x0;
146  if (detid == DetId::Tracker) {
147  side = isStereo(id, ttopo);
148  } else if (detid == DetId::Muon) {
149  side = 0x0;
150  }
151 
152  return encode(detid, subdet, layer, side, hitType);
153 }
static uint16_t isStereo(DetId i, const TrackerTopology &ttopo)
Definition: HitPattern.cc:881
unsigned int layer(const DetId &id) const
static uint16_t encode(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:89
uint16_t HitPattern::encode ( uint16_t  det,
uint16_t  subdet,
uint16_t  layer,
uint16_t  side,
TrackingRecHit::Type  hitType 
)
staticprivate

Definition at line 155 of file HitPattern.cc.

References EMPTY_PATTERN, HitTypeMask, HitTypeOffset, LayerMask, LayerOffset, TrackingRecHit::missing, TrackingRecHit::missing_inner, TrackingRecHit::missing_outer, chain::pattern, SideMask, SideOffset, SubDetectorMask, SubDetectorOffset, SubstrMask, and SubstrOffset.

155  {
157 
158  // adding tracker/muon detector bit
159  pattern |= (det & SubDetectorMask) << SubDetectorOffset;
160 
161  // adding substructure (PXB, PXF, TIB, TID, TOB, TEC, or DT, CSC, RPC,GEM) bits
162  pattern |= (subdet & SubstrMask) << SubstrOffset;
163 
164  // adding layer/disk/wheel bits
165  pattern |= (layer & LayerMask) << LayerOffset;
166 
167  // adding mono/stereo bit
168  pattern |= (side & SideMask) << SideOffset;
169 
170  TrackingRecHit::Type patternHitType = (hitType == TrackingRecHit::missing_inner ||
172 
173  pattern |= (patternHitType & HitTypeMask) << HitTypeOffset;
174 
175  return pattern;
176 }
static const unsigned short SideOffset
Definition: HitPattern.h:412
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
static const unsigned short SubstrOffset
Definition: HitPattern.h:420
list pattern
Definition: chain.py:104
static const unsigned short HitTypeMask
Definition: HitPattern.h:409
static const unsigned short SubDetectorMask
Definition: HitPattern.h:425
static const unsigned short HitTypeOffset
Definition: HitPattern.h:408
static const unsigned short SideMask
Definition: HitPattern.h:413
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:424
static const unsigned short SubstrMask
Definition: HitPattern.h:421
static const unsigned short LayerOffset
Definition: HitPattern.h:416
static const unsigned short LayerMask
Definition: HitPattern.h:417
int reco::HitPattern::gemStationsWithAnyHits ( ) const
inline

Definition at line 1137 of file HitPattern.h.

References muonStations().

1138 {
1139  return muonStations(4,-1);
1140 }
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:904
int reco::HitPattern::gemStationsWithBadHits ( ) const
inline

Definition at line 1132 of file HitPattern.h.

References muonStations().

1133 {
1134  return muonStations(4, 3);
1135 }
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:904
int reco::HitPattern::gemStationsWithValidHits ( ) const
inline

Definition at line 1127 of file HitPattern.h.

References muonStations().

1128 {
1129  return muonStations(4, 0);
1130 }
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:904
std::pair< uint8_t, uint8_t > reco::HitPattern::getCategoryIndexRange ( HitCategory  category) const
inlineprivate

Definition at line 475 of file HitPattern.h.

References beginInner, beginOuter, beginTrackHits, endInner, endOuter, endTrackHits, MISSING_INNER_HITS, MISSING_OUTER_HITS, and TRACK_HITS.

Referenced by call(), countHits(), countTypedHits(), getHitPattern(), getTrackerLayerCase(), getTrackerMonoStereo(), numberOfHits(), numberOfValidStripLayersWithMonoAndStereo(), pixelLayersWithMeasurement(), trackerLayersWithMeasurement(), and trackerLayersWithoutMeasurement().

476 {
477  switch (category) {
478  case TRACK_HITS:
479  return std::pair<uint8_t, uint8_t>(beginTrackHits, endTrackHits);
480  break;
481  case MISSING_INNER_HITS:
482  return std::pair<uint8_t, uint8_t>(beginInner, endInner);
483  break;
484  case MISSING_OUTER_HITS:
485  return std::pair<uint8_t, uint8_t>(beginOuter, endOuter);
486  break;
487  }
488  return std::pair<uint8_t, uint8_t>(-1, -1);
489 }
uint8_t endInner
Definition: HitPattern.h:465
uint8_t beginInner
Definition: HitPattern.h:464
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint8_t beginOuter
Definition: HitPattern.h:466
uint8_t endOuter
Definition: HitPattern.h:467
uint16_t reco::HitPattern::getCSCRing ( uint16_t  pattern)
inlinestatic

CSC ring (1-4). Only valid for muon CSC patterns, of course.

Definition at line 732 of file HitPattern.h.

References getSubSubStructure().

Referenced by printHitPattern().

733 {
734  return (getSubSubStructure(pattern) & 3) + 1;
735 }
list pattern
Definition: chain.py:104
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:685
uint16_t reco::HitPattern::getDTSuperLayer ( uint16_t  pattern)
inlinestatic

DT superlayer (1-3). Where the "hit" was a DT segment, superlayer is 0. Only valid for muon DT patterns, of course.

Definition at line 727 of file HitPattern.h.

References getSubSubStructure().

Referenced by numberOfDTStationsWithBothViews(), numberOfDTStationsWithRPhiView(), numberOfDTStationsWithRZView(), and printHitPattern().

728 {
729  return (getSubSubStructure(pattern) & 3);
730 }
list pattern
Definition: chain.py:104
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:685
uint16_t reco::HitPattern::getGEMLayer ( uint16_t  pattern)
inlinestatic

GEM layer: 1,2. Only valid for muon GEM patterns, of course.

Definition at line 760 of file HitPattern.h.

References getSubSubStructure().

Referenced by printHitPattern().

761 {
762  return (getSubSubStructure(pattern) & 1) + 1;
763 }
list pattern
Definition: chain.py:104
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:685
uint16_t reco::HitPattern::getGEMStation ( uint16_t  pattern)
inlinestatic

GEM station: 1,2. Only valid for muon GEM patterns, of course.

Definition at line 755 of file HitPattern.h.

References getSubSubStructure().

Referenced by printHitPattern().

756 {
757  uint16_t sss = getSubSubStructure(pattern), stat = sss >> 1;
758  return stat + 1;
759 }
list pattern
Definition: chain.py:104
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:685
uint16_t reco::HitPattern::getHitPattern ( HitCategory  category,
int  position 
) const
inline

Definition at line 502 of file HitPattern.h.

References EMPTY_PATTERN, getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), and unlikely.

Referenced by CheckHitPattern::analyze(), PFCheckHitPattern::analyze(), FixTrackHitPattern::analyze(), GetTrackTrajInfo::analyze(), GsfElectronAlgo::ElectronData::checkCtfTrack(), OniaPhotonConversionProducer::foundCompatibleInnerHits(), GsfElectronCoreBaseProducer::getCtfTrackRef(), index_to_hitpattern(), PFElecTkProducer::isInnerMost(), FWTrackResidualDetailView::prepareData(), reco::TrackResiduals::print(), CheckHitPattern::print(), PFCheckHitPattern::print(), print(), printHitPattern(), FWConvTrackHitsDetailView::setTextInfo(), EgAmbiguityTools::sharedDets(), EgAmbiguityTools::sharedHits(), and QcdUeDQM::trackSelection().

503 {
504  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
505  if unlikely((position < 0 || (position + range.first) >= range.second)) {
507  }
508 
509  return getHitPatternByAbsoluteIndex(range.first + position);
510 }
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
#define unlikely(x)
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static int position[264][3]
Definition: ReadPGInfo.cc:509
uint16_t HitPattern::getHitPatternByAbsoluteIndex ( int  position) const
private

Definition at line 273 of file HitPattern.cc.

References EMPTY_PATTERN, HIT_LENGTH, hitCount, hitPattern, and unlikely.

Referenced by call(), countHits(), countTypedHits(), getHitPattern(), getTrackerLayerCase(), getTrackerMonoStereo(), hasValidHitInFirstPixelBarrel(), hasValidHitInFirstPixelEndcap(), innermostMuonStationWithHits(), muonStations(), numberOfDTStationsWithBothViews(), numberOfDTStationsWithRPhiView(), numberOfDTStationsWithRZView(), numberOfValidStripLayersWithMonoAndStereo(), outermostMuonStationWithHits(), pixelLayersWithMeasurement(), trackerLayersWithMeasurement(), and trackerLayersWithoutMeasurement().

274 {
275  if unlikely((position < 0 || position >= hitCount)) {
277  }
278  /*
279  Note: you are not taking a consecutive sequence of HIT_LENGTH bits starting from position * HIT_LENGTH
280  as the bit order in the words are reversed.
281  e.g. if position = 0 you take the lowest 10 bits of the first word.
282 
283  I hope this can clarify what is the memory layout of such thing
284 
285  straight 01234567890123456789012345678901 | 23456789012345678901234567890123 | 4567
286  (global) 0 1 2 3 | 3 4 5 6 | 6
287  words [--------------0---------------] | [--------------1---------------] | [---
288  word 01234567890123456789012345678901 | 01234567890123456789012345678901 | 0123
289  (str) 0 1 2 3 | 0 1 2 3 | 0
290  [--------------0---------------] | [--------------1---------------] | [---
291  word 10987654321098765432109876543210 | 10987654321098765432109876543210 | 1098
292  (rev) 32 21 10 0 | 32 21 10 0 | 32
293  reverse 10987654321098765432109876543210 | 32109876543210987654321098765432 | 5432
294  32 21 10 0 | 6 65 54 43 3 9
295 
296  ugly enough, but it's not my fault, I was not even in CMS at that time [gpetrucc]
297  */
298 
299  uint16_t bitEndOffset = (position + 1) * HIT_LENGTH;
300  uint8_t secondWord = (bitEndOffset >> 4);
301  uint8_t secondWordBits = bitEndOffset & (16 - 1); // that is, bitEndOffset % 16
302  if (secondWordBits >= HIT_LENGTH) { // full block is in this word
303  uint8_t lowBitsToTrash = secondWordBits - HIT_LENGTH;
304  uint16_t myResult = (hitPattern[secondWord] >> lowBitsToTrash) & ((1 << HIT_LENGTH) - 1);
305  return myResult;
306  } else {
307  uint8_t firstWordBits = HIT_LENGTH - secondWordBits;
308  uint16_t firstWordBlock = hitPattern[secondWord - 1] >> (16 - firstWordBits);
309  uint16_t secondWordBlock = hitPattern[secondWord] & ((1 << secondWordBits) - 1);
310  uint16_t myResult = firstWordBlock + (secondWordBlock << firstWordBits);
311  return myResult;
312  }
313 }
static const unsigned short HIT_LENGTH
Definition: HitPattern.h:166
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
#define unlikely(x)
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:459
uint8_t hitCount
Definition: HitPattern.h:460
static int position[264][3]
Definition: ReadPGInfo.cc:509
uint32_t reco::HitPattern::getHitType ( uint16_t  pattern)
inlinestatic

Definition at line 713 of file HitPattern.h.

References EMPTY_PATTERN, HitTypeMask, HitTypeOffset, NULL_RETURN, and unlikely.

Referenced by FixTrackHitPattern::analyze(), badHitFilter(), inactiveHitFilter(), innermostMuonStationWithHits(), missingHitFilter(), muonStations(), outermostMuonStationWithHits(), CheckHitPattern::print(), PFCheckHitPattern::print(), printHitPattern(), and validHitFilter().

714 {
716  return NULL_RETURN;
717  }
718 
719  return ((pattern >> HitTypeOffset) & HitTypeMask);
720 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
list pattern
Definition: chain.py:104
static const unsigned short HitTypeMask
Definition: HitPattern.h:409
#define unlikely(x)
static const unsigned short HitTypeOffset
Definition: HitPattern.h:408
uint32_t reco::HitPattern::getLayer ( uint16_t  pattern)
inlinestatic
uint16_t reco::HitPattern::getMuonStation ( uint16_t  pattern)
inlinestatic

Muon station (1-4). Only valid for muon patterns, of course. only for patterns from muon, of course.

Definition at line 722 of file HitPattern.h.

References getSubSubStructure().

Referenced by innermostMuonStationWithHits(), muonStations(), numberOfDTStationsWithBothViews(), numberOfDTStationsWithRPhiView(), numberOfDTStationsWithRZView(), outermostMuonStationWithHits(), and printHitPattern().

723 {
724  return (getSubSubStructure(pattern) >> 2) + 1;
725 }
list pattern
Definition: chain.py:104
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:685
uint16_t reco::HitPattern::getRPCLayer ( uint16_t  pattern)
inlinestatic

RPC layer: for station 1 and 2, layer = 1(inner) or 2(outer); for station 3, 4 layer is always 0. Only valid for muon RPC patterns, of course.

Definition at line 737 of file HitPattern.h.

References getSubSubStructure(), and likely.

Referenced by printHitPattern().

738 {
739  uint16_t subSubStructure = getSubSubStructure(pattern);
740  uint16_t stat = subSubStructure >> 2;
741 
742  if likely(stat <= 1) {
743  return ((subSubStructure >> 1) & 1) + 1;
744  }
745 
746  return 0;
747 }
list pattern
Definition: chain.py:104
#define likely(x)
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:685
uint16_t reco::HitPattern::getRPCregion ( uint16_t  pattern)
inlinestatic

RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course.

Definition at line 749 of file HitPattern.h.

References getSubSubStructure().

Referenced by printHitPattern().

750 {
751  return getSubSubStructure(pattern) & 1;
752 }
list pattern
Definition: chain.py:104
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:685
uint32_t reco::HitPattern::getSide ( uint16_t  pattern)
inlinestatic

Definition at line 704 of file HitPattern.h.

References EMPTY_PATTERN, NULL_RETURN, SideMask, SideOffset, and unlikely.

Referenced by getTrackerMonoStereo(), and numberOfValidStripLayersWithMonoAndStereo().

705 {
707  return NULL_RETURN;
708  }
709 
710  return (pattern >> SideOffset) & SideMask;
711 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
static const unsigned short SideOffset
Definition: HitPattern.h:412
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
list pattern
Definition: chain.py:104
#define unlikely(x)
static const unsigned short SideMask
Definition: HitPattern.h:413
uint32_t reco::HitPattern::getSubDetector ( uint16_t  pattern)
inlinestatic

Definition at line 694 of file HitPattern.h.

References EMPTY_PATTERN, NULL_RETURN, SubDetectorMask, SubDetectorOffset, and unlikely.

695 {
697  return NULL_RETURN;
698  }
699 
700  return ((pattern >> SubDetectorOffset) & SubDetectorMask);
701 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
list pattern
Definition: chain.py:104
#define unlikely(x)
static const unsigned short SubDetectorMask
Definition: HitPattern.h:425
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:424
uint32_t reco::HitPattern::getSubStructure ( uint16_t  pattern)
inlinestatic
uint32_t reco::HitPattern::getSubSubStructure ( uint16_t  pattern)
inlinestatic

Definition at line 685 of file HitPattern.h.

References EMPTY_PATTERN, LayerMask, LayerOffset, NULL_RETURN, and unlikely.

Referenced by getCSCRing(), getDTSuperLayer(), getGEMLayer(), getGEMStation(), getLayer(), getMuonStation(), getRPCLayer(), getRPCregion(), and numberOfValidStripLayersWithMonoAndStereo().

686 {
688  return NULL_RETURN;
689  }
690 
691  return ((pattern >> LayerOffset) & LayerMask);
692 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
list pattern
Definition: chain.py:104
#define unlikely(x)
static const unsigned short LayerOffset
Definition: HitPattern.h:416
static const unsigned short LayerMask
Definition: HitPattern.h:417
uint32_t HitPattern::getTrackerLayerCase ( HitCategory  category,
uint16_t  substr,
uint16_t  layer 
) const

Definition at line 426 of file HitPattern.cc.

References pat::BAD, getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), HitTypeMask, HitTypeOffset, i, LayerMask, LayerOffset, NULL_RETURN, chain::pattern, SubDetectorMask, SubDetectorOffset, SubstrMask, and SubstrOffset.

Referenced by pixelBarrelLayersNull(), pixelBarrelLayersTotallyOffOrBad(), pixelBarrelLayersWithMeasurement(), pixelBarrelLayersWithoutMeasurement(), pixelEndcapLayersNull(), pixelEndcapLayersTotallyOffOrBad(), pixelEndcapLayersWithMeasurement(), pixelEndcapLayersWithoutMeasurement(), stripTECLayersNull(), stripTECLayersTotallyOffOrBad(), stripTECLayersWithMeasurement(), stripTECLayersWithoutMeasurement(), stripTIBLayersNull(), stripTIBLayersTotallyOffOrBad(), stripTIBLayersWithMeasurement(), stripTIBLayersWithoutMeasurement(), stripTIDLayersNull(), stripTIDLayersTotallyOffOrBad(), stripTIDLayersWithMeasurement(), stripTIDLayersWithoutMeasurement(), stripTOBLayersNull(), stripTOBLayersTotallyOffOrBad(), stripTOBLayersWithMeasurement(), and stripTOBLayersWithoutMeasurement().

427 {
428  uint16_t tk_substr_layer = (0x1 << SubDetectorOffset)
429  + ((substr & SubstrMask) << SubstrOffset)
430  + ((layer & LayerMask) << LayerOffset);
431 
432  uint16_t mask = (SubDetectorMask << SubDetectorOffset)
433  + (SubstrMask << SubstrOffset)
434  + (LayerMask << LayerOffset);
435 
436  // layer case 0: valid + (missing, off, bad) ==> with measurement
437  // layer case 1: missing + (off, bad) ==> without measurement
438  // layer case 2: off, bad ==> totally off or bad, cannot say much
439  // layer case NULL_RETURN: track outside acceptance or in gap ==> null
440  uint32_t layerCase = NULL_RETURN;
441  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
442  for (int i = range.first; i < range.second; ++i) {
444  if ((pattern & mask) == tk_substr_layer) {
445  uint16_t hitType = (pattern >> HitTypeOffset) & HitTypeMask;
446  if (hitType < layerCase) {
447  // BAD and INACTIVE as the same type (as INACTIVE)
448  layerCase = (hitType == HIT_TYPE::BAD ? HIT_TYPE::INACTIVE : hitType);
449  if (layerCase == HIT_TYPE::VALID) {
450  break;
451  }
452  }
453  }
454  }
455  return layerCase;
456 }
int i
Definition: DBlmapReader.cc:9
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
static const unsigned short SubstrOffset
Definition: HitPattern.h:420
list pattern
Definition: chain.py:104
static const unsigned short HitTypeMask
Definition: HitPattern.h:409
1: Failed selection (without additional info)
Definition: ParticleCode.h:34
static const unsigned short SubDetectorMask
Definition: HitPattern.h:425
static const unsigned short HitTypeOffset
Definition: HitPattern.h:408
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:424
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static const unsigned short SubstrMask
Definition: HitPattern.h:421
static const unsigned short LayerOffset
Definition: HitPattern.h:416
static const unsigned short LayerMask
Definition: HitPattern.h:417
uint16_t HitPattern::getTrackerMonoStereo ( HitCategory  category,
uint16_t  substr,
uint16_t  layer 
) const

Definition at line 458 of file HitPattern.cc.

References getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), getSide(), HitTypeMask, HitTypeOffset, i, LayerMask, LayerOffset, MONO, chain::pattern, STEREO, SubDetectorMask, SubDetectorOffset, SubstrMask, and SubstrOffset.

Referenced by OniaPhotonConversionProducer::foundCompatibleInnerHits().

459 {
460  uint16_t tk_substr_layer = (0x1 << SubDetectorOffset)
461  + ((substr & SubstrMask) << SubstrOffset)
462  + ((layer & LayerMask) << LayerOffset);
463  uint16_t mask = (SubDetectorMask << SubDetectorOffset)
464  + (SubstrMask << SubstrOffset)
465  + (LayerMask << LayerOffset);
466 
467  // 0: neither a valid mono nor a valid stereo hit
468  // MONO: valid mono hit
469  // STEREO: valid stereo hit
470  // MONO | STEREO: both
471  uint16_t monoStereo = 0x0;
472  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
473  for (int i = range.first; i < range.second; ++i) {
475  if ((pattern & mask) == tk_substr_layer) {
476  uint16_t hitType = (pattern >> HitTypeOffset) & HitTypeMask;
477  if (hitType == HIT_TYPE::VALID) {
478  switch (getSide(pattern)) {
479  case 0: // mono
480  monoStereo |= MONO;
481  break;
482  case 1: // stereo
483  monoStereo |= STEREO;
484  break;
485  }
486  }
487 
488  if (monoStereo == (MONO | STEREO)) {
489  break;
490  }
491  }
492  }
493  return monoStereo;
494 }
int i
Definition: DBlmapReader.cc:9
static const unsigned short SubstrOffset
Definition: HitPattern.h:420
list pattern
Definition: chain.py:104
static const unsigned short HitTypeMask
Definition: HitPattern.h:409
static const unsigned short SubDetectorMask
Definition: HitPattern.h:425
static const unsigned short HitTypeOffset
Definition: HitPattern.h:408
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:424
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static uint32_t getSide(uint16_t pattern)
Definition: HitPattern.h:704
static const unsigned short SubstrMask
Definition: HitPattern.h:421
static const unsigned short LayerOffset
Definition: HitPattern.h:416
static const unsigned short LayerMask
Definition: HitPattern.h:417
bool HitPattern::hasValidHitInFirstPixelBarrel ( ) const

Definition at line 315 of file HitPattern.cc.

References beginTrackHits, endTrackHits, getHitPatternByAbsoluteIndex(), getLayer(), i, chain::pattern, pixelBarrelHitFilter(), and validHitFilter().

Referenced by PackedCandidateTrackValidator::analyze(), TrackClassFilter::operator()(), and pat::PATPackedCandidateProducer::produce().

316 {
317  for (int i = beginTrackHits; i < endTrackHits; ++i) {
319  if (pixelBarrelHitFilter(pattern) && (getLayer(pattern) == 1)
320  && validHitFilter(pattern)) {
321  return true;
322  }
323  }
324  return false;
325 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getLayer(uint16_t pattern)
Definition: HitPattern.h:680
list pattern
Definition: chain.py:104
static bool pixelBarrelHitFilter(uint16_t pattern)
Definition: HitPattern.h:562
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
bool HitPattern::hasValidHitInFirstPixelEndcap ( ) const

Definition at line 327 of file HitPattern.cc.

References beginTrackHits, endTrackHits, getHitPatternByAbsoluteIndex(), getLayer(), i, chain::pattern, pixelEndcapHitFilter(), and validHitFilter().

328 {
329  for (int i = beginTrackHits; i < endTrackHits; ++i) {
331  if (pixelEndcapHitFilter(pattern) && (getLayer(pattern) == 1)
332  && validHitFilter(pattern)) {
333  return true;
334  }
335  }
336  return false;
337 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getLayer(uint16_t pattern)
Definition: HitPattern.h:680
list pattern
Definition: chain.py:104
static bool pixelEndcapHitFilter(uint16_t pattern)
Definition: HitPattern.h:572
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
bool reco::HitPattern::inactiveHitFilter ( uint16_t  pattern)
inlinestatic
int reco::HitPattern::innermostMuonStationWithAnyHits ( ) const
inline

Definition at line 1152 of file HitPattern.h.

References innermostMuonStationWithHits().

1153 {
1154  return innermostMuonStationWithHits(-1);
1155 }
int innermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:919
int reco::HitPattern::innermostMuonStationWithBadHits ( ) const
inline

Definition at line 1147 of file HitPattern.h.

References innermostMuonStationWithHits().

1148 {
1149  return innermostMuonStationWithHits(3);
1150 }
int innermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:919
int HitPattern::innermostMuonStationWithHits ( int  hitType) const

hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all

Definition at line 919 of file HitPattern.cc.

References beginTrackHits, endTrackHits, getHitPatternByAbsoluteIndex(), getHitType(), getMuonStation(), i, muonHitFilter(), chain::pattern, and run_regression::ret.

Referenced by innermostMuonStationWithAnyHits(), innermostMuonStationWithBadHits(), and innermostMuonStationWithValidHits().

920 {
921  int ret = 0;
922  for (int i = beginTrackHits; i < endTrackHits; ++i) {
924  if (muonHitFilter(pattern)
925  && (hitType == -1 || int(getHitType(pattern)) == hitType)) {
926  int stat = getMuonStation(pattern);
927  if (ret == 0 || stat < ret) {
928  ret = stat;
929  }
930  }
931  }
932 
933  return ret;
934 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
static uint32_t getHitType(uint16_t pattern)
Definition: HitPattern.h:713
uint8_t beginTrackHits
Definition: HitPattern.h:462
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
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:722
int reco::HitPattern::innermostMuonStationWithValidHits ( ) const
inline

Definition at line 1142 of file HitPattern.h.

References innermostMuonStationWithHits().

1143 {
1144  return innermostMuonStationWithHits(0);
1145 }
int innermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:919
bool HitPattern::insertExpectedInnerHit ( const uint16_t  pattern)
private

Definition at line 1026 of file HitPattern.cc.

References beginInner, endInner, hitCount, insertHit(), and unlikely.

Referenced by appendHit().

1027 {
1028  if unlikely((0 == beginInner && 0 == endInner)) {
1029  beginInner = hitCount;
1030  endInner = beginInner;
1031  }
1032 
1033  insertHit(pattern);
1034  endInner++;
1035 
1036  return true;
1037 }
void insertHit(const uint16_t pattern)
Definition: HitPattern.cc:995
list pattern
Definition: chain.py:104
#define unlikely(x)
uint8_t endInner
Definition: HitPattern.h:465
uint8_t beginInner
Definition: HitPattern.h:464
uint8_t hitCount
Definition: HitPattern.h:460
bool HitPattern::insertExpectedOuterHit ( const uint16_t  pattern)
private

Definition at line 1039 of file HitPattern.cc.

References beginOuter, endOuter, hitCount, insertHit(), and unlikely.

Referenced by appendHit().

1040 {
1041  if unlikely((0 == beginOuter && 0 == endOuter)) {
1042  beginOuter = hitCount;
1043  endOuter = beginOuter;
1044  }
1045 
1046  insertHit(pattern);
1047  endOuter++;
1048 
1049  return true;
1050 }
void insertHit(const uint16_t pattern)
Definition: HitPattern.cc:995
list pattern
Definition: chain.py:104
#define unlikely(x)
uint8_t hitCount
Definition: HitPattern.h:460
uint8_t beginOuter
Definition: HitPattern.h:466
uint8_t endOuter
Definition: HitPattern.h:467
void HitPattern::insertHit ( const uint16_t  pattern)
private

Definition at line 995 of file HitPattern.cc.

References HIT_LENGTH, hitCount, hitPattern, i, and hltrates_dqm_sourceclient-live_cfg::offset.

Referenced by insertExpectedInnerHit(), insertExpectedOuterHit(), and insertTrackHit().

996 {
997  int offset = hitCount * HIT_LENGTH;
998  for (int i = 0; i < HIT_LENGTH; i++) {
999  int pos = offset + i;
1000  uint16_t bit = (pattern >> i) & 0x1;
1001  //equivalent to hitPattern[pos / 16] += bit << ((offset + i) % 16);
1002  hitPattern[pos >> 4] += bit << ((offset + i) & (16 - 1));
1003  }
1004  hitCount++;
1005 }
int i
Definition: DBlmapReader.cc:9
static const unsigned short HIT_LENGTH
Definition: HitPattern.h:166
list pattern
Definition: chain.py:104
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:459
uint8_t hitCount
Definition: HitPattern.h:460
bool HitPattern::insertTrackHit ( const uint16_t  pattern)
private

Definition at line 1007 of file HitPattern.cc.

References beginTrackHits, endTrackHits, hitCount, insertHit(), and unlikely.

Referenced by appendHit().

1008 {
1009  // if begin is 0, this is the first hit of this type being inserted, so
1010  // we need to update begin so it points to the correct index, the first
1011  // empty index.
1012  // unlikely, because it will happen only when inserting
1013  // the first hit of this type
1014  if unlikely((0 == beginTrackHits && 0 == endTrackHits)) {
1016  // before the first hit of this type is inserted, there are no hits
1018  }
1019 
1020  insertHit(pattern);
1021  endTrackHits++;
1022 
1023  return true;
1024 }
void insertHit(const uint16_t pattern)
Definition: HitPattern.cc:995
list pattern
Definition: chain.py:104
#define unlikely(x)
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint8_t hitCount
Definition: HitPattern.h:460
uint16_t HitPattern::isStereo ( DetId  i,
const TrackerTopology ttopo 
)
staticprivate

Definition at line 881 of file HitPattern.cc.

References DetId::det(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::subdetId(), StripSubdetector::TEC, TrackerTopology::tecIsStereo(), StripSubdetector::TIB, TrackerTopology::tibIsStereo(), StripSubdetector::TID, TrackerTopology::tidIsStereo(), StripSubdetector::TOB, TrackerTopology::tobIsStereo(), and DetId::Tracker.

Referenced by encode().

882 {
883  if (i.det() != DetId::Tracker) {
884  return 0;
885  }
886 
887  switch (i.subdetId()) {
890  return 0;
892  return ttopo.tibIsStereo(i);
894  return ttopo.tidIsStereo(i);
896  return ttopo.tobIsStereo(i);
898  return ttopo.tecIsStereo(i);
899  default:
900  return 0;
901  }
902 }
bool tobIsStereo(const DetId &id) const
bool tidIsStereo(const DetId &id) const
bool tecIsStereo(const DetId &id) const
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
bool tibIsStereo(const DetId &id) const
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
bool reco::HitPattern::missingHitFilter ( uint16_t  pattern)
inlinestatic
bool reco::HitPattern::muonCSCHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 627 of file HitPattern.h.

References MuonSubdetId::CSC, getSubStructure(), muonHitFilter(), and unlikely.

Referenced by numberOfBadMuonCSCHits(), numberOfLostMuonCSCHits(), numberOfValidMuonCSCHits(), and printHitPattern().

628 {
630  return false;
631  }
632 
633  uint32_t substructure = getSubStructure(pattern);
634  return (substructure == (uint32_t) MuonSubdetId::CSC);
635 }
list pattern
Definition: chain.py:104
#define unlikely(x)
static const int CSC
Definition: MuonSubdetId.h:13
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
bool reco::HitPattern::muonDTHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 617 of file HitPattern.h.

References MuonSubdetId::DT, getSubStructure(), muonHitFilter(), and unlikely.

Referenced by numberOfBadMuonDTHits(), numberOfDTStationsWithBothViews(), numberOfDTStationsWithRPhiView(), numberOfDTStationsWithRZView(), numberOfLostMuonDTHits(), numberOfValidMuonDTHits(), and printHitPattern().

618 {
620  return false;
621  }
622 
623  uint32_t substructure = getSubStructure(pattern);
624  return (substructure == (uint32_t) MuonSubdetId::DT);
625 }
list pattern
Definition: chain.py:104
#define unlikely(x)
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
static const int DT
Definition: MuonSubdetId.h:12
bool reco::HitPattern::muonGEMHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 647 of file HitPattern.h.

References MuonSubdetId::GEM, getSubStructure(), muonHitFilter(), and unlikely.

Referenced by numberOfBadMuonGEMHits(), numberOfLostMuonGEMHits(), numberOfValidMuonGEMHits(), and printHitPattern().

648 {
650  return false;
651  }
652 
653  uint32_t substructure = getSubStructure(pattern);
654  return (substructure == (uint32_t) MuonSubdetId::GEM);
655 }
static const int GEM
Definition: MuonSubdetId.h:15
list pattern
Definition: chain.py:104
#define unlikely(x)
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
bool reco::HitPattern::muonHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 662 of file HitPattern.h.

References EMPTY_PATTERN, SubDetectorMask, SubDetectorOffset, and unlikely.

Referenced by innermostMuonStationWithHits(), muonCSCHitFilter(), muonDTHitFilter(), muonGEMHitFilter(), muonRPCHitFilter(), muonStations(), numberOfBadMuonHits(), numberOfLostMuonHits(), numberOfMuonHits(), numberOfValidMuonHits(), outermostMuonStationWithHits(), and printHitPattern().

663 {
665  return false;
666  }
667 
668  return (((pattern >> SubDetectorOffset) & SubDetectorMask) == 0);
669 }
static const uint16_t EMPTY_PATTERN
Definition: HitPattern.h:170
list pattern
Definition: chain.py:104
#define unlikely(x)
static const unsigned short SubDetectorMask
Definition: HitPattern.h:425
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:424
bool reco::HitPattern::muonRPCHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 637 of file HitPattern.h.

References getSubStructure(), muonHitFilter(), MuonSubdetId::RPC, and unlikely.

Referenced by numberOfBadMuonRPCHits(), numberOfLostMuonRPCHits(), numberOfValidMuonRPCHits(), and printHitPattern().

638 {
640  return false;
641  }
642 
643  uint32_t substructure = getSubStructure(pattern);
644  return (substructure == (uint32_t) MuonSubdetId::RPC);
645 }
list pattern
Definition: chain.py:104
#define unlikely(x)
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
static const int RPC
Definition: MuonSubdetId.h:14
int HitPattern::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 at line 904 of file HitPattern.cc.

References beginTrackHits, endTrackHits, getHitPatternByAbsoluteIndex(), getHitType(), getMuonStation(), getSubStructure(), i, muonHitFilter(), chain::pattern, and mergeVDriftHistosByStation::stations.

Referenced by cscStationsWithAnyHits(), cscStationsWithBadHits(), cscStationsWithValidHits(), dtStationsWithAnyHits(), dtStationsWithBadHits(), dtStationsWithValidHits(), gemStationsWithAnyHits(), gemStationsWithBadHits(), gemStationsWithValidHits(), muonStationsWithAnyHits(), muonStationsWithBadHits(), muonStationsWithValidHits(), rpcStationsWithAnyHits(), rpcStationsWithBadHits(), and rpcStationsWithValidHits().

905 {
906  int stations[4] = {0, 0, 0, 0};
907  for (int i = beginTrackHits; i < endTrackHits; ++i) {
909  if (muonHitFilter(pattern)
910  && (subdet == 0 || int(getSubStructure(pattern)) == subdet)
911  && (hitType == -1 || int(getHitType(pattern)) == hitType)) {
912  stations[getMuonStation(pattern) - 1] = 1;
913  }
914  }
915 
916  return stations[0] + stations[1] + stations[2] + stations[3];
917 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
static uint32_t getHitType(uint16_t pattern)
Definition: HitPattern.h:713
uint8_t beginTrackHits
Definition: HitPattern.h:462
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
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:722
int reco::HitPattern::muonStationsWithAnyHits ( ) const
inline

Definition at line 1077 of file HitPattern.h.

References muonStations().

1078 {
1079  return muonStations(0, -1);
1080 }
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:904
int reco::HitPattern::muonStationsWithBadHits ( ) const
inline

Definition at line 1072 of file HitPattern.h.

References muonStations().

1073 {
1074  return muonStations(0, 3);
1075 }
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:904
int reco::HitPattern::muonStationsWithValidHits ( ) const
inline

Definition at line 1067 of file HitPattern.h.

References muonStations().

1068 {
1069  return muonStations(0, 0);
1070 }
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:904
int reco::HitPattern::numberOfBadHits ( ) const
inline

Definition at line 951 of file HitPattern.h.

References badHitFilter(), countHits(), and TRACK_HITS.

952 {
954 }
static bool badHitFilter(uint16_t pattern)
Definition: HitPattern.h:780
int countHits(HitCategory category, filterType filter) const
Definition: HitPattern.h:512
int reco::HitPattern::numberOfBadMuonCSCHits ( ) const
inline

Definition at line 966 of file HitPattern.h.

References countTypedHits(), inactiveHitFilter(), muonCSCHitFilter(), and TRACK_HITS.

967 {
969 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool muonCSCHitFilter(uint16_t pattern)
Definition: HitPattern.h:627
static bool inactiveHitFilter(uint16_t pattern)
Definition: HitPattern.h:775
int reco::HitPattern::numberOfBadMuonDTHits ( ) const
inline

Definition at line 961 of file HitPattern.h.

References countTypedHits(), inactiveHitFilter(), muonDTHitFilter(), and TRACK_HITS.

962 {
964 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool inactiveHitFilter(uint16_t pattern)
Definition: HitPattern.h:775
static bool muonDTHitFilter(uint16_t pattern)
Definition: HitPattern.h:617
int reco::HitPattern::numberOfBadMuonGEMHits ( ) const
inline

Definition at line 976 of file HitPattern.h.

References countTypedHits(), inactiveHitFilter(), muonGEMHitFilter(), and TRACK_HITS.

977 {
979 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool inactiveHitFilter(uint16_t pattern)
Definition: HitPattern.h:775
static bool muonGEMHitFilter(uint16_t pattern)
Definition: HitPattern.h:647
int reco::HitPattern::numberOfBadMuonHits ( ) const
inline

Definition at line 956 of file HitPattern.h.

References countTypedHits(), inactiveHitFilter(), muonHitFilter(), and TRACK_HITS.

957 {
959 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool inactiveHitFilter(uint16_t pattern)
Definition: HitPattern.h:775
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
int reco::HitPattern::numberOfBadMuonRPCHits ( ) const
inline

Definition at line 971 of file HitPattern.h.

References countTypedHits(), inactiveHitFilter(), muonRPCHitFilter(), and TRACK_HITS.

972 {
974 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool inactiveHitFilter(uint16_t pattern)
Definition: HitPattern.h:775
static bool muonRPCHitFilter(uint16_t pattern)
Definition: HitPattern.h:637
int HitPattern::numberOfDTStationsWithBothViews ( ) const

Definition at line 979 of file HitPattern.cc.

References beginTrackHits, endTrackHits, getDTSuperLayer(), getHitPatternByAbsoluteIndex(), getMuonStation(), i, muonDTHitFilter(), chain::pattern, mergeVDriftHistosByStation::stations, and validHitFilter().

980 {
981  int stations[4][2] = {{0, 0}, {0, 0}, {0, 0}, {0, 0}};
982  for (int i = beginTrackHits; i < endTrackHits; ++i) {
984  if (muonDTHitFilter(pattern) && validHitFilter(pattern)) {
985  stations[getMuonStation(pattern) - 1][getDTSuperLayer(pattern) == 2] = 1;
986  }
987  }
988 
989  return stations[0][0] * stations[0][1]
990  + stations[1][0] * stations[1][1]
991  + stations[2][0] * stations[2][1]
992  + stations[3][0] * stations[3][1];
993 }
int i
Definition: DBlmapReader.cc:9
static uint16_t getDTSuperLayer(uint16_t pattern)
DT superlayer (1-3). Where the &quot;hit&quot; was a DT segment, superlayer is 0. Only valid for muon DT patter...
Definition: HitPattern.h:727
list pattern
Definition: chain.py:104
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static bool muonDTHitFilter(uint16_t pattern)
Definition: HitPattern.h:617
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:722
int HitPattern::numberOfDTStationsWithRPhiView ( ) const

Definition at line 952 of file HitPattern.cc.

References beginTrackHits, endTrackHits, getDTSuperLayer(), getHitPatternByAbsoluteIndex(), getMuonStation(), i, muonDTHitFilter(), chain::pattern, mergeVDriftHistosByStation::stations, and validHitFilter().

953 {
954  int stations[4] = {0, 0, 0, 0};
955  for (int i = beginTrackHits; i < endTrackHits; ++i) {
957 
958  if (muonDTHitFilter(pattern) && validHitFilter(pattern)
959  && getDTSuperLayer(pattern) != 2) {
960  stations[getMuonStation(pattern) - 1] = 1;
961  }
962  }
963  return stations[0] + stations[1] + stations[2] + stations[3];
964 }
int i
Definition: DBlmapReader.cc:9
static uint16_t getDTSuperLayer(uint16_t pattern)
DT superlayer (1-3). Where the &quot;hit&quot; was a DT segment, superlayer is 0. Only valid for muon DT patter...
Definition: HitPattern.h:727
list pattern
Definition: chain.py:104
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static bool muonDTHitFilter(uint16_t pattern)
Definition: HitPattern.h:617
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:722
int HitPattern::numberOfDTStationsWithRZView ( ) const

Definition at line 966 of file HitPattern.cc.

References beginTrackHits, endTrackHits, getDTSuperLayer(), getHitPatternByAbsoluteIndex(), getMuonStation(), i, muonDTHitFilter(), chain::pattern, mergeVDriftHistosByStation::stations, and validHitFilter().

967 {
968  int stations[4] = {0, 0, 0, 0};
969  for (int i = beginTrackHits; i < endTrackHits; ++i) {
971  if (muonDTHitFilter(pattern) && validHitFilter(pattern)
972  && getDTSuperLayer(pattern) == 2) {
973  stations[getMuonStation(pattern) - 1] = 1;
974  }
975  }
976  return stations[0] + stations[1] + stations[2] + stations[3];
977 }
int i
Definition: DBlmapReader.cc:9
static uint16_t getDTSuperLayer(uint16_t pattern)
DT superlayer (1-3). Where the &quot;hit&quot; was a DT segment, superlayer is 0. Only valid for muon DT patter...
Definition: HitPattern.h:727
list pattern
Definition: chain.py:104
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static bool muonDTHitFilter(uint16_t pattern)
Definition: HitPattern.h:617
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:722
int reco::HitPattern::numberOfHits ( HitCategory  category) const
inline
int reco::HitPattern::numberOfInactiveHits ( ) const
inline

Definition at line 981 of file HitPattern.h.

References countHits(), inactiveHitFilter(), and TRACK_HITS.

982 {
984 }
static bool inactiveHitFilter(uint16_t pattern)
Definition: HitPattern.h:775
int countHits(HitCategory category, filterType filter) const
Definition: HitPattern.h:512
int reco::HitPattern::numberOfInactiveTrackerHits ( ) const
inline

Definition at line 986 of file HitPattern.h.

References countTypedHits(), inactiveHitFilter(), TRACK_HITS, and trackerHitFilter().

987 {
989 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool inactiveHitFilter(uint16_t pattern)
Definition: HitPattern.h:775
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
int reco::HitPattern::numberOfLostHits ( HitCategory  category) const
inline
int reco::HitPattern::numberOfLostMuonCSCHits ( ) const
inline

Definition at line 936 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), muonCSCHitFilter(), and TRACK_HITS.

937 {
939 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool muonCSCHitFilter(uint16_t pattern)
Definition: HitPattern.h:627
int reco::HitPattern::numberOfLostMuonDTHits ( ) const
inline

Definition at line 931 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), muonDTHitFilter(), and TRACK_HITS.

932 {
934 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool muonDTHitFilter(uint16_t pattern)
Definition: HitPattern.h:617
int reco::HitPattern::numberOfLostMuonGEMHits ( ) const
inline

Definition at line 946 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), muonGEMHitFilter(), and TRACK_HITS.

947 {
949 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool muonGEMHitFilter(uint16_t pattern)
Definition: HitPattern.h:647
int reco::HitPattern::numberOfLostMuonHits ( ) const
inline

Definition at line 886 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), muonHitFilter(), and TRACK_HITS.

887 {
889 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
int reco::HitPattern::numberOfLostMuonRPCHits ( ) const
inline

Definition at line 941 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), muonRPCHitFilter(), and TRACK_HITS.

942 {
944 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool muonRPCHitFilter(uint16_t pattern)
Definition: HitPattern.h:637
int reco::HitPattern::numberOfLostPixelBarrelHits ( HitCategory  category) const
inline

Definition at line 896 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and pixelBarrelHitFilter().

897 {
899 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool pixelBarrelHitFilter(uint16_t pattern)
Definition: HitPattern.h:562
int reco::HitPattern::numberOfLostPixelEndcapHits ( HitCategory  category) const
inline

Definition at line 901 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and pixelEndcapHitFilter().

902 {
904 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool pixelEndcapHitFilter(uint16_t pattern)
Definition: HitPattern.h:572
int reco::HitPattern::numberOfLostPixelHits ( HitCategory  category) const
inline

Definition at line 891 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and pixelHitFilter().

892 {
894 }
static bool pixelHitFilter(uint16_t pattern)
Definition: HitPattern.h:551
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
int reco::HitPattern::numberOfLostStripHits ( HitCategory  category) const
inline

Definition at line 906 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and stripHitFilter().

907 {
909 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool stripHitFilter(uint16_t pattern)
Definition: HitPattern.h:582
int reco::HitPattern::numberOfLostStripTECHits ( HitCategory  category) const
inline

Definition at line 926 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and stripTECHitFilter().

927 {
929 }
static bool stripTECHitFilter(uint16_t pattern)
Definition: HitPattern.h:612
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
int reco::HitPattern::numberOfLostStripTIBHits ( HitCategory  category) const
inline

Definition at line 911 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and stripTIBHitFilter().

912 {
914 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool stripTIBHitFilter(uint16_t pattern)
Definition: HitPattern.h:597
int reco::HitPattern::numberOfLostStripTIDHits ( HitCategory  category) const
inline

Definition at line 916 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and stripTIDHitFilter().

917 {
919 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool stripTIDHitFilter(uint16_t pattern)
Definition: HitPattern.h:602
int reco::HitPattern::numberOfLostStripTOBHits ( HitCategory  category) const
inline

Definition at line 921 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and stripTOBHitFilter().

922 {
924 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool stripTOBHitFilter(uint16_t pattern)
Definition: HitPattern.h:607
int reco::HitPattern::numberOfLostTrackerHits ( HitCategory  category) const
inline

Definition at line 881 of file HitPattern.h.

References countTypedHits(), missingHitFilter(), and trackerHitFilter().

Referenced by TrackAnalyzer::analyze(), MultiTrackSelector::processMVA(), HIMultiTrackSelector::processMVA(), MultiTrackSelector::select(), HIMultiTrackSelector::select(), and reco::TrackBase::validFraction().

882 {
884 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool missingHitFilter(uint16_t pattern)
Definition: HitPattern.h:770
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
int reco::HitPattern::numberOfMuonHits ( ) const
inline

Definition at line 796 of file HitPattern.h.

References countHits(), muonHitFilter(), and TRACK_HITS.

797 {
799 }
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
int countHits(HitCategory category, filterType filter) const
Definition: HitPattern.h:512
int reco::HitPattern::numberOfTrackerHits ( HitCategory  category) const
inline

Definition at line 791 of file HitPattern.h.

References countHits(), and trackerHitFilter().

792 {
794 }
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
int countHits(HitCategory category, filterType filter) const
Definition: HitPattern.h:512
int reco::HitPattern::numberOfValidHits ( ) const
inline
int reco::HitPattern::numberOfValidMuonCSCHits ( ) const
inline

Definition at line 861 of file HitPattern.h.

References countTypedHits(), muonCSCHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by MuonTrackValidator::analyze().

862 {
864 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool muonCSCHitFilter(uint16_t pattern)
Definition: HitPattern.h:627
int reco::HitPattern::numberOfValidMuonDTHits ( ) const
inline

Definition at line 856 of file HitPattern.h.

References countTypedHits(), muonDTHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by MuonTrackValidator::analyze().

857 {
859 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool muonDTHitFilter(uint16_t pattern)
Definition: HitPattern.h:617
int reco::HitPattern::numberOfValidMuonGEMHits ( ) const
inline

Definition at line 871 of file HitPattern.h.

References countTypedHits(), muonGEMHitFilter(), TRACK_HITS, and validHitFilter().

872 {
874 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool muonGEMHitFilter(uint16_t pattern)
Definition: HitPattern.h:647
int reco::HitPattern::numberOfValidMuonHits ( ) const
inline

Definition at line 811 of file HitPattern.h.

References countTypedHits(), muonHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by HLTMuonL3PreFilter::hltFilter(), BPhysicsOniaDQM::selGlobalMuon(), MuScleFitMuonSelector::selGlobalMuon(), and MuScleFit::selGlobalMuon().

812 {
814 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
int reco::HitPattern::numberOfValidMuonRPCHits ( ) const
inline

Definition at line 866 of file HitPattern.h.

References countTypedHits(), muonRPCHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by MuonTrackValidator::analyze().

867 {
869 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool muonRPCHitFilter(uint16_t pattern)
Definition: HitPattern.h:637
int reco::HitPattern::numberOfValidPixelBarrelHits ( ) const
inline
int reco::HitPattern::numberOfValidPixelEndcapHits ( ) const
inline
int reco::HitPattern::numberOfValidPixelHits ( ) const
inline

Definition at line 816 of file HitPattern.h.

References countTypedHits(), pixelHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by PackedCandidateTrackValidator::analyze(), TrackTypeMonitor::analyze(), StandaloneTrackMonitor::analyze(), CheckHitPattern::analyze(), IPTagPlotter< Container, Base >::analyzeTag(), PFRecoTauDiscriminationByHPSSelection::discriminate(), ZtoMMEventSelector::filter(), ZtoEEEventSelector::filter(), WtoLNuSelector::filter(), reco::tau::RecoTauQualityCuts::filterTrack_(), HLTTrackWithHits::hltFilter(), reco::TrackSelector::operator()(), TrackClassFilter::operator()(), RecoTrackSelectorBase::operator()(), reco::tau::RecoTauPiZeroStripPlugin2::operator()(), reco::tau::RecoTauPiZeroStripPlugin3::operator()(), pat::PATLostTracks::produce(), TrackListMerger::produce(), IPProducer< Container, Base, Helper >::produce(), pat::PackedCandidate::setTrackProperties(), TrackWithVertexSelector::testTrack(), TrackVertexArbitration< VTX >::trackFilterArbitrator(), and reco::tau::qcuts::trkPixelHits().

817 {
819 }
static bool pixelHitFilter(uint16_t pattern)
Definition: HitPattern.h:551
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
int reco::HitPattern::numberOfValidStripHits ( ) const
inline

Definition at line 831 of file HitPattern.h.

References countTypedHits(), stripHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by TrackTypeMonitor::analyze(), StandaloneTrackMonitor::analyze(), ZtoMMEventSelector::filter(), ZtoEEEventSelector::filter(), and WtoLNuSelector::filter().

832 {
834 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool stripHitFilter(uint16_t pattern)
Definition: HitPattern.h:582
int HitPattern::numberOfValidStripLayersWithMonoAndStereo ( uint16_t  stripdet,
uint16_t  layer 
) const

Definition at line 339 of file HitPattern.cc.

References beginTrackHits, prof2calltree::count, endTrackHits, getHitPatternByAbsoluteIndex(), getLayer(), getSide(), getSubStructure(), getSubSubStructure(), i, j, LayerMask, chain::pattern, stripHitFilter(), SubstrMask, and validHitFilter().

Referenced by TrackAnalyzer::analyze(), MTVHistoProducerAlgoForTracker::fill_generic_recoTrack_histos(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), RecoTrackSelectorBase::operator()(), MultiTrackSelector::processMVA(), HIMultiTrackSelector::processMVA(), CosmicTrackSelector::select(), MultiTrackSelector::select(), HIMultiTrackSelector::select(), and QcdUeDQM::trackSelection().

340 {
341  bool hasMono[SubstrMask + 1][LayerMask + 1];
342  bool hasStereo[SubstrMask + 1][LayerMask + 1];
343  memset(hasMono, 0, sizeof(hasMono));
344  memset(hasStereo, 0, sizeof(hasStereo));
345 
346  // mark which layers have mono/stereo hits
347  for (int i = beginTrackHits; i < endTrackHits; ++i) {
349  uint16_t subStructure = getSubStructure(pattern);
350 
351  if (validHitFilter(pattern) && stripHitFilter(pattern)) {
352  if (stripdet != 0 && subStructure != stripdet) {
353  continue;
354  }
355 
356  if (layer != 0 && getSubSubStructure(pattern) != layer) {
357  continue;
358  }
359 
360  switch (getSide(pattern)) {
361  case 0: // mono
362  hasMono[subStructure][getLayer(pattern)] = true;
363  break;
364  case 1: // stereo
365  hasStereo[subStructure][getLayer(pattern)] = true;
366  break;
367  default:
368  ;
369  break;
370  }
371  }
372  }
373 
374  // count how many layers have mono and stereo hits
375  int count = 0;
376  for (int i = 0; i < SubstrMask + 1; ++i) {
377  for (int j = 0; j < LayerMask + 1; ++j) {
378  if (hasMono[i][j] && hasStereo[i][j]) {
379  count++;
380  }
381  }
382  }
383  return count;
384 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getLayer(uint16_t pattern)
Definition: HitPattern.h:680
list pattern
Definition: chain.py:104
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool stripHitFilter(uint16_t pattern)
Definition: HitPattern.h:582
int j
Definition: DBlmapReader.cc:9
uint8_t beginTrackHits
Definition: HitPattern.h:462
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static uint32_t getSide(uint16_t pattern)
Definition: HitPattern.h:704
static const unsigned short SubstrMask
Definition: HitPattern.h:421
static uint32_t getSubSubStructure(uint16_t pattern)
Definition: HitPattern.h:685
static const unsigned short LayerMask
Definition: HitPattern.h:417
int HitPattern::numberOfValidStripLayersWithMonoAndStereo ( ) const

Definition at line 386 of file HitPattern.cc.

References python.rootplot.argparse::category, getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), getSide(), HitTypeMask, HitTypeOffset, i, LayerOffset, minStripWord, minTrackerWord, chain::pattern, and TRACK_HITS.

Referenced by numberOfValidTECLayersWithMonoAndStereo(), numberOfValidTIBLayersWithMonoAndStereo(), numberOfValidTIDLayersWithMonoAndStereo(), and numberOfValidTOBLayersWithMonoAndStereo().

387 {
388  auto category = TRACK_HITS;
389  std::bitset<128> side[2];
390  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
391  for (int i = range.first; i < range.second; ++i) {
393  if (pattern<minStripWord) continue;
394  uint16_t hitType = (pattern >> HitTypeOffset) & HitTypeMask;
395  if (hitType != HIT_TYPE::VALID) continue;
396  auto apattern = (pattern-minTrackerWord) >> LayerOffset;
397  // assert(apattern<128);
398  side[getSide(pattern)].set(apattern);
399  }
400  // assert(numberOfValidStripLayersWithMonoAndStereo(0, 0)==int((side[0]&side[1]).count()));
401  return (side[0]&side[1]).count();
402 
403 
404 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
static const unsigned short HitTypeMask
Definition: HitPattern.h:409
static const unsigned short minTrackerWord
Definition: HitPattern.h:427
static const unsigned short HitTypeOffset
Definition: HitPattern.h:408
static const unsigned short minStripWord
Definition: HitPattern.h:429
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static uint32_t getSide(uint16_t pattern)
Definition: HitPattern.h:704
static const unsigned short LayerOffset
Definition: HitPattern.h:416
int reco::HitPattern::numberOfValidStripTECHits ( ) const
inline

Definition at line 851 of file HitPattern.h.

References countTypedHits(), stripTECHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by PatTrackAnalyzer::analyze(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), TrackAnalyzer::fillHistosForTrackerSpecific(), and HIPAlignmentAlgorithm::run().

852 {
854 }
static bool stripTECHitFilter(uint16_t pattern)
Definition: HitPattern.h:612
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
int reco::HitPattern::numberOfValidStripTIBHits ( ) const
inline

Definition at line 836 of file HitPattern.h.

References countTypedHits(), stripTIBHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by PatTrackAnalyzer::analyze(), CheckHitPattern::analyze(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), TrackAnalyzer::fillHistosForTrackerSpecific(), and HIPAlignmentAlgorithm::run().

837 {
839 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool stripTIBHitFilter(uint16_t pattern)
Definition: HitPattern.h:597
int reco::HitPattern::numberOfValidStripTIDHits ( ) const
inline

Definition at line 841 of file HitPattern.h.

References countTypedHits(), stripTIDHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by PatTrackAnalyzer::analyze(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), TrackAnalyzer::fillHistosForTrackerSpecific(), and HIPAlignmentAlgorithm::run().

842 {
844 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool stripTIDHitFilter(uint16_t pattern)
Definition: HitPattern.h:602
int reco::HitPattern::numberOfValidStripTOBHits ( ) const
inline

Definition at line 846 of file HitPattern.h.

References countTypedHits(), stripTOBHitFilter(), TRACK_HITS, and validHitFilter().

Referenced by PatTrackAnalyzer::analyze(), CheckHitPattern::analyze(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), TrackAnalyzer::fillHistosForTrackerSpecific(), and HIPAlignmentAlgorithm::run().

847 {
849 }
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
Definition: HitPattern.h:538
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:765
static bool stripTOBHitFilter(uint16_t pattern)
Definition: HitPattern.h:607
int HitPattern::numberOfValidTECLayersWithMonoAndStereo ( uint32_t  layer = 0) const
int HitPattern::numberOfValidTIBLayersWithMonoAndStereo ( uint32_t  layer = 0) const
int HitPattern::numberOfValidTIDLayersWithMonoAndStereo ( uint32_t  layer = 0) const
int HitPattern::numberOfValidTOBLayersWithMonoAndStereo ( uint32_t  layer = 0) const
int reco::HitPattern::numberOfValidTrackerHits ( ) const
inline
HitPattern & HitPattern::operator= ( const HitPattern other)

Definition at line 49 of file HitPattern.cc.

References ARRAY_LENGTH, beginInner, beginOuter, beginTrackHits, endInner, endOuter, endTrackHits, hitCount, and hitPattern.

50 {
51  if (this == &other) {
52  return *this;
53  }
54 
55  this->hitCount = other.hitCount;
56 
57  this->beginTrackHits = other.beginTrackHits;
58  this->endTrackHits = other.endTrackHits;
59 
60  this->beginInner = other.beginInner;
61  this->endInner = other.endInner;
62 
63  this->beginOuter = other.beginOuter;
64  this->endOuter = other.endOuter;
65 
66  memcpy(this->hitPattern, other.hitPattern, sizeof(uint16_t) * HitPattern::ARRAY_LENGTH);
67 
68  return *this;
69 }
static const unsigned short ARRAY_LENGTH
Definition: HitPattern.h:165
uint8_t endInner
Definition: HitPattern.h:465
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:459
uint8_t beginInner
Definition: HitPattern.h:464
uint8_t beginTrackHits
Definition: HitPattern.h:462
uint8_t endTrackHits
Definition: HitPattern.h:463
uint8_t hitCount
Definition: HitPattern.h:460
uint8_t beginOuter
Definition: HitPattern.h:466
uint8_t endOuter
Definition: HitPattern.h:467
int reco::HitPattern::outermostMuonStationWithAnyHits ( ) const
inline

Definition at line 1167 of file HitPattern.h.

References outermostMuonStationWithHits().

1168 {
1169  return outermostMuonStationWithHits(-1);
1170 }
int outermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:936
int reco::HitPattern::outermostMuonStationWithBadHits ( ) const
inline

Definition at line 1162 of file HitPattern.h.

References outermostMuonStationWithHits().

1163 {
1164  return outermostMuonStationWithHits(3);
1165 }
int outermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:936
int HitPattern::outermostMuonStationWithHits ( int  hitType) const

hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all

Definition at line 936 of file HitPattern.cc.

References beginTrackHits, endTrackHits, getHitPatternByAbsoluteIndex(), getHitType(), getMuonStation(), i, muonHitFilter(), chain::pattern, and run_regression::ret.

Referenced by outermostMuonStationWithAnyHits(), outermostMuonStationWithBadHits(), and outermostMuonStationWithValidHits().

937 {
938  int ret = 0;
939  for (int i = beginTrackHits; i < endTrackHits; ++i) {
941  if (muonHitFilter(pattern) &&
942  (hitType == -1 || int(getHitType(pattern)) == hitType)) {
943  int stat = getMuonStation(pattern);
944  if (ret == 0 || stat > ret) {
945  ret = stat;
946  }
947  }
948  }
949  return ret;
950 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
static uint32_t getHitType(uint16_t pattern)
Definition: HitPattern.h:713
uint8_t beginTrackHits
Definition: HitPattern.h:462
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
uint8_t endTrackHits
Definition: HitPattern.h:463
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
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:722
int reco::HitPattern::outermostMuonStationWithValidHits ( ) const
inline

Definition at line 1157 of file HitPattern.h.

References outermostMuonStationWithHits().

1158 {
1159  return outermostMuonStationWithHits(0);
1160 }
int outermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:936
bool reco::HitPattern::pixelBarrelHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 562 of file HitPattern.h.

References getSubStructure(), PixelSubdetector::PixelBarrel, trackerHitFilter(), and unlikely.

Referenced by hasValidHitInFirstPixelBarrel(), numberOfLostPixelBarrelHits(), and numberOfValidPixelBarrelHits().

563 {
565  return false;
566  }
567 
568  uint32_t substructure = getSubStructure(pattern);
569  return (substructure == PixelSubdetector::PixelBarrel);
570 }
list pattern
Definition: chain.py:104
#define unlikely(x)
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
int HitPattern::pixelBarrelLayersNull ( ) const

Definition at line 762 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), NULL_RETURN, PixelSubdetector::PixelBarrel, and TRACK_HITS.

Referenced by pixelLayersNull().

763 {
764  int count = 0;
765  uint16_t NPixBarrel = 4;
766  for (uint16_t layer = 1; layer <= NPixBarrel; layer++) {
768  count++;
769  }
770  }
771  return count;
772 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::pixelBarrelLayersTotallyOffOrBad ( ) const

Definition at line 693 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), PixelSubdetector::PixelBarrel, and TRACK_HITS.

Referenced by pixelLayersTotallyOffOrBad().

694 {
695  int count = 0;
696  uint16_t NPixBarrel = 4;
697  for (uint16_t layer = 1; layer <= NPixBarrel; layer++) {
698  if (getTrackerLayerCase(TRACK_HITS, PixelSubdetector::PixelBarrel, layer) == HIT_TYPE::INACTIVE) {
699  count++;
700  }
701  }
702  return count;
703 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::pixelBarrelLayersWithMeasurement ( ) const

Definition at line 556 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), PixelSubdetector::PixelBarrel, and TRACK_HITS.

Referenced by TrackAnalyzer::fillHistosForTrackerSpecific(), pixelLayersWithMeasurementOld(), IsolatedTracksNxN::printTrack(), and BeamFitter::readEvent().

557 {
558  int count = 0;
559  uint16_t NPixBarrel = 4;
560  for (uint16_t layer = 1; layer <= NPixBarrel; layer++) {
561  if (getTrackerLayerCase(TRACK_HITS, PixelSubdetector::PixelBarrel, layer) == HIT_TYPE::VALID) {
562  count++;
563  }
564  }
565  return count;
566 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::pixelBarrelLayersWithoutMeasurement ( HitCategory  category) const

Definition at line 624 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), and PixelSubdetector::PixelBarrel.

Referenced by pixelLayersWithoutMeasurement().

625 {
626  int count = 0;
627  uint16_t NPixBarrel = 4;
628  for (uint16_t layer = 1; layer <= NPixBarrel; layer++) {
629  if (getTrackerLayerCase(category, PixelSubdetector::PixelBarrel, layer) == HIT_TYPE::MISSING) {
630  count++;
631  }
632  }
633  return count;
634 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
bool reco::HitPattern::pixelEndcapHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 572 of file HitPattern.h.

References getSubStructure(), PixelSubdetector::PixelEndcap, trackerHitFilter(), and unlikely.

Referenced by hasValidHitInFirstPixelEndcap(), numberOfLostPixelEndcapHits(), and numberOfValidPixelEndcapHits().

573 {
575  return false;
576  }
577 
578  uint32_t substructure = getSubStructure(pattern);
579  return (substructure == PixelSubdetector::PixelEndcap);
580 }
list pattern
Definition: chain.py:104
#define unlikely(x)
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
int HitPattern::pixelEndcapLayersNull ( ) const

Definition at line 774 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), NULL_RETURN, PixelSubdetector::PixelEndcap, and TRACK_HITS.

Referenced by pixelLayersNull().

775 {
776  int count = 0;
777  uint16_t NPixForward = 3;
778  for (uint16_t layer = 1; layer <= NPixForward; layer++) {
780  count++;
781  }
782  }
783  return count;
784 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::pixelEndcapLayersTotallyOffOrBad ( ) const

Definition at line 705 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), PixelSubdetector::PixelEndcap, and TRACK_HITS.

Referenced by pixelLayersTotallyOffOrBad().

706 {
707  int count = 0;
708  uint16_t NPixForward = 3;
709  for (uint16_t layer = 1; layer <= NPixForward; layer++) {
710  if (getTrackerLayerCase(TRACK_HITS, PixelSubdetector::PixelEndcap, layer) == HIT_TYPE::INACTIVE) {
711  count++;
712  }
713  }
714  return count;
715 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::pixelEndcapLayersWithMeasurement ( ) const

Definition at line 568 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), PixelSubdetector::PixelEndcap, and TRACK_HITS.

Referenced by TrackAnalyzer::fillHistosForTrackerSpecific(), pixelLayersWithMeasurementOld(), IsolatedTracksNxN::printTrack(), and BeamFitter::readEvent().

569 {
570  int count = 0;
571  uint16_t NPixForward = 3;
572  for (uint16_t layer = 1; layer <= NPixForward; layer++) {
573  if (getTrackerLayerCase(TRACK_HITS, PixelSubdetector::PixelEndcap, layer) == HIT_TYPE::VALID) {
574  count++;
575  }
576  }
577  return count;
578 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::pixelEndcapLayersWithoutMeasurement ( HitCategory  category) const

Definition at line 636 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), and PixelSubdetector::PixelEndcap.

Referenced by pixelLayersWithoutMeasurement().

637 {
638  int count = 0;
639  uint16_t NPixForward = 3;
640  for (uint16_t layer = 1; layer <= NPixForward; layer++) {
641  if (getTrackerLayerCase(category, PixelSubdetector::PixelEndcap, layer) == HIT_TYPE::MISSING) {
642  count++;
643  }
644  }
645  return count;
646 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
bool reco::HitPattern::pixelHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 551 of file HitPattern.h.

References getSubStructure(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, trackerHitFilter(), and unlikely.

Referenced by GsfElectronCoreBaseProducer::getCtfTrackRef(), numberOfLostPixelHits(), numberOfValidPixelHits(), FWConvTrackHitsDetailView::setTextInfo(), and QcdUeDQM::trackSelection().

552 {
554  return false;
555  }
556 
557  uint32_t substructure = getSubStructure(pattern);
558  return (substructure == PixelSubdetector::PixelBarrel ||
559  substructure == PixelSubdetector::PixelEndcap);
560 }
list pattern
Definition: chain.py:104
#define unlikely(x)
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
int reco::HitPattern::pixelLayersNull ( ) const
inline

Definition at line 1053 of file HitPattern.h.

References pixelBarrelLayersNull(), and pixelEndcapLayersNull().

Referenced by trackerLayersNull().

1054 {
1055  return pixelBarrelLayersNull() +
1057 }
int pixelBarrelLayersNull() const
Definition: HitPattern.cc:762
int pixelEndcapLayersNull() const
Definition: HitPattern.cc:774
int reco::HitPattern::pixelLayersTotallyOffOrBad ( ) const
inline

Definition at line 1033 of file HitPattern.h.

References pixelBarrelLayersTotallyOffOrBad(), and pixelEndcapLayersTotallyOffOrBad().

Referenced by trackerLayersTotallyOffOrBad().

1034 {
1037 }
int pixelBarrelLayersTotallyOffOrBad() const
Definition: HitPattern.cc:693
int pixelEndcapLayersTotallyOffOrBad() const
Definition: HitPattern.cc:705
int HitPattern::pixelLayersWithMeasurement ( ) const

Definition at line 497 of file HitPattern.cc.

References python.rootplot.argparse::category, getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), HitTypeMask, HitTypeOffset, i, LayerOffset, minStripWord, minTrackerWord, chain::pattern, TRACK_HITS, trackerHitFilter(), and unlikely.

Referenced by StandaloneTrackMonitor::analyze(), TrackAnalyzer::analyze(), MTVHistoProducerAlgoForTracker::fill_generic_recoTrack_histos(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), TrackFilterForPVFinding::operator()(), GhostTrackComputer::operator()(), RecoTrackSelectorBase::operator()(), IsolatedTracksNxN::printTrack(), MultiTrackSelector::processMVA(), HIMultiTrackSelector::processMVA(), BeamFitter::readEvent(), CosmicTrackSelector::select(), MultiTrackSelector::select(), HIMultiTrackSelector::select(), BPhysicsOniaDQM::selGlobalMuon(), MuScleFitMuonSelector::selGlobalMuon(), MuScleFit::selGlobalMuon(), BPhysicsOniaDQM::selTrackerMuon(), MuScleFitMuonSelector::selTrackerMuon(), MuScleFit::selTrackerMuon(), trackerLayersWithMeasurementOld(), and QcdUeDQM::trackSelection().

497  {
498  auto category = TRACK_HITS;
499  std::bitset<128> layerOk;
500  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
501  for (int i = range.first; i < range.second; ++i) {
503  if unlikely(!trackerHitFilter(pattern)) continue;
504  if (pattern>minStripWord) continue;
505  uint16_t hitType = (pattern >> HitTypeOffset) & HitTypeMask;
506  if (hitType != HIT_TYPE::VALID) continue;
508  // assert(pattern<128);
509  layerOk.set(pattern);
510  }
511  // assert(pixelLayersWithMeasurementOld()==int(layerOk.count()));
512  return layerOk.count();
513 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
static const unsigned short HitTypeMask
Definition: HitPattern.h:409
return((rh^lh)&mask)
#define unlikely(x)
static const unsigned short minTrackerWord
Definition: HitPattern.h:427
static const unsigned short HitTypeOffset
Definition: HitPattern.h:408
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
static const unsigned short minStripWord
Definition: HitPattern.h:429
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static const unsigned short LayerOffset
Definition: HitPattern.h:416
if(conf.exists("allCellsPositionCalc"))
int reco::HitPattern::pixelLayersWithMeasurementOld ( ) const
inline

Definition at line 996 of file HitPattern.h.

References pixelBarrelLayersWithMeasurement(), and pixelEndcapLayersWithMeasurement().

997 {
999 }
int pixelEndcapLayersWithMeasurement() const
Definition: HitPattern.cc:568
int pixelBarrelLayersWithMeasurement() const
Definition: HitPattern.cc:556
int reco::HitPattern::pixelLayersWithoutMeasurement ( HitCategory  category) const
inline

Definition at line 1013 of file HitPattern.h.

References pixelBarrelLayersWithoutMeasurement(), and pixelEndcapLayersWithoutMeasurement().

Referenced by trackerLayersWithoutMeasurementOld().

1014 {
1017 }
int pixelBarrelLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:624
int pixelEndcapLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:636
void HitPattern::print ( HitCategory  category,
std::ostream &  stream = std::cout 
) const

Definition at line 864 of file HitPattern.cc.

References flags, getHitPattern(), i, numberOfHits(), and printHitPattern().

865 {
866  stream << "HitPattern" << std::endl;
867  for (int i = 0; i < numberOfHits(category); ++i) {
868  printHitPattern(category, i, stream);
869  }
870  std::ios_base::fmtflags flags = stream.flags();
871  stream.setf(std::ios_base::hex, std::ios_base::basefield);
872  stream.setf(std::ios_base::showbase);
873 
874  for (int i = 0; i < this->numberOfHits(category); ++i) {
875  stream << getHitPattern(category, i) << std::endl;
876  }
877 
878  stream.flags(flags);
879 }
int i
Definition: DBlmapReader.cc:9
std::vector< Variable::Flags > flags
Definition: MVATrainer.cc:135
void printHitPattern(HitCategory category, int position, std::ostream &stream) const
Definition: HitPattern.cc:830
uint16_t getHitPattern(HitCategory category, int position) const
Definition: HitPattern.h:502
int numberOfHits(HitCategory category) const
Definition: HitPattern.h:785
void HitPattern::printHitPattern ( HitCategory  category,
int  position,
std::ostream &  stream 
) const

Definition at line 830 of file HitPattern.cc.

References getCSCRing(), getDTSuperLayer(), getGEMLayer(), getGEMStation(), getHitPattern(), getHitType(), getLayer(), getMuonStation(), getRPCLayer(), getRPCregion(), getSubStructure(), muonCSCHitFilter(), muonDTHitFilter(), muonGEMHitFilter(), muonHitFilter(), muonRPCHitFilter(), chain::pattern, and trackerHitFilter().

Referenced by spr::goodTrack(), print(), IsolatedTracksCone::printTrack(), and IsolatedTracksNxN::printTrack().

831 {
832  uint16_t pattern = getHitPattern(category, position);
833  stream << "\t";
834  if (muonHitFilter(pattern)) {
835  stream << "muon";
836  } else if (trackerHitFilter(pattern)) {
837  stream << "tracker";
838  }
839 
840  stream << "\tsubstructure " << getSubStructure(pattern);
841  if (muonHitFilter(pattern)) {
842  stream << "\tstation " << getMuonStation(pattern);
843  if (muonDTHitFilter(pattern)) {
844  stream << "\tdt superlayer " << getDTSuperLayer(pattern);
845  } else if (muonCSCHitFilter(pattern)) {
846  stream << "\tcsc ring " << getCSCRing(pattern);
847  } else if (muonRPCHitFilter(pattern)) {
848  stream << "\trpc " << (getRPCregion(pattern) ? "endcaps" : "barrel")
849  << ", layer " << getRPCLayer(pattern);
850  } else if (muonGEMHitFilter(pattern)) {
851  stream << "\tgem " << (getGEMLayer(pattern) ? "layer1" : "layer2")
852  << ", station " << getGEMStation(pattern);
853  } else {
854  stream << "(UNKNOWN Muon SubStructure!) \tsubsubstructure "
855  << getSubStructure(pattern);
856  }
857  } else {
858  stream << "\tlayer " << getLayer(pattern);
859  }
860  stream << "\thit type " << getHitType(pattern);
861  stream << std::endl;
862 }
static uint16_t getCSCRing(uint16_t pattern)
CSC ring (1-4). Only valid for muon CSC patterns, of course.
Definition: HitPattern.h:732
static uint32_t getLayer(uint16_t pattern)
Definition: HitPattern.h:680
static uint16_t getDTSuperLayer(uint16_t pattern)
DT superlayer (1-3). Where the &quot;hit&quot; was a DT segment, superlayer is 0. Only valid for muon DT patter...
Definition: HitPattern.h:727
list pattern
Definition: chain.py:104
static uint16_t getGEMLayer(uint16_t pattern)
GEM layer: 1,2. Only valid for muon GEM patterns, of course.
Definition: HitPattern.h:760
static bool muonCSCHitFilter(uint16_t pattern)
Definition: HitPattern.h:627
static uint32_t getHitType(uint16_t pattern)
Definition: HitPattern.h:713
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static uint16_t getRPCregion(uint16_t pattern)
RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course.
Definition: HitPattern.h:749
static bool muonGEMHitFilter(uint16_t pattern)
Definition: HitPattern.h:647
static uint16_t getGEMStation(uint16_t pattern)
GEM station: 1,2. Only valid for muon GEM patterns, of course.
Definition: HitPattern.h:755
static bool muonHitFilter(uint16_t pattern)
Definition: HitPattern.h:662
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
static bool muonDTHitFilter(uint16_t pattern)
Definition: HitPattern.h:617
static int position[264][3]
Definition: ReadPGInfo.cc:509
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:737
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:722
uint16_t getHitPattern(HitCategory category, int position) const
Definition: HitPattern.h:502
static bool muonRPCHitFilter(uint16_t pattern)
Definition: HitPattern.h:637
int reco::HitPattern::rpcStationsWithAnyHits ( ) const
inline

Definition at line 1122 of file HitPattern.h.

References muonStations().

1123 {
1124  return muonStations(3, -1);
1125 }
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:904
int reco::HitPattern::rpcStationsWithBadHits ( ) const
inline

Definition at line 1117 of file HitPattern.h.

References muonStations().

1118 {
1119  return muonStations(3, 3);
1120 }
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:904
int reco::HitPattern::rpcStationsWithValidHits ( ) const
inline

Definition at line 1112 of file HitPattern.h.

References muonStations().

1113 {
1114  return muonStations(3, 0);
1115 }
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:904
bool reco::HitPattern::stripHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 582 of file HitPattern.h.

References minStripWord.

Referenced by numberOfLostStripHits(), numberOfValidStripHits(), numberOfValidStripLayersWithMonoAndStereo(), and FWConvTrackHitsDetailView::setTextInfo().

583 {
584  return pattern > minStripWord;
585 }
list pattern
Definition: chain.py:104
static const unsigned short minStripWord
Definition: HitPattern.h:429
int reco::HitPattern::stripLayersNull ( ) const
inline

Definition at line 1059 of file HitPattern.h.

References stripTECLayersNull(), stripTIBLayersNull(), stripTIDLayersNull(), and stripTOBLayersNull().

Referenced by trackerLayersNull().

1060 {
1061  return stripTIBLayersNull() +
1062  stripTIDLayersNull() +
1063  stripTOBLayersNull() +
1065 }
int stripTIBLayersNull() const
Definition: HitPattern.cc:786
int stripTECLayersNull() const
Definition: HitPattern.cc:819
int stripTIDLayersNull() const
Definition: HitPattern.cc:797
int stripTOBLayersNull() const
Definition: HitPattern.cc:808
int reco::HitPattern::stripLayersTotallyOffOrBad ( ) const
inline
int reco::HitPattern::stripLayersWithMeasurement ( ) const
inline
int reco::HitPattern::stripLayersWithoutMeasurement ( HitCategory  category) const
inline

Definition at line 1019 of file HitPattern.h.

References stripTECLayersWithoutMeasurement(), stripTIBLayersWithoutMeasurement(), stripTIDLayersWithoutMeasurement(), and stripTOBLayersWithoutMeasurement().

Referenced by trackerLayersWithoutMeasurementOld().

1020 {
1025 }
int stripTOBLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:670
int stripTIDLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:659
int stripTECLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:681
int stripTIBLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:648
bool reco::HitPattern::stripSubdetectorHitFilter ( uint16_t  pattern,
StripSubdetector::SubDetector  substructure 
)
inlinestaticprivate

Definition at line 588 of file HitPattern.h.

References getSubStructure(), trackerHitFilter(), and unlikely.

Referenced by stripTECHitFilter(), stripTIBHitFilter(), stripTIDHitFilter(), and stripTOBHitFilter().

589 {
591  return false;
592  }
593 
594  return substructure == getSubStructure(pattern);
595 }
list pattern
Definition: chain.py:104
#define unlikely(x)
static uint32_t getSubStructure(uint16_t pattern)
Definition: HitPattern.h:671
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
bool reco::HitPattern::stripTECHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 612 of file HitPattern.h.

References stripSubdetectorHitFilter(), and StripSubdetector::TEC.

Referenced by numberOfLostStripTECHits(), and numberOfValidStripTECHits().

613 {
615 }
list pattern
Definition: chain.py:104
static bool stripSubdetectorHitFilter(uint16_t pattern, StripSubdetector::SubDetector substructure)
Definition: HitPattern.h:588
int HitPattern::stripTECLayersNull ( ) const

Definition at line 819 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), NULL_RETURN, StripSubdetector::TEC, and TRACK_HITS.

Referenced by stripLayersNull().

820 {
821  int count = 0;
822  for (uint16_t layer = 1; layer <= 9; layer++) {
824  count++;
825  }
826  }
827  return count;
828 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTECLayersTotallyOffOrBad ( ) const

Definition at line 751 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), StripSubdetector::TEC, and TRACK_HITS.

Referenced by stripLayersTotallyOffOrBad().

752 {
753  int count = 0;
754  for (uint16_t layer = 1; layer <= 9; layer++) {
755  if (getTrackerLayerCase(TRACK_HITS, StripSubdetector::TEC, layer) == HIT_TYPE::INACTIVE) {
756  count++;
757  }
758  }
759  return count;
760 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTECLayersWithMeasurement ( ) const

Definition at line 613 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), StripSubdetector::TEC, and TRACK_HITS.

Referenced by IsolatedTracksNxN::analyze(), TrackAnalyzer::fillHistosForTrackerSpecific(), spr::goodTrack(), IsolatedTracksNxN::printTrack(), BeamFitter::readEvent(), and stripLayersWithMeasurement().

614 {
615  int count = 0;
616  for (uint16_t layer = 1; layer <= 9; layer++) {
617  if (getTrackerLayerCase(TRACK_HITS, StripSubdetector::TEC, layer) == HIT_TYPE::VALID) {
618  count++;
619  }
620  }
621  return count;
622 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTECLayersWithoutMeasurement ( HitCategory  category) const

Definition at line 681 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), and StripSubdetector::TEC.

Referenced by IsolatedTracksNxN::analyze(), and stripLayersWithoutMeasurement().

682 {
683  int count = 0;
684  for (uint16_t layer = 1; layer <= 9; layer++) {
685  if (getTrackerLayerCase(category, StripSubdetector::TEC, layer) == HIT_TYPE::MISSING) {
686  count++;
687  }
688  }
689  return count;
690 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
bool reco::HitPattern::stripTIBHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 597 of file HitPattern.h.

References stripSubdetectorHitFilter(), and StripSubdetector::TIB.

Referenced by GsfElectronCoreBaseProducer::getCtfTrackRef(), numberOfLostStripTIBHits(), and numberOfValidStripTIBHits().

598 {
600 }
list pattern
Definition: chain.py:104
static bool stripSubdetectorHitFilter(uint16_t pattern, StripSubdetector::SubDetector substructure)
Definition: HitPattern.h:588
int HitPattern::stripTIBLayersNull ( ) const

Definition at line 786 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), NULL_RETURN, StripSubdetector::TIB, and TRACK_HITS.

Referenced by stripLayersNull().

787 {
788  int count = 0;
789  for (uint16_t layer = 1; layer <= 4; layer++) {
791  count++;
792  }
793  }
794  return count;
795 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTIBLayersTotallyOffOrBad ( ) const

Definition at line 717 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), StripSubdetector::TIB, and TRACK_HITS.

Referenced by stripLayersTotallyOffOrBad().

718 {
719  int count = 0;
720  for (uint16_t layer = 1; layer <= 4; layer++) {
721  if (getTrackerLayerCase(TRACK_HITS, StripSubdetector::TIB, layer) == HIT_TYPE::INACTIVE) {
722  count++;
723  }
724  }
725  return count;
726 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTIBLayersWithMeasurement ( ) const

Definition at line 580 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), StripSubdetector::TIB, and TRACK_HITS.

Referenced by IsolatedTracksNxN::analyze(), TrackAnalyzer::fillHistosForTrackerSpecific(), IsolatedTracksNxN::printTrack(), BeamFitter::readEvent(), and stripLayersWithMeasurement().

581 {
582  int count = 0;
583  for (uint16_t layer = 1; layer <= 4; layer++) {
584  if (getTrackerLayerCase(TRACK_HITS, StripSubdetector::TIB, layer) == HIT_TYPE::VALID) {
585  count++;
586  }
587  }
588  return count;
589 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTIBLayersWithoutMeasurement ( HitCategory  category) const

Definition at line 648 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), and StripSubdetector::TIB.

Referenced by IsolatedTracksNxN::analyze(), and stripLayersWithoutMeasurement().

649 {
650  int count = 0;
651  for (uint16_t layer = 1; layer <= 4; layer++) {
652  if (getTrackerLayerCase(category, StripSubdetector::TIB, layer) == HIT_TYPE::MISSING) {
653  count++;
654  }
655  }
656  return count;
657 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
bool reco::HitPattern::stripTIDHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 602 of file HitPattern.h.

References stripSubdetectorHitFilter(), and StripSubdetector::TID.

Referenced by GsfElectronCoreBaseProducer::getCtfTrackRef(), numberOfLostStripTIDHits(), and numberOfValidStripTIDHits().

603 {
605 }
list pattern
Definition: chain.py:104
static bool stripSubdetectorHitFilter(uint16_t pattern, StripSubdetector::SubDetector substructure)
Definition: HitPattern.h:588
int HitPattern::stripTIDLayersNull ( ) const

Definition at line 797 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), NULL_RETURN, StripSubdetector::TID, and TRACK_HITS.

Referenced by stripLayersNull().

798 {
799  int count = 0;
800  for (uint16_t layer = 1; layer <= 3; layer++) {
802  count++;
803  }
804  }
805  return count;
806 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTIDLayersTotallyOffOrBad ( ) const

Definition at line 728 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), StripSubdetector::TID, and TRACK_HITS.

Referenced by stripLayersTotallyOffOrBad().

729 {
730  int count = 0;
731  for (uint16_t layer = 1; layer <= 3; layer++) {
732  if (getTrackerLayerCase(TRACK_HITS, StripSubdetector::TID, layer) == HIT_TYPE::INACTIVE) {
733  count++;
734  }
735  }
736  return count;
737 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTIDLayersWithMeasurement ( ) const

Definition at line 591 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), StripSubdetector::TID, and TRACK_HITS.

Referenced by IsolatedTracksNxN::analyze(), TrackAnalyzer::fillHistosForTrackerSpecific(), IsolatedTracksNxN::printTrack(), BeamFitter::readEvent(), and stripLayersWithMeasurement().

592 {
593  int count = 0;
594  for (uint16_t layer = 1; layer <= 3; layer++) {
595  if (getTrackerLayerCase(TRACK_HITS, StripSubdetector::TID, layer) == HIT_TYPE::VALID) {
596  count++;
597  }
598  }
599  return count;
600 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTIDLayersWithoutMeasurement ( HitCategory  category) const

Definition at line 659 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), and StripSubdetector::TID.

Referenced by IsolatedTracksNxN::analyze(), and stripLayersWithoutMeasurement().

660 {
661  int count = 0;
662  for (uint16_t layer = 1; layer <= 3; layer++) {
663  if (getTrackerLayerCase(category, StripSubdetector::TID, layer) == HIT_TYPE::MISSING) {
664  count++;
665  }
666  }
667  return count;
668 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
bool reco::HitPattern::stripTOBHitFilter ( uint16_t  pattern)
inlinestatic

Definition at line 607 of file HitPattern.h.

References stripSubdetectorHitFilter(), and StripSubdetector::TOB.

Referenced by numberOfLostStripTOBHits(), and numberOfValidStripTOBHits().

608 {
610 }
list pattern
Definition: chain.py:104
static bool stripSubdetectorHitFilter(uint16_t pattern, StripSubdetector::SubDetector substructure)
Definition: HitPattern.h:588
int HitPattern::stripTOBLayersNull ( ) const

Definition at line 808 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), NULL_RETURN, StripSubdetector::TOB, and TRACK_HITS.

Referenced by stripLayersNull().

809 {
810  int count = 0;
811  for (uint16_t layer = 1; layer <= 6; layer++) {
813  count++;
814  }
815  }
816  return count;
817 }
static const uint32_t NULL_RETURN
Definition: HitPattern.h:169
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTOBLayersTotallyOffOrBad ( ) const

Definition at line 739 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), StripSubdetector::TOB, and TRACK_HITS.

Referenced by stripLayersTotallyOffOrBad().

740 {
741  int count = 0;
742  for (uint16_t layer = 1; layer <= 6; layer++) {
743 
744  if (getTrackerLayerCase(TRACK_HITS, StripSubdetector::TOB, layer) == HIT_TYPE::INACTIVE) {
745  count++;
746  }
747  }
748  return count;
749 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTOBLayersWithMeasurement ( ) const

Definition at line 602 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), StripSubdetector::TOB, and TRACK_HITS.

Referenced by IsolatedTracksNxN::analyze(), TrackAnalyzer::fillHistosForTrackerSpecific(), spr::goodTrack(), IsolatedTracksNxN::printTrack(), BeamFitter::readEvent(), and stripLayersWithMeasurement().

603 {
604  int count = 0;
605  for (uint16_t layer = 1; layer <= 6; layer++) {
606  if (getTrackerLayerCase(TRACK_HITS, StripSubdetector::TOB, layer) == HIT_TYPE::VALID) {
607  count++;
608  }
609  }
610  return count;
611 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
int HitPattern::stripTOBLayersWithoutMeasurement ( HitCategory  category) const

Definition at line 670 of file HitPattern.cc.

References prof2calltree::count, getTrackerLayerCase(), and StripSubdetector::TOB.

Referenced by IsolatedTracksNxN::analyze(), and stripLayersWithoutMeasurement().

671 {
672  int count = 0;
673  for (uint16_t layer = 1; layer <= 6; layer++) {
674  if (getTrackerLayerCase(category, StripSubdetector::TOB, layer) == HIT_TYPE::MISSING) {
675  count++;
676  }
677  }
678  return count;
679 }
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
Definition: HitPattern.cc:426
bool reco::HitPattern::trackerHitFilter ( uint16_t  pattern)
inlinestatic
int reco::HitPattern::trackerLayersNull ( ) const
inline

Definition at line 1047 of file HitPattern.h.

References pixelLayersNull(), and stripLayersNull().

1048 {
1049  return pixelLayersNull() +
1050  stripLayersNull();
1051 }
int pixelLayersNull() const
Definition: HitPattern.h:1053
int stripLayersNull() const
Definition: HitPattern.h:1059
int reco::HitPattern::trackerLayersTotallyOffOrBad ( ) const
inline

Definition at line 1027 of file HitPattern.h.

References pixelLayersTotallyOffOrBad(), and stripLayersTotallyOffOrBad().

Referenced by TrackAnalyzer::analyze().

1028 {
1029  return pixelLayersTotallyOffOrBad() +
1031 }
int pixelLayersTotallyOffOrBad() const
Definition: HitPattern.h:1033
int stripLayersTotallyOffOrBad() const
Definition: HitPattern.h:1039
int HitPattern::trackerLayersWithMeasurement ( ) const

Definition at line 516 of file HitPattern.cc.

References python.rootplot.argparse::category, getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), HitTypeMask, HitTypeOffset, i, LayerOffset, minTrackerWord, chain::pattern, TRACK_HITS, trackerHitFilter(), and unlikely.

Referenced by StandaloneTrackMonitor::analyze(), TrackAnalyzer::analyze(), IsolatedTracksCone::analyze(), IsolatedTracksNxN::analyze(), spr::coneChargeIsolation(), MTVHistoProducerAlgoForTracker::fill_generic_recoTrack_histos(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), TrackAnalyzer::fillHistosForState(), spr::goodTrack(), cms::MuonTCMETValueMapProducer::nLayers(), TrackFilterForPVFinding::operator()(), GhostTrackComputer::operator()(), RecoTrackSelectorBase::operator()(), IsolatedTracksNxN::printTrack(), MultiTrackSelector::processMVA(), HIMultiTrackSelector::processMVA(), FastTrackerRecHitMaskProducer::produce(), HITrackClusterRemover::produce(), BeamFitter::readEvent(), CosmicTrackSelector::select(), TrackMultiSelector::select(), MultiTrackSelector::select(), HIMultiTrackSelector::select(), TrackVertexArbitration< VTX >::trackFilterArbitrator(), and QcdUeDQM::trackSelection().

516  {
517  auto category = TRACK_HITS;
518  std::bitset<128> layerOk;
519  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
520  for (int i = range.first; i < range.second; ++i) {
522  if unlikely(!trackerHitFilter(pattern)) continue;
523  uint16_t hitType = (pattern >> HitTypeOffset) & HitTypeMask;
524  if (hitType != HIT_TYPE::VALID) continue;
526  // assert(pattern<128);
527  layerOk.set(pattern);
528  }
529  // assert(trackerLayersWithMeasurementOld()==int(layerOk.count()));
530  return layerOk.count();
531 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
static const unsigned short HitTypeMask
Definition: HitPattern.h:409
return((rh^lh)&mask)
#define unlikely(x)
static const unsigned short minTrackerWord
Definition: HitPattern.h:427
static const unsigned short HitTypeOffset
Definition: HitPattern.h:408
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static const unsigned short LayerOffset
Definition: HitPattern.h:416
if(conf.exists("allCellsPositionCalc"))
int reco::HitPattern::trackerLayersWithMeasurementOld ( ) const
inline

Definition at line 991 of file HitPattern.h.

References pixelLayersWithMeasurement(), and stripLayersWithMeasurement().

992 {
994 }
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:497
int stripLayersWithMeasurement() const
Definition: HitPattern.h:1001
int HitPattern::trackerLayersWithoutMeasurement ( HitCategory  category) const

Definition at line 533 of file HitPattern.cc.

References getCategoryIndexRange(), getHitPatternByAbsoluteIndex(), HitTypeMask, HitTypeOffset, i, LayerOffset, minTrackerWord, chain::pattern, trackerHitFilter(), and unlikely.

Referenced by TrackAnalyzer::analyze(), spr::goodTrack(), MultiTrackSelector::processMVA(), HIMultiTrackSelector::processMVA(), CosmicTrackSelector::select(), MultiTrackSelector::select(), and HIMultiTrackSelector::select().

533  {
534  std::bitset<128> layerOk;
535  std::bitset<128> layerMissed;
536  std::pair<uint8_t, uint8_t> range = getCategoryIndexRange(category);
537  for (int i = range.first; i < range.second; ++i) {
539  if unlikely(!trackerHitFilter(pattern)) continue;
540  uint16_t hitType = (pattern >> HitTypeOffset) & HitTypeMask;
542  // assert(pattern<128);
543  if (hitType == HIT_TYPE::VALID) layerOk.set(pattern);
544  if (hitType == HIT_TYPE::MISSING) layerMissed.set(pattern);
545  }
546  layerMissed &= ~layerOk;
547 
548  // assert(trackerLayersWithoutMeasurementOld(category)==int(layerMissed.count()));
549 
550  return layerMissed.count();
551 
552 
553 }
int i
Definition: DBlmapReader.cc:9
list pattern
Definition: chain.py:104
static const unsigned short HitTypeMask
Definition: HitPattern.h:409
return((rh^lh)&mask)
#define unlikely(x)
static const unsigned short minTrackerWord
Definition: HitPattern.h:427
static const unsigned short HitTypeOffset
Definition: HitPattern.h:408
static bool trackerHitFilter(uint16_t pattern)
Definition: HitPattern.h:657
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
Definition: HitPattern.h:475
uint16_t getHitPatternByAbsoluteIndex(int position) const
Definition: HitPattern.cc:273
static const unsigned short LayerOffset
Definition: HitPattern.h:416
if(conf.exists("allCellsPositionCalc"))
int reco::HitPattern::trackerLayersWithoutMeasurementOld ( HitCategory  category) const
inline

Definition at line 1007 of file HitPattern.h.

References pixelLayersWithoutMeasurement(), and stripLayersWithoutMeasurement().

1008 {
1011 }
int pixelLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.h:1013
int stripLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.h:1019
bool reco::HitPattern::validHitFilter ( uint16_t  pattern)
inlinestatic

Friends And Related Function Documentation

template<int N>
friend struct PatternSet
friend

Definition at line 472 of file HitPattern.h.

Member Data Documentation

const unsigned short reco::HitPattern::ARRAY_LENGTH = 50
static

Definition at line 165 of file HitPattern.h.

Referenced by clear(), HitPattern(), and operator=().

uint8_t reco::HitPattern::beginInner
private
uint8_t reco::HitPattern::beginOuter
private
uint8_t reco::HitPattern::beginTrackHits
private
const uint16_t reco::HitPattern::EMPTY_PATTERN = 0x0
static
uint8_t reco::HitPattern::endInner
private
uint8_t reco::HitPattern::endOuter
private
uint8_t reco::HitPattern::endTrackHits
private
const unsigned short reco::HitPattern::HIT_LENGTH = 11
static

Definition at line 166 of file HitPattern.h.

Referenced by getHitPatternByAbsoluteIndex(), and insertHit().

uint8_t reco::HitPattern::hitCount
private
uint16_t reco::HitPattern::hitPattern[ARRAY_LENGTH]
private
const unsigned short reco::HitPattern::HitTypeMask = 0x3
staticprivate
const unsigned short reco::HitPattern::HitTypeOffset = 0
staticprivate
const unsigned short reco::HitPattern::LayerMask = 0xF
staticprivate
const unsigned short reco::HitPattern::LayerOffset = 3
staticprivate
const unsigned short reco::HitPattern::MaxHits = (8 * sizeof(uint16_t) * ARRAY_LENGTH) / HIT_LENGTH
static

Definition at line 167 of file HitPattern.h.

Referenced by appendHit(), and appendMuonHit().

const unsigned short reco::HitPattern::minPixelWord = minTrackerWord | (1<<SubstrOffset)
staticprivate

Definition at line 428 of file HitPattern.h.

const unsigned short reco::HitPattern::minStripWord = minTrackerWord | (3<<SubstrOffset)
staticprivate
const unsigned short reco::HitPattern::minTrackerWord = 1<< SubDetectorOffset
staticprivate
const uint32_t reco::HitPattern::NULL_RETURN = 999999
static
const unsigned short reco::HitPattern::SideMask = 0x1
staticprivate

Definition at line 413 of file HitPattern.h.

Referenced by encode(), and getSide().

const unsigned short reco::HitPattern::SideOffset = 2
staticprivate

Definition at line 412 of file HitPattern.h.

Referenced by encode(), and getSide().

const unsigned short reco::HitPattern::SubDetectorMask = 0x1
staticprivate
const unsigned short reco::HitPattern::SubDetectorOffset = 10
staticprivate
const unsigned short reco::HitPattern::SubstrMask = 0x7
staticprivate
const unsigned short reco::HitPattern::SubstrOffset = 7
staticprivate

Definition at line 420 of file HitPattern.h.

Referenced by encode(), getSubStructure(), getTrackerLayerCase(), and getTrackerMonoStereo().