From 1cb490a2404b188ece24e380a050baa5b9b7cac5 Mon Sep 17 00:00:00 2001
From: Iskander Ibragimov <iskander.ibragimov@cern.ch>
Date: Mon, 25 Oct 2021 18:25:29 +0200
Subject: [PATCH 1/4] optimization of occupancy jo flags

---
 .../share/InDetMonitoringPixel.py             |  9 +++-----
 .../python/PixelMonitoringConfig.py           | 22 +++++++------------
 2 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
index 5f265c7eedc9..4cdf9a169ea0 100644
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
@@ -27,8 +27,7 @@ from InDetRecExample import TrackingCommon
 if forceOnline : athenaCommonFlags.isOnline = True
 kwargsHitMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,      #Histograms for online (athenaPT) running
                      'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True,       #Turn on/off histograms stored for each lumi block
-                     'doLowOccupancy'  : False,      #Turn on/off histograms with binning for cosmics/single beam                    
-                     'doHighOccupancy' : True,       #Turn on/off histograms with binning for collisions
+                     'doLowOccupancy'  : InDetFlags.doCosmics(),      #Turn on/off histograms with binning for cosmics
                      'doHeavyIonMon'   : InDetFlags.doHeavyIon(),   # Histogram modification for heavy ion monitoring
                      'doFEPlots'       : True,       #Turn on/off histograms with FE Status information
                      'RDOName'         : InDetKeys.PixelRDOs()
@@ -36,8 +35,7 @@ kwargsHitMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() els
 
 kwargsClusMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,      #Histograms for online (athenaPT) running
                       'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True,       #Turn on/off histograms stored for each lumi block
-                      'doLowOccupancy'  : False,      #Turn on/off histograms with binning for cosmics/single beam
-                      'doHighOccupancy' : True,       #Turn on/off histograms with binning for collisions
+                      'doLowOccupancy'  : InDetFlags.doCosmics(),      #Turn on/off histograms with binning for cosmics
                       'doHeavyIonMon'   : InDetFlags.doHeavyIon(),   # Histogram modification for heavy ion monitoring
                       'doFEPlots'       : True,       #Turn on/off histograms with FE Status information
                       'ClusterName'     : InDetKeys.PixelClusters(),
@@ -46,8 +44,7 @@ kwargsClusMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() el
 
 kwargsErrMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,      #Histograms for online (athenaPT) running
                      'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True,       #Turn on/off histograms stored for each lumi block
-                     'doLowOccupancy'  : False,      #Turn on/off histograms with binning for cosmics/single beam                    
-                     'doHighOccupancy' : True,       #Turn on/off histograms with binning for collisions
+                     'doLowOccupancy'  : InDetFlags.doCosmics(),      #Turn on/off histograms with binning for cosmics
                      'doHeavyIonMon'   : InDetFlags.doHeavyIon()
 }
 if forceOnline : athenaCommonFlags.isOnline = False
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py b/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
index 27a707725e40..b31881f45b02 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
@@ -11,34 +11,28 @@ def PixelMonitoringConfig(flags):
         if forceOnline : flags.Common.isOnline = True
         kwargsHitMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (athenaPT) running
                             'doLumiBlock'     : not flags.Common.isOnline,       #Turn on/off histograms stored for each lumi block
-                            'doLowOccupancy'  : False,      #Turn on/off histograms with binning for cosmics/single beam                    
-                            'doHighOccupancy' : True,       #Turn on/off histograms with binning for collisions
-                            #'doHeavyIonMon'   : InDetFlags.doHeavyIon(),   # Histogram modification for heavy ion monitoring
+                            'doLowOccupancy'  : flags.Beam.Type=='cosmics',      #Turn on/off histograms with binning for cosmics
+                            'doHeavyIonMon'   : flags.InDet.doHeavyIon,   # Histogram modification for heavy ion monitoring
                             #'RDOName'         : InDetKeys.PixelRDOs()
