CMS 3D CMS Logo

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

#include <L1MuGMTLFEtaConvLUT.h>

Inheritance diagram for L1MuGMTLFEtaConvLUT:
L1MuGMTLUT

Public Types

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

Public Member Functions

 L1MuGMTLFEtaConvLUT ()
 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_regional) const
 specific lookup function for entire output field More...
 
unsigned SpecificLookup_eta_gmt (int idx, unsigned eta_regional) const
 specific lookup function for eta_gmt More...
 
 ~L1MuGMTLFEtaConvLUT () override
 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 eta_regional) 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

LFEtaConv look-up table

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

Definition at line 41 of file L1MuGMTLFEtaConvLUT.h.

Member Enumeration Documentation

anonymous enum

Constructor & Destructor Documentation

L1MuGMTLFEtaConvLUT::L1MuGMTLFEtaConvLUT ( )
inline

constuctor using function-lookup

Definition at line 47 of file L1MuGMTLFEtaConvLUT.h.

References InitParameters().

47  : L1MuGMTLUT("LFEtaConv",
48  "DT bRPC CSC fRPC",
49  "eta_regional(6)",
50  "eta_gmt(6)", 6, true) {
52  } ;
L1MuGMTLUT()
Init and Destruct.
Definition: L1MuGMTLUT.h:83
void InitParameters()
Initialize scales, configuration parameters, alignment constants, ...
L1MuGMTLFEtaConvLUT::~L1MuGMTLFEtaConvLUT ( )
inlineoverride

destructor

Definition at line 55 of file L1MuGMTLFEtaConvLUT.h.

55 {};

Member Function Documentation

void L1MuGMTLFEtaConvLUT::InitParameters ( )
private

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

Definition at line 36 of file L1MuGMTLFEtaConvLUT.cc.

Referenced by L1MuGMTLFEtaConvLUT(), and LookupFunctionPacked().

36  {
37 }
unsigned L1MuGMTLFEtaConvLUT::LookupFunctionPacked ( int  idx,
unsigned  address 
) const
inlineoverridevirtual

access to lookup function with packed input and output

Reimplemented from L1MuGMTLUT.

Definition at line 75 of file L1MuGMTLFEtaConvLUT.h.

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

75  {
76  std::vector<unsigned> addr = u2vec(address, m_Inputs);
77  return TheLookupFunction(idx ,addr[0]);
78 
79  };
std::vector< port > m_Inputs
Definition: L1MuGMTLUT.h:201
unsigned TheLookupFunction(int idx, unsigned eta_regional) 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:239
unsigned L1MuGMTLFEtaConvLUT::SpecificLookup ( int  idx,
unsigned  eta_regional 
) const
inline

specific lookup function for entire output field

Definition at line 65 of file L1MuGMTLFEtaConvLUT.h.

References L1MuGMTLUT::LookupPacked().

65  {
66  std::vector<unsigned> addr(1);
67  addr[0] = eta_regional;
68  return LookupPacked(idx, addr);
69  };
unsigned LookupPacked(int idx, unsigned) const
Definition: L1MuGMTLUT.h:260
unsigned L1MuGMTLFEtaConvLUT::SpecificLookup_eta_gmt ( int  idx,
unsigned  eta_regional 
) const
inline

specific lookup function for eta_gmt

Definition at line 58 of file L1MuGMTLFEtaConvLUT.h.

References L1MuGMTLUT::Lookup().

Referenced by L1MuGMTMerger::convertedEta().

58  {
59  std::vector<unsigned> addr(1);
60  addr[0] = eta_regional;
61  return Lookup(idx, addr) [0];
62  };
std::vector< unsigned > Lookup(int idx, const std::vector< unsigned > &address) const
additional lookup function (std::vector -> vector)
Definition: L1MuGMTLUT.h:115
unsigned L1MuGMTLFEtaConvLUT::TheLookupFunction ( int  idx,
unsigned  eta_regional 
) const
private

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

Definition at line 46 of file L1MuGMTLFEtaConvLUT.cc.

References L1MuScale::getCenter(), L1MuTriggerScales::getGMTEtaScale(), L1MuScale::getPacked(), L1MuTriggerScales::getRegionalEtaScale(), L1MuGMTConfig::getTriggerScales(), and GeomDetEnumerators::isRPC().

Referenced by LookupFunctionPacked().

46  {
47  // idx is DT, bRPC, CSC, fRPC
48  // INPUTS: eta_regional(6)
49  // OUTPUTS: eta_gmt(6)
50 
51  const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();
52 
53  int isRPC = idx % 2;
54  // int isFWD = idx / 2;
55 
56  float etaValue = theTriggerScales->getRegionalEtaScale(idx)->getCenter( eta_regional );
57 
58  if ( fabs(etaValue) > 2.4 ) etaValue = 2.39 * ((etaValue)>0?1.:-1.);
59 
60  // this is the only trick needed ...
61  if (isRPC) {
62  // etaValue() is center. make eta=0 and |eta|=1.3 non-ambiguous, when converting to GMT bins
63  etaValue += (etaValue>0.01? -1. : 1.) * 0.001;
64  }
65 
66  unsigned eta_gmt = theTriggerScales->getGMTEtaScale()->getPacked( etaValue );
67 
68  return eta_gmt;
69 }
virtual float getCenter(unsigned packed) const =0
get the center of bin represented by packed
bool isRPC(GeomDetEnumerators::SubDetector m)
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) ...
const L1MuScale * getGMTEtaScale() const
get the GMT eta scale
virtual unsigned getPacked(float value) const =0
pack a value