Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:22:14

0001 //-------------------------------------------------
0002 //
0003 //   Class: L1MuGMTConfig
0004 //
0005 //   Description: Configuration parameters for L1GlobalMuonTrigger
0006 //
0007 //
0008 //
0009 //   Author :
0010 //   N. Neumeister             CERN EP
0011 //
0012 //   Migrated to CMSSW:
0013 //   I. Mikulec
0014 //
0015 //--------------------------------------------------
0016 
0017 //-----------------------
0018 // This Class's Header --
0019 //-----------------------
0020 
0021 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTConfig.h"
0022 
0023 //---------------
0024 // C++ Headers --
0025 //---------------
0026 
0027 #include <iostream>
0028 #include <fstream>
0029 #include <string>
0030 
0031 //-------------------------------
0032 // Collaborating Class Headers --
0033 //-------------------------------
0034 
0035 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0036 #include "FWCore/Utilities/interface/InputTag.h"
0037 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTReg.h"
0038 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTEtaLUT.h"
0039 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFCOUDeltaEtaLUT.h"
0040 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFDeltaEtaLUT.h"
0041 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFDisableHotLUT.h"
0042 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFEtaConvLUT.h"
0043 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMatchQualLUT.h"
0044 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankCombineLUT.h"
0045 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankEtaPhiLUT.h"
0046 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankEtaQLUT.h"
0047 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankPtQLUT.h"
0048 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFOvlEtaConvLUT.h"
0049 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFPhiProEtaConvLUT.h"
0050 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFPhiProLUT.h"
0051 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFPtMixLUT.h"
0052 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankCombineLUT.h"
0053 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankEtaPhiLUT.h"
0054 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankEtaQLUT.h"
0055 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankPtQLUT.h"
0056 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMIAUEtaConvLUT.h"
0057 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMIAUEtaProLUT.h"
0058 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMIAUPhiPro1LUT.h"
0059 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMIAUPhiPro2LUT.h"
0060 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTPhiLUT.h"
0061 
0062 #include "CondFormats/L1TObjects/interface/L1MuGMTScales.h"
0063 #include "CondFormats/L1TObjects/interface/L1MuGMTParameters.h"
0064 #include "CondFormats/L1TObjects/interface/L1MuGMTChannelMask.h"
0065 
0066 #include "CondFormats/L1TObjects/interface/L1CaloGeometry.h"
0067 
0068 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0069 
0070 // --------------------------------
0071 //       class L1MuGMTConfig
0072 //---------------------------------
0073 using namespace std;
0074 
0075 //----------------
0076 // Constructors --
0077 //----------------
0078 
0079 L1MuGMTConfig::L1MuGMTConfig(const edm::ParameterSet& ps) {
0080   m_ps = &ps;
0081 
0082   m_DTInputTag = m_ps->getParameter<edm::InputTag>("DTCandidates");
0083   m_CSCInputTag = m_ps->getParameter<edm::InputTag>("CSCCandidates");
0084   m_RPCbInputTag = m_ps->getParameter<edm::InputTag>("RPCbCandidates");
0085   m_RPCfInputTag = m_ps->getParameter<edm::InputTag>("RPCfCandidates");
0086   m_MipIsoInputTag = m_ps->getParameter<edm::InputTag>("MipIsoData");
0087 
0088   m_debug = true;
0089   m_dbgLevel = m_ps->getUntrackedParameter<int>("Debug", 0);
0090 
0091   // set min and max bunch crossing
0092   m_BxMin = m_ps->getParameter<int>("BX_min");
0093   m_BxMax = m_ps->getParameter<int>("BX_max");
0094 
0095   // set min and max bunch crossing for the readout
0096   m_BxMinRo = m_ps->getParameter<int>("BX_min_readout");
0097   m_BxMaxRo = m_ps->getParameter<int>("BX_max_readout");
0098 }
0099 
0100 //--------------
0101 // Destructor --
0102 //--------------
0103 L1MuGMTConfig::~L1MuGMTConfig() {}
0104 
0105 //--------------
0106 // Operations --
0107 //--------------
0108 
0109 void L1MuGMTConfig::setDefaults() {
0110   // set weights for eta and phi
0111   m_EtaWeight_barrel = m_GMTParams->getEtaWeight_barrel();
0112   m_PhiWeight_barrel = m_GMTParams->getPhiWeight_barrel();
0113   m_EtaPhiThreshold_barrel = m_GMTParams->getEtaPhiThreshold_barrel();
0114 
0115   m_EtaWeight_endcap = m_GMTParams->getEtaWeight_endcap();
0116   m_PhiWeight_endcap = m_GMTParams->getPhiWeight_endcap();
0117   m_EtaPhiThreshold_endcap = m_GMTParams->getEtaPhiThreshold_endcap();
0118 
0119   m_EtaWeight_COU = m_GMTParams->getEtaWeight_COU();
0120   m_PhiWeight_COU = m_GMTParams->getPhiWeight_COU();
0121   m_EtaPhiThreshold_COU = m_GMTParams->getEtaPhiThreshold_COU();
0122 
0123   m_CaloTrigger = m_GMTParams->getCaloTrigger();
0124   m_IsolationCellSizeEta = m_GMTParams->getIsolationCellSizeEta();
0125   m_IsolationCellSizePhi = m_GMTParams->getIsolationCellSizePhi();
0126 
0127   m_DoOvlRpcAnd = m_GMTParams->getDoOvlRpcAnd();
0128 
0129   m_PropagatePhi = m_GMTParams->getPropagatePhi();
0130 
0131   m_VersionSortRankEtaQLUT = m_GMTParams->getVersionSortRankEtaQLUT();
0132   m_VersionLUTs = m_GMTParams->getVersionLUTs();
0133 
0134   if (Debug(1)) {
0135     stringstream stdss;
0136     stdss << endl
0137           << "*******************************************" << endl
0138           << "**** L1 Global Muon Trigger settings : ****" << endl
0139           << "*******************************************" << endl
0140           << endl
0141 
0142           << "L1 Global Muon Trigger : DTCandidates : " << m_DTInputTag << endl
0143           << "L1 Global Muon Trigger : CSCCandidates : " << m_CSCInputTag << endl
0144           << "L1 Global Muon Trigger : RPCbCandidates : " << m_RPCbInputTag << endl
0145           << "L1 Global Muon Trigger : RPCfCandidates : " << m_RPCfInputTag << endl
0146           << "L1 Global Muon Trigger : debug level : " << m_dbgLevel << endl
0147           << "L1 Global Muon Trigger : minimal bunch-crossing : " << m_BxMin << endl
0148           << "L1 Global Muon Trigger : maximal bunch-crossing : " << m_BxMax << endl
0149           << "L1 Global Muon Trigger : barrel eta weight : " << m_EtaWeight_barrel << endl
0150           << "L1 Global Muon Trigger : barrel phi weight : " << m_PhiWeight_barrel << endl
0151           << "L1 Global Muon Trigger : barrel eta-phi threshold : " << m_EtaPhiThreshold_barrel << endl
0152           << "L1 Global Muon Trigger : endcap eta weight : " << m_EtaWeight_endcap << endl
0153           << "L1 Global Muon Trigger : endcap phi weight : " << m_PhiWeight_endcap << endl
0154           << "L1 Global Muon Trigger : endcap eta-phi threshold : " << m_EtaPhiThreshold_endcap << endl
0155           << "L1 Global Muon Trigger : cancel out unit eta weight : " << m_EtaWeight_COU << endl
0156           << "L1 Global Muon Trigger : cancel out unit phi weight : " << m_PhiWeight_COU << endl
0157           << "L1 Global Muon Trigger : cancel out unit eta-phi threshold : " << m_EtaPhiThreshold_COU << endl
0158           << "L1 Global Muon Trigger : calorimeter trigger : " << m_CaloTrigger << endl
0159           << "L1 Global Muon Trigger : muon isolation cell size (eta) : " << m_IsolationCellSizeEta << endl
0160           << "L1 Global Muon Trigger : muon isolation cell size (phi) : " << m_IsolationCellSizePhi << endl
0161           << "L1 Global Muon Trigger : require confirmation by RPC in overlap region : " << m_DoOvlRpcAnd << endl
0162           << "L1 Global Muon Trigger : propagate phi to vertex : " << m_PropagatePhi << endl
0163           << "L1 Global Muon Trigger : version of low quality assignment LUT : " << m_VersionSortRankEtaQLUT << endl
0164           << "L1 Global Muon Trigger : general LUTs version : " << m_VersionLUTs << endl;
0165     edm::LogVerbatim("GMT_Config_info") << stdss.str();
0166   }
0167 }
0168 
0169 void L1MuGMTConfig::createLUTsRegs() {
0170   // create Registers
0171   m_RegCDLConfig = new L1MuGMTRegCDLConfig();
0172   m_RegMMConfigPhi = new L1MuGMTRegMMConfigPhi();
0173   m_RegMMConfigEta = new L1MuGMTRegMMConfigEta();
0174   m_RegMMConfigPt = new L1MuGMTRegMMConfigPt();
0175   m_RegMMConfigCharge = new L1MuGMTRegMMConfigCharge();
0176   m_RegMMConfigMIP = new L1MuGMTRegMMConfigMIP();
0177   m_RegMMConfigISO = new L1MuGMTRegMMConfigISO();
0178   m_RegMMConfigSRK = new L1MuGMTRegMMConfigSRK();
0179   m_RegSortRankOffset = new L1MuGMTRegSortRankOffset();
0180 
0181   // create LUTs
0182   m_EtaLUT = new L1MuGMTEtaLUT();
0183   m_LFCOUDeltaEtaLUT = new L1MuGMTLFCOUDeltaEtaLUT();
0184   m_LFDeltaEtaLUT = new L1MuGMTLFDeltaEtaLUT();
0185   m_LFDisableHotLUT = new L1MuGMTLFDisableHotLUT();
0186   m_LFEtaConvLUT = new L1MuGMTLFEtaConvLUT();
0187   m_LFMatchQualLUT = new L1MuGMTLFMatchQualLUT();
0188   m_LFMergeRankCombineLUT = new L1MuGMTLFMergeRankCombineLUT();
0189   m_LFMergeRankEtaPhiLUT = new L1MuGMTLFMergeRankEtaPhiLUT();
0190   m_LFMergeRankEtaQLUT = new L1MuGMTLFMergeRankEtaQLUT();
0191   m_LFMergeRankPtQLUT = new L1MuGMTLFMergeRankPtQLUT();
0192   m_LFOvlEtaConvLUT = new L1MuGMTLFOvlEtaConvLUT();
0193   m_LFPhiProEtaConvLUT = new L1MuGMTLFPhiProEtaConvLUT();
0194   m_LFPhiProLUT = new L1MuGMTLFPhiProLUT();
0195   m_LFPtMixLUT = new L1MuGMTLFPtMixLUT();
0196   m_LFSortRankCombineLUT = new L1MuGMTLFSortRankCombineLUT();
0197   m_LFSortRankEtaPhiLUT = new L1MuGMTLFSortRankEtaPhiLUT();
0198   m_LFSortRankEtaQLUT = new L1MuGMTLFSortRankEtaQLUT();
0199   m_LFSortRankPtQLUT = new L1MuGMTLFSortRankPtQLUT();
0200   m_MIAUEtaConvLUT = new L1MuGMTMIAUEtaConvLUT();
0201   m_MIAUEtaProLUT = new L1MuGMTMIAUEtaProLUT();
0202   m_MIAUPhiPro1LUT = new L1MuGMTMIAUPhiPro1LUT();
0203   m_MIAUPhiPro2LUT = new L1MuGMTMIAUPhiPro2LUT();
0204   m_PhiLUT = new L1MuGMTPhiLUT();
0205 }
0206 
0207 void L1MuGMTConfig::clearLUTsRegs() {
0208   // delete Registers
0209   delete m_RegCDLConfig;
0210   delete m_RegMMConfigPhi;
0211   delete m_RegMMConfigEta;
0212   delete m_RegMMConfigPt;
0213   delete m_RegMMConfigCharge;
0214   delete m_RegMMConfigMIP;
0215   delete m_RegMMConfigISO;
0216   delete m_RegMMConfigSRK;
0217   delete m_RegSortRankOffset;
0218 
0219   // delete LUTs
0220   delete m_EtaLUT;
0221   delete m_LFCOUDeltaEtaLUT;
0222   delete m_LFDeltaEtaLUT;
0223   delete m_LFDisableHotLUT;
0224   delete m_LFEtaConvLUT;
0225   delete m_LFMatchQualLUT;
0226   delete m_LFMergeRankCombineLUT;
0227   delete m_LFMergeRankEtaPhiLUT;
0228   delete m_LFMergeRankEtaQLUT;
0229   delete m_LFMergeRankPtQLUT;
0230   delete m_LFOvlEtaConvLUT;
0231   delete m_LFPhiProEtaConvLUT;
0232   delete m_LFPhiProLUT;
0233   delete m_LFPtMixLUT;
0234   delete m_LFSortRankCombineLUT;
0235   delete m_LFSortRankEtaPhiLUT;
0236   delete m_LFSortRankEtaQLUT;
0237   delete m_LFSortRankPtQLUT;
0238   delete m_MIAUEtaConvLUT;
0239   delete m_MIAUEtaProLUT;
0240   delete m_MIAUPhiPro1LUT;
0241   delete m_MIAUPhiPro2LUT;
0242   delete m_PhiLUT;
0243 }
0244 
0245 void L1MuGMTConfig::dumpLUTs(std::string dir) {
0246   std::vector<L1MuGMTLUT*> theLUTs;
0247 
0248   theLUTs.push_back(m_LFSortRankEtaQLUT);
0249   theLUTs.push_back(m_LFSortRankPtQLUT);
0250   theLUTs.push_back(m_LFSortRankEtaPhiLUT);
0251   theLUTs.push_back(m_LFSortRankCombineLUT);
0252 
0253   theLUTs.push_back(m_LFDisableHotLUT);
0254 
0255   theLUTs.push_back(m_LFMergeRankEtaQLUT);
0256   theLUTs.push_back(m_LFMergeRankPtQLUT);
0257   theLUTs.push_back(m_LFMergeRankEtaPhiLUT);
0258   theLUTs.push_back(m_LFMergeRankCombineLUT);
0259 
0260   theLUTs.push_back(m_LFDeltaEtaLUT);
0261   theLUTs.push_back(m_LFMatchQualLUT);
0262   theLUTs.push_back(m_LFOvlEtaConvLUT);
0263   theLUTs.push_back(m_LFCOUDeltaEtaLUT);
0264 
0265   theLUTs.push_back(m_LFEtaConvLUT);
0266 
0267   theLUTs.push_back(m_LFPtMixLUT);
0268   theLUTs.push_back(m_LFPhiProLUT);
0269   theLUTs.push_back(m_LFPhiProEtaConvLUT);
0270 
0271   theLUTs.push_back(m_MIAUEtaConvLUT);
0272   theLUTs.push_back(m_MIAUPhiPro1LUT);
0273   theLUTs.push_back(m_MIAUPhiPro2LUT);
0274   theLUTs.push_back(m_MIAUEtaProLUT);
0275 
0276   std::vector<L1MuGMTLUT*>::iterator it = theLUTs.begin();
0277   for (; it != theLUTs.end(); it++) {
0278     edm::LogVerbatim("GMT_LUTGen_info") << "**** Generating " << (*it)->Name() << " LUT ****" << endl
0279                                         << "saving" << endl;
0280     std::string fn = dir + "/" + (*it)->Name() + ".lut";
0281     (*it)->Save(fn.c_str());
0282   }
0283 
0284   edm::LogVerbatim("GMT_LUTGen_info") << "Successfully created all GMT look-up tables in directory './" << dir << "'"
0285                                       << endl
0286                                       << endl;
0287 }
0288 
0289 void L1MuGMTConfig::dumpRegs(std::string dir) {
0290   std::vector<L1MuGMTReg*> theRegs;
0291 
0292   theRegs.push_back(m_RegCDLConfig);
0293   theRegs.push_back(m_RegMMConfigPhi);
0294   theRegs.push_back(m_RegMMConfigEta);
0295   theRegs.push_back(m_RegMMConfigPt);
0296   theRegs.push_back(m_RegMMConfigCharge);
0297   theRegs.push_back(m_RegMMConfigSRK);
0298   theRegs.push_back(m_RegMMConfigMIP);
0299   theRegs.push_back(m_RegMMConfigISO);
0300   theRegs.push_back(m_RegSortRankOffset);
0301 
0302   ofstream of((dir + "/LogicFPGARegs.cfg").c_str());
0303 
0304   std::vector<L1MuGMTReg*>::iterator it = theRegs.begin();
0305   for (; it != theRegs.end(); it++) {
0306     for (unsigned int i = 0; i < (*it)->getNumberOfInstances(); i++)
0307       of << (*it)->getName() << "[" << i << "] = " << (*it)->getValue(i) << endl;
0308   }
0309 }
0310 
0311 // static data members
0312 
0313 const edm::ParameterSet* L1MuGMTConfig::m_ps = nullptr;
0314 
0315 edm::InputTag L1MuGMTConfig::m_DTInputTag = edm::InputTag();
0316 edm::InputTag L1MuGMTConfig::m_CSCInputTag = edm::InputTag();
0317 edm::InputTag L1MuGMTConfig::m_RPCbInputTag = edm::InputTag();
0318 edm::InputTag L1MuGMTConfig::m_RPCfInputTag = edm::InputTag();
0319 edm::InputTag L1MuGMTConfig::m_MipIsoInputTag = edm::InputTag();
0320 int L1MuGMTConfig::m_dbgLevel = 0;
0321 bool L1MuGMTConfig::m_debug = false;
0322 int L1MuGMTConfig::m_BxMin = -4;
0323 int L1MuGMTConfig::m_BxMax = 4;
0324 int L1MuGMTConfig::m_BxMinRo = -2;
0325 int L1MuGMTConfig::m_BxMaxRo = 2;
0326 float L1MuGMTConfig::m_EtaWeight_barrel = 0.028;
0327 float L1MuGMTConfig::m_PhiWeight_barrel = 1.0;
0328 float L1MuGMTConfig::m_EtaPhiThreshold_barrel = 0.062;
0329 float L1MuGMTConfig::m_EtaWeight_endcap = 0.13;
0330 float L1MuGMTConfig::m_PhiWeight_endcap = 1.0;
0331 float L1MuGMTConfig::m_EtaPhiThreshold_endcap = 0.062;
0332 float L1MuGMTConfig::m_EtaWeight_COU = 0.316;
0333 float L1MuGMTConfig::m_PhiWeight_COU = 1.0;
0334 float L1MuGMTConfig::m_EtaPhiThreshold_COU = 0.127;
0335 bool L1MuGMTConfig::m_CaloTrigger = true;
0336 int L1MuGMTConfig::m_IsolationCellSizeEta = 2;
0337 int L1MuGMTConfig::m_IsolationCellSizePhi = 2;
0338 bool L1MuGMTConfig::m_DoOvlRpcAnd = false;
0339 
0340 bool L1MuGMTConfig::m_PropagatePhi = false;
0341 unsigned L1MuGMTConfig::m_VersionSortRankEtaQLUT = 2;
0342 unsigned L1MuGMTConfig::m_VersionLUTs = 0;
0343 
0344 L1MuGMTRegCDLConfig* L1MuGMTConfig::m_RegCDLConfig = nullptr;
0345 L1MuGMTRegMMConfigPhi* L1MuGMTConfig::m_RegMMConfigPhi = nullptr;
0346 L1MuGMTRegMMConfigEta* L1MuGMTConfig::m_RegMMConfigEta = nullptr;
0347 L1MuGMTRegMMConfigPt* L1MuGMTConfig::m_RegMMConfigPt = nullptr;
0348 L1MuGMTRegMMConfigCharge* L1MuGMTConfig::m_RegMMConfigCharge = nullptr;
0349 L1MuGMTRegMMConfigMIP* L1MuGMTConfig::m_RegMMConfigMIP = nullptr;
0350 L1MuGMTRegMMConfigISO* L1MuGMTConfig::m_RegMMConfigISO = nullptr;
0351 L1MuGMTRegMMConfigSRK* L1MuGMTConfig::m_RegMMConfigSRK = nullptr;
0352 L1MuGMTRegSortRankOffset* L1MuGMTConfig::m_RegSortRankOffset = nullptr;
0353 
0354 L1MuGMTEtaLUT* L1MuGMTConfig::m_EtaLUT = nullptr;
0355 L1MuGMTLFCOUDeltaEtaLUT* L1MuGMTConfig::m_LFCOUDeltaEtaLUT = nullptr;
0356 L1MuGMTLFDeltaEtaLUT* L1MuGMTConfig::m_LFDeltaEtaLUT = nullptr;
0357 L1MuGMTLFDisableHotLUT* L1MuGMTConfig::m_LFDisableHotLUT = nullptr;
0358 L1MuGMTLFEtaConvLUT* L1MuGMTConfig::m_LFEtaConvLUT = nullptr;
0359 L1MuGMTLFMatchQualLUT* L1MuGMTConfig::m_LFMatchQualLUT = nullptr;
0360 L1MuGMTLFMergeRankCombineLUT* L1MuGMTConfig::m_LFMergeRankCombineLUT = nullptr;
0361 L1MuGMTLFMergeRankEtaPhiLUT* L1MuGMTConfig::m_LFMergeRankEtaPhiLUT = nullptr;
0362 L1MuGMTLFMergeRankEtaQLUT* L1MuGMTConfig::m_LFMergeRankEtaQLUT = nullptr;
0363 L1MuGMTLFMergeRankPtQLUT* L1MuGMTConfig::m_LFMergeRankPtQLUT = nullptr;
0364 L1MuGMTLFOvlEtaConvLUT* L1MuGMTConfig::m_LFOvlEtaConvLUT = nullptr;
0365 L1MuGMTLFPhiProEtaConvLUT* L1MuGMTConfig::m_LFPhiProEtaConvLUT = nullptr;
0366 L1MuGMTLFPhiProLUT* L1MuGMTConfig::m_LFPhiProLUT = nullptr;
0367 L1MuGMTLFPtMixLUT* L1MuGMTConfig::m_LFPtMixLUT = nullptr;
0368 L1MuGMTLFSortRankCombineLUT* L1MuGMTConfig::m_LFSortRankCombineLUT = nullptr;
0369 L1MuGMTLFSortRankEtaPhiLUT* L1MuGMTConfig::m_LFSortRankEtaPhiLUT = nullptr;
0370 L1MuGMTLFSortRankEtaQLUT* L1MuGMTConfig::m_LFSortRankEtaQLUT = nullptr;
0371 L1MuGMTLFSortRankPtQLUT* L1MuGMTConfig::m_LFSortRankPtQLUT = nullptr;
0372 L1MuGMTMIAUEtaConvLUT* L1MuGMTConfig::m_MIAUEtaConvLUT = nullptr;
0373 L1MuGMTMIAUEtaProLUT* L1MuGMTConfig::m_MIAUEtaProLUT = nullptr;
0374 L1MuGMTMIAUPhiPro1LUT* L1MuGMTConfig::m_MIAUPhiPro1LUT = nullptr;
0375 L1MuGMTMIAUPhiPro2LUT* L1MuGMTConfig::m_MIAUPhiPro2LUT = nullptr;
0376 L1MuGMTPhiLUT* L1MuGMTConfig::m_PhiLUT = nullptr;
0377 
0378 const L1MuGMTScales* L1MuGMTConfig::m_GMTScales = nullptr;
0379 const L1MuTriggerScales* L1MuGMTConfig::m_TriggerScales = nullptr;
0380 const L1MuTriggerPtScale* L1MuGMTConfig::m_TriggerPtScale = nullptr;
0381 const L1MuGMTParameters* L1MuGMTConfig::m_GMTParams = nullptr;
0382 const L1MuGMTChannelMask* L1MuGMTConfig::m_GMTChanMask = nullptr;
0383 
0384 const L1CaloGeometry* L1MuGMTConfig::m_caloGeom = nullptr;