File indexing completed on 2024-04-06 12:20:17
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef Stage2Layer2ClusterAlgorithmFirmware_H
0014 #define Stage2Layer2ClusterAlgorithmFirmware_H
0015
0016 #include "L1Trigger/L1TCalorimeter/interface/Stage2Layer2ClusterAlgorithm.h"
0017 #include "L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h"
0018
0019 namespace l1t {
0020
0021
0022 class Stage2Layer2ClusterAlgorithmFirmwareImp1 : public Stage2Layer2ClusterAlgorithm {
0023 public:
0024 enum ClusterInput { E = 0, H = 1, EH = 2 };
0025
0026 Stage2Layer2ClusterAlgorithmFirmwareImp1(CaloParamsHelper const* params, ClusterInput clusterInput);
0027 ~Stage2Layer2ClusterAlgorithmFirmwareImp1() override;
0028 void processEvent(const std::vector<l1t::CaloTower>& towers, std::vector<l1t::CaloCluster>& clusters) override;
0029
0030 private:
0031 void clustering(const std::vector<l1t::CaloTower>& towers, std::vector<l1t::CaloCluster>& clusters);
0032 void filtering(const std::vector<l1t::CaloTower>& towers, std::vector<l1t::CaloCluster>& clusters);
0033 void refining(const std::vector<l1t::CaloTower>& towers, std::vector<l1t::CaloCluster>& clusters);
0034
0035 bool idHoverE(const l1t::CaloTower tow);
0036
0037
0038 ClusterInput clusterInput_;
0039 int seedThreshold_;
0040 int clusterThreshold_;
0041 int hcalThreshold_;
0042 CaloParamsHelper const* params_;
0043 };
0044
0045 }
0046
0047 #endif