From 108d26feff93dc79e1991d608bca30e95f5f4778 Mon Sep 17 00:00:00 2001
From: Nils Krumnack <krumnack@iastate.edu>
Date: Wed, 18 Jul 2018 14:26:49 -0500
Subject: [PATCH] update BTaggingEfficiencyAlg to use ISelectionAccessor

This wasn't available when I created that merge request, adding it
now.


Former-commit-id: 7bd48fdee689e35c32b670e24009123c6d5c40f9
---
 .../FTagAnalysisAlgorithms/BTaggingEfficiencyAlg.h           | 4 +++-
 .../FTagAnalysisAlgorithms/Root/BTaggingEfficiencyAlg.cxx    | 5 ++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/FTagAnalysisAlgorithms/BTaggingEfficiencyAlg.h b/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/FTagAnalysisAlgorithms/BTaggingEfficiencyAlg.h
index 6656eecd5f4b..6bf50a370998 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 f675bd4908ad..b933194b6476 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
-- 
GitLab