CMS 3D CMS Logo

List of all members | Public Types | Static Public Member Functions
l1t::MicroGMTConfiguration Class Reference

#include <MicroGMTConfiguration.h>

Public Types

typedef MuonCaloSum CaloInput
 
typedef MuonCaloSumBxCollection CaloInputCollection
 
enum  input_t {
  PT, PT_COARSE, PHI, ETA,
  ETA_COARSE, QUALITY, DELTA_ETA_RED, DELTA_PHI_RED,
  ENERGYSUM, ETA_FINE_BIT
}
 
typedef RegionalMuonCandBxCollection InputCollection
 
typedef GMTInternalMuon InterMuon
 
typedef GMTInternalMuonCollection InterMuonCollection
 
typedef GMTInternalMuonList InterMuonList
 
typedef Muon OutMuon
 
enum  output_t { ETA_OUT, PHI_OUT }
 
typedef MuonBxCollection OutputCollection
 
typedef std::pair< input_t, int > PortType
 

Static Public Member Functions

static int calcGlobalPhi (int locPhi, tftype t, int proc)
 
static double calcMuonEtaExtra (const l1t::Muon &mu)
 
static int calcMuonHwEtaExtra (const l1t::Muon &mu)
 
static int calcMuonHwPhiExtra (const l1t::Muon &mu)
 
static double calcMuonPhiExtra (const l1t::Muon &mu)
 
static unsigned getTwosComp (const int signedInt, const int width)
 
static int setOutputMuonQuality (int muQual, tftype type, int haloBit)
 

Detailed Description

Definition at line 16 of file MicroGMTConfiguration.h.

Member Typedef Documentation

◆ CaloInput

Definition at line 40 of file MicroGMTConfiguration.h.

◆ CaloInputCollection

Definition at line 41 of file MicroGMTConfiguration.h.

◆ InputCollection

Definition at line 34 of file MicroGMTConfiguration.h.

◆ InterMuon

Definition at line 37 of file MicroGMTConfiguration.h.

◆ InterMuonCollection

Definition at line 38 of file MicroGMTConfiguration.h.

◆ InterMuonList

Definition at line 39 of file MicroGMTConfiguration.h.

◆ OutMuon

Definition at line 36 of file MicroGMTConfiguration.h.

◆ OutputCollection

Definition at line 35 of file MicroGMTConfiguration.h.

◆ PortType

Definition at line 33 of file MicroGMTConfiguration.h.

Member Enumeration Documentation

◆ input_t

◆ output_t

Member Function Documentation

◆ calcGlobalPhi()

int l1t::MicroGMTConfiguration::calcGlobalPhi ( int  locPhi,
tftype  t,
int  proc 
)
static

Definition at line 11 of file MicroGMTConfiguration.cc.

References l1t::bmtf, ValidateTausOnZEEFastSim_cff::proc, and submitPVValidationJobs::t.

Referenced by L1TStage2uGMT::analyze(), CandidateSimMuonMatcher::ghostBust(), CandidateSimMuonMatcher::match(), and L1Analysis::L1AnalysisL1UpgradeTfMuon::SetTfMuon().

11  {
12  int globPhi = 0;
13  if (t == bmtf) {
14  // each BMTF processor corresponds to a 30 degree wedge = 48 in int-scale
15  globPhi = (proc)*48 + locPhi;
16  // first processor starts at CMS phi = -15 degrees...
17  globPhi += 576 - 24;
18  // handle wrap-around (since we add the 576-24, the value will never be negative!)
19  globPhi = globPhi % 576;
20  } else {
21  // all others correspond to 60 degree sectors = 96 in int-scale
22  globPhi = (proc)*96 + locPhi;
23  // first processor starts at CMS phi = 15 degrees (24 in int)... Handle wrap-around with %. Add 576 to make sure the number is positive
24  globPhi = (globPhi + 600) % 576;
25  }
26  return globPhi;
27 }

◆ calcMuonEtaExtra()

double l1t::MicroGMTConfiguration::calcMuonEtaExtra ( const l1t::Muon mu)
static

Definition at line 52 of file MicroGMTConfiguration.cc.

References amptDefaultParameters_cff::mu.

52 { return calcMuonHwEtaExtra(mu) * 0.010875; }
static int calcMuonHwEtaExtra(const l1t::Muon &mu)

◆ calcMuonHwEtaExtra()

int l1t::MicroGMTConfiguration::calcMuonHwEtaExtra ( const l1t::Muon mu)
static

Definition at line 39 of file MicroGMTConfiguration.cc.

References amptDefaultParameters_cff::mu.

39 { return mu.hwEta() + mu.hwDEtaExtra(); }

◆ calcMuonHwPhiExtra()

int l1t::MicroGMTConfiguration::calcMuonHwPhiExtra ( const l1t::Muon mu)
static

Definition at line 41 of file MicroGMTConfiguration.cc.

References amptDefaultParameters_cff::mu.

41  {
42  auto hwPhiExtra = mu.hwPhi() + mu.hwDPhiExtra();
43  while (hwPhiExtra < 0) {
44  hwPhiExtra += 576;
45  }
46  while (hwPhiExtra > 575) {
47  hwPhiExtra -= 576;
48  }
49  return hwPhiExtra;
50 }

◆ calcMuonPhiExtra()

double l1t::MicroGMTConfiguration::calcMuonPhiExtra ( const l1t::Muon mu)
static

Definition at line 54 of file MicroGMTConfiguration.cc.

References amptDefaultParameters_cff::mu.

54  {
55  //use the LorentzVector to get phi in the range -pi to +pi exactly as in the emulator
56  math::PtEtaPhiMLorentzVector vec{0., 0., calcMuonHwPhiExtra(mu) * 0.010908, 0.};
57  return vec.phi();
58 }
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
Definition: LorentzVector.h:25
static int calcMuonHwPhiExtra(const l1t::Muon &mu)

◆ getTwosComp()

unsigned l1t::MicroGMTConfiguration::getTwosComp ( const int  signedInt,
const int  width 
)
static

Definition at line 3 of file MicroGMTConfiguration.cc.

References ApeEstimator_cff::width.

Referenced by l1t::MicroGMTIsolationUnit::getCaloIndex().

3  {
4  if (signed_int >= 0) {
5  return (unsigned)signed_int;
6  }
7  int all_one = (1 << width) - 1;
8  return ((-signed_int) ^ all_one) + 1;
9 }

◆ setOutputMuonQuality()

int l1t::MicroGMTConfiguration::setOutputMuonQuality ( int  muQual,
tftype  type,
int  haloBit 
)
static

Definition at line 29 of file MicroGMTConfiguration.cc.

References l1t::emtf_neg, and l1t::emtf_pos.

29  {
30  // use only the two MSBs for the muon to the uGT
31  int outQual = muQual & 0xC;
32  if (haloBit == 1 && (type == tftype::emtf_neg || type == tftype::emtf_pos)) {
33  // set quality to 0xF if the halo bit is set
34  outQual = 0xF;
35  }
36  return outQual;
37 }