1 #ifndef RecoLocalCalo_HGCalRecProducers_HGCalClusteringAlgoBase_h 2 #define RecoLocalCalo_HGCalRecProducers_HGCalClusteringAlgoBase_h 21 std::vector<size_t>
idx(
v.size());
22 std::iota(std::begin(
idx), std::end(
idx), 0);
33 std::vector<size_t>
idx(
v.size(), 0);
34 std::iota(std::begin(
idx), std::end(
idx), 0);
37 auto maxidx = std::max_element(
38 idx.begin(),
idx.end(), [&
v](
size_t i1,
size_t i2) {
return v[
i1].data.rho <
v[
i2].data.rho; });
58 virtual std::vector<reco::BasicCluster>
getClusters(
bool) = 0;
59 virtual void reset() = 0;
HGCalClusteringAlgoBase(VerbosityLevel v, reco::CaloCluster::AlgoId algo, edm::ConsumesCollector iC)
std::vector< reco::BasicCluster > clusters_v_
VerbosityLevel verbosity_
void setVerbosity(VerbosityLevel the_verbosity)
unsigned int firstLayerBH_
std::map< DetId, float > Density
unsigned int lastLayerEE_
void setAlgoId(reco::CaloCluster::AlgoId algo, bool isNose=false)
hgcal::RecHitTools rhtools_
unsigned int lastLayerFH_
virtual hgcal_clustering::Density getDensity()=0
std::vector< size_t > sorted_indices(const std::vector< T > &v)
reco::CaloCluster::AlgoId algoId_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
virtual void makeClusters()=0
void getEventSetup(const edm::EventSetup &es)
virtual ~HGCalClusteringAlgoBase()
size_t max_index(const std::vector< T > &v)
virtual std::vector< reco::BasicCluster > getClusters(bool)=0
virtual void populate(const HGCRecHitCollection &hits)=0
virtual void getEventSetupPerAlgorithm(const edm::EventSetup &es)
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_