CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions
L1MuGMTLFOvlEtaConvLUT Class Reference

#include <L1MuGMTLFOvlEtaConvLUT.h>

Inheritance diagram for L1MuGMTLFOvlEtaConvLUT:
L1MuGMTLUT

Public Types

enum  {
  DT, CSC, bRPC, fRPC,
  ovlCSC, ovlDT
}
 
- Public Types inherited from L1MuGMTLUT
typedef std::pair< std::string,
unsigned > 
port
 

Public Member Functions

 L1MuGMTLFOvlEtaConvLUT ()
 constuctor using function-lookup More...
 
virtual unsigned LookupFunctionPacked (int idx, unsigned address) const
 access to lookup function with packed input and output More...
 
unsigned SpecificLookup (int idx, unsigned eta6) const
 specific lookup function for entire output field More...
 
unsigned SpecificLookup_eta_ovl (int idx, unsigned eta6) const
 specific lookup function for eta_ovl More...
 
virtual ~L1MuGMTLFOvlEtaConvLUT ()
 destructor More...
 
- Public Member Functions inherited from L1MuGMTLUT
 L1MuGMTLUT ()
 Init and Destruct. More...
 
 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...
 
 L1MuGMTLUT (const char *name, const std::string &instances, const std::string &inputs, const std::string &outputs, unsigned vme_addr_width=0, bool distrRAM=false)
 
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, unsigned) const
 
unsigned LookupPacked (int idx, const std::vector< unsigned > &address) const
 additional lookup function (std::vector -> unisgned) More...
 
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 eta6) 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

OvlEtaConv look-up table

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

Definition at line 42 of file L1MuGMTLFOvlEtaConvLUT.h.

Member Enumeration Documentation

anonymous enum

Constructor & Destructor Documentation

L1MuGMTLFOvlEtaConvLUT::L1MuGMTLFOvlEtaConvLUT ( )
inline

constuctor using function-lookup

Definition at line 48 of file L1MuGMTLFOvlEtaConvLUT.h.

References InitParameters().

48  : L1MuGMTLUT("LFOvlEtaConv",
49  "DT CSC bRPC fRPC ovlCSC ovlDT",
50  "eta6(6)",
51  "eta_ovl(4)", 6, true) {
53  } ;
void InitParameters()
Initialize scales, configuration parameters, alignment constants, ...
L1MuGMTLUT()
Init and Destruct.
Definition: L1MuGMTLUT.h:85
virtual L1MuGMTLFOvlEtaConvLUT::~L1MuGMTLFOvlEtaConvLUT ( )
inlinevirtual

destructor

Definition at line 56 of file L1MuGMTLFOvlEtaConvLUT.h.

56 {};

Member Function Documentation

void L1MuGMTLFOvlEtaConvLUT::InitParameters ( )
private

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

Definition at line 40 of file L1MuGMTLFOvlEtaConvLUT.cc.

Referenced by L1MuGMTLFOvlEtaConvLUT().

40  {
41 }
virtual unsigned L1MuGMTLFOvlEtaConvLUT::LookupFunctionPacked ( int  idx,
unsigned  address 
) const
inlinevirtual

access to lookup function with packed input and output

Reimplemented from L1MuGMTLUT.

Definition at line 76 of file L1MuGMTLFOvlEtaConvLUT.h.

References L1MuGMTLUT::m_Inputs, TheLookupFunction(), and L1MuGMTLUT::u2vec().

76  {
77  std::vector<unsigned> addr = u2vec(address, m_Inputs);
78  return TheLookupFunction(idx ,addr[0]);
79 
80  };
char * address
Definition: mlp_lapack.h:14
std::vector< port > m_Inputs
Definition: L1MuGMTLUT.h:203
unsigned TheLookupFunction(int idx, unsigned eta6) const
The lookup function - here the functionality of the LUT is implemented.
tuple idx
DEBUGGING if hasattr(process,&quot;trackMonIterativeTracking2012&quot;): print &quot;trackMonIterativeTracking2012 D...
std::vector< unsigned > u2vec(unsigned value, const std::vector< port > &widths) const
generate composite address or value from compact unsigned
Definition: L1MuGMTLUT.h:241
unsigned L1MuGMTLFOvlEtaConvLUT::SpecificLookup ( int  idx,
unsigned  eta6 
) const
inline

