Back to home page

Project CMSSW displayed by LXR

 
 

    


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