From 08e2702aa55ce184c2080c7e32df67d2141814c2 Mon Sep 17 00:00:00 2001
From: Matthew Basso <matthew.joseph.basso@cern.ch>
Date: Wed, 9 Dec 2020 22:47:55 +0100
Subject: [PATCH] Add IAsgSelectionWithVertexTool back to PATCore

---
 .../PATCore/IAsgSelectionWithVertexTool.h     | 55 +++++++++++++++++++
 .../PATCore/PATCore/selection.xml             |  1 +
 2 files changed, 56 insertions(+)
 create mode 100644 PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/IAsgSelectionWithVertexTool.h

diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/IAsgSelectionWithVertexTool.h b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/IAsgSelectionWithVertexTool.h
new file mode 100644
index 00000000000..4247f4e23eb
--- /dev/null
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/IAsgSelectionWithVertexTool.h
@@ -0,0 +1,55 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+
+// IAsgSelectionWithVertexTool.h
+// Header file for class IAsgSelectionWithVertexTool
+// Author: Karsten Koeneke <karsten.koeneke@cern.ch>
+///////////////////////////////////////////////////////////////////
+#ifndef PATCORE_IASGSELECTIONWITHVERTEXTOOL_H
+#define PATCORE_IASGSELECTIONWITHVERTEXTOOL_H 1
+
+// FrameWork includes
+#include "AsgTools/IAsgTool.h"
+
+// Include the return object
+#include "PATCore/AcceptInfo.h"
+#include "PATCore/AcceptData.h"
+
+// Forward declaration
+namespace xAOD {
+  class IParticle;
+  class Vertex_v1;
+  typedef Vertex_v1 Vertex;
+}
+
+class IAsgSelectionWithVertexTool
+  : virtual public asg::IAsgTool
+{
+  /// Declare the interface ID for this pure-virtual interface class to the Athena framework
+  ASG_TOOL_INTERFACE(IAsgSelectionWithVertexTool)
+
+
+  ///////////////////////////////////////////////////////////////////
+  // Public methods:
+  ///////////////////////////////////////////////////////////////////
+public:
+
+  ///////////////////////////////////////////////////////////////////
+  // Const methods:
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method to get the AcceptInfo to query what cuts are defined. */
+  virtual const asg::AcceptInfo& getAcceptInfo( ) const = 0;
+
+
+  /** The main accept method: the actual cuts are applied here */
+  virtual asg::AcceptData accept( const xAOD::IParticle* /*part*/,
+                                  const xAOD::Vertex* /*vertex=0*/ ) const = 0;
+
+
+};
+
+#endif //> !PATCORE_IASGSELECTIONWITHVERTEXTOOL_H
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection.xml b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection.xml
index 2f639ec66ff..b83778a2b17 100644
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection.xml
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection.xml
@@ -3,4 +3,5 @@
     <class name="asg::AcceptData" />
     <!--<class name="std::bitset<32>" />-->
     <class name="IAsgSelectionTool" />
+    <class name="IAsgSelectionWithVertexTool" />
 </lcgdict>
-- 
GitLab