File indexing completed on 2024-04-06 12:20:38
0001 #ifndef __L1Trigger_L1THGCal_HGCalConcentratorBestChoiceImpl_h__
0002 #define __L1Trigger_L1THGCal_HGCalConcentratorBestChoiceImpl_h__
0003
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "DataFormats/L1THGCal/interface/HGCalTriggerCell.h"
0006 #include "L1Trigger/L1THGCal/interface/HGCalTriggerTools.h"
0007 #include <vector>
0008
0009 class HGCalConcentratorBestChoiceImpl {
0010 public:
0011 HGCalConcentratorBestChoiceImpl(const edm::ParameterSet& conf);
0012
0013 void select(unsigned nLinks,
0014 unsigned nWafers,
0015 const std::vector<l1t::HGCalTriggerCell>& trigCellVecInput,
0016 std::vector<l1t::HGCalTriggerCell>& trigCellVecOutput,
0017 std::vector<l1t::HGCalTriggerCell>& trigCellVecNotSelected);
0018
0019 void setGeometry(const HGCalTriggerGeometryBase* const geom) { triggerTools_.setGeometry(geom); }
0020
0021 private:
0022 std::vector<unsigned> nData_;
0023 static constexpr unsigned kNDataSize_ = 128;
0024 static constexpr uint32_t kWaferOffset_ = 4;
0025 static constexpr uint32_t kWaferMask_ = 0x7;
0026 static constexpr uint32_t kLinkMask_ = 0xF;
0027
0028 HGCalTriggerTools triggerTools_;
0029 };
0030
0031 #endif