CMS 3D CMS Logo

L1MuGMTLFSortRankEtaQLUT Class Reference

LFSortRankEtaQ look-up table. More...

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

Inheritance diagram for L1MuGMTLFSortRankEtaQLUT:

L1MuGMTLUT

List of all members.

Public Types

enum  { DT, BRPC, CSC, FRPC }

Public Member Functions

 L1MuGMTLFSortRankEtaQLUT ()
 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_rank_etaq (int idx, unsigned eta, unsigned q) const
 specific lookup function for rank_etaq
unsigned SpecificLookup_vlq (int idx, unsigned eta, unsigned q) const
 specific lookup function for vlq
virtual ~L1MuGMTLFSortRankEtaQLUT ()
 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.

Private Attributes

unsigned m_version
 Private data members (LUT parameters);.


Detailed Description

LFSortRankEtaQ look-up table.

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

Definition at line 42 of file L1MuGMTLFSortRankEtaQLUT.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
DT 
BRPC 
CSC 
FRPC 

Definition at line 45 of file L1MuGMTLFSortRankEtaQLUT.h.

00045 {DT, BRPC, CSC, FRPC};


Constructor & Destructor Documentation

L1MuGMTLFSortRankEtaQLUT::L1MuGMTLFSortRankEtaQLUT (  )  [inline]

constuctor using function-lookup

Definition at line 48 of file L1MuGMTLFSortRankEtaQLUT.h.

References InitParameters().

00048                              : L1MuGMTLUT("LFSortRankEtaQ", 
00049                                        "DT BRPC CSC FRPC",
00050                                        "eta(6) q(3)",
00051                                        "vlq(2) rank_etaq(2)", 7, false) {
00052     InitParameters();
00053   } ;

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

destructor

Definition at line 56 of file L1MuGMTLFSortRankEtaQLUT.h.

00056 {};


Member Function Documentation

void L1MuGMTLFSortRankEtaQLUT::InitParameters (  )  [private]

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

Definition at line 37 of file L1MuGMTLFSortRankEtaQLUT.cc.

References L1MuGMTConfig::getVersionSortRankEtaQLUT(), and m_version.

Referenced by L1MuGMTLFSortRankEtaQLUT().

virtual unsigned L1MuGMTLFSortRankEtaQLUT::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 L1MuGMTLFSortRankEtaQLUT.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 L1MuGMTLFSortRankEtaQLUT::SpecificLookup ( int  idx,
unsigned  eta,
unsigned  q 
) const [inline]

specific lookup function for entire output field

Definition at line 75 of file L1MuGMTLFSortRankEtaQLUT.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 L1MuGMTLFSortRankEtaQLUT::SpecificLookup_rank_etaq ( int  idx,
unsigned  eta,
unsigned  q 
) const [inline]

specific lookup function for rank_etaq

Definition at line 67 of file L1MuGMTLFSortRankEtaQLUT.h.

References addr, and L1MuGMTLUT::Lookup().

Referenced by L1MuGMTSortRankUnit::sort_rank().

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

unsigned L1MuGMTLFSortRankEtaQLUT::SpecificLookup_vlq ( int  idx,
unsigned  eta,
unsigned  q 
) const [inline]

specific lookup function for vlq

Definition at line 59 of file L1MuGMTLFSortRankEtaQLUT.h.

References addr, and L1MuGMTLUT::Lookup().

Referenced by L1MuGMTSortRankUnit::getVeryLowQualityLevel().

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

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

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

Definition at line 58 of file L1MuGMTLFSortRankEtaQLUT.cc.

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

Referenced by LookupFunctionPacked().

00058                                                                                              {
00059   // idx is DT, BRPC, CSC, FRPC
00060   // INPUTS:  eta(6) q(3)
00061   // OUTPUTS: vlq(2) rank_etaq(2) 
00062 
00063   const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();
00064 
00065   int isRPC = idx % 2;
00066   //  int isFWD = idx / 2;
00067 
00068   float etaValue = fabs ( theTriggerScales->getRegionalEtaScale(idx)->getCenter( eta ) );
00069 
00070   //
00071   // very-low-quality flags
00072   //
00073   // 0 .. no VLQ set
00074   // 1 .. output muon will be quality 2 (disable in single and di-muon trigger)
00075   // 2 .. output muon will be quality 3 (disable in single-muon trigger only)
00076   // 3 .. output muon will be quality 4 (disable in di-muon trigger only)
00077 
00078   unsigned vlq = 0;
00079   // RPC selection
00080   if (isRPC) {
00081     if ( ( q == 0 && ( ( etaValue > 1.04 && etaValue < 1.24 ) || // Q0, high rate, high noise
00082                        ( etaValue > 1.48 ) ) ) ||                // Q0, high rate, high noise
00083          ( q == 1 && ( ( etaValue > 0.83 && etaValue < 1.04 ) || // Q1, high rate
00084                        ( etaValue > 1.14 && etaValue < 1.24 ) || // Q1, high noise
00085                        ( etaValue > 1.36 ) ) ) ||                // Q1, high rate
00086          ( q == 2 && ( etaValue > 0.83 && etaValue < 0.93 ) ) )  // Q2, high rate
00087       vlq = 1;
00088   }                         
00089       
00090   // CSC selection
00091   if ( idx == 2 ) { // CSC
00092     if (q == 2) {
00093       //      if ( etaValue > 1.1 && etaValue < 1.2 ) 
00094       //vlq = 1; // disable in single and di-muon trigger
00095       //else 
00096       
00097       // use m_version to distinguish startup (v=2) and full geometry (v=1)
00098       if ( m_version == 1 || 
00099           (m_version == 2 && (etaValue<1.5 || etaValue>1.8)) ) vlq = 2; // disable in single-muon trigger only
00100     }
00101     if (q == 1) {
00102       if (etaValue > 1.2)
00103         vlq = 2;   // disable in single-muon trigger only
00104     }
00105   }
00106     
00107   if ( L1MuGMTConfig::getDoOvlRpcAnd() ) {
00108     if ( idx == 0 ) { // DT
00109       if ( etaValue > 0.91 ) vlq = 1;
00110     }
00111     if ( idx == 2 ) { // CSC
00112       if ( etaValue <  1.06 ) vlq = 1;  
00113     }
00114   }
00115 
00116   //
00117   // Rank contribution from eta and quality
00118   //
00119 
00120   // by default return maximum 
00121   // LUT can later be used to reduce the sort rank of certain regions
00122   unsigned rank_etaq = 3;
00123 
00124   return (vlq << 2)  | rank_etaq;
00125 }


Member Data Documentation

unsigned L1MuGMTLFSortRankEtaQLUT::m_version [private]

Private data members (LUT parameters);.

Definition at line 100 of file L1MuGMTLFSortRankEtaQLUT.h.

Referenced by InitParameters(), and TheLookupFunction().


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