File indexing completed on 2024-09-07 04:36:56
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
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 }
0074
0075 #endif