#include <DataFormats/TrackReco/interface/HitPattern.h>
Definition at line 118 of file HitPattern.h.
anonymous enum |
reco::HitPattern::HitPattern | ( | ) | [inline] |
Definition at line 124 of file HitPattern.h.
References hitPattern_, i, and PatternSize.
00124 { for (int i=0; i<PatternSize; i++) hitPattern_[i] = 0; }
reco::HitPattern::HitPattern | ( | const I & | begin, | |
const I & | end | |||
) | [inline] |
reco::HitPattern::HitPattern | ( | const C & | c | ) | [inline] |
uint32_t HitPattern::getHitPattern | ( | int | position | ) | const |
Definition at line 83 of file HitPattern.cc.
References hitPattern_, HitSize, i, and offset.
Referenced by getTrackerLayerCase(), getTrackerMonoStereo(), hasValidHitInFirstPixelBarrel(), index_to_hitpattern(), 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(), reco::TrackResiduals::print(), print(), and printHitPattern().
00083 { 00084 /* Note: you are not taking a consecutive sequence of HitSize bits starting from position*HitSize 00085 as the bit order in the words are reversed. 00086 e.g. if position = 0 you take the lowest 10 bits of the first word. 00087 00088 I hope this can clarify what is the memory layout of such thing 00089 00090 straight 01234567890123456789012345678901 | 23456789012345678901234567890123 | 4567 00091 (global) 0 1 2 3 | 3 4 5 6 | 6 00092 words [--------------0---------------] | [--------------1---------------] | [--- 00093 word 01234567890123456789012345678901 | 01234567890123456789012345678901 | 0123 00094 (str) 0 1 2 3 | 0 1 2 3 | 0 00095 [--------------0---------------] | [--------------1---------------] | [--- 00096 word 10987654321098765432109876543210 | 10987654321098765432109876543210 | 1098 00097 (rev) 32 21 10 0 | 32 21 10 0 | 32 00098 reverse 10987654321098765432109876543210 | 32109876543210987654321098765432 | 5432 00099 32 21 10 0 | 6 65 54 43 3 9 00100 00101 ugly enough, but it's not my fault, I was not even in CMS at that time [gpetrucc] */ 00102 //#define OLD_HITPATTERN_LOGIC 00103 #if defined(OLD_HITPATTERN_LOGIC) 00104 int offset = position * HitSize; 00105 uint32_t pattern = 0; 00106 for (int i=0; i<HitSize; i++) { 00107 int pos = offset + i; 00108 uint32_t word = hitPattern_[pos / 32]; 00109 uint32_t bit = (word >> (pos%32)) & 0x1; 00110 pattern += bit << i; 00111 } 00112 #endif 00113 #define GIO_HITPATTERN_LOGIC 00114 #if defined(GIO_HITPATTERN_LOGIC) 00115 uint16_t bitEndOffset = (position+1) * HitSize; 00116 uint8_t secondWord = (bitEndOffset >> 5); 00117 uint8_t secondWordBits = bitEndOffset & (32-1); // that is, bitEndOffset % 32 00118 if (secondWordBits >= HitSize) { // full block is in this word 00119 uint8_t lowBitsToTrash = secondWordBits - HitSize; 00120 uint32_t myResult = (hitPattern_[secondWord] >> lowBitsToTrash) & ((1 << HitSize)-1); 00121 #if defined(OLD_HITPATTERN_LOGIC) 00122 if (pattern != myResult) { abort(); } 00123 #endif //both 00124 return myResult; 00125 } else { 00126 uint8_t firstWordBits = HitSize - secondWordBits; 00127 uint32_t firstWordBlock = hitPattern_[secondWord-1] >> (32-firstWordBits); 00128 uint32_t secondWordBlock = hitPattern_[secondWord] & ((1<<secondWordBits)-1); 00129 uint32_t myResult = firstWordBlock + (secondWordBlock << firstWordBits); 00130 #if defined(OLD_HITPATTERN_LOGIC) 00131 if (pattern != myResult) { abort(); } 00132 #endif //both 00133 return myResult; 00134 } 00135 #endif 00136 #ifndef GIO_HITPATTERN_LOGIC 00137 return pattern; 00138 #endif 00139 }
uint32_t HitPattern::getHitType | ( | uint32_t | pattern | ) | const |
Definition at line 250 of file HitPattern.cc.
References HitTypeMask, and HitTypeOffset.
Referenced by printHitPattern(), type_1_HitFilter(), type_2_HitFilter(), type_3_HitFilter(), and validHitFilter().
00250 { 00251 if (pattern == 0) return 999999; 00252 return ((pattern>>HitTypeOffset) & HitTypeMask); 00253 }
uint32_t HitPattern::getLayer | ( | uint32_t | pattern | ) | const |
Definition at line 239 of file HitPattern.cc.
References LayerMask, and LayerOffset.
Referenced by hasValidHitInFirstPixelBarrel(), numberOfValidStripLayersWithMonoAndStereo(), and printHitPattern().
00239 { 00240 if (pattern == 0) return 999999; 00241 return ((pattern>>LayerOffset) & LayerMask); 00242 }
uint32_t HitPattern::getSide | ( | uint32_t | pattern | ) | [static] |
Definition at line 244 of file HitPattern.cc.
References SideMask, and SideOffset.
Referenced by getTrackerMonoStereo(), and numberOfValidStripLayersWithMonoAndStereo().
00245 { 00246 if (pattern == 0) return 999999; 00247 return (pattern >> SideOffset) & SideMask; 00248 }
uint32_t HitPattern::getSubStructure | ( | uint32_t | pattern | ) | const |
Definition at line 153 of file HitPattern.cc.
References SubstrMask, and SubstrOffset.
Referenced by muonCSCHitFilter(), muonDTHitFilter(), muonRPCHitFilter(), numberOfValidStripLayersWithMonoAndStereo(), pixelBarrelHitFilter(), pixelEndcapHitFilter(), pixelHitFilter(), printHitPattern(), stripHitFilter(), stripTECHitFilter(), stripTIBHitFilter(), stripTIDHitFilter(), and stripTOBHitFilter().
00153 { 00154 if (pattern == 0) return 999999; 00155 return ((pattern >> SubstrOffset) & SubstrMask); 00156 }
uint32_t HitPattern::getTrackerLayerCase | ( | uint32_t | substr, | |
uint32_t | layer | |||
) | const |
Definition at line 696 of file HitPattern.cc.
References getHitPattern(), HitSize, HitTypeMask, HitTypeOffset, i, LayerMask, LayerOffset, 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().
00697 { 00698 uint32_t tk_substr_layer = 00699 (1 << SubDetectorOffset) + 00700 ((substr & SubstrMask) << SubstrOffset) + 00701 ((layer & LayerMask) << LayerOffset); 00702 00703 uint32_t mask = 00704 (SubDetectorMask << SubDetectorOffset) + 00705 (SubstrMask << SubstrOffset) + 00706 (LayerMask << LayerOffset); 00707 00708 // crossed 00709 // layer case 0: valid + (missing, off, bad) ==> with measurement 00710 // layer case 1: missing + (off, bad) ==> without measurement 00711 // layer case 2: off, bad ==> totally off or bad, cannot say much 00712 // not crossed 00713 // layer case 999999: track outside acceptance or in gap ==> null 00714 00715 uint32_t layerCase = 999999; 00716 for (int i=0; i<(PatternSize * 32) / HitSize; i++) 00717 { 00718 uint32_t pattern = getHitPattern(i); 00719 if (pattern == 0) break; 00720 if ((pattern & mask) == tk_substr_layer) 00721 { 00722 uint32_t hitType = (pattern >> HitTypeOffset) & HitTypeMask; // 0,1,2,3 00723 if (hitType < layerCase) 00724 { 00725 layerCase = hitType; 00726 if (hitType == 3) layerCase = 2; 00727 } 00728 } 00729 } 00730 return layerCase; 00731 }
uint32_t HitPattern::getTrackerMonoStereo | ( | uint32_t | substr, | |
uint32_t | layer | |||
) | const |
Definition at line 733 of file HitPattern.cc.
References getHitPattern(), getSide(), HitSize, HitTypeMask, HitTypeOffset, i, LayerMask, LayerOffset, MONO, PatternSize, STEREO, SubDetectorMask, SubDetectorOffset, SubstrMask, and SubstrOffset.
00734 { 00735 uint32_t tk_substr_layer = 00736 (1 << SubDetectorOffset) + 00737 ((substr & SubstrMask) << SubstrOffset) + 00738 ((layer & LayerMask) << LayerOffset); 00739 00740 uint32_t mask = 00741 (SubDetectorMask << SubDetectorOffset) + 00742 (SubstrMask << SubstrOffset) + 00743 (LayerMask << LayerOffset); 00744 00745 // 0: neither a valid mono nor a valid stereo hit 00746 // MONO: valid mono hit 00747 // STEREO: valid stereo hit 00748 // MONO | STEREO: both 00749 uint32_t monoStereo = 0; 00750 for (int i=0; i<(PatternSize * 32) / HitSize; i++) 00751 { 00752 uint32_t pattern = getHitPattern(i); 00753 if (pattern == 0) break; 00754 if ((pattern & mask) == tk_substr_layer) 00755 { 00756 uint32_t hitType = (pattern >> HitTypeOffset) & HitTypeMask; // 0,1,2,3 00757 if (hitType == 0) { // valid hit 00758 switch (getSide(pattern)) { 00759 case 0: // mono 00760 monoStereo |= MONO; 00761 break; 00762 case 1: // stereo 00763 monoStereo |= STEREO; 00764 break; 00765 default: 00766 break; 00767 } 00768 } 00769 } 00770 } 00771 return monoStereo; 00772 }
bool HitPattern::hasValidHitInFirstPixelBarrel | ( | ) | const |
Definition at line 275 of file HitPattern.cc.
References getHitPattern(), getLayer(), HitSize, i, PatternSize, pixelBarrelHitFilter(), and validHitFilter().
00275 { 00276 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00277 uint32_t pattern = getHitPattern(i); 00278 if (pixelBarrelHitFilter(pattern)) { 00279 if (getLayer(pattern) == 1) { 00280 if (validHitFilter(pattern)) { 00281 return true; 00282 } 00283 } 00284 } 00285 } 00286 return false; 00287 }
uint32_t HitPattern::isStereo | ( | DetId | i | ) | [static, private] |
Definition at line 1087 of file HitPattern.cc.
References DetId::det(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, and DetId::Tracker.
Referenced by set().
01088 { 01089 switch (i.det()) { 01090 case DetId::Tracker: 01091 switch (i.subdetId()) { 01092 case PixelSubdetector::PixelBarrel: 01093 case PixelSubdetector::PixelEndcap: 01094 return 0; 01095 case StripSubdetector::TIB: 01096 { 01097 TIBDetId id = i; 01098 return id.isStereo(); 01099 } 01100 case StripSubdetector::TID: 01101 { 01102 TIDDetId id = i; 01103 return id.isStereo(); 01104 } 01105 case StripSubdetector::TOB: 01106 { 01107 TOBDetId id = i; 01108 return id.isStereo(); 01109 } 01110 case StripSubdetector::TEC: 01111 { 01112 TECDetId id = i; 01113 return id.isStereo(); 01114 } 01115 default: 01116 return 0; 01117 } 01118 break; 01119 default: 01120 return 0; 01121 } 01122 }
bool HitPattern::muonCSCHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 225 of file HitPattern.cc.
References MuonSubdetId::CSC, getSubStructure(), and muonHitFilter().
Referenced by numberOfLostMuonCSCHits(), and numberOfValidMuonCSCHits().
00225 { 00226 if (!muonHitFilter(pattern)) return false; 00227 uint32_t substructure = getSubStructure(pattern); 00228 if (substructure == (uint32_t) MuonSubdetId::CSC) return true; 00229 return false; 00230 }
bool HitPattern::muonDTHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 218 of file HitPattern.cc.
References MuonSubdetId::DT, getSubStructure(), and muonHitFilter().
Referenced by numberOfLostMuonDTHits(), and numberOfValidMuonDTHits().
00218 { 00219 if (!muonHitFilter(pattern)) return false; 00220 uint32_t substructure = getSubStructure(pattern); 00221 if (substructure == (uint32_t) MuonSubdetId::DT) return true; 00222 return false; 00223 }
bool HitPattern::muonHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 147 of file HitPattern.cc.
References SubDetectorMask, and SubDetectorOffset.
Referenced by muonCSCHitFilter(), muonDTHitFilter(), muonRPCHitFilter(), numberOfLostMuonHits(), numberOfValidMuonHits(), and printHitPattern().
00147 { 00148 if (pattern == 0) return false; 00149 if (((pattern>>SubDetectorOffset) & SubDetectorMask) == 0) return true; 00150 return false; 00151 }
bool HitPattern::muonRPCHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 232 of file HitPattern.cc.
References getSubStructure(), muonHitFilter(), and MuonSubdetId::RPC.
Referenced by numberOfLostMuonRPCHits(), and numberOfValidMuonRPCHits().
00232 { 00233 if (!muonHitFilter(pattern)) return false; 00234 uint32_t substructure = getSubStructure(pattern); 00235 if (substructure == (uint32_t) MuonSubdetId::RPC) return true; 00236 return false; 00237 }
Definition at line 289 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, and PatternSize.
Referenced by index_to_hitpattern(), reco::TrackResiduals::print(), and print().
00289 { 00290 int count = 0; 00291 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00292 uint32_t pattern = getHitPattern(i); 00293 if (pattern != 0) count++; 00294 } 00295 return count; 00296 }
int HitPattern::numberOfLostHits | ( | ) | const |
Definition at line 479 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, and type_1_HitFilter().
Referenced by reco::TransientTrack::numberOfLostHits(), and reco::TrackBase::numberOfLostHits().
00479 { 00480 int count = 0; 00481 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00482 uint32_t pattern = getHitPattern(i); 00483 if (pattern != 0) { 00484 if (type_1_HitFilter(pattern)) count++; 00485 } 00486 } 00487 return count; 00488 }
int HitPattern::numberOfLostMuonCSCHits | ( | ) | const |
Definition at line 633 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, muonCSCHitFilter(), PatternSize, and type_1_HitFilter().
00633 { 00634 int count = 0; 00635 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00636 uint32_t pattern = getHitPattern(i); 00637 if (pattern != 0) { 00638 if (type_1_HitFilter(pattern)) { 00639 if (muonCSCHitFilter(pattern)) count++; 00640 } 00641 } 00642 } 00643 return count; 00644 }
int HitPattern::numberOfLostMuonDTHits | ( | ) | const |
Definition at line 620 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, muonDTHitFilter(), PatternSize, and type_1_HitFilter().
00620 { 00621 int count = 0; 00622 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00623 uint32_t pattern = getHitPattern(i); 00624 if (pattern != 0) { 00625 if (type_1_HitFilter(pattern)) { 00626 if (muonDTHitFilter(pattern)) count++; 00627 } 00628 } 00629 } 00630 return count; 00631 }
int HitPattern::numberOfLostMuonHits | ( | ) | const |
Definition at line 503 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, muonHitFilter(), PatternSize, and type_1_HitFilter().
00503 { 00504 int count = 0; 00505 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00506 uint32_t pattern = getHitPattern(i); 00507 if (pattern != 0) { 00508 if (type_1_HitFilter(pattern)) { 00509 if (muonHitFilter(pattern)) count++; 00510 } 00511 } 00512 } 00513 return count; 00514 }
int HitPattern::numberOfLostMuonRPCHits | ( | ) | const |
Definition at line 646 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, muonRPCHitFilter(), PatternSize, and type_1_HitFilter().
00646 { 00647 int count = 0; 00648 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00649 uint32_t pattern = getHitPattern(i); 00650 if (pattern != 0) { 00651 if (type_1_HitFilter(pattern)) { 00652 if (muonRPCHitFilter(pattern)) count++; 00653 } 00654 } 00655 } 00656 return count; 00657 }
int HitPattern::numberOfLostPixelBarrelHits | ( | ) | const |
Definition at line 529 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, pixelBarrelHitFilter(), and type_1_HitFilter().
00529 { 00530 int count = 0; 00531 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00532 uint32_t pattern = getHitPattern(i); 00533 if (pattern != 0) { 00534 if (type_1_HitFilter(pattern)) { 00535 if (pixelBarrelHitFilter(pattern)) count++; 00536 } 00537 } 00538 } 00539 return count; 00540 }
int HitPattern::numberOfLostPixelEndcapHits | ( | ) | const |
Definition at line 542 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, pixelEndcapHitFilter(), and type_1_HitFilter().
00542 { 00543 int count = 0; 00544 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00545 uint32_t pattern = getHitPattern(i); 00546 if (pattern != 0) { 00547 if (type_1_HitFilter(pattern)) { 00548 if (pixelEndcapHitFilter(pattern)) count++; 00549 } 00550 } 00551 } 00552 return count; 00553 }
int HitPattern::numberOfLostPixelHits | ( | ) | const |
Definition at line 516 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, pixelHitFilter(), and type_1_HitFilter().
00516 { 00517 int count = 0; 00518 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00519 uint32_t pattern = getHitPattern(i); 00520 if (pattern != 0) { 00521 if (type_1_HitFilter(pattern)) { 00522 if (pixelHitFilter(pattern)) count++; 00523 } 00524 } 00525 } 00526 return count; 00527 }
int HitPattern::numberOfLostStripHits | ( | ) | const |
Definition at line 555 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripHitFilter(), and type_1_HitFilter().
00555 { 00556 int count = 0; 00557 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00558 uint32_t pattern = getHitPattern(i); 00559 if (pattern != 0) { 00560 if (type_1_HitFilter(pattern)) { 00561 if (stripHitFilter(pattern)) count++; 00562 } 00563 } 00564 } 00565 return count; 00566 }
int HitPattern::numberOfLostStripTECHits | ( | ) | const |
Definition at line 607 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripTECHitFilter(), and type_1_HitFilter().
00607 { 00608 int count = 0; 00609 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00610 uint32_t pattern = getHitPattern(i); 00611 if (pattern != 0) { 00612 if (type_1_HitFilter(pattern)) { 00613 if (stripTECHitFilter(pattern)) count++; 00614 } 00615 } 00616 } 00617 return count; 00618 }
int HitPattern::numberOfLostStripTIBHits | ( | ) | const |
Definition at line 568 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripTIBHitFilter(), and type_1_HitFilter().
00568 { 00569 int count = 0; 00570 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00571 uint32_t pattern = getHitPattern(i); 00572 if (pattern != 0) { 00573 if (type_1_HitFilter(pattern)) { 00574 if (stripTIBHitFilter(pattern)) count++; 00575 } 00576 } 00577 } 00578 return count; 00579 }
int HitPattern::numberOfLostStripTIDHits | ( | ) | const |
Definition at line 581 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripTIDHitFilter(), and type_1_HitFilter().
00581 { 00582 int count = 0; 00583 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00584 uint32_t pattern = getHitPattern(i); 00585 if (pattern != 0) { 00586 if (type_1_HitFilter(pattern)) { 00587 if (stripTIDHitFilter(pattern)) count++; 00588 } 00589 } 00590 } 00591 return count; 00592 }
int HitPattern::numberOfLostStripTOBHits | ( | ) | const |
Definition at line 594 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripTOBHitFilter(), and type_1_HitFilter().
00594 { 00595 int count = 0; 00596 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00597 uint32_t pattern = getHitPattern(i); 00598 if (pattern != 0) { 00599 if (type_1_HitFilter(pattern)) { 00600 if (stripTOBHitFilter(pattern)) count++; 00601 } 00602 } 00603 } 00604 return count; 00605 }
int HitPattern::numberOfLostTrackerHits | ( | ) | const |
Definition at line 490 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, trackerHitFilter(), and type_1_HitFilter().
00490 { 00491 int count = 0; 00492 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00493 uint32_t pattern = getHitPattern(i); 00494 if (pattern != 0) { 00495 if (type_1_HitFilter(pattern)) { 00496 if (trackerHitFilter(pattern)) count++; 00497 } 00498 } 00499 } 00500 return count; 00501 }
int HitPattern::numberOfValidHits | ( | ) | const |
Definition at line 298 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, and validHitFilter().
Referenced by reco::TransientTrack::numberOfValidHits(), reco::TrackBase::numberOfValidHits(), reco::TrackSelector::operator()(), and TrackIPProducer::produce().
00298 { 00299 int count = 0; 00300 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00301 uint32_t pattern = getHitPattern(i); 00302 if (pattern == 0) break; 00303 //if (pattern != 0) { 00304 if (validHitFilter(pattern)) count++; 00305 //} 00306 } 00307 return count; 00308 }
int HitPattern::numberOfValidMuonCSCHits | ( | ) | const |
Definition at line 453 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, muonCSCHitFilter(), PatternSize, and validHitFilter().
00453 { 00454 int count = 0; 00455 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00456 uint32_t pattern = getHitPattern(i); 00457 if (pattern != 0) { 00458 if (validHitFilter(pattern)) { 00459 if (muonCSCHitFilter(pattern)) count++; 00460 } 00461 } 00462 } 00463 return count; 00464 }
int HitPattern::numberOfValidMuonDTHits | ( | ) | const |
Definition at line 440 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, muonDTHitFilter(), PatternSize, and validHitFilter().
00440 { 00441 int count = 0; 00442 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00443 uint32_t pattern = getHitPattern(i); 00444 if (pattern != 0) { 00445 if (validHitFilter(pattern)) { 00446 if (muonDTHitFilter(pattern)) count++; 00447 } 00448 } 00449 } 00450 return count; 00451 }
int HitPattern::numberOfValidMuonHits | ( | ) | const |
Definition at line 323 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, muonHitFilter(), PatternSize, and validHitFilter().
00323 { 00324 int count = 0; 00325 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00326 uint32_t pattern = getHitPattern(i); 00327 if (pattern != 0) { 00328 if (validHitFilter(pattern)) { 00329 if (muonHitFilter(pattern)) count++; 00330 } 00331 } 00332 } 00333 return count; 00334 }
int HitPattern::numberOfValidMuonRPCHits | ( | ) | const |
Definition at line 466 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, muonRPCHitFilter(), PatternSize, and validHitFilter().
00466 { 00467 int count = 0; 00468 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00469 uint32_t pattern = getHitPattern(i); 00470 if (pattern != 0) { 00471 if (validHitFilter(pattern)) { 00472 if (muonRPCHitFilter(pattern)) count++; 00473 } 00474 } 00475 } 00476 return count; 00477 }
int HitPattern::numberOfValidPixelBarrelHits | ( | ) | const |
Definition at line 349 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, pixelBarrelHitFilter(), and validHitFilter().
Referenced by HLTTrackWithHits::filter().
00349 { 00350 int count = 0; 00351 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00352 uint32_t pattern = getHitPattern(i); 00353 if (pattern != 0) { 00354 if (validHitFilter(pattern)) { 00355 if (pixelBarrelHitFilter(pattern)) count++; 00356 } 00357 } 00358 } 00359 return count; 00360 }
int HitPattern::numberOfValidPixelEndcapHits | ( | ) | const |
Definition at line 362 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, pixelEndcapHitFilter(), and validHitFilter().
Referenced by HLTTrackWithHits::filter().
00362 { 00363 int count = 0; 00364 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00365 uint32_t pattern = getHitPattern(i); 00366 if (pattern != 0) { 00367 if (validHitFilter(pattern)) { 00368 if (pixelEndcapHitFilter(pattern)) count++; 00369 } 00370 } 00371 } 00372 return count; 00373 }
int HitPattern::numberOfValidPixelHits | ( | ) | const |
Definition at line 336 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, pixelHitFilter(), and validHitFilter().
Referenced by HLTTrackWithHits::filter(), reco::TrackSelector::operator()(), and TrackIPProducer::produce().
00336 { 00337 int count = 0; 00338 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00339 uint32_t pattern = getHitPattern(i); 00340 if (pattern != 0) { 00341 if (validHitFilter(pattern)) { 00342 if (pixelHitFilter(pattern)) count++; 00343 } 00344 } 00345 } 00346 return count; 00347 }
int HitPattern::numberOfValidStripHits | ( | ) | const |
Definition at line 375 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripHitFilter(), and validHitFilter().
00375 { 00376 int count = 0; 00377 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00378 uint32_t pattern = getHitPattern(i); 00379 if (pattern != 0) { 00380 if (validHitFilter(pattern)) { 00381 if (stripHitFilter(pattern)) count++; 00382 } 00383 } 00384 } 00385 return count; 00386 }
int HitPattern::numberOfValidStripLayersWithMonoAndStereo | ( | ) | const |
Definition at line 659 of file HitPattern.cc.
References count, getHitPattern(), getLayer(), getSide(), getSubStructure(), HitSize, i, j, LayerMask, PatternSize, stripHitFilter(), SubstrMask, and validHitFilter().
00660 { 00661 static const int nHits = (PatternSize * 32) / HitSize; 00662 bool hasMono[SubstrMask + 1][LayerMask + 1]; 00663 // printf("sizeof(hasMono) = %d\n", sizeof(hasMono)); 00664 memset(hasMono, 0, sizeof(hasMono)); 00665 bool hasStereo[SubstrMask + 1][LayerMask + 1]; 00666 memset(hasStereo, 0, sizeof(hasStereo)); 00667 // mark which layers have mono/stereo hits 00668 for (int i = 0; i < nHits; i++) { 00669 uint32_t pattern = getHitPattern(i); 00670 if (pattern != 0) { 00671 if (validHitFilter(pattern) && stripHitFilter(pattern)) { 00672 switch (getSide(pattern)) { 00673 case 0: // mono 00674 hasMono[getSubStructure(pattern)][getLayer(pattern)] 00675 = true; 00676 break; 00677 case 1: // stereo 00678 hasStereo[getSubStructure(pattern)][getLayer(pattern)] 00679 = true; 00680 break; 00681 default: 00682 break; 00683 } 00684 } 00685 } 00686 } 00687 // count how many layers have mono and stereo hits 00688 int count = 0; 00689 for (int i = 0; i < SubstrMask + 1; ++i) 00690 for (int j = 0; j < LayerMask + 1; ++j) 00691 if (hasMono[i][j] && hasStereo[i][j]) 00692 count++; 00693 return count; 00694 }
int HitPattern::numberOfValidStripTECHits | ( | ) | const |
Definition at line 427 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripTECHitFilter(), and validHitFilter().
00427 { 00428 int count = 0; 00429 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00430 uint32_t pattern = getHitPattern(i); 00431 if (pattern != 0) { 00432 if (validHitFilter(pattern)) { 00433 if (stripTECHitFilter(pattern)) count++; 00434 } 00435 } 00436 } 00437 return count; 00438 }
int HitPattern::numberOfValidStripTIBHits | ( | ) | const |
Definition at line 388 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripTIBHitFilter(), and validHitFilter().
00388 { 00389 int count = 0; 00390 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00391 uint32_t pattern = getHitPattern(i); 00392 if (pattern != 0) { 00393 if (validHitFilter(pattern)) { 00394 if (stripTIBHitFilter(pattern)) count++; 00395 } 00396 } 00397 } 00398 return count; 00399 }
int HitPattern::numberOfValidStripTIDHits | ( | ) | const |
Definition at line 401 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripTIDHitFilter(), and validHitFilter().
00401 { 00402 int count = 0; 00403 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00404 uint32_t pattern = getHitPattern(i); 00405 if (pattern != 0) { 00406 if (validHitFilter(pattern)) { 00407 if (stripTIDHitFilter(pattern)) count++; 00408 } 00409 } 00410 } 00411 return count; 00412 }
int HitPattern::numberOfValidStripTOBHits | ( | ) | const |
Definition at line 414 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, stripTOBHitFilter(), and validHitFilter().
00414 { 00415 int count = 0; 00416 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00417 uint32_t pattern = getHitPattern(i); 00418 if (pattern != 0) { 00419 if (validHitFilter(pattern)) { 00420 if (stripTOBHitFilter(pattern)) count++; 00421 } 00422 } 00423 } 00424 return count; 00425 }
int HitPattern::numberOfValidTrackerHits | ( | ) | const |
Definition at line 310 of file HitPattern.cc.
References count, getHitPattern(), HitSize, i, PatternSize, trackerHitFilter(), and validHitFilter().
Referenced by CSCSkim::doBFieldStudySelection().
00310 { 00311 int count = 0; 00312 for (int i=0; i<(PatternSize * 32) / HitSize; i++) { 00313 uint32_t pattern = getHitPattern(i); 00314 if (pattern != 0) { 00315 if (validHitFilter(pattern)) { 00316 if (trackerHitFilter(pattern)) count++; 00317 } 00318 } 00319 } 00320 return count; 00321 }
bool HitPattern::pixelBarrelHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 166 of file HitPattern.cc.
References getSubStructure(), PixelSubdetector::PixelBarrel, and trackerHitFilter().
Referenced by hasValidHitInFirstPixelBarrel(), numberOfLostPixelBarrelHits(), and numberOfValidPixelBarrelHits().
00166 { 00167 if (!trackerHitFilter(pattern)) return false; 00168 uint32_t substructure = getSubStructure(pattern); 00169 if (substructure == PixelSubdetector::PixelBarrel) return true; 00170 return false; 00171 }
int HitPattern::pixelBarrelLayersNull | ( | ) | const |
Definition at line 1004 of file HitPattern.cc.
References count, getTrackerLayerCase(), and PixelSubdetector::PixelBarrel.
Referenced by pixelLayersNull().
01004 { 01005 int count = 0; 01006 uint32_t substr = PixelSubdetector::PixelBarrel; 01007 for (uint32_t layer=1; layer<=3; layer++) { 01008 if (getTrackerLayerCase(substr, layer) == 999999) count++; 01009 } 01010 return count; 01011 }
int HitPattern::pixelBarrelLayersTotallyOffOrBad | ( | ) | const |
Definition at line 933 of file HitPattern.cc.
References count, getTrackerLayerCase(), and PixelSubdetector::PixelBarrel.
Referenced by pixelLayersTotallyOffOrBad().
00933 { 00934 int count = 0; 00935 uint32_t substr = PixelSubdetector::PixelBarrel; 00936 for (uint32_t layer=1; layer<=3; layer++) { 00937 if (getTrackerLayerCase(substr, layer) == 2) count++; 00938 } 00939 return count; 00940 }
int HitPattern::pixelBarrelLayersWithMeasurement | ( | ) | const |
Definition at line 791 of file HitPattern.cc.
References count, getTrackerLayerCase(), and PixelSubdetector::PixelBarrel.
Referenced by pixelLayersWithMeasurement().
00791 { 00792 int count = 0; 00793 uint32_t substr = PixelSubdetector::PixelBarrel; 00794 for (uint32_t layer=1; layer<=3; layer++) { 00795 if (getTrackerLayerCase(substr, layer) == 0) count++; 00796 } 00797 return count; 00798 }
int HitPattern::pixelBarrelLayersWithoutMeasurement | ( | ) | const |
Definition at line 862 of file HitPattern.cc.
References count, getTrackerLayerCase(), and PixelSubdetector::PixelBarrel.
Referenced by pixelLayersWithoutMeasurement().
00862 { 00863 int count = 0; 00864 uint32_t substr = PixelSubdetector::PixelBarrel; 00865 for (uint32_t layer=1; layer<=3; layer++) { 00866 if (getTrackerLayerCase(substr, layer) == 1) count++; 00867 } 00868 return count; 00869 }
bool HitPattern::pixelEndcapHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 173 of file HitPattern.cc.
References getSubStructure(), PixelSubdetector::PixelEndcap, and trackerHitFilter().
Referenced by numberOfLostPixelEndcapHits(), and numberOfValidPixelEndcapHits().
00173 { 00174 if (!trackerHitFilter(pattern)) return false; 00175 uint32_t substructure = getSubStructure(pattern); 00176 if (substructure == PixelSubdetector::PixelEndcap) return true; 00177 return false; 00178 }
int HitPattern::pixelEndcapLayersNull | ( | ) | const |
Definition at line 1013 of file HitPattern.cc.
References count, getTrackerLayerCase(), and PixelSubdetector::PixelEndcap.
Referenced by pixelLayersNull().
01013 { 01014 int count = 0; 01015 uint32_t substr = PixelSubdetector::PixelEndcap; 01016 for (uint32_t layer=1; layer<=2; layer++) { 01017 if (getTrackerLayerCase(substr, layer) == 999999) count++; 01018 } 01019 return count; 01020 }
int HitPattern::pixelEndcapLayersTotallyOffOrBad | ( | ) | const |
Definition at line 942 of file HitPattern.cc.
References count, getTrackerLayerCase(), and PixelSubdetector::PixelEndcap.
Referenced by pixelLayersTotallyOffOrBad().
00942 { 00943 int count = 0; 00944 uint32_t substr = PixelSubdetector::PixelEndcap; 00945 for (uint32_t layer=1; layer<=2; layer++) { 00946 if (getTrackerLayerCase(substr, layer) == 2) count++; 00947 } 00948 return count; 00949 }
int HitPattern::pixelEndcapLayersWithMeasurement | ( | ) | const |
Definition at line 800 of file HitPattern.cc.
References count, getTrackerLayerCase(), and PixelSubdetector::PixelEndcap.
Referenced by pixelLayersWithMeasurement().
00800 { 00801 int count = 0; 00802 uint32_t substr = PixelSubdetector::PixelEndcap; 00803 for (uint32_t layer=1; layer<=2; layer++) { 00804 if (getTrackerLayerCase(substr, layer) == 0) count++; 00805 } 00806 return count; 00807 }
int HitPattern::pixelEndcapLayersWithoutMeasurement | ( | ) | const |
Definition at line 871 of file HitPattern.cc.
References count, getTrackerLayerCase(), and PixelSubdetector::PixelEndcap.
Referenced by pixelLayersWithoutMeasurement().
00871 { 00872 int count = 0; 00873 uint32_t substr = PixelSubdetector::PixelEndcap; 00874 for (uint32_t layer=1; layer<=2; layer++) { 00875 if (getTrackerLayerCase(substr, layer) == 1) count++; 00876 } 00877 return count; 00878 }
bool HitPattern::pixelHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 158 of file HitPattern.cc.
References getSubStructure(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, and trackerHitFilter().
Referenced by numberOfLostPixelHits(), and numberOfValidPixelHits().
00158 { 00159 if (!trackerHitFilter(pattern)) return false; 00160 uint32_t substructure = getSubStructure(pattern); 00161 if (substructure == PixelSubdetector::PixelBarrel || 00162 substructure == PixelSubdetector::PixelEndcap) return true; 00163 return false; 00164 }
int HitPattern::pixelLayersNull | ( | ) | const |
Definition at line 992 of file HitPattern.cc.
References pixelBarrelLayersNull(), and pixelEndcapLayersNull().
Referenced by trackerLayersNull().
00992 { 00993 return pixelBarrelLayersNull() + 00994 pixelEndcapLayersNull(); 00995 }
int HitPattern::pixelLayersTotallyOffOrBad | ( | ) | const |
Definition at line 921 of file HitPattern.cc.
References pixelBarrelLayersTotallyOffOrBad(), and pixelEndcapLayersTotallyOffOrBad().
Referenced by trackerLayersTotallyOffOrBad().
00921 { 00922 return pixelBarrelLayersTotallyOffOrBad() + 00923 pixelEndcapLayersTotallyOffOrBad(); 00924 }
int HitPattern::pixelLayersWithMeasurement | ( | ) | const |
Definition at line 779 of file HitPattern.cc.
References pixelBarrelLayersWithMeasurement(), and pixelEndcapLayersWithMeasurement().
Referenced by trackerLayersWithMeasurement().
00779 { 00780 return pixelBarrelLayersWithMeasurement() + 00781 pixelEndcapLayersWithMeasurement(); 00782 }
int HitPattern::pixelLayersWithoutMeasurement | ( | ) | const |
Definition at line 850 of file HitPattern.cc.
References pixelBarrelLayersWithoutMeasurement(), and pixelEndcapLayersWithoutMeasurement().
Referenced by trackerLayersWithoutMeasurement().
00850 { 00851 return pixelBarrelLayersWithoutMeasurement() + 00852 pixelEndcapLayersWithoutMeasurement(); 00853 }
void HitPattern::print | ( | std::ostream & | stream = std::cout |
) | const |
Definition at line 1072 of file HitPattern.cc.
References lat::endl(), flags, getHitPattern(), i, numberOfHits(), and printHitPattern().
01073 { 01074 stream << "HitPattern" << std::endl; 01075 for (int i = 0; i < numberOfHits(); i++) 01076 printHitPattern(i, stream); 01077 std::ios_base::fmtflags flags = stream.flags(); 01078 stream.setf ( std::ios_base::hex, std::ios_base::basefield ); 01079 stream.setf ( std::ios_base::showbase ); 01080 for (int i = 0; i < numberOfHits(); i++) { 01081 uint32_t pattern = getHitPattern(i); 01082 stream << pattern << std::endl; 01083 } 01084 stream.flags(flags); 01085 }
Definition at line 1058 of file HitPattern.cc.
References lat::endl(), getHitPattern(), getHitType(), getLayer(), getSubStructure(), muonHitFilter(), and trackerHitFilter().
Referenced by print().
01059 { 01060 uint32_t pattern = getHitPattern(position); 01061 stream << "\t"; 01062 if (muonHitFilter(pattern)) 01063 stream << "muon"; 01064 if (trackerHitFilter(pattern)) 01065 stream << "tracker"; 01066 stream << "\tsubstructure " << getSubStructure(pattern); 01067 stream << "\tlayer " << getLayer(pattern); 01068 stream << "\thit type " << getHitType(pattern); 01069 stream << std::endl; 01070 }
void reco::HitPattern::set | ( | const TrackingRecHitRef & | ref, | |
unsigned int | i | |||
) | [inline, private] |
void HitPattern::set | ( | const TrackingRecHit & | hit, | |
unsigned int | i | |||
) |
Definition at line 14 of file HitPattern.cc.
References MuonSubdetId::CSC, DetId::det(), MuonSubdetId::DT, TrackingRecHit::geographicalId(), TrackingRecHit::getType(), HitSize, HitTypeMask, HitTypeOffset, isStereo(), LayerMask, LayerOffset, DetId::Muon, PatternSize, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, MuonSubdetId::RPC, setHitPattern(), SideMask, SideOffset, SubDetectorMask, SubDetectorOffset, SubstrMask, SubstrOffset, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, and DetId::Tracker.
00014 { 00015 // ignore the rec hit if the number of hit is larger than the max 00016 if (i >= 32 * PatternSize / HitSize) return; 00017 00018 // get rec hit det id and rec hit type 00019 DetId id = hit.geographicalId(); 00020 uint32_t detid = id.det(); 00021 uint32_t hitType = (uint32_t) hit.getType(); 00022 00023 // init pattern of this hit to 0 00024 uint32_t pattern = 0; 00025 00026 // adding tracker/muon detector bit 00027 pattern += ((detid)&SubDetectorMask)<<SubDetectorOffset; 00028 00029 // adding substructure (PXB,PXF,TIB,TID,TOB,TEC, or DT,CSC,RPC) bits 00030 uint32_t subdet = id.subdetId(); 00031 pattern += ((subdet)&SubstrMask)<<SubstrOffset; 00032 00033 // adding layer/disk/wheel bits 00034 uint32_t layer = 0; 00035 if (detid == DetId::Tracker) { 00036 if (subdet == PixelSubdetector::PixelBarrel) 00037 layer = PXBDetId(id).layer(); 00038 else if (subdet == PixelSubdetector::PixelEndcap) 00039 layer = PXFDetId(id).disk(); 00040 else if (subdet == StripSubdetector::TIB) 00041 layer = TIBDetId(id).layer(); 00042 else if (subdet == StripSubdetector::TID) 00043 layer = TIDDetId(id).wheel(); 00044 else if (subdet == StripSubdetector::TOB) 00045 layer = TOBDetId(id).layer(); 00046 else if (subdet == StripSubdetector::TEC) 00047 layer = TECDetId(id).wheel(); 00048 } else if (detid == DetId::Muon) { 00049 if (subdet == (uint32_t) MuonSubdetId::DT) 00050 layer = DTLayerId(id.rawId()).layer(); 00051 else if (subdet == (uint32_t) MuonSubdetId::CSC) 00052 layer = CSCDetId(id.rawId()).layer(); 00053 else if (subdet == (uint32_t) MuonSubdetId::RPC) 00054 layer = RPCDetId(id.rawId()).layer(); 00055 } 00056 pattern += (layer&LayerMask)<<LayerOffset; 00057 00058 // adding mono/stereo bit 00059 uint32_t side = 0; 00060 if (detid == DetId::Tracker) { 00061 side = isStereo(id); 00062 } else if (detid == DetId::Muon) { 00063 side = 0; 00064 } 00065 pattern += (side&SideMask)<<SideOffset; 00066 00067 // adding hit type bits 00068 pattern += (hitType&HitTypeMask)<<HitTypeOffset; 00069 00070 // set pattern for i-th hit 00071 setHitPattern(i, pattern); 00072 }
void reco::HitPattern::set | ( | const I & | begin, | |
const I & | end | |||
) | [inline] |
Definition at line 138 of file HitPattern.h.
References begin, counter(), end, hitPattern_, HitSize, I, i, and PatternSize.
Referenced by reco::TrackBase::setHitPattern().
00138 { 00139 for (int i=0; i<PatternSize; i++) hitPattern_[i] = 0; 00140 unsigned int counter = 0; 00141 for (I hit=begin; hit!=end && counter<32*PatternSize/HitSize; 00142 hit++, counter++) 00143 set(*hit, counter); 00144 }
Definition at line 74 of file HitPattern.cc.
References hitPattern_, HitSize, i, and offset.
Referenced by set().
00074 { 00075 int offset = position * HitSize; 00076 for (int i=0; i<HitSize; i++) { 00077 int pos = offset + i; 00078 uint32_t bit = (pattern >> i) & 0x1; 00079 hitPattern_[pos / 32] += bit << ((offset + i) % 32); 00080 } 00081 }
bool HitPattern::stripHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 180 of file HitPattern.cc.
References getSubStructure(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, and trackerHitFilter().
Referenced by numberOfLostStripHits(), numberOfValidStripHits(), and numberOfValidStripLayersWithMonoAndStereo().
00180 { 00181 if (!trackerHitFilter(pattern)) return false; 00182 uint32_t substructure = getSubStructure(pattern); 00183 if (substructure == StripSubdetector::TIB || 00184 substructure == StripSubdetector::TID || 00185 substructure == StripSubdetector::TOB || 00186 substructure == StripSubdetector::TEC) return true; 00187 return false; 00188 }
int HitPattern::stripLayersNull | ( | ) | const |
Definition at line 997 of file HitPattern.cc.
References stripTECLayersNull(), stripTIBLayersNull(), stripTIDLayersNull(), and stripTOBLayersNull().
Referenced by trackerLayersNull().
00997 { 00998 return stripTIBLayersNull() + 00999 stripTIDLayersNull() + 01000 stripTOBLayersNull() + 01001 stripTECLayersNull(); 01002 }
int HitPattern::stripLayersTotallyOffOrBad | ( | ) | const |
Definition at line 926 of file HitPattern.cc.
References stripTECLayersTotallyOffOrBad(), stripTIBLayersTotallyOffOrBad(), stripTIDLayersTotallyOffOrBad(), and stripTOBLayersTotallyOffOrBad().
Referenced by trackerLayersTotallyOffOrBad().
00926 { 00927 return stripTIBLayersTotallyOffOrBad() + 00928 stripTIDLayersTotallyOffOrBad() + 00929 stripTOBLayersTotallyOffOrBad() + 00930 stripTECLayersTotallyOffOrBad(); 00931 }
int HitPattern::stripLayersWithMeasurement | ( | ) | const |
Definition at line 784 of file HitPattern.cc.
References stripTECLayersWithMeasurement(), stripTIBLayersWithMeasurement(), stripTIDLayersWithMeasurement(), and stripTOBLayersWithMeasurement().
Referenced by trackerLayersWithMeasurement().
00784 { 00785 return stripTIBLayersWithMeasurement() + 00786 stripTIDLayersWithMeasurement() + 00787 stripTOBLayersWithMeasurement() + 00788 stripTECLayersWithMeasurement(); 00789 }
int HitPattern::stripLayersWithoutMeasurement | ( | ) | const |
Definition at line 855 of file HitPattern.cc.
References stripTECLayersWithoutMeasurement(), stripTIBLayersWithoutMeasurement(), stripTIDLayersWithoutMeasurement(), and stripTOBLayersWithoutMeasurement().
Referenced by trackerLayersWithoutMeasurement().
00855 { 00856 return stripTIBLayersWithoutMeasurement() + 00857 stripTIDLayersWithoutMeasurement() + 00858 stripTOBLayersWithoutMeasurement() + 00859 stripTECLayersWithoutMeasurement(); 00860 }
bool HitPattern::stripTECHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 211 of file HitPattern.cc.
References getSubStructure(), StripSubdetector::TEC, and trackerHitFilter().
Referenced by numberOfLostStripTECHits(), and numberOfValidStripTECHits().
00211 { 00212 if (!trackerHitFilter(pattern)) return false; 00213 uint32_t substructure = getSubStructure(pattern); 00214 if (substructure == StripSubdetector::TEC) return true; 00215 return false; 00216 }
int HitPattern::stripTECLayersNull | ( | ) | const |
Definition at line 1049 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TEC.
Referenced by stripLayersNull().
01049 { 01050 int count = 0; 01051 uint32_t substr = StripSubdetector::TEC; 01052 for (uint32_t layer=1; layer<=9; layer++) { 01053 if (getTrackerLayerCase(substr, layer) == 999999) count++; 01054 } 01055 return count; 01056 }
int HitPattern::stripTECLayersTotallyOffOrBad | ( | ) | const |
Definition at line 978 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TEC.
Referenced by stripLayersTotallyOffOrBad().
00978 { 00979 int count = 0; 00980 uint32_t substr = StripSubdetector::TEC; 00981 for (uint32_t layer=1; layer<=9; layer++) { 00982 if (getTrackerLayerCase(substr, layer) == 2) count++; 00983 } 00984 return count; 00985 }
int HitPattern::stripTECLayersWithMeasurement | ( | ) | const |
Definition at line 836 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TEC.
Referenced by stripLayersWithMeasurement().
00836 { 00837 int count = 0; 00838 uint32_t substr = StripSubdetector::TEC; 00839 for (uint32_t layer=1; layer<=9; layer++) { 00840 if (getTrackerLayerCase(substr, layer) == 0) count++; 00841 } 00842 return count; 00843 }
int HitPattern::stripTECLayersWithoutMeasurement | ( | ) | const |
Definition at line 907 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TEC.
Referenced by stripLayersWithoutMeasurement().
00907 { 00908 int count = 0; 00909 uint32_t substr = StripSubdetector::TEC; 00910 for (uint32_t layer=1; layer<=9; layer++) { 00911 if (getTrackerLayerCase(substr, layer) == 1) count++; 00912 } 00913 return count; 00914 }
bool HitPattern::stripTIBHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 190 of file HitPattern.cc.
References getSubStructure(), StripSubdetector::TIB, and trackerHitFilter().
Referenced by numberOfLostStripTIBHits(), and numberOfValidStripTIBHits().
00190 { 00191 if (!trackerHitFilter(pattern)) return false; 00192 uint32_t substructure = getSubStructure(pattern); 00193 if (substructure == StripSubdetector::TIB) return true; 00194 return false; 00195 }
int HitPattern::stripTIBLayersNull | ( | ) | const |
Definition at line 1022 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TIB.
Referenced by stripLayersNull().
01022 { 01023 int count = 0; 01024 uint32_t substr = StripSubdetector::TIB; 01025 for (uint32_t layer=1; layer<=4; layer++) { 01026 if (getTrackerLayerCase(substr, layer) == 999999) count++; 01027 } 01028 return count; 01029 }
int HitPattern::stripTIBLayersTotallyOffOrBad | ( | ) | const |
Definition at line 951 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TIB.
Referenced by stripLayersTotallyOffOrBad().
00951 { 00952 int count = 0; 00953 uint32_t substr = StripSubdetector::TIB; 00954 for (uint32_t layer=1; layer<=4; layer++) { 00955 if (getTrackerLayerCase(substr, layer) == 2) count++; 00956 } 00957 return count; 00958 }
int HitPattern::stripTIBLayersWithMeasurement | ( | ) | const |
Definition at line 809 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TIB.
Referenced by stripLayersWithMeasurement().
00809 { 00810 int count = 0; 00811 uint32_t substr = StripSubdetector::TIB; 00812 for (uint32_t layer=1; layer<=4; layer++) { 00813 if (getTrackerLayerCase(substr, layer) == 0) count++; 00814 } 00815 return count; 00816 }
int HitPattern::stripTIBLayersWithoutMeasurement | ( | ) | const |
Definition at line 880 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TIB.
Referenced by stripLayersWithoutMeasurement().
00880 { 00881 int count = 0; 00882 uint32_t substr = StripSubdetector::TIB; 00883 for (uint32_t layer=1; layer<=4; layer++) { 00884 if (getTrackerLayerCase(substr, layer) == 1) count++; 00885 } 00886 return count; 00887 }
bool HitPattern::stripTIDHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 197 of file HitPattern.cc.
References getSubStructure(), StripSubdetector::TID, and trackerHitFilter().
Referenced by numberOfLostStripTIDHits(), and numberOfValidStripTIDHits().
00197 { 00198 if (!trackerHitFilter(pattern)) return false; 00199 uint32_t substructure = getSubStructure(pattern); 00200 if (substructure == StripSubdetector::TID) return true; 00201 return false; 00202 }
int HitPattern::stripTIDLayersNull | ( | ) | const |
Definition at line 1031 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TID.
Referenced by stripLayersNull().
01031 { 01032 int count = 0; 01033 uint32_t substr = StripSubdetector::TID; 01034 for (uint32_t layer=1; layer<=3; layer++) { 01035 if (getTrackerLayerCase(substr, layer) == 999999) count++; 01036 } 01037 return count; 01038 }
int HitPattern::stripTIDLayersTotallyOffOrBad | ( | ) | const |
Definition at line 960 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TID.
Referenced by stripLayersTotallyOffOrBad().
00960 { 00961 int count = 0; 00962 uint32_t substr = StripSubdetector::TID; 00963 for (uint32_t layer=1; layer<=3; layer++) { 00964 if (getTrackerLayerCase(substr, layer) == 2) count++; 00965 } 00966 return count; 00967 }
int HitPattern::stripTIDLayersWithMeasurement | ( | ) | const |
Definition at line 818 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TID.
Referenced by stripLayersWithMeasurement().
00818 { 00819 int count = 0; 00820 uint32_t substr = StripSubdetector::TID; 00821 for (uint32_t layer=1; layer<=3; layer++) { 00822 if (getTrackerLayerCase(substr, layer) == 0) count++; 00823 } 00824 return count; 00825 }
int HitPattern::stripTIDLayersWithoutMeasurement | ( | ) | const |
Definition at line 889 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TID.
Referenced by stripLayersWithoutMeasurement().
00889 { 00890 int count = 0; 00891 uint32_t substr = StripSubdetector::TID; 00892 for (uint32_t layer=1; layer<=3; layer++) { 00893 if (getTrackerLayerCase(substr, layer) == 1) count++; 00894 } 00895 return count; 00896 }
bool HitPattern::stripTOBHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 204 of file HitPattern.cc.
References getSubStructure(), StripSubdetector::TOB, and trackerHitFilter().
Referenced by numberOfLostStripTOBHits(), and numberOfValidStripTOBHits().
00204 { 00205 if (!trackerHitFilter(pattern)) return false; 00206 uint32_t substructure = getSubStructure(pattern); 00207 if (substructure == StripSubdetector::TOB) return true; 00208 return false; 00209 }
int HitPattern::stripTOBLayersNull | ( | ) | const |
Definition at line 1040 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TOB.
Referenced by stripLayersNull().
01040 { 01041 int count = 0; 01042 uint32_t substr = StripSubdetector::TOB; 01043 for (uint32_t layer=1; layer<=6; layer++) { 01044 if (getTrackerLayerCase(substr, layer) == 999999) count++; 01045 } 01046 return count; 01047 }
int HitPattern::stripTOBLayersTotallyOffOrBad | ( | ) | const |
Definition at line 969 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TOB.
Referenced by stripLayersTotallyOffOrBad().
00969 { 00970 int count = 0; 00971 uint32_t substr = StripSubdetector::TOB; 00972 for (uint32_t layer=1; layer<=6; layer++) { 00973 if (getTrackerLayerCase(substr, layer) == 2) count++; 00974 } 00975 return count; 00976 }
int HitPattern::stripTOBLayersWithMeasurement | ( | ) | const |
Definition at line 827 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TOB.
Referenced by stripLayersWithMeasurement().
00827 { 00828 int count = 0; 00829 uint32_t substr = StripSubdetector::TOB; 00830 for (uint32_t layer=1; layer<=6; layer++) { 00831 if (getTrackerLayerCase(substr, layer) == 0) count++; 00832 } 00833 return count; 00834 }
int HitPattern::stripTOBLayersWithoutMeasurement | ( | ) | const |
Definition at line 898 of file HitPattern.cc.
References count, getTrackerLayerCase(), and StripSubdetector::TOB.
Referenced by stripLayersWithoutMeasurement().
00898 { 00899 int count = 0; 00900 uint32_t substr = StripSubdetector::TOB; 00901 for (uint32_t layer=1; layer<=6; layer++) { 00902 if (getTrackerLayerCase(substr, layer) == 1) count++; 00903 } 00904 return count; 00905 }
bool HitPattern::trackerHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 141 of file HitPattern.cc.
References SubDetectorMask, and SubDetectorOffset.
Referenced by numberOfLostTrackerHits(), numberOfValidTrackerHits(), pixelBarrelHitFilter(), pixelEndcapHitFilter(), pixelHitFilter(), printHitPattern(), stripHitFilter(), stripTECHitFilter(), stripTIBHitFilter(), stripTIDHitFilter(), and stripTOBHitFilter().
00141 { 00142 if (pattern == 0) return false; 00143 if (((pattern>>SubDetectorOffset) & SubDetectorMask) == 1) return true; 00144 return false; 00145 }
int HitPattern::trackerLayersNull | ( | ) | const |
Definition at line 987 of file HitPattern.cc.
References pixelLayersNull(), and stripLayersNull().
00987 { 00988 return pixelLayersNull() + 00989 stripLayersNull(); 00990 }
int HitPattern::trackerLayersTotallyOffOrBad | ( | ) | const |
Definition at line 916 of file HitPattern.cc.
References pixelLayersTotallyOffOrBad(), and stripLayersTotallyOffOrBad().
00916 { 00917 return pixelLayersTotallyOffOrBad() + 00918 stripLayersTotallyOffOrBad(); 00919 }
int HitPattern::trackerLayersWithMeasurement | ( | ) | const |
Definition at line 774 of file HitPattern.cc.
References pixelLayersWithMeasurement(), and stripLayersWithMeasurement().
Referenced by reco::modules::TrackMultiSelector::select(), and reco::modules::AnalyticalTrackSelector::select().
00774 { 00775 return pixelLayersWithMeasurement() + 00776 stripLayersWithMeasurement(); 00777 }
int HitPattern::trackerLayersWithoutMeasurement | ( | ) | const |
Definition at line 845 of file HitPattern.cc.
References pixelLayersWithoutMeasurement(), and stripLayersWithoutMeasurement().
00845 { 00846 return pixelLayersWithoutMeasurement() + 00847 stripLayersWithoutMeasurement(); 00848 }
bool HitPattern::type_1_HitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 260 of file HitPattern.cc.
References getHitType().
Referenced by numberOfLostHits(), numberOfLostMuonCSCHits(), numberOfLostMuonDTHits(), numberOfLostMuonHits(), numberOfLostMuonRPCHits(), numberOfLostPixelBarrelHits(), numberOfLostPixelEndcapHits(), numberOfLostPixelHits(), numberOfLostStripHits(), numberOfLostStripTECHits(), numberOfLostStripTIBHits(), numberOfLostStripTIDHits(), numberOfLostStripTOBHits(), and numberOfLostTrackerHits().
00260 { 00261 if (getHitType(pattern) == 1) return true; 00262 return false; 00263 }
bool HitPattern::type_2_HitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 265 of file HitPattern.cc.
References getHitType().
00265 { 00266 if (getHitType(pattern) == 2) return true; 00267 return false; 00268 }
bool HitPattern::type_3_HitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 270 of file HitPattern.cc.
References getHitType().
00270 { 00271 if (getHitType(pattern) == 3) return true; 00272 return false; 00273 }
bool HitPattern::validHitFilter | ( | uint32_t | pattern | ) | const |
Definition at line 255 of file HitPattern.cc.
References getHitType().
Referenced by hasValidHitInFirstPixelBarrel(), index_to_hitpattern(), numberOfValidHits(), numberOfValidMuonCSCHits(), numberOfValidMuonDTHits(), numberOfValidMuonHits(), numberOfValidMuonRPCHits(), numberOfValidPixelBarrelHits(), numberOfValidPixelEndcapHits(), numberOfValidPixelHits(), numberOfValidStripHits(), numberOfValidStripLayersWithMonoAndStereo(), numberOfValidStripTECHits(), numberOfValidStripTIBHits(), numberOfValidStripTIDHits(), numberOfValidStripTOBHits(), numberOfValidTrackerHits(), and reco::TrackResiduals::print().
00255 { 00256 if (getHitType(pattern) == 0) return true; 00257 return false; 00258 }
uint32_t reco::HitPattern::hitPattern_[PatternSize] [private] |
Definition at line 286 of file HitPattern.h.
Referenced by getHitPattern(), HitPattern(), set(), and setHitPattern().
const unsigned short reco::HitPattern::HitSize = 11 [static, private] |
Definition at line 263 of file HitPattern.h.
Referenced by getHitPattern(), getTrackerLayerCase(), getTrackerMonoStereo(), hasValidHitInFirstPixelBarrel(), 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(), set(), and setHitPattern().
const unsigned short reco::HitPattern::HitTypeMask = 0x3 [static, private] |
Definition at line 283 of file HitPattern.h.
Referenced by getHitType(), getTrackerLayerCase(), getTrackerMonoStereo(), and set().
const unsigned short reco::HitPattern::HitTypeOffset = 0 [static, private] |
Definition at line 282 of file HitPattern.h.
Referenced by getHitType(), getTrackerLayerCase(), getTrackerMonoStereo(), and set().
const unsigned short reco::HitPattern::LayerMask = 0xF [static, private] |
Definition at line 275 of file HitPattern.h.
Referenced by getLayer(), getTrackerLayerCase(), getTrackerMonoStereo(), numberOfValidStripLayersWithMonoAndStereo(), and set().
const unsigned short reco::HitPattern::LayerOffset = 3 [static, private] |
Definition at line 274 of file HitPattern.h.
Referenced by getLayer(), getTrackerLayerCase(), getTrackerMonoStereo(), and set().
const unsigned short reco::HitPattern::PatternSize = 25 [static, private] |
Definition at line 260 of file HitPattern.h.
Referenced by getTrackerLayerCase(), getTrackerMonoStereo(), hasValidHitInFirstPixelBarrel(), HitPattern(), 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(), and set().
const unsigned short reco::HitPattern::SideMask = 0x1 [static, private] |
const unsigned short reco::HitPattern::SideOffset = 2 [static, private] |
const unsigned short reco::HitPattern::SubDetectorMask = 0x1 [static, private] |
Definition at line 267 of file HitPattern.h.
Referenced by getTrackerLayerCase(), getTrackerMonoStereo(), muonHitFilter(), set(), and trackerHitFilter().
const unsigned short reco::HitPattern::SubDetectorOffset = 10 [static, private] |
Definition at line 266 of file HitPattern.h.
Referenced by getTrackerLayerCase(), getTrackerMonoStereo(), muonHitFilter(), set(), and trackerHitFilter().
const unsigned short reco::HitPattern::SubstrMask = 0x7 [static, private] |
Definition at line 271 of file HitPattern.h.
Referenced by getSubStructure(), getTrackerLayerCase(), getTrackerMonoStereo(), numberOfValidStripLayersWithMonoAndStereo(), and set().
const unsigned short reco::HitPattern::SubstrOffset = 7 [static, private] |
Definition at line 270 of file HitPattern.h.
Referenced by getSubStructure(), getTrackerLayerCase(), getTrackerMonoStereo(), and set().