File indexing completed on 2024-04-06 12:19:56
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTConfig_h
0016 #define L1TriggerGlobalMuonTrigger_L1MuGMTConfig_h
0017
0018
0019
0020
0021
0022 #include <string>
0023
0024
0025
0026
0027
0028
0029
0030
0031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0032
0033 namespace edm {
0034 class InputTag;
0035 }
0036
0037 class L1MuGMTRegCDLConfig;
0038 class L1MuGMTRegMMConfigPhi;
0039 class L1MuGMTRegMMConfigEta;
0040 class L1MuGMTRegMMConfigPt;
0041 class L1MuGMTRegMMConfigCharge;
0042 class L1MuGMTRegMMConfigMIP;
0043 class L1MuGMTRegMMConfigISO;
0044 class L1MuGMTRegMMConfigSRK;
0045 class L1MuGMTRegSortRankOffset;
0046
0047 class L1MuGMTEtaLUT;
0048 class L1MuGMTLFCOUDeltaEtaLUT;
0049 class L1MuGMTLFDeltaEtaLUT;
0050 class L1MuGMTLFDisableHotLUT;
0051 class L1MuGMTLFEtaConvLUT;
0052 class L1MuGMTLFMatchQualLUT;
0053 class L1MuGMTLFMergeRankCombineLUT;
0054 class L1MuGMTLFMergeRankEtaPhiLUT;
0055 class L1MuGMTLFMergeRankEtaQLUT;
0056 class L1MuGMTLFMergeRankPtQLUT;
0057 class L1MuGMTLFOvlEtaConvLUT;
0058 class L1MuGMTLFPhiProEtaConvLUT;
0059 class L1MuGMTLFPhiProLUT;
0060 class L1MuGMTLFPtMixLUT;
0061 class L1MuGMTLFSortRankCombineLUT;
0062 class L1MuGMTLFSortRankEtaPhiLUT;
0063 class L1MuGMTLFSortRankEtaQLUT;
0064 class L1MuGMTLFSortRankPtQLUT;
0065 class L1MuGMTMIAUEtaConvLUT;
0066 class L1MuGMTMIAUEtaProLUT;
0067 class L1MuGMTMIAUPhiPro1LUT;
0068 class L1MuGMTMIAUPhiPro2LUT;
0069 class L1MuGMTPhiLUT;
0070
0071 class L1MuGMTScales;
0072 class L1MuTriggerScales;
0073 class L1MuTriggerPtScale;
0074 class L1MuGMTParameters;
0075 class L1MuGMTChannelMask;
0076
0077 class L1CaloGeometry;
0078
0079
0080
0081
0082
0083 class L1MuGMTConfig {
0084 public:
0085 static const unsigned int MAXRPC = 8, MAXRPCbarrel = 4, MAXRPCendcap = 4, MAXDTBX = 4, MAXCSC = 4;
0086
0087 static const unsigned int MaxMuons = 4;
0088
0089
0090 L1MuGMTConfig(const edm::ParameterSet& ps);
0091
0092
0093 virtual ~L1MuGMTConfig();
0094
0095 static edm::InputTag getDTInputTag() { return m_DTInputTag; }
0096 static edm::InputTag getCSCInputTag() { return m_CSCInputTag; }
0097 static edm::InputTag getRPCbInputTag() { return m_RPCbInputTag; }
0098 static edm::InputTag getRPCfInputTag() { return m_RPCfInputTag; }
0099 static edm::InputTag getMipIsoInputTag() { return m_MipIsoInputTag; }
0100
0101 static bool Debug() { return m_debug; }
0102 static bool Debug(int level) { return (m_debug && m_dbgLevel >= level); }
0103
0104 static void setDebugLevel(int level) { m_dbgLevel = level; }
0105 static int getDebugLevel() { return m_dbgLevel; }
0106
0107 static int getBxMin() { return m_BxMin; }
0108 static int getBxMax() { return m_BxMax; }
0109
0110 static int getBxMinRo() { return m_BxMinRo; }
0111 static int getBxMaxRo() { return m_BxMaxRo; }
0112
0113 static float getEtaWeightBarrel() { return m_EtaWeight_barrel; }
0114 static float getPhiWeightBarrel() { return m_PhiWeight_barrel; }
0115 static float getEtaPhiThresholdBarrel() { return m_EtaPhiThreshold_barrel; }
0116 static float getEtaWeightEndcap() { return m_EtaWeight_endcap; }
0117 static float getPhiWeightEndcap() { return m_PhiWeight_endcap; }
0118 static float getEtaPhiThresholdEndcap() { return m_EtaPhiThreshold_endcap; }
0119 static float getEtaWeightCOU() { return m_EtaWeight_COU; }
0120 static float getPhiWeightCOU() { return m_PhiWeight_COU; }
0121 static float getEtaPhiThresholdCOU() { return m_EtaPhiThreshold_COU; }
0122
0123 static bool getCaloTrigger() { return m_CaloTrigger; }
0124 static int getIsolationCellSizeEta() { return m_IsolationCellSizeEta; }
0125 static int getIsolationCellSizePhi() { return m_IsolationCellSizePhi; }
0126
0127
0128 static bool getDoOvlRpcAnd() { return m_DoOvlRpcAnd; }
0129
0130 static bool getPropagatePhi() { return m_PropagatePhi; }
0131
0132 static unsigned getVersionSortRankEtaQLUT() { return m_VersionSortRankEtaQLUT; }
0133 static unsigned getVersionLUTs() { return m_VersionLUTs; }
0134
0135
0136 static L1MuGMTRegCDLConfig* getRegCDLConfig() { return m_RegCDLConfig; }
0137 static L1MuGMTRegMMConfigPhi* getRegMMConfigPhi() { return m_RegMMConfigPhi; }
0138 static L1MuGMTRegMMConfigEta* getRegMMConfigEta() { return m_RegMMConfigEta; }
0139 static L1MuGMTRegMMConfigPt* getRegMMConfigPt() { return m_RegMMConfigPt; }
0140 static L1MuGMTRegMMConfigCharge* getRegMMConfigCharge() { return m_RegMMConfigCharge; }
0141 static L1MuGMTRegMMConfigMIP* getRegMMConfigMIP() { return m_RegMMConfigMIP; }
0142 static L1MuGMTRegMMConfigISO* getRegMMConfigISO() { return m_RegMMConfigISO; }
0143 static L1MuGMTRegMMConfigSRK* getRegMMConfigSRK() { return m_RegMMConfigSRK; }
0144 static L1MuGMTRegSortRankOffset* getRegSortRankOffset() { return m_RegSortRankOffset; }
0145
0146
0147 static L1MuGMTEtaLUT* getEtaLUT() { return m_EtaLUT; }
0148 static L1MuGMTLFCOUDeltaEtaLUT* getLFCOUDeltaEtaLUT() { return m_LFCOUDeltaEtaLUT; }
0149 static L1MuGMTLFDeltaEtaLUT* getLFDeltaEtaLUT() { return m_LFDeltaEtaLUT; }
0150 static L1MuGMTLFDisableHotLUT* getLFDisableHotLUT() { return m_LFDisableHotLUT; }
0151 static L1MuGMTLFEtaConvLUT* getLFEtaConvLUT() { return m_LFEtaConvLUT; }
0152 static L1MuGMTLFMatchQualLUT* getLFMatchQualLUT() { return m_LFMatchQualLUT; }
0153 static L1MuGMTLFMergeRankCombineLUT* getLFMergeRankCombineLUT() { return m_LFMergeRankCombineLUT; }
0154 static L1MuGMTLFMergeRankEtaPhiLUT* getLFMergeRankEtaPhiLUT() { return m_LFMergeRankEtaPhiLUT; }
0155 static L1MuGMTLFMergeRankEtaQLUT* getLFMergeRankEtaQLUT() { return m_LFMergeRankEtaQLUT; }
0156 static L1MuGMTLFMergeRankPtQLUT* getLFMergeRankPtQLUT() { return m_LFMergeRankPtQLUT; }
0157 static L1MuGMTLFOvlEtaConvLUT* getLFOvlEtaConvLUT() { return m_LFOvlEtaConvLUT; }
0158 static L1MuGMTLFPhiProEtaConvLUT* getLFPhiProEtaConvLUT() { return m_LFPhiProEtaConvLUT; }
0159 static L1MuGMTLFPhiProLUT* getLFPhiProLUT() { return m_LFPhiProLUT; }
0160 static L1MuGMTLFPtMixLUT* getLFPtMixLUT() { return m_LFPtMixLUT; }
0161 static L1MuGMTLFSortRankCombineLUT* getLFSortRankCombineLUT() { return m_LFSortRankCombineLUT; }
0162 static L1MuGMTLFSortRankEtaPhiLUT* getLFSortRankEtaPhiLUT() { return m_LFSortRankEtaPhiLUT; }
0163 static L1MuGMTLFSortRankEtaQLUT* getLFSortRankEtaQLUT() { return m_LFSortRankEtaQLUT; }
0164 static L1MuGMTLFSortRankPtQLUT* getLFSortRankPtQLUT() { return m_LFSortRankPtQLUT; }
0165 static L1MuGMTMIAUEtaConvLUT* getMIAUEtaConvLUT() { return m_MIAUEtaConvLUT; }
0166 static L1MuGMTMIAUEtaProLUT* getMIAUEtaProLUT() { return m_MIAUEtaProLUT; }
0167 static L1MuGMTMIAUPhiPro1LUT* getMIAUPhiPro1LUT() { return m_MIAUPhiPro1LUT; }
0168 static L1MuGMTMIAUPhiPro2LUT* getMIAUPhiPro2LUT() { return m_MIAUPhiPro2LUT; }
0169 static L1MuGMTPhiLUT* getPhiLUT() { return m_PhiLUT; }
0170
0171 void setGMTScales(const L1MuGMTScales* gmtscales) { m_GMTScales = gmtscales; }
0172 static const L1MuGMTScales* getGMTScales() { return m_GMTScales; }
0173
0174 void setCaloGeom(const L1CaloGeometry* caloGeom) { m_caloGeom = caloGeom; }
0175 static const L1CaloGeometry* getCaloGeom() { return m_caloGeom; }
0176
0177 void setTriggerScales(const L1MuTriggerScales* trigscales) { m_TriggerScales = trigscales; }
0178 static const L1MuTriggerScales* getTriggerScales() { return m_TriggerScales; }
0179
0180 void setTriggerPtScale(const L1MuTriggerPtScale* trigptscale) { m_TriggerPtScale = trigptscale; }
0181 static const L1MuTriggerPtScale* getTriggerPtScale() { return m_TriggerPtScale; }
0182
0183 void setGMTParams(const L1MuGMTParameters* gmtparams) { m_GMTParams = gmtparams; }
0184 static const L1MuGMTParameters* getGMTParams() { return m_GMTParams; }
0185
0186 void setGMTChanMask(const L1MuGMTChannelMask* gmtchanmask) { m_GMTChanMask = gmtchanmask; }
0187 static const L1MuGMTChannelMask* getGMTChanMask() { return m_GMTChanMask; }
0188
0189 void createLUTsRegs();
0190 void clearLUTsRegs();
0191 void dumpLUTs(std::string dir);
0192 void dumpRegs(std::string dir);
0193
0194 void setDefaults();
0195
0196 private:
0197 static const L1MuGMTParameters* m_GMTParams;
0198 static const L1MuGMTChannelMask* m_GMTChanMask;
0199
0200 static edm::InputTag m_DTInputTag;
0201 static edm::InputTag m_CSCInputTag;
0202 static edm::InputTag m_RPCbInputTag;
0203 static edm::InputTag m_RPCfInputTag;
0204 static edm::InputTag m_MipIsoInputTag;
0205
0206 static bool m_debug;
0207 static int m_dbgLevel;
0208
0209 static int m_BxMin;
0210 static int m_BxMax;
0211
0212 static int m_BxMinRo;
0213 static int m_BxMaxRo;
0214
0215 static float m_EtaWeight_barrel;
0216 static float m_PhiWeight_barrel;
0217 static float m_EtaPhiThreshold_barrel;
0218 static float m_EtaWeight_endcap;
0219 static float m_PhiWeight_endcap;
0220 static float m_EtaPhiThreshold_endcap;
0221 static float m_EtaWeight_COU;
0222 static float m_PhiWeight_COU;
0223 static float m_EtaPhiThreshold_COU;
0224
0225 static bool m_CaloTrigger;
0226 static int m_IsolationCellSizeEta;
0227 static int m_IsolationCellSizePhi;
0228
0229 static bool m_DoOvlRpcAnd;
0230
0231 static bool m_PropagatePhi;
0232
0233 static unsigned m_VersionSortRankEtaQLUT;
0234 static unsigned m_VersionLUTs;
0235
0236
0237 static L1MuGMTRegCDLConfig* m_RegCDLConfig;
0238 static L1MuGMTRegMMConfigPhi* m_RegMMConfigPhi;
0239 static L1MuGMTRegMMConfigEta* m_RegMMConfigEta;
0240 static L1MuGMTRegMMConfigPt* m_RegMMConfigPt;
0241 static L1MuGMTRegMMConfigCharge* m_RegMMConfigCharge;
0242 static L1MuGMTRegMMConfigMIP* m_RegMMConfigMIP;
0243 static L1MuGMTRegMMConfigISO* m_RegMMConfigISO;
0244 static L1MuGMTRegMMConfigSRK* m_RegMMConfigSRK;
0245 static L1MuGMTRegSortRankOffset* m_RegSortRankOffset;
0246
0247
0248 static L1MuGMTEtaLUT* m_EtaLUT;
0249 static L1MuGMTLFCOUDeltaEtaLUT* m_LFCOUDeltaEtaLUT;
0250 static L1MuGMTLFDeltaEtaLUT* m_LFDeltaEtaLUT;
0251 static L1MuGMTLFDisableHotLUT* m_LFDisableHotLUT;
0252 static L1MuGMTLFEtaConvLUT* m_LFEtaConvLUT;
0253 static L1MuGMTLFMatchQualLUT* m_LFMatchQualLUT;
0254 static L1MuGMTLFMergeRankCombineLUT* m_LFMergeRankCombineLUT;
0255 static L1MuGMTLFMergeRankEtaPhiLUT* m_LFMergeRankEtaPhiLUT;
0256 static L1MuGMTLFMergeRankEtaQLUT* m_LFMergeRankEtaQLUT;
0257 static L1MuGMTLFMergeRankPtQLUT* m_LFMergeRankPtQLUT;
0258 static L1MuGMTLFOvlEtaConvLUT* m_LFOvlEtaConvLUT;
0259 static L1MuGMTLFPhiProEtaConvLUT* m_LFPhiProEtaConvLUT;
0260 static L1MuGMTLFPhiProLUT* m_LFPhiProLUT;
0261 static L1MuGMTLFPtMixLUT* m_LFPtMixLUT;
0262 static L1MuGMTLFSortRankCombineLUT* m_LFSortRankCombineLUT;
0263 static L1MuGMTLFSortRankEtaPhiLUT* m_LFSortRankEtaPhiLUT;
0264 static L1MuGMTLFSortRankEtaQLUT* m_LFSortRankEtaQLUT;
0265 static L1MuGMTLFSortRankPtQLUT* m_LFSortRankPtQLUT;
0266 static L1MuGMTMIAUEtaConvLUT* m_MIAUEtaConvLUT;
0267 static L1MuGMTMIAUEtaProLUT* m_MIAUEtaProLUT;
0268 static L1MuGMTMIAUPhiPro1LUT* m_MIAUPhiPro1LUT;
0269 static L1MuGMTMIAUPhiPro2LUT* m_MIAUPhiPro2LUT;
0270 static L1MuGMTPhiLUT* m_PhiLUT;
0271
0272
0273 static const L1MuGMTScales* m_GMTScales;
0274 static const L1MuTriggerScales* m_TriggerScales;
0275 static const L1MuTriggerPtScale* m_TriggerPtScale;
0276
0277 static const L1CaloGeometry* m_caloGeom;
0278 };
0279
0280 #endif