-                            'doHeavyIonMon'   : False,      #Until new config ready
                             'doFEPlots'       : True,       #Turn on/off histograms with FE Status information
-                            'RDOName'         : 'PixelRDOs',#Until new config ready
+                            'RDOName'         : 'PixelRDOs' #Until new config ready
         }
 
         kwargsClusMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (athenaPT) running
                              'doLumiBlock'     : not flags.Common.isOnline,       #Turn on/off histograms stored for each lumi block
-                             'doLowOccupancy'  : False,      #Turn on/off histograms with binning for cosmics/single beam
-                             'doHighOccupancy' : True,       #Turn on/off histograms with binning for collisions
-                             #'doHeavyIonMon'   : InDetFlags.doHeavyIon(),   # Histogram modification for heavy ion monitoring
-                             'doHeavyIonMon'   : False,   #Until new config ready
+                             'doLowOccupancy'  : flags.Beam.Type=='cosmics',      #Turn on/off histograms with binning for cosmics
+                             'doHeavyIonMon'   : flags.InDet.doHeavyIon,   # Histogram modification for heavy ion monitoring
                              'doFEPlots'       : True,       #Turn on/off histograms with FE Status information
                              #'ClusterName'     : InDetKeys.PixelClusters(),
                              'ClusterName'     : 'PixelClusters', #Until new config ready
                              #'TrackName'       : InDetKeys.Tracks()
-                             'TrackName'       : 'Tracks', #Until new config ready
+                             'TrackName'       : 'Tracks' #Until new config ready
         }
 
         kwargsErrMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (athenaPT) running
                             'doLumiBlock'     : not flags.Common.isOnline,       #Turn on/off histograms stored for each lumi block
-                            'doLowOccupancy'  : False,      #Turn on/off histograms with binning for cosmics/single beam                    
-                            'doHighOccupancy' : True,       #Turn on/off histograms with binning for collisions
-                            #'doHeavyIonMon'   : InDetFlags.doHeavyIon()
-                            'doHeavyIonMon'   : False, #Until new config is ready
+                            'doLowOccupancy'  : flags.Beam.Type=='cosmics',      #Turn on/off histograms with binning for cosmics
+                            'doHeavyIonMon'   : flags.InDet.doHeavyIon
         }
         if forceOnline : flags.Common.isOnline = False
         from AthenaMonitoring import AthMonitorCfgHelper
-- 
GitLab


From 97ada7e0487df48abc4e48af3ffb126f51000412 Mon Sep 17 00:00:00 2001
From: Iskander Ibragimov <iskander.ibragimov@cern.ch>
Date: Tue, 26 Oct 2021 17:46:34 +0200
Subject: [PATCH 2/4] physics-mode-dependent ranges for 1D cluster plots

---
 .../python/PixelAthClusterMonAlgCfg.py        | 26 ++++++++++++++++---
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelAthClusterMonAlgCfg.py b/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelAthClusterMonAlgCfg.py
index c22695e6e997..dab6103f7594 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelAthClusterMonAlgCfg.py
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelAthClusterMonAlgCfg.py
@@ -19,6 +19,8 @@ def PixelAthClusterMonAlgCfg(helper, alg, **kwargs):
 
     doOnline  = kwargs.get('doOnline',  False)
     doLumiBlock = kwargs.get('doLumiBlock', False)
+    doLowOccupancy = kwargs.get('doLowOccupancy', False)
+    doHeavyIonMon = kwargs.get('doHeavyIonMon', False)
     doFEPlots  = kwargs.get('doFEPlots',  False)
 
     forceOnline = doOnline and not athenaCommonFlags.isOnline
@@ -258,15 +260,31 @@ def PixelAthClusterMonAlgCfg(helper, alg, **kwargs):
         varName = addOnTrackTxt('ClustersPerEvent', ontrack) + '_val'
         title = fullDressTitle('Number of pixel clusters in an event', ontrack, ';# pixel clusters', ';# events')
         varName += ';'+ addOnTrackTxt('ClustersPerEvent', ontrack)
