CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMatchQualLUT.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00010 //   $Date: 2007/04/02 15:45:38 $
00011 //   $Revision: 1.3 $
00012 //
00013 //   Author :
00014 //   H. Sakulin            HEPHY Vienna
00015 //
00016 //   Migrated to CMSSW:
00017 //   I. Mikulec
00018 //
00019 //--------------------------------------------------
00020 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTLFMatchQualLUT_h
00021 #define L1TriggerGlobalMuonTrigger_L1MuGMTLFMatchQualLUT_h
00022 
00023 //---------------
00024 // C++ Headers --
00025 //---------------
00026 
00027 
00028 //----------------------
00029 // Base Class Headers --
00030 //----------------------
00031 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLUT.h"
00032 
00033 //------------------------------------
00034 // Collaborating Class Declarations --
00035 //------------------------------------
00036 
00037 //              ---------------------
00038 //              -- Class Interface --
00039 //              ---------------------
00040 
00041 
00042 class L1MuGMTLFMatchQualLUT : public L1MuGMTLUT {
00043   
00044  public:
00045   enum {DTRPC, CSCRPC, DTCSC, CSCDT, CSCbRPC, DTfRPC};
00046 
00048   L1MuGMTLFMatchQualLUT() : L1MuGMTLUT("LFMatchQual", 
00049                                        "DTRPC CSCRPC DTCSC CSCDT CSCbRPC DTfRPC",
00050                                        "delta_eta(4) delta_phi(3)",
00051                                        "mq(6)", 7, true) {
00052     InitParameters();
00053   } ;
00054 
00056   virtual ~L1MuGMTLFMatchQualLUT() {};
00057 
00059   unsigned SpecificLookup_mq (int idx, unsigned delta_eta, unsigned delta_phi) const {
00060     std::vector<unsigned> addr(2);
00061     addr[0] = delta_eta;
00062     addr[1] = delta_phi;
00063     return Lookup(idx, addr) [0];
00064   };
00065 
00067   unsigned SpecificLookup (int idx, unsigned delta_eta, unsigned delta_phi) const {
00068     std::vector<unsigned> addr(2);
00069     addr[0] = delta_eta;
00070     addr[1] = delta_phi;
00071     return LookupPacked(idx, addr);
00072   };
00073 
00074 
00075 
00077 
00078   virtual unsigned LookupFunctionPacked (int idx, unsigned address) const {
00079     std::vector<unsigned> addr = u2vec(address, m_Inputs);
00080     return TheLookupFunction(idx ,addr[0] ,addr[1]);
00081 
00082   };
00083 
00084  private:
00086   void InitParameters();
00087 
00089   unsigned TheLookupFunction (int idx, unsigned delta_eta, unsigned delta_phi) const;
00090 
00092   float m_EtaWeights[6]; 
00093   float m_PhiWeights[6];
00094   float m_EtaPhiThresholds[6];
00095 };
00096 #endif
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115