Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pr 111 x Displaced muon in BMTF and uGMT ( unpacker/emulator/packer) #31679

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
e3371cd
uGMT adapted for KBMTF muons
dinyar May 24, 2019
9e5c39b
Exposing displaced quantities in internal GMT muon
dinyar Feb 25, 2020
434e749
Fixed equality operator for regional muon cand
dinyar Feb 25, 2020
13cca0b
Including displacement in muon data format
dinyar Feb 25, 2020
1db4a77
Forwarding muon displacement to Global Trigger
dinyar Feb 25, 2020
f2b20c1
Added raw track addresses to L1UpgradeTfMuon branch of L1TNtuples
dinyar May 16, 2019
eb4b164
Put L1 TF track addresses into map in L1TNtuple
dinyar May 16, 2019
08a0670
Renamed tfMuonRawTrAdd to tfMuonHwTrAdd
dinyar May 23, 2019
868539d
Raw track address in L1TNtuple fits into short
dinyar May 23, 2019
f1e5d35
Unpackers for BMTF, uGMT, and uGT adapted for Kalman muons
dinyar Mar 5, 2020
74f5c24
Enabled switching of cancel-out algo based on FW version
dinyar Mar 5, 2020
6ee6f6b
Zero pT indicates empty muon.
dinyar Mar 23, 2020
702afee
Added physical unconstrained pT to muon data format.
dinyar Mar 27, 2020
0002ea5
Fixed indentation
dinyar Mar 27, 2020
23244f2
Added displacement quantities at GMT output to L1TNtuples
dinyar Mar 27, 2020
be04ebf
Reverting change of barrel input collection for uGMT
dinyar Apr 2, 2020
6f456a4
Make unpacker code more readable (and fix a bug)
dinyar Apr 8, 2020
815caa7
Guarding against negative unconstrained pT
dinyar Apr 16, 2020
3a68cf5
Renamed pt2 member of regional muon DF to ptUnconstrained
dinyar Apr 22, 2020
55c9a8b
Configuring GMT inputs by era
dinyar Apr 23, 2020
fad4fd5
Running KBMTF in parallel to BMTF
dinyar Apr 23, 2020
6baf7e8
Refactor muon packer in preparation for Run-3 data format
dinyar Apr 29, 2020
6987455
MuonPacker packs according to era
dinyar May 3, 2020
681f786
Added raw track addresses to L1UpgradeTfMuon branch of L1TNtuples
dinyar May 16, 2019
a4bec95
Regional muon packer adapted for Kalman muons from BMTF
dinyar May 18, 2020
c32d0a4
Made L1TNtuples work with changed raw2digi translator
dinyar May 18, 2020
13fb02a
Fixed a rare bug in the ghost busting for KBMTF
dinyar Jun 29, 2020
bdd6282
Added simKBmtfDigis to FEVTDEBUG event content
dinyar Jun 29, 2020
8182c0c
Correct flipped BMTF track addresses
dinyar Jul 1, 2020
e3fbdc6
Post rebase-fix.
rekovic Sep 28, 2020
392c8ac
code-format
rekovic Sep 28, 2020
f26ca24
Further post-rebase cleanup
dinyar Sep 30, 2020
cb57909
Applied changes from code-checks
dinyar Sep 30, 2020
bbcc394
Log when we can't fill raw eta of uGMT output muons
dinyar Oct 1, 2020
fd78ab8
Reverted regression in BMTF DQM that was introduced during merge
dinyar Oct 1, 2020
4e8cd8b
Versioning RegionalMuonCand data format
dinyar Oct 12, 2020
c3734a8
Fix versionining in iorules, synced with #31848
rekovic Oct 27, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions DQM/L1TMonitor/interface/L1TStage2BMTF.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
/*
* \file L1TStage2BMTF.h
* \Author Esmaeel Eskandari Tadavani
* \December 2015
* \December 2015
*/

