Skip to content

Commit 7e5016a

Browse files
committed
Add a protection for pathologic cases in MuonBeamspotConstraintValueMapProducer
1 parent 1234e95 commit 7e5016a

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

RecoMuon/GlobalTrackingTools/plugins/MuonBeamspotConstraintValueMapProducer.cc

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,17 @@ class MuonBeamspotConstraintValueMapProducer : public edm::global::EDProducer<>
8686
auto pv = pvHandle->at(0);
8787
VertexState pvs = VertexState(GlobalPoint(Basic3DVector<float>(pv.position())), GlobalError(pv.covariance()));
8888

89-
SingleTrackVertexConstraint::BTFtuple btft = stvc.constrain(ttkb->build(muon.muonBestTrack()), pvs);
90-
if (std::get<0>(btft)) {
91-
const reco::Track& trkBS = std::get<1>(btft).track();
92-
pts.push_back(trkBS.pt());
93-
ptErrs.push_back(trkBS.ptError());
94-
chi2s.push_back(std::get<2>(btft));
95-
tbd = false;
89+
try {
90+
SingleTrackVertexConstraint::BTFtuple btft = stvc.constrain(ttkb->build(muon.muonBestTrack()), pvs);
91+
if (std::get<0>(btft)) {
92+
const reco::Track& trkBS = std::get<1>(btft).track();
93+
pts.push_back(trkBS.pt());
94+
ptErrs.push_back(trkBS.ptError());
95+
chi2s.push_back(std::get<2>(btft));
96+
tbd = false;
97+
}
98+
} catch (...) {
99+
// Update failed; give up.
96100
}
97101
}
98102
}

0 commit comments

Comments
 (0)