specific lookup function for entire output field

Definition at line 66 of file L1MuGMTLFOvlEtaConvLUT.h.

References L1MuGMTLUT::LookupPacked().

66  {
67  std::vector<unsigned> addr(1);
68  addr[0] = eta6;
69  return LookupPacked(idx, addr);
70  };
tuple idx
DEBUGGING if hasattr(process,&quot;trackMonIterativeTracking2012&quot;): print &quot;trackMonIterativeTracking2012 D...
unsigned LookupPacked(int idx, unsigned) const
Definition: L1MuGMTLUT.h:262
unsigned L1MuGMTLFOvlEtaConvLUT::SpecificLookup_eta_ovl ( int  idx,
unsigned  eta6 
) const
inline

specific lookup function for eta_ovl

Definition at line 59 of file L1MuGMTLFOvlEtaConvLUT.h.

References L1MuGMTLUT::Lookup().

Referenced by L1MuGMTMatcher::lookup_mq().

59  {
60  std::vector<unsigned> addr(1);
61  addr[0] = eta6;
62  return Lookup(idx, addr) [0];
63  };
std::vector< unsigned > Lookup(int idx, const std::vector< unsigned > &address) const
additional lookup function (std::vector -&gt; vector)
Definition: L1MuGMTLUT.h:117
tuple idx
DEBUGGING if hasattr(process,&quot;trackMonIterativeTracking2012&quot;): print &quot;trackMonIterativeTracking2012 D...
unsigned L1MuGMTLFOvlEtaConvLUT::TheLookupFunction ( int  idx,
unsigned  eta6 
) const
private

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

Definition at line 60 of file L1MuGMTLFOvlEtaConvLUT.cc.

References bRPC, CSC, DT, fRPC, L1MuScale::getCenter(), L1MuGMTConfig::getGMTScales(), L1MuGMTScales::getOvlEtaScale(), L1MuScale::getPacked(), L1MuTriggerScales::getRegionalEtaScale(), L1MuScale::getScaleMax(), L1MuScale::getScaleMin(), L1MuGMTConfig::getTriggerScales(), ovlCSC, and ovlDT.

Referenced by LookupFunctionPacked().

60  {
61  // idx is DT, CSC, bRPC, fRPC, ovlCSC, ovlDT
62  // INPUTS: eta6(6)
63  // OUTPUTS: eta_ovl(4)
64 
65  const L1MuGMTScales* theGMTScales = L1MuGMTConfig::getGMTScales();
66  const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();
67 
68  int idx_drcr = 0;
69 
70  switch (idx) {
71  case DT : idx_drcr = 0; break;
72  case CSC : idx_drcr = 2; break;
73  case bRPC : idx_drcr = 1; break;
74  case fRPC : idx_drcr = 3; break;
75  case ovlCSC : idx_drcr = 2; break;
76  case ovlDT : idx_drcr = 0; break;
77  }
78 
79  float etaValue = theTriggerScales->getRegionalEtaScale(idx_drcr)->getCenter( eta6 );
80 
81  unsigned eta4bit = 0;
82  if (fabs(etaValue) < theGMTScales->getOvlEtaScale(idx_drcr)->getScaleMin() ||
83  fabs(etaValue) > theGMTScales->getOvlEtaScale(idx_drcr)->getScaleMax() ) {
84  eta4bit = 7; // out of range code is max pos value
85  }
86 
87  else {
88  eta4bit = theGMTScales->getOvlEtaScale(idx_drcr)->getPacked( etaValue );
89  // cout << "etaValue = " << etaValue << " eta OVERLAP= " << eta4bit << endl;
90  }
91 
92  return eta4bit;
93 }
virtual float getScaleMax() const =0
get the upper edge of the last bin
virtual float getCenter(unsigned packed) const =0
get the center of bin represented by packed
virtual float getScaleMin() const =0
get the lower edge of the first bin
static const L1MuGMTScales * getGMTScales()
tuple idx
DEBUGGING if hasattr(process,&quot;trackMonIterativeTracking2012&quot;): print &quot;trackMonIterativeTracking2012 D...
static const L1MuTriggerScales * getTriggerScales()
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC) ...
virtual unsigned getPacked(float value) const =0
pack a value
const L1MuScale * getOvlEtaScale(int isys) const
get the overlap eta scale (4 bits); isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC)