73 auto& triggerCellCollOutput = std::get<0>(triggerCollOutput);
74 auto& triggerSumCollOutput = std::get<1>(triggerCollOutput);
75 auto& autoEncoderCollOutput = std::get<2>(triggerCollOutput);
79 std::unordered_map<uint32_t, std::vector<l1t::HGCalTriggerCell>> tc_modules;
80 for (
const auto& trigCell : collInput) {
82 tc_modules[
module].push_back(trigCell);
85 for (
const auto& module_trigcell : tc_modules) {
86 std::vector<l1t::HGCalTriggerCell> trigCellVecOutput;
87 std::vector<l1t::HGCalTriggerCell> trigCellVecCoarsened;
88 std::vector<l1t::HGCalTriggerCell> trigCellVecNotSelected;
89 std::vector<l1t::HGCalTriggerSums> trigSumsVecOutput;
90 std::vector<l1t::HGCalConcentratorData> ae_EncodedLayerOutput;
97 coarsenerImpl_->coarsen(module_trigcell.second, trigCellVecCoarsened);
101 thresholdImpl_->select(trigCellVecCoarsened, trigCellVecOutput, trigCellVecNotSelected);
106 geometry()->getModuleSize(module_trigcell.first),
107 module_trigcell.second,
109 trigCellVecNotSelected);
112 geometry()->getModuleSize(module_trigcell.first),
113 trigCellVecCoarsened,
115 trigCellVecNotSelected);
123 trigCellVecCoarsened,
125 ae_EncodedLayerOutput);
128 trigCellVecOutput = trigCellVecCoarsened;
138 thresholdImpl_->select(module_trigcell.second, trigCellVecOutput, trigCellVecNotSelected);
142 geometry()->getModuleSize(module_trigcell.first),
143 module_trigcell.second,
145 trigCellVecNotSelected);
152 module_trigcell.second,
154 ae_EncodedLayerOutput);
157 trigCellVecOutput = module_trigcell.second;
168 trigSumImpl_->doSum(module_trigcell.first, module_trigcell.second, trigSumsVecOutput);
170 trigSumImpl_->doSum(module_trigcell.first, trigCellVecNotSelected, trigSumsVecOutput);
174 for (
const auto& trigCell : trigCellVecOutput) {
175 triggerCellCollOutput.push_back(0, trigCell);
177 for (
const auto& trigSums : trigSumsVecOutput) {
178 triggerSumCollOutput.push_back(0, trigSums);
180 for (
const auto& aeVal : ae_EncodedLayerOutput) {
181 autoEncoderCollOutput.push_back(0, aeVal);
std::unique_ptr< HGCalConcentratorBestChoiceImpl > bestChoiceImpl_
std::unique_ptr< HGCalConcentratorSuperTriggerCellImpl > superTriggerCellImpl_
std::unique_ptr< HGCalConcentratorThresholdImpl > thresholdImpl_
bool fixedDataSizePerHGCROC_
const HGCalTriggerGeometryBase * geometry() const
virtual unsigned getModuleFromTriggerCell(const unsigned trigger_cell_det_id) const =0
std::unique_ptr< HGCalConcentratorAutoEncoderImpl > autoEncoderImpl_
HGCalTriggerTools triggerTools_
bool allTrigCellsInTrigSums_
std::unique_ptr< HGCalConcentratorCoarsenerImpl > coarsenerImpl_
std::vector< SelectionType > selectionType_
std::vector< unsigned > coarsenTriggerCells_
std::unique_ptr< HGCalConcentratorTrigSumImpl > trigSumImpl_
static constexpr int kHighDensityThickness_