File indexing completed on 2024-04-06 12:20:15
0001 #ifndef L1TCaloLayer1FetchLUTs_hh
0002 #define L1TCaloLayer1FetchLUTs_hh
0003
0004 #include "UCTGeometry.hh"
0005 #include "FWCore/Framework/interface/EventSetup.h"
0006 #include "FWCore/Utilities/interface/ESGetToken.h"
0007 #include <vector>
0008 #include <array>
0009
0010
0011
0012 class HcalTrigTowerGeometry;
0013 class CaloGeometryRecord;
0014 namespace l1t {
0015 class CaloParams;
0016 }
0017 class L1TCaloParamsRcd;
0018 class CaloTPGTranscoder;
0019 class CaloTPGRecord;
0020
0021 struct L1TCaloLayer1FetchLUTsTokens {
0022 template <typename T>
0023 L1TCaloLayer1FetchLUTsTokens(T &&i1, T &&i2, T &&i3) : geom_(i1), params_(i2), decoder_(i3) {}
0024 edm::ESGetToken<HcalTrigTowerGeometry, CaloGeometryRecord> geom_;
0025 edm::ESGetToken<l1t::CaloParams, L1TCaloParamsRcd> params_;
0026 edm::ESGetToken<CaloTPGTranscoder, CaloTPGRecord> decoder_;
0027 };
0028
0029 bool L1TCaloLayer1FetchLUTs(
0030 const L1TCaloLayer1FetchLUTsTokens &iTokens,
0031 const edm::EventSetup &iSetup,
0032 std::vector<std::array<std::array<std::array<uint32_t, l1tcalo::nEtBins>, l1tcalo::nCalSideBins>,
0033 l1tcalo::nCalEtaBins> > &eLUT,
0034 std::vector<std::array<std::array<std::array<uint32_t, l1tcalo::nEtBins>, l1tcalo::nCalSideBins>,
0035 l1tcalo::nCalEtaBins> > &hLUT,
0036 std::vector<std::array<std::array<uint32_t, l1tcalo::nEtBins>, l1tcalo::nHfEtaBins> > &hfLUT,
0037 std::vector<unsigned long long int> &hcalFBLUT,
0038 std::vector<unsigned int> &ePhiMap,
0039 std::vector<unsigned int> &hPhiMap,
0040 std::vector<unsigned int> &hfPhiMap,
0041 bool useLSB = true,
0042 bool useCalib = true,
0043 bool useECALLUT = true,
0044 bool useHCALLUT = true,
0045 bool useHFLUT = true,
0046 bool useHCALFBLUT = true,
0047 int fwVersion = 0);
0048
0049 #endif