CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions
L1MuGMTMIAUEtaConvLUT Class Reference

#include <L1MuGMTMIAUEtaConvLUT.h>

Inheritance diagram for L1MuGMTMIAUEtaConvLUT:
L1MuGMTLUT

Public Types

enum  {
  MIP_DT, MIP_BRPC, ISO_DT, ISO_BRPC,
  MIP_CSC, MIP_FRPC, ISO_CSC, ISO_FRPC
}
 
- Public Types inherited from L1MuGMTLUT
typedef std::pair< std::string, unsigned > port
 

Public Member Functions

 L1MuGMTMIAUEtaConvLUT ()
 constuctor using function-lookup More...
 
unsigned LookupFunctionPacked (int idx, unsigned address) const override
 access to lookup function with packed input and output More...
 
unsigned SpecificLookup (int idx, unsigned eta_in) const
 specific lookup function for entire output field More...
 
unsigned SpecificLookup_eta_out (int idx, unsigned eta_in) const
 specific lookup function for eta_out More...
 
 ~L1MuGMTMIAUEtaConvLUT () override
 destructor More...
 
- Public Member Functions inherited from L1MuGMTLUT
 L1MuGMTLUT ()
 Init and Destruct. More...
 
 L1MuGMTLUT (const char *name, const std::string &instances, const std::string &inputs, const std::string &outputs, unsigned vme_addr_width=0, bool distrRAM=false)
 
 L1MuGMTLUT (const char *name, const std::vector< std::string > &instances, const std::vector< port > &in_widths, const std::vector< port > &out_widths, unsigned vme_addr_width=0, bool distrRAM=false)
 constructor with init More...
 
void Load (const char *path)
 I/O functions. More...
 
std::vector< unsigned > Lookup (int idx, const std::vector< unsigned > &address) const
 additional lookup function (std::vector -> vector) More...
 
std::vector< unsigned > Lookup (int idx, unsigned address) const
 additional lookup function (unsigned -> std::vector) More...
 
unsigned LookupPacked (int idx, const std::vector< unsigned > &address) const
 additional lookup function (std::vector -> unisgned) More...
 
unsigned LookupPacked (int idx, unsigned) const
 
void MakeSubClass (const char *fname="", const char *template_file_h="../interface/L1MuGMTLUT_SubClass.h_template", const char *template_file_cc="../interface/L1MuGMTLUT_SubClass.cc_template")
 Add Generate SubClass method. More...
 
std::string Name ()
 
int numberOfInstances ()
 get the number of Instances More...
 
void Save (const char *path)
 save to LUT file More...
 
virtual ~L1MuGMTLUT ()
 destructor More...
 

Private Member Functions

void InitParameters ()
 Initialize scales, configuration parameters, alignment constants, ... More...
 
unsigned TheLookupFunction (int idx, unsigned eta_in) const
 The lookup function - here the functionality of the LUT is implemented. More...
 

Additional Inherited Members

- Protected Member Functions inherited from L1MuGMTLUT
void Init (const char *name, const std::vector< std::string > &instances, const std::vector< port > &in_widths, const std::vector< port > &out_widths, unsigned vme_addr_width=0, bool distrRAM=false)
 Initialize the LUT. More...
 
void Set (int idx, unsigned address, unsigned value)
 set with single address and value More...
 
std::vector< unsigned > u2vec (unsigned value, const std::vector< port > &widths) const
 generate composite address or value from compact unsigned More...
 
unsigned vec2u (const std::vector< unsigned > &vec, const std::vector< port > &widths) const
 generate address or value from composite address or value More...
 
- Protected Attributes inherited from L1MuGMTLUT
std::vector< std::vector< unsigned > > m_Contents
 
bool m_distrRAM
 
unsigned m_GeneralLUTVersion
 
bool m_initialized
 
std::vector< portm_Inputs
 
std::vector< std::string > m_InstNames
 
std::string m_name
 
int m_NLUTS
 
std::vector< portm_Outputs
 
bool m_saveFlag
 
unsigned m_TotalInWidth
 
unsigned m_TotalOutWidth
 
bool m_UseLookupFunction
 
unsigned m_vme_addr_width
 

Detailed Description

MIAUEtaConv look-up table

this class was automatically generated by L1MuGMTLUT::MakeSubClass()

Definition at line 38 of file L1MuGMTMIAUEtaConvLUT.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MIP_DT 
MIP_BRPC 
ISO_DT 
ISO_BRPC 
MIP_CSC 
MIP_FRPC 
ISO_CSC 
ISO_FRPC 

Definition at line 40 of file L1MuGMTMIAUEtaConvLUT.h.

Constructor & Destructor Documentation

◆ L1MuGMTMIAUEtaConvLUT()

