CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions
L1MuGMTLFPhiProLUT Class Reference

#include <L1MuGMTLFPhiProLUT.h>

Inheritance diagram for L1MuGMTLFPhiProLUT:
L1MuGMTLUT

Public Types

enum  { DT, BRPC, CSC, FRPC }
 
- Public Types inherited from L1MuGMTLUT
typedef std::pair< std::string, unsigned > port
 

Public Member Functions

 L1MuGMTLFPhiProLUT ()
 constuctor using function-lookup More...
 
unsigned LookupFunctionPacked (int idx, unsigned address) const override
 access to lookup function with packed input and output More...
 
unsigned SpecificLookup (int idx, unsigned eta, unsigned pt, unsigned charge) const
 specific lookup function for entire output field More...
 
unsigned SpecificLookup_dphi (int idx, unsigned eta, unsigned pt, unsigned charge) const
 specific lookup function for dphi More...
 
 ~L1MuGMTLFPhiProLUT () override
 destructor More...
 
- Public Member Functions inherited from L1MuGMTLUT
 L1MuGMTLUT ()
 Init and Destruct. More...
 
 L1MuGMTLUT (const char *name, const std::string &instances, const std::string &inputs, const std::string &outputs, unsigned vme_addr_width=0, bool distrRAM=false)
 
 L1MuGMTLUT (const char *name, const std::vector< std::string > &instances, const std::vector< port > &in_widths, const std::vector< port > &out_widths, unsigned vme_addr_width=0, bool distrRAM=false)
 constructor with init More...
 
void Load (const char *path)
 I/O functions. More...
 
std::vector< unsigned > Lookup (int idx, const std::vector< unsigned > &address) const
 additional lookup function (std::vector -> vector) More...
 
std::vector< unsigned > Lookup (int idx, unsigned address) const
 additional lookup function (unsigned -> std::vector) More...
 
unsigned LookupPacked (int idx, const std::vector< unsigned > &address) const
 additional lookup function (std::vector -> unisgned) More...
 
unsigned LookupPacked (int idx, unsigned) const
 
void MakeSubClass (const char *fname="", const char *template_file_h="../interface/L1MuGMTLUT_SubClass.h_template", const char *template_file_cc="../interface/L1MuGMTLUT_SubClass.cc_template")
 Add Generate SubClass method. More...
 
std::string Name ()
 
int numberOfInstances ()
 get the number of Instances More...
 
void Save (const char *path)
 save to LUT file More...
 
virtual ~L1MuGMTLUT ()
 destructor More...
 

Private Member Functions

void InitParameters ()
 Initialize scales, configuration parameters, alignment constants, ... More...
 
unsigned TheLookupFunction (int idx, unsigned eta, unsigned pt, unsigned charge) const
 The lookup function - here the functionality of the LUT is implemented. More...
 

Additional Inherited Members

- Protected Member Functions inherited from L1MuGMTLUT
void Init (const char *name, const std::vector< std::string > &instances, const std::vector< port > &in_widths, const std::vector< port > &out_widths, unsigned vme_addr_width=0, bool distrRAM=false)
 Initialize the LUT. More...
 
void Set (int idx, unsigned address, unsigned value)
 set with single address and value More...
 
std::vector< unsigned > u2vec (unsigned value, const std::vector< port > &widths) const
 generate composite address or value from compact unsigned More...
 
unsigned vec2u (const std::vector< unsigned > &vec, const std::vector< port > &widths) const
 generate address or value from composite address or value More...
 
- Protected Attributes inherited from L1MuGMTLUT
std::vector< std::vector< unsigned > > m_Contents
 
bool m_distrRAM
 
unsigned m_GeneralLUTVersion
 
bool m_initialized
 
std::vector< portm_Inputs
 
std::vector< std::string > m_InstNames
 
std::string m_name
 
int m_NLUTS
 
std::vector< portm_Outputs
 
bool m_saveFlag
 
unsigned m_TotalInWidth
 
unsigned m_TotalOutWidth
 
bool m_UseLookupFunction
 
unsigned m_vme_addr_width
 

Detailed Description

LFPhiPro look-up table

this class was automatically generated by L1MuGMTLUT::MakeSubClass()

Definition at line 38 of file L1MuGMTLFPhiProLUT.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
DT 
BRPC 
CSC 
FRPC 

Definition at line 40 of file L1MuGMTLFPhiProLUT.h.

40 { DT, BRPC, CSC, FRPC };

Constructor & Destructor Documentation

◆ L1MuGMTLFPhiProLUT()

