Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // External function declaration
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