CMS 3D CMS Logo

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 42 of file L1MuGMTSortRankUnit.h.

Constructor & Destructor Documentation

◆ L1MuGMTSortRankUnit()

L1MuGMTSortRankUnit::L1MuGMTSortRankUnit ( )

constructor

◆ ~L1MuGMTSortRankUnit()

virtual L1MuGMTSortRankUnit::~L1MuGMTSortRankUnit ( )
virtual

destructor

Member Function Documentation

◆ getVeryLowQualityLevel()

unsigned L1MuGMTSortRankUnit::getVeryLowQualityLevel ( const L1MuRegionalCand muon)
static

Very low quality bits.

Definition at line 72 of file L1MuGMTSortRankUnit.cc.

References PVValHelper::eta, L1MuGMTConfig::getLFSortRankEtaQLUT(), submitPVResolutionJobs::q, and L1MuGMTLFSortRankEtaQLUT::SpecificLookup_vlq().

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

72  {
73  if (muon == nullptr || muon->empty())
74  return 0;
75 
76  unsigned lut_idx = muon->type_idx();
77 
78  // obtain inputs as coded in HW
79  unsigned eta = muon->eta_packed();
80  unsigned q = muon->quality_packed();
81 
82  // lookup eta-q
84  return etaq_lut->SpecificLookup_vlq(lut_idx, eta, q);
85 }
unsigned SpecificLookup_vlq(int idx, unsigned eta, unsigned q) const
specific lookup function for vlq
static L1MuGMTLFSortRankEtaQLUT * getLFSortRankEtaQLUT()

◆ isDisabled()

bool L1MuGMTSortRankUnit::isDisabled ( const L1MuRegionalCand muon)
static

Diable bit.

Definition at line 87 of file L1MuGMTSortRankUnit.cc.

References PVValHelper::eta, L1MuGMTConfig::getLFSortRankEtaPhiLUT(), phi, and L1MuGMTLFSortRankEtaPhiLUT::SpecificLookup_rank_etaphi().

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

87  {
88  if (muon == nullptr || muon->empty())
89  return true;
90 
91  unsigned lut_idx = muon->type_idx();
92 
93  // obtain inputs as coded in HW
94  unsigned eta = muon->eta_packed();
95  unsigned phi = muon->phi_packed();
96 
97  // lookup eta-q
99 
100  return etaphi_lut->SpecificLookup_rank_etaphi(lut_idx, eta, phi) == 3;
101 }
static L1MuGMTLFSortRankEtaPhiLUT * getLFSortRankEtaPhiLUT()
unsigned SpecificLookup_rank_etaphi(int idx, unsigned eta, unsigned phi) const
specific lookup function for rank_etaphi

◆ sort_rank()

unsigned L1MuGMTSortRankUnit::sort_rank ( const L1MuRegionalCand muon)
static

Sort Rank Table.

Definition at line 41 of file L1MuGMTSortRankUnit.cc.

References PVValHelper::eta, L1MuGMTConfig::getLFSortRankCombineLUT(), L1MuGMTConfig::getLFSortRankEtaPhiLUT(), L1MuGMTConfig::getLFSortRankEtaQLUT(), L1MuGMTConfig::getLFSortRankPtQLUT(), phi, DiDispStaMuonMonitor_cfi::pt, submitPVResolutionJobs::q, L1MuGMTLFSortRankEtaPhiLUT::SpecificLookup_rank_etaphi(), L1MuGMTLFSortRankEtaQLUT::SpecificLookup_rank_etaq(), L1MuGMTLFSortRankPtQLUT::SpecificLookup_rank_ptq(), and L1MuGMTLFSortRankCombineLUT::SpecificLookup_sort_rank().

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

41  {
42  if (muon == nullptr || muon->empty())
43  return 0;
44 
45  unsigned lut_idx = muon->type_idx();
46 
47  // obtain inputs as coded in HW
48  unsigned eta = muon->eta_packed();
49  unsigned q = muon->quality_packed();
50  unsigned pt = muon->pt_packed();
51  unsigned phi = muon->phi_packed();
52 
53  // lookup eta-q
55  unsigned rank_etaq = etaq_lut->SpecificLookup_rank_etaq(lut_idx, eta, q);
56 
57  // lookup pt-q
59  unsigned rank_ptq = ptq_lut->SpecificLookup_rank_ptq(lut_idx, q, pt);
60 
61  // lookup etaphi
63  unsigned rank_etaphi = etaphi_lut->SpecificLookup_rank_etaphi(lut_idx, eta, phi);
64 
65  // combine
67  unsigned rank = combine_lut->SpecificLookup_sort_rank(lut_idx, rank_etaq, rank_ptq, rank_etaphi);
68 
69  return rank;
70 }
static L1MuGMTLFSortRankEtaPhiLUT * getLFSortRankEtaPhiLUT()
static L1MuGMTLFSortRankCombineLUT * getLFSortRankCombineLUT()
static L1MuGMTLFSortRankPtQLUT * getLFSortRankPtQLUT()
unsigned SpecificLookup_rank_etaq(int idx, unsigned eta, unsigned q) const
specific lookup function for rank_etaq
unsigned SpecificLookup_rank_ptq(int idx, unsigned q, unsigned pt) const
specific lookup function for rank_ptq
unsigned SpecificLookup_rank_etaphi(int idx, unsigned eta, unsigned phi) const
specific lookup function for rank_etaphi
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