Skip to content

Commit

Permalink
Protect against particles with zero weight and pt being given as inpu…
Browse files Browse the repository at this point in the history
…t to njettiness
  • Loading branch information
laurenhay committed Nov 16, 2022
1 parent 568b028 commit 59a4362
Showing 1 changed file with 13 additions and 8 deletions.
21 changes: 13 additions & 8 deletions RecoBTag/SecondaryVertex/plugins/BoostedDoubleSVProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -661,8 +661,7 @@ void BoostedDoubleSVProducer::calcNsubjettiness(const reco::JetBaseRef& jet,
// loop over subjet constituents and push them in the vector of FastJet constituents
for (size_t i = 0; i < daughter->numberOfDaughters(); ++i) {
const reco::CandidatePtr& constit = subjet->daughterPtr(i);

if (constit.isNonnull()) {
if (constit.isNonnull() && constit->pt() > std::numeric_limits<double>::epsilon()) {
// Check if any values were nan or inf
float valcheck = constit->px() + constit->py() + constit->pz() + constit->energy();
if (edm::isNotFinite(valcheck)) {
Expand All @@ -679,10 +678,13 @@ void BoostedDoubleSVProducer::calcNsubjettiness(const reco::JetBaseRef& jet,
<< "BoostedDoubleSVProducer: No weights (e.g. PUPPI) given for weighted jet collection"
<< std::endl;
}
fjParticles.push_back(
fastjet::PseudoJet(constit->px() * w, constit->py() * w, constit->pz() * w, constit->energy() * w));
} else
if (w > 0) {
fjParticles.push_back(
fastjet::PseudoJet(constit->px() * w, constit->py() * w, constit->pz() * w, constit->energy() * w));
}
} else {
fjParticles.push_back(fastjet::PseudoJet(constit->px(), constit->py(), constit->pz(), constit->energy()));
}
} else
edm::LogWarning("MissingJetConstituent")
<< "Jet constituent required for N-subjettiness computation is missing!";
Expand All @@ -703,10 +705,13 @@ void BoostedDoubleSVProducer::calcNsubjettiness(const reco::JetBaseRef& jet,
throw cms::Exception("MissingConstituentWeight")
<< "BoostedDoubleSVProducer: No weights (e.g. PUPPI) given for weighted jet collection" << std::endl;
}
fjParticles.push_back(
fastjet::PseudoJet(daughter->px() * w, daughter->py() * w, daughter->pz() * w, daughter->energy() * w));
} else
if (w > 0 && daughter->pt() > std::numeric_limits<double>::epsilon()) {
fjParticles.push_back(
fastjet::PseudoJet(daughter->px() * w, daughter->py() * w, daughter->pz() * w, daughter->energy() * w));
}
} else {
fjParticles.push_back(fastjet::PseudoJet(daughter->px(), daughter->py(), daughter->pz(), daughter->energy()));
}
}
} else
edm::LogWarning("MissingJetConstituent") << "Jet constituent required for N-subjettiness computation is missing!";
Expand Down

0 comments on commit 59a4362

Please sign in to comment.