-        xmax1D = 10000 if ontrack else 40000
+        if doHeavyIonMon:
+            xmax1D = 20000 if ontrack else 80000
+            xbins1D = 2000
+        elif doLowOccupancy:
+            xmax1D = 50 if ontrack else 200
+            xbins1D = 200
+        else:
+            xmax1D = 10000 if ontrack else 40000
+            xbins1D = 1000
         clusterGroup[ontrack].defineHistogram(varName,
                                               type='TH1I', path=pathGroup, title=title,
-                                              xbins=1000, xmin=0, xmax=xmax1D)
+                                              xbins=xbins1D, xmin=0, xmax=xmax1D)
 
         histoGroupName = addOnTrackTxt('ClustersPerEvent', ontrack)
         title          = addOnTrackTxt('Number of pixel clusters in an event', ontrack, True)
-        binsizes1D = 10 if ontrack else 40
-        define1DLayers(helper, alg, histoGroupName, title, pathGroup, ';# pixel clusters', ';# events', xbins=[200], xmins=[0], binsizes=[binsizes1D])
+        if doHeavyIonMon:
+            xbins1D = 200
+            binsizes1D = 25 if ontrack else 100
+        elif doLowOccupancy:
+            xbins1D = 20 if ontrack else 50
+            binsizes1D = 1
+        else:
+            xbins1D = 200
+            binsizes1D = 10 if ontrack else 40
+        define1DLayers(helper, alg, histoGroupName, title, pathGroup, ';# pixel clusters', ';# events', xbins=[xbins1D], xmins=[0], binsizes=[binsizes1D])
 
         varName = 'pixclusmontool_lb,' + addOnTrackTxt('ClustersPerEvent', ontrack) + '_val'
         title = fullDressTitle('Average number of pixel clusters per event per LB', ontrack, ';lumi block', ';# clusters/event')
-- 
GitLab


From 675d0ca6d8bda0a39d991774db9e9e61e902c282 Mon Sep 17 00:00:00 2001
From: Iskander Ibragimov <iskander.ibragimov@cern.ch>
Date: Tue, 26 Oct 2021 17:48:28 +0200
Subject: [PATCH 3/4] tuning and clean-up of job options

---
 .../share/InDetMonitoringPixel.py             | 24 +++++-------
 .../python/PixelMonitoringConfig.py           | 38 +++++++++----------
 2 files changed, 28 insertions(+), 34 deletions(-)

diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
index 4cdf9a169ea0..b19c9d90f8dc 100644
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
@@ -25,27 +25,23 @@ from InDetRecExample.InDetKeys import InDetKeys
 from InDetRecExample import TrackingCommon
 
 if forceOnline : athenaCommonFlags.isOnline = True
-kwargsHitMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,      #Histograms for online (athenaPT) running
-                     'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True,       #Turn on/off histograms stored for each lumi block
-                     'doLowOccupancy'  : InDetFlags.doCosmics(),      #Turn on/off histograms with binning for cosmics
-                     'doHeavyIonMon'   : InDetFlags.doHeavyIon(),   # Histogram modification for heavy ion monitoring
-                     'doFEPlots'       : True,       #Turn on/off histograms with FE Status information
+kwargsHitMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,      #Histograms for online (GlobalMonitoring) running
+                     'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True,     #Turn on/off histograms stored every 1(20) lumi block(s)
+                     'doFEPlots'       : True,                                                #Turn on/off per FE-I3 histograms
                      'RDOName'         : InDetKeys.PixelRDOs()
 }
 
-kwargsClusMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,      #Histograms for online (athenaPT) running
-                      'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True,       #Turn on/off histograms stored for each lumi block
-                      'doLowOccupancy'  : InDetFlags.doCosmics(),      #Turn on/off histograms with binning for cosmics
-                      'doHeavyIonMon'   : InDetFlags.doHeavyIon(),   # Histogram modification for heavy ion monitoring
-                      'doFEPlots'       : True,       #Turn on/off histograms with FE Status information
+kwargsClusMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,     #Histograms for online (GlobalMonitoring) running
+                      'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True,    #Turn on/off histograms stored every 1(20) lumi block(s)
+                      'doLowOccupancy'  : InDetFlags.doCosmics(),      #Setting up 1D histogram ranges and binnings, if False, high occupancy i.e. collisions settings will be used
+                      'doHeavyIonMon'   : InDetFlags.doHeavyIon(),     #Setting up 1D histogram ranges and binnings for heavy ions
+                      'doFEPlots'       : True,                                               #Turn on/off per FE-I3 histograms
                       'ClusterName'     : InDetKeys.PixelClusters(),
                       'TrackName'       : InDetKeys.Tracks()
 }
 
-kwargsErrMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,      #Histograms for online (athenaPT) running
-                     'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True,       #Turn on/off histograms stored for each lumi block
-                     'doLowOccupancy'  : InDetFlags.doCosmics(),      #Turn on/off histograms with binning for cosmics
-                     'doHeavyIonMon'   : InDetFlags.doHeavyIon()
+kwargsErrMonAlg = { 'doOnline'        : True if athenaCommonFlags.isOnline() else False,      #Histograms for online (GlobalMonitoring) running
+                     'doLumiBlock'     : False if athenaCommonFlags.isOnline() else True      #Turn on/off histograms stored every 1(20) lumi block(s)
 }
 if forceOnline : athenaCommonFlags.isOnline = False
 
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py b/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
index b31881f45b02..f7809f96feb4 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
@@ -6,33 +6,31 @@ def PixelMonitoringConfig(flags):
     from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
     acc = ComponentAccumulator()
     forceOnline = False # for testing of online monitoring and 100LB histograms
+    from InDetRecExample.InDetKeys          import InDetKeys
+    from InDetRecExample.InDetJobProperties import InDetFlags
     # run on RAW only
     if flags.DQ.Environment in ('online', 'tier0', 'tier0Raw'):
         if forceOnline : flags.Common.isOnline = True
-        kwargsHitMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (athenaPT) running
-                            'doLumiBlock'     : not flags.Common.isOnline,       #Turn on/off histograms stored for each lumi block
-                            'doLowOccupancy'  : flags.Beam.Type=='cosmics',      #Turn on/off histograms with binning for cosmics
-                            'doHeavyIonMon'   : flags.InDet.doHeavyIon,   # Histogram modification for heavy ion monitoring
-                            #'RDOName'         : InDetKeys.PixelRDOs()
-                            'doFEPlots'       : True,       #Turn on/off histograms with FE Status information
-                            'RDOName'         : 'PixelRDOs' #Until new config ready
+        kwargsHitMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (GlobalMonitoring) running
+                            'doLumiBlock'     : not flags.Common.isOnline,  #Turn on/off histograms stored every 1(20) lumi block(s)
+                            'doFEPlots'       : True,                       #Turn on/off per FE-I3 histograms
+                            'RDOName'         : InDetKeys.PixelRDOs()
+#                            'RDOName'         : 'PixelRDOs' #Until new config ready
         }
 
-        kwargsClusMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (athenaPT) running
-                             'doLumiBlock'     : not flags.Common.isOnline,       #Turn on/off histograms stored for each lumi block
-                             'doLowOccupancy'  : flags.Beam.Type=='cosmics',      #Turn on/off histograms with binning for cosmics
-                             'doHeavyIonMon'   : flags.InDet.doHeavyIon,   # Histogram modification for heavy ion monitoring
-                             'doFEPlots'       : True,       #Turn on/off histograms with FE Status information
-                             #'ClusterName'     : InDetKeys.PixelClusters(),
-                             'ClusterName'     : 'PixelClusters', #Until new config ready
-                             #'TrackName'       : InDetKeys.Tracks()
-                             'TrackName'       : 'Tracks' #Until new config ready
+        kwargsClusMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (GlobalMonitoring) running
+                             'doLumiBlock'     : not flags.Common.isOnline,  #Turn on/off histograms stored every 1(20) lumi block(s)
+                             'doLowOccupancy'  : InDetFlags.doCosmics(), #Setting up 1D histogram ranges and binnings, if False, high occupancy i.e. collisions settings will be used
+                             'doHeavyIonMon'   : InDetFlags.doHeavyIon(),     #Setting up 1D histogram ranges and binnings for heavy ions
+                             'doFEPlots'       : True,                       #Turn on/off per FE-I3 histograms
+                             'ClusterName'     : InDetKeys.PixelClusters(),
+                             #'ClusterName'     : 'PixelClusters', #Until new config ready
+                             'TrackName'       : InDetKeys.Tracks()
+                             #'TrackName'       : 'Tracks' #Until new config ready
         }
 
