Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:33

0001 //-------------------------------------------------
0002 //
0003 /**  \class L1MuBMSecProcId
0004  *
0005  *   Sector Processor identifier:
0006  *
0007  *   There are 6 sector processors along the eta direction 
0008  *   numbered: -3 -2 -1 +1 +2 +3 (= wheel)<BR>
0009  *   and 12 sector processors along the phi direction [0,11].<BR>
0010  *   This is necessary because wheel 0 needs two sector processors
0011  *
0012  *
0013  *
0014  *   N. Neumeister            CERN EP
0015  */
0016 //
0017 //--------------------------------------------------
0018 #ifndef L1MUBM_SEC_PROC_ID_H
0019 #define L1MUBM_SEC_PROC_ID_H
0020 
0021 //---------------
0022 // C++ Headers --
0023 //---------------
0024 
0025 #include <iosfwd>
0026 #include <cstdlib>
0027 
0028 //----------------------
0029 // Base Class Headers --
0030 //----------------------
0031 
0032 //------------------------------------
0033 // Collaborating Class Declarations --
0034 //------------------------------------
0035 
0036 //              ---------------------
0037 //              -- Class Interface --
0038 //              ---------------------
0039 
0040 class L1MuBMSecProcId {
0041 public:
0042   /// default constructor
0043   L1MuBMSecProcId();
0044 
0045   /// constructor
0046   L1MuBMSecProcId(int wheel_id, int sector_id);
0047 
0048   /// copy constructor
0049   L1MuBMSecProcId(const L1MuBMSecProcId&);
0050 
0051   /// destructor
0052   virtual ~L1MuBMSecProcId();
0053 
0054   /// return wheel number
0055   inline int wheel() const { return m_wheel; }
0056 
0057   /// return sector number
0058   inline int sector() const { return m_sector; }
0059 
0060   /// is it an overlap region Sector Processor?
0061   inline bool ovl() const { return (abs(m_wheel) == 3) ? true : false; }
0062 
0063   /// return physical wheel number (-2,-1,0,+1,+2)
0064   int locwheel() const;
0065 
0066   /// assignment operator
0067   L1MuBMSecProcId& operator=(const L1MuBMSecProcId&);
0068 
0069   /// equal operator
0070   bool operator==(const L1MuBMSecProcId&) const;
0071 
0072   /// unequal operator
0073   bool operator!=(const L1MuBMSecProcId&) const;
0074 
0075   /// less operator
0076   bool operator<(const L1MuBMSecProcId&) const;
0077 
0078   /// output stream operator
0079   friend std::ostream& operator<<(std::ostream&, const L1MuBMSecProcId&);
0080 
0081 private:
0082   int m_wheel;
0083   int m_sector;
0084 };
0085 
0086 #endif