10 fixedDataSizePerHGCROC_(conf.getParameter<
bool>(
"fixedDataSizePerHGCROC")),
11 coarsenTriggerCells_(conf.getParameter<
bool>(
"coarsenTriggerCells")) {
13 if (selectionType ==
"thresholdSelect") {
15 thresholdImpl_ = std::make_unique<HGCalConcentratorThresholdImpl>(conf);
16 }
else if (selectionType ==
"bestChoiceSelect") {
18 bestChoiceImpl_ = std::make_unique<HGCalConcentratorBestChoiceImpl>(conf);
19 }
else if (selectionType ==
"superTriggerCellSelect") {
22 }
else if (selectionType ==
"mixedBestChoiceSuperTriggerCell") {
24 bestChoiceImpl_ = std::make_unique<HGCalConcentratorBestChoiceImpl>(conf);
28 <<
"Unknown type of concentrator selection '" << selectionType <<
"'";
32 coarsenerImpl_ = std::make_unique<HGCalConcentratorCoarsenerImpl>(conf);
51 std::unordered_map<uint32_t, std::vector<l1t::HGCalTriggerCell>> tc_modules;
52 for (
const auto& trigCell : collInput) {
54 tc_modules[module].push_back(trigCell);
57 for (
const auto& module_trigcell : tc_modules) {
58 std::vector<l1t::HGCalTriggerCell> trigCellVecOutput;
59 std::vector<l1t::HGCalTriggerCell> trigCellVecCoarsened;
64 coarsenerImpl_->coarsen(module_trigcell.second, trigCellVecCoarsened);
74 module_trigcell.second,
104 thresholdImpl_->select(module_trigcell.second, trigCellVecOutput);
109 module_trigcell.second,
119 module_trigcell.second,
131 for (
const auto& trigCell : trigCellVecOutput) {
132 triggerCellCollOutput.
push_back(0, trigCell);
T getParameter(std::string const &) const
std::unique_ptr< HGCalConcentratorBestChoiceImpl > bestChoiceImpl_
const HGCalTriggerGeometryBase * geometry_
std::unique_ptr< HGCalConcentratorSuperTriggerCellImpl > superTriggerCellImpl_
std::unique_ptr< HGCalConcentratorThresholdImpl > thresholdImpl_
bool fixedDataSizePerHGCROC_
HGCalConcentratorProcessorSelection(const edm::ParameterSet &conf)
virtual unsigned getLinksInModule(const unsigned module_id) const =0
void run(const edm::Handle< l1t::HGCalTriggerCellBxCollection > &triggerCellCollInput, l1t::HGCalTriggerCellBxCollection &triggerCellCollOutput, const edm::EventSetup &es) override
bool coarsenTriggerCells_
SelectionType selectionType_
virtual unsigned getModuleSize(const unsigned module_id) const =0
HGCalTriggerTools triggerTools_
virtual unsigned getModuleFromTriggerCell(const unsigned trigger_cell_det_id) const =0
std::unique_ptr< HGCalConcentratorCoarsenerImpl > coarsenerImpl_
static int kHighDensityThickness_
#define DEFINE_EDM_PLUGIN(factory, type, name)
void push_back(int bx, T object)