From c74d1c8e2febca83002ced4bdd1cc84b40eb6d69 Mon Sep 17 00:00:00 2001
From: Tim Martin <Tim.Martin@cern.ch>
Date: Wed, 19 May 2021 14:44:07 +0200
Subject: [PATCH] Hybrid mode, avoid adding the Tool twice

---
 .../share/TrigHLTMonCommon_jobOptions.py       | 17 +++++++++--------
 .../TriggerJobOpts/python/T0TriggerGetter.py   | 18 ++++++++++--------
 2 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/Trigger/TrigMonitoring/TrigHLTMonitoring/share/TrigHLTMonCommon_jobOptions.py b/Trigger/TrigMonitoring/TrigHLTMonitoring/share/TrigHLTMonCommon_jobOptions.py
index 87c78481b9b5..fb60b7ab553e 100755
--- a/Trigger/TrigMonitoring/TrigHLTMonitoring/share/TrigHLTMonCommon_jobOptions.py
+++ b/Trigger/TrigMonitoring/TrigHLTMonitoring/share/TrigHLTMonCommon_jobOptions.py
@@ -120,14 +120,15 @@ if data_type == 'pool':
     from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter
     cfg =  TriggerConfigGetter()
     
-    from AthenaCommon.Configurable import Configurable
-    from AthenaConfiguration.ComponentAccumulator import appendCAtoAthena
-    from AthenaConfiguration.AllConfigFlags import ConfigFlags
-    Configurable.configurableRun3Behavior += 1
-    from TrigDecisionTool.TrigDecisionToolConfig import getTrigDecisionTool
-    acc = getTrigDecisionTool(ConfigFlags)
-    appendCAtoAthena( acc )
-    Configurable.configurableRun3Behavior -= 1
+    if not hasattr(ToolSvc, 'TrigDecisionTool'):
+        from AthenaCommon.Configurable import Configurable
+        from AthenaConfiguration.ComponentAccumulator import appendCAtoAthena
+        from AthenaConfiguration.AllConfigFlags import ConfigFlags
+        Configurable.configurableRun3Behavior += 1
+        from TrigDecisionTool.TrigDecisionToolConfig import getTrigDecisionTool
+        acc = getTrigDecisionTool(ConfigFlags)
+        appendCAtoAthena( acc )
+        Configurable.configurableRun3Behavior -= 1
     
     # enable slices for monitoring 
     # otherwise enable slices via monFlags 
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/T0TriggerGetter.py b/Trigger/TriggerCommon/TriggerJobOpts/python/T0TriggerGetter.py
index a6c9539d9bd9..ce3b56eb894a 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/T0TriggerGetter.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/T0TriggerGetter.py
@@ -29,14 +29,16 @@ class T0TriggerGetter(Configured):
         cfg =  TriggerConfigGetter()  # noqa: F841
 
         # preconfigure TrigDecisionTool
-        from AthenaCommon.Configurable import Configurable
-        from AthenaConfiguration.ComponentAccumulator import appendCAtoAthena
-        from AthenaConfiguration.AllConfigFlags import ConfigFlags
-        Configurable.configurableRun3Behavior += 1
-        from TrigDecisionTool.TrigDecisionToolConfig import getTrigDecisionTool
-        acc = getTrigDecisionTool(ConfigFlags)
-        appendCAtoAthena( acc )
-        Configurable.configurableRun3Behavior -= 1
+        from AthenaCommon.AppMgr import ToolSvc
+        if not hasattr(ToolSvc, 'TrigDecisionTool'):
+            from AthenaCommon.Configurable import Configurable
+            from AthenaConfiguration.ComponentAccumulator import appendCAtoAthena
+            from AthenaConfiguration.AllConfigFlags import ConfigFlags
+            Configurable.configurableRun3Behavior += 1
+            from TrigDecisionTool.TrigDecisionToolConfig import getTrigDecisionTool
+            acc = getTrigDecisionTool(ConfigFlags)
+            appendCAtoAthena( acc )
+            Configurable.configurableRun3Behavior -= 1
 
 
         if withLVL1():
-- 
GitLab