-        kwargsErrMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (athenaPT) running
-                            'doLumiBlock'     : not flags.Common.isOnline,       #Turn on/off histograms stored for each lumi block
-                            'doLowOccupancy'  : flags.Beam.Type=='cosmics',      #Turn on/off histograms with binning for cosmics
-                            'doHeavyIonMon'   : flags.InDet.doHeavyIon
+        kwargsErrMonAlg = { 'doOnline'        : flags.Common.isOnline,        #Histograms for online (GlobalMonitoring) running
+                            'doLumiBlock'     : not flags.Common.isOnline     #Turn on/off histograms stored every 1(20) lumi block(s)
         }
         if forceOnline : flags.Common.isOnline = False
         from AthenaMonitoring import AthMonitorCfgHelper
-- 
GitLab


From 53b746fe9f42c7484fb3f92402e3ebc93a7a9778 Mon Sep 17 00:00:00 2001
From: Iskander Ibragimov <iskander.ibragimov@cern.ch>
Date: Wed, 27 Oct 2021 13:44:06 +0200
Subject: [PATCH 4/4] little cleanup

---
 .../PixelMonitoring/python/PixelMonitoringConfig.py      | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py b/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
index f7809f96feb4..38d5df82fea8 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/python/PixelMonitoringConfig.py
@@ -14,8 +14,7 @@ def PixelMonitoringConfig(flags):
         kwargsHitMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (GlobalMonitoring) running
                             'doLumiBlock'     : not flags.Common.isOnline,  #Turn on/off histograms stored every 1(20) lumi block(s)
                             'doFEPlots'       : True,                       #Turn on/off per FE-I3 histograms
-                            'RDOName'         : InDetKeys.PixelRDOs()
-#                            'RDOName'         : 'PixelRDOs' #Until new config ready
+                            'RDOName'         : InDetKeys.PixelRDOs()       #'PixelRDOs'
         }
 
         kwargsClusMonAlg = { 'doOnline'        : flags.Common.isOnline,      #Histograms for online (GlobalMonitoring) running
@@ -23,10 +22,8 @@ def PixelMonitoringConfig(flags):
                              'doLowOccupancy'  : InDetFlags.doCosmics(), #Setting up 1D histogram ranges and binnings, if False, high occupancy i.e. collisions settings will be used
                              'doHeavyIonMon'   : InDetFlags.doHeavyIon(),     #Setting up 1D histogram ranges and binnings for heavy ions
                              'doFEPlots'       : True,                       #Turn on/off per FE-I3 histograms
-                             'ClusterName'     : InDetKeys.PixelClusters(),
-                             #'ClusterName'     : 'PixelClusters', #Until new config ready
-                             'TrackName'       : InDetKeys.Tracks()
-                             #'TrackName'       : 'Tracks' #Until new config ready
+                             'ClusterName'     : InDetKeys.PixelClusters(),  #'PixelClusters'
+                             'TrackName'       : InDetKeys.Tracks()          #'Tracks'
         }
 
         kwargsErrMonAlg = { 'doOnline'        : flags.Common.isOnline,        #Histograms for online (GlobalMonitoring) running
-- 
GitLab