// system requirements
Expand Down Expand Up @@ -95,7 +95,7 @@ class L1TStage2BMTF : public DQMEDAnalyzer {
MonitorElement* bmtf_hwQual_bx;

MonitorElement* bmtf_hwDXY;
MonitorElement* bmtf_hwPt2;
MonitorElement* bmtf_hwPtUnconstrained;

/* MonitorElement* bmtf_twinmuxInput_PhiBX; */
/* MonitorElement* bmtf_twinmuxInput_PhiPhi; */
Expand Down
4 changes: 2 additions & 2 deletions DQM/L1TMonitor/interface/L1TStage2RegionalMuonCandComp.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class L1TStage2RegionalMuonCandComp : public DQMEDAnalyzer {
MonitorElement* muColl1TrkAddrSize;
MonitorElement* muColl1TrkAddr;
MonitorElement* muColl1hwDXY;
MonitorElement* muColl1hwPt2;
MonitorElement* muColl1hwPtUnconstrained;

MonitorElement* muColl2BxRange;
MonitorElement* muColl2nMu;
Expand All @@ -112,7 +112,7 @@ class L1TStage2RegionalMuonCandComp : public DQMEDAnalyzer {
MonitorElement* muColl2TrkAddrSize;
MonitorElement* muColl2TrkAddr;
MonitorElement* muColl2hwDXY;
MonitorElement* muColl2hwPt2;
MonitorElement* muColl2hwPtUnconstrained;
};

#endif
5 changes: 3 additions & 2 deletions DQM/L1TMonitor/src/L1TStage2BMTF.cc
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ void L1TStage2BMTF::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run& i
bmtf_hwQual_bx->setTitle("; HW Quality; BX");

bmtf_hwDXY = ibooker.book1D(histoPrefix + "_hwDXY", "HW DXY", 4, 0, 4);
bmtf_hwPt2 = ibooker.book1D(histoPrefix + "_hwPt2", "HW p_{T}2", 512, -0.5, 511.5);
bmtf_hwPtUnconstrained =
ibooker.book1D(histoPrefix + "_hwPtUnconstrained", "HW p_{T} unconstrained", 512, -0.5, 511.5);

// bmtf_twinmuxInput_PhiBX = ibooker.book1D(histoPrefix+"_twinmuxInput_PhiBX" , "TwinMux Input Phi BX" , 5, -2.5, 2.5);
// bmtf_twinmuxInput_PhiPhi = ibooker.book1D(histoPrefix+"_twinmuxInput_PhiPhi" , "TwinMux Input Phi HW Phi" , 201, -100.5, 100.5);
Expand Down Expand Up @@ -136,7 +137,7 @@ void L1TStage2BMTF::analyze(const edm::Event& eve, const edm::EventSetup& eveSet
bmtf_proc->Fill(itMuon->processor());

bmtf_hwDXY->Fill(itMuon->hwDXY());
bmtf_hwPt2->Fill(itMuon->hwPt2());
bmtf_hwPtUnconstrained->Fill(itMuon->hwPtUnconstrained());

if (fabs(bmtfMuon->getLastBX() - bmtfMuon->getFirstBX()) > 3) {
bmtf_wedge_bx->Fill(itMuon->processor(), itBX);
Expand Down
32 changes: 19 additions & 13 deletions DQM/L1TMonitor/src/L1TStage2RegionalMuonCandComp.cc
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ void L1TStage2RegionalMuonCandComp::bookHistograms(DQMStore::IBooker& ibooker,
summary->setBinLabel(TRACKADDRBAD, "track address mismatch", 1);
if (isBmtf) {
summary->setBinLabel(DXYBAD, "DXY mismatch", 1);
summary->setBinLabel(PT2BAD, "P_{T}2 mismatch", 1);
summary->setBinLabel(PT2BAD, "P_{T} unconstrained mismatch", 1);
}

int nbinsNum = 14;
Expand Down Expand Up @@ -111,7 +111,7 @@ void L1TStage2RegionalMuonCandComp::bookHistograms(DQMStore::IBooker& ibooker,
errorSummaryNum->setBinLabel(RTRACKADDR, "track address mismatch", 1);
if (isBmtf) {
errorSummaryNum->setBinLabel(RDXY, "DXY mismatch", 1);
errorSummaryNum->setBinLabel(RPT2, "P_{T}2 mismatch", 1);
errorSummaryNum->setBinLabel(RPT2, "P_{T} unconstrained mismatch", 1);
}

// Change the label for those bins that will be ignored
Expand Down Expand Up @@ -198,9 +198,12 @@ void L1TStage2RegionalMuonCandComp::bookHistograms(DQMStore::IBooker& ibooker,
if (isBmtf) {
muColl1hwDXY = ibooker.book1D("muhwDXYColl1", (muonColl1Title + " HW DXY" + trkAddrIgnoreText).c_str(), 4, 0, 4);
muColl1hwDXY->setAxisTitle("Hardware DXY", 1);
muColl1hwPt2 =
ibooker.book1D("muhwPt2Coll1", (muonColl1Title + "HW p_{T}2" + trkAddrIgnoreText).c_str(), 512, -0.5, 511.5);
muColl1hwPt2->setAxisTitle("Hardware P_{T}2", 1);
muColl1hwPtUnconstrained = ibooker.book1D("muhwPtUnconstrainedColl1",
(muonColl1Title + "HW p_{T} unconstrained" + trkAddrIgnoreText).c_str(),
512,
-0.5,
511.5);
muColl1hwPtUnconstrained->setAxisTitle("Hardware P_{T} unconstrained", 1);
}

muColl2BxRange = ibooker.book1D("muBxRangeColl2", (muonColl2Title + " mismatching BX range").c_str(), 11, -5.5, 5.5);
Expand Down Expand Up @@ -266,9 +269,12 @@ void L1TStage2RegionalMuonCandComp::bookHistograms(DQMStore::IBooker& ibooker,
if (isBmtf) {
muColl2hwDXY = ibooker.book1D("muhwDXYColl2", (muonColl2Title + " HW DXY" + trkAddrIgnoreText).c_str(), 4, 0, 4);
muColl2hwDXY->setAxisTitle("Hardware DXY", 1);
muColl2hwPt2 =
ibooker.book1D("muhwPt2Coll2", (muonColl2Title + "HW p_{T}2" + trkAddrIgnoreText).c_str(), 512, -0.5, 511.5);
muColl2hwPt2->setAxisTitle("Hardware P_{T}2", 1);
muColl2hwPtUnconstrained = ibooker.book1D("muhwPtUnconstrainedColl2",
(muonColl2Title + "HW p_{T} unconstrained" + trkAddrIgnoreText).c_str(),
512,
-0.5,
511.5);
muColl2hwPtUnconstrained->setAxisTitle("Hardware P_{T} unconstrained", 1);
}
}

Expand Down Expand Up @@ -333,7 +339,7 @@ void L1TStage2RegionalMuonCandComp::analyze(const edm::Event& e, const edm::Even
muColl1TrkAddrSize->Fill(muon1TrackAddr.size());
if (isBmtf) {
muColl1hwDXY->Fill(muonIt1->hwDXY());
muColl1hwPt2->Fill(muonIt1->hwPt2());
muColl1hwPtUnconstrained->Fill(muonIt1->hwPtUnconstrained());
}
for (std::map<int, int>::const_iterator trIt1 = muon1TrackAddr.begin(); trIt1 != muon1TrackAddr.end();
++trIt1) {
Expand All @@ -357,7 +363,7 @@ void L1TStage2RegionalMuonCandComp::analyze(const edm::Event& e, const edm::Even
muColl2TrkAddrSize->Fill(muon2TrackAddr.size());
if (isBmtf) {
muColl2hwDXY->Fill(muonIt2->hwDXY());
muColl2hwPt2->Fill(muonIt2->hwPt2());
muColl2hwPtUnconstrained->Fill(muonIt2->hwPtUnconstrained());
}
for (std::map<int, int>::const_iterator trIt2 = muon2TrackAddr.begin(); trIt2 != muon2TrackAddr.end();
++trIt2) {
Expand Down Expand Up @@ -506,7 +512,7 @@ void L1TStage2RegionalMuonCandComp::analyze(const edm::Event& e, const edm::Even
errorSummaryNum->Fill(RDXY);
}
}
if (muonIt1->hwPt2() != muonIt2->hwPt2()) {
if (muonIt1->hwPtUnconstrained() != muonIt2->hwPtUnconstrained()) {
muonMismatch = true;
summary->Fill(PT2BAD);
if (incBin[RPT2]) {
Expand Down Expand Up @@ -534,7 +540,7 @@ void L1TStage2RegionalMuonCandComp::analyze(const edm::Event& e, const edm::Even
muColl1TrkAddrSize->Fill(muon1TrackAddr.size());
if (isBmtf) {
muColl1hwDXY->Fill(muonIt1->hwDXY());
muColl1hwPt2->Fill(muonIt1->hwPt2());
muColl1hwPtUnconstrained->Fill(muonIt1->hwPtUnconstrained());
}
for (std::map<int, int>::const_iterator trIt1 = muon1TrackAddr.begin(); trIt1 != muon1TrackAddr.end();
++trIt1) {
Expand All @@ -554,7 +560,7 @@ void L1TStage2RegionalMuonCandComp::analyze(const edm::Event& e, const edm::Even
muColl2TrkAddrSize->Fill(muon2TrackAddr.size());
if (isBmtf) {
muColl2hwDXY->Fill(muonIt2->hwDXY());
muColl2hwPt2->Fill(muonIt2->hwPt2());
muColl2hwPtUnconstrained->Fill(muonIt2->hwPtUnconstrained());
}
for (std::map<int, int>::const_iterator trIt2 = muon2TrackAddr.begin(); trIt2 != muon2TrackAddr.end();
++trIt2) {
Expand Down
12 changes: 6 additions & 6 deletions DataFormats/L1TMuon/interface/RegionalMuonCand.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ namespace l1t {

RegionalMuonCand()
: m_hwPt(0),
m_hwPt2(0),
m_hwPtUnconstrained(0),
m_hwDXY(0),
m_hwPhi(0),
m_hwEta(0),
Expand All @@ -59,7 +59,7 @@ namespace l1t {

RegionalMuonCand(int pt, int phi, int eta, int sign, int signvalid, int quality, int processor, tftype trackFinder)
: m_hwPt(pt),
m_hwPt2(0),
m_hwPtUnconstrained(0),
m_hwDXY(0),
m_hwPhi(phi),
m_hwEta(eta),
Expand Down Expand Up @@ -107,7 +107,7 @@ namespace l1t {
tftype trackFinder,
std::map<int, int> trackAddress)
: m_hwPt(pt),
m_hwPt2(0),
m_hwPtUnconstrained(0),
m_hwDXY(0),
m_hwPhi(phi),
m_hwEta(eta),
Expand All @@ -125,7 +125,7 @@ namespace l1t {
/// Set compressed pT as transmitted by hardware LSB = 0.5 (9 bits)
void setHwPt(int bits) { m_hwPt = bits; };
/// Set compressed second displaced pT as transmitted by hardware LSB = 1.0 (8 bits)
void setHwPt2(int bits) { m_hwPt2 = bits; };
void setHwPtUnconstrained(int bits) { m_hwPtUnconstrained = bits; };
/// Set compressed impact parameter with respect to beamspot (4 bits)
void setHwDXY(int bits) { m_hwDXY = bits; };
/// Set compressed relative phi as transmitted by hardware LSB = 2*pi/576 (8 bits)
Expand Down Expand Up @@ -160,7 +160,7 @@ namespace l1t {
/// Get compressed pT (returned int * 0.5 = pT (GeV))
const int hwPt() const { return m_hwPt; };
/// Get second compressed pT (returned int * 1.0 = pT (GeV))
const int hwPt2() const { return m_hwPt2; };
const int hwPtUnconstrained() const { return m_hwPtUnconstrained; };
/// Get compressed impact parameter (4 bits)
const int hwDXY() const { return m_hwDXY; };
/// Get compressed local phi (returned int * 2*pi/576 = local phi in rad)
Expand Down Expand Up @@ -201,7 +201,7 @@ namespace l1t {

private:
int m_hwPt;
int m_hwPt2;
int m_hwPtUnconstrained;
int m_hwDXY;
int m_hwPhi;
int m_hwEta;
Expand Down
7 changes: 4 additions & 3 deletions DataFormats/L1TMuon/src/RegionalMuonCand.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ namespace l1t {
}

bool RegionalMuonCand::operator==(const RegionalMuonCand& rhs) const {
return m_hwPt == rhs.hwPt() && m_hwPhi == rhs.hwPhi() && m_hwEta == rhs.hwEta() && m_hwHF == (bool)rhs.hwHF() &&
m_hwSign == rhs.hwSign() && m_hwSignValid == rhs.hwSignValid() && m_hwQuality == rhs.hwQual() &&
m_link == rhs.link() && m_processor == rhs.processor() && m_trackFinder == rhs.trackFinderType() &&
return m_hwPt == rhs.hwPt() && m_hwPtUnconstrained == rhs.hwPtUnconstrained() && m_hwDXY == rhs.hwDXY() &&
m_hwPhi == rhs.hwPhi() && m_hwEta == rhs.hwEta() && m_hwHF == (bool)rhs.hwHF() && m_hwSign == rhs.hwSign() &&
m_hwSignValid == rhs.hwSignValid() && m_hwQuality == rhs.hwQual() && m_link == rhs.link() &&
m_processor == rhs.processor() && m_trackFinder == rhs.trackFinderType() &&
m_trackAddress == rhs.trackAddress();
}

Expand Down
12 changes: 10 additions & 2 deletions DataFormats/L1TMuon/src/classes_def.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
<lcgdict>
<selection>

<class name="l1t::RegionalMuonCand"/>
<class name="l1t::RegionalMuonCand" ClassVersion="11">
<version ClassVersion="11" checksum="2292293737"/>
<version ClassVersion="10" checksum="1070099328"/>
</class>
<ioread sourceClass="l1t::RegionalMuonCand" targetClass="l1t::RegionalMuonCand" version="[10]" source="int m_hwPt2" target="m_hwPtUnconstrained">
<![CDATA[ m_hwPtUnconstrained = onfile.m_hwPt2; ]]>
</ioread>

<class name="std::vector<l1t::RegionalMuonCand>"/>
<class name="l1t::RegionalMuonCandBxCollection"/>
<class name="edm::Wrapper<l1t::RegionalMuonCandBxCollection>"/>
Expand Down Expand Up @@ -63,7 +70,8 @@



<class name="L1MuBMTrack" ClassVersion="13">
<class name="L1MuBMTrack" ClassVersion="14">
<version ClassVersion="14" checksum="2164413511"/>
<version ClassVersion="10" checksum="955528069"/>
<version ClassVersion="11" checksum="1941187557"/>
<version ClassVersion="12" checksum="4194061270"/>
Expand Down
23 changes: 21 additions & 2 deletions DataFormats/L1Trigger/interface/Muon.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ namespace l1t {
int hwEtaAtVtx = 0,
int hwPhiAtVtx = 0,
double etaAtVtx = 0.,
double phiAtVtx = 0.);
double phiAtVtx = 0.,
int hwPtUnconstrained = 0,
double ptUnconstrained = 0.,
int dXY = 0);

Muon(const PolarLorentzVector& p4,
int pt = 0,
Expand All @@ -60,7 +63,10 @@ namespace l1t {
int hwEtaAtVtx = 0,
int hwPhiAtVtx = 0,
double etaAtVtx = 0.,
double phiAtVtx = 0.);
double phiAtVtx = 0.,
int hwPtUnconstrained = 0,
double ptUnconstrained = 0.,
int dXY = 0);

~Muon() override;

Expand All @@ -80,6 +86,10 @@ namespace l1t {
inline void setHwDEtaExtra(int dEta) { hwDEtaExtra_ = dEta; };
inline void setHwRank(int rank) { hwRank_ = rank; };

inline void setHwPtUnconstrained(int hwPtUnconstrained) { hwPtUnconstrained_ = hwPtUnconstrained; };
inline void setPtUnconstrained(double ptUnconstrained) { ptUnconstrained_ = ptUnconstrained; };
inline void setHwDXY(int hwDXY) { hwDXY_ = hwDXY; };

inline void setDebug(bool debug) { debug_ = debug; };

// methods to retrieve values
Expand All @@ -98,6 +108,10 @@ namespace l1t {
inline int hwDEtaExtra() const { return hwDEtaExtra_; };
inline int hwRank() const { return hwRank_; };

inline int hwPtUnconstrained() const { return hwPtUnconstrained_; };
inline double ptUnconstrained() const { return ptUnconstrained_; };
inline int hwDXY() const { return hwDXY_; };

inline bool debug() const { return debug_; };

virtual bool operator==(const l1t::Muon& rhs) const;
Expand All @@ -122,6 +136,11 @@ namespace l1t {
int hwPhiAtVtx_;
double etaAtVtx_;
double phiAtVtx_;

// displacement information
int hwPtUnconstrained_;
double ptUnconstrained_;
int hwDXY_;
};

} // namespace l1t
Expand Down
29 changes: 23 additions & 6 deletions DataFormats/L1Trigger/src/Muon.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ l1t::Muon::Muon()
hwEtaAtVtx_(0),
hwPhiAtVtx_(0),
etaAtVtx_(0.),
phiAtVtx_(0.) {}
phiAtVtx_(0.),
hwPtUnconstrained_(0),
ptUnconstrained_(0.),
hwDXY_(0) {}

l1t::Muon::Muon(const LorentzVector& p4,
int pt,
Expand All @@ -34,7 +37,10 @@ l1t::Muon::Muon(const LorentzVector& p4,
int hwEtaAtVtx,
int hwPhiAtVtx,
double etaAtVtx,
double phiAtVtx)
double phiAtVtx,
int hwPtUnconstrained,
double ptUnconstrained,
int dXY)
: L1Candidate(p4, pt, eta, phi, qual, iso),
hwCharge_(charge),
hwChargeValid_(chargeValid),
Expand All @@ -48,7 +54,10 @@ l1t::Muon::Muon(const LorentzVector& p4,
hwEtaAtVtx_(hwEtaAtVtx),
hwPhiAtVtx_(hwPhiAtVtx),
etaAtVtx_(etaAtVtx),
phiAtVtx_(phiAtVtx) {}
phiAtVtx_(phiAtVtx),
hwPtUnconstrained_(hwPtUnconstrained),
ptUnconstrained_(ptUnconstrained),
hwDXY_(dXY) {}

l1t::Muon::Muon(const PolarLorentzVector& p4,
int pt,
Expand All @@ -68,7 +77,10 @@ l1t::Muon::Muon(const PolarLorentzVector& p4,
int hwEtaAtVtx,
int hwPhiAtVtx,
double etaAtVtx,
double phiAtVtx)
double phiAtVtx,
int hwPtUnconstrained,
double ptUnconstrained,
int dXY)
: L1Candidate(p4, pt, eta, phi, qual, iso),
hwCharge_(charge),
hwChargeValid_(chargeValid),
Expand All @@ -82,12 +94,17 @@ l1t::Muon::Muon(const PolarLorentzVector& p4,
hwEtaAtVtx_(hwEtaAtVtx),
hwPhiAtVtx_(hwPhiAtVtx),
etaAtVtx_(etaAtVtx),
phiAtVtx_(phiAtVtx) {}
phiAtVtx_(phiAtVtx),
hwPtUnconstrained_(hwPtUnconstrained),
ptUnconstrained_(ptUnconstrained),
hwDXY_(dXY) {}

l1t::Muon::~Muon() {}

bool l1t::Muon::operator==(const l1t::Muon& rhs) const {
return l1t::L1Candidate::operator==(static_cast<const l1t::L1Candidate&>(rhs)) && hwCharge_ == rhs.hwCharge() &&
hwChargeValid_ == rhs.hwChargeValid() && tfMuonIndex_ == rhs.tfMuonIndex() &&
hwEtaAtVtx_ == rhs.hwEtaAtVtx() && hwPhiAtVtx_ == rhs.hwPhiAtVtx();
hwEtaAtVtx_ == rhs.hwEtaAtVtx() && hwPhiAtVtx_ == rhs.hwPhiAtVtx() &&
hwPtUnconstrained_ == rhs.hwPtUnconstrained() && ptUnconstrained_ == rhs.ptUnconstrained() &&
hwDXY_ == rhs.hwDXY();
}
3 changes: 2 additions & 1 deletion DataFormats/L1Trigger/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@
<class name="l1t::TauVectorRef"/>
<class name="edm::Wrapper<l1t::TauVectorRef>"/>

<class name="l1t::Muon" ClassVersion="17">
<class name="l1t::Muon" ClassVersion="18">
<version ClassVersion="18" checksum="2723313197"/>
<version ClassVersion="17" checksum="3946815604"/>
<version ClassVersion="16" checksum="1302394108"/>
<version ClassVersion="15" checksum="957467775"/>
Expand Down
Loading