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 Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
reco::HitPattern Class Reference

#include <HitPattern.h>

Public Types

enum  { MONO = 1, STEREO = 2 }
 
typedef bool filterType (unsigned int)
 

Public Member Functions

void appendHit (const TrackingRecHit &hit)
 
template<typename F >
void call (filterType typeFilter, F f) const
 
int countHits (filterType filter) const
 
int countTypedHits (filterType typeFilter, filterType filter) const
 
int cscStationsWithAnyHits () const
 
int cscStationsWithBadHits () const
 
int cscStationsWithValidHits () const
 
int dtStationsWithAnyHits () const
 
int dtStationsWithBadHits () const
 
int dtStationsWithValidHits () const
 
uint32_t getHitPattern (int position) const
 
uint32_t getTrackerLayerCase (uint32_t substr, uint32_t layer) const
 
uint32_t getTrackerMonoStereo (uint32_t substr, uint32_t layer) const
 
bool hasValidHitInFirstPixelBarrel () const
 
bool hasValidHitInFirstPixelEndcap () const
 
 HitPattern ()
 
template<typename I >
 HitPattern (const I &begin, const I &end)
 
template<typename C >
 HitPattern (const C &c)
 
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); 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 numberOfBadMuonHits () const
 
int numberOfBadMuonRPCHits () const
 
int numberOfDTStationsWithBothViews () const
 
int numberOfDTStationsWithRPhiView () const
 
int numberOfDTStationsWithRZView () const
 
int numberOfHits () const
 
int numberOfInactiveHits () const
 
int numberOfInactiveTrackerHits () const
 
int numberOfLostHits () const
 
int numberOfLostMuonCSCHits () const
 
int numberOfLostMuonDTHits () const
 
int numberOfLostMuonHits () const
 
int numberOfLostMuonRPCHits () const
 
int numberOfLostPixelBarrelHits () const
 
int numberOfLostPixelEndcapHits () const
 
int numberOfLostPixelHits () const
 
int numberOfLostStripHits () const
 
int numberOfLostStripTECHits () const
 
int numberOfLostStripTIBHits () const
 
int numberOfLostStripTIDHits () const
 
int numberOfLostStripTOBHits () const
 
int numberOfLostTrackerHits () const
 
int numberOfValidHits () const
 
int numberOfValidMuonCSCHits () const
 
int numberOfValidMuonDTHits () const
 
int numberOfValidMuonHits () const
 
int numberOfValidMuonRPCHits () const
 
int numberOfValidPixelBarrelHits () const
 
int numberOfValidPixelEndcapHits () const
 
int numberOfValidPixelHits () const
 
int numberOfValidStripHits () const
 
int numberOfValidStripLayersWithMonoAndStereo () const
 
int numberOfValidStripTECHits () const
 
int numberOfValidStripTIBHits () const
 
int numberOfValidStripTIDHits () const
 
int numberOfValidStripTOBHits () const
 
int numberOfValidTrackerHits () const
 
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 () const
 
int pixelEndcapLayersNull () const
 
int pixelEndcapLayersTotallyOffOrBad () const
 
int pixelEndcapLayersWithMeasurement () const
 
int pixelEndcapLayersWithoutMeasurement () const
 
int pixelLayersNull () const
 
int pixelLayersTotallyOffOrBad () const
 
int pixelLayersWithMeasurement () const
 
int pixelLayersWithoutMeasurement () const
 
void print (std::ostream &stream=std::cout) const
 
void printHitPattern (int position, std::ostream &stream) const
 
int rpcStationsWithAnyHits () const
 
int rpcStationsWithBadHits () const
 
int rpcStationsWithValidHits () const
 
template<typename I >
void set (const I &begin, const I &end)
 
void set (const TrackingRecHit &hit, unsigned int i)
 
int stripLayersNull () const
 
int stripLayersTotallyOffOrBad () const
 
int stripLayersWithMeasurement () const
 
int stripLayersWithoutMeasurement () const
 
int stripTECLayersNull () const
 
int stripTECLayersTotallyOffOrBad () const
 
int stripTECLayersWithMeasurement () const
 
int stripTECLayersWithoutMeasurement () const
 
int stripTIBLayersNull () const
 
int stripTIBLayersTotallyOffOrBad () const
 
int stripTIBLayersWithMeasurement () const
 
int stripTIBLayersWithoutMeasurement () const
 
int stripTIDLayersNull () const
 
int stripTIDLayersTotallyOffOrBad () const
 
int stripTIDLayersWithMeasurement () const
 
int stripTIDLayersWithoutMeasurement () const
 
int stripTOBLayersNull () const
 
int stripTOBLayersTotallyOffOrBad () const
 
int stripTOBLayersWithMeasurement () const
 
int stripTOBLayersWithoutMeasurement () const
 
int trackerLayersNull () const
 
int trackerLayersTotallyOffOrBad () const
 
int trackerLayersWithMeasurement () const
 
int trackerLayersWithoutMeasurement () const
 

Static Public Member Functions

static uint32_t getCSCRing (uint32_t pattern)
 CSC ring (1-4). Only valid for muon CSC patterns, of course. More...
 
static uint32_t getDTSuperLayer (uint32_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 uint32_t getHitType (uint32_t pattern)
 
static uint32_t getLayer (uint32_t pattern)
 
static uint32_t getMuonStation (uint32_t pattern)
 Muon station (1-4). Only valid for muon patterns, of course. More...
 
static uint32_t getRPCLayer (uint32_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 uint32_t getRPCregion (uint32_t pattern)
 RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course. More...
 
static uint32_t getSide (uint32_t pattern)
 
static uint32_t getSubStructure (uint32_t pattern)
 
static uint32_t getSubSubStructure (uint32_t pattern)
 
static bool muonCSCHitFilter (uint32_t pattern)
 
static bool muonDTHitFilter (uint32_t pattern)
 
static bool muonHitFilter (uint32_t pattern)
 
static bool muonRPCHitFilter (uint32_t pattern)
 
static bool pixelBarrelHitFilter (uint32_t pattern)
 
static bool pixelEndcapHitFilter (uint32_t pattern)
 
static bool pixelHitFilter (uint32_t pattern)
 
static bool stripHitFilter (uint32_t pattern)
 
static bool stripTECHitFilter (uint32_t pattern)
 
static bool stripTIBHitFilter (uint32_t pattern)
 
static bool stripTIDHitFilter (uint32_t pattern)
 
static bool stripTOBHitFilter (uint32_t pattern)
 
static bool trackerHitFilter (uint32_t pattern)
 
static bool type_1_HitFilter (uint32_t pattern)
 
static bool type_2_HitFilter (uint32_t pattern)
 
static bool type_3_HitFilter (uint32_t pattern)
 
static bool validHitFilter (uint32_t pattern)
 

Static Public Attributes

static const unsigned short HitSize = 11
 
static const int MaxHits = (PatternSize * 32) / HitSize
 
static const unsigned short PatternSize = 25
 

Private Member Functions

uint32_t encode (const TrackingRecHit &, unsigned int)
 
void set (const TrackingRecHitRef &ref, unsigned int i)
 
void setHitPattern (int position, uint32_t pattern)
 

Static Private Member Functions

static uint32_t isStereo (DetId)
 

Private Attributes

uint32_t hitPattern_ [PatternSize]
 

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 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
 

Detailed Description

Definition at line 122 of file HitPattern.h.

Member Typedef Documentation

typedef bool reco::HitPattern::filterType(unsigned int)

Definition at line 160 of file HitPattern.h.

Member Enumeration Documentation

anonymous enum
Enumerator
MONO 
STEREO 

Definition at line 124 of file HitPattern.h.

Constructor & Destructor Documentation

reco::HitPattern::HitPattern ( )
inline

Definition at line 136 of file HitPattern.h.

References hitPattern_, i, and PatternSize.

136 { for (int i=0; i<PatternSize; i++) hitPattern_[i] = 0; }
int i
Definition: DBlmapReader.cc:9
uint32_t hitPattern_[PatternSize]
Definition: HitPattern.h:383
static const unsigned short PatternSize
Definition: HitPattern.h:127
template<typename I >
reco::HitPattern::HitPattern ( const I &  begin,
const I &  end 
)
inline

Definition at line 140 of file HitPattern.h.

References set().

140 { set(begin, end); }
void set(const I &begin, const I &end)
Definition: HitPattern.h:150
#define end
Definition: vmac.h:38
#define begin
Definition: vmac.h:31
template<typename C >
reco::HitPattern::HitPattern ( const C &  c)
inline

Definition at line 144 of file HitPattern.h.

References set().

144 { set(c); }
void set(const I &begin, const I &end)
Definition: HitPattern.h:150

Member Function Documentation

void HitPattern::appendHit ( const TrackingRecHit hit)

Definition at line 88 of file HitPattern.cc.

References filterCSVwithJSON::copy, MuonSubdetId::CSC, cond::rpcobgas::detid, TrackingRecHit::dimension(), MuonSubdetId::DT, TrackingRecHit::geographicalId(), i, DetId::Muon, numberOfHits(), TrackingRecHit::recHits(), MuonSubdetId::RPC, set(), and DetId::Tracker.

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

88  {
89 
90  // get rec hit det id and rec hit type
91  DetId id = hit.geographicalId();
92  uint32_t detid = id.det();
93  uint32_t subdet = id.subdetId();
94 
95  std::vector<const TrackingRecHit*> hits;
96 
97 
98  if (detid == DetId::Tracker)
99  hits.push_back(&hit);
100 
101  if (detid == DetId::Muon) {
102 
103  if (subdet == (uint32_t) MuonSubdetId::DT){
104 
105  // DT rechit (granularity 2)
106  if(hit.dimension() == 1)
107  hits.push_back(&hit);
108 
109  // 4D segment (granularity 0)
110  else if(hit.dimension() > 1){ // Both 2 and 4 dim cases. MB4s have 2D, but formatted in 4D segments
111  std::vector<const TrackingRecHit*> seg2D = hit.recHits(); // 4D --> 2D
112  // load 1D hits (2D --> 1D)
113  for(std::vector<const TrackingRecHit*>::const_iterator it = seg2D.begin(); it != seg2D.end(); ++it){
114  std::vector<const TrackingRecHit*> hits1D = (*it)->recHits();
115  copy(hits1D.begin(),hits1D.end(),back_inserter(hits));
116  }
117  }
118  }
119 
120  else if (subdet == (uint32_t) MuonSubdetId::CSC){
121 
122  // CSC rechit (granularity 2)
123  if(hit.dimension() == 2)
124  hits.push_back(&hit);
125 
126  // 4D segment (granularity 0)
127  if(hit.dimension() == 4)
128  hits = hit.recHits(); // load 2D hits (4D --> 1D)
129  }
130 
131  else if (subdet == (uint32_t) MuonSubdetId::RPC) {
132  hits.push_back(&hit);
133  }
134  }
135 
136  unsigned int i = numberOfHits();
137  for(std::vector<const TrackingRecHit*>::const_iterator it = hits.begin(); it != hits.end(); ++it)
138  set(**it,i++);
139 
140 
141 }
int i
Definition: DBlmapReader.cc:9
virtual int dimension() const =0
void set(const I &begin, const I &end)
Definition: HitPattern.h:150
static const int CSC
Definition: MuonSubdetId.h:15
virtual std::vector< const TrackingRecHit * > recHits() const =0
Access to component RecHits (if any)
int numberOfHits() const
Definition: HitPattern.cc:213
Definition: DetId.h:20
static const int RPC
Definition: MuonSubdetId.h:16
static const int DT
Definition: MuonSubdetId.h:14
DetId geographicalId() const
template<typename F >
void reco::HitPattern::call ( filterType  typeFilter,
F  f 
) const
inline

Definition at line 182 of file HitPattern.h.

References f, getHitPattern(), HitSize, i, listBenchmarks::pattern, and PatternSize.

Referenced by reco::PatternSet< N >::fill().

182  {
183  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
184  uint32_t pattern = getHitPattern(i);
185  if (pattern == 0) break;
186  // f() return false to ask to stop looping
187  if (typeFilter(pattern) && !f(pattern) ) break;
188  }
189  }
int i
Definition: DBlmapReader.cc:9
static const unsigned short PatternSize
Definition: HitPattern.h:127
double f[11][100]
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::countHits ( filterType  filter) const
inline

Definition at line 161 of file HitPattern.h.

References prof2calltree::count, alcazmumu_cfi::filter, getHitPattern(), HitSize, i, listBenchmarks::pattern, and PatternSize.

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

161  {
162  int count = 0;
163  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
164  uint32_t pattern = getHitPattern(i);
165  if (pattern == 0) break;
166  if (filter(pattern)) ++count;
167  }
168  return count;
169  }
int i
Definition: DBlmapReader.cc:9
static const unsigned short PatternSize
Definition: HitPattern.h:127
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::countTypedHits ( filterType  typeFilter,
filterType  filter 
) const
inline

