Skip to content

Commit

Permalink
Merge pull request #27328 from andrzejnovak/backport106X
Browse files Browse the repository at this point in the history
[Backport] Fix BoostedDoubleSVProd crashing with nan/inf daughters
  • Loading branch information
cmsbuild committed Jul 2, 2019
2 parents 5e3fb63 + 7dd48e4 commit 74be976
Showing 1 changed file with 23 additions and 8 deletions.
31 changes: 23 additions & 8 deletions RecoBTag/SecondaryVertex/plugins/BoostedDoubleSVProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Utilities/interface/StreamID.h"
#include "FWCore/Utilities/interface/isFinite.h"

#include "DataFormats/BTauReco/interface/CandIPTagInfo.h"
#include "DataFormats/BTauReco/interface/CandSecondaryVertexTagInfo.h"
Expand Down Expand Up @@ -668,16 +669,30 @@ BoostedDoubleSVProducer::calcNsubjettiness(const reco::JetBaseRef & jet, float &
{
const reco::Candidate * constit = daughter->daughter(i);

if ( constit )
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!";
if (constit) {
// Check if any values were nan or inf
float valcheck = constit->px() + constit->py() + constit->pz() + constit->energy();
if (edm::isNotFinite(valcheck)) {
edm::LogWarning("FaultyJetConstituent")
<< "Jet constituent required for N-subjettiness computation contains Nan/Inf values!";
continue;
}
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!";
}
} else {
// Check if any values were nan or inf
float valcheck = daughter->px() + daughter->py() + daughter->pz() + daughter->energy();
if (edm::isNotFinite(valcheck)) {
edm::LogWarning("FaultyJetConstituent")
<< "Jet constituent required for N-subjettiness computation contains Nan/Inf values!";
continue;
}
fjParticles.push_back(fastjet::PseudoJet(daughter->px(), daughter->py(), daughter->pz(), daughter->energy()));
}
else
fjParticles.push_back( fastjet::PseudoJet( daughter->px(), daughter->py(), daughter->pz(), daughter->energy() ) );
}
else
} else
edm::LogWarning("MissingJetConstituent") << "Jet constituent required for N-subjettiness computation is missing!";
}

Expand Down

0 comments on commit 74be976

Please sign in to comment.