Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef __l1t_gmt_internal_muon_h__
0002 #define __l1t_gmt_internal_muon_h__
0003 
0004 #include "DataFormats/Common/interface/Ref.h"
0005 #include "DataFormats/L1TMuon/interface/RegionalMuonCand.h"
0006 #include "DataFormats/L1TMuon/interface/RegionalMuonCandFwd.h"
0007 #include <utility>
0008 
0009 namespace l1t {
0010   class GMTInternalMuon {
0011   public:
0012     explicit GMTInternalMuon(const RegionalMuonCand&, int, int);
0013     GMTInternalMuon(const GMTInternalMuon&);
0014     // GMTInternalMuon() {};
0015 
0016     virtual ~GMTInternalMuon(){};
0017 
0018     void setHwCancelBit(int bit) { m_hwCancelBit = bit; };
0019     void setHwRank(int bits) { m_hwRank = bits; };
0020     void setHwWins(int wins) { m_hwWins = wins; };
0021     void increaseWins() { m_hwWins++; };
0022     void setHwIsoSum(int isosum) { m_hwIsoSum = isosum; };
0023     void setHwAbsIso(int iso) { m_hwAbsIso = iso; };
0024     void setHwRelIso(int iso) { m_hwRelIso = iso; };
0025     void setExtrapolation(int deta, int dphi);
0026     void setHwCaloEta(int idx) { m_hwCaloIndex.second = idx; };
0027     void setHwCaloPhi(int idx) { m_hwCaloIndex.first = idx; };
0028     void setTfMuonIndex(int idx) { m_tfMuonIndex = idx; };
0029 
0030     const int hwCancelBit() const { return m_hwCancelBit; };
0031     const int hwRank() const { return m_hwRank; };
0032     const int hwWins() const { return m_hwWins; };
0033     const int hwIsoSum() const { return m_hwIsoSum; };
0034     const int hwDEta() const { return m_hwDeltaEta; };
0035     const int hwDPhi() const { return m_hwDeltaPhi; };
0036     const int hwAbsIso() const { return m_hwAbsIso; };
0037     const int hwRelIso() const { return m_hwRelIso; };
0038     const int hwCaloEta() const { return m_hwCaloIndex.second; };
0039     const int hwCaloPhi() const { return m_hwCaloIndex.first; };
0040     const int hwGlobalPhi() const { return m_hwGlobalPhi; }
0041     const int tfMuonIndex() const { return m_tfMuonIndex; }
0042 
0043     const RegionalMuonCand& origin() const { return m_regional; };
0044 
0045     inline const int hwPt() const { return m_regional.hwPt(); };
0046     inline const int hwPtUnconstrained() const { return m_regional.hwPtUnconstrained(); };
0047     inline const int hwDXY() const { return m_regional.hwDXY(); };
0048     inline const int hwLocalPhi() const { return m_regional.hwPhi(); };
0049     inline const int hwEta() const { return m_regional.hwEta(); };
0050     inline const int hwSign() const { return m_regional.hwSign(); };
0051     inline const int hwSignValid() const { return m_regional.hwSignValid(); };
0052     inline const int hwQual() const { return m_regional.hwQual(); };
0053     inline const int hwHF() const { return m_regional.hwHF(); };
0054     inline const int processor() const { return m_regional.processor(); };
0055     inline const tftype trackFinderType() const { return m_regional.trackFinderType(); };
0056     inline const int link() const { return m_regional.link(); }
0057 
0058   private:
0059     const RegionalMuonCand& m_regional;
0060     int m_hwRank;
0061     int m_hwCancelBit;
0062     int m_hwWins;
0063     int m_hwIsoSum;
0064     int m_hwDeltaEta;
0065     int m_hwDeltaPhi;
0066     int m_hwAbsIso;
0067     int m_hwRelIso;
0068     int m_hwGlobalPhi;
0069     int m_tfMuonIndex;
0070     std::pair<int, int> m_hwCaloIndex;
0071   };
0072 
0073 }  // namespace l1t
0074 
0075 #endif /* define __l1t_gmt_internal_muon_h__ */