28 : theLayerSubDet(subdet),
35 hasMatchedHits(
false),
39 hasRingSelector(
false),
40 hasSimpleRphiHitsCleaner(
true) {
81 assert(dynamic_cast<SiStripMatchedRecHit2D const*>(&
matched));
83 auto id =
hit.geographicalId();
85 bool rejectSt =
skipThis(
id,
hit.stereoClusterRef(), stripClusterMask);
86 bool rejectMono =
skipThis(
id,
hit.monoClusterRef(), stripClusterMask);
88 if ((!rejectSt) & (!rejectMono)) {
90 return std::make_pair(
false, replaceMe);
95 return std::make_pair(
true, replaceMe);
100 auto cloner = ttrhBuilder.
cloner();
103 LogDebug(
"HitExtractorSTRP") <<
"a matched hit is partially masked, and the mono hit got projected onto: " 106 LogDebug(
"HitExtractorSTRP") <<
"a matched hit is partially masked, and the stereo hit got projected onto: " 109 return std::make_pair(
true, replaceMe);
116 unsigned int cleanFrom)
const {
118 unsigned int projected = 0;
120 LogTrace(
"HitExtractorSTRP") <<
"getting " <<
hits.size() <<
" strip hit in input.";
124 for (
unsigned int iH = cleanFrom; iH <
hits.size(); ++iH) {
126 auto id =
hits[iH]->geographicalId();
131 LogTrace(
"HitExtractorSTRP") <<
"skipping a matched hit on :" <<
hits[iH]->geographicalId().rawId();
136 hits[iH].reset(replaceMe);
137 if (replaceMe ==
nullptr)
142 }
else if (
skipThis(
id,
hits[iH]->firstClusterRef(), stripClusterMask)) {
143 LogTrace(
"HitExtractorSTRP") <<
"skipping a hit on :" <<
hits[iH]->geographicalId().rawId() <<
" key: ";
150 LogTrace(
"HitExtractorSTRP") <<
"getting " <<
hits.size() <<
" vector hit in input.";
154 for (
unsigned int iH = cleanFrom; iH <
hits.size(); ++iH) {
155 LogTrace(
"HitExtractorSTRP") <<
"analizing hit on :" <<
hits[iH]->geographicalId().rawId();
160 LogTrace(
"HitExtractorSTRP") <<
" key lower: " <<
hits[iH]->firstClusterRef().key();
165 LogTrace(
"HitExtractorSTRP") <<
"skipping a vector hit on :" <<
hits[iH]->geographicalId().rawId()
178 LogTrace(
"HitExtractorSTRP") <<
"skipped :" <<
skipped <<
" rechits because of clusters and projected: " << projected;
184 LogDebug(
"HitExtractorSTRP") <<
"HitExtractorSTRP::hits";
186 unsigned int cleanFrom = 0;
195 LogTrace(
"HitExtractorSTRP") <<
"Getting hits into the TIB";
200 cleanFrom =
result.size();
211 cleanFrom =
result.size();
218 cleanFrom =
result.size();
228 cleanFrom =
result.size();
234 LogError(
"HitExtractorSTRP") <<
"TIB is not supposed to be in Phase2 TRK detector configuration. What follows " 235 "have never been checked before! ";
238 cleanFrom =
result.size();
250 LogTrace(
"HitExtractorSTRP") <<
"Getting hits into the TID";
255 cleanFrom =
result.size();
274 cleanFrom =
result.size();
294 cleanFrom =
result.size();
313 cleanFrom =
result.size();
324 LogTrace(
"HitExtractorSTRP") <<
"result size value:" <<
result.size();
333 LogTrace(
"HitExtractorSTRP") <<
"Getting hits into the TOB";
338 cleanFrom =
result.size();
361 cleanFrom =
result.size();
368 cleanFrom =
result.size();
378 cleanFrom =
result.size();
389 cleanFrom =
result.size();
401 LogTrace(
"HitExtractorSTRP") <<
"Getting hits into the TEC";
406 cleanFrom =
result.size();
425 cleanFrom =
result.size();
445 cleanFrom =
result.size();
460 LogError(
"HitExtractorSTRP") <<
"TEC is not supposed to be in Phase2 TRK detector configuration. What follows " 461 "have never been checked before! ";
465 cleanFrom =
result.size();
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::pair< DetId, SameLayerComparator > tecDetIdWheelComparator(uint32_t side, uint32_t wheel) const
void range2SeedingHits(DSTV const &dstv, HitExtractor::Hits &v, std::pair< A, B > const &sel)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
std::pair< const_iterator, const_iterator > Range
OmniClusterRef const upperClusterRef() const
def replace(string, replacements)
Log< level::Error, false > LogError
unsigned int tecRing(const DetId &id) const
ring id
std::pair< DetId, SameLayerComparator > tobDetIdLayerComparator(uint32_t layer) const
TkClonerImpl cloner() const
Detector identifier class for the strip tracker.
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
DetId geographicalId() const
OmniClusterRef const lowerClusterRef() const
constexpr uint32_t rawId() const
get the raw id
std::pair< DetId, SameLayerComparator > tidDetIdWheelComparator(uint32_t side, uint32_t wheel) const
unsigned int tidRing(const DetId &id) const
ClusterStripRef cluster_strip() const
std::pair< DetId, SameLayerComparator > tibDetIdLayerComparator(uint32_t layer) const
bool mask(unsigned int iIndex) const
Range equal_range(id_type i, CMP cmp, bool update=false) const