Definition at line 171 of file HitPattern.h.

References prof2calltree::count, alcazmumu_cfi::filter, getHitPattern(), HitSize, i, listBenchmarks::pattern, and PatternSize.

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

171  {
172  int count = 0;
173  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
174  uint32_t pattern = getHitPattern(i);
175  if (pattern == 0) break;
176  if (typeFilter(pattern)&&filter(pattern)) ++count;
177  }
178  return count;
179  }
int i
Definition: DBlmapReader.cc:9
static const unsigned short PatternSize
Definition: HitPattern.h:127
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::cscStationsWithAnyHits ( ) const
inline

Definition at line 800 of file HitPattern.h.

References muonStations().

800 { return muonStations(2,-1); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::cscStationsWithBadHits ( ) const
inline

Definition at line 799 of file HitPattern.h.

References muonStations().

799 { return muonStations(2, 3); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::cscStationsWithValidHits ( ) const
inline

Definition at line 798 of file HitPattern.h.

References muonStations().

798 { return muonStations(2, 0); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::dtStationsWithAnyHits ( ) const
inline

Definition at line 797 of file HitPattern.h.

References muonStations().

797 { return muonStations(1,-1); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::dtStationsWithBadHits ( ) const
inline

Definition at line 796 of file HitPattern.h.

References muonStations().

796 { return muonStations(1, 3); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::dtStationsWithValidHits ( ) const
inline

Definition at line 795 of file HitPattern.h.

References muonStations().

795 { return muonStations(1, 0); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
uint32_t HitPattern::encode ( const TrackingRecHit hit,
unsigned int  i 
)
private

Definition at line 15 of file HitPattern.cc.

References abs, MuonSubdetId::CSC, CSCDetId, cond::rpcobgas::detid, PXFDetId::disk(), MuonSubdetId::DT, DTLayerId, TrackingRecHit::geographicalId(), TrackingRecHit::getType(), HitSize, HitTypeMask, HitTypeOffset, isStereo(), PXBDetId::layer(), TOBDetId::layer(), TIBDetId::layer(), RPCDetId::layer(), LayerMask, LayerOffset, DetId::Muon, listBenchmarks::pattern, PatternSize, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, RPCDetId::region(), MuonSubdetId::RPC, SideMask, SideOffset, RPCDetId::station(), SubDetectorMask, SubDetectorOffset, SubstrMask, SubstrOffset, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, DetId::Tracker, TIDDetId::wheel(), and TECDetId::wheel().

Referenced by BeautifulSoup.Tag::_invert(), and set().

15  {
16 
17  // ignore the rec hit if the number of hit is larger than the max
18  if (i >= 32 * PatternSize / HitSize) return 0;
19 
20  // get rec hit det id and rec hit type
21  DetId id = hit.geographicalId();
22  uint32_t detid = id.det();
23  uint32_t hitType = (uint32_t) hit.getType();
24 
25  // init pattern of this hit to 0
26  uint32_t pattern = 0;
27 
28  // adding tracker/muon detector bit
29  pattern += ((detid)&SubDetectorMask)<<SubDetectorOffset;
30 
31  // adding substructure (PXB,PXF,TIB,TID,TOB,TEC, or DT,CSC,RPC) bits
32  uint32_t subdet = id.subdetId();
33  pattern += ((subdet)&SubstrMask)<<SubstrOffset;
34 
35  // adding layer/disk/wheel bits
36  uint32_t layer = 0;
37  if (detid == DetId::Tracker) {
38  if (subdet == PixelSubdetector::PixelBarrel)
39  layer = PXBDetId(id).layer();
40  else if (subdet == PixelSubdetector::PixelEndcap)
41  layer = PXFDetId(id).disk();
42  else if (subdet == StripSubdetector::TIB)
43  layer = TIBDetId(id).layer();
44  else if (subdet == StripSubdetector::TID)
45  layer = TIDDetId(id).wheel();
46  else if (subdet == StripSubdetector::TOB)
47  layer = TOBDetId(id).layer();
48  else if (subdet == StripSubdetector::TEC)
49  layer = TECDetId(id).wheel();
50  } else if (detid == DetId::Muon) {
51  if (subdet == (uint32_t) MuonSubdetId::DT)
52  layer = ((DTLayerId(id.rawId()).station()-1)<<2) + DTLayerId(id.rawId()).superLayer();
53  else if (subdet == (uint32_t) MuonSubdetId::CSC)
54  layer = ((CSCDetId(id.rawId()).station()-1)<<2) + (CSCDetId(id.rawId()).ring()-1);
55  else if (subdet == (uint32_t) MuonSubdetId::RPC) {
56  RPCDetId rpcid(id.rawId());
57  layer = ((rpcid.station()-1)<<2) + abs(rpcid.region());
58  if (rpcid.station() <= 2) layer += 2*(rpcid.layer()-1);
59  }
60  }
61  pattern += (layer&LayerMask)<<LayerOffset;
62 
63  // adding mono/stereo bit
64  uint32_t side = 0;
65  if (detid == DetId::Tracker) {
66  side = isStereo(id);
67  } else if (detid == DetId::Muon) {
68  side = 0;
69  }
70  pattern += (side&SideMask)<<SideOffset;
71 
72  // adding hit type bits
73  pattern += (hitType&HitTypeMask)<<HitTypeOffset;
74 
75  return pattern;
76 }
int i
Definition: DBlmapReader.cc:9
unsigned int layer() const
layer id
Definition: TOBDetId.h:39
static uint32_t isStereo(DetId)
Definition: HitPattern.cc:606
static const unsigned short SideOffset
Definition: HitPattern.h:375
static const unsigned short SubstrOffset
Definition: HitPattern.h:367
#define abs(x)
Definition: mlp_lapack.h:159
static const unsigned short PatternSize
Definition: HitPattern.h:127
static const unsigned short HitTypeMask
Definition: HitPattern.h:380
unsigned int layer() const
layer id
Definition: PXBDetId.h:35
static const int CSC
Definition: MuonSubdetId.h:15
static const unsigned short SubDetectorMask
Definition: HitPattern.h:364
static const unsigned short HitTypeOffset
Definition: HitPattern.h:379
unsigned int disk() const
disk id
Definition: PXFDetId.h:43
static const unsigned short HitSize
Definition: HitPattern.h:130
Definition: DetId.h:20
Type getType() const
static const unsigned short SideMask
Definition: HitPattern.h:376
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:363
unsigned int wheel() const
wheel id
Definition: TECDetId.h:52
unsigned int layer() const
layer id
Definition: TIBDetId.h:41
static const unsigned short SubstrMask
Definition: HitPattern.h:368
static const int RPC
Definition: MuonSubdetId.h:16
static const unsigned short LayerOffset
Definition: HitPattern.h:371
static const int DT
Definition: MuonSubdetId.h:14
DetId geographicalId() const
static const unsigned short LayerMask
Definition: HitPattern.h:372
unsigned int wheel() const
wheel id
Definition: TIDDetId.h:50
uint32_t reco::HitPattern::getCSCRing ( uint32_t  pattern)
inlinestatic

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

Definition at line 530 of file HitPattern.h.

References getSubSubStructure().

Referenced by printHitPattern().

530  {
531  return (getSubSubStructure(pattern) & 3) + 1;
532  }
static uint32_t getSubSubStructure(uint32_t pattern)
Definition: HitPattern.h:506
uint32_t reco::HitPattern::getDTSuperLayer ( uint32_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 526 of file HitPattern.h.

References getSubSubStructure().

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

526  {
527  return (getSubSubStructure(pattern) & 3);
528  }
static uint32_t getSubSubStructure(uint32_t pattern)
Definition: HitPattern.h:506
uint32_t HitPattern::getHitPattern ( int  position) const

Definition at line 144 of file HitPattern.cc.

References hitPattern_, and HitSize.

Referenced by CheckHitPattern::analyze(), PFCheckHitPattern::analyze(), FixTrackHitPattern::analyze(), GetTrackTrajInfo::analyze(), call(), GsfElectronAlgo::ElectronData::checkCtfTrack(), countHits(), countTypedHits(), GsfElectronCoreBaseProducer::getCtfTrackRef(), getTrackerLayerCase(), getTrackerMonoStereo(), PrimaryVertexValidation::hasFirstLayerPixelHits(), hasValidHitInFirstPixelBarrel(), hasValidHitInFirstPixelEndcap(), index_to_hitpattern(), innermostMuonStationWithHits(), SoftPFElectronTagInfoProducer::isElecClean(), PFElecTkProducer::isInnerMost(), muonStations(), numberOfDTStationsWithBothViews(), numberOfDTStationsWithRPhiView(), numberOfDTStationsWithRZView(), numberOfHits(), numberOfValidStripLayersWithMonoAndStereo(), EgAmbiguityTools::isInnerMost::operator()(), outermostMuonStationWithHits(), FWTrackResidualDetailView::prepareData(), reco::TrackResiduals::print(), CheckHitPattern::print(), PFCheckHitPattern::print(), print(), printHitPattern(), FWConvTrackHitsDetailView::setTextInfo(), EgAmbiguityTools::sharedDets(), EgAmbiguityTools::sharedHits(), and QcdUeDQM::trackSelection().

144  {
145 /* Note: you are not taking a consecutive sequence of HitSize bits starting from position*HitSize
146  as the bit order in the words are reversed.
147  e.g. if position = 0 you take the lowest 10 bits of the first word.
148 
149  I hope this can clarify what is the memory layout of such thing
150 
151  straight 01234567890123456789012345678901 | 23456789012345678901234567890123 | 4567
152  (global) 0 1 2 3 | 3 4 5 6 | 6
153  words [--------------0---------------] | [--------------1---------------] | [---
154  word 01234567890123456789012345678901 | 01234567890123456789012345678901 | 0123
155  (str) 0 1 2 3 | 0 1 2 3 | 0
156  [--------------0---------------] | [--------------1---------------] | [---
157  word 10987654321098765432109876543210 | 10987654321098765432109876543210 | 1098
158  (rev) 32 21 10 0 | 32 21 10 0 | 32
159  reverse 10987654321098765432109876543210 | 32109876543210987654321098765432 | 5432
160  32 21 10 0 | 6 65 54 43 3 9
161 
162  ugly enough, but it's not my fault, I was not even in CMS at that time [gpetrucc] */
163  uint16_t bitEndOffset = (position+1) * HitSize;
164  uint8_t secondWord = (bitEndOffset >> 5);
165  uint8_t secondWordBits = bitEndOffset & (32-1); // that is, bitEndOffset % 32
166  if (secondWordBits >= HitSize) { // full block is in this word
167  uint8_t lowBitsToTrash = secondWordBits - HitSize;
168  uint32_t myResult = (hitPattern_[secondWord] >> lowBitsToTrash) & ((1 << HitSize)-1);
169  return myResult;
170  } else {
171  uint8_t firstWordBits = HitSize - secondWordBits;
172  uint32_t firstWordBlock = hitPattern_[secondWord-1] >> (32-firstWordBits);
173  uint32_t secondWordBlock = hitPattern_[secondWord] & ((1<<secondWordBits)-1);
174  uint32_t myResult = firstWordBlock + (secondWordBlock << firstWordBits);
175  return myResult;
176  }
177 }
uint32_t hitPattern_[PatternSize]
Definition: HitPattern.h:383
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t reco::HitPattern::getHitType ( uint32_t  pattern)
inlinestatic

Definition at line 517 of file HitPattern.h.

References HitTypeMask, HitTypeOffset, and unlikely.

Referenced by FixTrackHitPattern::analyze(), innermostMuonStationWithHits(), muonStations(), outermostMuonStationWithHits(), CheckHitPattern::print(), PFCheckHitPattern::print(), printHitPattern(), type_1_HitFilter(), type_2_HitFilter(), type_3_HitFilter(), and validHitFilter().

517  {
518  if unlikely(pattern == 0) return 999999;
520  }
static const unsigned short HitTypeMask
Definition: HitPattern.h:380
#define unlikely(x)
Definition: Likely.h:21
static const unsigned short HitTypeOffset
Definition: HitPattern.h:379
return(e1-e2)*(e1-e2)+dp *dp
uint32_t reco::HitPattern::getLayer ( uint32_t  pattern)
inlinestatic
uint32_t reco::HitPattern::getMuonStation ( uint32_t  pattern)
inlinestatic

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

Definition at line 522 of file HitPattern.h.

References getSubSubStructure().

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

522  {
523  return (getSubSubStructure(pattern)>>2) + 1;
524  }
static uint32_t getSubSubStructure(uint32_t pattern)
Definition: HitPattern.h:506
uint32_t reco::HitPattern::getRPCLayer ( uint32_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 534 of file HitPattern.h.

References getSubSubStructure(), and likely.

Referenced by printHitPattern().

534  {
535  uint32_t sss = getSubSubStructure(pattern), stat = sss >> 2;
536  if likely(stat <= 1) return ((sss >> 1) & 1) + 1;
537  return 0;
538  }
static uint32_t getSubSubStructure(uint32_t pattern)
Definition: HitPattern.h:506
return(e1-e2)*(e1-e2)+dp *dp
#define likely(x)
Definition: Likely.h:20
uint32_t reco::HitPattern::getRPCregion ( uint32_t  pattern)
inlinestatic

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

Definition at line 540 of file HitPattern.h.

References getSubSubStructure().

Referenced by printHitPattern().

540  {
541  return getSubSubStructure(pattern) & 1;
542  }
static uint32_t getSubSubStructure(uint32_t pattern)
Definition: HitPattern.h:506
uint32_t reco::HitPattern::getSide ( uint32_t  pattern)
inlinestatic

Definition at line 512 of file HitPattern.h.

References SideMask, SideOffset, and unlikely.

Referenced by getTrackerMonoStereo(), and numberOfValidStripLayersWithMonoAndStereo().

512  {
513  if unlikely(pattern == 0) return 999999;
515  }
static const unsigned short SideOffset
Definition: HitPattern.h:375
#define unlikely(x)
Definition: Likely.h:21
static const unsigned short SideMask
Definition: HitPattern.h:376
return(e1-e2)*(e1-e2)+dp *dp
uint32_t reco::HitPattern::getSubStructure ( uint32_t  pattern)
inlinestatic
uint32_t reco::HitPattern::getSubSubStructure ( uint32_t  pattern)
inlinestatic

Definition at line 506 of file HitPattern.h.

References LayerMask, LayerOffset, and unlikely.

Referenced by getCSCRing(), getDTSuperLayer(), getMuonStation(), getRPCLayer(), and getRPCregion().

506  {
507  if unlikely(pattern == 0) return 999999;
509  }
#define unlikely(x)
Definition: Likely.h:21
return(e1-e2)*(e1-e2)+dp *dp
static const unsigned short LayerOffset
Definition: HitPattern.h:371
static const unsigned short LayerMask
Definition: HitPattern.h:372
uint32_t HitPattern::getTrackerLayerCase ( uint32_t  substr,
uint32_t  layer 
) const

Definition at line 260 of file HitPattern.cc.

References getHitPattern(), HitSize, HitTypeMask, HitTypeOffset, i, LayerMask, LayerOffset, listBenchmarks::pattern, PatternSize, 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().

260  {
261  uint32_t tk_substr_layer =
262  (1 << SubDetectorOffset) +
263  ((substr & SubstrMask) << SubstrOffset) +
264  ((layer & LayerMask) << LayerOffset);
265 
266  uint32_t mask =
268  (SubstrMask << SubstrOffset) +
269  (LayerMask << LayerOffset);
270 
271  // crossed
272  // layer case 0: valid + (missing, off, bad) ==> with measurement
273  // layer case 1: missing + (off, bad) ==> without measurement
274  // layer case 2: off, bad ==> totally off or bad, cannot say much
275  // not crossed
276  // layer case 999999: track outside acceptance or in gap ==> null
277 
278  uint32_t layerCase = 999999;
279  for (int i=0; i<(PatternSize * 32) / HitSize; i++)
280  {
281  uint32_t pattern = getHitPattern(i);
282  if (pattern == 0) break;
283  if ((pattern & mask) == tk_substr_layer) {
284  uint32_t hitType = (pattern >> HitTypeOffset) & HitTypeMask; // 0,1,2,3
285  if (hitType < layerCase) {
286  layerCase = hitType;
287  if (hitType == 3) layerCase = 2;
288  }
289  }
290  }
291  return layerCase;
292 }
int i
Definition: DBlmapReader.cc:9
static const unsigned short SubstrOffset
Definition: HitPattern.h:367
static const unsigned short PatternSize
Definition: HitPattern.h:127
static const unsigned short HitTypeMask
Definition: HitPattern.h:380
static const unsigned short SubDetectorMask
Definition: HitPattern.h:364
static const unsigned short HitTypeOffset
Definition: HitPattern.h:379
static const unsigned short HitSize
Definition: HitPattern.h:130
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:363
static const unsigned short SubstrMask
Definition: HitPattern.h:368
static const unsigned short LayerOffset
Definition: HitPattern.h:371
static const unsigned short LayerMask
Definition: HitPattern.h:372
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
uint32_t HitPattern::getTrackerMonoStereo ( uint32_t  substr,
uint32_t  layer 
) const

Definition at line 294 of file HitPattern.cc.

References getHitPattern(), getSide(), HitSize, HitTypeMask, HitTypeOffset, i, LayerMask, LayerOffset, MONO, listBenchmarks::pattern, PatternSize, STEREO, SubDetectorMask, SubDetectorOffset, SubstrMask, and SubstrOffset.

295 {
296  uint32_t tk_substr_layer =
297  (1 << SubDetectorOffset) +
298  ((substr & SubstrMask) << SubstrOffset) +
299  ((layer & LayerMask) << LayerOffset);
300 
301  uint32_t mask =
303  (SubstrMask << SubstrOffset) +
304  (LayerMask << LayerOffset);
305 
306  // 0: neither a valid mono nor a valid stereo hit
307  // MONO: valid mono hit
308  // STEREO: valid stereo hit
309  // MONO | STEREO: both
310  uint32_t monoStereo = 0;
311  for (int i=0; i<(PatternSize * 32) / HitSize; i++)
312  {
313  uint32_t pattern = getHitPattern(i);
314  if (pattern == 0) break;
315  if ((pattern & mask) == tk_substr_layer)
316  {
317  uint32_t hitType = (pattern >> HitTypeOffset) & HitTypeMask; // 0,1,2,3
318  if (hitType == 0) { // valid hit
319  switch (getSide(pattern)) {
320  case 0: // mono
321  monoStereo |= MONO;
322  break;
323  case 1: // stereo
324  monoStereo |= STEREO;
325  break;
326  default:
327  break;
328  }
329  }
330  }
331  }
332  return monoStereo;
333 }
int i
Definition: DBlmapReader.cc:9
static const unsigned short SubstrOffset
Definition: HitPattern.h:367
static const unsigned short PatternSize
Definition: HitPattern.h:127
static const unsigned short HitTypeMask
Definition: HitPattern.h:380
static const unsigned short SubDetectorMask
Definition: HitPattern.h:364
static const unsigned short HitTypeOffset
Definition: HitPattern.h:379
static const unsigned short HitSize
Definition: HitPattern.h:130
static uint32_t getSide(uint32_t pattern)
Definition: HitPattern.h:512
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:363
static const unsigned short SubstrMask
Definition: HitPattern.h:368
static const unsigned short LayerOffset
Definition: HitPattern.h:371
static const unsigned short LayerMask
Definition: HitPattern.h:372
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
bool HitPattern::hasValidHitInFirstPixelBarrel ( ) const

Definition at line 183 of file HitPattern.cc.

References getHitPattern(), getLayer(), HitSize, i, listBenchmarks::pattern, PatternSize, pixelBarrelHitFilter(), and validHitFilter().

Referenced by TrackClassMatch::operator()(), and TrackClassFilter::operator()().

183  {
184  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
185  uint32_t pattern = getHitPattern(i);
186  if (pattern == 0) break;
187  if (pixelBarrelHitFilter(pattern)) {
188  if (getLayer(pattern) == 1) {
189  if (validHitFilter(pattern)) {
190  return true;
191  }
192  }
193  }
194  }
195  return false;
196 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getLayer(uint32_t pattern)
Definition: HitPattern.h:501
static const unsigned short PatternSize
Definition: HitPattern.h:127
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
static bool pixelBarrelHitFilter(uint32_t pattern)
Definition: HitPattern.h:408
bool HitPattern::hasValidHitInFirstPixelEndcap ( ) const

Definition at line 198 of file HitPattern.cc.

References getHitPattern(), getLayer(), HitSize, i, listBenchmarks::pattern, PatternSize, pixelEndcapHitFilter(), and validHitFilter().

198  {
199  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
200  uint32_t pattern = getHitPattern(i);
201  if (pattern == 0) break;
202  if (pixelEndcapHitFilter(pattern)) {
203  if (getLayer(pattern) == 1) {
204  if (validHitFilter(pattern)) {
205  return true;
206  }
207  }
208  }
209  }
210  return false;
211 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getLayer(uint32_t pattern)
Definition: HitPattern.h:501
static const unsigned short PatternSize
Definition: HitPattern.h:127
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static const unsigned short HitSize
Definition: HitPattern.h:130
static bool pixelEndcapHitFilter(uint32_t pattern)
Definition: HitPattern.h:415
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::innermostMuonStationWithAnyHits ( ) const
inline

Definition at line 807 of file HitPattern.h.

References innermostMuonStationWithHits().

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

Definition at line 806 of file HitPattern.h.

References innermostMuonStationWithHits().

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

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

Definition at line 658 of file HitPattern.cc.

References getHitPattern(), getHitType(), getMuonStation(), HitSize, i, muonHitFilter(), listBenchmarks::pattern, PatternSize, and run_regression::ret.

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

658  {
659  int ret = 0;
660  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
661  uint32_t pattern = getHitPattern(i);
662  if (pattern == 0) break;
663  if (muonHitFilter(pattern) &&
664  (hitType == -1 || int(getHitType(pattern)) == hitType)) {
665  int stat = getMuonStation(pattern);
666  if (ret == 0 || stat < ret) ret = stat;
667  }
668  }
669  return ret;
670 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getHitType(uint32_t pattern)
Definition: HitPattern.h:517
static uint32_t getMuonStation(uint32_t pattern)
Muon station (1-4). Only valid for muon patterns, of course.
Definition: HitPattern.h:522
static const unsigned short PatternSize
Definition: HitPattern.h:127
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::innermostMuonStationWithValidHits ( ) const
inline

Definition at line 805 of file HitPattern.h.

References innermostMuonStationWithHits().

805 { return innermostMuonStationWithHits(0); }
int innermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
Definition: HitPattern.cc:658
uint32_t HitPattern::isStereo ( DetId  i)
staticprivate

Definition at line 606 of file HitPattern.cc.

References DetId::det(), i, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, and DetId::Tracker.

Referenced by encode().

607 {
608  switch (i.det()) {
609  case DetId::Tracker:
610  switch (i.subdetId()) {
613  return 0;
615  {
616  TIBDetId id = i;
617  return id.isStereo();
618  }
620  {
621  TIDDetId id = i;
622  return id.isStereo();
623  }
625  {
626  TOBDetId id = i;
627  return id.isStereo();
628  }
630  {
631  TECDetId id = i;
632  return id.isStereo();
633  }
634  default:
635  return 0;
636  }
637  break;
638  default:
639  return 0;
640  }
641 }
int i
Definition: DBlmapReader.cc:9
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
Detector det() const
get the detector field from this detid
Definition: DetId.h:37
bool reco::HitPattern::muonCSCHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 467 of file HitPattern.h.

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

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

467  {
469  uint32_t substructure = getSubStructure(pattern);
470  if (substructure == (uint32_t) MuonSubdetId::CSC) return true;
471  return false;
472  }
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
</a ></td >< td >< ahref="RecoLocalMuon_CSCRecHit.html"> csc2DRecHits</a ></td >< tdclass="description"> CSC(x, y) rechits</td >< td >T.Cox</td ></tr >< tr >< td >< a href
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
bool reco::HitPattern::muonDTHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 460 of file HitPattern.h.

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

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

460  {
462  uint32_t substructure = getSubStructure(pattern);
463  if (substructure == (uint32_t) MuonSubdetId::DT) return true;
464  return false;
465  }
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
bool reco::HitPattern::muonHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 488 of file HitPattern.h.

References SubDetectorMask, SubDetectorOffset, and unlikely.

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

488  {
489  if unlikely(pattern == 0) return false;
491  return false;
492  }
#define unlikely(x)
Definition: Likely.h:21
static const unsigned short SubDetectorMask
Definition: HitPattern.h:364
static const unsigned short SubDetectorOffset
Definition: HitPattern.h:363
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
bool reco::HitPattern::muonRPCHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 474 of file HitPattern.h.

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

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

474  {
476  uint32_t substructure = getSubStructure(pattern);
477  if (substructure == (uint32_t) MuonSubdetId::RPC) return true;
478  return false;
479  }
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
int HitPattern::muonStations ( int  subdet,
int  hitType 
) const

subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad

Definition at line 643 of file HitPattern.cc.

References getHitPattern(), getHitType(), getMuonStation(), getSubStructure(), HitSize, i, muonHitFilter(), listBenchmarks::pattern, PatternSize, and mergeVDriftHistosByStation::stations.

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

643  {
644  int stations[4] = { 0,0,0,0 };
645  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
646  uint32_t pattern = getHitPattern(i);
647  if (pattern == 0) break;
648  if (muonHitFilter(pattern) &&
649  (subdet == 0 || int(getSubStructure(pattern)) == subdet) &&
650  (hitType == -1 || int(getHitType(pattern)) == hitType)) {
651  stations[getMuonStation(pattern)-1] = 1;
652  }
653  }
654  return stations[0]+stations[1]+stations[2]+stations[3];
655 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getHitType(uint32_t pattern)
Definition: HitPattern.h:517
static uint32_t getMuonStation(uint32_t pattern)
Muon station (1-4). Only valid for muon patterns, of course.
Definition: HitPattern.h:522
static const unsigned short PatternSize
Definition: HitPattern.h:127
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::muonStationsWithAnyHits ( ) const
inline

Definition at line 794 of file HitPattern.h.

References muonStations().

794 { return muonStations(0,-1); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::muonStationsWithBadHits ( ) const
inline

Definition at line 793 of file HitPattern.h.

References muonStations().

793 { return muonStations(0, 3); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::muonStationsWithValidHits ( ) const
inline

Definition at line 792 of file HitPattern.h.

References muonStations().

792 { return muonStations(0, 0); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::numberOfBadHits ( ) const
inline

Definition at line 685 of file HitPattern.h.

References countHits(), and type_3_HitFilter().

685  {
686  return countHits(type_3_HitFilter);
687 }
static bool type_3_HitFilter(uint32_t pattern)
Definition: HitPattern.h:560
int countHits(filterType filter) const
Definition: HitPattern.h:161
int reco::HitPattern::numberOfBadMuonCSCHits ( ) const
inline

Definition at line 697 of file HitPattern.h.

References countTypedHits(), muonCSCHitFilter(), and type_2_HitFilter().

697  {
699 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_2_HitFilter(uint32_t pattern)
Definition: HitPattern.h:555
static bool muonCSCHitFilter(uint32_t pattern)
Definition: HitPattern.h:467
int reco::HitPattern::numberOfBadMuonDTHits ( ) const
inline

Definition at line 693 of file HitPattern.h.

References countTypedHits(), muonDTHitFilter(), and type_2_HitFilter().

693  {
695 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool muonDTHitFilter(uint32_t pattern)
Definition: HitPattern.h:460
static bool type_2_HitFilter(uint32_t pattern)
Definition: HitPattern.h:555
int reco::HitPattern::numberOfBadMuonHits ( ) const
inline

Definition at line 689 of file HitPattern.h.

References countTypedHits(), muonHitFilter(), and type_2_HitFilter().

689  {
691 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_2_HitFilter(uint32_t pattern)
Definition: HitPattern.h:555
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
int reco::HitPattern::numberOfBadMuonRPCHits ( ) const
inline

Definition at line 701 of file HitPattern.h.

References countTypedHits(), muonRPCHitFilter(), and type_2_HitFilter().

701  {
703 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_2_HitFilter(uint32_t pattern)
Definition: HitPattern.h:555
static bool muonRPCHitFilter(uint32_t pattern)
Definition: HitPattern.h:474
int HitPattern::numberOfDTStationsWithBothViews ( ) const

Definition at line 711 of file HitPattern.cc.

References getDTSuperLayer(), getHitPattern(), getMuonStation(), HitSize, i, muonDTHitFilter(), listBenchmarks::pattern, PatternSize, mergeVDriftHistosByStation::stations, and validHitFilter().

711  {
712  int stations[4][2] = { {0,0}, {0,0}, {0,0}, {0,0} };
713  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
714  uint32_t pattern = getHitPattern(i);
715  if (pattern == 0) break;
716  if (muonDTHitFilter(pattern) && validHitFilter(pattern)) {
717  stations[getMuonStation(pattern)-1][getDTSuperLayer(pattern) == 2] = 1;
718  }
719  }
720  return stations[0][0]*stations[0][1] + stations[1][0]*stations[1][1] + stations[2][0]*stations[2][1] + stations[3][0]*stations[3][1];
721 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getDTSuperLayer(uint32_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:526
static bool muonDTHitFilter(uint32_t pattern)
Definition: HitPattern.h:460
static uint32_t getMuonStation(uint32_t pattern)
Muon station (1-4). Only valid for muon patterns, of course.
Definition: HitPattern.h:522
static const unsigned short PatternSize
Definition: HitPattern.h:127
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int HitPattern::numberOfDTStationsWithRPhiView ( ) const

Definition at line 687 of file HitPattern.cc.

References getDTSuperLayer(), getHitPattern(), getMuonStation(), HitSize, i, muonDTHitFilter(), listBenchmarks::pattern, PatternSize, mergeVDriftHistosByStation::stations, and validHitFilter().

687  {
688  int stations[4] = { 0,0,0,0 };
689  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
690  uint32_t pattern = getHitPattern(i);
691  if (pattern == 0) break;
692  if (muonDTHitFilter(pattern) && validHitFilter(pattern) && getDTSuperLayer(pattern) != 2) {
693  stations[getMuonStation(pattern)-1] = 1;
694  }
695  }
696  return stations[0]+stations[1]+stations[2]+stations[3];
697 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getDTSuperLayer(uint32_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:526
static bool muonDTHitFilter(uint32_t pattern)
Definition: HitPattern.h:460
static uint32_t getMuonStation(uint32_t pattern)
Muon station (1-4). Only valid for muon patterns, of course.
Definition: HitPattern.h:522
static const unsigned short PatternSize
Definition: HitPattern.h:127
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int HitPattern::numberOfDTStationsWithRZView ( ) const

Definition at line 699 of file HitPattern.cc.

References getDTSuperLayer(), getHitPattern(), getMuonStation(), HitSize, i, muonDTHitFilter(), listBenchmarks::pattern, PatternSize, mergeVDriftHistosByStation::stations, and validHitFilter().

699  {
700  int stations[4] = { 0,0,0,0 };
701  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
702  uint32_t pattern = getHitPattern(i);
703  if (pattern == 0) break;
704  if (muonDTHitFilter(pattern) && validHitFilter(pattern) && getDTSuperLayer(pattern) == 2) {
705  stations[getMuonStation(pattern)-1] = 1;
706  }
707  }
708  return stations[0]+stations[1]+stations[2]+stations[3];
709 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getDTSuperLayer(uint32_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:526
static bool muonDTHitFilter(uint32_t pattern)
Definition: HitPattern.h:460
static uint32_t getMuonStation(uint32_t pattern)
Muon station (1-4). Only valid for muon patterns, of course.
Definition: HitPattern.h:522
static const unsigned short PatternSize
Definition: HitPattern.h:127
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int HitPattern::numberOfHits ( void  ) const

Definition at line 213 of file HitPattern.cc.

References prof2calltree::count, getHitPattern(), HitSize, i, listBenchmarks::pattern, and PatternSize.

Referenced by TrackAnalyzer::analyze(), PFCheckHitPattern::analyze(), CheckHitPattern::analyze(), TkConvValidator::analyze(), FixTrackHitPattern::analyze(), GetTrackTrajInfo::analyze(), appendHit(), PrimaryVertexAnalyzer4PU::fillTrackHistos(), spr::goodTrack(), PrimaryVertexValidation::hasFirstLayerPixelHits(), index_to_hitpattern(), PFDisplacedVertexHelper::isTrackSelected(), TCMETAlgo::nExpectedInnerHits(), TCMETAlgo::nExpectedOuterHits(), FWTrackResidualDetailView::prepareData(), reco::TrackResiduals::print(), CheckHitPattern::print(), PFCheckHitPattern::print(), print(), PrimaryVertexAnalyzer4PU::printRecTrks(), IsolatedTracksCone::printTrack(), IsolatedTracksNxN::printTrack(), FWConvTrackHitsDetailView::setTextInfo(), and QcdUeDQM::trackSelection().

213  {
214  int count = 0;
215  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
216  uint32_t pattern = getHitPattern(i);
217  if (pattern == 0) break;
218  ++count;
219  }
220  return count;
221 }
int i
Definition: DBlmapReader.cc:9
static const unsigned short PatternSize
Definition: HitPattern.h:127
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::numberOfInactiveHits ( ) const
inline

Definition at line 707 of file HitPattern.h.

References countHits(), and type_2_HitFilter().

707  {
708  return countHits(type_2_HitFilter);
709 }
static bool type_2_HitFilter(uint32_t pattern)
Definition: HitPattern.h:555
int countHits(filterType filter) const
Definition: HitPattern.h:161
int reco::HitPattern::numberOfInactiveTrackerHits ( ) const
inline

Definition at line 711 of file HitPattern.h.

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

711  {
713 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
static bool type_2_HitFilter(uint32_t pattern)
Definition: HitPattern.h:555
int reco::HitPattern::numberOfLostHits ( ) const
inline

Definition at line 627 of file HitPattern.h.

References countHits(), and type_1_HitFilter().

Referenced by reco::TransientTrack::numberOfLostHits(), reco::TrackBase::numberOfLostHits(), and reco::modules::DuplicateTrackMerger::produce().

627  {
628  return countHits(type_1_HitFilter);
629 }
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
int countHits(filterType filter) const
Definition: HitPattern.h:161
int reco::HitPattern::numberOfLostMuonCSCHits ( ) const
inline

Definition at line 675 of file HitPattern.h.

References countTypedHits(), muonCSCHitFilter(), and type_1_HitFilter().

675  {
677 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
static bool muonCSCHitFilter(uint32_t pattern)
Definition: HitPattern.h:467
int reco::HitPattern::numberOfLostMuonDTHits ( ) const
inline

Definition at line 671 of file HitPattern.h.

References countTypedHits(), muonDTHitFilter(), and type_1_HitFilter().

671  {
673 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool muonDTHitFilter(uint32_t pattern)
Definition: HitPattern.h:460
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
int reco::HitPattern::numberOfLostMuonHits ( ) const
inline

Definition at line 635 of file HitPattern.h.

References countTypedHits(), muonHitFilter(), and type_1_HitFilter().

635  {
637 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
int reco::HitPattern::numberOfLostMuonRPCHits ( ) const
inline

Definition at line 679 of file HitPattern.h.

References countTypedHits(), muonRPCHitFilter(), and type_1_HitFilter().

679  {
681 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
static bool muonRPCHitFilter(uint32_t pattern)
Definition: HitPattern.h:474
int reco::HitPattern::numberOfLostPixelBarrelHits ( ) const
inline

Definition at line 643 of file HitPattern.h.

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

643  {
645 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
static bool pixelBarrelHitFilter(uint32_t pattern)
Definition: HitPattern.h:408
int reco::HitPattern::numberOfLostPixelEndcapHits ( ) const
inline

Definition at line 647 of file HitPattern.h.

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

647  {
649 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
static bool pixelEndcapHitFilter(uint32_t pattern)
Definition: HitPattern.h:415
int reco::HitPattern::numberOfLostPixelHits ( ) const
inline

Definition at line 639 of file HitPattern.h.

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

639  {
641 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
static bool pixelHitFilter(uint32_t pattern)
Definition: HitPattern.h:400
int reco::HitPattern::numberOfLostStripHits ( ) const
inline

Definition at line 651 of file HitPattern.h.

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

651  {
653 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
static bool stripHitFilter(uint32_t pattern)
Definition: HitPattern.h:422
int reco::HitPattern::numberOfLostStripTECHits ( ) const
inline

Definition at line 667 of file HitPattern.h.

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

667  {
669 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool stripTECHitFilter(uint32_t pattern)
Definition: HitPattern.h:453
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
int reco::HitPattern::numberOfLostStripTIBHits ( ) const
inline

Definition at line 655 of file HitPattern.h.

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

655  {
657 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
static bool stripTIBHitFilter(uint32_t pattern)
Definition: HitPattern.h:432
int reco::HitPattern::numberOfLostStripTIDHits ( ) const
inline

Definition at line 659 of file HitPattern.h.

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

659  {
661 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool stripTIDHitFilter(uint32_t pattern)
Definition: HitPattern.h:439
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
int reco::HitPattern::numberOfLostStripTOBHits ( ) const
inline

Definition at line 663 of file HitPattern.h.

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

663  {
665 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
static bool stripTOBHitFilter(uint32_t pattern)
Definition: HitPattern.h:446
int reco::HitPattern::numberOfLostTrackerHits ( ) const
inline

Definition at line 631 of file HitPattern.h.

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

Referenced by reco::modules::MultiTrackSelector::processMVA(), reco::modules::MultiTrackSelector::select(), and reco::TrackBase::validFraction().

631  {
633 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
static bool type_1_HitFilter(uint32_t pattern)
Definition: HitPattern.h:550
int reco::HitPattern::numberOfValidHits ( ) const
inline
int reco::HitPattern::numberOfValidMuonCSCHits ( ) const
inline

Definition at line 618 of file HitPattern.h.

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

Referenced by MuonTrackValidator::analyze().

618  {
620 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static bool muonCSCHitFilter(uint32_t pattern)
Definition: HitPattern.h:467
int reco::HitPattern::numberOfValidMuonDTHits ( ) const
inline

Definition at line 614 of file HitPattern.h.

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

Referenced by MuonTrackValidator::analyze().

614  {
616 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool muonDTHitFilter(uint32_t pattern)
Definition: HitPattern.h:460
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
int reco::HitPattern::numberOfValidMuonHits ( ) const
inline

Definition at line 578 of file HitPattern.h.

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

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

578  {
580 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
int reco::HitPattern::numberOfValidMuonRPCHits ( ) const
inline

Definition at line 622 of file HitPattern.h.

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

Referenced by MuonTrackValidator::analyze().

622  {
624 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool muonRPCHitFilter(uint32_t pattern)
Definition: HitPattern.h:474
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
int reco::HitPattern::numberOfValidPixelBarrelHits ( ) const
inline

Definition at line 586 of file HitPattern.h.

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

Referenced by TrackAnalyzer::doTrackerSpecificFillHists(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), HLTTrackWithHits::hltFilter(), and HIPAlignmentAlgorithm::run().

586  {
588 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static bool pixelBarrelHitFilter(uint32_t pattern)
Definition: HitPattern.h:408
int reco::HitPattern::numberOfValidPixelEndcapHits ( ) const
inline

Definition at line 590 of file HitPattern.h.

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

Referenced by TrackAnalyzer::doTrackerSpecificFillHists(), MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), HLTTrackWithHits::hltFilter(), and HIPAlignmentAlgorithm::run().

590  {
592 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static bool pixelEndcapHitFilter(uint32_t pattern)
Definition: HitPattern.h:415
int reco::HitPattern::numberOfValidPixelHits ( ) const
inline
int reco::HitPattern::numberOfValidStripHits ( ) const
inline

Definition at line 594 of file HitPattern.h.

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

594  {
596 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static bool stripHitFilter(uint32_t pattern)
Definition: HitPattern.h:422
int HitPattern::numberOfValidStripLayersWithMonoAndStereo ( ) const

Definition at line 224 of file HitPattern.cc.

References prof2calltree::count, getHitPattern(), getLayer(), getSide(), getSubStructure(), HitSize, i, j, LayerMask, listBenchmarks::pattern, PatternSize, stripHitFilter(), SubstrMask, and validHitFilter().

Referenced by MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos(), RecoTrackSelector::operator()(), reco::modules::MultiTrackSelector::processMVA(), reco::modules::CosmicTrackSelector::select(), reco::modules::MultiTrackSelector::select(), and QcdUeDQM::trackSelection().

224  {
225  static const int nHits = (PatternSize * 32) / HitSize;
226  bool hasMono[SubstrMask + 1][LayerMask + 1];
227  // printf("sizeof(hasMono) = %d\n", sizeof(hasMono));
228  memset(hasMono, 0, sizeof(hasMono));
229  bool hasStereo[SubstrMask + 1][LayerMask + 1];
230  memset(hasStereo, 0, sizeof(hasStereo));
231  // mark which layers have mono/stereo hits
232  for (int i = 0; i < nHits; i++) {
233  uint32_t pattern = getHitPattern(i);
234  if (pattern == 0) break;
235  if (validHitFilter(pattern) && stripHitFilter(pattern)) {
236  switch (getSide(pattern)) {
237  case 0: // mono
238  hasMono[getSubStructure(pattern)][getLayer(pattern)]
239  = true;
240  break;
241  case 1: // stereo
242  hasStereo[getSubStructure(pattern)][getLayer(pattern)]
243  = true;
244  break;
245  default:
246  break;
247  }
248  }
249 
250  }
251  // count how many layers have mono and stereo hits
252  int count = 0;
253  for (int i = 0; i < SubstrMask + 1; ++i)
254  for (int j = 0; j < LayerMask + 1; ++j)
255  if (hasMono[i][j] && hasStereo[i][j])
256  count++;
257  return count;
258 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getLayer(uint32_t pattern)
Definition: HitPattern.h:501
static const unsigned short PatternSize
Definition: HitPattern.h:127
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
int j
Definition: DBlmapReader.cc:9
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static const unsigned short HitSize
Definition: HitPattern.h:130
static uint32_t getSide(uint32_t pattern)
Definition: HitPattern.h:512
static const unsigned short SubstrMask
Definition: HitPattern.h:368
static bool stripHitFilter(uint32_t pattern)
Definition: HitPattern.h:422
static const unsigned short LayerMask
Definition: HitPattern.h:372
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::numberOfValidStripTECHits ( ) const
inline

Definition at line 610 of file HitPattern.h.

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

Referenced by TrackAnalyzer::doTrackerSpecificFillHists(), and MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos().

610  {
612 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool stripTECHitFilter(uint32_t pattern)
Definition: HitPattern.h:453
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
int reco::HitPattern::numberOfValidStripTIBHits ( ) const
inline

Definition at line 598 of file HitPattern.h.

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

Referenced by CheckHitPattern::analyze(), TrackAnalyzer::doTrackerSpecificFillHists(), and MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos().

598  {
600 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static bool stripTIBHitFilter(uint32_t pattern)
Definition: HitPattern.h:432
int reco::HitPattern::numberOfValidStripTIDHits ( ) const
inline

Definition at line 602 of file HitPattern.h.

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

Referenced by TrackAnalyzer::doTrackerSpecificFillHists(), and MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos().

602  {
604 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool stripTIDHitFilter(uint32_t pattern)
Definition: HitPattern.h:439
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
int reco::HitPattern::numberOfValidStripTOBHits ( ) const
inline

Definition at line 606 of file HitPattern.h.

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

Referenced by CheckHitPattern::analyze(), TrackAnalyzer::doTrackerSpecificFillHists(), and MTVHistoProducerAlgoForTracker::fill_simAssociated_recoTrack_histos().

606  {
608 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
static bool stripTOBHitFilter(uint32_t pattern)
Definition: HitPattern.h:446
int reco::HitPattern::numberOfValidTrackerHits ( ) const
inline

Definition at line 574 of file HitPattern.h.

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

Referenced by CSCSkim::doBFieldStudySelection(), PFMuonAlgo::isTrackerTightMuon(), PFMuonAlgo::printMuonProperties(), and reco::TrackBase::validFraction().

574  {
576 }
int countTypedHits(filterType typeFilter, filterType filter) const
Definition: HitPattern.h:171
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
static bool validHitFilter(uint32_t pattern)
Definition: HitPattern.h:545
int reco::HitPattern::outermostMuonStationWithAnyHits ( ) const
inline

Definition at line 810 of file HitPattern.h.

References outermostMuonStationWithHits().

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

Definition at line 809 of file HitPattern.h.

References outermostMuonStationWithHits().

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

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

Definition at line 672 of file HitPattern.cc.

References getHitPattern(), getHitType(), getMuonStation(), HitSize, i, muonHitFilter(), listBenchmarks::pattern, PatternSize, and run_regression::ret.

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

672  {
673  int ret = 0;
674  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
675  uint32_t pattern = getHitPattern(i);
676  if (pattern == 0) break;
677  if (muonHitFilter(pattern) &&
678  (hitType == -1 || int(getHitType(pattern)) == hitType)) {
679  int stat = getMuonStation(pattern);
680  if (ret == 0 || stat > ret) ret = stat;
681  }
682  }
683  return ret;
684 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getHitType(uint32_t pattern)
Definition: HitPattern.h:517
static uint32_t getMuonStation(uint32_t pattern)
Muon station (1-4). Only valid for muon patterns, of course.
Definition: HitPattern.h:522
static const unsigned short PatternSize
Definition: HitPattern.h:127
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
static const unsigned short HitSize
Definition: HitPattern.h:130
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::outermostMuonStationWithValidHits ( ) const
inline

Definition at line 808 of file HitPattern.h.

References outermostMuonStationWithHits().

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

Definition at line 408 of file HitPattern.h.

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

Referenced by PrimaryVertexValidation::hasFirstLayerPixelHits(), hasValidHitInFirstPixelBarrel(), SoftPFElectronTagInfoProducer::isElecClean(), numberOfLostPixelBarrelHits(), and numberOfValidPixelBarrelHits().

408  {
410  uint32_t substructure = getSubStructure(pattern);
411  if (substructure == PixelSubdetector::PixelBarrel) return true;
412  return false;
413  }
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
int HitPattern::pixelBarrelLayersNull ( ) const

Definition at line 508 of file HitPattern.cc.

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

Referenced by pixelLayersNull().

508  {
509  int count = 0;
510  uint32_t substr = PixelSubdetector::PixelBarrel;
511  uint32_t NPixBarrel = 4;
512  for (uint32_t layer=1; layer<=NPixBarrel; layer++) {
513  if (getTrackerLayerCase(substr, layer) == 999999) count++;
514  }
515  return count;
516 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::pixelBarrelLayersTotallyOffOrBad ( ) const

Definition at line 451 of file HitPattern.cc.

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

Referenced by pixelLayersTotallyOffOrBad().

451  {
452  int count = 0;
453  uint32_t substr = PixelSubdetector::PixelBarrel;
454  uint32_t NPixBarrel = 4;
455  for (uint32_t layer=1; layer<=NPixBarrel; layer++) {
456  if (getTrackerLayerCase(substr, layer) == 2) count++;
457  }
458  return count;
459 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::pixelBarrelLayersWithMeasurement ( ) const

Definition at line 337 of file HitPattern.cc.

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

Referenced by TrackAnalyzer::doTrackerSpecificFillHists(), PrimaryVertexAnalyzer4PU::fillTrackHistos(), pixelLayersWithMeasurement(), IsolatedTracksNxN::printTrack(), and BeamFitter::readEvent().

337  {
338  int count = 0;
339  uint32_t substr = PixelSubdetector::PixelBarrel;
340  uint32_t NPixBarrel = 4;
341  for (uint32_t layer=1; layer<=NPixBarrel; layer++) {
342  if (getTrackerLayerCase(substr, layer) == 0) count++;
343  }
344  return count;
345 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::pixelBarrelLayersWithoutMeasurement ( ) const

Definition at line 394 of file HitPattern.cc.

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

Referenced by pixelLayersWithoutMeasurement().

394  {
395  int count = 0;
396  uint32_t substr = PixelSubdetector::PixelBarrel;
397  uint32_t NPixBarrel = 4;
398  for (uint32_t layer=1; layer<=NPixBarrel; layer++) {
399  if (getTrackerLayerCase(substr, layer) == 1) count++;
400  }
401  return count;
402 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
bool reco::HitPattern::pixelEndcapHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 415 of file HitPattern.h.

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

Referenced by PrimaryVertexValidation::hasFirstLayerPixelHits(), hasValidHitInFirstPixelEndcap(), SoftPFElectronTagInfoProducer::isElecClean(), numberOfLostPixelEndcapHits(), and numberOfValidPixelEndcapHits().

415  {
417  uint32_t substructure = getSubStructure(pattern);
418  if (substructure == PixelSubdetector::PixelEndcap) return true;
419  return false;
420  }
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
int HitPattern::pixelEndcapLayersNull ( ) const

Definition at line 518 of file HitPattern.cc.

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

Referenced by pixelLayersNull().

518  {
519  int count = 0;
520  uint32_t substr = PixelSubdetector::PixelEndcap;
521  uint32_t NPixForward = 3;
522  for (uint32_t layer=1; layer<=NPixForward; layer++) {
523  if (getTrackerLayerCase(substr, layer) == 999999) count++;
524  }
525  return count;
526 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::pixelEndcapLayersTotallyOffOrBad ( ) const

Definition at line 461 of file HitPattern.cc.

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

Referenced by pixelLayersTotallyOffOrBad().

461  {
462  int count = 0;
463  uint32_t substr = PixelSubdetector::PixelEndcap;
464  uint32_t NPixForward = 3;
465  for (uint32_t layer=1; layer<=NPixForward; layer++) {
466  if (getTrackerLayerCase(substr, layer) == 2) count++;
467  }
468  return count;
469 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::pixelEndcapLayersWithMeasurement ( ) const

Definition at line 347 of file HitPattern.cc.

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

Referenced by TrackAnalyzer::doTrackerSpecificFillHists(), pixelLayersWithMeasurement(), IsolatedTracksNxN::printTrack(), and BeamFitter::readEvent().

347  {
348  int count = 0;
349  uint32_t substr = PixelSubdetector::PixelEndcap;
350  uint32_t NPixForward = 3;
351  for (uint32_t layer=1; layer<=NPixForward; layer++) {
352  if (getTrackerLayerCase(substr, layer) == 0) count++;
353  }
354  return count;
355 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::pixelEndcapLayersWithoutMeasurement ( ) const

Definition at line 404 of file HitPattern.cc.

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

Referenced by pixelLayersWithoutMeasurement().

404  {
405  int count = 0;
406  uint32_t substr = PixelSubdetector::PixelEndcap;
407  uint32_t NPixForward = 3;
408  for (uint32_t layer=1; layer<=NPixForward; layer++) {
409  if (getTrackerLayerCase(substr, layer) == 1) count++;
410  }
411  return count;
412 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
bool reco::HitPattern::pixelHitFilter ( uint32_t  pattern)
inlinestatic
int reco::HitPattern::pixelLayersNull ( ) const
inline

Definition at line 779 of file HitPattern.h.

References pixelBarrelLayersNull(), and pixelEndcapLayersNull().

Referenced by trackerLayersNull().

779  {
780  return pixelBarrelLayersNull() +
782  }
int pixelBarrelLayersNull() const
Definition: HitPattern.cc:508
int pixelEndcapLayersNull() const
Definition: HitPattern.cc:518
int reco::HitPattern::pixelLayersTotallyOffOrBad ( ) const
inline

Definition at line 762 of file HitPattern.h.

References pixelBarrelLayersTotallyOffOrBad(), and pixelEndcapLayersTotallyOffOrBad().

Referenced by trackerLayersTotallyOffOrBad().

762  {
765  }
int pixelBarrelLayersTotallyOffOrBad() const
Definition: HitPattern.cc:451
int pixelEndcapLayersTotallyOffOrBad() const
Definition: HitPattern.cc:461
int reco::HitPattern::pixelLayersWithMeasurement ( ) const
inline
int reco::HitPattern::pixelLayersWithoutMeasurement ( ) const
inline

Definition at line 744 of file HitPattern.h.

References pixelBarrelLayersWithoutMeasurement(), and pixelEndcapLayersWithoutMeasurement().

Referenced by trackerLayersWithoutMeasurement().

744  {
747  }
int pixelBarrelLayersWithoutMeasurement() const
Definition: HitPattern.cc:394
int pixelEndcapLayersWithoutMeasurement() const
Definition: HitPattern.cc:404
void HitPattern::print ( std::ostream &  stream = std::cout) const

Definition at line 591 of file HitPattern.cc.

References flags, getHitPattern(), i, numberOfHits(), listBenchmarks::pattern, and printHitPattern().

592 {
593  stream << "HitPattern" << std::endl;
594  for (int i = 0; i < numberOfHits(); i++)
595  printHitPattern(i, stream);
596  std::ios_base::fmtflags flags = stream.flags();
597  stream.setf ( std::ios_base::hex, std::ios_base::basefield );
598  stream.setf ( std::ios_base::showbase );
599  for (int i = 0; i < numberOfHits(); i++) {
600  uint32_t pattern = getHitPattern(i);
601  stream << pattern << std::endl;
602  }
603  stream.flags(flags);
604 }
int i
Definition: DBlmapReader.cc:9
std::vector< Variable::Flags > flags
Definition: MVATrainer.cc:135
int numberOfHits() const
Definition: HitPattern.cc:213
void printHitPattern(int position, std::ostream &stream) const
Definition: HitPattern.cc:564
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
void HitPattern::printHitPattern ( int  position,
std::ostream &  stream 
) const

Definition at line 564 of file HitPattern.cc.

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

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

565 {
566  uint32_t pattern = getHitPattern(position);
567  stream << "\t";
568  if (muonHitFilter(pattern))
569  stream << "muon";
570  if (trackerHitFilter(pattern))
571  stream << "tracker";
572  stream << "\tsubstructure " << getSubStructure(pattern);
573  if (muonHitFilter(pattern)) {
574  stream << "\tstation " << getMuonStation(pattern);
575  if (muonDTHitFilter(pattern)) {
576  stream << "\tdt superlayer " << getDTSuperLayer(pattern);
577  } else if (muonCSCHitFilter(pattern)) {
578  stream << "\tcsc ring " << getCSCRing(pattern);
579  } else if (muonRPCHitFilter(pattern)) {
580  stream << "\trpc " << (getRPCregion(pattern) ? "endcaps" : "barrel") << ", layer " << getRPCLayer(pattern);
581  } else {
582  stream << "(UNKNOWN Muon SubStructure!) \tsubsubstructure " << getSubStructure(pattern);
583  }
584  } else {
585  stream << "\tlayer " << getLayer(pattern);
586  }
587  stream << "\thit type " << getHitType(pattern);
588  stream << std::endl;
589 }
static uint32_t getRPCLayer(uint32_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:534
static uint32_t getDTSuperLayer(uint32_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:526
static uint32_t getLayer(uint32_t pattern)
Definition: HitPattern.h:501
static uint32_t getCSCRing(uint32_t pattern)
CSC ring (1-4). Only valid for muon CSC patterns, of course.
Definition: HitPattern.h:530
static bool muonDTHitFilter(uint32_t pattern)
Definition: HitPattern.h:460
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
static uint32_t getHitType(uint32_t pattern)
Definition: HitPattern.h:517
static uint32_t getMuonStation(uint32_t pattern)
Muon station (1-4). Only valid for muon patterns, of course.
Definition: HitPattern.h:522
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
static bool muonHitFilter(uint32_t pattern)
Definition: HitPattern.h:488
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
static bool muonRPCHitFilter(uint32_t pattern)
Definition: HitPattern.h:474
static uint32_t getRPCregion(uint32_t pattern)
RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course.
Definition: HitPattern.h:540
static bool muonCSCHitFilter(uint32_t pattern)
Definition: HitPattern.h:467
uint32_t getHitPattern(int position) const
Definition: HitPattern.cc:144
int reco::HitPattern::rpcStationsWithAnyHits ( ) const
inline

Definition at line 803 of file HitPattern.h.

References muonStations().

803 { return muonStations(3,-1); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::rpcStationsWithBadHits ( ) const
inline

Definition at line 802 of file HitPattern.h.

References muonStations().

802 { return muonStations(3, 3); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
int reco::HitPattern::rpcStationsWithValidHits ( ) const
inline

Definition at line 801 of file HitPattern.h.

References muonStations().

801 { return muonStations(3, 0); }
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
Definition: HitPattern.cc:643
template<typename I >
void reco::HitPattern::set ( const I &  begin,
const I &  end 
)
inline

Definition at line 150 of file HitPattern.h.

References hitPattern_, HitSize, Exhume::I, i, and PatternSize.

Referenced by FixTrackHitPattern::analyze(), appendHit(), betterConfigParser.BetterConfigParser::getGeneral(), HitPattern(), reco::TrackBase::setHitPattern(), reco::TrackBase::setTrackerExpectedHitsInner(), and reco::TrackBase::setTrackerExpectedHitsOuter().

150  {
151  for (int i=0; i<PatternSize; i++) hitPattern_[i] = 0;
152  unsigned int counter = 0;
153  for (I hit=begin; hit!=end && counter<32*PatternSize/HitSize;
154  hit++, counter++)
155  set(*hit, counter);
156  }
int i
Definition: DBlmapReader.cc:9
uint32_t hitPattern_[PatternSize]
Definition: HitPattern.h:383
void set(const I &begin, const I &end)
Definition: HitPattern.h:150
static const unsigned short PatternSize
Definition: HitPattern.h:127
const std::complex< double > I
Definition: I.h:8
#define end
Definition: vmac.h:38
static const unsigned short HitSize
Definition: HitPattern.h:130
#define begin
Definition: vmac.h:31
void reco::HitPattern::set ( const TrackingRecHit hit,
unsigned int  i 
)
inline

Definition at line 196 of file HitPattern.h.

References encode(), and setHitPattern().

Referenced by betterConfigParser.BetterConfigParser::getGeneral().

196 {setHitPattern(i, encode(hit,i));}
int i
Definition: DBlmapReader.cc:9
uint32_t encode(const TrackingRecHit &, unsigned int)
Definition: HitPattern.cc:15
void setHitPattern(int position, uint32_t pattern)
Definition: HitPattern.cc:79
void reco::HitPattern::set ( const TrackingRecHitRef ref,
unsigned int  i 
)
inlineprivate

Definition at line 389 of file HitPattern.h.

References set().

Referenced by betterConfigParser.BetterConfigParser::getGeneral(), and set().

389 { set(* ref, i); }
int i
Definition: DBlmapReader.cc:9
void set(const I &begin, const I &end)
Definition: HitPattern.h:150
void HitPattern::setHitPattern ( int  position,
uint32_t  pattern 
)
private

Definition at line 79 of file HitPattern.cc.

References hitPattern_, HitSize, i, evf::evtn::offset(), and pos.

Referenced by set().

79  {
80  int offset = position * HitSize;
81  for (int i=0; i<HitSize; i++) {
82  int pos = offset + i;
83  uint32_t bit = (pattern >> i) & 0x1;
84  hitPattern_[pos / 32] += bit << ((offset + i) % 32);
85  }
86 }
int i
Definition: DBlmapReader.cc:9
uint32_t hitPattern_[PatternSize]
Definition: HitPattern.h:383
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
unsigned int offset(bool)
static const unsigned short HitSize
Definition: HitPattern.h:130
bool reco::HitPattern::stripHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 422 of file HitPattern.h.

References getSubStructure(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, trackerHitFilter(), and unlikely.

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

422  {
424  uint32_t substructure = getSubStructure(pattern);
425  if (substructure == StripSubdetector::TIB ||
426  substructure == StripSubdetector::TID ||
427  substructure == StripSubdetector::TOB ||
428  substructure == StripSubdetector::TEC) return true;
429  return false;
430  }
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
int reco::HitPattern::stripLayersNull ( ) const
inline

Definition at line 784 of file HitPattern.h.

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

Referenced by trackerLayersNull().

784  {
785  return stripTIBLayersNull() +
787  stripTOBLayersNull() +
789  }
int stripTIBLayersNull() const
Definition: HitPattern.cc:528
int stripTECLayersNull() const
Definition: HitPattern.cc:555
int stripTIDLayersNull() const
Definition: HitPattern.cc:537
int stripTOBLayersNull() const
Definition: HitPattern.cc:546
int reco::HitPattern::stripLayersTotallyOffOrBad ( ) const
inline
int reco::HitPattern::stripLayersWithMeasurement ( ) const
inline
int reco::HitPattern::stripLayersWithoutMeasurement ( ) const
inline
bool reco::HitPattern::stripTECHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 453 of file HitPattern.h.

References getSubStructure(), StripSubdetector::TEC, trackerHitFilter(), and unlikely.

Referenced by numberOfLostStripTECHits(), numberOfValidStripTECHits(), EgAmbiguityTools::sharedDets(), and EgAmbiguityTools::sharedHits().

453  {
455  uint32_t substructure = getSubStructure(pattern);
456  if (substructure == StripSubdetector::TEC) return true;
457  return false;
458  }
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
int HitPattern::stripTECLayersNull ( ) const

Definition at line 555 of file HitPattern.cc.

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

Referenced by stripLayersNull().

555  {
556  int count = 0;
557  uint32_t substr = StripSubdetector::TEC;
558  for (uint32_t layer=1; layer<=9; layer++) {
559  if (getTrackerLayerCase(substr, layer) == 999999) count++;
560  }
561  return count;
562 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTECLayersTotallyOffOrBad ( ) const

Definition at line 498 of file HitPattern.cc.

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

Referenced by stripLayersTotallyOffOrBad().

498  {
499  int count = 0;
500  uint32_t substr = StripSubdetector::TEC;
501  for (uint32_t layer=1; layer<=9; layer++) {
502  if (getTrackerLayerCase(substr, layer) == 2) count++;
503  }
504  return count;
505 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTECLayersWithMeasurement ( ) const

Definition at line 384 of file HitPattern.cc.

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

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

384  {
385  int count = 0;
386  uint32_t substr = StripSubdetector::TEC;
387  for (uint32_t layer=1; layer<=9; layer++) {
388  if (getTrackerLayerCase(substr, layer) == 0) count++;
389  }
390  return count;
391 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTECLayersWithoutMeasurement ( ) const

Definition at line 441 of file HitPattern.cc.

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

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

441  {
442  int count = 0;
443  uint32_t substr = StripSubdetector::TEC;
444  for (uint32_t layer=1; layer<=9; layer++) {
445  if (getTrackerLayerCase(substr, layer) == 1) count++;
446  }
447  return count;
448 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
bool reco::HitPattern::stripTIBHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 432 of file HitPattern.h.

References getSubStructure(), StripSubdetector::TIB, trackerHitFilter(), and unlikely.

Referenced by GsfElectronAlgo::ElectronData::checkCtfTrack(), GsfElectronCoreBaseProducer::getCtfTrackRef(), numberOfLostStripTIBHits(), numberOfValidStripTIBHits(), EgAmbiguityTools::sharedDets(), and EgAmbiguityTools::sharedHits().

432  {
434  uint32_t substructure = getSubStructure(pattern);
435  if (substructure == StripSubdetector::TIB) return true;
436  return false;
437  }
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
int HitPattern::stripTIBLayersNull ( ) const

Definition at line 528 of file HitPattern.cc.

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

Referenced by stripLayersNull().

528  {
529  int count = 0;
530  uint32_t substr = StripSubdetector::TIB;
531  for (uint32_t layer=1; layer<=4; layer++) {
532  if (getTrackerLayerCase(substr, layer) == 999999) count++;
533  }
534  return count;
535 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTIBLayersTotallyOffOrBad ( ) const

Definition at line 471 of file HitPattern.cc.

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

Referenced by stripLayersTotallyOffOrBad().

471  {
472  int count = 0;
473  uint32_t substr = StripSubdetector::TIB;
474  for (uint32_t layer=1; layer<=4; layer++) {
475  if (getTrackerLayerCase(substr, layer) == 2) count++;
476  }
477  return count;
478 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTIBLayersWithMeasurement ( ) const

Definition at line 357 of file HitPattern.cc.

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

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

357  {
358  int count = 0;
359  uint32_t substr = StripSubdetector::TIB;
360  for (uint32_t layer=1; layer<=4; layer++) {
361  if (getTrackerLayerCase(substr, layer) == 0) count++;
362  }
363  return count;
364 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTIBLayersWithoutMeasurement ( ) const

Definition at line 414 of file HitPattern.cc.

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

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

414  {
415  int count = 0;
416  uint32_t substr = StripSubdetector::TIB;
417  for (uint32_t layer=1; layer<=4; layer++) {
418  if (getTrackerLayerCase(substr, layer) == 1) count++;
419  }
420  return count;
421 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
bool reco::HitPattern::stripTIDHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 439 of file HitPattern.h.

References getSubStructure(), StripSubdetector::TID, trackerHitFilter(), and unlikely.

Referenced by GsfElectronAlgo::ElectronData::checkCtfTrack(), GsfElectronCoreBaseProducer::getCtfTrackRef(), numberOfLostStripTIDHits(), numberOfValidStripTIDHits(), EgAmbiguityTools::sharedDets(), and EgAmbiguityTools::sharedHits().

439  {
441  uint32_t substructure = getSubStructure(pattern);
442  if (substructure == StripSubdetector::TID) return true;
443  return false;
444  }
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
int HitPattern::stripTIDLayersNull ( ) const

Definition at line 537 of file HitPattern.cc.

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

Referenced by stripLayersNull().

537  {
538  int count = 0;
539  uint32_t substr = StripSubdetector::TID;
540  for (uint32_t layer=1; layer<=3; layer++) {
541  if (getTrackerLayerCase(substr, layer) == 999999) count++;
542  }
543  return count;
544 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTIDLayersTotallyOffOrBad ( ) const

Definition at line 480 of file HitPattern.cc.

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

Referenced by stripLayersTotallyOffOrBad().

480  {
481  int count = 0;
482  uint32_t substr = StripSubdetector::TID;
483  for (uint32_t layer=1; layer<=3; layer++) {
484  if (getTrackerLayerCase(substr, layer) == 2) count++;
485  }
486  return count;
487 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTIDLayersWithMeasurement ( ) const

Definition at line 366 of file HitPattern.cc.

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

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

366  {
367  int count = 0;
368  uint32_t substr = StripSubdetector::TID;
369  for (uint32_t layer=1; layer<=3; layer++) {
370  if (getTrackerLayerCase(substr, layer) == 0) count++;
371  }
372  return count;
373 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTIDLayersWithoutMeasurement ( ) const

Definition at line 423 of file HitPattern.cc.

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

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

423  {
424  int count = 0;
425  uint32_t substr = StripSubdetector::TID;
426  for (uint32_t layer=1; layer<=3; layer++) {
427  if (getTrackerLayerCase(substr, layer) == 1) count++;
428  }
429  return count;
430 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
bool reco::HitPattern::stripTOBHitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 446 of file HitPattern.h.

References getSubStructure(), StripSubdetector::TOB, trackerHitFilter(), and unlikely.

Referenced by numberOfLostStripTOBHits(), numberOfValidStripTOBHits(), EgAmbiguityTools::sharedDets(), and EgAmbiguityTools::sharedHits().

446  {
448  uint32_t substructure = getSubStructure(pattern);
449  if (substructure == StripSubdetector::TOB) return true;
450  return false;
451  }
static bool trackerHitFilter(uint32_t pattern)
Definition: HitPattern.h:482
#define unlikely(x)
Definition: Likely.h:21
static uint32_t getSubStructure(uint32_t pattern)
Definition: HitPattern.h:495
return(e1-e2)*(e1-e2)+dp *dp
if(dp >Float(M_PI)) dp-
int HitPattern::stripTOBLayersNull ( ) const

Definition at line 546 of file HitPattern.cc.

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

Referenced by stripLayersNull().

546  {
547  int count = 0;
548  uint32_t substr = StripSubdetector::TOB;
549  for (uint32_t layer=1; layer<=6; layer++) {
550  if (getTrackerLayerCase(substr, layer) == 999999) count++;
551  }
552  return count;
553 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTOBLayersTotallyOffOrBad ( ) const

Definition at line 489 of file HitPattern.cc.

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

Referenced by stripLayersTotallyOffOrBad().

489  {
490  int count = 0;
491  uint32_t substr = StripSubdetector::TOB;
492  for (uint32_t layer=1; layer<=6; layer++) {
493  if (getTrackerLayerCase(substr, layer) == 2) count++;
494  }
495  return count;
496 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTOBLayersWithMeasurement ( ) const

Definition at line 375 of file HitPattern.cc.

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

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

375  {
376  int count = 0;
377  uint32_t substr = StripSubdetector::TOB;
378  for (uint32_t layer=1; layer<=6; layer++) {
379  if (getTrackerLayerCase(substr, layer) == 0) count++;
380  }
381  return count;
382 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
int HitPattern::stripTOBLayersWithoutMeasurement ( ) const

Definition at line 432 of file HitPattern.cc.

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

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

432  {
433  int count = 0;
434  uint32_t substr = StripSubdetector::TOB;
435  for (uint32_t layer=1; layer<=6; layer++) {
436  if (getTrackerLayerCase(substr, layer) == 1) count++;
437  }
438  return count;
439 }
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
Definition: HitPattern.cc:260
bool reco::HitPattern::trackerHitFilter ( uint32_t  pattern)
inlinestatic
int reco::HitPattern::trackerLayersNull ( ) const
inline

Definition at line 774 of file HitPattern.h.

References pixelLayersNull(), and stripLayersNull().

774  {
775  return pixelLayersNull() +
776  stripLayersNull();
777  }
int pixelLayersNull() const
Definition: HitPattern.h:779
int stripLayersNull() const
Definition: HitPattern.h:784
int reco::HitPattern::trackerLayersTotallyOffOrBad ( ) const
inline

Definition at line 757 of file HitPattern.h.

References pixelLayersTotallyOffOrBad(), and stripLayersTotallyOffOrBad().

757  {
758  return pixelLayersTotallyOffOrBad() +
760  }
int pixelLayersTotallyOffOrBad() const
Definition: HitPattern.h:762
int stripLayersTotallyOffOrBad() const
Definition: HitPattern.h:767
int reco::HitPattern::trackerLayersWithMeasurement ( ) const
inline
int reco::HitPattern::trackerLayersWithoutMeasurement ( ) const
inline
bool reco::HitPattern::type_1_HitFilter ( uint32_t  pattern)
inlinestatic
bool reco::HitPattern::type_2_HitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 555 of file HitPattern.h.

References getHitType().

Referenced by numberOfBadMuonCSCHits(), numberOfBadMuonDTHits(), numberOfBadMuonHits(), numberOfBadMuonRPCHits(), numberOfInactiveHits(), and numberOfInactiveTrackerHits().

555  {
556  if (getHitType(pattern) == 2) return true;
557  return false;
558  }
static uint32_t getHitType(uint32_t pattern)
Definition: HitPattern.h:517
bool reco::HitPattern::type_3_HitFilter ( uint32_t  pattern)
inlinestatic

Definition at line 560 of file HitPattern.h.

References getHitType().

Referenced by numberOfBadHits().

560  {
561  if (getHitType(pattern) == 3) return true;
562  return false;
563  }
static uint32_t getHitType(uint32_t pattern)
Definition: HitPattern.h:517
bool reco::HitPattern::validHitFilter ( uint32_t  pattern)
inlinestatic

Member Data Documentation

uint32_t reco::HitPattern::hitPattern_[PatternSize]
private

Definition at line 383 of file HitPattern.h.

Referenced by getHitPattern(), HitPattern(), set(), and setHitPattern().

const unsigned short reco::HitPattern::HitSize = 11
static
const unsigned short reco::HitPattern::HitTypeMask = 0x3
staticprivate

Definition at line 380 of file HitPattern.h.

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

const unsigned short reco::HitPattern::HitTypeOffset = 0
staticprivate

Definition at line 379 of file HitPattern.h.

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

const unsigned short reco::HitPattern::LayerMask = 0xF
staticprivate
const unsigned short reco::HitPattern::LayerOffset = 3
staticprivate
const int reco::HitPattern::MaxHits = (PatternSize * 32) / HitSize
static

Definition at line 132 of file HitPattern.h.

const unsigned short reco::HitPattern::PatternSize = 25
static
const unsigned short reco::HitPattern::SideMask = 0x1
staticprivate

Definition at line 376 of file HitPattern.h.

Referenced by encode(), and getSide().

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

Definition at line 375 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 367 of file HitPattern.h.

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