Skip to content

Commit

Permalink
Merge pull request #40092 from laurenhay/preventNjettinessFailBTag_fr…
Browse files Browse the repository at this point in the history
…om1252path1

Protect against particles with zero weight and pt being given to njettiness [12_5_X]
  • Loading branch information
cmsbuild committed Nov 18, 2022
2 parents 2e1911f + 59a4362 commit e660fdf
Showing 1 changed file with 13 additions and 8 deletions.
21 changes: 13 additions & 8 deletions RecoBTag/SecondaryVertex/plugins/BoostedDoubleSVProducer.cc
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 e660fdf

Please sign in to comment.