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, unsigned fwVersion)
 

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 55 of file MicroGMTConfiguration.cc.

References amptDefaultParameters_cff::mu.

55 { 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 42 of file MicroGMTConfiguration.cc.

References amptDefaultParameters_cff::mu.

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

◆ calcMuonHwPhiExtra()

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

Definition at line 44 of file MicroGMTConfiguration.cc.

References amptDefaultParameters_cff::mu.

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

◆ calcMuonPhiExtra()

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

Definition at line 57 of file MicroGMTConfiguration.cc.

References amptDefaultParameters_cff::mu.

57  {
58  //use the LorentzVector to get phi in the range -pi to +pi exactly as in the emulator
59  math::PtEtaPhiMLorentzVector vec{0., 0., calcMuonHwPhiExtra(mu) * 0.010908, 0.};
60  return vec.phi();
61 }
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,
unsigned  fwVersion 
)
static

Definition at line 29 of file MicroGMTConfiguration.cc.

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

29  {
30  if (fwVersion >= 0x8010000) {
31  // From 2024 uGMT sends the full quality on to uGT
32  return muQual;
33  } else if (haloBit == 1 && (type == tftype::emtf_neg || type == tftype::emtf_pos)) {
34  // set quality to 0xF if the halo bit is set
35  return 0xF;
36  } else {
37  // use only the two MSBs for the muon to the uGT
38  return muQual & 0xC;
39  }
40 }