Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-09-02 03:45:46

0001 //-------------------------------------------------
0002 //
0003 /**  \class L1MuDTTrackSegEta
0004  *
0005  *   ETA Track Segment
0006  *
0007  *
0008  *
0009  *   N. Neumeister            CERN EP
0010  */
0011 //
0012 //--------------------------------------------------
0013 #ifndef L1MUDT_TRACK_SEG_ETA_H
0014 #define L1MUDT_TRACK_SEG_ETA_H
0015 
0016 //---------------
0017 // C++ Headers --
0018 //---------------
0019 
0020 #include <iosfwd>
0021 
0022 //----------------------
0023 // Base Class Headers --
0024 //----------------------
0025 
0026 //------------------------------------
0027 // Collaborating Class Declarations --
0028 //------------------------------------
0029 
0030 #include "L1Trigger/DTTrackFinder/interface/L1MuDTTrackSegLoc.h"
0031 
0032 //              ---------------------
0033 //              -- Class Interface --
0034 //              ---------------------
0035 
0036 class L1MuDTTrackSegEta {
0037 public:
0038   /// default constructor
0039   L1MuDTTrackSegEta();
0040 
0041   /// constructor
0042   L1MuDTTrackSegEta(int wheel_id, int sector_id, int station_id, int position = 0, int quality = 0, int bx = 17);
0043 
0044   /// constructor
0045   L1MuDTTrackSegEta(const L1MuDTTrackSegLoc&, int position = 0, int quality = 0, int bx = 17);
0046 
0047   /// copy constructor
0048   L1MuDTTrackSegEta(const L1MuDTTrackSegEta&);
0049 
0050   /// destructor
0051   virtual ~L1MuDTTrackSegEta();
0052 
0053   /// reset eta track segment
0054   void reset();
0055 
0056   /// return wheel
0057   inline int wheel() const { return m_location.wheel(); }
0058 
0059   /// return sector
0060   inline int sector() const { return m_location.sector(); }
0061 
0062   /// return station
0063   inline int station() const { return m_location.station(); }
0064 
0065   /// return location of eta track segment
0066   inline const L1MuDTTrackSegLoc& where() const { return m_location; }
0067 
0068   /// return position
0069   inline unsigned int position() const { return m_position; }
0070 
0071   /// return quality code
0072   inline unsigned int quality() const { return m_quality; }
0073 
0074   /// return bunch crossing
0075   inline int bx() const { return m_bx; }
0076 
0077   /// is it an empty eta track segment?
0078   inline bool empty() const { return m_position == 0; }
0079 
0080   /// assignment operator
0081   L1MuDTTrackSegEta& operator=(const L1MuDTTrackSegEta&);
0082 
0083   /// equal operator
0084   bool operator==(const L1MuDTTrackSegEta&) const;
0085 
0086   /// unequal operator
0087   bool operator!=(const L1MuDTTrackSegEta&) const;
0088 
0089   /// output stream operator
0090   friend std::ostream& operator<<(std::ostream&, const L1MuDTTrackSegEta&);
0091 
0092 private:
0093   L1MuDTTrackSegLoc m_location;  // logical location of a TS
0094   unsigned int m_position;       // 7 bits
0095   unsigned int m_quality;        // 7 bits
0096   int m_bx;                      // bunch crossing identifier
0097 };
0098 
0099 #endif