1 #ifndef RecoParticleFlow_PFClusterProducer_PFRecHitNavigatorBase_h
2 #define RecoParticleFlow_PFClusterProducer_PFRecHitNavigatorBase_h
24 #include <unordered_map>
42 auto found_hit = std::lower_bound(hits->begin(),hits->end(),
46 return a.detId() < id;
48 if( found_hit != hits->end() && found_hit->detId() ==
id.rawId() ) {
virtual ~PFRecHitNavigatorBase()
virtual void associateNeighbours(reco::PFRecHit &, std::auto_ptr< reco::PFRecHitCollection > &, edm::RefProd< reco::PFRecHitCollection > &)=0
void addNeighbour(short x, short y, short z, const PFRecHitRef &)
edmplugin::PluginFactory< PFRecHitNavigatorBase *(const edm::ParameterSet &)> PFRecHitNavigationFactory
void associateNeighbour(const DetId &id, reco::PFRecHit &hit, std::auto_ptr< reco::PFRecHitCollection > &hits, edm::RefProd< reco::PFRecHitCollection > &refProd, short eta, short phi, short depth)
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
std::unordered_map< unsigned, unsigned > DetIdToHitIdx
PFRecHitNavigatorBase(const edm::ParameterSet &iConfig)
virtual void beginEvent(const edm::EventSetup &)=0