CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions
L1MuGMTSortRankUnit Class Reference

#include <L1MuGMTSortRankUnit.h>

Public Member Functions

 L1MuGMTSortRankUnit ()
 constructor More...
 
virtual ~L1MuGMTSortRankUnit ()
 destructor More...
 

Static Public Member Functions

static unsigned getVeryLowQualityLevel (const L1MuRegionalCand *)
 Very low quality bits. More...
 
static bool isDisabled (const L1MuRegionalCand *)
 Diable bit. More...
 
static unsigned sort_rank (const L1MuRegionalCand *)
 Sort Rank Table. More...
 

Detailed Description

L1 Global Muon Trigger Sort Rank Unit.

Return sort rank based on look-up-tables.

Definition at line 45 of file L1MuGMTSortRankUnit.h.

Constructor & Destructor Documentation

L1MuGMTSortRankUnit::L1MuGMTSortRankUnit ( )

constructor

virtual L1MuGMTSortRankUnit::~L1MuGMTSortRankUnit ( )
virtual

destructor

Member Function Documentation

unsigned L1MuGMTSortRankUnit::getVeryLowQualityLevel ( const L1MuRegionalCand muon)
static

Very low quality bits.

Definition at line 75 of file L1MuGMTSortRankUnit.cc.

References L1MuRegionalCand::empty(), eta(), L1MuRegionalCand::eta_packed(), L1MuGMTConfig::getLFSortRankEtaQLUT(), lumiQueryAPI::q, L1MuRegionalCand::quality_packed(), L1MuGMTLFSortRankEtaQLUT::SpecificLookup_vlq(), and L1MuRegionalCand::type_idx().

Referenced by L1MuGMTMerger::createDTCSCCand(), and L1MuGMTMerger::createRPCCand().

75  {
76 
77  if ( muon == 0 || muon->empty() ) return 0;
78 
79  unsigned lut_idx= muon->type_idx();
80 
81  // obtain inputs as coded in HW
82  unsigned eta = muon->eta_packed();
83  unsigned q = muon->quality_packed();
84 
85  // lookup eta-q
87  return etaq_lut->SpecificLookup_vlq (lut_idx, eta, q);
88 }
virtual bool empty() const
return empty flag
T eta() const
unsigned eta_packed() const
return eta packed as in hardware
unsigned SpecificLookup_vlq(int idx, unsigned eta, unsigned q) const
specific lookup function for vlq
static L1MuGMTLFSortRankEtaQLUT * getLFSortRankEtaQLUT()
unsigned int quality_packed() const
return quality packed as in hardware
unsigned type_idx() const
return type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
bool L1MuGMTSortRankUnit::isDisabled ( const L1MuRegionalCand muon)
static

Diable bit.

Definition at line 90 of file L1MuGMTSortRankUnit.cc.

References L1MuRegionalCand::empty(), eta(), L1MuRegionalCand::eta_packed(), L1MuGMTConfig::getLFSortRankEtaPhiLUT(), phi, L1MuRegionalCand::phi_packed(), L1MuGMTLFSortRankEtaPhiLUT::SpecificLookup_rank_etaphi(), and L1MuRegionalCand::type_idx().

Referenced by L1MuGMTMatcher::lookup_mq(), and L1MuGMTMerger::merge().

90  {
91 
92  if ( muon == 0 || muon->empty() ) return 1;
93 
94  unsigned lut_idx= muon->type_idx();
95 
96  // obtain inputs as coded in HW
97  unsigned eta = muon->eta_packed();
98  unsigned phi = muon->phi_packed();
99 
100  // lookup eta-q
102 
103  return etaphi_lut->SpecificLookup_rank_etaphi (lut_idx, eta, phi) == 3;
104 }
static L1MuGMTLFSortRankEtaPhiLUT * getLFSortRankEtaPhiLUT()
unsigned SpecificLookup_rank_etaphi(int idx, unsigned eta, unsigned phi) const
specific lookup function for rank_etaphi
virtual bool empty() const
return empty flag
T eta() const
unsigned eta_packed() const
return eta packed as in hardware
unsigned type_idx() const
return type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
unsigned phi_packed() const
return phi packed as in hardware
Definition: DDAxes.h:10
unsigned L1MuGMTSortRankUnit::sort_rank ( const L1MuRegionalCand muon)
static

