From 923e27a9487c71b42479ecb92c9ed62511238a15 Mon Sep 17 00:00:00 2001
From: Elin Bergeaas Kuutmann <elin.bergeaas.kuutmann@physics.uu.se>
Date: Sun, 3 Oct 2021 20:51:10 +0200
Subject: [PATCH 1/2] Sorting HLT and L1 histo x-axes alphabetically

---
 .../python/TrigGeneralMonitorAlgorithm.py     | 46 +++++++++++--------
 .../src/TrigHLTMonitorAlgorithm.cxx           |  8 ++--
 2 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py
index 61fbb0165489..dde2f9adb757 100644
--- a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py
+++ b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py
@@ -37,10 +37,6 @@ def TrigGeneralMonConfig(inputFlags):
     trigHLTMonAlg.TrigConfigSvc = cfgsvc
 
 
-
-    # Edit properties of a algorithm
-    # 
-
     ####### Signature names 
 
     signature_names = []
@@ -53,7 +49,7 @@ def TrigGeneralMonConfig(inputFlags):
     signature_names.append("Jets") #6
     signature_names.append("MinBias") #7
   
-    # Add a monitoring tool per signature (a "group" in old language). 
+
     hltGroup = helper.addGroup(
         trigHLTMonAlg,
         'TrigHLTMonitor',
@@ -116,36 +112,49 @@ def TrigGeneralMonConfig(inputFlags):
 
     from AthenaConfiguration.AutoConfigFlags import GetFileMD
 
-    ### Set up counters ########################################
 
+    ########################
     ## The HLT chains
-    counter_i = 1
+    HLT_names_AllChains = []
+    log_trighlt.debug('HLT chains:')
     for chain_name in GetFileMD(inputFlags.Input.Files)['TriggerMenu']['HLTChains']:
-        counter_i = counter_i+1
-        log_trighlt.debug('HLT chain_name = %s',chain_name) 
-    max_hlt_chains = counter_i-1
+        log_trighlt.debug('HLT chain_name = %s',chain_name)
+        HLT_names_AllChains.append(chain_name)
+    max_hlt_chains = len(HLT_names_AllChains)
     log_trighlt.debug('max_hlt_chains = %i', max_hlt_chains) 
 
 
+    #Sort HLT names alphabetically, to make the HLT histograms have the same 
+    #x axes for different runs and reprocessings
+    HLT_names_AllChains_sorted = sorted(HLT_names_AllChains)
+
+
+
+    #########################
     ## The L1 items
-    counter_L1 = 1
+    L1_names =[]
     for item_name in GetFileMD(inputFlags.Input.Files)['TriggerMenu']['L1Items']:
-        counter_L1 = counter_L1+1
         log_trighlt.debug('L1 item_name = %s',item_name) 
-    max_L1_items = counter_L1-1 
+        L1_names.append(item_name)
+    max_L1_items = len(L1_names)
     log_trighlt.debug('max_L1_items = %i', max_L1_items) 
 
+    #Sort L1 names alphabetically, to make the L1 histograms have the same 
+    #x axes for different runs and reprocessings
+    L1_names_sorted = sorted(L1_names)
 
     ##### L1 summary histogram ################################
 
     hltGroup.defineHistogram('L1Events',title='Events per Item at L1;;Events',
-                             path='',xbins=max_L1_items,xmin=1,xmax=max_L1_items+1)
-
+                             path='',xbins=len(L1_names_sorted), xmin=0, 
+                             xmax=len(L1_names_sorted), xlabels=L1_names_sorted)
 
     #### HLT summary histograms for the signatures #############
 
     triggerstatus = ['RAW','PS'] #all chains or prescaled chains
-    for sig in signature_names: #loop over signatures
+
+    for i in range(len(signature_names)): #loop over signatures
+        sig = signature_names[i]
         log_trighlt.debug("Signature %s",sig)
 
         ### Events
@@ -154,8 +163,9 @@ def TrigGeneralMonConfig(inputFlags):
             histname = "HLT_"+sig+trigstatus
             log_trighlt.debug('Histname = %s', histname)
             hltGroup.defineHistogram(histname,title=titlename,
-                                     path=sig,xbins=max_hlt_chains+1,
-                                     xmin=1,xmax=max_hlt_chains+1)
+                                     path=sig,xbins=len(HLT_names_AllChains_sorted),
+                                     xmin=0,xmax=len(HLT_names_AllChains_sorted), 
+                                     xlabels=HLT_names_AllChains_sorted)
 
  
     ### RoIs, one per signature
diff --git a/Trigger/TrigMonitoring/TrigHLTMonitoring/src/TrigHLTMonitorAlgorithm.cxx b/Trigger/TrigMonitoring/TrigHLTMonitoring/src/TrigHLTMonitorAlgorithm.cxx
index 557387c5c6fc..df9ab8204440 100644
--- a/Trigger/TrigMonitoring/TrigHLTMonitoring/src/TrigHLTMonitorAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigHLTMonitoring/src/TrigHLTMonitorAlgorithm.cxx
@@ -239,8 +239,6 @@ StatusCode TrigHLTMonitorAlgorithm::fillResultAndConsistencyHistograms( const Ev
   auto HLTEvents = Monitored::Scalar<int>("HLTEvents",0);
   auto ConfigConsistency_HLT = Monitored::Scalar<int>("ConfigConsistency_HLT",0);
 
-  //SG::ReadHandle<HLT::HLTResultMT> resultHandle = SG::makeHandle( m_hltResultReadKey, ctx );
-
   SG::ReadHandle<xAOD::TrigConfKeys> onlineKeys(m_onlineKey, ctx);
   SG::ReadHandle<xAOD::TrigConfKeys> eventKeys(m_eventKey, ctx);
 
@@ -248,7 +246,7 @@ StatusCode TrigHLTMonitorAlgorithm::fillResultAndConsistencyHistograms( const Ev
 
   if( onlineKeys.isValid() ) {
     sc_onlineKeys = StatusCode::SUCCESS;
-    ATH_MSG_DEBUG("onlineKeys are valid"); //extra debug
+    ATH_MSG_DEBUG("onlineKeys are valid"); 
   }
   else {
     ATH_MSG_ERROR("TrigConfKeysOnline not available");
@@ -327,7 +325,9 @@ StatusCode TrigHLTMonitorAlgorithm::fillResultAndConsistencyHistograms( const Ev
 
 
 
-  //Fill HLTResult histogram
+  //Fill HLTEvent histogram 
+  //this was called HLTResult in Run1-2, 
+  //but HLTResult has a slightly different meaning now
   HLTEvents = (int)sc_hltEvents.isSuccess();
   fill(tool,HLTEvents); //Always fill, for every event
 
-- 
GitLab


From 8f649208c59487770bba0fada03538d951953266 Mon Sep 17 00:00:00 2001
From: Elin Bergeaas Kuutmann <elin.bergeaas.kuutmann@physics.uu.se>
Date: Mon, 4 Oct 2021 14:14:20 +0200
Subject: [PATCH 2/2] Simplify for loop

---
 .../TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py    | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py
index dde2f9adb757..2801f5d57412 100644
--- a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py
+++ b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigGeneralMonitorAlgorithm.py
@@ -153,8 +153,7 @@ def TrigGeneralMonConfig(inputFlags):
 
     triggerstatus = ['RAW','PS'] #all chains or prescaled chains
 
-    for i in range(len(signature_names)): #loop over signatures
-        sig = signature_names[i]
+    for sig in signature_names: #loop over signatures
         log_trighlt.debug("Signature %s",sig)
 
         ### Events
-- 
GitLab