CMS 3D CMS Logo

Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes

reco::HitPattern Class Reference

#include <HitPattern.h>

List of all members.

Public Types

enum  { MONO = 1, STEREO = 2 }

Public Member Functions

int cscStationsWithAnyHits () const
int cscStationsWithBadHits () const
int cscStationsWithValidHits () const
int dtStationsWithAnyHits () const
int dtStationsWithBadHits () const
int dtStationsWithValidHits () const
uint32_t getCSCRing (uint32_t pattern) const
 CSC ring (1-4). Only valid for muon CSC patterns, of course.
uint32_t getDTSuperLayer (uint32_t pattern) const
 DT superlayer (1-3). Only valid for muon DT patterns, of course.
uint32_t getHitPattern (int position) const
uint32_t getHitType (uint32_t pattern) const
uint32_t getLayer (uint32_t pattern) const
uint32_t getMuonStation (uint32_t pattern) const
 Muon station (1-4). Only valid for muon patterns, of course.
uint32_t getRPCLayer (uint32_t pattern) const
 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.
uint32_t getRPCregion (uint32_t pattern) const
 RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course.
uint32_t getSubStructure (uint32_t pattern) const
uint32_t getSubSubStructure (uint32_t pattern) 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
template<typename I >
 HitPattern (const I &begin, const I &end)
 HitPattern ()
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
int innermostMuonStationWithValidHits () const
bool muonCSCHitFilter (uint32_t pattern) const
bool muonDTHitFilter (uint32_t pattern) const
bool muonHitFilter (uint32_t pattern) const
bool muonRPCHitFilter (uint32_t pattern) const
int muonStations (int subdet, int hitType) const
 subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
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 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
int outermostMuonStationWithValidHits () const
bool pixelBarrelHitFilter (uint32_t pattern) const
int pixelBarrelLayersNull () const
int pixelBarrelLayersTotallyOffOrBad () const
int pixelBarrelLayersWithMeasurement () const
int pixelBarrelLayersWithoutMeasurement () const
bool pixelEndcapHitFilter (uint32_t pattern) const
int pixelEndcapLayersNull () const
int pixelEndcapLayersTotallyOffOrBad () const
int pixelEndcapLayersWithMeasurement () const
int pixelEndcapLayersWithoutMeasurement () const
bool pixelHitFilter (uint32_t pattern) 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
void set (const TrackingRecHit &, unsigned int i)
template<typename I >
void set (const I &begin, const I &end)
bool stripHitFilter (uint32_t pattern) const
int stripLayersNull () const
int stripLayersTotallyOffOrBad () const
int stripLayersWithMeasurement () const
int stripLayersWithoutMeasurement () const
bool stripTECHitFilter (uint32_t pattern) const
int stripTECLayersNull () const
int stripTECLayersTotallyOffOrBad () const
int stripTECLayersWithMeasurement () const
int stripTECLayersWithoutMeasurement () const
bool stripTIBHitFilter (uint32_t pattern) const
int stripTIBLayersNull () const
int stripTIBLayersTotallyOffOrBad () const
int stripTIBLayersWithMeasurement () const
int stripTIBLayersWithoutMeasurement () const
bool stripTIDHitFilter (uint32_t pattern) const
int stripTIDLayersNull () const
int stripTIDLayersTotallyOffOrBad () const
int stripTIDLayersWithMeasurement () const
int stripTIDLayersWithoutMeasurement () const
bool stripTOBHitFilter (uint32_t pattern) const
int stripTOBLayersNull () const
int stripTOBLayersTotallyOffOrBad () const
int stripTOBLayersWithMeasurement () const
int stripTOBLayersWithoutMeasurement () const
bool trackerHitFilter (uint32_t pattern) const
int trackerLayersNull () const
int trackerLayersTotallyOffOrBad () const
int trackerLayersWithMeasurement () const
int trackerLayersWithoutMeasurement () const
bool type_1_HitFilter (uint32_t pattern) const
bool type_2_HitFilter (uint32_t pattern) const
bool type_3_HitFilter (uint32_t pattern) const
bool validHitFilter (uint32_t pattern) const

Static Public Member Functions

static uint32_t getSide (uint32_t pattern)

Private Member Functions

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 HitSize = 11
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 PatternSize = 25
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 118 of file HitPattern.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
MONO 
STEREO 

Definition at line 120 of file HitPattern.h.

{ MONO = 1, STEREO = 2 };

Constructor & Destructor Documentation

reco::HitPattern::HitPattern ( ) [inline]

Definition at line 124 of file HitPattern.h.

References hitPattern_, i, and PatternSize.

{ for (int i=0; i<PatternSize; i++) hitPattern_[i] = 0; }
template<typename I >
reco::HitPattern::HitPattern ( const I &  begin,
const I &  end 
) [inline]

Definition at line 128 of file HitPattern.h.

References begin, and end.

{ set(begin, end); }
template<typename C >
reco::HitPattern::HitPattern ( const C &  c) [inline]

Definition at line 132 of file HitPattern.h.

References trackerHits::c.

{ set(c); }

Member Function Documentation

int HitPattern::cscStationsWithAnyHits ( ) const

Definition at line 1245 of file HitPattern.cc.

References muonStations().

{ return muonStations(2,-1); }
int HitPattern::cscStationsWithBadHits ( ) const

Definition at line 1244 of file HitPattern.cc.

References muonStations().

{ return muonStations(2, 3); }
int HitPattern::cscStationsWithValidHits ( ) const

Definition at line 1243 of file HitPattern.cc.

References muonStations().

{ return muonStations(2, 0); }
int HitPattern::dtStationsWithAnyHits ( ) const

Definition at line 1242 of file HitPattern.cc.

References muonStations().

{ return muonStations(1,-1); }
int HitPattern::dtStationsWithBadHits ( ) const

Definition at line 1241 of file HitPattern.cc.

References muonStations().

{ return muonStations(1, 3); }
int HitPattern::dtStationsWithValidHits ( ) const

Definition at line 1240 of file HitPattern.cc.

References muonStations().

{ return muonStations(1, 0); }
uint32_t HitPattern::getCSCRing ( uint32_t  pattern) const

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

Definition at line 249 of file HitPattern.cc.

References getSubSubStructure().

