From d74ddf3fafd809271f3bc3e7c1d2cd01b16c4d57 Mon Sep 17 00:00:00 2001 From: Sam Harper Date: Thu, 26 Jul 2018 18:56:37 +0100 Subject: [PATCH 1/2] protecting scale and smearing against nan energies --- RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc | 2 +- RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc b/RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc index 5eeac8abea891..dc7e321fa1a4c 100644 --- a/RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc +++ b/RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc @@ -43,7 +43,7 @@ calibrate(reco::GsfElectron &ele, unsigned int runNumber, const float scEtaAbs = std::abs(ele.superCluster()->eta()); const float et = ele.ecalEnergy() / cosh(scEtaAbs); - if (et < minEt_) { + if (et < minEt_ || std::isnan(et) ) { std::array retVal; retVal.fill(ele.energy()); retVal[EGEnergySysIndex::kScaleValue] = 1.0; diff --git a/RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc b/RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc index 018ac6aad7240..a37fdf92ce93f 100644 --- a/RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc +++ b/RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc @@ -39,7 +39,7 @@ calibrate(reco::Photon &photon,const unsigned int runNumber, const float scEtaAbs = std::abs(photon.superCluster()->eta()); const float et = photon.getCorrectedEnergy(reco::Photon::P4type::regression2) / cosh(scEtaAbs); - if (et < minEt_) { + if (et < minEt_ || std::isnan(et) ) { std::array retVal; retVal.fill(photon.getCorrectedEnergy(reco::Photon::P4type::regression2)); retVal[EGEnergySysIndex::kScaleValue] = 1.0; From 289f958350929fc57c8c04c3b007dcf0f33065e2 Mon Sep 17 00:00:00 2001 From: Sam Harper Date: Wed, 1 Aug 2018 13:45:19 +0100 Subject: [PATCH 2/2] switching to edm::isNotFinite --- RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc | 3 ++- RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc b/RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc index dc7e321fa1a4c..ec88524bb71f1 100644 --- a/RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc +++ b/RecoEgamma/EgammaTools/src/ElectronEnergyCalibrator.cc @@ -3,6 +3,7 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Utilities/interface/RandomNumberGenerator.h" #include "FWCore/Utilities/interface/Exception.h" +#include "FWCore/Utilities/interface/isFinite.h" #include const EnergyScaleCorrection::ScaleCorrection ElectronEnergyCalibrator::defaultScaleCorr_; @@ -43,7 +44,7 @@ calibrate(reco::GsfElectron &ele, unsigned int runNumber, const float scEtaAbs = std::abs(ele.superCluster()->eta()); const float et = ele.ecalEnergy() / cosh(scEtaAbs); - if (et < minEt_ || std::isnan(et) ) { + if (et < minEt_ || edm::isNotFinite(et) ) { std::array retVal; retVal.fill(ele.energy()); retVal[EGEnergySysIndex::kScaleValue] = 1.0; diff --git a/RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc b/RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc index a37fdf92ce93f..8ba4472c42f70 100644 --- a/RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc +++ b/RecoEgamma/EgammaTools/src/PhotonEnergyCalibrator.cc @@ -3,6 +3,7 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Utilities/interface/RandomNumberGenerator.h" #include "FWCore/Utilities/interface/Exception.h" +#include "FWCore/Utilities/interface/isFinite.h" #include const EnergyScaleCorrection::ScaleCorrection PhotonEnergyCalibrator::defaultScaleCorr_; @@ -39,7 +40,7 @@ calibrate(reco::Photon &photon,const unsigned int runNumber, const float scEtaAbs = std::abs(photon.superCluster()->eta()); const float et = photon.getCorrectedEnergy(reco::Photon::P4type::regression2) / cosh(scEtaAbs); - if (et < minEt_ || std::isnan(et) ) { + if (et < minEt_ || edm::isNotFinite(et) ) { std::array retVal; retVal.fill(photon.getCorrectedEnergy(reco::Photon::P4type::regression2)); retVal[EGEnergySysIndex::kScaleValue] = 1.0;