L1MuGMTMIAUEtaConvLUT::L1MuGMTMIAUEtaConvLUT ( )
inline

constuctor using function-lookup

Definition at line 43 of file L1MuGMTMIAUEtaConvLUT.h.

44  : L1MuGMTLUT("MIAUEtaConv",
45  "MIP_DT MIP_BRPC ISO_DT ISO_BRPC MIP_CSC MIP_FRPC ISO_CSC ISO_FRPC",
46  "eta_in(6)",
47  "eta_out(4)",
48  6,
49  true) {
51  };

References InitParameters().

◆ ~L1MuGMTMIAUEtaConvLUT()

L1MuGMTMIAUEtaConvLUT::~L1MuGMTMIAUEtaConvLUT ( )
inlineoverride

destructor

Definition at line 54 of file L1MuGMTMIAUEtaConvLUT.h.

54 {};

Member Function Documentation

◆ InitParameters()

void L1MuGMTMIAUEtaConvLUT::InitParameters ( )
private

Initialize scales, configuration parameters, alignment constants, ...

Definition at line 36 of file L1MuGMTMIAUEtaConvLUT.cc.

36 {}

Referenced by L1MuGMTMIAUEtaConvLUT().

◆ LookupFunctionPacked()

unsigned L1MuGMTMIAUEtaConvLUT::LookupFunctionPacked ( int  idx,
unsigned  address 
) const
inlineoverridevirtual

access to lookup function with packed input and output

Reimplemented from L1MuGMTLUT.

Definition at line 72 of file L1MuGMTMIAUEtaConvLUT.h.

72  {
73  std::vector<unsigned> addr = u2vec(address, m_Inputs);
74  return TheLookupFunction(idx, addr[0]);
75  };

References generateTowerEtThresholdLUT::addr, training_settings::idx, L1MuGMTLUT::m_Inputs, TheLookupFunction(), and L1MuGMTLUT::u2vec().

◆ SpecificLookup()

unsigned L1MuGMTMIAUEtaConvLUT::SpecificLookup ( int  idx,
unsigned  eta_in 
) const
inline

specific lookup function for entire output field

Definition at line 64 of file L1MuGMTMIAUEtaConvLUT.h.

64  {
65  std::vector<unsigned> addr(1);
66  addr[0] = eta_in;
67  return LookupPacked(idx, addr);
68  };

References generateTowerEtThresholdLUT::addr, training_settings::idx, and L1MuGMTLUT::LookupPacked().

◆ SpecificLookup_eta_out()

unsigned L1MuGMTMIAUEtaConvLUT::SpecificLookup_eta_out ( int  idx,
unsigned  eta_in 
) const
inline

specific lookup function for eta_out

Definition at line 57 of file L1MuGMTMIAUEtaConvLUT.h.

57  {
58  std::vector<unsigned> addr(1);
59  addr[0] = eta_in;
60  return Lookup(idx, addr)[0];
61  };

References generateTowerEtThresholdLUT::addr, training_settings::idx, and L1MuGMTLUT::Lookup().

Referenced by L1MuGMTPhiProjectionUnit::run().

◆ TheLookupFunction()

unsigned L1MuGMTMIAUEtaConvLUT::TheLookupFunction ( int  idx,
unsigned  eta_in 
) const
private

The lookup function - here the functionality of the LUT is implemented.

Definition at line 53 of file L1MuGMTMIAUEtaConvLUT.cc.

53  {
54  // idx is MIP_DT, MIP_BRPC, ISO_DT, ISO_BRPC, MIP_CSC, MIP_FRPC, ISO_CSC, ISO_FRPC
55  // INPUTS: eta_in(6)
56  // OUTPUTS: eta_out(4)
57 
58  const L1MuGMTScales* theGMTScales = L1MuGMTConfig::getGMTScales();
59  const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();
60 
61  int isRPC = idx % 2;
62  int isFWD = idx / 4;
63 
64  int idx_drcr = isFWD * 2 + isRPC;
65 
66  float etaValue = theTriggerScales->getRegionalEtaScale(idx_drcr)->getCenter(eta_in);
67 
68  unsigned eta4bit = 0;
69  if ((isRPC && isFWD && fabs(etaValue) < theGMTScales->getReducedEtaScale(3)->getScaleMin()) ||
70  (isRPC && !isFWD && fabs(etaValue) > theGMTScales->getReducedEtaScale(1)->getScaleMax())) {
71  if (!m_saveFlag)
72  edm::LogWarning("LUTRangeViolation") << "L1MuGMTMIAUEtaConvLUT::TheLookupFunction: RPC "
73  << (isFWD ? "fwd" : "brl") << " eta value out of range: " << etaValue;
74  } else
75  eta4bit = theGMTScales->getReducedEtaScale(idx_drcr)->getPacked(etaValue);
76 
77  return eta4bit;
78 }

