Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:51:17

0001 //-------------------------------------------------
0002 //
0003 /**  \class L1MuDTQualPatternLut
0004  *
0005  *   Look-up tables for eta matching unit (EMU)
0006  *   stores lists of qualified patterns and
0007  *   coarse eta values 
0008  *
0009  *
0010  *   $Date: 2007/03/30 07:48:02 $
0011  *   $Revision: 1.1 $
0012  *
0013  *   N. Neumeister            CERN EP
0014  */
0015 //
0016 //--------------------------------------------------
0017 #ifndef L1MUDT_QUALPATTERN_LUT_H
0018 #define L1MUDT_QUALPATTERN_LUT_H
0019 
0020 //---------------
0021 // C++ Headers --
0022 //---------------
0023 
0024 #include "CondFormats/Serialization/interface/Serializable.h"
0025 
0026 #include <vector>
0027 #include <map>
0028 
0029 //----------------------
0030 // Base Class Headers --
0031 //----------------------
0032 
0033 //------------------------------------
0034 // Collaborating Class Declarations --
0035 //------------------------------------
0036 
0037 //              ---------------------
0038 //              -- Class Interface --
0039 //              ---------------------
0040 
0041 class L1MuDTQualPatternLut {
0042 public:
0043   typedef std::pair<short, short> LUTID;
0044   typedef std::pair<short, std::vector<short> > LUTCONT;
0045   typedef std::map<LUTID, LUTCONT> LUT;
0046   typedef LUT::iterator EMULut_iter;
0047 
0048   /// constructor
0049   L1MuDTQualPatternLut();
0050 
0051   /// destructor
0052   virtual ~L1MuDTQualPatternLut();
0053 
0054   /// reset look-up tables
0055   void reset();
0056 
0057   /// load look-up tables
0058   int load();
0059 
0060   /// print look-up tables
0061   void print() const;
0062 
0063   /// get coarse eta value for a given sector processor [1-6] and address [1-22]
0064   int getCoarseEta(int sp, int adr) const;
0065 
0066   /// get list of qualified patterns for a given sector processor [1-6] and address [1-22]
0067   const std::vector<short>& getQualifiedPatterns(int sp, int adr) const;
0068 
0069   /// return number of entries in the LUT
0070   inline int size() const { return m_lut.size(); }
0071 
0072   /// return iterator which points to the first entry of the LUT
0073   inline EMULut_iter begin() { return m_lut.begin(); }
0074 
0075   /// return iterator which points to the one-past-last entry of the LUT
0076   inline EMULut_iter end() { return m_lut.end(); }
0077 
0078 public:
0079   LUT m_lut;  // coarse eta values and list of qualified patterns
0080 
0081   COND_SERIALIZABLE;
0082 };
0083 
0084 #endif