From 5537752ac6ae1e4d94fc5f9265570fd2213ba7c0 Mon Sep 17 00:00:00 2001
From: Peter Onyisi <ponyisi@utexas.edu>
Date: Sat, 8 Oct 2016 14:00:48 +0200
Subject: [PATCH] Trigger protection in unsupported mode
 (AthenaMonitoring-02-03-06)

	* Add protection for case rec.doTrigger==False and DQMonFlags.useTrigger==True
          obo Ryan White.  This mode of operation is NOT SUPPORTED BY DQ.
	* Tag AthenaMonitoring-02-03-06

2016-09-22 Harish Potti<harish.potti@cern.ch>
	* Add doAFPMon flag
	* Tag AthenaMonitoring-02-03-05


Former-commit-id: ffc99a5170b725587cd0123cbb01601b21b57325
---
 Control/AthenaMonitoring/python/DQMonFlags.py          |  7 +++++++
 .../share/DataQualitySteering_jobOptions.py            | 10 ++++++++++
 .../AthenaMonitoring/share/TrigDecTool_jobOptions.py   |  7 +++++++
 3 files changed, 24 insertions(+)

diff --git a/Control/AthenaMonitoring/python/DQMonFlags.py b/Control/AthenaMonitoring/python/DQMonFlags.py
index 8e600e918b4..fba3359c081 100644
--- a/Control/AthenaMonitoring/python/DQMonFlags.py
+++ b/Control/AthenaMonitoring/python/DQMonFlags.py
@@ -223,6 +223,13 @@ class doLucidMon(JobProperty):
     StoredValue=True
 list+=[doLucidMon]
 
+class doAFPMon(JobProperty):
+    """Switch for AFP monitoring"""
+    statusOn=True
+    allowedTypes=['bool']
+    StoredValue=False
+list+=[doAFPMon]
+
 class doHIMon(JobProperty):
     """ Switch for dedicated Heavy Ion monitoring """
     statusOn=True
diff --git a/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py b/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
index cac005f471c..57d87b85bb6 100644
--- a/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
+++ b/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
@@ -218,6 +218,16 @@ if DQMonFlags.doMonitoring():
       except Exception:
          treatException("DataQualitySteering_jobOptions.py: exception when setting up LUCID monitoring")
 
+   #------------------#                                                                                                                       
+   # AFP monitoring   #                                                                                                                       
+   #------------------#                                                                                                                       
+   if DQMonFlags.doAFPMon():
+      try:
+         include("AFP_Monitoring/AFPMonitoring_jobOptions.py")
+      except Exception:
+         treatException("DataQualitySteering_jobOptions.py: exception when setting up AFP monitoring")
+
+
    #---------------------#
    # HeavyIon monitoring #
    #---------------------#
diff --git a/Control/AthenaMonitoring/share/TrigDecTool_jobOptions.py b/Control/AthenaMonitoring/share/TrigDecTool_jobOptions.py
index 3f329cd3a3c..2f25b8fe051 100644
--- a/Control/AthenaMonitoring/share/TrigDecTool_jobOptions.py
+++ b/Control/AthenaMonitoring/share/TrigDecTool_jobOptions.py
@@ -21,6 +21,7 @@ if DQMonFlags.useTrigger():
          cfg = TriggerConfigGetter()
 
    if not hasattr(ToolSvc, DQMonFlags.nameTrigDecTool().split('/')[-1]):
+      tdt_local_logger.error('DQ Monitoring is being asked to set up the TrigDecisionTool for some reason.  THIS IS A TERRIBLE IDEA AND SHOULD BE CONSIDERED A BUG!')
       from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool
       monTrigDecTool = Trig__TrigDecisionTool(name=DQMonFlags.nameTrigDecTool(),
                                               OutputLevel=ERROR,
@@ -30,6 +31,12 @@ if DQMonFlags.useTrigger():
                                                                   }
                                              )
       ToolSvc += monTrigDecTool
+      # The following should be provided automatically when setting up the tool, but is not
+      # Still needs to be provided by the trigger
+      # When trigger has a standard procedure for this, switch
+      ToolSvc.TrigDecisionTool.TrigConfigSvc = "Trig::TrigConfigSvc/TrigConfigSvc"
+      from TrigEDMConfig.TriggerEDM import EDMLibraries
+      ToolSvc.TrigDecisionTool.Navigation.Dlls = [e for e in  EDMLibraries if 'TPCnv' not in e]
    else:
       monTrigDecTool = getattr(ToolSvc, DQMonFlags.nameTrigDecTool().split('/')[-1])
    tdt_local_logger.info('Scheduled monitoring TDT %s', monTrigDecTool)
-- 
GitLab