L1MuGMTLFPhiProLUT::L1MuGMTLFPhiProLUT ( )
inline

constuctor using function-lookup

Definition at line 43 of file L1MuGMTLFPhiProLUT.h.

43  : L1MuGMTLUT("LFPhiPro", "DT BRPC CSC FRPC", "eta(4) pt(5) charge(1)", "dphi(9)", 10, false) {
45  };

References InitParameters().

◆ ~L1MuGMTLFPhiProLUT()

L1MuGMTLFPhiProLUT::~L1MuGMTLFPhiProLUT ( )
inlineoverride

destructor

Definition at line 48 of file L1MuGMTLFPhiProLUT.h.

48 {};

Member Function Documentation

◆ InitParameters()

void L1MuGMTLFPhiProLUT::InitParameters ( )
private

Initialize scales, configuration parameters, alignment constants, ...

Definition at line 40 of file L1MuGMTLFPhiProLUT.cc.

40 {}

Referenced by L1MuGMTLFPhiProLUT().

◆ LookupFunctionPacked()

unsigned L1MuGMTLFPhiProLUT::LookupFunctionPacked ( int  idx,
unsigned  address 
) const
inlineoverridevirtual

access to lookup function with packed input and output

Reimplemented from L1MuGMTLUT.

Definition at line 70 of file L1MuGMTLFPhiProLUT.h.

70  {
71  std::vector<unsigned> addr = u2vec(address, m_Inputs);
72  return TheLookupFunction(idx, addr[0], addr[1], addr[2]);
73  };

References generateTowerEtThresholdLUT::addr, heavyIonCSV_trainingSettings::idx, L1MuGMTLUT::m_Inputs, TheLookupFunction(), and L1MuGMTLUT::u2vec().

◆ SpecificLookup()

unsigned L1MuGMTLFPhiProLUT::SpecificLookup ( int  idx,
unsigned  eta,
unsigned  pt,
unsigned  charge 
) const
inline

specific lookup function for entire output field

Definition at line 60 of file L1MuGMTLFPhiProLUT.h.

60  {
61  std::vector<unsigned> addr(3);
62  addr[0] = eta;
63  addr[1] = pt;
64  addr[2] = charge;
65  return LookupPacked(idx, addr);
66  };

References generateTowerEtThresholdLUT::addr, ALCARECOTkAlJpsiMuMu_cff::charge, PVValHelper::eta, heavyIonCSV_trainingSettings::idx, L1MuGMTLUT::LookupPacked(), and DiDispStaMuonMonitor_cfi::pt.

◆ SpecificLookup_dphi()

unsigned L1MuGMTLFPhiProLUT::SpecificLookup_dphi ( int  idx,
unsigned  eta,
unsigned  pt,
unsigned  charge 
) const
inline

specific lookup function for dphi

Definition at line 51 of file L1MuGMTLFPhiProLUT.h.

51  {
52  std::vector<unsigned> addr(3);
53  addr[0] = eta;
54  addr[1] = pt;
55  addr[2] = charge;
56  return Lookup(idx, addr)[0];
57  };

References generateTowerEtThresholdLUT::addr, ALCARECOTkAlJpsiMuMu_cff::charge, PVValHelper::eta, heavyIonCSV_trainingSettings::idx, L1MuGMTLUT::Lookup(), and DiDispStaMuonMonitor_cfi::pt.

Referenced by L1MuGMTMerger::projectedPhi().

◆ TheLookupFunction()

unsigned L1MuGMTLFPhiProLUT::TheLookupFunction ( int  idx,
unsigned  eta,
unsigned  pt,
unsigned  charge 
) const
private

The lookup function - here the functionality of the LUT is implemented.

Definition at line 56 of file L1MuGMTLFPhiProLUT.cc.

56  {
57  // idx is DT, BRPC, CSC, FRPC
58  // INPUTS: eta(4) pt(5) charge(1)
59  // OUTPUTS: dphi(9)
60 
61  // const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();
62  const L1MuTriggerPtScale* theTriggerPtScale = L1MuGMTConfig::getTriggerPtScale();
63 
64  // static bool doProjection = SimpleConfigurable<bool> (false, "L1GlobalMuonTrigger:PropagatePhi" );
65  static bool doProjection = L1MuGMTConfig::getPropagatePhi();
66 
67  if (!doProjection)
68  return 0;
69 
70  int isRPC = idx % 2;
71  int isFWD = idx / 2;
72 
73  int isys = isFWD + 2 * isRPC; // DT, CSC, BRPC, FRPC
74  int ch_idx = (charge == 0) ? 1 : 0; // positive charge is 0 (but idx 1)
75 
76  // currently only support 3-bit eta (3 lower bits); ignore 4th bit
77  if (eta > 7)
78  eta -= 8;
79 
80  float dphi = L1MuGMTPhiLUT::dphi(isys,
81  1,
82  ch_idx,
83  (int)eta,
84  theTriggerPtScale->getPtScale()->getLowEdge(pt)); // use old LUT, here
85  // theTriggerScales->getPtScale()->getLowEdge(pt) ); // use old LUT, here
86 
87  int dphi_int = (int)((-dphi + 1.25 / 180. * M_PI + 2 * M_PI) / (2.5 / 180. * M_PI)) - 144;
88 
89  L1MuSignedPacking<9> PhiPacking;
90  return PhiPacking.packedFromIdx(dphi_int);
91 }

