CMS 3D CMS Logo

L1MuGMTLFCOUDeltaEtaLUT.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
10 //
11 // Author :
12 // H. Sakulin HEPHY Vienna
13 //
14 // Migrated to CMSSW:
15 // I. Mikulec
16 //
17 //--------------------------------------------------
18 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTLFCOUDeltaEtaLUT_h
19 #define L1TriggerGlobalMuonTrigger_L1MuGMTLFCOUDeltaEtaLUT_h
20 
21 //---------------
22 // C++ Headers --
23 //---------------
24 
25 //----------------------
26 // Base Class Headers --
27 //----------------------
29 
30 //------------------------------------
31 // Collaborating Class Declarations --
32 //------------------------------------
33 
34 // ---------------------
35 // -- Class Interface --
36 // ---------------------
37 
39 public:
40  enum { DTCSC, CSCDT, CSCbRPC, DTfRPC };
41 
44  : L1MuGMTLUT("LFCOUDeltaEta", "DTCSC CSCDT CSCbRPC DTfRPC", "eta1(4) eta2(4)", "delta_eta(4)", 8, true) {
46  };
47 
50 
52  unsigned SpecificLookup_delta_eta(int idx, unsigned eta1, unsigned eta2) const {
53  std::vector<unsigned> addr(2);
54  addr[0] = eta1;
55  addr[1] = eta2;
56  return Lookup(idx, addr)[0];
57  };
58 
60  unsigned SpecificLookup(int idx, unsigned eta1, unsigned eta2) const {
61  std::vector<unsigned> addr(2);
62  addr[0] = eta1;
63  addr[1] = eta2;
64  return LookupPacked(idx, addr);
65  };
66 
68 
69  unsigned LookupFunctionPacked(int idx, unsigned address) const override {
70  std::vector<unsigned> addr = u2vec(address, m_Inputs);
71  return TheLookupFunction(idx, addr[0], addr[1]);
72  };
73 
74 private:
76  void InitParameters();
77 
79  unsigned TheLookupFunction(int idx, unsigned eta1, unsigned eta2) const;
80 };
81 #endif
unsigned LookupFunctionPacked(int idx, unsigned address) const override
access to lookup function with packed input and output
unsigned SpecificLookup(int idx, unsigned eta1, unsigned eta2) const
specific lookup function for entire output field
void InitParameters()
Initialize scales, configuration parameters, alignment constants, ...
unsigned LookupPacked(int idx, unsigned) const
Definition: L1MuGMTLUT.h:272
unsigned TheLookupFunction(int idx, unsigned eta1, unsigned eta2) const
The lookup function - here the functionality of the LUT is implemented.
std::vector< unsigned > u2vec(unsigned value, const std::vector< port > &widths) const
generate composite address or value from compact unsigned
Definition: L1MuGMTLUT.h:251
std::vector< unsigned > Lookup(int idx, const std::vector< unsigned > &address) const
additional lookup function (std::vector -> vector)
Definition: L1MuGMTLUT.h:121
std::vector< port > m_Inputs
Definition: L1MuGMTLUT.h:214
unsigned SpecificLookup_delta_eta(int idx, unsigned eta1, unsigned eta2) const
specific lookup function for delta_eta
~L1MuGMTLFCOUDeltaEtaLUT() override
destructor
L1MuGMTLFCOUDeltaEtaLUT()
constuctor using function-lookup