CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions

L1MuGMTLFDeltaEtaLUT Class Reference

#include <L1MuGMTLFDeltaEtaLUT.h>

Inheritance diagram for L1MuGMTLFDeltaEtaLUT:
L1MuGMTLUT

List of all members.

Public Types

enum  { DTRPC, CSCRPC }

Public Member Functions

 L1MuGMTLFDeltaEtaLUT ()
 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_dtcsc, unsigned eta_rpc) const
 specific lookup function for entire output field
unsigned SpecificLookup_delta_eta (int idx, unsigned eta_dtcsc, unsigned eta_rpc) const
 specific lookup function for delta_eta
virtual ~L1MuGMTLFDeltaEtaLUT ()
 destructor

Private Member Functions

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

Detailed Description

LFDeltaEta look-up table

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

Definition at line 42 of file L1MuGMTLFDeltaEtaLUT.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
DTRPC 
CSCRPC 

Definition at line 45 of file L1MuGMTLFDeltaEtaLUT.h.


Constructor & Destructor Documentation

L1MuGMTLFDeltaEtaLUT::L1MuGMTLFDeltaEtaLUT ( ) [inline]

constuctor using function-lookup

Definition at line 48 of file L1MuGMTLFDeltaEtaLUT.h.

References InitParameters().

                         : L1MuGMTLUT("LFDeltaEta", 
                                       "DTRPC CSCRPC",
                                       "eta_dtcsc(6) eta_rpc(6)",
                                       "delta_eta(4)", 10, false) {
    InitParameters();
  } ;
virtual L1MuGMTLFDeltaEtaLUT::~L1MuGMTLFDeltaEtaLUT ( ) [inline, virtual]

destructor

Definition at line 56 of file L1MuGMTLFDeltaEtaLUT.h.

{};

Member Function Documentation

void L1MuGMTLFDeltaEtaLUT::InitParameters ( ) [private]

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

Definition at line 31 of file L1MuGMTLFDeltaEtaLUT.cc.

Referenced by L1MuGMTLFDeltaEtaLUT().

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

access to lookup function with packed input and output

Reimplemented from L1MuGMTLUT.

Definition at line 78 of file L1MuGMTLFDeltaEtaLUT.h.

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

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

  };
unsigned L1MuGMTLFDeltaEtaLUT::SpecificLookup ( int  idx,
unsigned  eta_dtcsc,
unsigned  eta_rpc 
) const [inline]

specific lookup function for entire output field

Definition at line 67 of file L1MuGMTLFDeltaEtaLUT.h.

References L1MuGMTLUT::LookupPacked().

                                                                                {
    std::vector<unsigned> addr(2);
    addr[0] = eta_dtcsc;
    addr[1] = eta_rpc;
    return LookupPacked(idx, addr);
  };
unsigned L1MuGMTLFDeltaEtaLUT::SpecificLookup_delta_eta ( int  idx,
unsigned  eta_dtcsc,
unsigned  eta_rpc 
) const [inline]

specific lookup function for delta_eta

Definition at line 59 of file L1MuGMTLFDeltaEtaLUT.h.

References L1MuGMTLUT::Lookup().

Referenced by L1MuGMTMatcher::lookup_mq().

                                                                                          {
    std::vector<unsigned> addr(2);
    addr[0] = eta_dtcsc;
    addr[1] = eta_rpc;
    return Lookup(idx, addr) [0];
  };
unsigned L1MuGMTLFDeltaEtaLUT::TheLookupFunction ( int  idx,
unsigned  eta_dtcsc,
unsigned  eta_rpc 
) const [private]

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

Definition at line 34 of file L1MuGMTLFDeltaEtaLUT.cc.

References kinem::delta_eta(), L1MuScale::getCenter(), L1MuGMTScales::getDeltaEtaScale(), L1MuGMTConfig::getGMTScales(), L1MuScale::getPacked(), L1MuTriggerScales::getRegionalEtaScale(), L1MuScale::getScaleMax(), L1MuGMTConfig::getTriggerScales(), python::timeUnitHelper::pack(), and L1MuSignedPacking< Bits >::packedFromIdx().

Referenced by LookupFunctionPacked().

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

  // idx is DTRPC CSCRPC

  float etaValue_dtcsc = theTriggerScales->getRegionalEtaScale(idx*2)->getCenter(eta_dtcsc);
  float etaValue_rpc = theTriggerScales->getRegionalEtaScale(idx*2+1)->getCenter(eta_rpc); 

  float delta_eta = etaValue_dtcsc - etaValue_rpc;


  unsigned delta_eta_4bit = 0;

  // check out of range
  if (delta_eta < theGMTScales->getDeltaEtaScale(idx)->getScaleMin() ||
      delta_eta > theGMTScales->getDeltaEtaScale(idx)->getScaleMax()) {
    L1MuSignedPacking<4> pack;
    delta_eta_4bit = pack.packedFromIdx (-8);
  }
  else {
    delta_eta_4bit = theGMTScales->getDeltaEtaScale(idx)->getPacked( delta_eta );
  }

  //      cout << "delta-eta LUT : idx= " << idx
  //     << ", etaValue_dtcsc = " << etaValue_dtcsc
  //     << ", etaValue_rpc = " << etaValue_rpc
  //     << ", delta_eta = " << delta_eta
  //     << ", packed = " << delta_eta_4bit
  //     << endl;
 
    
  return delta_eta_4bit;
}