CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions

L1MuGMTSortRankUnit Class Reference

#include <L1MuGMTSortRankUnit.h>

List of all members.

Public Member Functions

 L1MuGMTSortRankUnit ()
 constructor
virtual ~L1MuGMTSortRankUnit ()
 destructor

Static Public Member Functions

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

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().

                                                                                 {

  if ( muon == 0 || muon->empty() ) return 0;

  unsigned lut_idx= muon->type_idx();
  
  // obtain inputs as coded in HW
  unsigned eta = muon->eta_packed();
  unsigned q = muon->quality_packed();

  // lookup eta-q
  L1MuGMTLFSortRankEtaQLUT* etaq_lut = L1MuGMTConfig::getLFSortRankEtaQLUT();
  return  etaq_lut->SpecificLookup_vlq (lut_idx, eta, q);
}
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().

                                                                 {

  if ( muon == 0 || muon->empty() ) return 1;

  unsigned lut_idx= muon->type_idx();
  
  // obtain inputs as coded in HW
  unsigned eta = muon->eta_packed();
  unsigned phi = muon->phi_packed();

  // lookup eta-q
  L1MuGMTLFSortRankEtaPhiLUT* etaphi_lut = L1MuGMTConfig::getLFSortRankEtaPhiLUT();

  return  etaphi_lut->SpecificLookup_rank_etaphi (lut_idx, eta, phi) == 3;
}
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().

                                                                    {

  if ( muon == 0 || muon->empty() ) return 0;

  unsigned lut_idx= muon->type_idx();
  
  // obtain inputs as coded in HW
  unsigned eta = muon->eta_packed();
  unsigned q = muon->quality_packed();
  unsigned pt  = muon->pt_packed();
  unsigned phi = muon->phi_packed();

  // lookup eta-q
  L1MuGMTLFSortRankEtaQLUT* etaq_lut = L1MuGMTConfig::getLFSortRankEtaQLUT();
  unsigned rank_etaq = etaq_lut->SpecificLookup_rank_etaq (lut_idx, eta, q);
  
  // lookup pt-q
  L1MuGMTLFSortRankPtQLUT* ptq_lut = L1MuGMTConfig::getLFSortRankPtQLUT();
  unsigned rank_ptq = ptq_lut->SpecificLookup_rank_ptq (lut_idx, q, pt);
  
  // lookup etaphi
  L1MuGMTLFSortRankEtaPhiLUT* etaphi_lut = L1MuGMTConfig::getLFSortRankEtaPhiLUT();
  unsigned rank_etaphi = etaphi_lut->SpecificLookup_rank_etaphi (lut_idx, eta, phi);
  
  // combine
  L1MuGMTLFSortRankCombineLUT* combine_lut = L1MuGMTConfig::getLFSortRankCombineLUT();
  unsigned rank = combine_lut->SpecificLookup_sort_rank (lut_idx, rank_etaq, rank_ptq, rank_etaphi);

  return rank;
}