1 #ifndef RecoLocalCalo_HGCalRecProducers_HGCalClusteringAlgoBase_h
2 #define RecoLocalCalo_HGCalRecProducers_HGCalClusteringAlgoBase_h
17 namespace hgcal_clustering {
21 std::vector<size_t> idx(v.size());
25 std::sort(idx.begin(), idx.end(), [&
v](
size_t i1,
size_t i2) {
return v[i1] > v[i2]; });
33 std::vector<size_t> idx(v.size(), 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_
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
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
virtual void populate(const HGCRecHitCollection &hits)=0
virtual void getEventSetupPerAlgorithm(const edm::EventSetup &es)
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_