Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:50

0001 //-------------------------------------------------
0002 //
0003 /**  \class L1MuBMERS
0004  *
0005  *   Extrapolation Result Selector (Quality Sorter Unit):
0006  *
0007  *   selects the 2 best (highest target quality)
0008  *   out of the 12 (6) extrapolations
0009  *   performed per start track segment
0010  *
0011  *
0012  *
0013  *   N. Neumeister            CERN EP
0014  */
0015 //
0016 //--------------------------------------------------
0017 #ifndef L1MUBM_ERS_H
0018 #define L1MUBM_ERS_H
0019 
0020 //---------------
0021 // C++ Headers --
0022 //---------------
0023 
0024 #include <utility>
0025 
0026 //----------------------
0027 // Base Class Headers --
0028 //----------------------
0029 
0030 //------------------------------------
0031 // Collaborating Class Declarations --
0032 //------------------------------------
0033 
0034 class L1MuBMTrackSegPhi;
0035 class L1MuBMSEU;
0036 
0037 //              ---------------------
0038 //              -- Class Interface --
0039 //              ---------------------
0040 
0041 class L1MuBMERS {
0042 public:
0043   /// constructor
0044   L1MuBMERS(const L1MuBMSEU&);
0045 
0046   /// destructor
0047   ~L1MuBMERS();
0048 
0049   /// run L1MuBMERS
0050   void run();
0051 
0052   /// reset ERS
0053   void reset();
0054 
0055   /// return extrapolation quality
0056   inline unsigned int quality(int id) const { return m_quality[id]; }
0057 
0058   /// return extrapolation address; (address = 15 indicates negative ext. result)
0059   inline unsigned short int address(int id) const { return m_address[id]; }
0060 
0061   /// return pointer to start and target track segment
0062   std::pair<const L1MuBMTrackSegPhi*, const L1MuBMTrackSegPhi*> ts(int id) const;
0063 
0064 private:
0065   const L1MuBMSEU& m_seu;
0066 
0067   unsigned short int m_quality[2];  //@@ 1 bit
0068   unsigned short int m_address[2];  //@@ 4 bits
0069 
0070   const L1MuBMTrackSegPhi* m_start[2];
0071   const L1MuBMTrackSegPhi* m_target[2];
0072 };
0073 
0074 #endif