diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/CMakeLists.txt b/PhysicsAnalysis/AnalysisCommon/PATCore/CMakeLists.txt
index 6b2f0688562ede3b7a7c125e512718fbb377198d..ea12f75d089d608bdb37455c8fa4691ccd043a3d 100644
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/CMakeLists.txt
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/CMakeLists.txt
@@ -22,25 +22,25 @@ atlas_depends_on_subdirs(
 # External dependencies:
 find_package( ROOT COMPONENTS Core )
 
-# In the standalone build create a "CINT dictionary":
-if( XAOD_STANDALONE )
-   atlas_add_root_dictionary( PATCoreLib PATCoreLibDictSource
-      ROOT_HEADERS PATCore/TSelectorToolBase.h Root/LinkDef.h
-      EXTERNAL_PACKAGES ROOT )
-endif()
-
 # Component(s) in the package:
 atlas_add_library( PATCoreLib
-   PATCore/*.h Root/*.cxx ${PATCoreLibDictSource}
+   PATCore/*.h Root/*.cxx
    PUBLIC_HEADERS PATCore
    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
    LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AsgTools ${extra_libs} )
 
-# Only build the "Reflex dictionary" in the offline environment:
 atlas_add_dictionary( PATCoreDict
    PATCore/PATCoreDict.h
    PATCore/selection.xml
    LINK_LIBRARIES PATCoreLib )
 
+# second dictionary for Athena-only classes
+if( NOT XAOD_STANDALONE )
+   atlas_add_dictionary( PATCoreAthenaDict
+      PATCore/PATCoreAthenaDict.h
+      PATCore/selection_athena.xml
+      LINK_LIBRARIES PATCoreLib )
+endif ()
+
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/CombinatoricsOdometer.h b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/CombinatoricsOdometer.h
old mode 100755
new mode 100644
index 763c1687d66132201784eb95c07a57d054c978f0..ca91ce4bbe69c95f83aba6fc177ebd194b06abd0
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/CombinatoricsOdometer.h
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/CombinatoricsOdometer.h
@@ -50,12 +50,6 @@ and "jet" container has 4 elements, "lepton" 2, and "bjet" 2, then
 
 ********************************************************************/
 
-#ifdef ROOTCORE
-#include <RootCore/Packages.h>
-#endif
-
-#if !defined(ROOTCORE) || defined(ROOTCORE_PACKAGE_AthContainers)
-
 #include <map>
 #include <set>
 #include <string>
@@ -146,5 +140,3 @@ private:
 };
 
 #endif
-
-#endif
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/PATCoreAthenaDict.h b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/PATCoreAthenaDict.h
new file mode 100644
index 0000000000000000000000000000000000000000..05f3f41f027bd06c3410394f2a26c56a7cdbf907
--- /dev/null
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/PATCoreAthenaDict.h
@@ -0,0 +1,23 @@
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Dear emacs, this is -*-c++-*-
+
+#ifndef PATCORE_PATCOREATHENADICT_H
+#define PATCORE_PATCOREATHENADICT_H
+
+/**
+   @brief For dictionary generation.
+
+   @author Karsten Koeneke (CERN)
+   @date   October 2011
+
+*/
+
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
+#include "PATCore/IAthHistogramTool.h"
+#include "PATCore/IUserDataCalcTool.h"
+
+#endif
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/PATCoreDict.h b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/PATCoreDict.h
index 645930cab434b9b3c90afa371b347f474f41b441..c3ddaf61b9d0ed15c17ca69bdb13306e388fb5ac 100644
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/PATCoreDict.h
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/PATCoreDict.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 // Dear emacs, this is -*-c++-*-
@@ -19,12 +19,6 @@
 
 #include "PATCore/AcceptInfo.h"
 #include "PATCore/AcceptData.h"
-#include "PATCore/TSelectorToolBase.h"
 #include "PATCore/IAsgSelectionTool.h"
 
-#ifndef ROOTCORE
-#include "PATCore/IAthHistogramTool.h"
-#include "PATCore/IUserDataCalcTool.h"
-#endif
-
 #endif
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TSelectorToolBase.h b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TSelectorToolBase.h
deleted file mode 100644
index 8099712111683ac01501cbc234984d899dda2d43..0000000000000000000000000000000000000000
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TSelectorToolBase.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Dear emacs, this is -*-c++-*-
-
-#ifndef PATCORE_TSELECTORTOOLBASE_H
-#define PATCORE_TSELECTORTOOLBASE_H
-
-/**
-   @class TSelectorToolBase
-   @brief Base class for tools to select objects in pure ROOT
-
-   @author Karsten Koeneke (CERN)
-   @date   April 2011
-*/
-
-// ROOT includes
-#include "TString.h"
-
-// Include the return object
-#include "PATCore/AcceptInfo.h"
-#include "PATCore/AcceptData.h"
-
-// include the configuration in RootCore environment
-// if this does not exist, call $ROOTCOREDIR/scripts/compile.sh
-// don't just comment out this line
-#ifdef ROOTCORE
-#include <RootCore/Packages.h>
-#endif
-
-class TObject;
-
-
-namespace Root {
-  // this ought to be deprecated, but we have so many clients, that we
-  // are not doing it yet.
-  class [[deprecated("do not use for multi-threaded code")]] TSelectorToolBase
-  {
-
-  public: 
-    /** Standard constructor */
-    TSelectorToolBase(const char* name="TSelectorToolBase") :
-      m_name(name),
-      m_accept( Form("%s_Accept",name) )
-    {
-    }
-    
-    /** Standard destructor */
-    virtual ~TSelectorToolBase(){}
-  
-
-    // Main methods
-  public:
-    /** Initialize this class */
-    virtual int initialize() = 0;
-
-    /** Finalize this class; everything that should be done after the event loop should go here */
-    virtual int finalize() = 0;
-
-
-    /** Get the name of the class instance */
-    inline const char* getName() const { return m_name.Data(); };
-
-
-    /** Method to get the plain AcceptInfo */
-    const asg::AcceptInfo& getAcceptInfo( ) const
-    {
-      return m_accept;
-    }
-
-#ifdef ROOTCORE 
-    /** For convenient PROOF support */
-    ClassDef(TSelectorToolBase,1); 
-#endif 
-
-
-    // Protected members
-  protected:
-    /** The name of the class instance */
-    TString m_name;
-
-    /** The return AcceptInfo object */
-    asg::AcceptInfo m_accept;//!
-    
-
-  }; // End: class definition
-
-
-} // End: namespace Root
-
-#endif
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection.xml b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection.xml
index eb2e0d8466a8b06e4d9263b56e58f7041f9e47c9..2f639ec66ff925beda2d81939e78cecd799837e7 100644
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection.xml
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection.xml
@@ -2,8 +2,5 @@
     <class name="asg::AcceptInfo" />
     <class name="asg::AcceptData" />
     <!--<class name="std::bitset<32>" />-->
-    <class name="Root::TSelectorToolBase" />
-    <class name="IUserDataCalcTool" />
-    <class name="IAthHistogramTool" />
     <class name="IAsgSelectionTool" />
 </lcgdict>
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection_athena.xml b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection_athena.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7a1b970ffdeda875dc5390bf847d142a8bc14bcc
--- /dev/null
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/selection_athena.xml
@@ -0,0 +1,4 @@
+<lcgdict>
+    <class name="IUserDataCalcTool" />
+    <class name="IAthHistogramTool" />
+</lcgdict>
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/Root/CombinatoricsOdometer.cxx b/PhysicsAnalysis/AnalysisCommon/PATCore/Root/CombinatoricsOdometer.cxx
old mode 100755
new mode 100644
index bd2ba02b7c382965b736a766a079d3ffdf359f3e..45c40d86de43658483e925c43821192e5c0d0488
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/Root/CombinatoricsOdometer.cxx
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/Root/CombinatoricsOdometer.cxx
@@ -23,8 +23,6 @@
 
 #include "PATCore/CombinatoricsOdometer.h"
 
-#if !defined(ROOTCORE) || defined(ROOTCORE_PACKAGE_AthContainers)
-
 //////////////////////FlexDigit
 FlexDigit::FlexDigit( int digitMax, FlexDigit* nextDigit )
 {
@@ -376,5 +374,3 @@ bool PairMeter::increment()
       return true;
     }
 }
