CMS 3D CMS Logo

L1MuGMTLFMergeRankEtaQLUT Class Reference

LFMergeRankEtaQ look-up table. More...

#include <L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankEtaQLUT.h>

Inheritance diagram for L1MuGMTLFMergeRankEtaQLUT:

L1MuGMTLUT

List of all members.

Public Types

enum  { DT, BRPC, CSC, FRPC }

Public Member Functions

 L1MuGMTLFMergeRankEtaQLUT ()
 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, unsigned q) const
 specific lookup function for entire output field
unsigned SpecificLookup_flag (int idx, unsigned eta, unsigned q) const
 specific lookup function for flag
unsigned SpecificLookup_rank_etaq (int idx, unsigned eta, unsigned q) const
 specific lookup function for rank_etaq
virtual ~L1MuGMTLFMergeRankEtaQLUT ()
 destructor

Private Member Functions

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


Detailed Description

LFMergeRankEtaQ look-up table.

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

Definition at line 42 of file L1MuGMTLFMergeRankEtaQLUT.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
DT 
BRPC 
CSC 
FRPC 

Definition at line 45 of file L1MuGMTLFMergeRankEtaQLUT.h.

00045 {DT, BRPC, CSC, FRPC};


Constructor & Destructor Documentation

L1MuGMTLFMergeRankEtaQLUT::L1MuGMTLFMergeRankEtaQLUT (  )  [inline]

constuctor using function-lookup

Definition at line 48 of file L1MuGMTLFMergeRankEtaQLUT.h.

References InitParameters().

00048                               : L1MuGMTLUT("LFMergeRankEtaQ", 
00049                                        "DT BRPC CSC FRPC",
00050                                        "eta(6) q(3)",
00051                                        "flag(1) rank_etaq(7)", 8, false) {
00052     InitParameters();
00053   } ;

virtual L1MuGMTLFMergeRankEtaQLUT::~L1MuGMTLFMergeRankEtaQLUT (  )  [inline, virtual]

destructor

Definition at line 56 of file L1MuGMTLFMergeRankEtaQLUT.h.

00056 {};


Member Function Documentation

void L1MuGMTLFMergeRankEtaQLUT::InitParameters (  )  [private]

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

Definition at line 38 of file L1MuGMTLFMergeRankEtaQLUT.cc.

Referenced by L1MuGMTLFMergeRankEtaQLUT().

00038                                                {
00039 }

virtual unsigned L1MuGMTLFMergeRankEtaQLUT::LookupFunctionPacked ( int  idx,
unsigned  address 
) const [inline, virtual]

access to lookup function with packed input and output

Reimplemented from L1MuGMTLUT.

Definition at line 86 of file L1MuGMTLFMergeRankEtaQLUT.h.

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

00086                                                                           {
00087     std::vector<unsigned> addr = u2vec(address, m_Inputs);
00088     return TheLookupFunction(idx ,addr[0] ,addr[1]);
00089 
00090   };

unsigned L1MuGMTLFMergeRankEtaQLUT::SpecificLookup ( int  idx,
unsigned  eta,
unsigned  q 
) const [inline]

specific lookup function for entire output field

Definition at line 75 of file L1MuGMTLFMergeRankEtaQLUT.h.

References addr, and L1MuGMTLUT::LookupPacked().

00075                                                                     {
00076     std::vector<unsigned> addr(2);
00077     addr[0] = eta;
00078     addr[1] = q;
00079     return LookupPacked(idx, addr);
00080   };

unsigned L1MuGMTLFMergeRankEtaQLUT::SpecificLookup_flag ( int  idx,
unsigned  eta,
unsigned  q 
) const [inline]

specific lookup function for flag

Definition at line 59 of file L1MuGMTLFMergeRankEtaQLUT.h.

References addr, and L1MuGMTLUT::Lookup().

Referenced by L1MuGMTMerger::merge_rank().

00059                                                                          {
00060     std::vector<unsigned> addr(2);
00061     addr[0] = eta;
00062     addr[1] = q;
00063     return Lookup(idx, addr) [0];
00064   };

unsigned L1MuGMTLFMergeRankEtaQLUT::SpecificLookup_rank_etaq ( int  idx,
unsigned  eta,
unsigned  q 
) const [inline]

specific lookup function for rank_etaq

Definition at line 67 of file L1MuGMTLFMergeRankEtaQLUT.h.

References addr, and L1MuGMTLUT::Lookup().

Referenced by L1MuGMTMerger::merge_rank().

00067                                                                               {
00068     std::vector<unsigned> addr(2);
00069     addr[0] = eta;
00070     addr[1] = q;
00071     return Lookup(idx, addr) [1];
00072   };

unsigned L1MuGMTLFMergeRankEtaQLUT::TheLookupFunction ( int  idx,
unsigned  eta,
unsigned  q 
) const [private]

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

Definition at line 45 of file L1MuGMTLFMergeRankEtaQLUT.cc.

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

Referenced by LookupFunctionPacked().

00045                                                                                               {
00046   // idx is DT, BRPC, CSC, FRPC
00047   // INPUTS:  eta(6) q(3)
00048   // OUTPUTS: flag(1) rank_etaq(7) 
00049 
00050   const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();
00051 
00052   //  int isRPC = idx % 2;
00053   //  int isFWD = idx / 2;
00054  
00055   float etaValue = theTriggerScales->getRegionalEtaScale(idx)->getCenter( eta );
00056   
00057   
00058   unsigned flag = 0;
00059   switch (idx) {
00060   case 0: // DT
00061     if ( (q==1 || q==4 || q==6 || q==7) ||
00062                ( (q==2 || q==3) && (fabs(etaValue) < 0.9) ) ) flag=1;
00063     break;
00064   case 1: // bRPC
00065     if (q==0) flag=1; 
00066     break;  
00067   case 2: // CSC
00068     if ( (q==2 || fabs(etaValue) < 1.2) || 
00069          q==3) flag =1; 
00070     break; 
00071   case 3: // fRPC
00072     if (q==3) flag =1;
00073   }
00074 
00075   unsigned rank_etaq = 0;
00076 
00077   return flag << 7 | rank_etaq;
00078 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:26:54 2009 for CMSSW by  doxygen 1.5.4