00001 //------------------------------------------------- 00002 // 00003 // Class: L1MuGMTConfig 00004 // 00005 // Description: Configuration parameters for L1GlobalMuonTrigger 00006 // 00007 // 00008 // $Date: 2010/02/11 00:12:34 $ 00009 // $Revision: 1.13 $ 00010 // 00011 // Author : 00012 // N. Neumeister CERN EP 00013 // 00014 // Migrated to CMSSW: 00015 // I. Mikulec 00016 // 00017 //-------------------------------------------------- 00018 00019 //----------------------- 00020 // This Class's Header -- 00021 //----------------------- 00022 00023 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTConfig.h" 00024 00025 //--------------- 00026 // C++ Headers -- 00027 //--------------- 00028 00029 #include <iostream> 00030 #include <fstream> 00031 #include <string> 00032 00033 //------------------------------- 00034 // Collaborating Class Headers -- 00035 //------------------------------- 00036 00037 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00038 #include "FWCore/Utilities/interface/InputTag.h" 00039 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTReg.h" 00040 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTEtaLUT.h" 00041 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFCOUDeltaEtaLUT.h" 00042 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFDeltaEtaLUT.h" 00043 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFDisableHotLUT.h" 00044 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFEtaConvLUT.h" 00045 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMatchQualLUT.h" 00046 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankCombineLUT.h" 00047 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankEtaPhiLUT.h" 00048 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankEtaQLUT.h" 00049 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankPtQLUT.h" 00050 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFOvlEtaConvLUT.h" 00051 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFPhiProEtaConvLUT.h" 00052 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFPhiProLUT.h" 00053 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFPtMixLUT.h" 00054 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankCombineLUT.h" 00055 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankEtaPhiLUT.h" 00056 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankEtaQLUT.h" 00057 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankPtQLUT.h" 00058 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMIAUEtaConvLUT.h" 00059 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMIAUEtaProLUT.h" 00060 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMIAUPhiPro1LUT.h" 00061 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMIAUPhiPro2LUT.h" 00062 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTPhiLUT.h" 00063 00064 #include "CondFormats/L1TObjects/interface/L1MuGMTScales.h" 00065 #include "CondFormats/L1TObjects/interface/L1MuGMTParameters.h" 00066 #include "CondFormats/L1TObjects/interface/L1MuGMTChannelMask.h" 00067 00068 #include "CondFormats/L1TObjects/interface/L1CaloGeometry.h" 00069 00070 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00071 00072 // -------------------------------- 00073 // class L1MuGMTConfig 00074 //--------------------------------- 00075 using namespace std; 00076 00077 //---------------- 00078 // Constructors -- 00079 //---------------- 00080 00081 L1MuGMTConfig::L1MuGMTConfig(const edm::ParameterSet& ps) { 00082 00083 m_ps = &ps; 00084 00085 m_DTInputTag = m_ps->getParameter<edm::InputTag>("DTCandidates"); 00086 m_CSCInputTag = m_ps->getParameter<edm::InputTag>("CSCCandidates"); 00087 m_RPCbInputTag = m_ps->getParameter<edm::InputTag>("RPCbCandidates"); 00088 m_RPCfInputTag = m_ps->getParameter<edm::InputTag>("RPCfCandidates"); 00089 m_MipIsoInputTag = m_ps->getParameter<edm::InputTag>("MipIsoData"); 00090 00091 m_debug = true; 00092 m_dbgLevel = m_ps->getUntrackedParameter<int>("Debug",0); 00093 00094 // set min and max bunch crossing 00095 m_BxMin = m_ps->getParameter<int>("BX_min"); 00096 m_BxMax = m_ps->getParameter<int>("BX_max"); 00097 00098 // set min and max bunch crossing for the readout 00099 m_BxMinRo = m_ps->getParameter<int>("BX_min_readout"); 00100 m_BxMaxRo = m_ps->getParameter<int>("BX_max_readout"); 00101 00102 } 00103 00104 //-------------- 00105 // Destructor -- 00106 //-------------- 00107 L1MuGMTConfig::~L1MuGMTConfig() {} 00108 00109 00110 //-------------- 00111 // Operations -- 00112 //-------------- 00113 00114 00115 void L1MuGMTConfig::setDefaults() { 00116 00117 // set weights for eta and phi 00118 m_EtaWeight_barrel = m_GMTParams->getEtaWeight_barrel(); 00119 m_PhiWeight_barrel = m_GMTParams->getPhiWeight_barrel(); 00120 m_EtaPhiThreshold_barrel = m_GMTParams->getEtaPhiThreshold_barrel(); 00121 00122 m_EtaWeight_endcap = m_GMTParams->getEtaWeight_endcap(); 00123 m_PhiWeight_endcap = m_GMTParams->getPhiWeight_endcap(); 00124 m_EtaPhiThreshold_endcap = m_GMTParams->getEtaPhiThreshold_endcap(); 00125 00126 m_EtaWeight_COU = m_GMTParams->getEtaWeight_COU(); 00127 m_PhiWeight_COU = m_GMTParams->getPhiWeight_COU(); 00128 m_EtaPhiThreshold_COU = m_GMTParams->getEtaPhiThreshold_COU(); 00129 00130 m_CaloTrigger = m_GMTParams->getCaloTrigger(); 00131 m_IsolationCellSizeEta = m_GMTParams->getIsolationCellSizeEta(); 00132 m_IsolationCellSizePhi = m_GMTParams->getIsolationCellSizePhi(); 00133 00134 m_DoOvlRpcAnd = m_GMTParams->getDoOvlRpcAnd(); 00135 00136 m_PropagatePhi = m_GMTParams->getPropagatePhi(); 00137 00138 m_VersionSortRankEtaQLUT = m_GMTParams->getVersionSortRankEtaQLUT(); 00139 00140 if ( Debug(1) ) { 00141 stringstream stdss; 00142 stdss 00143 << endl 00144 << "*******************************************" << endl 00145 << "**** L1 Global Muon Trigger settings : ****" << endl 00146 << "*******************************************" << endl 00147 << endl 00148 00149 << "L1 Global Muon Trigger : DTCandidates : " << m_DTInputTag << endl 00150 << "L1 Global Muon Trigger : CSCCandidates : " << m_CSCInputTag << endl 00151 << "L1 Global Muon Trigger : RPCbCandidates : " << m_RPCbInputTag << endl 00152 << "L1 Global Muon Trigger : RPCfCandidates : " << m_RPCfInputTag << endl 00153 << "L1 Global Muon Trigger : debug level : " << m_dbgLevel << endl 00154 << "L1 Global Muon Trigger : minimal bunch-crossing : " << m_BxMin << endl 00155 << "L1 Global Muon Trigger : maximal bunch-crossing : " << m_BxMax << endl 00156 << "L1 Global Muon Trigger : barrel eta weight : " << m_EtaWeight_barrel << endl 00157 << "L1 Global Muon Trigger : barrel phi weight : " << m_PhiWeight_barrel << endl 00158 << "L1 Global Muon Trigger : barrel eta-phi threshold : " << m_EtaPhiThreshold_barrel << endl 00159 << "L1 Global Muon Trigger : endcap eta weight : " << m_EtaWeight_endcap << endl 00160 << "L1 Global Muon Trigger : endcap phi weight : " << m_PhiWeight_endcap << endl 00161 << "L1 Global Muon Trigger : endcap eta-phi threshold : " << m_EtaPhiThreshold_endcap << endl 00162 << "L1 Global Muon Trigger : cancel out unit eta weight : " << m_EtaWeight_COU << endl 00163 << "L1 Global Muon Trigger : cancel out unit phi weight : " << m_PhiWeight_COU << endl 00164 << "L1 Global Muon Trigger : cancel out unit eta-phi threshold : " << m_EtaPhiThreshold_COU << endl 00165 << "L1 Global Muon Trigger : calorimeter trigger : " << m_CaloTrigger << endl 00166 << "L1 Global Muon Trigger : muon isolation cell size (eta) : " << m_IsolationCellSizeEta << endl 00167 << "L1 Global Muon Trigger : muon isolation cell size (phi) : " << m_IsolationCellSizePhi << endl 00168 << "L1 Global Muon Trigger : require confirmation by RPC in overlap region : " << m_DoOvlRpcAnd << endl 00169 << "L1 Global Muon Trigger : propagate phi to vertex : " << m_PropagatePhi << endl 00170 << "L1 Global Muon Trigger : version of low quality assignment LUT : " << m_VersionSortRankEtaQLUT << endl; 00171 edm::LogVerbatim("GMT_Config_info") << stdss.str(); 00172 } 00173 } 00174 00175 void L1MuGMTConfig::createLUTsRegs() { 00176 00177 // create Registers 00178 m_RegCDLConfig = new L1MuGMTRegCDLConfig(); 00179 m_RegMMConfigPhi = new L1MuGMTRegMMConfigPhi(); 00180 m_RegMMConfigEta = new L1MuGMTRegMMConfigEta(); 00181 m_RegMMConfigPt = new L1MuGMTRegMMConfigPt(); 00182 m_RegMMConfigCharge = new L1MuGMTRegMMConfigCharge(); 00183 m_RegMMConfigMIP = new L1MuGMTRegMMConfigMIP(); 00184 m_RegMMConfigISO = new L1MuGMTRegMMConfigISO(); 00185 m_RegMMConfigSRK = new L1MuGMTRegMMConfigSRK(); 00186 m_RegSortRankOffset = new L1MuGMTRegSortRankOffset(); 00187 00188 // create LUTs 00189 m_EtaLUT = new L1MuGMTEtaLUT(); 00190 m_LFCOUDeltaEtaLUT = new L1MuGMTLFCOUDeltaEtaLUT(); 00191 m_LFDeltaEtaLUT = new L1MuGMTLFDeltaEtaLUT(); 00192 m_LFDisableHotLUT = new L1MuGMTLFDisableHotLUT(); 00193 m_LFEtaConvLUT = new L1MuGMTLFEtaConvLUT(); 00194 m_LFMatchQualLUT = new L1MuGMTLFMatchQualLUT(); 00195 m_LFMergeRankCombineLUT = new L1MuGMTLFMergeRankCombineLUT(); 00196 m_LFMergeRankEtaPhiLUT = new L1MuGMTLFMergeRankEtaPhiLUT(); 00197 m_LFMergeRankEtaQLUT = new L1MuGMTLFMergeRankEtaQLUT(); 00198 m_LFMergeRankPtQLUT = new L1MuGMTLFMergeRankPtQLUT(); 00199 m_LFOvlEtaConvLUT = new L1MuGMTLFOvlEtaConvLUT(); 00200 m_LFPhiProEtaConvLUT = new L1MuGMTLFPhiProEtaConvLUT(); 00201 m_LFPhiProLUT = new L1MuGMTLFPhiProLUT(); 00202 m_LFPtMixLUT = new L1MuGMTLFPtMixLUT(); 00203 m_LFSortRankCombineLUT = new L1MuGMTLFSortRankCombineLUT(); 00204 m_LFSortRankEtaPhiLUT = new L1MuGMTLFSortRankEtaPhiLUT(); 00205 m_LFSortRankEtaQLUT = new L1MuGMTLFSortRankEtaQLUT(); 00206 m_LFSortRankPtQLUT = new L1MuGMTLFSortRankPtQLUT(); 00207 m_MIAUEtaConvLUT = new L1MuGMTMIAUEtaConvLUT(); 00208 m_MIAUEtaProLUT = new L1MuGMTMIAUEtaProLUT(); 00209 m_MIAUPhiPro1LUT = new L1MuGMTMIAUPhiPro1LUT(); 00210 m_MIAUPhiPro2LUT = new L1MuGMTMIAUPhiPro2LUT(); 00211 m_PhiLUT = new L1MuGMTPhiLUT(); 00212 00213 } 00214 00215 void L1MuGMTConfig::clearLUTsRegs() { 00216 // delete Registers 00217 delete m_RegCDLConfig; 00218 delete m_RegMMConfigPhi; 00219 delete m_RegMMConfigEta; 00220 delete m_RegMMConfigPt; 00221 delete m_RegMMConfigCharge; 00222 delete m_RegMMConfigMIP; 00223 delete m_RegMMConfigISO; 00224 delete m_RegMMConfigSRK; 00225 delete m_RegSortRankOffset; 00226 00227 // delete LUTs 00228 delete m_EtaLUT; 00229 delete m_LFCOUDeltaEtaLUT; 00230 delete m_LFDeltaEtaLUT; 00231 delete m_LFDisableHotLUT; 00232 delete m_LFEtaConvLUT; 00233 delete m_LFMatchQualLUT; 00234 delete m_LFMergeRankCombineLUT; 00235 delete m_LFMergeRankEtaPhiLUT; 00236 delete m_LFMergeRankEtaQLUT; 00237 delete m_LFMergeRankPtQLUT; 00238 delete m_LFOvlEtaConvLUT; 00239 delete m_LFPhiProEtaConvLUT; 00240 delete m_LFPhiProLUT; 00241 delete m_LFPtMixLUT; 00242 delete m_LFSortRankCombineLUT; 00243 delete m_LFSortRankEtaPhiLUT; 00244 delete m_LFSortRankEtaQLUT; 00245 delete m_LFSortRankPtQLUT; 00246 delete m_MIAUEtaConvLUT; 00247 delete m_MIAUEtaProLUT; 00248 delete m_MIAUPhiPro1LUT; 00249 delete m_MIAUPhiPro2LUT; 00250 delete m_PhiLUT; 00251 } 00252 00253 void L1MuGMTConfig::dumpLUTs(std::string dir) { 00254 std::vector<L1MuGMTLUT*> theLUTs; 00255 00256 theLUTs.push_back( m_LFSortRankEtaQLUT ); 00257 theLUTs.push_back( m_LFSortRankPtQLUT ); 00258 theLUTs.push_back( m_LFSortRankEtaPhiLUT ); 00259 theLUTs.push_back( m_LFSortRankCombineLUT ); 00260 00261 theLUTs.push_back( m_LFDisableHotLUT ); 00262 00263 theLUTs.push_back( m_LFMergeRankEtaQLUT ); 00264 theLUTs.push_back( m_LFMergeRankPtQLUT ); 00265 theLUTs.push_back( m_LFMergeRankEtaPhiLUT ); 00266 theLUTs.push_back( m_LFMergeRankCombineLUT ); 00267 00268 theLUTs.push_back( m_LFDeltaEtaLUT ); 00269 theLUTs.push_back( m_LFMatchQualLUT ); 00270 theLUTs.push_back( m_LFOvlEtaConvLUT ); 00271 theLUTs.push_back( m_LFCOUDeltaEtaLUT ); 00272 00273 theLUTs.push_back( m_LFEtaConvLUT ); 00274 00275 theLUTs.push_back( m_LFPtMixLUT ); 00276 theLUTs.push_back( m_LFPhiProLUT ); 00277 theLUTs.push_back( m_LFPhiProEtaConvLUT ); 00278 00279 theLUTs.push_back( m_MIAUEtaConvLUT ); 00280 theLUTs.push_back( m_MIAUPhiPro1LUT ); 00281 theLUTs.push_back( m_MIAUPhiPro2LUT ); 00282 theLUTs.push_back( m_MIAUEtaProLUT ); 00283 00284 std::vector<L1MuGMTLUT*>::iterator it = theLUTs.begin(); 00285 for (;it != theLUTs.end(); it++) { 00286 edm::LogVerbatim("GMT_LUTGen_info") 00287 << "**** Generating " << (*it)->Name() << " LUT ****" << endl 00288 << "saving" << endl; 00289 std::string fn = dir + "/" + (*it)->Name() + ".lut"; 00290 (*it)->Save(fn.c_str()); 00291 } 00292 00293 edm::LogVerbatim("GMT_LUTGen_info") 00294 << "Successfully created all GMT look-up tables in directory './" << dir << "'" << endl << endl; 00295 00296 } 00297 00298 void L1MuGMTConfig::dumpRegs(std::string dir) { 00299 std::vector<L1MuGMTReg*> theRegs; 00300 00301 theRegs.push_back( m_RegCDLConfig ); 00302 theRegs.push_back( m_RegMMConfigPhi ); 00303 theRegs.push_back( m_RegMMConfigEta ); 00304 theRegs.push_back( m_RegMMConfigPt ); 00305 theRegs.push_back( m_RegMMConfigCharge ); 00306 theRegs.push_back( m_RegMMConfigSRK ); 00307 theRegs.push_back( m_RegMMConfigMIP ); 00308 theRegs.push_back( m_RegMMConfigISO ); 00309 theRegs.push_back( m_RegSortRankOffset ); 00310 00311 00312 ofstream of( (dir + "/LogicFPGARegs.cfg").c_str() ); 00313 00314 std::vector<L1MuGMTReg*>::iterator it = theRegs.begin(); 00315 for (;it != theRegs.end(); it++) { 00316 00317 for (unsigned int i=0; i<(*it)->getNumberOfInstances(); i++) 00318 of << (*it)->getName() << "[" << i << "] = " << (*it)->getValue(i) << endl; 00319 00320 } 00321 00322 } 00323 00324 // static data members 00325 00326 const edm::ParameterSet* L1MuGMTConfig::m_ps=0; 00327 00328 edm::InputTag L1MuGMTConfig::m_DTInputTag = edm::InputTag(); 00329 edm::InputTag L1MuGMTConfig::m_CSCInputTag = edm::InputTag(); 00330 edm::InputTag L1MuGMTConfig::m_RPCbInputTag = edm::InputTag(); 00331 edm::InputTag L1MuGMTConfig::m_RPCfInputTag = edm::InputTag(); 00332 edm::InputTag L1MuGMTConfig::m_MipIsoInputTag = edm::InputTag(); 00333 int L1MuGMTConfig::m_dbgLevel = 0; 00334 bool L1MuGMTConfig::m_debug = false; 00335 int L1MuGMTConfig::m_BxMin = -4; 00336 int L1MuGMTConfig::m_BxMax = 4; 00337 int L1MuGMTConfig::m_BxMinRo = -2; 00338 int L1MuGMTConfig::m_BxMaxRo = 2; 00339 float L1MuGMTConfig::m_EtaWeight_barrel = 0.028; 00340 float L1MuGMTConfig::m_PhiWeight_barrel = 1.0; 00341 float L1MuGMTConfig::m_EtaPhiThreshold_barrel = 0.062; 00342 float L1MuGMTConfig::m_EtaWeight_endcap = 0.13; 00343 float L1MuGMTConfig::m_PhiWeight_endcap = 1.0; 00344 float L1MuGMTConfig::m_EtaPhiThreshold_endcap = 0.062; 00345 float L1MuGMTConfig::m_EtaWeight_COU = 0.316; 00346 float L1MuGMTConfig::m_PhiWeight_COU = 1.0; 00347 float L1MuGMTConfig::m_EtaPhiThreshold_COU = 0.127; 00348 bool L1MuGMTConfig::m_CaloTrigger = true; 00349 int L1MuGMTConfig::m_IsolationCellSizeEta = 2; 00350 int L1MuGMTConfig::m_IsolationCellSizePhi = 2; 00351 bool L1MuGMTConfig::m_DoOvlRpcAnd = false; 00352 00353 bool L1MuGMTConfig::m_PropagatePhi = false; 00354 unsigned L1MuGMTConfig::m_VersionSortRankEtaQLUT = 2; 00355 00356 L1MuGMTRegCDLConfig* L1MuGMTConfig::m_RegCDLConfig=0; 00357 L1MuGMTRegMMConfigPhi* L1MuGMTConfig::m_RegMMConfigPhi=0; 00358 L1MuGMTRegMMConfigEta* L1MuGMTConfig::m_RegMMConfigEta=0; 00359 L1MuGMTRegMMConfigPt* L1MuGMTConfig::m_RegMMConfigPt=0; 00360 L1MuGMTRegMMConfigCharge* L1MuGMTConfig::m_RegMMConfigCharge=0; 00361 L1MuGMTRegMMConfigMIP* L1MuGMTConfig::m_RegMMConfigMIP=0; 00362 L1MuGMTRegMMConfigISO* L1MuGMTConfig::m_RegMMConfigISO=0; 00363 L1MuGMTRegMMConfigSRK* L1MuGMTConfig::m_RegMMConfigSRK=0; 00364 L1MuGMTRegSortRankOffset* L1MuGMTConfig::m_RegSortRankOffset=0; 00365 00366 L1MuGMTEtaLUT* L1MuGMTConfig::m_EtaLUT=0; 00367 L1MuGMTLFCOUDeltaEtaLUT* L1MuGMTConfig::m_LFCOUDeltaEtaLUT=0; 00368 L1MuGMTLFDeltaEtaLUT* L1MuGMTConfig::m_LFDeltaEtaLUT=0; 00369 L1MuGMTLFDisableHotLUT* L1MuGMTConfig::m_LFDisableHotLUT=0; 00370 L1MuGMTLFEtaConvLUT* L1MuGMTConfig::m_LFEtaConvLUT=0; 00371 L1MuGMTLFMatchQualLUT* L1MuGMTConfig::m_LFMatchQualLUT=0; 00372 L1MuGMTLFMergeRankCombineLUT* L1MuGMTConfig::m_LFMergeRankCombineLUT=0; 00373 L1MuGMTLFMergeRankEtaPhiLUT* L1MuGMTConfig::m_LFMergeRankEtaPhiLUT=0; 00374 L1MuGMTLFMergeRankEtaQLUT* L1MuGMTConfig::m_LFMergeRankEtaQLUT=0; 00375 L1MuGMTLFMergeRankPtQLUT* L1MuGMTConfig::m_LFMergeRankPtQLUT=0; 00376 L1MuGMTLFOvlEtaConvLUT* L1MuGMTConfig::m_LFOvlEtaConvLUT=0; 00377 L1MuGMTLFPhiProEtaConvLUT* L1MuGMTConfig::m_LFPhiProEtaConvLUT=0; 00378 L1MuGMTLFPhiProLUT* L1MuGMTConfig::m_LFPhiProLUT=0; 00379 L1MuGMTLFPtMixLUT* L1MuGMTConfig::m_LFPtMixLUT=0; 00380 L1MuGMTLFSortRankCombineLUT* L1MuGMTConfig::m_LFSortRankCombineLUT=0; 00381 L1MuGMTLFSortRankEtaPhiLUT* L1MuGMTConfig::m_LFSortRankEtaPhiLUT=0; 00382 L1MuGMTLFSortRankEtaQLUT* L1MuGMTConfig::m_LFSortRankEtaQLUT=0; 00383 L1MuGMTLFSortRankPtQLUT* L1MuGMTConfig::m_LFSortRankPtQLUT=0; 00384 L1MuGMTMIAUEtaConvLUT* L1MuGMTConfig::m_MIAUEtaConvLUT=0; 00385 L1MuGMTMIAUEtaProLUT* L1MuGMTConfig::m_MIAUEtaProLUT=0; 00386 L1MuGMTMIAUPhiPro1LUT* L1MuGMTConfig::m_MIAUPhiPro1LUT=0; 00387 L1MuGMTMIAUPhiPro2LUT* L1MuGMTConfig::m_MIAUPhiPro2LUT=0; 00388 L1MuGMTPhiLUT* L1MuGMTConfig::m_PhiLUT=0; 00389 00390 const L1MuGMTScales* L1MuGMTConfig::m_GMTScales=0; 00391 const L1MuTriggerScales* L1MuGMTConfig::m_TriggerScales=0; 00392 const L1MuTriggerPtScale* L1MuGMTConfig::m_TriggerPtScale=0; 00393 const L1MuGMTParameters* L1MuGMTConfig::m_GMTParams=0; 00394 const L1MuGMTChannelMask* L1MuGMTConfig::m_GMTChanMask=0; 00395 00396 const L1CaloGeometry* L1MuGMTConfig::m_caloGeom = 0 ;