21 using namespace ctfseeding;
27 : theLayer(detLayer), theSide(side), theIdLayer(idLayer),
29 hasRingSelector(
false), theMinRing(1), theMaxRing(0), hasSimpleRphiHitsCleaner(
true)
54 if (f==stripClusterRefs->
end())
return false;
55 if (!hit->
isValid())
return false;
70 replaceMe=proj.
project( *sHit, *ptr->det());
71 if (!replaceMe)
LogDebug(
"HitExtractorSTRP")<<
"projection failed.";
79 bool rejectSt=
false,rejectMono=
false;
83 if (rejectSt&&rejectMono){
90 if (!replaceMe)
return true;
92 LogDebug(
"HitExtractorSTRP")<<
"a matched hit is partially masked, and the mono hit got projected onto: "<<replaceMe->hit()->geographicalId().rawId()<<
" key: "<<hit->
monoHit()->
cluster().
key();
94 LogDebug(
"HitExtractorSTRP")<<
"a matched hit is partially masked, and the stereo hit got projected onto: "<<replaceMe->hit()->geographicalId().rawId()<<
" key: "<<hit->
stereoHit()->
cluster().
key();
103 LogDebug(
"HitExtractorPIX")<<
"getting: "<<hits.size()<<
" in input.";
109 newHits.reserve(hits.size());
111 for (
unsigned int iH=0;iH!=hits.size();++iH){
113 if (matched &&
skipThis(hits[iH],stripClusterRefs,replaceMe)){
114 LogDebug(
"HitExtractorSTRP")<<
"skipping a matched hit on :"<<hits[iH]->hit()->geographicalId().rawId();
119 LogDebug(
"HitExtractorSTRP")<<
"skipping a hit on :"<<hits[iH]->hit()->geographicalId().rawId()<<
" key: ";
123 if (replaceMe!=hits[iH]) projected++;
124 newHits.push_back(replaceMe);
126 LogDebug(
"HitExtractorPIX")<<
"skipped :"<<skipped<<
" strip rechits because of clusters and projected: "<<projected;
288 LogDebug(
"HitExtractorSTRP")<<
" giving: "<<result.size()<<
" out";
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator begin() const
std::pair< DetId, DetIdTIDSameDiskComparator > stripTIDDisk(int side, int disk)
const SiStripRecHit2D * stereoHit() const
std::pair< DetId, DetIdTIBSameLayerComparator > stripTIBLayer(int layer)
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
std::pair< const_iterator, const_iterator > Range
const_iterator find(id_type i) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
void range2SeedingHits(DSTV const &dstv, HitExtractor::Hits &v, std::pair< A, B > const &sel, const SeedingLayer &sl, const edm::EventSetup &es)
RecHitPointer project(const TransientTrackingRecHit &hit, const GeomDet &det, const TrajectoryStateOnSurface &ts) const
uint32_t rawId() const
get the raw id
std::pair< DetId, DetIdTOBSameLayerComparator > stripTOBLayer(int layer)
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
std::pair< DetId, DetIdTECSameDiskComparator > stripTECDisk(int side, int disk)
const_iterator end() const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Detector identifier class for the strip tracker.
const TransientTrackingRecHitBuilder * hitBuilder() const
ClusterRef const & cluster() const
key_type key() const
Accessor for product key.
DetId geographicalId() const
const SiStripRecHit2D * monoHit() const