-
-#endif
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/Root/LinkDef.h b/PhysicsAnalysis/AnalysisCommon/PATCore/Root/LinkDef.h
deleted file mode 100644
index 6ab8d03dc3b4d0537c9211944cd4a572715c5852..0000000000000000000000000000000000000000
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/Root/LinkDef.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PATCORE_LINKDEF_H
-#define PATCORE_LINKDEF_H
-
-
-#include <vector>
-#include <string>
-#include <bitset>
-#include "TString.h"
-#include "PATCore/TSelectorToolBase.h"
-
-#ifdef __CINT__
-
-#pragma link off all globals;
-#pragma link off all classes;
-#pragma link off all functions;
-
-#pragma link C++ namespace Root ;
-
-#pragma link C++ class Root::TSelectorToolBase+ ;
-
-#endif
-
-#endif
-
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/cmt/config.RootCore b/PhysicsAnalysis/AnalysisCommon/PATCore/cmt/config.RootCore
deleted file mode 100644
index db4e861dde755e48448aee14a08595882885f409..0000000000000000000000000000000000000000
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/cmt/config.RootCore
+++ /dev/null
@@ -1,4 +0,0 @@
-# Whether to use the D3PDReader if it is present.  If you experience
-# incompatibilities between your object selectors and the D3PDReader,
-# you can turn it off here
-USE_D3PDREADER = yes
diff --git a/Projects/AnalysisBase/package_filters.txt b/Projects/AnalysisBase/package_filters.txt
index 47f35a7f1dfa8f83e1a0d0a3ff2cd416fb12e135..b94e298797b264e6b3ac8664947dbaa27f8c4ef8 100644
--- a/Projects/AnalysisBase/package_filters.txt
+++ b/Projects/AnalysisBase/package_filters.txt
@@ -22,6 +22,7 @@
 + Event/xAOD/.*
 + Generators/TruthUtils
 + MuonSpectrometer/MuonStationIndex
++ PhysicsAnalysis/AnalysisCommon/PATCore
 + PhysicsAnalysis/AnalysisCommon/PATInterfaces
 + PhysicsAnalysis/D3PDTools/.*
 + Tools/PathResolver