Referenced by printHitPattern().

                                                      {
  return (getSubSubStructure(pattern) & 3) + 1;
}
uint32_t HitPattern::getDTSuperLayer ( uint32_t  pattern) const

DT superlayer (1-3). Only valid for muon DT patterns, of course.

Definition at line 245 of file HitPattern.cc.

References getSubSubStructure().

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

                                                           {
  return (getSubSubStructure(pattern) & 3) + 1;
}
uint32_t HitPattern::getHitPattern ( int  position) const

Definition at line 86 of file HitPattern.cc.

References hitPattern_, and HitSize.

Referenced by PFCheckHitPattern::analyze(), GsfElectronAlgo::ElectronData::checkCtfTrack(), GsfElectronCoreBaseProducer::getCtfTrackRef(), getTrackerLayerCase(), getTrackerMonoStereo(), PrimaryVertexValidation::hasFirstLayerPixelHits(), hasValidHitInFirstPixelBarrel(), hasValidHitInFirstPixelEndcap(), index_to_hitpattern(), innermostMuonStationWithHits(), SoftElectronCandProducer::isClean(), muonStations(), numberOfBadHits(), numberOfBadMuonCSCHits(), numberOfBadMuonDTHits(), numberOfBadMuonHits(), numberOfBadMuonRPCHits(), numberOfDTStationsWithBothViews(), numberOfDTStationsWithRPhiView(), numberOfDTStationsWithRZView(), numberOfHits(), numberOfLostHits(), numberOfLostMuonCSCHits(), numberOfLostMuonDTHits(), numberOfLostMuonHits(), numberOfLostMuonRPCHits(), numberOfLostPixelBarrelHits(), numberOfLostPixelEndcapHits(), numberOfLostPixelHits(), numberOfLostStripHits(), numberOfLostStripTECHits(), numberOfLostStripTIBHits(), numberOfLostStripTIDHits(), numberOfLostStripTOBHits(), numberOfLostTrackerHits(), numberOfValidHits(), numberOfValidMuonCSCHits(), numberOfValidMuonDTHits(), numberOfValidMuonHits(), numberOfValidMuonRPCHits(), numberOfValidPixelBarrelHits(), numberOfValidPixelEndcapHits(), numberOfValidPixelHits(), numberOfValidStripHits(), numberOfValidStripLayersWithMonoAndStereo(), numberOfValidStripTECHits(), numberOfValidStripTIBHits(), numberOfValidStripTIDHits(), numberOfValidStripTOBHits(), numberOfValidTrackerHits(), EgAmbiguityTools::isInnerMost::operator()(), outermostMuonStationWithHits(), FWTrackResidualDetailView::prepareData(), PFCheckHitPattern::print(), reco::TrackResiduals::print(), print(), printHitPattern(), FWConvTrackHitsDetailView::setTextInfo(), EgAmbiguityTools::sharedDets(), EgAmbiguityTools::sharedHits(), and QcdUeDQM::trackSelection().

                                                     {
/* Note: you are not taking a consecutive sequence of HitSize bits starting from position*HitSize
         as the bit order in the words are reversed. 
         e.g. if position = 0 you take the lowest 10 bits of the first word.
    
         I hope this can clarify what is the memory layout of such thing

 straight 01234567890123456789012345678901 | 23456789012345678901234567890123 | 4567
 (global) 0         1         2         3  | 3       4         5         6    | 6  
 words    [--------------0---------------] | [--------------1---------------] | [---   
 word     01234567890123456789012345678901 | 01234567890123456789012345678901 | 0123
  (str)   0         1         2         3  | 0         1         2         3  | 0
          [--------------0---------------] | [--------------1---------------] | [---   
 word     10987654321098765432109876543210 | 10987654321098765432109876543210 | 1098
  (rev)   32         21        10        0 | 32         21        10        0 | 32  
 reverse  10987654321098765432109876543210 | 32109876543210987654321098765432 | 5432
          32         21        10        0 | 6  65        54        43      3   9

         ugly enough, but it's not my fault, I was not even in CMS at that time   [gpetrucc] */
  uint16_t bitEndOffset = (position+1) * HitSize;
  uint8_t secondWord   = (bitEndOffset >> 5);
  uint8_t secondWordBits = bitEndOffset & (32-1); // that is, bitEndOffset % 32
  if (secondWordBits >= HitSize) { // full block is in this word
      uint8_t lowBitsToTrash = secondWordBits - HitSize;
      uint32_t myResult = (hitPattern_[secondWord] >> lowBitsToTrash) & ((1 << HitSize)-1);
      return myResult;
  } else {
      uint8_t  firstWordBits   = HitSize - secondWordBits;
      uint32_t firstWordBlock  = hitPattern_[secondWord-1] >> (32-firstWordBits);
      uint32_t secondWordBlock = hitPattern_[secondWord] & ((1<<secondWordBits)-1);
      uint32_t myResult = firstWordBlock + (secondWordBlock << firstWordBits);
      return myResult;
  }
}
uint32_t HitPattern::getHitType ( uint32_t  pattern) const
uint32_t HitPattern::getLayer ( uint32_t  pattern) const
uint32_t HitPattern::getMuonStation ( uint32_t  pattern) const
uint32_t HitPattern::getRPCLayer ( uint32_t  pattern) const

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 253 of file HitPattern.cc.

References getSubSubStructure().

Referenced by printHitPattern().

                                                       {
    uint32_t sss = getSubSubStructure(pattern), stat = sss >> 2;
    if (stat <= 1) return ((sss >> 1) & 1) + 1;
    else return 0;
}
uint32_t HitPattern::getRPCregion ( uint32_t  pattern) const

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

Definition at line 259 of file HitPattern.cc.

References getSubSubStructure().

Referenced by printHitPattern().

                                                        {
    return getSubSubStructure(pattern) & 1;
}
uint32_t HitPattern::getSide ( uint32_t  pattern) [static]

Definition at line 230 of file HitPattern.cc.

References SideMask, and SideOffset.

Referenced by getTrackerMonoStereo(), and numberOfValidStripLayersWithMonoAndStereo().

{
     if (pattern == 0) return 999999;
     return (pattern >> SideOffset) & SideMask;
}
uint32_t HitPattern::getSubStructure ( uint32_t  pattern) const
uint32_t HitPattern::getSubSubStructure ( uint32_t  pattern) const

Definition at line 224 of file HitPattern.cc.

