CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions

L1MuGMTLFSortRankPtQLUT Class Reference

#include <L1MuGMTLFSortRankPtQLUT.h>

Inheritance diagram for L1MuGMTLFSortRankPtQLUT:
L1MuGMTLUT

List of all members.

Public Types

enum  { DT, BRPC, CSC, FRPC }

Public Member Functions

 L1MuGMTLFSortRankPtQLUT ()
 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 q, unsigned pt) const
 specific lookup function for entire output field
unsigned SpecificLookup_rank_ptq (int idx, unsigned q, unsigned pt) const
 specific lookup function for rank_ptq
virtual ~L1MuGMTLFSortRankPtQLUT ()
 destructor

Private Member Functions

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

Detailed Description

LFSortRankPtQ look-up table

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

Definition at line 42 of file L1MuGMTLFSortRankPtQLUT.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
DT 
BRPC 
CSC 
FRPC 

Definition at line 45 of file L1MuGMTLFSortRankPtQLUT.h.

{DT, BRPC, CSC, FRPC};

Constructor & Destructor Documentation

L1MuGMTLFSortRankPtQLUT::L1MuGMTLFSortRankPtQLUT ( ) [inline]

constuctor using function-lookup

Definition at line 48 of file L1MuGMTLFSortRankPtQLUT.h.

References InitParameters().

                            : L1MuGMTLUT("LFSortRankPtQ", 
                                       "DT BRPC CSC FRPC",
                                       "q(3) pt(5)",
                                       "rank_ptq(7)", 7, false) {
    InitParameters();
  } ;
virtual L1MuGMTLFSortRankPtQLUT::~L1MuGMTLFSortRankPtQLUT ( ) [inline, virtual]

destructor

Definition at line 56 of file L1MuGMTLFSortRankPtQLUT.h.

{};

Member Function Documentation

void L1MuGMTLFSortRankPtQLUT::InitParameters ( ) [private]

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

Definition at line 34 of file L1MuGMTLFSortRankPtQLUT.cc.

Referenced by L1MuGMTLFSortRankPtQLUT().

                                             {
}
virtual unsigned L1MuGMTLFSortRankPtQLUT::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 L1MuGMTLFSortRankPtQLUT.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 L1MuGMTLFSortRankPtQLUT::SpecificLookup ( int  idx,
unsigned  q,
unsigned  pt 
) const [inline]

specific lookup function for entire output field

Definition at line 67 of file L1MuGMTLFSortRankPtQLUT.h.

References L1MuGMTLUT::LookupPacked(), and lumiQueryAPI::q.

                                                                   {
    std::vector<unsigned> addr(2);
    addr[0] = q;
    addr[1] = pt;
    return LookupPacked(idx, addr);
  };
unsigned L1MuGMTLFSortRankPtQLUT::SpecificLookup_rank_ptq ( int  idx,
unsigned  q,
unsigned  pt 
) const [inline]

specific lookup function for rank_ptq

Definition at line 59 of file L1MuGMTLFSortRankPtQLUT.h.

References L1MuGMTLUT::Lookup(), and lumiQueryAPI::q.

Referenced by L1MuGMTSortRankUnit::sort_rank().

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

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

Definition at line 49 of file L1MuGMTLFSortRankPtQLUT.cc.

References lumiQueryAPI::q.

Referenced by LookupFunctionPacked().

                                                                                           {
  // idx is DT, BRPC, CSC, FRPC
  // INPUTS:  q(3) pt(5)
  // OUTPUTS: rank_ptq(7) 
  int isRPC = idx % 2;
  //  int isFWD = idx / 2;

  unsigned int quality = q;         // DT  has: 1..7
  if ( isRPC ) quality = q*2 + 1;   // RPC has: 0,1,2,3
  if ( idx==2 ) quality = q*3 - 2;  // CSC has: 1,2,3

  if (quality > 7) quality = 7;

  unsigned int rank_ptq = 3*pt + quality*5;

  if (rank_ptq > 127) rank_ptq = 127;
  return rank_ptq;
}