From baf009f6b8b36481cf9b0a11c55dfb1b6ce42e42 Mon Sep 17 00:00:00 2001
From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
Date: Mon, 20 Jul 2020 18:22:27 +0200
Subject: [PATCH] Split the dictionary of primitive types defined in xAODEgamma
 into a separate library.

This way jobs needing to access symbols from the xAOD::EgammaParameters namespace
would not have to load libxAODEgammaDict.so during the job configuration. Possibly
leading to dictionary issues down the line.
---
 Event/xAOD/xAODEgamma/CMakeLists.txt                 |  7 +++++++
 Event/xAOD/xAODEgamma/python/__init__.py             |  1 +
 Event/xAOD/xAODEgamma/python/xAODEgammaParameters.py |  4 ++++
 Event/xAOD/xAODEgamma/xAODEgamma/selection.xml       |  7 -------
 .../xAODEgamma/xAODEgamma/selectionParameters.xml    | 11 +++++++++++
 Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaDict.h    |  2 --
 .../xAODEgamma/xAODEgamma/xAODEgammaParametersDict.h | 12 ++++++++++++
 7 files changed, 35 insertions(+), 9 deletions(-)
 create mode 100644 Event/xAOD/xAODEgamma/python/__init__.py
 create mode 100644 Event/xAOD/xAODEgamma/python/xAODEgammaParameters.py
 create mode 100644 Event/xAOD/xAODEgamma/xAODEgamma/selectionParameters.xml
 create mode 100644 Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaParametersDict.h

diff --git a/Event/xAOD/xAODEgamma/CMakeLists.txt b/Event/xAOD/xAODEgamma/CMakeLists.txt
index 67cc3c2c713..ab77b70d752 100644
--- a/Event/xAOD/xAODEgamma/CMakeLists.txt
+++ b/Event/xAOD/xAODEgamma/CMakeLists.txt
@@ -27,3 +27,10 @@ atlas_add_dictionary( xAODEgammaDict
    ${_selectionFile}
    LINK_LIBRARIES xAODCore xAODEgamma
    EXTRA_FILES Root/dict/*.cxx )
+
+atlas_add_dictionary( xAODEgammaParametersDict
+   xAODEgamma/xAODEgammaParametersDict.h
+   xAODEgamma/selectionParameters.xml )
+
+# Install files from the package.
+atlas_install_python_modules( python/*.py )
diff --git a/Event/xAOD/xAODEgamma/python/__init__.py b/Event/xAOD/xAODEgamma/python/__init__.py
new file mode 100644
index 00000000000..f2f0fc1b7b4
--- /dev/null
+++ b/Event/xAOD/xAODEgamma/python/__init__.py
@@ -0,0 +1 @@
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
diff --git a/Event/xAOD/xAODEgamma/python/xAODEgammaParameters.py b/Event/xAOD/xAODEgamma/python/xAODEgammaParameters.py
new file mode 100644
index 00000000000..54009e1d141
--- /dev/null
+++ b/Event/xAOD/xAODEgamma/python/xAODEgammaParameters.py
@@ -0,0 +1,4 @@
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+
+from ROOT import xAOD
+dummy = xAOD.EgammaParameters.ROOT6_NamespaceAutoloadHook
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/selection.xml b/Event/xAOD/xAODEgamma/xAODEgamma/selection.xml
index b9fe932f106..2ab46f2fade 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/selection.xml
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/selection.xml
@@ -45,13 +45,6 @@
           id="5C389DEC-4B00-11E4-B9F0-02163E00A5BB" />
    <typedef name="xAOD::PhotonAuxContainer" />
 
-   <!-- Objects from the namespace. -->
-   <variable pattern="xAOD::EgammaParameters::*" />
-   <class name="xAOD::EgammaParameters::ROOT6_NamespaceAutoloadHook" />
-
-   <!-- Enum(s). -->
-   <enum pattern="xAOD::EgammaParameters::*" />
-
    <!-- Helper Function(s). -->
    <function pattern="xAOD::EgammaHelpers::*" />
 
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/selectionParameters.xml b/Event/xAOD/xAODEgamma/xAODEgamma/selectionParameters.xml
new file mode 100644
index 00000000000..982921bad20
--- /dev/null
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/selectionParameters.xml
@@ -0,0 +1,11 @@
+<!-- Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -->
+<lcgdict>
+
+   <!-- Objects from the namespace. -->
+   <variable pattern="xAOD::EgammaParameters::*" />
+   <class name="xAOD::EgammaParameters::ROOT6_NamespaceAutoloadHook" />
+
+   <!-- Enum(s). -->
+   <enum pattern="xAOD::EgammaParameters::*" />
+
+</lcgdict>
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaDict.h b/Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaDict.h
index 02ac71800c8..c3696b7dd52 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaDict.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaDict.h
@@ -35,8 +35,6 @@
 #include "xAODEgamma/ElectronxAODHelpers.h"
 #include "xAODEgamma/PhotonxAODHelpers.h"
 #include "xAODEgamma/EgammaTruthxAODHelpers.h"
-#include "xAODEgamma/EgammaEnums.h"
-#include "xAODEgamma/EgammaDefs.h"
 
 // EDM include(s).
 #include "xAODCore/tools/DictHelpers.h"
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaParametersDict.h b/Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaParametersDict.h
new file mode 100644
index 00000000000..98cf5ce0dc5
--- /dev/null
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/xAODEgammaParametersDict.h
@@ -0,0 +1,12 @@
+// Dear emacs, this is -*- c++ -*-
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef XAODEGAMMA_XAODEGAMMAPARAMETERSDICT_H
+#define XAODEGAMMA_XAODEGAMMAPARAMETERSDICT_H
+
+// Local include(s).
+#include "xAODEgamma/EgammaEnums.h"
+#include "xAODEgamma/EgammaDefs.h"
+
+#endif // XAODEGAMMA_XAODEGAMMAPARAMETERSDICT_H
-- 
GitLab