CMS 3D CMS Logo

L1MuGMTConfig.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00006 //
00007 //   $Date: 2008/04/21 17:21:17 $
00008 //   $Revision: 1.11 $
00009 //
00010 //   Author :
00011 //   N. Neumeister             CERN EP
00012 //
00013 //   Migrated to CMSSW:
00014 //   I. Mikulec
00015 //
00016 //--------------------------------------------------
00017 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTConfig_h
00018 #define L1TriggerGlobalMuonTrigger_L1MuGMTConfig_h
00019 
00020 //---------------
00021 // C++ Headers --
00022 //---------------
00023 
00024 #include <string>
00025 
00026 //----------------------
00027 // Base Class Headers --
00028 //----------------------
00029 
00030 //------------------------------------
00031 // Collaborating Class Declarations --
00032 //------------------------------------
00033 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00034 
00035 class edm::InputTag;
00036 
00037 class L1MuGMTRegCDLConfig;
00038 class L1MuGMTRegMMConfigPhi;
00039 class L1MuGMTRegMMConfigEta;
00040 class L1MuGMTRegMMConfigPt;
00041 class L1MuGMTRegMMConfigCharge;
00042 class L1MuGMTRegMMConfigMIP;
00043 class L1MuGMTRegMMConfigISO;
00044 class L1MuGMTRegMMConfigSRK;
00045 class L1MuGMTRegSortRankOffset;
00046 
00047 class L1MuGMTEtaLUT;
00048 class L1MuGMTLFCOUDeltaEtaLUT;
00049 class L1MuGMTLFDeltaEtaLUT;
00050 class L1MuGMTLFDisableHotLUT;
00051 class L1MuGMTLFEtaConvLUT;
00052 class L1MuGMTLFMatchQualLUT;
00053 class L1MuGMTLFMergeRankCombineLUT;
00054 class L1MuGMTLFMergeRankEtaPhiLUT;
00055 class L1MuGMTLFMergeRankEtaQLUT;
00056 class L1MuGMTLFMergeRankPtQLUT;
00057 class L1MuGMTLFOvlEtaConvLUT;
00058 class L1MuGMTLFPhiProEtaConvLUT;
00059 class L1MuGMTLFPhiProLUT;
00060 class L1MuGMTLFPtMixLUT;
00061 class L1MuGMTLFSortRankCombineLUT;
00062 class L1MuGMTLFSortRankEtaPhiLUT;
00063 class L1MuGMTLFSortRankEtaQLUT;
00064 class L1MuGMTLFSortRankPtQLUT;
00065 class L1MuGMTMIAUEtaConvLUT;
00066 class L1MuGMTMIAUEtaProLUT;
00067 class L1MuGMTMIAUPhiPro1LUT;
00068 class L1MuGMTMIAUPhiPro2LUT;
00069 class L1MuGMTPhiLUT;
00070 
00071 class L1MuGMTScales;
00072 class L1MuTriggerScales;
00073 class L1MuTriggerPtScale;
00074 class L1MuGMTParameters;
00075 
00076 class L1CaloGeometry ;
00077 
00078 //              ---------------------
00079 //              -- Class Interface --
00080 //              ---------------------
00081 
00082 
00083 class L1MuGMTConfig {
00084 
00085   public:
00086 
00087     static const unsigned int MAXRPC = 8, MAXRPCbarrel = 4, MAXRPCendcap = 4, 
00088            MAXDTBX = 4, MAXCSC = 4 ;
00089 
00090     static const unsigned int MaxMuons = 4;
00091 
00093     L1MuGMTConfig(const edm::ParameterSet& ps); 
00094      
00096     virtual ~L1MuGMTConfig();
00097 
00098     static edm::InputTag getDTInputTag()   { return m_DTInputTag; }
00099     static edm::InputTag getCSCInputTag()  { return m_CSCInputTag; }
00100     static edm::InputTag getRPCbInputTag() { return m_RPCbInputTag; }
00101     static edm::InputTag getRPCfInputTag() { return m_RPCfInputTag; }
00102     static edm::InputTag getMipIsoInputTag() { return m_MipIsoInputTag; }
00103 
00104     static bool Debug() { return m_debug; }
00105     static bool Debug(int level) { return ( m_debug && m_dbgLevel >= level ); }
00106 
00107     static void setDebugLevel(int level) { m_dbgLevel = level; }
00108     static int  getDebugLevel() { return m_dbgLevel; }
00109 
00110     static int getBxMin() { return m_BxMin; }
00111     static int getBxMax() { return m_BxMax; }
00112 
00113     static int getBxMinRo() { return m_BxMinRo; }
00114     static int getBxMaxRo() { return m_BxMaxRo; }
00115 
00116     static float getEtaWeightBarrel() { return m_EtaWeight_barrel; }
00117     static float getPhiWeightBarrel() { return m_PhiWeight_barrel; }
00118     static float getEtaPhiThresholdBarrel() { return m_EtaPhiThreshold_barrel; }
00119     static float getEtaWeightEndcap() { return m_EtaWeight_endcap; }
00120     static float getPhiWeightEndcap() { return m_PhiWeight_endcap; }
00121     static float getEtaPhiThresholdEndcap() { return m_EtaPhiThreshold_endcap; }
00122     static float getEtaWeightCOU() { return m_EtaWeight_COU; }
00123     static float getPhiWeightCOU() { return m_PhiWeight_COU; }
00124     static float getEtaPhiThresholdCOU() { return m_EtaPhiThreshold_COU; }
00125 
00126     static bool  getCaloTrigger() { return m_CaloTrigger; }
00127     static int   getIsolationCellSizeEta() { return m_IsolationCellSizeEta; }
00128     static int   getIsolationCellSizePhi() { return m_IsolationCellSizePhi; }
00129 
00131     static bool  getDoOvlRpcAnd() { return m_DoOvlRpcAnd; }
00132 
00133     static bool getPropagatePhi() { return m_PropagatePhi; }
00134     
00135     static unsigned getVersionSortRankEtaQLUT() { return m_VersionSortRankEtaQLUT; }
00136 
00137     // Register getters
00138     static L1MuGMTRegCDLConfig* getRegCDLConfig() { return m_RegCDLConfig; }
00139     static L1MuGMTRegMMConfigPhi* getRegMMConfigPhi() { return m_RegMMConfigPhi; }
00140     static L1MuGMTRegMMConfigEta* getRegMMConfigEta() { return m_RegMMConfigEta; }
00141     static L1MuGMTRegMMConfigPt* getRegMMConfigPt() { return m_RegMMConfigPt; }
00142     static L1MuGMTRegMMConfigCharge* getRegMMConfigCharge() { return m_RegMMConfigCharge; }
00143     static L1MuGMTRegMMConfigMIP* getRegMMConfigMIP() { return m_RegMMConfigMIP; }
00144     static L1MuGMTRegMMConfigISO* getRegMMConfigISO() { return m_RegMMConfigISO; }
00145     static L1MuGMTRegMMConfigSRK* getRegMMConfigSRK() { return m_RegMMConfigSRK; }
00146     static L1MuGMTRegSortRankOffset* getRegSortRankOffset() { return m_RegSortRankOffset; }
00147 
00148     // LUT getters
00149     static L1MuGMTEtaLUT* getEtaLUT() { return m_EtaLUT; }
00150     static L1MuGMTLFCOUDeltaEtaLUT* getLFCOUDeltaEtaLUT() { return m_LFCOUDeltaEtaLUT; }
00151     static L1MuGMTLFDeltaEtaLUT* getLFDeltaEtaLUT() { return m_LFDeltaEtaLUT; }
00152     static L1MuGMTLFDisableHotLUT* getLFDisableHotLUT() { return m_LFDisableHotLUT; }
00153     static L1MuGMTLFEtaConvLUT* getLFEtaConvLUT() { return m_LFEtaConvLUT; }
00154     static L1MuGMTLFMatchQualLUT* getLFMatchQualLUT() { return m_LFMatchQualLUT; }
00155     static L1MuGMTLFMergeRankCombineLUT* getLFMergeRankCombineLUT() { return m_LFMergeRankCombineLUT; }
00156     static L1MuGMTLFMergeRankEtaPhiLUT* getLFMergeRankEtaPhiLUT() { return m_LFMergeRankEtaPhiLUT; }
00157     static L1MuGMTLFMergeRankEtaQLUT* getLFMergeRankEtaQLUT() { return m_LFMergeRankEtaQLUT; }
00158     static L1MuGMTLFMergeRankPtQLUT* getLFMergeRankPtQLUT() { return m_LFMergeRankPtQLUT; }
00159     static L1MuGMTLFOvlEtaConvLUT* getLFOvlEtaConvLUT() { return m_LFOvlEtaConvLUT; }
00160     static L1MuGMTLFPhiProEtaConvLUT* getLFPhiProEtaConvLUT() { return m_LFPhiProEtaConvLUT; }
00161     static L1MuGMTLFPhiProLUT* getLFPhiProLUT() { return m_LFPhiProLUT; }
00162     static L1MuGMTLFPtMixLUT* getLFPtMixLUT() { return m_LFPtMixLUT; }
00163     static L1MuGMTLFSortRankCombineLUT* getLFSortRankCombineLUT() { return m_LFSortRankCombineLUT; }
00164     static L1MuGMTLFSortRankEtaPhiLUT* getLFSortRankEtaPhiLUT() { return m_LFSortRankEtaPhiLUT; }
00165     static L1MuGMTLFSortRankEtaQLUT* getLFSortRankEtaQLUT() { return m_LFSortRankEtaQLUT; }
00166     static L1MuGMTLFSortRankPtQLUT* getLFSortRankPtQLUT() { return m_LFSortRankPtQLUT; }
00167     static L1MuGMTMIAUEtaConvLUT* getMIAUEtaConvLUT() { return m_MIAUEtaConvLUT; }
00168     static L1MuGMTMIAUEtaProLUT* getMIAUEtaProLUT() { return m_MIAUEtaProLUT; }
00169     static L1MuGMTMIAUPhiPro1LUT* getMIAUPhiPro1LUT() { return m_MIAUPhiPro1LUT; }
00170     static L1MuGMTMIAUPhiPro2LUT* getMIAUPhiPro2LUT() { return m_MIAUPhiPro2LUT; }
00171     static L1MuGMTPhiLUT* getPhiLUT() { return m_PhiLUT; }
00172 
00173     void setGMTScales(const L1MuGMTScales* gmtscales) { m_GMTScales = gmtscales; }
00174     static const L1MuGMTScales* getGMTScales() { return m_GMTScales; }
00175 
00176     void setCaloGeom( const L1CaloGeometry* caloGeom ) { m_caloGeom = caloGeom ; }
00177     static const L1CaloGeometry* getCaloGeom() { return m_caloGeom ; }
00178 
00179     void setTriggerScales(const L1MuTriggerScales* trigscales) { m_TriggerScales = trigscales; }
00180     static const L1MuTriggerScales* getTriggerScales() { return m_TriggerScales; }
00181 
00182     void setTriggerPtScale(const L1MuTriggerPtScale* trigptscale) { m_TriggerPtScale = trigptscale; }
00183     static const L1MuTriggerPtScale* getTriggerPtScale() { return m_TriggerPtScale; }
00184 
00185     void setGMTParams(const L1MuGMTParameters* gmtparams) { m_GMTParams = gmtparams; }
00186     static const L1MuGMTParameters* getGMTParams() { return m_GMTParams; }
00187     
00188 
00189     static const edm::ParameterSet* getParameterSet() { return m_ps; }
00190      
00191     void dumpLUTs(std::string dir);
00192     void dumpRegs(std::string dir);
00193 
00194     void setDefaults();
00195     void clear();
00196   
00197   private:
00198 
00199     static const edm::ParameterSet* m_ps;
00200     static const L1MuGMTParameters* m_GMTParams;
00201 
00202     static edm::InputTag m_DTInputTag;
00203     static edm::InputTag m_CSCInputTag;
00204     static edm::InputTag m_RPCbInputTag;
00205     static edm::InputTag m_RPCfInputTag;
00206     static edm::InputTag m_MipIsoInputTag;
00207 
00208     static bool m_debug;     // debug flag 
00209     static int  m_dbgLevel;  // debug level
00210 
00211     static int m_BxMin;
00212     static int m_BxMax;
00213 
00214     static int m_BxMinRo;
00215     static int m_BxMaxRo;
00216 
00217     static float m_EtaWeight_barrel;
00218     static float m_PhiWeight_barrel;
00219     static float m_EtaPhiThreshold_barrel;
00220     static float m_EtaWeight_endcap;
00221     static float m_PhiWeight_endcap;
00222     static float m_EtaPhiThreshold_endcap;
00223     static float m_EtaWeight_COU;
00224     static float m_PhiWeight_COU;
00225     static float m_EtaPhiThreshold_COU;
00226   
00227     static bool m_CaloTrigger;
00228     static int  m_IsolationCellSizeEta;
00229     static int  m_IsolationCellSizePhi;
00230     
00231     static bool m_DoOvlRpcAnd;
00232 
00233     static bool m_PropagatePhi;
00234     
00235     static unsigned m_VersionSortRankEtaQLUT;
00236 
00237     // Register pointers
00238     static L1MuGMTRegCDLConfig* m_RegCDLConfig;
00239     static L1MuGMTRegMMConfigPhi* m_RegMMConfigPhi;
00240     static L1MuGMTRegMMConfigEta* m_RegMMConfigEta;
00241     static L1MuGMTRegMMConfigPt* m_RegMMConfigPt;
00242     static L1MuGMTRegMMConfigCharge* m_RegMMConfigCharge;
00243     static L1MuGMTRegMMConfigMIP* m_RegMMConfigMIP;
00244     static L1MuGMTRegMMConfigISO* m_RegMMConfigISO;
00245     static L1MuGMTRegMMConfigSRK* m_RegMMConfigSRK;
00246     static L1MuGMTRegSortRankOffset* m_RegSortRankOffset;
00247 
00248     // LUT pointers
00249     static L1MuGMTEtaLUT* m_EtaLUT;
00250     static L1MuGMTLFCOUDeltaEtaLUT* m_LFCOUDeltaEtaLUT;
00251     static L1MuGMTLFDeltaEtaLUT* m_LFDeltaEtaLUT;
00252     static L1MuGMTLFDisableHotLUT* m_LFDisableHotLUT;
00253     static L1MuGMTLFEtaConvLUT* m_LFEtaConvLUT;
00254     static L1MuGMTLFMatchQualLUT* m_LFMatchQualLUT;
00255     static L1MuGMTLFMergeRankCombineLUT* m_LFMergeRankCombineLUT;
00256     static L1MuGMTLFMergeRankEtaPhiLUT* m_LFMergeRankEtaPhiLUT;
00257     static L1MuGMTLFMergeRankEtaQLUT* m_LFMergeRankEtaQLUT;
00258     static L1MuGMTLFMergeRankPtQLUT* m_LFMergeRankPtQLUT;
00259     static L1MuGMTLFOvlEtaConvLUT* m_LFOvlEtaConvLUT;
00260     static L1MuGMTLFPhiProEtaConvLUT* m_LFPhiProEtaConvLUT;
00261     static L1MuGMTLFPhiProLUT* m_LFPhiProLUT;
00262     static L1MuGMTLFPtMixLUT* m_LFPtMixLUT;
00263     static L1MuGMTLFSortRankCombineLUT* m_LFSortRankCombineLUT;
00264     static L1MuGMTLFSortRankEtaPhiLUT* m_LFSortRankEtaPhiLUT;
00265     static L1MuGMTLFSortRankEtaQLUT* m_LFSortRankEtaQLUT;
00266     static L1MuGMTLFSortRankPtQLUT* m_LFSortRankPtQLUT;
00267     static L1MuGMTMIAUEtaConvLUT* m_MIAUEtaConvLUT;
00268     static L1MuGMTMIAUEtaProLUT* m_MIAUEtaProLUT;
00269     static L1MuGMTMIAUPhiPro1LUT* m_MIAUPhiPro1LUT;
00270     static L1MuGMTMIAUPhiPro2LUT* m_MIAUPhiPro2LUT;
00271     static L1MuGMTPhiLUT* m_PhiLUT;
00272 
00273     // scales pointers
00274     static const L1MuGMTScales* m_GMTScales;
00275     static const L1MuTriggerScales* m_TriggerScales;
00276     static const L1MuTriggerPtScale* m_TriggerPtScale;
00277 
00278     static const L1CaloGeometry* m_caloGeom ;
00279 };
00280 
00281 #endif
00282 
00283 

Generated on Tue Jun 9 17:40:12 2009 for CMSSW by  doxygen 1.5.4