CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions

L1MuGMTLFPhiProEtaConvLUT Class Reference

#include <L1MuGMTLFPhiProEtaConvLUT.h>

Inheritance diagram for L1MuGMTLFPhiProEtaConvLUT:
L1MuGMTLUT

List of all members.

Public Types

enum  { DT, BRPC, CSC, FRPC }

Public Member Functions

 L1MuGMTLFPhiProEtaConvLUT ()
 constuctor using function-lookup
virtual unsigned LookupFunctionPacked (int idx, unsigned address) const
 access to lookup function with packed input and output
unsigned SpecificLookup (int idx, unsigned eta_in) const
 specific lookup function for entire output field
unsigned SpecificLookup_eta_out (int idx, unsigned eta_in) const
 specific lookup function for eta_out
virtual ~L1MuGMTLFPhiProEtaConvLUT ()
 destructor

Private Member Functions

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

Detailed Description

LFPhiProEtaConv look-up table

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

Definition at line 42 of file L1MuGMTLFPhiProEtaConvLUT.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
DT 
BRPC 
CSC 
FRPC 

Definition at line 45 of file L1MuGMTLFPhiProEtaConvLUT.h.

{DT, BRPC, CSC, FRPC};

Constructor & Destructor Documentation

L1MuGMTLFPhiProEtaConvLUT::L1MuGMTLFPhiProEtaConvLUT ( ) [inline]

constuctor using function-lookup

Definition at line 48 of file L1MuGMTLFPhiProEtaConvLUT.h.

References InitParameters().

                              : L1MuGMTLUT("LFPhiProEtaConv", 
                                       "DT BRPC CSC FRPC",
                                       "eta_in(6)",
                                       "eta_out(4)", 6, true) {
    InitParameters();
  } ;
virtual L1MuGMTLFPhiProEtaConvLUT::~L1MuGMTLFPhiProEtaConvLUT ( ) [inline, virtual]

destructor

Definition at line 56 of file L1MuGMTLFPhiProEtaConvLUT.h.

{};

Member Function Documentation

void L1MuGMTLFPhiProEtaConvLUT::InitParameters ( ) [private]

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

Definition at line 42 of file L1MuGMTLFPhiProEtaConvLUT.cc.

Referenced by L1MuGMTLFPhiProEtaConvLUT().

                                               {
}
virtual unsigned L1MuGMTLFPhiProEtaConvLUT::LookupFunctionPacked ( int  idx,
unsigned  address 
) const [inline, virtual]

access to lookup function with packed input and output

Reimplemented from L1MuGMTLUT.

Definition at line 76 of file L1MuGMTLFPhiProEtaConvLUT.h.

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

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

  };
unsigned L1MuGMTLFPhiProEtaConvLUT::SpecificLookup ( int  idx,
unsigned  eta_in 
) const [inline]

specific lookup function for entire output field

Definition at line 66 of file L1MuGMTLFPhiProEtaConvLUT.h.

References L1MuGMTLUT::LookupPacked().

                                                           {
    std::vector<unsigned> addr(1);
    addr[0] = eta_in;
    return LookupPacked(idx, addr);
  };
unsigned L1MuGMTLFPhiProEtaConvLUT::SpecificLookup_eta_out ( int  idx,
unsigned  eta_in 
) const [inline]

specific lookup function for eta_out

Definition at line 59 of file L1MuGMTLFPhiProEtaConvLUT.h.

References L1MuGMTLUT::Lookup().

Referenced by L1MuGMTMerger::projectedPhi().

                                                                   {
    std::vector<unsigned> addr(1);
    addr[0] = eta_in;
    return Lookup(idx, addr) [0];
  };
unsigned L1MuGMTLFPhiProEtaConvLUT::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 L1MuGMTLFPhiProEtaConvLUT.cc.

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

Referenced by LookupFunctionPacked().

                                                                                     {
  // idx is DT, BRPC, CSC, FRPC
  // INPUTS:  eta_in(6)
  // OUTPUTS: eta_out(4) 

  const L1MuGMTScales* theGMTScales = L1MuGMTConfig::getGMTScales();
  const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();

  int isRPC = idx % 2;
  int isFWD = idx / 2;
  
  float etaValue = theTriggerScales->getRegionalEtaScale(idx)->getCenter( eta_in );

  unsigned eta4bit = 0;
  if ( (isRPC && isFWD && fabs(etaValue) < theGMTScales->getReducedEtaScale(3)->getScaleMin() ) ||
       (isRPC && !isFWD && fabs(etaValue) > theGMTScales->getReducedEtaScale(1)->getScaleMax() )) {
    if(!m_saveFlag) edm::LogWarning("LUTRangeViolation") 
     << "L1MuGMTMIAUEtaConvLUT::TheLookupFunction: RPC " << (isFWD?"fwd":"brl") << " eta value out of range: " << etaValue;
  }
  else 
    eta4bit = theGMTScales->getReducedEtaScale(idx)->getPacked( etaValue );

  return eta4bit;
}