References LayerMask, and LayerOffset.

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

                                                              {
  if (pattern == 0) return 999999;
  return ((pattern>>LayerOffset) & LayerMask);
}
uint32_t HitPattern::getTrackerLayerCase ( uint32_t  substr,
uint32_t  layer 
) const

Definition at line 782 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().

{
  uint32_t tk_substr_layer = 
    (1 << SubDetectorOffset) +
    ((substr & SubstrMask) << SubstrOffset) +
    ((layer & LayerMask) << LayerOffset);

  uint32_t mask =
    (SubDetectorMask << SubDetectorOffset) +
    (SubstrMask << SubstrOffset) +
    (LayerMask << LayerOffset);

  // crossed
  //   layer case 0: valid + (missing, off, bad) ==> with measurement
  //   layer case 1: missing + (off, bad) ==> without measurement
  //   layer case 2: off, bad ==> totally off or bad, cannot say much
  // not crossed
  //   layer case 999999: track outside acceptance or in gap ==> null

  uint32_t layerCase = 999999;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++)
  {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    if ((pattern & mask) == tk_substr_layer)
    {
      uint32_t hitType = (pattern >> HitTypeOffset) & HitTypeMask; // 0,1,2,3
      if (hitType < layerCase)
      {
        layerCase = hitType;
        if (hitType == 3) layerCase = 2;
      }
    }
  }
  return layerCase;
}
uint32_t HitPattern::getTrackerMonoStereo ( uint32_t  substr,
uint32_t  layer 
) const

Definition at line 819 of file HitPattern.cc.

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

{
  uint32_t tk_substr_layer = 
    (1 << SubDetectorOffset) +
    ((substr & SubstrMask) << SubstrOffset) +
    ((layer & LayerMask) << LayerOffset);

  uint32_t mask =
    (SubDetectorMask << SubDetectorOffset) +
    (SubstrMask << SubstrOffset) +
    (LayerMask << LayerOffset);

  //    0:              neither a valid mono nor a valid stereo hit
  //    MONO:           valid mono hit
  //    STEREO:         valid stereo hit
  //    MONO | STEREO:  both
  uint32_t monoStereo = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++)
  {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    if ((pattern & mask) == tk_substr_layer)
    {
      uint32_t hitType = (pattern >> HitTypeOffset) & HitTypeMask; // 0,1,2,3
      if (hitType == 0) { // valid hit
           switch (getSide(pattern)) {
           case 0: // mono
                monoStereo |= MONO;
                break;
           case 1: // stereo
                monoStereo |= STEREO;
                break;
           default:
                break;
           }
      }
    }
  }
  return monoStereo;
}
bool HitPattern::hasValidHitInFirstPixelBarrel ( ) const

Definition at line 284 of file HitPattern.cc.

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

                                                     {
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pixelBarrelHitFilter(pattern)) {
      if (getLayer(pattern) == 1) {
        if (validHitFilter(pattern)) {
          return true;
        }
      }
    }
  }
  return false;
}
bool HitPattern::hasValidHitInFirstPixelEndcap ( ) const

Definition at line 298 of file HitPattern.cc.

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

                                                     {
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pixelEndcapHitFilter(pattern)) {
      if (getLayer(pattern) == 1) {
        if (validHitFilter(pattern)) {
          return true;
        }
      }
    }
  }
  return false;
}
int HitPattern::innermostMuonStationWithAnyHits ( ) const

Definition at line 1280 of file HitPattern.cc.

References innermostMuonStationWithHits().

int HitPattern::innermostMuonStationWithBadHits ( ) const

Definition at line 1279 of file HitPattern.cc.

References innermostMuonStationWithHits().

int HitPattern::innermostMuonStationWithHits ( int  hitType) const

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

Definition at line 1250 of file HitPattern.cc.

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

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

                                                              {
  int ret = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    if (muonHitFilter(pattern) &&
        (hitType == -1 || int(getHitType(pattern)) == hitType)) {
        int stat = getMuonStation(pattern);
        if (ret == 0 || stat < ret) ret = stat;
    }
  }
  return ret;
}
int HitPattern::innermostMuonStationWithValidHits ( ) const

Definition at line 1278 of file HitPattern.cc.

References innermostMuonStationWithHits().

uint32_t HitPattern::isStereo ( DetId  i) [static, private]

Definition at line 1186 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 set().

{
     switch (i.det()) {
     case DetId::Tracker:
          switch (i.subdetId()) {
          case PixelSubdetector::PixelBarrel:
          case PixelSubdetector::PixelEndcap:
               return 0;
          case StripSubdetector::TIB:
          {
               TIBDetId id = i;
               return id.isStereo();
          }
          case StripSubdetector::TID:
          {
               TIDDetId id = i;
               return id.isStereo();
          }
          case StripSubdetector::TOB:
          {
               TOBDetId id = i;
               return id.isStereo();
          }
          case StripSubdetector::TEC:
          {
               TECDetId id = i;
               return id.isStereo();
          }
          default:
               return 0;
          }
          break;
     default:
          return 0;
     }
}
bool HitPattern::muonCSCHitFilter ( uint32_t  pattern) const

Definition at line 205 of file HitPattern.cc.

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

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

                                                        { 
  if (!muonHitFilter(pattern)) return false;
  uint32_t substructure = getSubStructure(pattern);
  if (substructure == (uint32_t) MuonSubdetId::CSC) return true; 
  return false;
}
bool HitPattern::muonDTHitFilter ( uint32_t  pattern) const
bool HitPattern::muonHitFilter ( uint32_t  pattern) const
bool HitPattern::muonRPCHitFilter ( uint32_t  pattern) const

Definition at line 212 of file HitPattern.cc.

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

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

                                                        { 
  if (!muonHitFilter(pattern)) return false;
  uint32_t substructure = getSubStructure(pattern);
  if (substructure == (uint32_t) MuonSubdetId::RPC) return true; 
  return false;
}
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 1223 of file HitPattern.cc.

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

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

                                                           {
  int stations[4] = { 0,0,0,0 };
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    if (muonHitFilter(pattern) &&
        (subdet  == 0  || int(getSubStructure(pattern)) == subdet) &&
        (hitType == -1 || int(getHitType(pattern))      == hitType)) {
        stations[getMuonStation(pattern)-1] = 1;
    }
  }
  return stations[0]+stations[1]+stations[2]+stations[3];
}
int HitPattern::muonStationsWithAnyHits ( ) const

