File indexing completed on 2024-04-06 12:21:27
0001 #ifndef tdr_regionizer_ref_h
0002 #define tdr_regionizer_ref_h
0003
0004 #include "L1Trigger/Phase2L1ParticleFlow/interface/regionizer/regionizer_base_ref.h"
0005 #include "L1Trigger/Phase2L1ParticleFlow/interface/regionizer/tdr_regionizer_elements_ref.h"
0006
0007 namespace edm {
0008 class ParameterSet;
0009 class ParameterSetDescription;
0010 }
0011
0012 namespace l1ct {
0013 class TDRRegionizerEmulator : public RegionizerEmulator {
0014 public:
0015 TDRRegionizerEmulator(uint32_t ntk,
0016 uint32_t ncalo,
0017 uint32_t nem,
0018 uint32_t nmu,
0019 uint32_t nclocks,
0020 std::vector<int32_t> bigRegionEdges,
0021 bool dosort);
0022
0023
0024 TDRRegionizerEmulator(const edm::ParameterSet& iConfig);
0025
0026 ~TDRRegionizerEmulator() override;
0027
0028 static edm::ParameterSetDescription getParameterSetDescription();
0029
0030 void initSectorsAndRegions(const RegionizerDecodedInputs& in, const std::vector<PFInputRegion>& out) override;
0031
0032 void run(const RegionizerDecodedInputs& in, std::vector<PFInputRegion>& out) override;
0033
0034 private:
0035
0036 uint32_t nBigRegions_;
0037
0038 uint32_t ntk_, ncalo_, nem_, nmu_;
0039
0040 uint32_t nclocks_;
0041
0042
0043 std::vector<int32_t> bigRegionEdges_;
0044
0045 bool dosort_;
0046
0047
0048 uint32_t netaInBR_, nphiInBR_;
0049
0050 bool init_;
0051
0052 std::vector<tdr_regionizer::Regionizer<l1ct::TkObjEmu>> tkRegionizers_;
0053 std::vector<tdr_regionizer::Regionizer<l1ct::HadCaloObjEmu>> hadCaloRegionizers_;
0054 std::vector<tdr_regionizer::Regionizer<l1ct::EmCaloObjEmu>> emCaloRegionizers_;
0055 std::vector<tdr_regionizer::Regionizer<l1ct::MuObjEmu>> muRegionizers_;
0056 };
0057
0058 }
0059
0060 #endif