Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 //-------------------------------------------------
0002 //
0003 /**  \class L1MuKBMCombinedStub
0004  *
0005  *  Class that combines TwinMux Phi and eta segments to a common segment to be used
0006  *  by the Kalman MuonTrack Finder
0007  *
0008  *
0009  *   M.Bachtis (UCLA)
0010  */
0011 //
0012 //--------------------------------------------------
0013 #ifndef L1MUKBM_COMBINED_STUB_H
0014 #define L1MUKBM_COMBINED_STUB_H
0015 
0016 //---------------
0017 // C++ Headers --
0018 //---------------
0019 
0020 #include <iosfwd>
0021 #include <vector>
0022 
0023 //----------------------
0024 // Base Class Headers --
0025 //----------------------
0026 
0027 //------------------------------------
0028 // Collaborating Class Declarations --
0029 //------------------------------------
0030 
0031 #include "DataFormats/L1TMuon/interface/BMTF/L1MuBMTrackSegLoc.h"
0032 #include "DataFormats/L1Trigger/interface/BXVector.h"
0033 #include "DataFormats/Common/interface/Ref.h"
0034 
0035 //              ---------------------
0036 //              -- Class Interface --
0037 //              ---------------------
0038 
0039 class L1MuKBMTCombinedStub;
0040 
0041 typedef std::vector<L1MuKBMTCombinedStub> L1MuKBMTCombinedStubCollection;
0042 typedef edm::Ref<L1MuKBMTCombinedStubCollection> L1MuKBMTCombinedStubRef;
0043 typedef std::vector<edm::Ref<L1MuKBMTCombinedStubCollection> > L1MuKBMTCombinedStubRefVector;
0044 
0045 class L1MuKBMTCombinedStub {
0046 public:
0047   /// default constructor
0048   L1MuKBMTCombinedStub();
0049 
0050   /// constructor
0051   L1MuKBMTCombinedStub(int wheel,
0052                        int sector,
0053                        int station,
0054                        int phi,
0055                        int phiB,
0056                        bool tag,
0057                        int bx,
0058                        int quality,
0059                        int eta1 = 0,
0060                        int eta2 = 0,
0061                        int qeta1 = -1,
0062                        int qeta2 = -1);
0063   /// copy constructor
0064   L1MuKBMTCombinedStub(const L1MuKBMTCombinedStub&) = default;
0065   //destructor
0066   ~L1MuKBMTCombinedStub();
0067   /// return wheel
0068   inline int whNum() const { return whNum_; }
0069   /// return sector
0070   inline int scNum() const { return scNum_; }
0071   /// return station
0072   inline int stNum() const { return stNum_; }
0073   /// return phi
0074   inline int phi() const { return phi_; }
0075   /// return phib
0076   inline int phiB() const { return phiB_; }
0077   /// return quality code
0078   inline int quality() const { return quality_; }
0079   /// return tag (second TS tag)
0080   inline int tag() const { return tag_; }
0081   /// return bunch crossing
0082   inline int bxNum() const { return bxNum_; }
0083 
0084   /// return first eta
0085   inline int eta1() const { return eta1_; }
0086   /// return second eta
0087   inline int eta2() const { return eta2_; }
0088   /// return first eta quality
0089   inline int qeta1() const { return qeta1_; }
0090   /// return second eta quality
0091   inline int qeta2() const { return qeta2_; }
0092 
0093   /// assignment operator
0094   L1MuKBMTCombinedStub& operator=(const L1MuKBMTCombinedStub&);
0095   /// equal operator
0096   bool operator==(const L1MuKBMTCombinedStub&) const;
0097   /// unequal operator
0098   bool operator!=(const L1MuKBMTCombinedStub&) const;
0099 
0100   /// overload output stream operator for phi track segments
0101   friend std::ostream& operator<<(std::ostream&, const L1MuKBMTCombinedStub&);
0102 
0103 private:
0104   int whNum_;
0105   int scNum_;
0106   int stNum_;
0107   int phi_;      // 12 bits
0108   int phiB_;     // 10 bits
0109   bool tag_;     // tag for second TS (of chamber)
0110   int quality_;  // 3 bits
0111   int bxNum_;    // bunch crossing identifier
0112   int eta1_;     //fine eta 1
0113   int eta2_;     //fine eta 2
0114   int qeta1_;    //fine eta quality 1
0115   int qeta2_;    //fine eta quality 2
0116 };
0117 
0118 #endif