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