3 #ifndef TrackReco_HitPattern_h 4 #define TrackReco_HitPattern_h 141 namespace TestHitPattern {
237 template <
typename I>
481 template <
typename F>
524 return std::pair<uint8_t, uint8_t>(-1, -1);
527 template <
typename I>
557 template <
typename F>
765 uint16_t
stat = subSubStructure >> 2;
768 return ((subSubStructure >> 1) & 1) + 1;
781 return (sss >> 2) + 1;
792 return (sss & 0b0111) + 1;
793 return (sss & 0b11) + 1;
1092 template <
int N = HitPattern::MaxHits>
1117 unsigned char p = 255 & (
pattern >> 3);
1122 for (
auto h =
hit + lhit - 1;
h !=
hit; --
h) {
1123 if ((*(
h - 1)) <=
p) {
int numberOfLostTrackerHits(HitCategory category) const
int numberOfValidPixelHits() const
std::pair< uint8_t, uint8_t > getCategoryIndexRange(HitCategory category) const
static uint16_t getCSCRing(uint16_t pattern)
CSC ring (1-4). Only valid for muon CSC patterns, of course.
static constexpr auto TEC
int stripLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
static bool stripTECHitFilter(uint16_t pattern)
int countHits(HitCategory category, filterType filter) const
static uint32_t getLayer(uint16_t pattern)
void insertHit(const uint16_t pattern)
int numberOfValidStripLayersWithMonoAndStereo() const
int numberOfValidMuonME0Hits() const
int innermostMuonStationWithAnyHits() const
int pixelEndcapLayersWithoutMeasurement(HitCategory category) const
int numberOfValidMuonRPCHits() const
static const unsigned short HIT_LENGTH
int numberOfLostHits(HitCategory category) const
int numberOfLostTimingHits() const
int numberOfValidHits() const
static const unsigned short ARRAY_LENGTH
int stripTECLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
static const uint32_t NULL_RETURN
bool appendHits(const I &begin, const I &end, const TrackerTopology &ttopo)
int outermostMuonStationWithAnyHits() const
int rpcStationsWithValidHits() const
static bool timingHitFilter(uint16_t pattern)
int me0StationsWithBadHits() const
static bool pixelHitFilter(uint16_t pattern)
unsigned char const * begin() const
int numberOfValidTECLayersWithMonoAndStereo(uint32_t layer=0) const
int muonStationsWithBadHits() const
PatternSet< N > commonHits(PatternSet< N > const &p1, PatternSet< N > const &p2)
int countTypedHits(HitCategory category, filterType typeFilter, filterType filter) const
int pixelLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
int trackerLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
static uint16_t isStereo(DetId i, const TrackerTopology &ttopo)
int pixelLayersWithMeasurementOld() const
static bool timingBTLHitFilter(uint16_t pattern)
static bool badHitFilter(uint16_t pattern)
static const unsigned short SideOffset
int gemStationsWithValidHits() const
static const uint16_t EMPTY_PATTERN
static uint16_t getDTSuperLayer(uint16_t pattern)
DT superlayer (1-3). Where the "hit" was a DT segment, superlayer is 0. Only valid for muon DT patter...
int numberOfInactiveTrackerHits() const
int dtStationsWithAnyHits() const
int numberOfLostMuonCSCHits() const
uint16_t getHitPatternByAbsoluteIndex(int position) const
static bool muonME0HitFilter(uint16_t pattern)
static const unsigned short SubstrOffset
int trackerLayersWithMeasurement() const
int numberOfAllHits(HitCategory category) const
int numberOfValidMuonDTHits() const
int rpcStationsWithAnyHits() const
int me0StationsWithAnyHits() const
int trackerLayersWithMeasurementOld() const
int numberOfLostMuonGEMHits() const
int stripLayersWithMeasurement() const
static uint16_t getETLRing(uint16_t pattern)
ETL Ring: 1-12. Only valid for ETL patterns of course.
HitPattern & operator=(const HitPattern &other)
int numberOfLostMuonDTHits() const
int numberOfValidStripTIBHits() const
static const unsigned short MaxHits
int stripTOBLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
int numberOfValidTimingETLHits() const
int stripTIDLayersWithMeasurement() const
int pixelEndcapLayersWithMeasurement() const
int numberOfValidStripTECHits() const
int numberOfLostPixelBarrelHits(HitCategory category) const
static const unsigned short maxTrackerWord
unsigned char const * end() const
int innermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
int stripTIBLayersWithoutMeasurement(HitCategory category) const
int pixelEndcapLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
bool filterType(uint16_t)
static bool missingHitFilter(uint16_t pattern)
int numberOfAllTrackerHits(HitCategory category) const
static uint16_t getBTLModType(uint16_t pattern)
BTL Module type: 1,2,3. Only valid for BTL patterns of course.
int muonStationsWithAnyHits() const
int stripLayersNull() const
int numberOfLostMuonME0Hits() const
static const unsigned short HitTypeMask
static bool pixelBarrelHitFilter(uint16_t pattern)
int numberOfDTStationsWithBothViews() const
int stripTECLayersWithMeasurement() const
int gemStationsWithBadHits() const
bool insertExpectedOuterHit(const uint16_t pattern)
static bool pixelEndcapHitFilter(uint16_t pattern)
int numberOfLostStripHits(HitCategory category) const
int numberOfValidStripHits() const
int stripTIBLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
int stripTIBLayersNull() const
Run3ScoutingHitPatternPOD run3ScoutingHitPatternPOD() const
static bool validHitFilter(uint16_t pattern)
int numberOfBadMuonHits() const
int numberOfLostStripTECHits(HitCategory category) const
int numberOfValidTimingHits() const
int cscStationsWithValidHits() const
int cscStationsWithBadHits() const
int outermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
int numberOfDTStationsWithRPhiView() const
int dtStationsWithValidHits() const
int numberOfMuonHits() const
int numberOfBadMuonCSCHits() const
static uint16_t getGEMLayer(uint16_t pattern)
GEM layer: 1-6 for station 0, 1-2 for stations 1 and 2. Only valid for muon GEM patterns, of course.
int me0StationsWithValidHits() const
static constexpr int MaxHits
static const unsigned short minTrackerWord
int trackerLayersWithoutMeasurementOld(HitCategory category) const
uint16_t hitPattern[ARRAY_LENGTH]
static bool muonCSCHitFilter(uint16_t pattern)
static uint32_t getHitType(uint16_t pattern)
void call(HitCategory category, filterType typeFilter, F f) const
int numberOfLostMuonRPCHits() const
std::pair< unsigned int, unsigned int > unpack(cond::Time_t since)
unsigned char operator[](int i) const
int numberOfValidPixelEndcapHits() const
static const unsigned short SubDetectorMask
static bool stripHitFilter(uint16_t pattern)
int numberOfLostPixelEndcapHits(HitCategory category) const
uint16_t getTrackerMonoStereo(HitCategory category, uint16_t substr, uint16_t layer) const
int numberOfDTStationsWithRZView() const
int stripTOBLayersWithoutMeasurement(HitCategory category) const
int pixelLayersNull() const
int pixelEndcapLayersNull() const
int numberOfValidTIBLayersWithMonoAndStereo(uint32_t layer=0) const
int stripTOBLayersWithMeasurement() const
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
int numberOfValidMuonGEMHits() const
int innermostMuonStationWithValidHits() const
const std::complex< double > I
int numberOfValidStripTIDHits() const
int numberOfBadMuonDTHits() const
int numberOfValidTimingBTLHits() const
int cscStationsWithAnyHits() const
int stripTECLayersWithoutMeasurement(HitCategory category) const
int stripTOBLayersNull() const
static constexpr auto TOB
int numberOfLostStripTIDHits(HitCategory category) const
static const unsigned short HitTypeOffset
int muonStationsWithValidHits() const
uint16_t getHitPattern(HitCategory category, int position) const
bool appendTrackerHit(uint16_t subdet, uint16_t layer, uint16_t stereo, TrackingRecHit::Type hitType)
int numberOfValidMuonHits() const
static uint32_t getSubStructure(uint16_t pattern)
static bool inactiveHitFilter(uint16_t pattern)
int numberOfLostStripTOBHits(HitCategory category) const
static const unsigned short minPixelWord
int trackerLayersNull() const
int numberOfTimingHits() const
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC) 4(GEM); hitType=-1(all), 0=valid, 3=bad
int numberOfBadMuonGEMHits() const
int stripTIDLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
int gemStationsWithAnyHits() const
static uint16_t getRPCregion(uint16_t pattern)
RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course.
static uint32_t getSubDetector(uint16_t pattern)
int numberOfLostTimingETLHits() const
static bool muonGEMHitFilter(uint16_t pattern)
static uint16_t getGEMStation(uint16_t pattern)
GEM station: 1,2. Only valid for muon GEM patterns, of course.
int dtStationsWithBadHits() const
static bool muonHitFilter(uint16_t pattern)
static bool trackerHitFilter(uint16_t pattern)
int trackerLayersWithoutMeasurement(HitCategory category) const
static constexpr auto TIB
static const unsigned short SideMask
int pixelLayersWithoutMeasurement(HitCategory category) const
static const unsigned short minStripWord
int numberOfValidTIDLayersWithMonoAndStereo(uint32_t layer=0) const
int numberOfValidMuonCSCHits() const
static const unsigned short SubDetectorOffset
static bool fillNewHitPatternWithOldHitPattern_v12(const uint16_t oldHitPattern[], uint8_t hitCount, uint8_t beginTrackHits, uint8_t endTrackHits, uint8_t beginInner, uint8_t endInner, uint8_t beginOuter, uint8_t endOuter, reco::HitPattern *newObj)
void printHitPattern(HitCategory category, int position, std::ostream &stream) const
int rpcStationsWithBadHits() const
int stripLayersWithoutMeasurement(HitCategory category) const
int outermostMuonStationWithValidHits() const
static bool stripTOBHitFilter(uint16_t pattern)
int stripTECLayersNull() const
int numberOfBadHits() const
static uint32_t getSide(uint16_t pattern)
static bool muonDTHitFilter(uint16_t pattern)
bool insertExpectedInnerHit(const uint16_t pattern)
int numberOfBadMuonRPCHits() const
int pixelBarrelLayersNull() const
int numberOfLostPixelHits(HitCategory category) const
static bool stripTIBHitFilter(uint16_t pattern)
static const unsigned short SubstrMask
int numberOfBadMuonME0Hits() const
static const unsigned short LayerOffset
void fill(HitPattern::HitCategory category, HitPattern const &hp)
static int position[264][3]
bool insertTrackHit(const uint16_t pattern)
int numberOfValidPixelBarrelHits() const
int stripTIDLayersNull() const
int pixelBarrelLayersWithMeasurement() const
int stripTIDLayersWithoutMeasurement(HitCategory category) const
int numberOfLostMuonHits() const
static uint16_t getRPCLayer(uint16_t pattern)
RPC layer: for station 1 and 2, layer = 1(inner) or 2(outer); for station 3, 4 layer is always 0...
static uint16_t getMuonStation(uint16_t pattern)
Muon station (1-4). Only valid for muon patterns, of course. only for patterns from muon...
int pixelLayersWithMeasurement() const
int innermostMuonStationWithBadHits() const
static bool timingETLHitFilter(uint16_t pattern)
static uint32_t getSubSubStructure(uint16_t pattern)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
static const unsigned short LayerMask
static bool stripTIDHitFilter(uint16_t pattern)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
int pixelBarrelLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
static bool muonRPCHitFilter(uint16_t pattern)
int outermostMuonStationWithBadHits() const
static constexpr auto TID
int numberOfValidTrackerHits() const
PatternSet(HitPattern::HitCategory category, HitPattern const &hp)
int numberOfInactiveTimingHits() const
static uint16_t encode(const TrackingRecHit &hit, const TrackerTopology &ttopo)
static bool stripSubdetectorHitFilter(uint16_t pattern, StripSubdetector::SubDetector substructure)
int numberOfLostStripTIBHits(HitCategory category) const
int numberOfLostTimingBTLHits() const
uint32_t getTrackerLayerCase(HitCategory category, uint16_t substr, uint16_t layer) const
int numberOfInactiveHits() const
bool hasValidHitInPixelLayer(enum PixelSubdetector::SubDetector, uint16_t layer) const
int numberOfValidTOBLayersWithMonoAndStereo(uint32_t layer=0) const
int pixelBarrelLayersWithoutMeasurement(HitCategory category) const
int numberOfValidStripTOBHits() const
bool appendMuonHit(const DetId &id, TrackingRecHit::Type hitType)
int stripTIBLayersWithMeasurement() const
void print(HitCategory category, std::ostream &stream=std::cout) const