diff --git a/PhysicsAnalysis/SUSYPhys/SUSYTools/Root/Electrons.cxx b/PhysicsAnalysis/SUSYPhys/SUSYTools/Root/Electrons.cxx index d65f213807a3e8172537af54f1e76c863be0dbb4..7c91db166b29c4d950fe9f8133909292efa97b7f 100644 --- a/PhysicsAnalysis/SUSYPhys/SUSYTools/Root/Electrons.cxx +++ b/PhysicsAnalysis/SUSYPhys/SUSYTools/Root/Electrons.cxx @@ -637,34 +637,47 @@ double SUSYObjDef_xAOD::GetEleTriggerEfficiency(const xAOD::Electron& el, const float sf(1.); //Set the new systematic variation - StatusCode ret = m_elecEfficiencySFTool_reco->applySystematicVariation(systConfig); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (reco) for systematic var. " << systConfig.name() ); + StatusCode ret(StatusCode::SUCCESS); + if(!m_elecEfficiencySFTool_reco.empty()){ + ret = m_elecEfficiencySFTool_reco->applySystematicVariation(systConfig); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (reco) for systematic var. " << systConfig.name() ); + } } - ret = m_elecEfficiencySFTool_id->applySystematicVariation(systConfig); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (id) for systematic var. " << systConfig.name() ); + if(!m_elecEfficiencySFTool_id.empty()){ + ret = m_elecEfficiencySFTool_id->applySystematicVariation(systConfig); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (id) for systematic var. " << systConfig.name() ); + } } - ret = m_elecEfficiencySFTool_trig_singleLep->applySystematicVariation(systConfig); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (trigger) for systematic var. " << systConfig.name() ); + if(!m_elecEfficiencySFTool_trig_singleLep.empty()){ + ret = m_elecEfficiencySFTool_trig_singleLep->applySystematicVariation(systConfig); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (trigger) for systematic var. " << systConfig.name() ); + } } - ret = m_elecEfficiencySFTool_iso->applySystematicVariation(systConfig); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (iso) for systematic var. " << systConfig.name() ); + if(!m_elecEfficiencySFTool_iso.empty()){ + ret = m_elecEfficiencySFTool_iso->applySystematicVariation(systConfig); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (iso) for systematic var. " << systConfig.name() ); + } } - ret = m_elecEfficiencySFTool_isoHighPt->applySystematicVariation(systConfig); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (iso high-pt) for systematic var. " << systConfig.name() ); + if(!m_elecEfficiencySFTool_isoHighPt.empty()){ + ret = m_elecEfficiencySFTool_isoHighPt->applySystematicVariation(systConfig); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (iso high-pt) for systematic var. " << systConfig.name() ); + } } - ret = m_elecChargeEffCorrTool->applySystematicVariation(systConfig); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure ElectronChargeEfficiencyCorrectionTool for systematic var. " << systConfig.name() ); + if(!m_elecChargeEffCorrTool.empty()){ + ret = m_elecChargeEffCorrTool->applySystematicVariation(systConfig); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure ElectronChargeEfficiencyCorrectionTool for systematic var. " << systConfig.name() ); + } } @@ -672,34 +685,46 @@ double SUSYObjDef_xAOD::GetEleTriggerEfficiency(const xAOD::Electron& el, const sf = GetTotalElectronSF(electrons, recoSF, idSF, triggerSF, isoSF, trigExpr, ecidsSF, cidSF); //Roll back to default - ret = m_elecEfficiencySFTool_reco->applySystematicVariation(m_currentSyst); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (reco) back to default."); + if(!m_elecEfficiencySFTool_reco.empty()){ + ret = m_elecEfficiencySFTool_reco->applySystematicVariation(m_currentSyst); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (reco) back to default."); + } } - ret = m_elecEfficiencySFTool_id->applySystematicVariation(m_currentSyst); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (id) back to default."); + if(!m_elecEfficiencySFTool_id.empty()){ + ret = m_elecEfficiencySFTool_id->applySystematicVariation(m_currentSyst); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (id) back to default."); + } } - ret = m_elecEfficiencySFTool_trig_singleLep->applySystematicVariation(m_currentSyst); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (trigger) back to default."); + if(!m_elecEfficiencySFTool_trig_singleLep.empty()){ + ret = m_elecEfficiencySFTool_trig_singleLep->applySystematicVariation(m_currentSyst); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (trigger) back to default."); + } } - ret = m_elecEfficiencySFTool_iso->applySystematicVariation(m_currentSyst); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (iso) back to default."); + if(!m_elecEfficiencySFTool_iso.empty()){ + ret = m_elecEfficiencySFTool_iso->applySystematicVariation(m_currentSyst); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (iso) back to default."); + } } - ret = m_elecEfficiencySFTool_isoHighPt->applySystematicVariation(m_currentSyst); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (iso high-pt) back to default."); + if(!m_elecEfficiencySFTool_isoHighPt.empty()){ + ret = m_elecEfficiencySFTool_isoHighPt->applySystematicVariation(m_currentSyst); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure AsgElectronEfficiencyCorrectionTool (iso high-pt) back to default."); + } } - ret = m_elecChargeEffCorrTool->applySystematicVariation(m_currentSyst); - if (ret != StatusCode::SUCCESS) { - ATH_MSG_ERROR("Cannot configure ElectronChargeEfficiencyCorrectionTool back to default."); + if(!m_elecChargeEffCorrTool.empty()){ + ret = m_elecChargeEffCorrTool->applySystematicVariation(m_currentSyst); + if (ret != StatusCode::SUCCESS) { + ATH_MSG_ERROR("Cannot configure ElectronChargeEfficiencyCorrectionTool back to default."); + } } return sf;