Sort Rank Table.

Definition at line 44 of file L1MuGMTSortRankUnit.cc.

References L1MuRegionalCand::empty(), eta(), L1MuRegionalCand::eta_packed(), L1MuGMTConfig::getLFSortRankCombineLUT(), L1MuGMTConfig::getLFSortRankEtaPhiLUT(), L1MuGMTConfig::getLFSortRankEtaQLUT(), L1MuGMTConfig::getLFSortRankPtQLUT(), phi, L1MuRegionalCand::phi_packed(), L1MuRegionalCand::pt_packed(), lumiQueryAPI::q, L1MuRegionalCand::quality_packed(), L1MuGMTLFSortRankEtaPhiLUT::SpecificLookup_rank_etaphi(), L1MuGMTLFSortRankEtaQLUT::SpecificLookup_rank_etaq(), L1MuGMTLFSortRankPtQLUT::SpecificLookup_rank_ptq(), L1MuGMTLFSortRankCombineLUT::SpecificLookup_sort_rank(), and L1MuRegionalCand::type_idx().

Referenced by L1MuGMTMerger::createDTCSCCand(), L1MuGMTMerger::createMergedCand(), and L1MuGMTMerger::createRPCCand().

44  {
45 
46  if ( muon == 0 || muon->empty() ) return 0;
47 
48  unsigned lut_idx= muon->type_idx();
49 
50  // obtain inputs as coded in HW
51  unsigned eta = muon->eta_packed();
52  unsigned q = muon->quality_packed();
53  unsigned pt = muon->pt_packed();
54  unsigned phi = muon->phi_packed();
55 
56  // lookup eta-q
58  unsigned rank_etaq = etaq_lut->SpecificLookup_rank_etaq (lut_idx, eta, q);
59 
60  // lookup pt-q
62  unsigned rank_ptq = ptq_lut->SpecificLookup_rank_ptq (lut_idx, q, pt);
63 
64  // lookup etaphi
66  unsigned rank_etaphi = etaphi_lut->SpecificLookup_rank_etaphi (lut_idx, eta, phi);
67 
68  // combine
70  unsigned rank = combine_lut->SpecificLookup_sort_rank (lut_idx, rank_etaq, rank_ptq, rank_etaphi);
71 
72  return rank;
73 }
unsigned SpecificLookup_rank_ptq(int idx, unsigned q, unsigned pt) const
specific lookup function for rank_ptq
static L1MuGMTLFSortRankEtaPhiLUT * getLFSortRankEtaPhiLUT()
unsigned SpecificLookup_rank_etaphi(int idx, unsigned eta, unsigned phi) const
specific lookup function for rank_etaphi
virtual bool empty() const
return empty flag
unsigned SpecificLookup_rank_etaq(int idx, unsigned eta, unsigned q) const
specific lookup function for rank_etaq
T eta() const
static L1MuGMTLFSortRankCombineLUT * getLFSortRankCombineLUT()
static L1MuGMTLFSortRankPtQLUT * getLFSortRankPtQLUT()
unsigned eta_packed() const
return eta packed as in hardware
static L1MuGMTLFSortRankEtaQLUT * getLFSortRankEtaQLUT()
unsigned SpecificLookup_sort_rank(int idx, unsigned rank_etaq, unsigned rank_ptq, unsigned rank_etaphi) const
specific lookup function for sort_rank
unsigned int quality_packed() const
return quality packed as in hardware
unsigned pt_packed() const
return pt packed as in hardware
unsigned type_idx() const
return type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
unsigned phi_packed() const
return phi packed as in hardware
Definition: DDAxes.h:10