Definition at line 1239 of file HitPattern.cc.

References muonStations().

{ return muonStations(0,-1); }
int HitPattern::muonStationsWithBadHits ( ) const

Definition at line 1238 of file HitPattern.cc.

References muonStations().

{ return muonStations(0, 3); }
int HitPattern::muonStationsWithValidHits ( ) const

Definition at line 1237 of file HitPattern.cc.

References muonStations().

{ return muonStations(0, 0); }
int HitPattern::numberOfBadHits ( ) const

Definition at line 682 of file HitPattern.cc.

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

                                      {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_3_HitFilter(pattern)) count++;
    }
  }
  return count;
}
int HitPattern::numberOfBadMuonCSCHits ( ) const

Definition at line 719 of file HitPattern.cc.

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

                                             {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_3_HitFilter(pattern)) {
        if (muonCSCHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfBadMuonDTHits ( ) const

Definition at line 706 of file HitPattern.cc.

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

                                            {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_3_HitFilter(pattern)) {
        if (muonDTHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfBadMuonHits ( ) const

Definition at line 693 of file HitPattern.cc.

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

                                          {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_3_HitFilter(pattern)) {
        if (muonHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfBadMuonRPCHits ( ) const

Definition at line 732 of file HitPattern.cc.

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

                                             {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_3_HitFilter(pattern)) {
        if (muonRPCHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfDTStationsWithBothViews ( ) const

Definition at line 1309 of file HitPattern.cc.

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

                                                      {
  int stations[4][2] = { {0,0}, {0,0}, {0,0}, {0,0} };
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    if (muonDTHitFilter(pattern) && validHitFilter(pattern)) {
        stations[getMuonStation(pattern)-1][getDTSuperLayer(pattern) == 2] = 1;
    }
  }
  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];
}
int HitPattern::numberOfDTStationsWithRPhiView ( ) const

Definition at line 1285 of file HitPattern.cc.

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

                                                     {
  int stations[4] = { 0,0,0,0 };
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    if (muonDTHitFilter(pattern) && validHitFilter(pattern) && getDTSuperLayer(pattern) != 2) {
        stations[getMuonStation(pattern)-1] = 1;
    }
  }
  return stations[0]+stations[1]+stations[2]+stations[3];
}
int HitPattern::numberOfDTStationsWithRZView ( ) const

Definition at line 1297 of file HitPattern.cc.

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

                                                   {
  int stations[4] = { 0,0,0,0 };
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    if (muonDTHitFilter(pattern) && validHitFilter(pattern) && getDTSuperLayer(pattern) == 2) {
        stations[getMuonStation(pattern)-1] = 1;
    }
  }
  return stations[0]+stations[1]+stations[2]+stations[3];
}
int HitPattern::numberOfHits ( void  ) const
int HitPattern::numberOfLostHits ( ) const

Definition at line 502 of file HitPattern.cc.

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

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

                                       {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) count++;
    }
  }
  return count;
}
int HitPattern::numberOfLostMuonCSCHits ( ) const

Definition at line 656 of file HitPattern.cc.

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

                                              {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (muonCSCHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostMuonDTHits ( ) const

Definition at line 643 of file HitPattern.cc.

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

                                             {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (muonDTHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostMuonHits ( ) const

Definition at line 526 of file HitPattern.cc.

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

                                           {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (muonHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostMuonRPCHits ( ) const

Definition at line 669 of file HitPattern.cc.

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

                                              {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (muonRPCHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostPixelBarrelHits ( ) const

Definition at line 552 of file HitPattern.cc.

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

                                                  {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (pixelBarrelHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostPixelEndcapHits ( ) const

Definition at line 565 of file HitPattern.cc.

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

                                                  {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (pixelEndcapHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostPixelHits ( ) const

Definition at line 539 of file HitPattern.cc.

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

                                            {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (pixelHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostStripHits ( ) const

Definition at line 578 of file HitPattern.cc.

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

                                            {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (stripHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostStripTECHits ( ) const

Definition at line 630 of file HitPattern.cc.

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

                                               {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (stripTECHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostStripTIBHits ( ) const

Definition at line 591 of file HitPattern.cc.

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

                                               {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (stripTIBHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostStripTIDHits ( ) const

Definition at line 604 of file HitPattern.cc.

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

                                               {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (stripTIDHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostStripTOBHits ( ) const

Definition at line 617 of file HitPattern.cc.

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

                                               {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (stripTOBHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfLostTrackerHits ( ) const

Definition at line 513 of file HitPattern.cc.

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

                                              {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (type_1_HitFilter(pattern)) {
        if (trackerHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidHits ( ) const

Definition at line 321 of file HitPattern.cc.

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

Referenced by HLTMuonDQMSource::analyze(), reco::TransientTrack::numberOfValidHits(), reco::TrackBase::numberOfValidHits(), reco::TrackSelector::operator()(), and TrackIPProducer::produce().

                                        {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    //if (pattern != 0) {
      if (validHitFilter(pattern)) count++;
    //}
  }
  return count;
}
int HitPattern::numberOfValidMuonCSCHits ( ) const

Definition at line 476 of file HitPattern.cc.

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

                                               {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (muonCSCHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidMuonDTHits ( ) const

Definition at line 463 of file HitPattern.cc.

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

                                              {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (muonDTHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidMuonHits ( ) const

Definition at line 346 of file HitPattern.cc.

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

Referenced by HLTMuonDQMSource::analyze(), MuScleFit::selGlobalMuon(), MuScleFitMuonSelector::selGlobalMuon(), and BPhysicsOniaDQM::selGlobalMuon().

                                            {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (muonHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidMuonRPCHits ( ) const

Definition at line 489 of file HitPattern.cc.

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

                                               {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (muonRPCHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidPixelBarrelHits ( ) const

Definition at line 372 of file HitPattern.cc.

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

Referenced by PatTrackAnalyzer::analyze(), and HLTTrackWithHits::filter().

                                                   {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (pixelBarrelHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidPixelEndcapHits ( ) const

Definition at line 385 of file HitPattern.cc.

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

Referenced by PatTrackAnalyzer::analyze(), and HLTTrackWithHits::filter().

                                                   {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (pixelEndcapHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidPixelHits ( ) const

Definition at line 359 of file HitPattern.cc.

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

Referenced by HLTTrackWithHits::filter(), reco::TrackSelector::operator()(), TrackIPProducer::produce(), PFAlgo::reconstructTrack(), and PFElectronAlgo::SetLinks().

                                             {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (pixelHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidStripHits ( ) const

Definition at line 398 of file HitPattern.cc.

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

                                             {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (stripHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidStripLayersWithMonoAndStereo ( ) const

Definition at line 745 of file HitPattern.cc.

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

Referenced by reco::modules::CosmicTrackSelector::select(), and reco::modules::AnalyticalTrackSelector::select().

{
     static const int nHits = (PatternSize * 32) / HitSize;
     bool hasMono[SubstrMask + 1][LayerMask + 1];
     //     printf("sizeof(hasMono) = %d\n", sizeof(hasMono));
     memset(hasMono, 0, sizeof(hasMono));
     bool hasStereo[SubstrMask + 1][LayerMask + 1];
     memset(hasStereo, 0, sizeof(hasStereo));
     // mark which layers have mono/stereo hits
     for (int i = 0; i < nHits; i++) {
          uint32_t pattern = getHitPattern(i);
          if (pattern != 0) {
               if (validHitFilter(pattern) && stripHitFilter(pattern)) {
                    switch (getSide(pattern)) {
                    case 0: // mono
                         hasMono[getSubStructure(pattern)][getLayer(pattern)] 
                              = true;
                         break;
                    case 1: // stereo
                         hasStereo[getSubStructure(pattern)][getLayer(pattern)]
                              = true;
                         break;
                    default:
                         break;
                    }
               }
          }
     }
     // count how many layers have mono and stereo hits
     int count = 0;
     for (int i = 0; i < SubstrMask + 1; ++i) 
          for (int j = 0; j < LayerMask + 1; ++j)
               if (hasMono[i][j] && hasStereo[i][j])
                    count++;
     return count;
}
int HitPattern::numberOfValidStripTECHits ( ) const

Definition at line 450 of file HitPattern.cc.

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

Referenced by PatTrackAnalyzer::analyze().

                                                {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (stripTECHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidStripTIBHits ( ) const

Definition at line 411 of file HitPattern.cc.

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

Referenced by PatTrackAnalyzer::analyze().

                                                {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (stripTIBHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidStripTIDHits ( ) const

Definition at line 424 of file HitPattern.cc.

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

Referenced by PatTrackAnalyzer::analyze().

                                                {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (stripTIDHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidStripTOBHits ( ) const

Definition at line 437 of file HitPattern.cc.

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

Referenced by PatTrackAnalyzer::analyze().

                                                {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (stripTOBHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::numberOfValidTrackerHits ( ) const

Definition at line 333 of file HitPattern.cc.

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

Referenced by HLTMuonDQMSource::analyze(), CSCSkim::doBFieldStudySelection(), and PFAlgo::reconstructTrack().

                                               {
  int count = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern != 0) {
      if (validHitFilter(pattern)) {
        if (trackerHitFilter(pattern)) count++;
      }
    }
  }
  return count;
}
int HitPattern::outermostMuonStationWithAnyHits ( ) const

Definition at line 1283 of file HitPattern.cc.

References outermostMuonStationWithHits().

int HitPattern::outermostMuonStationWithBadHits ( ) const

Definition at line 1282 of file HitPattern.cc.

References outermostMuonStationWithHits().

int HitPattern::outermostMuonStationWithHits ( int  hitType) const

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

Definition at line 1264 of file HitPattern.cc.

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

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

                                                              {
  int ret = 0;
  for (int i=0; i<(PatternSize * 32) / HitSize; i++) {
    uint32_t pattern = getHitPattern(i);
    if (pattern == 0) break;
    if (muonHitFilter(pattern) &&
        (hitType == -1 || int(getHitType(pattern)) == hitType)) {
        int stat = getMuonStation(pattern);
        if (ret == 0 || stat > ret) ret = stat;
    }
  }
  return ret;
}
int HitPattern::outermostMuonStationWithValidHits ( ) const

Definition at line 1281 of file HitPattern.cc.

References outermostMuonStationWithHits().

bool HitPattern::pixelBarrelHitFilter ( uint32_t  pattern) const
int HitPattern::pixelBarrelLayersNull ( ) const

Definition at line 1090 of file HitPattern.cc.

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

Referenced by pixelLayersNull().

                                            {
  int count = 0;
  uint32_t substr = PixelSubdetector::PixelBarrel;
  for (uint32_t layer=1; layer<=3; layer++) {
    if (getTrackerLayerCase(substr, layer) == 999999) count++;
  }
  return count;
}
int HitPattern::pixelBarrelLayersTotallyOffOrBad ( ) const

Definition at line 1019 of file HitPattern.cc.

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

Referenced by pixelLayersTotallyOffOrBad().

                                                       {
  int count = 0;
  uint32_t substr = PixelSubdetector::PixelBarrel;
  for (uint32_t layer=1; layer<=3; layer++) {
    if (getTrackerLayerCase(substr, layer) == 2) count++;
  }
  return count;
}
int HitPattern::pixelBarrelLayersWithMeasurement ( ) const

Definition at line 877 of file HitPattern.cc.

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

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

                                                       {
  int count = 0;
  uint32_t substr = PixelSubdetector::PixelBarrel;
  for (uint32_t layer=1; layer<=3; layer++) {
    if (getTrackerLayerCase(substr, layer) == 0) count++;
  }
  return count;
}
int HitPattern::pixelBarrelLayersWithoutMeasurement ( ) const

Definition at line 948 of file HitPattern.cc.

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

Referenced by pixelLayersWithoutMeasurement().

                                                          {
  int count = 0;
  uint32_t substr = PixelSubdetector::PixelBarrel;
  for (uint32_t layer=1; layer<=3; layer++) {
    if (getTrackerLayerCase(substr, layer) == 1) count++;
  }
  return count;
}
bool HitPattern::pixelEndcapHitFilter ( uint32_t  pattern) const
int HitPattern::pixelEndcapLayersNull ( ) const

Definition at line 1099 of file HitPattern.cc.

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

Referenced by pixelLayersNull().

                                            {
  int count = 0;
  uint32_t substr = PixelSubdetector::PixelEndcap;
  for (uint32_t layer=1; layer<=2; layer++) {
    if (getTrackerLayerCase(substr, layer) == 999999) count++;
  }
  return count;
}
int HitPattern::pixelEndcapLayersTotallyOffOrBad ( ) const

Definition at line 1028 of file HitPattern.cc.

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

Referenced by pixelLayersTotallyOffOrBad().

                                                       {
  int count = 0;
  uint32_t substr = PixelSubdetector::PixelEndcap;
  for (uint32_t layer=1; layer<=2; layer++) {
    if (getTrackerLayerCase(substr, layer) == 2) count++;
  }
  return count;
}
int HitPattern::pixelEndcapLayersWithMeasurement ( ) const

Definition at line 886 of file HitPattern.cc.

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

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

                                                       {
  int count = 0;
  uint32_t substr = PixelSubdetector::PixelEndcap;
  for (uint32_t layer=1; layer<=2; layer++) {
    if (getTrackerLayerCase(substr, layer) == 0) count++;
  }
  return count;
}
int HitPattern::pixelEndcapLayersWithoutMeasurement ( ) const

Definition at line 957 of file HitPattern.cc.

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

Referenced by pixelLayersWithoutMeasurement().

                                                          {
  int count = 0;
  uint32_t substr = PixelSubdetector::PixelEndcap;
  for (uint32_t layer=1; layer<=2; layer++) {
    if (getTrackerLayerCase(substr, layer) == 1) count++;
  }
  return count;
}
bool HitPattern::pixelHitFilter ( uint32_t  pattern) const
int HitPattern::pixelLayersNull ( ) const

Definition at line 1078 of file HitPattern.cc.

References pixelBarrelLayersNull(), and pixelEndcapLayersNull().

Referenced by trackerLayersNull().

int HitPattern::pixelLayersTotallyOffOrBad ( ) const
int HitPattern::pixelLayersWithMeasurement ( ) const
int HitPattern::pixelLayersWithoutMeasurement ( ) const
void HitPattern::print ( std::ostream &  stream = std::cout) const

Definition at line 1171 of file HitPattern.cc.

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

{
     stream << "HitPattern" << std::endl;
     for (int i = 0; i < numberOfHits(); i++) 
          printHitPattern(i, stream);
     std::ios_base::fmtflags flags = stream.flags();
     stream.setf ( std::ios_base::hex, std::ios_base::basefield );  
     stream.setf ( std::ios_base::showbase );               
     for (int i = 0; i < numberOfHits(); i++) {
          uint32_t pattern = getHitPattern(i);
          stream << pattern << std::endl;
     }
     stream.flags(flags);
}
void HitPattern::printHitPattern ( int  position,
std::ostream &  stream 
) const

Definition at line 1144 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(), IsolatedTracksNxN::printTrack(), and IsolatedTracksCone::printTrack().

{
     uint32_t pattern = getHitPattern(position);
     stream << "\t";
     if (muonHitFilter(pattern))
          stream << "muon";
     if (trackerHitFilter(pattern))
          stream << "tracker";
     stream << "\tsubstructure " << getSubStructure(pattern);
     if (muonHitFilter(pattern)) {
         stream << "\tstation " << getMuonStation(pattern);
         if (muonDTHitFilter(pattern)) { 
            stream << "\tdt superlayer " << getDTSuperLayer(pattern); 
         } else if (muonCSCHitFilter(pattern)) { 
            stream << "\tcsc ring " << getCSCRing(pattern); 
         } else if (muonRPCHitFilter(pattern)) {
            stream << "\trpc " << (getRPCregion(pattern) ? "endcaps" : "barrel") << ", layer " << getRPCLayer(pattern); 
         } else {
            stream << "(UNKNOWN Muon SubStructure!) \tsubsubstructure " << getSubStructure(pattern);
         }
     } else {
         stream << "\tlayer " << getLayer(pattern);
     }
     stream << "\thit type " << getHitType(pattern);
     stream << std::endl;
}
int HitPattern::rpcStationsWithAnyHits ( ) const

Definition at line 1248 of file HitPattern.cc.

References muonStations().

{ return muonStations(3,-1); }
int HitPattern::rpcStationsWithBadHits ( ) const

Definition at line 1247 of file HitPattern.cc.

References muonStations().

{ return muonStations(3, 3); }
int HitPattern::rpcStationsWithValidHits ( ) const

Definition at line 1246 of file HitPattern.cc.

References muonStations().

{ return muonStations(3, 0); }
void reco::HitPattern::set ( const TrackingRecHitRef ref,
unsigned int  i 
) [inline, private]

Definition at line 343 of file HitPattern.h.

References i.

{ set(* ref, i); }
template<typename I >
void reco::HitPattern::set ( const I &  begin,
const I &  end 
) [inline]

Definition at line 138 of file HitPattern.h.

References begin, cmsDriverOptions::counter, end, hitPattern_, HitSize, Exhume::I, i, and PatternSize.

Referenced by reco::TrackBase::setHitPattern(), reco::TrackBase::setTrackerExpectedHitsInner(), and reco::TrackBase::setTrackerExpectedHitsOuter().

                                             {
      for (int i=0; i<PatternSize; i++) hitPattern_[i] = 0;
      unsigned int counter = 0;
      for (I hit=begin; hit!=end && counter<32*PatternSize/HitSize;
           hit++, counter++)
        set(*hit, counter);
    }
void HitPattern::set ( const TrackingRecHit hit,
unsigned int  i 
)

Definition at line 14 of file HitPattern.cc.

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

                                                               {
  // ignore the rec hit if the number of hit is larger than the max
  if (i >= 32 * PatternSize / HitSize) return;

  // get rec hit det id and rec hit type
  DetId id = hit.geographicalId();
  uint32_t detid = id.det();
  uint32_t hitType = (uint32_t) hit.getType();

  // init pattern of this hit to 0
  uint32_t pattern = 0;

  // adding tracker/muon detector bit
  pattern += ((detid)&SubDetectorMask)<<SubDetectorOffset;
  
  // adding substructure (PXB,PXF,TIB,TID,TOB,TEC, or DT,CSC,RPC) bits 
  uint32_t subdet = id.subdetId();
  pattern += ((subdet)&SubstrMask)<<SubstrOffset;
  
  // adding layer/disk/wheel bits
  uint32_t layer = 0;
  if (detid == DetId::Tracker) {
    if (subdet == PixelSubdetector::PixelBarrel) 
      layer = PXBDetId(id).layer();
    else if (subdet == PixelSubdetector::PixelEndcap)
      layer = PXFDetId(id).disk();
    else if (subdet == StripSubdetector::TIB)
      layer = TIBDetId(id).layer();
    else if (subdet == StripSubdetector::TID)
      layer = TIDDetId(id).wheel();
    else if (subdet == StripSubdetector::TOB)
      layer = TOBDetId(id).layer();
    else if (subdet == StripSubdetector::TEC)
      layer = TECDetId(id).wheel();
  } else if (detid == DetId::Muon) {
    if (subdet == (uint32_t) MuonSubdetId::DT) 
      layer = ((DTLayerId(id.rawId()).station()-1)<<2) + (DTLayerId(id.rawId()).superLayer()-1);
    else if (subdet == (uint32_t) MuonSubdetId::CSC)
      layer = ((CSCDetId(id.rawId()).station()-1)<<2) +  (CSCDetId(id.rawId()).ring()-1);
    else if (subdet == (uint32_t) MuonSubdetId::RPC) {
      RPCDetId rpcid(id.rawId());
      layer = ((rpcid.station()-1)<<2) + abs(rpcid.region());
      if (rpcid.station() <= 2) layer += 2*(rpcid.layer()-1);
    }
  }
  pattern += (layer&LayerMask)<<LayerOffset;

  // adding mono/stereo bit
  uint32_t side = 0;
  if (detid == DetId::Tracker) {
       side = isStereo(id);
  } else if (detid == DetId::Muon) {
       side = 0;
  }
  pattern += (side&SideMask)<<SideOffset;

  // adding hit type bits
  pattern += (hitType&HitTypeMask)<<HitTypeOffset;

  // set pattern for i-th hit
  setHitPattern(i, pattern);
}
void HitPattern::setHitPattern ( int  position,
uint32_t  pattern 
) [private]

Definition at line 77 of file HitPattern.cc.

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

Referenced by set().

                                                             {
  int offset = position * HitSize;
  for (int i=0; i<HitSize; i++) {
    int pos = offset + i;
    uint32_t bit = (pattern >> i) & 0x1;
    hitPattern_[pos / 32] += bit << ((offset + i) % 32); 
  }
}
bool HitPattern::stripHitFilter ( uint32_t  pattern) const
int HitPattern::stripLayersNull ( ) const
int HitPattern::stripLayersTotallyOffOrBad ( ) const
int HitPattern::stripLayersWithMeasurement ( ) const
int HitPattern::stripLayersWithoutMeasurement ( ) const
bool HitPattern::stripTECHitFilter ( uint32_t  pattern) const

Definition at line 191 of file HitPattern.cc.

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

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

                                                         { 
  if (!trackerHitFilter(pattern)) return false;
  uint32_t substructure = getSubStructure(pattern);
  if (substructure == StripSubdetector::TEC) return true; 
  return false;
}
int HitPattern::stripTECLayersNull ( ) const

Definition at line 1135 of file HitPattern.cc.

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

Referenced by stripLayersNull().

                                         {
  int count = 0;
  uint32_t substr = StripSubdetector::TEC;
  for (uint32_t layer=1; layer<=9; layer++) {
    if (getTrackerLayerCase(substr, layer) == 999999) count++;
  }
  return count;
}
int HitPattern::stripTECLayersTotallyOffOrBad ( ) const

Definition at line 1064 of file HitPattern.cc.

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

Referenced by stripLayersTotallyOffOrBad().

                                                    {
  int count = 0;
  uint32_t substr = StripSubdetector::TEC;
  for (uint32_t layer=1; layer<=9; layer++) {
    if (getTrackerLayerCase(substr, layer) == 2) count++;
  }
  return count;
}
int HitPattern::stripTECLayersWithMeasurement ( ) const

Definition at line 922 of file HitPattern.cc.

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

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

                                                    {
  int count = 0;
  uint32_t substr = StripSubdetector::TEC;
  for (uint32_t layer=1; layer<=9; layer++) {
    if (getTrackerLayerCase(substr, layer) == 0) count++;
  }
  return count;
}
int HitPattern::stripTECLayersWithoutMeasurement ( ) const

Definition at line 993 of file HitPattern.cc.

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

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

                                                       {
  int count = 0;
  uint32_t substr = StripSubdetector::TEC;
  for (uint32_t layer=1; layer<=9; layer++) {
    if (getTrackerLayerCase(substr, layer) == 1) count++;
  }
  return count;
}
bool HitPattern::stripTIBHitFilter ( uint32_t  pattern) const
int HitPattern::stripTIBLayersNull ( ) const

Definition at line 1108 of file HitPattern.cc.

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

Referenced by stripLayersNull().

                                         {
  int count = 0;
  uint32_t substr = StripSubdetector::TIB;
  for (uint32_t layer=1; layer<=4; layer++) {
    if (getTrackerLayerCase(substr, layer) == 999999) count++;
  }
  return count;
}
int HitPattern::stripTIBLayersTotallyOffOrBad ( ) const

Definition at line 1037 of file HitPattern.cc.

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

Referenced by stripLayersTotallyOffOrBad().

                                                    {
  int count = 0;
  uint32_t substr = StripSubdetector::TIB;
  for (uint32_t layer=1; layer<=4; layer++) {
    if (getTrackerLayerCase(substr, layer) == 2) count++;
  }
  return count;
}
int HitPattern::stripTIBLayersWithMeasurement ( ) const

Definition at line 895 of file HitPattern.cc.

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

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

                                                    {
  int count = 0;
  uint32_t substr = StripSubdetector::TIB;
  for (uint32_t layer=1; layer<=4; layer++) {
    if (getTrackerLayerCase(substr, layer) == 0) count++;
  }
  return count;
}
int HitPattern::stripTIBLayersWithoutMeasurement ( ) const

Definition at line 966 of file HitPattern.cc.

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

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

                                                       {
  int count = 0;
  uint32_t substr = StripSubdetector::TIB;
  for (uint32_t layer=1; layer<=4; layer++) {
    if (getTrackerLayerCase(substr, layer) == 1) count++;
  }
  return count;
}
bool HitPattern::stripTIDHitFilter ( uint32_t  pattern) const
int HitPattern::stripTIDLayersNull ( ) const

Definition at line 1117 of file HitPattern.cc.

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

Referenced by stripLayersNull().

                                         {
  int count = 0;
  uint32_t substr = StripSubdetector::TID;
  for (uint32_t layer=1; layer<=3; layer++) {
    if (getTrackerLayerCase(substr, layer) == 999999) count++;
  }
  return count;
}
int HitPattern::stripTIDLayersTotallyOffOrBad ( ) const

Definition at line 1046 of file HitPattern.cc.

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

Referenced by stripLayersTotallyOffOrBad().

                                                    {
  int count = 0;
  uint32_t substr = StripSubdetector::TID;
  for (uint32_t layer=1; layer<=3; layer++) {
    if (getTrackerLayerCase(substr, layer) == 2) count++;
  }
  return count;
}
int HitPattern::stripTIDLayersWithMeasurement ( ) const

Definition at line 904 of file HitPattern.cc.

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

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

                                                    {
  int count = 0;
  uint32_t substr = StripSubdetector::TID;
  for (uint32_t layer=1; layer<=3; layer++) {
    if (getTrackerLayerCase(substr, layer) == 0) count++;
  }
  return count;
}
int HitPattern::stripTIDLayersWithoutMeasurement ( ) const

Definition at line 975 of file HitPattern.cc.

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

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

                                                       {
  int count = 0;
  uint32_t substr = StripSubdetector::TID;
  for (uint32_t layer=1; layer<=3; layer++) {
    if (getTrackerLayerCase(substr, layer) == 1) count++;
  }
  return count;
}
bool HitPattern::stripTOBHitFilter ( uint32_t  pattern) const

Definition at line 184 of file HitPattern.cc.

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

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

                                                         { 
  if (!trackerHitFilter(pattern)) return false;
  uint32_t substructure = getSubStructure(pattern);
  if (substructure == StripSubdetector::TOB) return true; 
  return false;
}
int HitPattern::stripTOBLayersNull ( ) const

Definition at line 1126 of file HitPattern.cc.

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

Referenced by stripLayersNull().

                                         {
  int count = 0;
  uint32_t substr = StripSubdetector::TOB;
  for (uint32_t layer=1; layer<=6; layer++) {
    if (getTrackerLayerCase(substr, layer) == 999999) count++;
  }
  return count;
}
int HitPattern::stripTOBLayersTotallyOffOrBad ( ) const

Definition at line 1055 of file HitPattern.cc.

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

Referenced by stripLayersTotallyOffOrBad().

                                                    {
  int count = 0;
  uint32_t substr = StripSubdetector::TOB;
  for (uint32_t layer=1; layer<=6; layer++) {
    if (getTrackerLayerCase(substr, layer) == 2) count++;
  }
  return count;
}
int HitPattern::stripTOBLayersWithMeasurement ( ) const

Definition at line 913 of file HitPattern.cc.

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

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

                                                    {
  int count = 0;
  uint32_t substr = StripSubdetector::TOB;
  for (uint32_t layer=1; layer<=6; layer++) {
    if (getTrackerLayerCase(substr, layer) == 0) count++;
  }
  return count;
}
int HitPattern::stripTOBLayersWithoutMeasurement ( ) const

Definition at line 984 of file HitPattern.cc.

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

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

                                                       {
  int count = 0;
  uint32_t substr = StripSubdetector::TOB;
  for (uint32_t layer=1; layer<=6; layer++) {
    if (getTrackerLayerCase(substr, layer) == 1) count++;
  }
  return count;
}
bool HitPattern::trackerHitFilter ( uint32_t  pattern) const
int HitPattern::trackerLayersNull ( ) const

Definition at line 1073 of file HitPattern.cc.

References pixelLayersNull(), and stripLayersNull().

                                        {
  return pixelLayersNull() + 
         stripLayersNull();
}
int HitPattern::trackerLayersTotallyOffOrBad ( ) const
int HitPattern::trackerLayersWithMeasurement ( ) const
int HitPattern::trackerLayersWithoutMeasurement ( ) const
bool HitPattern::type_1_HitFilter ( uint32_t  pattern) const
bool HitPattern::type_2_HitFilter ( uint32_t  pattern) const

Definition at line 274 of file HitPattern.cc.

References getHitType().

                                                        {
  if (getHitType(pattern) == 2) return true; 
  return false;
}
bool HitPattern::type_3_HitFilter ( uint32_t  pattern) const

Definition at line 279 of file HitPattern.cc.

References getHitType().

Referenced by numberOfBadHits(), numberOfBadMuonCSCHits(), numberOfBadMuonDTHits(), numberOfBadMuonHits(), and numberOfBadMuonRPCHits().

                                                        {
  if (getHitType(pattern) == 3) return true; 
  return false;
}
bool HitPattern::validHitFilter ( uint32_t  pattern) const

Member Data Documentation

Definition at line 337 of file HitPattern.h.

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

const unsigned short reco::HitPattern::HitSize = 11 [static, private]
const unsigned short reco::HitPattern::HitTypeMask = 0x3 [static, private]

Definition at line 334 of file HitPattern.h.

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

const unsigned short reco::HitPattern::HitTypeOffset = 0 [static, private]

Definition at line 333 of file HitPattern.h.

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

const unsigned short reco::HitPattern::LayerMask = 0xF [static, private]
const unsigned short reco::HitPattern::LayerOffset = 3 [static, private]
const unsigned short reco::HitPattern::PatternSize = 25 [static, private]
const unsigned short reco::HitPattern::SideMask = 0x1 [static, private]

Definition at line 330 of file HitPattern.h.

Referenced by getSide(), and set().

const unsigned short reco::HitPattern::SideOffset = 2 [static, private]

Definition at line 329 of file HitPattern.h.

Referenced by getSide(), and set().

const unsigned short reco::HitPattern::SubDetectorMask = 0x1 [static, private]
const unsigned short reco::HitPattern::SubDetectorOffset = 10 [static, private]
const unsigned short reco::HitPattern::SubstrMask = 0x7 [static, private]
const unsigned short reco::HitPattern::SubstrOffset = 7 [static, private]

Definition at line 321 of file HitPattern.h.

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