diff --git a/Reconstruction/PanTau/PanTauAlgs/CMakeLists.txt b/Reconstruction/PanTau/PanTauAlgs/CMakeLists.txt
index 34d053bcb24adfbbe37ebf8bec2b1f5ee9575f68..787466c4c9d01376ff89d3ea6b9c0830cde1ac36 100644
--- a/Reconstruction/PanTau/PanTauAlgs/CMakeLists.txt
+++ b/Reconstruction/PanTau/PanTauAlgs/CMakeLists.txt
@@ -1,48 +1,28 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 
 # Declare the package name:
 atlas_subdir( PanTauAlgs )
 
 # External dependencies:
-if( NOT XAOD_ANALYSIS )
-  find_package( CLHEP )
-endif()
-find_package( Eigen )
-find_package( ROOT COMPONENTS MathMore Matrix Core Tree Hist RIO pthread Rint )
+find_package( ROOT COMPONENTS Core RIO Tree MathCore MathMore Physics )
 
-atlas_add_root_dictionary( PanTauAlgs PanTauAlgsCintDict
-  ROOT_HEADERS
-  PanTauAlgs/PanTauProcessor.h
-  PanTauAlgs/Tool_DecayModeDeterminator.h
-  PanTauAlgs/Tool_DetailsArranger.h
-  PanTauAlgs/Tool_FeatureExtractor.h
-  PanTauAlgs/Tool_InformationStore.h
-  PanTauAlgs/Tool_InputConverter.h
-  PanTauAlgs/Tool_ModeDiscriminator.h
-  PanTauAlgs/Tool_TauConstituentGetter.h
-  PanTauAlgs/Tool_TauConstituentSelector.h
-  PanTauAlgs/PanTauSeed.h
-  Root/LinkDef.h
-  EXTERNAL_PACKAGES ROOT
-  )
+# Component(s) in the package.
+atlas_add_library( PanTauAlgsLib
+   PanTauAlgs/*.h Root/*.cxx
+   PUBLIC_HEADERS PanTauAlgs
+   INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+   LINK_LIBRARIES ${ROOT_LIBRARIES} AsgMessagingLib AsgTools xAODBase
+   xAODParticleEvent xAODPFlow xAODTau tauRecToolsLib MVAUtils
+   PRIVATE_LINK_LIBRARIES xAODTracking PathResolver )
 
-if ( XAOD_STANDALONE )
-  atlas_add_library( PanTauAlgs
-    PanTauAlgs/*.h Root/*.cxx ${PanTauAlgsCintDict}
-    PUBLIC_HEADERS PanTauAlgs
-    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-    LINK_LIBRARIES ${ROOT_LIBRARIES} xAODTau xAODTracking AsgTools tauRecToolsLib xAODParticleEvent MVAUtils PathResolver
-    )
-endif()
+atlas_add_dictionary( PanTauAlgsDict
+   PanTauAlgs/PanTauAlgsDict.h PanTauAlgs/selection.xml
+   LINK_LIBRARIES PanTauAlgsLib )
 
-# Component(s) in the package:
 if( NOT XAOD_STANDALONE )
-  atlas_add_component( PanTauAlgs
-    src/*.cxx
-    Root/*.cxx
-    src/components/*.cxx ${PanTauAlgsCintDict}
-    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-    LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps xAODPFlow xAODTau xAODParticleEvent GaudiKernel AthenaKernel StoreGateLib FourMom xAODTracking Particle eflowEvent MVAUtils tauRecToolsLib PathResolver )
+   atlas_add_component( PanTauAlgs
+      src/components/*.cxx
+      LINK_LIBRARIES PanTauAlgsLib )
 endif()
 
 # Install files from the package:
diff --git a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauAlgsDict.h b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauAlgsDict.h
new file mode 100644
index 0000000000000000000000000000000000000000..0894dd526e4b77c2cb11d7cad3f1c6d49e18fbdf
--- /dev/null
+++ b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauAlgsDict.h
@@ -0,0 +1,31 @@
+// Dear emacs, this is -*- c++ -*
+//
+// Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+//
+#ifndef PANTAUALGS_PANTAUALGSDICT_H
+#define PANTAUALGS_PANTAUALGSDICT_H
+
+// Local include(s).
+#include "PanTauAlgs/PanTauSeed.h"
+#include "PanTauAlgs/TauClassificationTypes.h"
+#include "PanTauAlgs/TauFeature.h"
+
+#include "PanTauAlgs/ITool_PanTauTools.h"
+#include "PanTauAlgs/ITool_InformationStore.h"
+#include "PanTauAlgs/ITool_InputConverter.h"
+#include "PanTauAlgs/ITool_ModeDiscriminator.h"
+#include "PanTauAlgs/ITool_TauConstituentGetter.h"
+#include "PanTauAlgs/ITool_TauConstituentSelector.h"
+#include "PanTauAlgs/ITool_DetailsArranger.h"
+
+#include "PanTauAlgs/PanTauProcessor.h"
+#include "PanTauAlgs/Tool_DecayModeDeterminator.h"
+#include "PanTauAlgs/Tool_DetailsArranger.h"
+#include "PanTauAlgs/Tool_FeatureExtractor.h"
+#include "PanTauAlgs/Tool_InformationStore.h"
+#include "PanTauAlgs/Tool_InputConverter.h"
+#include "PanTauAlgs/Tool_ModeDiscriminator.h"
+#include "PanTauAlgs/Tool_TauConstituentGetter.h"
+#include "PanTauAlgs/Tool_TauConstituentSelector.h"
+
+#endif // PANTAUALGS_PANTAUALGSDICT_H
diff --git a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/ToolsDef.h b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/ToolsDef.h
deleted file mode 100644
index ba367654bdf463e7b3b179f8bad2c2116b52e14f..0000000000000000000000000000000000000000
--- a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/ToolsDef.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#include "PanTauAlgs/PanTauProcessor.h"
-#include "PanTauAlgs/Tool_DecayModeDeterminator.h"
-#include "PanTauAlgs/Tool_DetailsArranger.h"
-#include "PanTauAlgs/Tool_FeatureExtractor.h"
-#include "PanTauAlgs/Tool_InformationStore.h"
-#include "PanTauAlgs/Tool_InputConverter.h"
-#include "PanTauAlgs/Tool_ModeDiscriminator.h"
-#include "PanTauAlgs/Tool_TauConstituentGetter.h"
-#include "PanTauAlgs/Tool_TauConstituentSelector.h"
-
-REGISTER_TOOL( PanTau::PanTauProcessor )
-REGISTER_TOOL( PanTau::Tool_DecayModeDeterminator )
-REGISTER_TOOL( PanTau::Tool_DetailsArranger )
-REGISTER_TOOL( PanTau::Tool_FeatureExtractor )
-REGISTER_TOOL( PanTau::Tool_InformationStore )
-REGISTER_TOOL( PanTau::Tool_InputConverter )
-REGISTER_TOOL( PanTau::Tool_ModeDiscriminator )
-REGISTER_TOOL( PanTau::Tool_TauConstituentGetter )
-REGISTER_TOOL( PanTau::Tool_TauConstituentSelector )
diff --git a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/selection.xml b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/selection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..490d277b62d2b43f62afbdfa51fe9b3b7e54657e
--- /dev/null
+++ b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/selection.xml
@@ -0,0 +1,31 @@
+<!-- Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration -->
+<lcgdict>
+
+   <!-- Interface type(s). -->
+   <class name="PanTau::ITool_DetailsArranger" />
+   <class name="PanTau::ITool_InformationStore" />
+   <class name="PanTau::ITool_InputConverter" />
+   <class name="PanTau::ITool_ModeDiscriminator" />
+   <class name="PanTau::ITool_PanTauTools" />
+   <class name="PanTau::ITool_TauConstituentGetter" />
+   <class name="PanTau::ITool_TauConstituentSelector" />
+
+   <!-- Tool type(s). -->
+   <class name="PanTau::PanTauProcessor" />
+   <class name="PanTau::Tool_DecayModeDeterminator" />
+   <class name="PanTau::Tool_DetailsArranger" />
+   <class name="PanTau::Tool_FeatureExtractor" />
+   <class name="PanTau::Tool_InformationStore" />
+   <class name="PanTau::Tool_InputConverter" />
+   <class name="PanTau::Tool_ModeDiscriminator" />
+   <class name="PanTau::Tool_TauConstituentGetter" />
+   <class name="PanTau::Tool_TauConstituentSelector" />
+
+   <!-- Auxiliary type(s). -->
+   <class name="PanTau::PanTauSeed" />
+   <class name="PanTau::TauFeature" />
+   <enum name="PanTau::TauClassificationTypes::TruthTauType" />
+   <enum name="PanTau::TauClassificationTypes::SeedTauType" />
+   <enum name="PanTau::TauClassificationTypes::PanTauRecoMode" />
+
+</lcgdict>
diff --git a/Reconstruction/PanTau/PanTauAlgs/Root/LinkDef.h b/Reconstruction/PanTau/PanTauAlgs/Root/LinkDef.h
deleted file mode 100644
index 1a2f180e87a98885c7f643aff450f680b8b9a9bf..0000000000000000000000000000000000000000
--- a/Reconstruction/PanTau/PanTauAlgs/Root/LinkDef.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PanTauAlgs/PanTauSeed.h"
-#include "PanTauAlgs/TauClassificationTypes.h"
-#include "PanTauAlgs/TauFeature.h"
-
-#include "PanTauAlgs/ITool_PanTauTools.h"
-#include "PanTauAlgs/ITool_InformationStore.h"
-#include "PanTauAlgs/ITool_InputConverter.h"
-#include "PanTauAlgs/ITool_ModeDiscriminator.h"
-#include "PanTauAlgs/ITool_TauConstituentGetter.h"
-#include "PanTauAlgs/ITool_TauConstituentSelector.h"
-#include "PanTauAlgs/ITool_DetailsArranger.h"
-
-#include "PanTauAlgs/PanTauProcessor.h"
-#include "PanTauAlgs/Tool_DecayModeDeterminator.h"
-#include "PanTauAlgs/Tool_DetailsArranger.h"
-#include "PanTauAlgs/Tool_FeatureExtractor.h"
-#include "PanTauAlgs/Tool_InformationStore.h"
-#include "PanTauAlgs/Tool_InputConverter.h"
-#include "PanTauAlgs/Tool_ModeDiscriminator.h"
-#include "PanTauAlgs/Tool_TauConstituentGetter.h"
-#include "PanTauAlgs/Tool_TauConstituentSelector.h"
-
-#ifdef __CINT__
-
-#pragma link off all globals;
-#pragma link off all classes;
-#pragma link off all functions;
-
-#pragma link C++ namespace PanTau;
-
-#pragma link C++ class PanTau::PanTauSeed2;
-#pragma link C++ class PanTau::TauFeature2;
-
-#pragma link C++ class PanTau::ITool_PanTauTools;
-#pragma link C++ class PanTau::ITool_InformationStore;
-#pragma link C++ class PanTau::ITool_InputConverter;
-#pragma link C++ class PanTau::ITool_ModeDiscriminator;
-#pragma link C++ class PanTau::ITool_TauConstituentGetter;
-#pragma link C++ class PanTau::ITool_TauConstituentSelector;
-#pragma link C++ class PanTau::ITool_DetailsArranger;
-
-#pragma link C++ class PanTau::Tool_DecayModeDeterminator;
-#pragma link C++ class PanTau::Tool_DetailsArranger;
-#pragma link C++ class PanTau::Tool_FeatureExtractor;
-#pragma link C++ class PanTau::Tool_InformationStore;
-#pragma link C++ class PanTau::Tool_InputConverter;
-#pragma link C++ class PanTau::Tool_ModeDiscriminator;
-#pragma link C++ class PanTau::Tool_TauConstituentGetter;
-#pragma link C++ class PanTau::Tool_TauConstituentSelector;
-
-#pragma link C++ enum PanTau::TauClassificationTypes::TruthTauType;
-#pragma link C++ enum PanTau::TauClassificationTypes::SeedTauType;
-#pragma link C++ enum PanTau::TauClassificationTypes::PanTauRecoMode;
-
-#endif