File indexing completed on 2024-04-06 12:20:38
0001 #ifndef __L1Trigger_L1THGCal_HGCalConcentratorProcessorSelection_h__
0002 #define __L1Trigger_L1THGCal_HGCalConcentratorProcessorSelection_h__
0003
0004 #include "L1Trigger/L1THGCal/interface/HGCalProcessorBase.h"
0005 #include "L1Trigger/L1THGCal/interface/concentrator/HGCalConcentratorThresholdImpl.h"
0006 #include "L1Trigger/L1THGCal/interface/concentrator/HGCalConcentratorBestChoiceImpl.h"
0007 #include "L1Trigger/L1THGCal/interface/concentrator/HGCalConcentratorSuperTriggerCellImpl.h"
0008 #include "L1Trigger/L1THGCal/interface/concentrator/HGCalConcentratorCoarsenerImpl.h"
0009 #include "L1Trigger/L1THGCal/interface/concentrator/HGCalConcentratorTrigSumImpl.h"
0010 #include "L1Trigger/L1THGCal/interface/concentrator/HGCalConcentratorAutoEncoderImpl.h"
0011
0012 #include "L1Trigger/L1THGCal/interface/HGCalTriggerTools.h"
0013 #include "DataFormats/L1THGCal/interface/HGCalTriggerCell.h"
0014 #include "DataFormats/L1THGCal/interface/HGCalTriggerSums.h"
0015 #include "DataFormats/L1THGCal/interface/HGCalConcentratorData.h"
0016
0017 #include <utility>
0018 #include <tuple>
0019
0020 class HGCalConcentratorProcessorSelection : public HGCalConcentratorProcessorBase {
0021 private:
0022 enum SelectionType { thresholdSelect, bestChoiceSelect, superTriggerCellSelect, autoEncoderSelect, noSelection };
0023
0024 public:
0025 HGCalConcentratorProcessorSelection(const edm::ParameterSet& conf);
0026
0027 void run(const edm::Handle<l1t::HGCalTriggerCellBxCollection>& triggerCellCollInput,
0028 std::tuple<l1t::HGCalTriggerCellBxCollection,
0029 l1t::HGCalTriggerSumsBxCollection,
0030 l1t::HGCalConcentratorDataBxCollection>& triggerCollOutput) override;
0031
0032 private:
0033 bool fixedDataSizePerHGCROC_;
0034 bool allTrigCellsInTrigSums_;
0035 std::vector<unsigned> coarsenTriggerCells_;
0036 static constexpr int kHighDensityThickness_ = 0;
0037 static constexpr int kNSubDetectors_ = 3;
0038
0039 std::vector<SelectionType> selectionType_;
0040
0041 std::unique_ptr<HGCalConcentratorThresholdImpl> thresholdImpl_;
0042 std::unique_ptr<HGCalConcentratorBestChoiceImpl> bestChoiceImpl_;
0043 std::unique_ptr<HGCalConcentratorSuperTriggerCellImpl> superTriggerCellImpl_;
0044 std::unique_ptr<HGCalConcentratorCoarsenerImpl> coarsenerImpl_;
0045 std::unique_ptr<HGCalConcentratorTrigSumImpl> trigSumImpl_;
0046 std::unique_ptr<HGCalConcentratorAutoEncoderImpl> autoEncoderImpl_;
0047
0048 HGCalTriggerTools triggerTools_;
0049 };
0050
0051 #endif