References L1MuScale::getCenter(), L1MuGMTConfig::getGMTScales(), L1MuScale::getPacked(), L1MuGMTScales::getReducedEtaScale(), L1MuTriggerScales::getRegionalEtaScale(), L1MuScale::getScaleMax(), L1MuScale::getScaleMin(), L1MuGMTConfig::getTriggerScales(), training_settings::idx, GeomDetEnumerators::isRPC(), and L1MuGMTLUT::m_saveFlag.

Referenced by LookupFunctionPacked().

L1MuGMTMIAUEtaConvLUT::MIP_BRPC
Definition: L1MuGMTMIAUEtaConvLUT.h:40
GeomDetEnumerators::isRPC
bool isRPC(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:90
L1MuGMTMIAUEtaConvLUT::TheLookupFunction
unsigned TheLookupFunction(int idx, unsigned eta_in) const
The lookup function - here the functionality of the LUT is implemented.
Definition: L1MuGMTMIAUEtaConvLUT.cc:53
L1MuGMTLUT::m_Inputs
std::vector< port > m_Inputs
Definition: L1MuGMTLUT.h:214
L1MuGMTMIAUEtaConvLUT::MIP_CSC
Definition: L1MuGMTMIAUEtaConvLUT.h:40
L1MuGMTScales
Definition: L1MuGMTScales.h:34
L1MuGMTLUT::m_saveFlag
bool m_saveFlag
Definition: L1MuGMTLUT.h:221
training_settings.idx
idx
Definition: training_settings.py:16
L1MuGMTConfig::getGMTScales
static const L1MuGMTScales * getGMTScales()
Definition: L1MuGMTConfig.h:172
generateTowerEtThresholdLUT.addr
addr
Definition: generateTowerEtThresholdLUT.py:57
L1MuGMTConfig::getTriggerScales
static const L1MuTriggerScales * getTriggerScales()
Definition: L1MuGMTConfig.h:178
L1MuTriggerScales::getRegionalEtaScale
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC)
Definition: L1MuTriggerScales.h:158
L1MuGMTMIAUEtaConvLUT::InitParameters
void InitParameters()
Initialize scales, configuration parameters, alignment constants, ...
Definition: L1MuGMTMIAUEtaConvLUT.cc:36
L1MuScale::getScaleMin
virtual float getScaleMin() const =0
get the lower edge of the first bin
L1MuGMTScales::getReducedEtaScale
const L1MuScale * getReducedEtaScale(int isys) const
get the recuced eta scale for matching in the overlap region (4 bit); isys = 0(DT),...
Definition: L1MuGMTScales.h:187
edm::LogWarning
Definition: MessageLogger.h:141
L1MuGMTLUT::LookupPacked
unsigned LookupPacked(int idx, unsigned) const
Definition: L1MuGMTLUT.h:272
L1MuGMTMIAUEtaConvLUT::MIP_DT
Definition: L1MuGMTMIAUEtaConvLUT.h:40
L1MuTriggerScales
Definition: L1MuTriggerScales.h:33
L1MuGMTMIAUEtaConvLUT::ISO_DT
Definition: L1MuGMTMIAUEtaConvLUT.h:40
L1MuGMTMIAUEtaConvLUT::ISO_FRPC
Definition: L1MuGMTMIAUEtaConvLUT.h:40
L1MuGMTMIAUEtaConvLUT::ISO_CSC
Definition: L1MuGMTMIAUEtaConvLUT.h:40
L1MuGMTMIAUEtaConvLUT::MIP_FRPC
Definition: L1MuGMTMIAUEtaConvLUT.h:40
L1MuGMTLUT::u2vec
std::vector< unsigned > u2vec(unsigned value, const std::vector< port > &widths) const
generate composite address or value from compact unsigned
Definition: L1MuGMTLUT.h:251
L1MuGMTMIAUEtaConvLUT::ISO_BRPC
Definition: L1MuGMTMIAUEtaConvLUT.h:40
L1MuScale::getPacked
virtual unsigned getPacked(float value) const =0
pack a value
L1MuGMTLUT::L1MuGMTLUT
L1MuGMTLUT()
Init and Destruct.
Definition: L1MuGMTLUT.h:80
L1MuGMTLUT::Lookup
std::vector< unsigned > Lookup(int idx, const std::vector< unsigned > &address) const
additional lookup function (std::vector -> vector)
Definition: L1MuGMTLUT.h:121
L1MuScale::getScaleMax
virtual float getScaleMax() const =0
get the upper edge of the last bin
L1MuScale::getCenter
virtual float getCenter(unsigned packed) const =0
get the center of bin represented by packed