References ALCARECOTkAlJpsiMuMu_cff::charge, L1MuGMTPhiLUT::dphi(), PVValHelper::eta, L1MuScale::getLowEdge(), L1MuGMTConfig::getPropagatePhi(), L1MuTriggerPtScale::getPtScale(), L1MuGMTConfig::getTriggerPtScale(), heavyIonCSV_trainingSettings::idx, createfilelist::int, GeomDetEnumerators::isRPC(), M_PI, L1MuSignedPacking< Bits >::packedFromIdx(), and DiDispStaMuonMonitor_cfi::pt.

Referenced by LookupFunctionPacked().

L1MuGMTPhiLUT::dphi
static float dphi(int isys, int isISO, int icharge, int ieta, float pt)
look up delta-phi with integer eta
Definition: L1MuGMTPhiLUT.cc:68
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
GeomDetEnumerators::isRPC
bool isRPC(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:90
L1MuGMTLUT::m_Inputs
std::vector< port > m_Inputs
Definition: L1MuGMTLUT.h:214
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
L1MuGMTLFPhiProLUT::TheLookupFunction
unsigned TheLookupFunction(int idx, unsigned eta, unsigned pt, unsigned charge) const
The lookup function - here the functionality of the LUT is implemented.
Definition: L1MuGMTLFPhiProLUT.cc:56
L1MuTriggerPtScale
Definition: L1MuTriggerPtScale.h:33
generateTowerEtThresholdLUT.addr
addr
Definition: generateTowerEtThresholdLUT.py:57
PVValHelper::eta
Definition: PVValidationHelpers.h:70
L1MuScale::getLowEdge
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
L1MuTriggerPtScale::getPtScale
const L1MuScale * getPtScale() const
get the Pt scale
Definition: L1MuTriggerPtScale.h:59
createfilelist.int
int
Definition: createfilelist.py:10
L1MuGMTLFPhiProLUT::DT
Definition: L1MuGMTLFPhiProLUT.h:40
L1MuGMTLUT::LookupPacked
unsigned LookupPacked(int idx, unsigned) const
Definition: L1MuGMTLUT.h:272
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
L1MuGMTConfig::getPropagatePhi
static bool getPropagatePhi()
Definition: L1MuGMTConfig.h:130
L1MuGMTLFPhiProLUT::CSC
Definition: L1MuGMTLFPhiProLUT.h:40
L1MuGMTLUT::u2vec
std::vector< unsigned > u2vec(unsigned value, const std::vector< port > &widths) const
generate composite address or value from compact unsigned
Definition: L1MuGMTLUT.h:251
L1MuGMTLFPhiProLUT::FRPC
Definition: L1MuGMTLFPhiProLUT.h:40
L1MuSignedPacking
Definition: L1MuPacking.h:94
L1MuGMTLFPhiProLUT::BRPC
Definition: L1MuGMTLFPhiProLUT.h:40
L1MuGMTLFPhiProLUT::InitParameters
void InitParameters()
Initialize scales, configuration parameters, alignment constants, ...
Definition: L1MuGMTLFPhiProLUT.cc:40
L1MuGMTLUT::L1MuGMTLUT
L1MuGMTLUT()
Init and Destruct.
Definition: L1MuGMTLUT.h:80
L1MuGMTLUT::Lookup
std::vector< unsigned > Lookup(int idx, const std::vector< unsigned > &address) const
additional lookup function (std::vector -> vector)
Definition: L1MuGMTLUT.h:121
L1MuGMTConfig::getTriggerPtScale
static const L1MuTriggerPtScale * getTriggerPtScale()
Definition: L1MuGMTConfig.h:181
L1MuSignedPacking::packedFromIdx
unsigned packedFromIdx(int idx) const override
get the packed notation of a value, check range
Definition: L1MuPacking.h:104