19 if (typeMulticluster ==
"dRC3d") {
22 }
else if (typeMulticluster ==
"DBSCANC3d") {
25 }
else if (typeMulticluster ==
"Histo") {
32 throw cms::Exception(
"HGCTriggerParameterError") <<
"Unknown Multiclustering type '" << typeMulticluster <<
"'";
35 for (
const auto& interpretationPset : conf.
getParameter<std::vector<edm::ParameterSet>>(
"energy_interpretations")) {
36 std::unique_ptr<HGCalTriggerClusterInterpreterBase> interpreter{
38 interpreter->initialize(interpretationPset);
44 std::pair<l1t::HGCalMulticlusterBxCollection, l1t::HGCalClusterBxCollection>& be_output)
override {
52 auto& collCluster3D = be_output.first;
53 auto& rejectedClusters = be_output.second;
56 std::vector<edm::Ptr<l1t::HGCalCluster>> clustersPtrs;
57 for (
unsigned i = 0;
i < collHandle->
size(); ++
i) {
59 clustersPtrs.push_back(ptr);
63 std::vector<std::pair<GlobalPoint, double>> seedPositionsEnergy;
76 clustersPtrs, seedPositionsEnergy, *
geometry(), collCluster3D, rejectedClusters);
85 interpreter->setGeometry(
geometry());
86 interpreter->interpret(collCluster3D);
106 "HGCalBackendLayer2Processor3DClustering");
T getParameter(std::string const &) const
ParameterSet const & getParameterSet(std::string const &) const
std::unique_ptr< HGCalMulticlusteringImpl > multiclustering_
unsigned size(int bx) const
std::unique_ptr< HGCalHistoSeedingImpl > multiclusteringHistoSeeding_
void run(const edm::Handle< l1t::HGCalClusterBxCollection > &collHandle, std::pair< l1t::HGCalMulticlusterBxCollection, l1t::HGCalClusterBxCollection > &be_output) override
HGCalBackendLayer2Processor3DClustering(const edm::ParameterSet &conf)
const HGCalTriggerGeometryBase * geometry() const
std::unique_ptr< HGCalHistoClusteringImpl > multiclusteringHistoClustering_
MulticlusterType multiclusteringAlgoType_
std::vector< std::unique_ptr< HGCalTriggerClusterInterpreterBase > > energy_interpreters_
#define DEFINE_EDM_PLUGIN(factory, type, name)