CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions

L1MuGMTLFEtaConvLUT Class Reference

#include <L1MuGMTLFEtaConvLUT.h>

Inheritance diagram for L1MuGMTLFEtaConvLUT:
L1MuGMTLUT

List of all members.

Public Types

enum  { DT, bRPC, CSC, fRPC }

Public Member Functions

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

Private Member Functions

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

Detailed Description

LFEtaConv look-up table

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

Definition at line 43 of file L1MuGMTLFEtaConvLUT.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
DT 
bRPC 
CSC 
fRPC 

Definition at line 46 of file L1MuGMTLFEtaConvLUT.h.

{DT, bRPC, CSC, fRPC};

Constructor & Destructor Documentation

L1MuGMTLFEtaConvLUT::L1MuGMTLFEtaConvLUT ( ) [inline]

constuctor using function-lookup

Definition at line 49 of file L1MuGMTLFEtaConvLUT.h.

References InitParameters().

                        : L1MuGMTLUT("LFEtaConv", 
                                       "DT bRPC CSC fRPC",
                                       "eta_regional(6)",
                                       "eta_gmt(6)", 6, true) {
    InitParameters();
  } ;
virtual L1MuGMTLFEtaConvLUT::~L1MuGMTLFEtaConvLUT ( ) [inline, virtual]

destructor

Definition at line 57 of file L1MuGMTLFEtaConvLUT.h.

{};

Member Function Documentation

void L1MuGMTLFEtaConvLUT::InitParameters ( ) [private]

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

Definition at line 38 of file L1MuGMTLFEtaConvLUT.cc.

Referenced by L1MuGMTLFEtaConvLUT().

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

access to lookup function with packed input and output

Reimplemented from L1MuGMTLUT.

Definition at line 77 of file L1MuGMTLFEtaConvLUT.h.

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

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

  };
unsigned L1MuGMTLFEtaConvLUT::SpecificLookup ( int  idx,
unsigned  eta_regional 
) const [inline]

specific lookup function for entire output field

Definition at line 67 of file L1MuGMTLFEtaConvLUT.h.

References L1MuGMTLUT::LookupPacked().

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

specific lookup function for eta_gmt

Definition at line 60 of file L1MuGMTLFEtaConvLUT.h.

References L1MuGMTLUT::Lookup().

Referenced by L1MuGMTMerger::convertedEta().

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

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

Definition at line 48 of file L1MuGMTLFEtaConvLUT.cc.

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

Referenced by LookupFunctionPacked().

                                                                                     {
  // idx is DT, bRPC, CSC, fRPC
  // INPUTS:  eta_regional(6)
  // OUTPUTS: eta_gmt(6) 
 
  const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();

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

  if ( fabs(etaValue) > 2.4 ) etaValue = 2.39 * ((etaValue)>0?1.:-1.);

  // this is the only trick needed ...
  if (isRPC) {
    // etaValue() is center. make eta=0 and |eta|=1.3 non-ambiguous, when converting to GMT bins
    etaValue += (etaValue>0.01? -1. : 1.) * 0.001;
  }
  
  unsigned eta_gmt = theTriggerScales->getGMTEtaScale()->getPacked( etaValue );

  return eta_gmt;
}