diff --git a/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/FTagAnalysisAlgorithms/BTaggingEfficiencyAlg.h b/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/FTagAnalysisAlgorithms/BTaggingEfficiencyAlg.h index 6656eecd5f4b501de1fe26ee49e218a0e88acce5..6bf50a3709986aefde575907af6220775bdaa657 100644 --- a/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/FTagAnalysisAlgorithms/BTaggingEfficiencyAlg.h +++ b/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/FTagAnalysisAlgorithms/BTaggingEfficiencyAlg.h @@ -11,10 +11,12 @@ #include <AnaAlgorithm/AnaAlgorithm.h> #include <FTagAnalysisInterfaces/IBTaggingEfficiencyTool.h> #include <SelectionHelpers/OutOfValidityHelper.h> +#include <SelectionHelpers/ISelectionAccessor.h> #include <SystematicsHandles/SysCopyHandle.h> #include <SystematicsHandles/SysListHandle.h> #include <SystematicsHandles/SysReadHandle.h> #include <xAODJet/JetContainer.h> +#include <memory> namespace CP { @@ -67,7 +69,7 @@ namespace CP /// \brief the accessor for \ref m_selectionDecoration private: - std::unique_ptr<const SG::AuxElement::Accessor<SelectionType> > m_selectionAccessor; + std::unique_ptr<ISelectionAccessor> m_selectionAccessor; /// \brief only run the inefficency for all jets private: diff --git a/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/Root/BTaggingEfficiencyAlg.cxx b/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/Root/BTaggingEfficiencyAlg.cxx index f675bd4908ad5c04cf412e490023a510f3d5c590..b933194b64762259305c408430f9579eb036b41b 100644 --- a/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/Root/BTaggingEfficiencyAlg.cxx +++ b/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/Root/BTaggingEfficiencyAlg.cxx @@ -42,7 +42,7 @@ namespace CP ANA_MSG_ERROR ("can't specify both onlyInefficiency and selectionDecoration"); return StatusCode::FAILURE; } - m_selectionAccessor = std::make_unique<SG::AuxElement::Accessor<SelectionType> > (m_selectionDecoration); + ANA_CHECK (makeSelectionAccessor (m_selectionDecoration, m_selectionAccessor)); } if (m_efficiencyDecoration.empty()) @@ -84,8 +84,7 @@ namespace CP // it. You do the pre-selection via a view container like // for all the other CP algorithms. if (!m_onlyInefficiency && - (!m_selectionAccessor || - (*m_selectionAccessor) (*jet) == selectionAccept())) + (!m_selectionAccessor || m_selectionAccessor->getBool (*jet))) { ANA_CHECK_CORRECTION (m_outOfValidity, *jet, m_efficiencyTool->getScaleFactor (*jet, eff)); } else