From a9a485cedd5943cef689009b35411a4f64628c49 Mon Sep 17 00:00:00 2001
From: Krzysztof Marian Korcyl <krzysztof.korcyl@cern.ch>
Date: Fri, 27 Nov 2020 09:25:08 +0000
Subject: [PATCH] fixing 38564 MR threads + removing commented out lines +
 removing AthenaST-style root booking and filling code

---
 .../share/TrigALFAROBMonitor.py               | 349 +++++----
 .../src/TrigALFAROBMonitor.cxx                | 676 +++++++++---------
 .../src/TrigALFAROBMonitor.h                  |  48 +-
 3 files changed, 529 insertions(+), 544 deletions(-)

diff --git a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/share/TrigALFAROBMonitor.py b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/share/TrigALFAROBMonitor.py
index f0a0a3f06b5..1d416143e5e 100755
--- a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/share/TrigALFAROBMonitor.py
+++ b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/share/TrigALFAROBMonitor.py
@@ -17,167 +17,204 @@ topSequence = AlgSequence()
 topSequence += ALFAROBMonitor
 
 from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
-monTool = GenericMonitoringTool('monTool')
-monTool.HistPath="ALFAROBMonitor/python"
+#monTool1 = GenericMonitoringTool('MonTool1')
+#monTool1.HistPath="ALFAROBMonitor/python_kk_background"
+#monTool = GenericMonitoringTool('MonTool')
+#monTool.HistPath="ALFAROBMonitor/python_kk"
+#ALFAROBMonitor.MonTool += [monTool, monTool1]
+
+monToolTrackingElast = GenericMonitoringTool('MonTool_trackingElast', HistPath='ALFAROBMonitor'+'/MTtracking/elast/current')
+monToolTrackingAny = GenericMonitoringTool('MonTool_trackingAny', HistPath='ALFAROBMonitor'+'/MTtracking/any/current')
+monToolTrackingElast_1LB = GenericMonitoringTool('MonTool_trackingElast_1LB', HistPath='ALFAROBMonitor'+'/MTtracking/elast/1LB')
+monToolTrackingAny_1LB = GenericMonitoringTool('MonTool_trackingAny_1LB', HistPath='ALFAROBMonitor'+'/MTtracking/any/1LB')
+monToolTrackingElast_10LB = GenericMonitoringTool('MonTool_trackingElast_10LB', HistPath='ALFAROBMonitor'+'/MTtracking/elast/10LB')
+monToolTrackingAny_10LB = GenericMonitoringTool('MonTool_trackingAny_10LB', HistPath='ALFAROBMonitor'+'/MTtracking/any/10LB')
+monToolTrackingElast_60LB = GenericMonitoringTool('MonTool_trackingElast_60LB', HistPath='ALFAROBMonitor'+'/MTtracking/elast/60LB')
+monToolTrackingAny_60LB = GenericMonitoringTool('MonTool_trackingAny_60LB', HistPath='ALFAROBMonitor'+'/MTtracking/any/60LB')
+monToolTrackingElast_SB = GenericMonitoringTool('MonTool_trackingElast_SB', HistPath='ALFAROBMonitor'+'/MTtracking/elast/SB')
+monToolTrackingAny_SB = GenericMonitoringTool('MonTool_trackingAny_SB', HistPath='ALFAROBMonitor'+'/MTtracking/any/SB')
+
+monToolCommon = GenericMonitoringTool('MonTool_common', HistPath='ALFAROBMonitor'+'/MTcommon')
+
+monToolOD_B7L1U = GenericMonitoringTool('MonTool_OD_B7L1U', HistPath='ALFAROBMonitor'+'/MTOD/B7L1U')
+monToolOD_B7L1L = GenericMonitoringTool('MonTool_OD_B7L1L', HistPath='ALFAROBMonitor'+'/MTOD/B7L1L')
+monToolOD_A7L1U = GenericMonitoringTool('MonTool_OD_A7L1U', HistPath='ALFAROBMonitor'+'/MTOD/A7L1U')
+monToolOD_A7L1L = GenericMonitoringTool('MonTool_OD_A7L1L', HistPath='ALFAROBMonitor'+'/MTOD/A7L1L')
+monToolOD_A7R1U = GenericMonitoringTool('MonTool_OD_A7R1U', HistPath='ALFAROBMonitor'+'/MTOD/A7R1U')
+monToolOD_A7R1L = GenericMonitoringTool('MonTool_OD_A7R1L', HistPath='ALFAROBMonitor'+'/MTOD/A7R1L')
+monToolOD_B7R1U = GenericMonitoringTool('MonTool_OD_B7R1U', HistPath='ALFAROBMonitor'+'/MTOD/B7R1U')
+monToolOD_B7R1L = GenericMonitoringTool('MonTool_OD_B7R1L', HistPath='ALFAROBMonitor'+'/MTOD/B7R1L')
+
+monToolDetectors = GenericMonitoringTool('MonTool_detectors', HistPath='ALFAROBMonitor'+'/MTdetectors')
+
+monToolBackgroundElast15 = GenericMonitoringTool('MonTool_backgroundElast15', HistPath='ALFAROBMonitor'+'/MTbackground/elast15/current')
+monToolBackgroundElast18 = GenericMonitoringTool('MonTool_backgroundElast18', HistPath='ALFAROBMonitor'+'/MTbackground/elast18/current')
+monToolBackgroundSyst17 = GenericMonitoringTool('MonTool_backgroundSyst17', HistPath='ALFAROBMonitor'+'/MTbackground/syst17/current')
+monToolBackgroundSyst18 = GenericMonitoringTool('MonTool_backgroundSyst18', HistPath='ALFAROBMonitor'+'/MTbackground/syst18/current')
+
+monToolBackgroundElast15_1LB = GenericMonitoringTool('MonTool_backgroundElast15_1LB', HistPath='ALFAROBMonitor'+'/MTbackground/elast15/1LB')
+monToolBackgroundElast18_1LB = GenericMonitoringTool('MonTool_backgroundElast18_1LB', HistPath='ALFAROBMonitor'+'/MTbackground/elast18/1LB')
+monToolBackgroundSyst17_1LB = GenericMonitoringTool('MonTool_backgroundSyst17_1LB', HistPath='ALFAROBMonitor'+'/MTbackground/syst17/1LB')
+monToolBackgroundSyst18_1LB = GenericMonitoringTool('MonTool_backgroundSyst18_1LB', HistPath='ALFAROBMonitor'+'/MTbackground/syst18/1LB')
+
+monToolBackgroundElast15_10LB = GenericMonitoringTool('MonTool_backgroundElast15_10LB', HistPath='ALFAROBMonitor'+'/MTbackground/elast15/10LB')
+monToolBackgroundElast18_10LB = GenericMonitoringTool('MonTool_backgroundElast18_10LB', HistPath='ALFAROBMonitor'+'/MTbackground/elast18/10LB')
+monToolBackgroundSyst17_10LB = GenericMonitoringTool('MonTool_backgroundSyst17_10LB', HistPath='ALFAROBMonitor'+'/MTbackground/syst17/10LB')
+monToolBackgroundSyst18_10LB = GenericMonitoringTool('MonTool_backgroundSyst18_10LB', HistPath='ALFAROBMonitor'+'/MTbackground/syst18/10LB')
+
+monToolBackgroundElast15_60LB = GenericMonitoringTool('MonTool_backgroundElast15_60LB', HistPath='ALFAROBMonitor'+'/MTbackground/elast15/60LB')
+monToolBackgroundElast18_60LB = GenericMonitoringTool('MonTool_backgroundElast18_60LB', HistPath='ALFAROBMonitor'+'/MTbackground/elast18/60LB')
+monToolBackgroundSyst17_60LB = GenericMonitoringTool('MonTool_backgroundSyst17_60LB', HistPath='ALFAROBMonitor'+'/MTbackground/syst17/60LB')
+monToolBackgroundSyst18_60LB = GenericMonitoringTool('MonTool_backgroundSyst18_60LB', HistPath='ALFAROBMonitor'+'/MTbackground/syst18/60LB')
+
+ALFAROBMonitor.MonTools += [monToolCommon, monToolDetectors]
+ALFAROBMonitor.MonTools += [monToolBackgroundElast15,      monToolBackgroundElast18,      monToolBackgroundSyst17,      monToolBackgroundSyst18]
+ALFAROBMonitor.MonTools += [monToolBackgroundElast15_1LB,  monToolBackgroundElast18_1LB,  monToolBackgroundSyst17_1LB,  monToolBackgroundSyst18_1LB]
+ALFAROBMonitor.MonTools += [monToolBackgroundElast15_10LB, monToolBackgroundElast18_10LB, monToolBackgroundSyst17_10LB, monToolBackgroundSyst18_10LB]
+ALFAROBMonitor.MonTools += [monToolBackgroundElast15_60LB, monToolBackgroundElast18_60LB, monToolBackgroundSyst17_60LB, monToolBackgroundSyst18_60LB]
+ALFAROBMonitor.MonTools += [monToolTrackingElast, monToolTrackingAny, monToolTrackingElast_1LB, monToolTrackingAny_1LB]
+ALFAROBMonitor.MonTools += [monToolTrackingElast_10LB, monToolTrackingAny_10LB, monToolTrackingElast_60LB, monToolTrackingAny_60LB]
+ALFAROBMonitor.MonTools += [monToolOD_B7L1U, monToolOD_B7L1L, monToolOD_A7L1U, monToolOD_A7L1L, monToolOD_A7R1U, monToolOD_A7R1L, monToolOD_B7R1U, monToolOD_B7R1L] 
 
 # common
-monTool.defineHistogram("com-LB,goodDataAssessmentLB15", type='TH2F', path='EXPERT', title='goodDataAssessmentLB15', xbins=1000, xmin=-0.5, xmax=999.5, ybins=2, ymin=0.5, ymax=2.5 )
-monTool.defineHistogram("com-LB,goodDataAssessmentLB18", type='TH2F', path='EXPERT', title='goodDataAssessmentLB18', xbins=1000, xmin=-0.5, xmax=999.5, ybins=2, ymin=0.5, ymax=2.5 )
-monTool.defineHistogram("com-goodDataAssessment",        type='TH1F', path='EXPERT', title='goodDataAssessment',     xbins=10,   xmin=-0.5, xmax=9.5 )
-
-#detector
-monTool.defineHistogram("det-B7L1U-Channel,PMF", type='TH2F', path='EXPERT', title='B7L1U activity', xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
-monTool.defineHistogram("det-B7L1L-Channel,PMF", type='TH2F', path='EXPERT', title='B7L1L activity', xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
-monTool.defineHistogram("det-A7L1U-Channel,PMF", type='TH2F', path='EXPERT', title='A7L1U activity', xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
-monTool.defineHistogram("det-A7L1L-Channel,PMF", type='TH2F', path='EXPERT', title='A7L1L activity', xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
-monTool.defineHistogram("det-A7R1U-Channel,PMF", type='TH2F', path='EXPERT', title='A7R1U activity', xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
-monTool.defineHistogram("det-A7R1L-Channel,PMF", type='TH2F', path='EXPERT', title='A7R1L activity', xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
-monTool.defineHistogram("det-B7R1U-Channel,PMF", type='TH2F', path='EXPERT', title='B7R1U activity', xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
-monTool.defineHistogram("det-B7R1L-Channel,PMF", type='TH2F', path='EXPERT', title='B7R1L activity', xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
-
-monTool.defineHistogram("trk-full-elastic-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f elastic', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-elastic-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f elastic', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-elastic-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f elastic', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-elastic-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f elastic', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-elastic-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f elastic', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-elastic-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f elastic', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-elastic-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f elastic', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-elastic-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f elastic', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-elastic_ALFA_BG-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f elastic ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-elastic_ALFA_BG-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f elastic ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-elastic_ALFA_BG-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f elastic ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-elastic_ALFA_BG-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f elastic ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-elastic_ALFA_BG-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f elastic ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-elastic_ALFA_BG-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f elastic ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-elastic_ALFA_BG-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f elastic ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-elastic_ALFA_BG-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f elastic ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-singleDiffr-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-singleDiffr-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-singleDiffr-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-singleDiffr-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-singleDiffr-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-singleDiffr-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-singleDiffr-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-singleDiffr-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ALFA_MBTS_singleDiffr-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ALFA_MBTS_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_MBTS_singleDiffr-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ALFA_MBTS_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_MBTS_singleDiffr-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ALFA_MBTS_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_MBTS_singleDiffr-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ALFA_MBTS_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_MBTS_singleDiffr-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ALFA_MBTS_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_MBTS_singleDiffr-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ALFA_MBTS_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_MBTS_singleDiffr-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ALFA_MBTS_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_MBTS_singleDiffr-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ALFA_MBTS_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ALFA_LUCID_singleDiffr-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ALFA_LUCID_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_LUCID_singleDiffr-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ALFA_LUCID_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_LUCID_singleDiffr-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ALFA_LUCID_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_LUCID_singleDiffr-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ALFA_LUCID_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_LUCID_singleDiffr-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ALFA_LUCID_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_LUCID_singleDiffr-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ALFA_LUCID_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_LUCID_singleDiffr-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ALFA_LUCID_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_LUCID_singleDiffr-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ALFA_LUCID_singleDiffr', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ALFA_EM3-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ALFA_EM3', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_EM3-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ALFA_EM3', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_EM3-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ALFA_EM3', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_EM3-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ALFA_EM3', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_EM3-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ALFA_EM3', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_EM3-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ALFA_EM3', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_EM3-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ALFA_EM3', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_EM3-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ALFA_EM3', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ALFA_J12-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ALFA_J12', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_J12-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ALFA_J12', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_J12-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ALFA_J12', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_J12-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ALFA_J12', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_J12-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ALFA_J12', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_J12-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ALFA_J12', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_J12-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ALFA_J12', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_J12-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ALFA_J12', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ALFA_TRT-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ALFA_TRT', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_TRT-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ALFA_TRT', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_TRT-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ALFA_TRT', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_TRT-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ALFA_TRT', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_TRT-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ALFA_TRT', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_TRT-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ALFA_TRT', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_TRT-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ALFA_TRT', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_TRT-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ALFA_TRT', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ANY-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ANY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ANY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ANY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ANY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ANY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ANY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ANY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ANY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ANY_UNPAIRED_ISO-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ANY_UNPAIRED_ISO', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY_UNPAIRED_ISO-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ANY_UNPAIRED_ISO', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY_UNPAIRED_ISO-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ANY_UNPAIRED_ISO', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY_UNPAIRED_ISO-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ANY_UNPAIRED_ISO', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY_UNPAIRED_ISO-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ANY_UNPAIRED_ISO', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY_UNPAIRED_ISO-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ANY_UNPAIRED_ISO', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY_UNPAIRED_ISO-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ANY_UNPAIRED_ISO', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY_UNPAIRED_ISO-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ANY_UNPAIRED_ISO', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ANY_ALFA_BG-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ANY_ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY_ALFA_BG-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ANY_ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY_ALFA_BG-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ANY_ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY_ALFA_BG-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ANY_ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY_ALFA_BG-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ANY_ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY_ALFA_BG-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ANY_ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ANY_ALFA_BG-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ANY_ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ANY_ALFA_BG-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ANY_ALFA_BG', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("trk-full-ALFA_EMPTY-B7L1U-x,y", type='TH2F', path='EXPERT', title='B7L1U f ALFA_EMPTY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_EMPTY-B7L1L-x,y", type='TH2F', path='EXPERT', title='B7L1L f ALFA_EMPTY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_EMPTY-A7L1U-x,y", type='TH2F', path='EXPERT', title='A7L1U f ALFA_EMPTY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_EMPTY-A7L1L-x,y", type='TH2F', path='EXPERT', title='A7L1L f ALFA_EMPTY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_EMPTY-A7R1U-x,y", type='TH2F', path='EXPERT', title='A7R1U f ALFA_EMPTY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_EMPTY-A7R1L-x,y", type='TH2F', path='EXPERT', title='A7R1L f ALFA_EMPTY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-monTool.defineHistogram("trk-full-ALFA_EMPTY-B7R1U-x,y", type='TH2F', path='EXPERT', title='B7R1U f ALFA_EMPTY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
-monTool.defineHistogram("trk-full-ALFA_EMPTY-B7R1L-x,y", type='TH2F', path='EXPERT', title='B7R1L f ALFA_EMPTY', xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
-
-monTool.defineHistogram("od-B7L1U-RP_1_0 position", type='TH1F', path='EXPERT', title='B7L1U RP_1_0 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-B7L1U-RP_1_1 position", type='TH1F', path='EXPERT', title='B7L1U RP_1_1 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-B7L1U-distance_1_2_side_0", type='TH1F', path='EXPERT', title='B7L1U distance_1_2_side_0', xbins=401, xmin=-20.05, xmax=20.05)
-monTool.defineHistogram("od-B7L1U-distance_1_2_side_1", type='TH1F', path='EXPERT', title='B7L1U distance_1_2_side_1', xbins=401, xmin=-20.05, xmax=20.05)
-
-monTool.defineHistogram("od-B7L1L-RP_2_0 position", type='TH1F', path='EXPERT', title='B7L1L RP_2_0 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-B7L1L-RP_2_1 position", type='TH1F', path='EXPERT', title='B7L1L RP_2_1 position', xbins=200, xmin=-145., xmax=-125.)
-
-monTool.defineHistogram("od-A7L1U-RP_3_0 position", type='TH1F', path='EXPERT', title='A7L1U RP_3_0 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-A7L1U-RP_3_1 position", type='TH1F', path='EXPERT', title='A7L1U RP_3_1 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-A7L1U-distance_3_4_side_0", type='TH1F', path='EXPERT', title='A7L1U distance_3_4_side_0', xbins=401, xmin=-20.05, xmax=20.05)
-monTool.defineHistogram("od-A7L1U-distance_3_4_side_1", type='TH1F', path='EXPERT', title='A7L1U distance_3_4_side_1', xbins=401, xmin=-20.05, xmax=20.05)
-
-monTool.defineHistogram("od-A7L1L-RP_4_0 position", type='TH1F', path='EXPERT', title='A7L1L RP_4_0 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-A7L1L-RP_4_1 position", type='TH1F', path='EXPERT', title='A7L1L RP_4_1 position', xbins=200, xmin=-145., xmax=-125.)
-
-monTool.defineHistogram("od-A7R1U-RP_5_0 position", type='TH1F', path='EXPERT', title='A7R1U RP_5_0 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-A7R1U-RP_5_1 position", type='TH1F', path='EXPERT', title='A7R1U RP_5_1 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-A7R1U-distance_5_6_side_0", type='TH1F', path='EXPERT', title='A7R1U distance_5_6_side_0', xbins=401, xmin=-20.05, xmax=20.05)
-monTool.defineHistogram("od-A7R1U-distance_5_6_side_1", type='TH1F', path='EXPERT', title='A7R1U distance_5_6_side_1', xbins=401, xmin=-20.05, xmax=20.05)
-
-monTool.defineHistogram("od-A7R1L-RP_6_0 position", type='TH1F', path='EXPERT', title='A7R1L RP_6_0 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-A7R1L-RP_6_1 position", type='TH1F', path='EXPERT', title='A7R1L RP_6_1 position', xbins=200, xmin=-145., xmax=-125.)
-
-monTool.defineHistogram("od-B7R1U-RP_7_0 position", type='TH1F', path='EXPERT', title='B7R1U RP_7_0 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-B7R1U-RP_7_1 position", type='TH1F', path='EXPERT', title='B7R1U RP_7_1 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-B7R1U-distance_7_8_side_0", type='TH1F', path='EXPERT', title='B7R1U distance_7_8_side_0', xbins=401, xmin=-20.05, xmax=20.05)
-monTool.defineHistogram("od-B7R1U-distance_7_8_side_1", type='TH1F', path='EXPERT', title='B7R1U distance_7_8_side_1', xbins=401, xmin=-20.05, xmax=20.05)
-
-monTool.defineHistogram("od-B7R1L-RP_8_0 position", type='TH1F', path='EXPERT', title='B7R1L RP_8_0 position', xbins=200, xmin=-145., xmax=-125.)
-monTool.defineHistogram("od-B7R1L-RP_8_1 position", type='TH1F', path='EXPERT', title='B7R1L RP_8_1 position', xbins=200, xmin=-145., xmax=-125.)
+monToolCommon.defineHistogram("com_LB,goodDataAssessmentLB15", type='TH2F', path='EXPERT', title='goodDataAssessmentLB15', xbins=1000, xmin=-0.5, xmax=999.5, ybins=2, ymin=0.5, ymax=2.5 )
+monToolCommon.defineHistogram("com_LB,goodDataAssessmentLB18", type='TH2F', path='EXPERT', title='goodDataAssessmentLB18', xbins=1000, xmin=-0.5, xmax=999.5, ybins=2, ymin=0.5, ymax=2.5 )
+monToolCommon.defineHistogram("com_goodDataAssessment",        type='TH1F', path='EXPERT', title='goodDataAssessment',     xbins=10,   xmin=-0.5, xmax=9.5 )
+
+stations = ['B7L1U', 'B7L1L', 'A7L1U', 'A7L1L', 'A7R1U', 'A7R1L', 'B7R1U', 'B7R1L']
+for station in stations:
+	#detector
+   monToolDetectors.defineHistogram(station + "_,PMF", type='TH2F', path='EXPERT', title=station + " activity;channels;PMF", xbins=64, xmin=0., xmax=64., ybins=23, ymin=1.,ymax=24.)
+
+   if station.find("U") is not -1:
+      monToolTrackingElast.defineHistogram("elastic_" + station + ",y", type='TH2F', path='EXPERT', title=station + " f elastic;x;y",              xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
+      monToolTrackingAny.defineHistogram("ANY_" + station + ",y", type='TH2F', path='EXPERT', title=station + " f ANY;x;y",                        xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
+      monToolTrackingElast_SB.defineHistogram("elastic_" + station + "_SB,y", type='TH2F', path='EXPERT', title=station + " SB elastic ;x;y",      xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
+      monToolTrackingAny_SB.defineHistogram("ANY_" + station + "_SB,y", type='TH2F', path='EXPERT', title=station + " SB ANY;x;y",                 xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.)
+      monToolTrackingElast_1LB.defineHistogram("elastic_" + station + "_1LB,y", type='TH2F', path='EXPERT', title=station + " 1LB elastic ;x;y",   xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.,opt='kLBNHistoryDepth=1')
+      monToolTrackingAny_1LB.defineHistogram("ANY_" + station + "_1LB,y", type='TH2F', path='EXPERT', title=station + " 1LB ANY;x;y",              xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.,opt='kLBNHistoryDepth=1')
+      monToolTrackingElast_10LB.defineHistogram("elastic_" + station + "_10LB,y", type='TH2F', path='EXPERT', title=station + " 10LB elastic;x;y", xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.,opt='kLBNHistoryDepth=10')
+      monToolTrackingAny_10LB.defineHistogram("ANY_" + station + "_10LB,y", type='TH2F', path='EXPERT', title=station + " 10LB ANY;x;y",           xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.,opt='kLBNHistoryDepth=10')
+      monToolTrackingElast_60LB.defineHistogram("elastic_" + station + "_60LB,y", type='TH2F', path='EXPERT', title=station + " 60LB elastic;x;y", xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.,opt='kLBNHistoryDepth=60')
+      monToolTrackingAny_60LB.defineHistogram("ANY_" + station + "_60LB,y", type='TH2F', path='EXPERT', title=station + " 60LB ANY;x;y",           xbins=260, xmin=-23., xmax=23., ybins=175, ymin=0.,ymax=35.,opt='kLBNHistoryDepth=60')
+   else:
+      monToolTrackingElast.defineHistogram     ("elastic_" + station + ",y", type='TH2F', path='EXPERT', title=station + " f elastic;x;y",         xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
+      monToolTrackingAny.defineHistogram       ("ANY_" + station + ",y", type='TH2F', path='EXPERT', title=station + " f ANY;x;y",                 xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
+      monToolTrackingElast_SB.defineHistogram  ("elastic_" + station + "_SB,y", type='TH2F', path='EXPERT', title=station + " SB elastic ;x;y",    xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
+      monToolTrackingAny_SB.defineHistogram    ("ANY_" + station + "_SB,y", type='TH2F', path='EXPERT', title=station + " SB ANY;x;y",             xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.)
+      monToolTrackingElast_1LB.defineHistogram ("elastic_" + station + "_1LB,y", type='TH2F', path='EXPERT', title=station + " 1LB elastic ;x;y",  xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.,opt='kLBNHistoryDepth=1')
+      monToolTrackingAny_1LB.defineHistogram   ("ANY_" + station + "_1LB,y", type='TH2F', path='EXPERT', title=station + " 1LB ANY;x;y",           xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.,opt='kLBNHistoryDepth=1')
+      monToolTrackingElast_10LB.defineHistogram("elastic_" + station + "_10LB,y", type='TH2F', path='EXPERT', title=station + " 10LB elastic;x;y", xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.,opt='kLBNHistoryDepth=10')
+      monToolTrackingAny_10LB.defineHistogram  ("ANY_" + station + "_10LB,y", type='TH2F', path='EXPERT', title=station + " 10LB ANY;x;y",         xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.,opt='kLBNHistoryDepth=10')
+      monToolTrackingElast_60LB.defineHistogram("elastic_" + station + "_60LB,y", type='TH2F', path='EXPERT', title=station + " 60LB elastic;x;y", xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.,opt='kLBNHistoryDepth=60')
+      monToolTrackingAny_60LB.defineHistogram  ("ANY_" + station + "_60LB,y", type='TH2F', path='EXPERT', title=station + " 60LB ANY;x;y",         xbins=260, xmin=-23., xmax=23., ybins=175, ymin=-35.,ymax=0.,opt='kLBNHistoryDepth=60')
+
+monToolOD_B7L1U.defineHistogram("od_B7L1U_RP_1_0 position", type='TH1F', path='EXPERT', title='B7L1U RP_1_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7L1U.defineHistogram("od_B7L1U_RP_1_1 position", type='TH1F', path='EXPERT', title='B7L1U RP_1_1 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7L1U.defineHistogram("od_B7L1U_distance_1_2_side_0", type='TH1F', path='EXPERT', title='B7L1U distance_1_2_side_0', xbins=401, xmin=-20.05, xmax=20.05)
+monToolOD_B7L1U.defineHistogram("od_B7L1U_distance_1_2_side_1", type='TH1F', path='EXPERT', title='B7L1U distance_1_2_side_1', xbins=401, xmin=-20.05, xmax=20.05)
+
+monToolOD_B7L1L.defineHistogram("od_B7L1L_RP_2_0 position", type='TH1F', path='EXPERT', title='B7L1L RP_2_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7L1L.defineHistogram("od_B7L1L_RP_2_1 position", type='TH1F', path='EXPERT', title='B7L1L RP_2_1 position', xbins=200, xmin=-145., xmax=-125.)
+
+monToolOD_B7L1U.defineHistogram("od_B7L1U_RP_1_0 position", type='TH1F', path='EXPERT', title='B7L1U RP_1_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7L1U.defineHistogram("od_B7L1U_RP_1_1 position", type='TH1F', path='EXPERT', title='B7L1U RP_1_1 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7L1U.defineHistogram("od_B7L1U_distance_1_2_side_0", type='TH1F', path='EXPERT', title='B7L1U distance_1_2_side_0', xbins=401, xmin=-20.05, xmax=20.05)
+monToolOD_B7L1U.defineHistogram("od_B7L1U_distance_1_2_side_1", type='TH1F', path='EXPERT', title='B7L1U distance_1_2_side_1', xbins=401, xmin=-20.05, xmax=20.05)
+
+monToolOD_B7L1L.defineHistogram("od_B7L1L_RP_2_0 position", type='TH1F', path='EXPERT', title='B7L1L RP_2_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7L1L.defineHistogram("od_B7L1L_RP_2_1 position", type='TH1F', path='EXPERT', title='B7L1L RP_2_1 position', xbins=200, xmin=-145., xmax=-125.)
+
+monToolOD_A7L1U.defineHistogram("od_A7L1U_RP_3_0 position", type='TH1F', path='EXPERT', title='A7L1U RP_3_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_A7L1U.defineHistogram("od_A7L1U_RP_3_1 position", type='TH1F', path='EXPERT', title='A7L1U RP_3_1 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_A7L1U.defineHistogram("od_A7L1U_distance_3_4_side_0", type='TH1F', path='EXPERT', title='A7L1U distance_3_4_side_0', xbins=401, xmin=-20.05, xmax=20.05)
+monToolOD_A7L1U.defineHistogram("od_A7L1U_distance_3_4_side_1", type='TH1F', path='EXPERT', title='A7L1U distance_3_4_side_1', xbins=401, xmin=-20.05, xmax=20.05)
+
+monToolOD_A7L1L.defineHistogram("od_A7L1L_RP_4_0 position", type='TH1F', path='EXPERT', title='A7L1L RP_4_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_A7L1L.defineHistogram("od_A7L1L_RP_4_1 position", type='TH1F', path='EXPERT', title='A7L1L RP_4_1 position', xbins=200, xmin=-145., xmax=-125.)
+
+monToolOD_A7R1U.defineHistogram("od_A7R1U_RP_5_0 position", type='TH1F', path='EXPERT', title='A7R1U RP_5_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_A7R1U.defineHistogram("od_A7R1U_RP_5_1 position", type='TH1F', path='EXPERT', title='A7R1U RP_5_1 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_A7R1U.defineHistogram("od_A7R1U_distance_5_6_side_0", type='TH1F', path='EXPERT', title='A7R1U distance_5_6_side_0', xbins=401, xmin=-20.05, xmax=20.05)
+monToolOD_A7R1U.defineHistogram("od_A7R1U_distance_5_6_side_1", type='TH1F', path='EXPERT', title='A7R1U distance_5_6_side_1', xbins=401, xmin=-20.05, xmax=20.05)
+
+monToolOD_A7R1L.defineHistogram("od_A7R1L_RP_6_0 position", type='TH1F', path='EXPERT', title='A7R1L RP_6_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_A7R1L.defineHistogram("od_A7R1L_RP_6_1 position", type='TH1F', path='EXPERT', title='A7R1L RP_6_1 position', xbins=200, xmin=-145., xmax=-125.)
+
+monToolOD_B7R1U.defineHistogram("od_B7R1U_RP_7_0 position", type='TH1F', path='EXPERT', title='B7R1U RP_7_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7R1U.defineHistogram("od_B7R1U_RP_7_1 position", type='TH1F', path='EXPERT', title='B7R1U RP_7_1 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7R1U.defineHistogram("od_B7R1U_distance_7_8_side_0", type='TH1F', path='EXPERT', title='B7R1U distance_7_8_side_0', xbins=401, xmin=-20.05, xmax=20.05)
+monToolOD_B7R1U.defineHistogram("od_B7R1U_distance_7_8_side_1", type='TH1F', path='EXPERT', title='B7R1U distance_7_8_side_1', xbins=401, xmin=-20.05, xmax=20.05)
+
+monToolOD_B7R1L.defineHistogram("od_B7R1L_RP_8_0 position", type='TH1F', path='EXPERT', title='B7R1L RP_8_0 position', xbins=200, xmin=-145., xmax=-125.)
+monToolOD_B7R1L.defineHistogram("od_B7R1L_RP_8_1 position", type='TH1F', path='EXPERT', title='B7R1L RP_8_1 position', xbins=200, xmin=-145., xmax=-125.)
+
+# background monitoring hstograms
+bckg_armSets = ['L1U', 'L1D', 'R1U','R1D']
+bckg_triggers = ['elast15', 'elast18', 'syst17', 'syst18']
+xcxAxis = ["x_{3} [mm]", "x_{4} [mm]", "x_{6} [mm]", "x_{5} [mm]"]
+ycxAxis = ["x_{1} [mm]", "x_{2} [mm]", "x_{8} [mm]", "x_{7} [mm]"]
+xcyAxis = ["y_{3} [mm]", "y_{4} [mm]", "y_{6} [mm]", "y_{5} [mm]"]
+ycyAxis = ["y_{1} [mm]", "y_{2} [mm]", "y_{8} [mm]", "y_{7} [mm]"]
+xaxAxis = ["x_{3} [mm]", "x_{4} [mm]", "x_{5} [mm]", "x_{6} [mm]"]
+yaxAxis = ["#theta_{x} [#murad]", "#theta_{x} [#murad]", "#theta_{x} [#murad]", "#theta_{x} [#murad]"]
+xayAxis = ["y_{3} [mm]", "y_{4} [mm]", "y_{5} [mm]", "y_{6} [mm]"]
+yayAxis = ["#theta_{y} [#murad]", "#theta_{y} [#murad]", "#theta_{y} [#murad]", "#theta_{y} [#murad]"]
+
+for trigger in bckg_triggers:
+   for station in bckg_armSets:
+      if (trigger.find('elast15') != -1) and ((station.find('L1D') != -1) or (station.find('R1U') != -1)):  # golden 1: exclude bottom left top righ
+         continue
+      if (trigger.find('elast18') != -1) and ((station.find('L1U') != -1) or (station.find('R1D') != -1)):  # golden 2: exclude top left bottom right
+         continue
+      if (trigger.find('syst17') != -1) and ((station.find('L1D') != -1) or (station.find('R1D') != -1)):   # antigolden 1: exclude both lowe
+         continue
+      if (trigger.find('syst18') != -1) and ((station.find('L1U') != -1) or (station.find('R1U') != -1)):   # antigolden 2: exclude both upper
+         continue
+
+      if (trigger.find('elast15') != -1):
+         monToolBckg_1LB = monToolBackgroundElast15_1LB
+         monToolBckg_10LB = monToolBackgroundElast15_10LB
+         monToolBckg_60LB = monToolBackgroundElast15_60LB
+         monToolBckg = monToolBackgroundElast15
+      if (trigger.find('elast18') != -1):
+         monToolBckg_10LB = monToolBackgroundElast18_10LB
+         monToolBckg_60LB = monToolBackgroundElast18_60LB
+         monToolBckg = monToolBackgroundElast18
+         monToolBckg_1LB = monToolBackgroundElast18_1LB
+      if (trigger.find('syst17') != -1):
+         monToolBckg_60LB = monToolBackgroundSyst17_60LB
+         monToolBckg = monToolBackgroundSyst17
+         monToolBckg_1LB = monToolBackgroundSyst17_1LB
+         monToolBckg_10LB = monToolBackgroundSyst17_10LB
+      if (trigger.find('syst18') != -1):
+         monToolBckg_1LB = monToolBackgroundSyst18_1LB
+         monToolBckg_10LB = monToolBackgroundSyst18_10LB
+         monToolBckg_60LB = monToolBackgroundSyst18_60LB
+         monToolBckg = monToolBackgroundSyst18
+
+      monToolBckg.defineHistogram(trigger+'_x_'+station+',y', type='TH2F', path='EXPERT', title=trigger+'_x_'+station+';'+xcxAxis[bckg_armSets.index(station)]+';'+ycxAxis[bckg_armSets.index(station)], xbins=200, xmin=-12., xmax=12., ybins=200, ymin=-12., ymax=12.)
+      monToolBckg.defineHistogram(trigger+'_y_'+station+',y', type='TH2F', path='EXPERT', title=trigger+'_y_'+station+';'+xcyAxis[bckg_armSets.index(station)]+';'+ycyAxis[bckg_armSets.index(station)], xbins=200, xmin=-25., xmax=25., ybins=200, ymin=-25., ymax=25.)
+      monToolBckg.defineHistogram(trigger+'_ax_'+station+',y', type='TH2F', path='EXPERT', title=trigger+'_ax_'+station+';'+xaxAxis[bckg_armSets.index(station)]+';'+yaxAxis[bckg_armSets.index(station)], xbins=200, xmin=-12., xmax=12., ybins=200, ymin=-1500., ymax=1500.)
+      monToolBckg.defineHistogram(trigger+'_ay_'+station+',y', type='TH2F', path='EXPERT', title=trigger+'_ay_'+station+';'+xcyAxis[bckg_armSets.index(station)]+';'+yayAxis[bckg_armSets.index(station)], xbins=200, xmin=-25., xmax=25., ybins=200, ymin=-2000., ymax=2000.)
+
+      monToolBckg_1LB.defineHistogram(trigger+'_x_'+station+'_1LB,y', type='TH2F', path='EXPERT', title=trigger+'_x_'+station+'_1LB;'+xcxAxis[bckg_armSets.index(station)]+';'+ycxAxis[bckg_armSets.index(station)], xbins=200, xmin=-12., xmax=12., ybins=200, ymin=-12., ymax=12. ,opt='kLBNHistoryDepth=1')
+      monToolBckg_1LB.defineHistogram(trigger+'_y_'+station+'_1LB,y', type='TH2F', path='EXPERT', title=trigger+'_y_'+station+'_1LB;'+xcyAxis[bckg_armSets.index(station)]+';'+ycyAxis[bckg_armSets.index(station)], xbins=200, xmin=-25., xmax=25., ybins=200, ymin=-25., ymax=25. ,opt='kLBNHistoryDepth=1')
+      monToolBckg_1LB.defineHistogram(trigger+'_ax_'+station+'_1LB,y', type='TH2F', path='EXPERT', title=trigger+'_ax_'+station+'_1LB;'+xaxAxis[bckg_armSets.index(station)]+';'+yaxAxis[bckg_armSets.index(station)], xbins=200, xmin=-12., xmax=12., ybins=200, ymin=-1500., ymax=1500. ,opt='kLBNHistoryDepth=1')
+      monToolBckg_1LB.defineHistogram(trigger+'_ay_'+station+'_1LB,y', type='TH2F', path='EXPERT', title=trigger+'_ay_'+station+'_1LB;'+xcyAxis[bckg_armSets.index(station)]+';'+yayAxis[bckg_armSets.index(station)], xbins=200, xmin=-25., xmax=25., ybins=200, ymin=-2000., ymax=2000. ,opt='kLBNHistoryDepth=1')
+
+      monToolBckg_10LB.defineHistogram(trigger+'_x_'+station+'_10LB,y', type='TH2F', path='EXPERT', title=trigger+'_x_'+station+'_10LB;'+xcxAxis[bckg_armSets.index(station)]+';'+ycxAxis[bckg_armSets.index(station)], xbins=200, xmin=-12., xmax=12., ybins=200, ymin=-12., ymax=12. ,opt='kLBNHistoryDepth=10') 
+      monToolBckg_10LB.defineHistogram(trigger+'_y_'+station+'_10LB,y', type='TH2F', path='EXPERT', title=trigger+'_y_'+station+'_10LB;'+xcyAxis[bckg_armSets.index(station)]+';'+ycyAxis[bckg_armSets.index(station)], xbins=200, xmin=-25., xmax=25., ybins=200, ymin=-25., ymax=25. ,opt='kLBNHistoryDepth=10') 
+      monToolBckg_10LB.defineHistogram(trigger+'_ax_'+station+'_10LB,y', type='TH2F', path='EXPERT', title=trigger+'_ax_'+station+'_10LB;'+xaxAxis[bckg_armSets.index(station)]+';'+yaxAxis[bckg_armSets.index(station)], xbins=200, xmin=-12., xmax=12., ybins=200, ymin=-1500., ymax=1500. ,opt='kLBNHistoryDepth=10')
+      monToolBckg_10LB.defineHistogram(trigger+'_ay_'+station+'_10LB,y', type='TH2F', path='EXPERT', title=trigger+'_ay_'+station+'_10LB;'+xcyAxis[bckg_armSets.index(station)]+';'+yayAxis[bckg_armSets.index(station)], xbins=200, xmin=-25., xmax=25., ybins=200, ymin=-2000., ymax=2000. ,opt='kLBNHistoryDepth=10')
 
+      monToolBckg_60LB.defineHistogram(trigger+'_x_'+station+'_60LB,y', type='TH2F', path='EXPERT', title=trigger+'_x_'+station+'_60LB;'+xcxAxis[bckg_armSets.index(station)]+';'+ycxAxis[bckg_armSets.index(station)], xbins=200, xmin=-12., xmax=12., ybins=200, ymin=-12., ymax=12. ,opt='kLBNHistoryDepth=60')
+      monToolBckg_60LB.defineHistogram(trigger+'_y_'+station+'_60LB,y', type='TH2F', path='EXPERT', title=trigger+'_y_'+station+'_60LB;'+xcyAxis[bckg_armSets.index(station)]+';'+ycyAxis[bckg_armSets.index(station)], xbins=200, xmin=-25., xmax=25., ybins=200, ymin=-25., ymax=25. ,opt='kLBNHistoryDepth=60')
+      monToolBckg_60LB.defineHistogram(trigger+'_ax_'+station+'_60LB,y', type='TH2F', path='EXPERT', title=trigger+'_ax_'+station+'_60LB;'+xaxAxis[bckg_armSets.index(station)]+';'+yaxAxis[bckg_armSets.index(station)], xbins=200, xmin=-12., xmax=12., ybins=200, ymin=-1500., ymax=1500. ,opt='kLBNHistoryDepth=60')
+      monToolBckg_60LB.defineHistogram(trigger+'_ay_'+station+'_60LB,y', type='TH2F', path='EXPERT', title=trigger+'_ay_'+station+'_60LB;'+xcyAxis[bckg_armSets.index(station)]+';'+yayAxis[bckg_armSets.index(station)], xbins=200, xmin=-25., xmax=25., ybins=200, ymin=-2000., ymax=2000. ,opt='kLBNHistoryDepth=60')
 #ALFAROBMonitor.MonTool = monTool
 
-topSequence.ALFAROBMonitor.MonTool = monTool
+#topSequence.ALFAROBMonitor.MonTool = [monTool, monTool1]
 #--------------------------------------------------------------
 # Private Application Configuration options
 #--------------------------------------------------------------
diff --git a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.cxx b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.cxx
index 0397881a3b8..5e2bd01d2c1 100755
--- a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.cxx
+++ b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.cxx
@@ -37,7 +37,8 @@
 #include <TH1F.h>
 #include <TH2F.h>
 #include <TProfile2D.h>
- 
+
+
 ////////////////////////////////////////////////////////////////////////////
 
 TrigALFAROBMonitor::TrigALFAROBMonitor(const std::string& name, ISvcLocator* pSvcLocator) :
@@ -104,34 +105,8 @@ TrigALFAROBMonitor::TrigALFAROBMonitor(const std::string& name, ISvcLocator* pSv
  m_map_TrgNamesToHistGroups["L1_ALFA_ELAST15"] = 0;
  m_map_TrgNamesToHistGroups["L1_ALFA_ELAST18"] = 0;
 
- m_map_TrgNamesToHistGroups["L1_ALFA_ELAST15_Calib"] = 1;
- m_map_TrgNamesToHistGroups["L1_ALFA_ELAST18_Calib"] = 1;
-
- m_map_TrgNamesToHistGroups["L1_ALFA_SDIFF5"] = 2;
- m_map_TrgNamesToHistGroups["L1_ALFA_SDIFF6"] = 2;
- m_map_TrgNamesToHistGroups["L1_ALFA_SDIFF7"] = 2;
- m_map_TrgNamesToHistGroups["L1_ALFA_SDIFF8"] = 2;
-
- m_map_TrgNamesToHistGroups["L1_MBTS_1_A_ALFA_C"] = 3;
- m_map_TrgNamesToHistGroups["L1_MBTS_1_C_ALFA_A"] = 3;
-
- m_map_TrgNamesToHistGroups["L1_LUCID_A_ALFA_C"] = 4;
- m_map_TrgNamesToHistGroups["L1_LUCID_C_ALFA_A"] = 4;
-
- m_map_TrgNamesToHistGroups["L1_EM3_ALFA_ANY"] = 5;
-
- m_map_TrgNamesToHistGroups["L1_J12_ALFA_ANY"] = 6;
-
- m_map_TrgNamesToHistGroups["L1_TRT_ALFA_ANY"] = 7;
+ m_map_TrgNamesToHistGroups["L1_ALFA_ANY"] = 1;
 
- m_map_TrgNamesToHistGroups["L1_ALFA_ANY"] = 8;
-
- m_map_TrgNamesToHistGroups["L1_ALFA_ANY_UNPAIRED_ISO"] = 9;
-
- m_map_TrgNamesToHistGroups["L1_ALFA_ANY_CALIB"] = 10;
-
- m_map_TrgNamesToHistGroups["L1_ALFA_ANY_A_EMPTY"] = 11;
- m_map_TrgNamesToHistGroups["L1_ALFA_ANY_C_EMPTY"] = 11;
 }
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
@@ -186,7 +161,7 @@ StatusCode TrigALFAROBMonitor::initialize(){
 
   ATH_CHECK( m_L1MenuKey.initialize() );
 
-  if (!m_monTool.empty()) CHECK(m_monTool.retrieve());
+  ATH_CHECK( m_monTools.retrieve() );
 
   ATH_MSG_INFO("Initialize completed");
   return StatusCode::SUCCESS;
@@ -198,8 +173,6 @@ StatusCode TrigALFAROBMonitor::execute (const EventContext& ctx) const {
 
   uint32_t  LB; // luminosity block number
   uint32_t previousEventLB(99999); // luminosity block number of the previous events
-  uint32_t prevLB10reset = 0;   // LB at which previous reset of 10LB histograms happened
-  uint32_t prevLB60reset = 0;   // LB  -- 60LB histograms were reset
   uint32_t prescKey(-999); // current hlt prescale key
   bool SBflag(false);
 
@@ -218,56 +191,20 @@ StatusCode TrigALFAROBMonitor::execute (const EventContext& ctx) const {
     return StatusCode::SUCCESS;
   }
 
-  // get EventInfo - in new athena MT EventContext shoudl be used.
- /*
-  const EventInfo* p_EventInfo(0);
-  StatusCode sc = evtStore()->retrieve(p_EventInfo);
-  if(sc.isFailure()){
-      ATH_MSG_ERROR("Can't get EventIinfo object");
-      return StatusCode::SUCCESS;
-  }
-  */
-    
-  //--------------------------------------------------------------------------
-  // take only events with alfaCalibrationStream tag  
-  //--------------------------------------------------------------------------
-  // if this algo will be used in regular HLT chain - then the chain selection will provide only events triggered by ALFA and with tag of ALFA_calib stream
- /*
-  bool eventInCalibStream = false;
-  typedef std::vector< TriggerInfo::StreamTag > StreamTagVector_t;
-  StreamTagVector_t vecStreamTags = p_EventInfo->trigger_info()->streamTags();
-  for (std::vector<TriggerInfo::StreamTag>::iterator iter = vecStreamTags.begin(); iter!=vecStreamTags.end(); iter++) {
-         if ((*iter).name().compare(m_calibrationStreamName.value()) == 0 ){
-             eventInCalibStream = true;
-             break;
-         }
-  }
-  if (!eventInCalibStream) {
-       //ATH_MSG_INFO ("event not tagged for calibration stream - return without ROS data request ");
-    return StatusCode::SUCCESS;
-  }
-*/
-
-
   bool event_with_checksum_failure(false);
   
   //ATH_MSG_INFO ("new event");
   // get EventID
-
   //const EventID* p_EventID = p_EventInfo->event_ID();
+
   const EventIDBase p_EventIDBase = ctx.eventID();
   LB = p_EventIDBase.lumi_block();
-  ATH_MSG_INFO(" Decoded lumi block nb: " <<LB);
+  ATH_MSG_DEBUG(" Decoded lumi block nb: " <<LB);
 
   if (previousEventLB >= 99999) {
     previousEventLB = LB;  // first event
-    prevLB10reset = LB;
-    prevLB60reset = LB;
   } else {
      if (LB > previousEventLB){ // new LB
-        reset1LBhistos();
-        if ((LB - prevLB10reset) > 10 ) {reset10LBhistos(); prevLB10reset = LB;};
-        if ((LB - prevLB60reset) > 60 ) {reset60LBhistos(); prevLB60reset = LB;};
         uint32_t newPrescKey = m_configSvc->hltPrescaleKey();
         if (newPrescKey != prescKey) {
              ATH_MSG_INFO ("HLT prescale key changed to "<<newPrescKey );
@@ -300,14 +237,14 @@ StatusCode TrigALFAROBMonitor::execute (const EventContext& ctx) const {
 
   // Now try to extract L1 decisons from ROIB fragment
   if(!evtStore()->contains<ROIB::RoIBResult>(m_keyRBResult)) {
-       ATH_MSG_DEBUG("RoIBResult does not exist with key: " << m_keyRBResult);
+       ATH_MSG_INFO("RoIBResult does not exist with key: " << m_keyRBResult);
   }
 
   const ROIB::RoIBResult* roIBResult=0;
   StatusCode sc = evtStore()->retrieve(roIBResult,m_keyRBResult);
 
   if(sc.isFailure()){
-    ATH_MSG_DEBUG(" Unable to retrieve RoIBResult from storeGate!");
+    ATH_MSG_INFO(" Unable to retrieve RoIBResult from storeGate!");
                return StatusCode::SUCCESS; //HLT::NO_LVL1_RESULT;
   } else {
     const std::vector<ROIB::CTPRoI> ctpRoIVecAV = roIBResult->cTPResult().TAV();
@@ -364,7 +301,6 @@ StatusCode TrigALFAROBMonitor::execute (const EventContext& ctx) const {
     if (p_EventInfo) {
       StreamTagVector_t vecStreamTags = p_EventInfo->trigger_info()->streamTags();
       vecStreamTags.push_back( TriggerInfo::StreamTag(m_debugStreamName,"debug",false) );
-      // FIXME: const_cast
       const_cast<TriggerInfo*>(p_EventInfo->trigger_info())->setStreamTags(vecStreamTags);
     }
   }
@@ -397,7 +333,10 @@ StatusCode TrigALFAROBMonitor::start() {
         m_map_TrgItemNumbersToHistGroups[item.ctpId()] = it->second;
         // locate golden alfa triggers for data quality assesment base on the ratio of tracks in elastic triggered events
         if (item.name().compare("L1_ALFA_ELAST15") == 0) { m_elast15 = item.ctpId(); continue; }
-        if (item.name().compare("L1_ALFA_ELAST18") == 0) m_elast18 = item.ctpId();
+        if (item.name().compare("L1_ALFA_ELAST18") == 0) { m_elast18 = item.ctpId(); continue; }
+        if (item.name().compare("L1_ALFA_SYST17")  == 0) { m_syst17  = item.ctpId(); continue; }
+        if (item.name().compare("L1_ALFA_SYST18")  == 0)   m_syst18  = item.ctpId();
+
       }
     }
   }
@@ -412,8 +351,6 @@ StatusCode TrigALFAROBMonitor::start() {
   // Define histograms only when checks are requested
   if ((not m_doROBChecksum.value()) && (not m_doROBStatus.value())) return StatusCode::SUCCESS;
 
-  ATH_MSG_DEBUG("TrigALFAROBMonitor::start() 3");
-
   // *-- booking path
   m_pathHisto = std::string("/EXPERT/") + name() + "/";
 
@@ -422,194 +359,6 @@ StatusCode TrigALFAROBMonitor::start() {
   //eformat::helper::SourceIdentifier srcID_CTP( eformat::TDAQ_CTP ,0);
   //eformat::helper::SourceIdentifier srcID_HLT( eformat::TDAQ_HLT, 0);
 
-  if ( m_doROBChecksum.value() ) {
-    // *-- ROBs with failed checksum
-    m_hist_failedChecksumForALFAROB = new TH1F (m_histProp_failedChecksumForALFAROB.value().title().c_str(),
-					       (m_histProp_failedChecksumForALFAROB.value().title()+";ALFA ROB id").c_str(),
-					        m_histProp_failedChecksumForALFAROB.value().bins(),
-					        m_histProp_failedChecksumForALFAROB.value().lowEdge(),
-					        m_histProp_failedChecksumForALFAROB.value().highEdge());
-    if (m_hist_failedChecksumForALFAROB) {
-      m_hist_failedChecksumForALFAROB->SetCanExtend(TH1::kAllAxes);
-      if( m_rootHistSvc->regHist(m_pathHisto + "common/" + m_hist_failedChecksumForALFAROB->GetName(), m_hist_failedChecksumForALFAROB).isFailure() ) {
-	ATH_MSG_WARNING("Can not register ALFA ROB checksum monitoring histogram: " << m_hist_failedChecksumForALFAROB->GetName());
-      }
-    }
-  }
-
-  if ( m_doDataGoodMonitoring.value() ) {
-    // *-- book histo to assess fraction of elastic triggered events with elastic tracks candidates
-    std::string histTitle = "goodDataAssessment";
-    m_hist_goodData = new TH1F (histTitle.c_str(), (histTitle + " elastics").c_str(), 10, -0.5, 9.5);
-    if (m_hist_goodData) {
-      m_hist_goodData->SetCanExtend(TH1::kAllAxes);
-      if( m_rootHistSvc->regHist(m_pathHisto + "common/" + m_hist_goodData->GetName(), m_hist_goodData).isFailure() ) {
-	ATH_MSG_WARNING("Can not register ALFA ROB good data elastic monitoring histogram: " << m_hist_goodData->GetName());
-      }
-    }
-    histTitle = "goodDataAssessmentLB15";
-    m_hist_goodDataLB15 = new TH2F (histTitle.c_str(), (histTitle + " elasticsLB").c_str(), 1000, -0.5, 999.5, 2, 0.5, 2.5);
-    if( m_rootHistSvc->regHist(m_pathHisto + "common/" + m_hist_goodDataLB15->GetName(), m_hist_goodDataLB15).isFailure() ) {
-	ATH_MSG_WARNING("Can not register ALFA ROB good data elastic LB 15 monitoring histogram: " << m_hist_goodDataLB15->GetName());
-    }
-    histTitle = "goodDataAssessmentLB18";
-    m_hist_goodDataLB18 = new TH2F (histTitle.c_str(), (histTitle + " elasticsLB").c_str(), 1000, -0.5, 999.5, 2, 0.5, 2.5);
-    if( m_rootHistSvc->regHist(m_pathHisto + "common/" + m_hist_goodDataLB18->GetName(), m_hist_goodDataLB18).isFailure() ) {
-	ATH_MSG_WARNING("Can not register ALFA ROB good data elastic LB 18 monitoring histogram: " << m_hist_goodDataLB18->GetName());
-    }
-    histTitle = "corruptedROD";
-    m_hist_corruptedROD_LB = new TH2F (histTitle.c_str(), (histTitle + " perLB").c_str(), 1000, -0.5, 999.5, 2, -0.5, 1.5);
-    if( m_rootHistSvc->regHist(m_pathHisto + "common/" + m_hist_corruptedROD_LB->GetName(), m_hist_corruptedROD_LB).isFailure() ) {
-	ATH_MSG_WARNING("Can not register ALFA ROB good data elastic LB 18 monitoring histogram: " << m_hist_corruptedROD_LB->GetName());
-    }
-  }
-
-
-  if ( m_doALFATracking.value() ) {
-     std::string histTitle;
-
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-              histTitle = m_stationNames[station] + "_f_" + m_trigConditions[trgCond];
-              m_hist_ALFA_trig_validated_tracks[trgCond][station] = new TH2F (histTitle.c_str(), (histTitle).c_str(),
-                                                                                    260,-23,23,175,m_y_min[station%2],m_y_max[station%2]); 
-              if (m_hist_ALFA_trig_validated_tracks[trgCond][station]) {
-                 if( m_rootHistSvc->regHist(m_pathHisto + "tracking/full/" + m_trigConditions[trgCond] + "/" + m_stationNames[station] , 
-                        m_hist_ALFA_trig_validated_tracks[trgCond][station]).isFailure() ) {
-                       ATH_MSG_WARNING("Can not register ALFA tracking histogram: " 
-                                   << (m_hist_ALFA_trig_validated_tracks[trgCond][station])->GetName());
-                 }
-              }
-         }
-     }
-
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-              histTitle = m_stationNames[station] + "_f_SB_" + m_trigConditions[trgCond];
-              m_hist_ALFA_trig_validated_tracks_SB[trgCond][station] = new TH2F (histTitle.c_str(), (histTitle).c_str(),
-                                                                                    260,-23,23,175,m_y_min[station%2],m_y_max[station%2]); 
-              if (m_hist_ALFA_trig_validated_tracks_SB[trgCond][station]) {
-                 if( m_rootHistSvc->regHist(m_pathHisto + "tracking/full_SB/" + m_trigConditions[trgCond] + "/" + m_stationNames[station] , 
-                        m_hist_ALFA_trig_validated_tracks_SB[trgCond][station]).isFailure() ) {
-                       ATH_MSG_WARNING("Can not register ALFA tracking histogram: " 
-                                   << (m_hist_ALFA_trig_validated_tracks_SB[trgCond][station])->GetName());
-                 }
-              }
-         }
-     }
-
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-              histTitle = m_stationNames[station] + "_current_" + m_trigConditions[trgCond];
-              m_hist_ALFA_trig_validated_tracks_1LB_current[trgCond][station] = new TH2F (histTitle.c_str(), (histTitle).c_str(),
-                                                                                    260,-23,23,175,m_y_min[station%2],m_y_max[station%2]); 
-              if (m_hist_ALFA_trig_validated_tracks_1LB_current[trgCond][station]) {
-                 if( m_rootHistSvc->regHist(m_pathHisto + "tracking/current/" + m_trigConditions[trgCond] + "/" + m_stationNames[station] , 
-                        m_hist_ALFA_trig_validated_tracks_1LB_current[trgCond][station]).isFailure() ) {
-                       ATH_MSG_WARNING("Can not register ALFA tracking histogram: " 
-                                   << (m_hist_ALFA_trig_validated_tracks_1LB_current[trgCond][station])->GetName());
-                 } 
-              }
-         }
-     }
-
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-              histTitle = m_stationNames[station] + "_1_" + m_trigConditions[trgCond];
-              m_hist_ALFA_trig_validated_tracks_1LB[trgCond][station] = new TH2F (histTitle.c_str(), (histTitle).c_str(),
-                                                                                    260,-23,23,175,m_y_min[station%2],m_y_max[station%2]); 
-              if (m_hist_ALFA_trig_validated_tracks_1LB[trgCond][station]) {
-                 if( m_rootHistSvc->regHist(m_pathHisto + "tracking/reset1LB/" + m_trigConditions[trgCond] + "/" + m_stationNames[station] , 
-                        m_hist_ALFA_trig_validated_tracks_1LB[trgCond][station]).isFailure() ) {
-                       ATH_MSG_WARNING("Can not register ALFA tracking histogram: " 
-                                   << (m_hist_ALFA_trig_validated_tracks_1LB[trgCond][station])->GetName());
-                 } 
-              }
-         }
-     }
-
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-              histTitle = m_stationNames[station] + "_10_" + m_trigConditions[trgCond];
-              m_hist_ALFA_trig_validated_tracks_10LB[trgCond][station] = new TH2F (histTitle.c_str(), (histTitle).c_str(),
-                                                                                    260,-23,23,175,m_y_min[station%2],m_y_max[station%2]); 
-              if (m_hist_ALFA_trig_validated_tracks_10LB[trgCond][station]) {
-                 if( m_rootHistSvc->regHist(m_pathHisto + "tracking/reset10LB/" + m_trigConditions[trgCond] + "/" + m_stationNames[station] , 
-                        m_hist_ALFA_trig_validated_tracks_10LB[trgCond][station]).isFailure() ) {
-                       ATH_MSG_WARNING("Can not register ALFA tracking histogram: " 
-                                   << (m_hist_ALFA_trig_validated_tracks_10LB[trgCond][station])->GetName());
-                 }
-              }
-         }
-     }
-
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-              histTitle = m_stationNames[station] + "_60_" + m_trigConditions[trgCond];
-              m_hist_ALFA_trig_validated_tracks_60LB[trgCond][station] = new TH2F (histTitle.c_str(), (histTitle).c_str(),
-                                                                                    260,-23,23,175,m_y_min[station%2],m_y_max[station%2]); 
-              if (m_hist_ALFA_trig_validated_tracks_60LB[trgCond][station]) {
-                 if( m_rootHistSvc->regHist(m_pathHisto + "tracking/reset60LB/" + m_trigConditions[trgCond] + "/" + m_stationNames[station] , 
-                        m_hist_ALFA_trig_validated_tracks_60LB[trgCond][station]).isFailure() ) {
-                       ATH_MSG_WARNING("Can not register ALFA tracking histogram: " 
-                                   << (m_hist_ALFA_trig_validated_tracks_60LB[trgCond][station])->GetName());
-                 }
-              }
-         }
-     }
-  }
-
-  if ( m_doPMFMonitoring.value() ) {
-
-     std::string histTitle;
-
-     for (uint32_t station = 0; station < 8; station++) {
-         histTitle = "RP_" + std::to_string(station+1) + " PMT_activity";
-         m_hist_pmfMonitoring[station] = new TH2F (histTitle.c_str(), (histTitle + " all PMTs").c_str(), 64,0.,64.,23.,1.,24.);
-              if (m_hist_pmfMonitoring[station]) {
-                 if( m_rootHistSvc->regHist(m_pathHisto + "detectors/"+ m_stationNames[station] + "/" + (m_hist_pmfMonitoring[station])->GetName(), 
-                       m_hist_pmfMonitoring[station]).isFailure() ) {
-                       ATH_MSG_WARNING("Can not register ALFA PMT monitoring histogram: " 
-                                   << (m_hist_pmfMonitoring[station])->GetName());
-                 }
-              }
-     }
-  }
-
-
-  if ( m_doODDistance.value() ) {
-
-     std::string histTitle;
-
-     for (uint32_t iDet = 0; iDet < 8; iDet++) {
-      for (uint32_t iSide=0; iSide<2; iSide++) {
-         histTitle = "RP_" + std::to_string(iDet+1) + "_" + std::to_string(iSide) + " position";
-         m_hist_PosDetector[iDet][iSide] = new TH1F (histTitle.c_str(), (histTitle).c_str(), 200.,-145.0,-125.0);
-         if (m_hist_PosDetector[iDet][iSide]) {
-             if( m_rootHistSvc->regHist(m_pathHisto + "OD/"+ m_stationNames[iDet] + "/" + (m_hist_PosDetector[iDet][iSide])->GetName(), 
-                     m_hist_PosDetector[iDet][iSide]).isFailure() ) {
-                     ATH_MSG_WARNING("Can not register ALFA PMT monitoring histogram: " 
-                                 << (m_hist_PosDetector[iDet][iSide])->GetName());
-             }
-         }
-       }
-     }
-     for (uint32_t iStation = 0; iStation < 4; iStation++) {
-       for (uint32_t iSide=0; iSide<2; iSide++) {
-         histTitle = "Distance_" + std::to_string(2*iStation+1) + "_" + std::to_string(2*iStation+2) + "_side_" + std::to_string(iSide);
-         m_hist_DistStation[2*iStation][iSide] = new TH1F (histTitle.c_str(), (histTitle).c_str(), 401.,-20.05,20.05);
-         if (m_hist_DistStation[2*iStation][iSide]) {
-             if( m_rootHistSvc->regHist(m_pathHisto + "OD/"+ m_stationNames[2*iStation] + "/" + (m_hist_DistStation[2*iStation][iSide])->GetName(),                   
-                     m_hist_DistStation[2*iStation][iSide]).isFailure() ) {
-                     ATH_MSG_WARNING("Can not register ALFA PMT monitoring histogram: "  
-                                 << (m_hist_DistStation[2*iStation][iSide])->GetName());
-             }
-         }
-  
-       }
-     }
-  }
-
   // release histogramming service
   // when we plan to book now histograms at the LB boundaries we should not release the histogramming service ...m_rootHistSvc.release().ignore();
 
@@ -621,8 +370,6 @@ StatusCode TrigALFAROBMonitor::start() {
 StatusCode TrigALFAROBMonitor::stop() {
 
   // find LB number some other way that from EventInfo
-  reset1LBhistos();
-
   return StatusCode::SUCCESS;
 }
 
@@ -780,12 +527,10 @@ uint32_t TrigALFAROBMonitor::decodeALFA(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFr
         // check consistency of the ROD data - if data from LWC point to TWC
         if ((*lwcPtr & 0xff000000) != 0x81000000) {
     	    ATH_MSG_DEBUG("ROD "<< MSG::hex<<rodId<<" skipped - LWC(-1): "<< *(lwcPtr-1) <<" LWC: "<<*lwcPtr << " LWC+1: "<< *(lwcPtr+1) );
-    	    ATH_MSG_INFO("ROD "<< MSG::hex<<rodId<<"skipped - LWC(-1): "<< *(lwcPtr-1) <<" LWC: "<<*lwcPtr << " LWC+1: "<< *(lwcPtr+1) );
             return (1); //continue;
         }
         if ((*twcPtr & 0xff000000) != 0x8a000000) {
-    	    ATH_MSG_DEBUG( "ROD "<< MSG::hex<<rodId<<" skipped - TWC: "<< *twcPtr );
-    	    ATH_MSG_INFO( "ROD "<< MSG::hex<<rodId<<" skipped - TWC(-1): "<< *(twcPtr-1)<< " TWC: "<< *twcPtr <<" TWC+1: " << *(twcPtr+1) 
+    	    ATH_MSG_DEBUG( "ROD "<< MSG::hex<<rodId<<" skipped - TWC(-1): "<< *(twcPtr-1)<< " TWC: "<< *twcPtr <<" TWC+1: " << *(twcPtr+1) 
                            <<" LWC: " << *lwcPtr << " mbNb: "<< mbNb);
             return (1); //continue;
         }
@@ -886,12 +631,11 @@ void TrigALFAROBMonitor::decodeRealPMT (uint32_t dataWord, uint32_t quarter, uin
        if (dataWord & mask) {
            int channel = offset + quarter*16;
 
-           m_hist_pmfMonitoring[mbNb]->Fill(double(channel),double(pmf)); 
            {
-               std::string stationName = "det-" + m_stationNames[mbNb] + "-Channel";
+               std::string stationName =  m_stationNames[mbNb] + "_"; 
                auto channelNb = Monitored::Scalar<double>(stationName, channel);
                auto pmfNb     = Monitored::Scalar<double>("PMF", pmf);
-               auto monGroup = Monitored::Group ( m_monTool, channelNb, pmfNb );
+               auto monGroup = Monitored::Group ( *m_monTools["MonTool_detectors"], channelNb, pmfNb );
            }
 
            if (layerNb >= 0) {
@@ -1023,42 +767,6 @@ bool TrigALFAROBMonitor::getHLTResult(HLT::HLTResult &resultHLT) const {
     }
 }
 
-void TrigALFAROBMonitor::reset1LBhistos() const {
-
-     ATH_MSG_INFO ("reset 1LB histos" );
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-              (m_hist_ALFA_trig_validated_tracks_1LB[trgCond][station])->Reset();
-              (m_hist_ALFA_trig_validated_tracks_1LB[trgCond][station])->Add(m_hist_ALFA_trig_validated_tracks_1LB_current[trgCond][station]);
-              (m_hist_ALFA_trig_validated_tracks_1LB_current[trgCond][station])->Reset();
-         }
-     }
-}
-
-
-void TrigALFAROBMonitor::reset10LBhistos() const {
-
-     ATH_MSG_INFO ("reset 10LB histos");
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-             (m_hist_ALFA_trig_validated_tracks_10LB[trgCond][station])->Reset();
-         }
-     }
-}
-
-
-void TrigALFAROBMonitor::reset60LBhistos() const {
-
-     ATH_MSG_INFO ("reset 60LB histos");
-     for (uint32_t trgCond = 0; trgCond < 12; trgCond++) {
-         for (uint32_t station = 0; station < 8; station++) {
-            (m_hist_ALFA_trig_validated_tracks_60LB[trgCond][station])->Reset();
-         }
-     }
-}
-
-
-
 void TrigALFAROBMonitor::findALFATracks( const ROIB::RoIBResult* roIBResult, 
                                          const int lumiBlockNb, 
                                          const bool SBflag, 
@@ -1212,19 +920,30 @@ void TrigALFAROBMonitor::findALFATracks( const ROIB::RoIBResult* roIBResult,
                                           ATH_MSG_DEBUG( "findALFATracks access TBP at: " <<word<<" with offset: "<<offset );
                                           if ((ctpRoIVecBP.at(word)).roIWord() & 1<<offset) {
                                                 ATH_MSG_DEBUG( "filling findALFATracks histos " );
-                                                m_hist_ALFA_trig_validated_tracks[it->second][iDet]->Fill(x_Rec[iDet],y_Rec[iDet]);
            					{
-               						std::string stationName = "trk-full-" + m_trigConditions[it->second]+ "-" + m_stationNames[iDet] + "-x";
+               						std::string stationName =  m_trigConditions[it->second]+ "_" + m_stationNames[iDet];
                						auto x_coord = Monitored::Scalar<double>(stationName, x_Rec[iDet]);
                						auto y_coord = Monitored::Scalar<double>("y", y_Rec[iDet]);
-               						auto monGroup = Monitored::Group ( m_monTool, x_coord, y_coord );
+                                                        std::string current, trk1, trk10, trk60;
+                                                        if (it->second == 0) {
+                                                            current = "trackingElast";
+                                                            trk1 =    "trackingElast_1LB";
+                                                            trk10 =   "trackingElast_10LB";
+                                                            trk60 =   "trackingElast_60LB";
+                                                        } else {
+                                                            current = "trackingAny";
+                                                            trk1 =    "trackingAny_1LB";
+                                                            trk10 =   "trackingAny_10LB";
+                                                            trk60 =   "trackingAny_60LB";
+                                                        }
+               						    auto monGroup =   Monitored::Group (  *m_monTools["MonTool_" + current], x_coord, y_coord );
+               						    auto monGroup1 =  Monitored::Group (  *m_monTools["MonTool_" + trk1],    x_coord, y_coord );
+               						    auto monGroup10 = Monitored::Group (  *m_monTools["MonTool_" + trk10],   x_coord, y_coord );
+               						    auto monGroup60 = Monitored::Group (  *m_monTools["MonTool_" + trk60],   x_coord, y_coord );
            					}
 
-                                                m_hist_ALFA_trig_validated_tracks_1LB_current[it->second][iDet]->Fill(x_Rec[iDet],y_Rec[iDet]);
-                                                m_hist_ALFA_trig_validated_tracks_10LB[it->second][iDet]->Fill(x_Rec[iDet],y_Rec[iDet]);
-                                                m_hist_ALFA_trig_validated_tracks_60LB[it->second][iDet]->Fill(x_Rec[iDet],y_Rec[iDet]);
                                                 if (SBflag) {
-                                                   m_hist_ALFA_trig_validated_tracks_SB[it->second][iDet]->Fill(x_Rec[iDet],y_Rec[iDet]);
+                                                   //m_hist_ALFA_trig_validated_tracks_SB[it->second][iDet]->Fill(x_Rec[iDet],y_Rec[iDet]);
                                                 }
                                                 //ATH_MSG_INFO ("found track in det: "<<iDet<<" item: "<<it->first<<" in word: "<<word<<" offset: "<<offset);
                     			   }
@@ -1251,51 +970,43 @@ void TrigALFAROBMonitor::findALFATracks( const ROIB::RoIBResult* roIBResult,
            if ((ctpRoIVecBP.at(m_elast15>>5)).roIWord() & (1 <<(m_elast15%32))) {
               {
                   std::string stationName  = "goodDataAssessmentLB15";
-                  std::string stationName1 = "com-goodDataAssessment";
+                  std::string stationName1 = "com_goodDataAssessment";
                   auto one      = Monitored::Scalar<double>(stationName, 1.);
                   auto anotherOne = Monitored::Scalar<double>(stationName1, 1.);
-                  auto lbNb     = Monitored::Scalar<double>("com-LB", lumiBlockNb);
-                  auto monGroup = Monitored::Group ( m_monTool, one, anotherOne, lbNb );
+                  auto lbNb     = Monitored::Scalar<double>("com_LB", lumiBlockNb);
+                  auto monGroup = Monitored::Group (  *m_monTools["MonTool_common"], one, anotherOne, lbNb );
               }
-              m_hist_goodData->Fill(1.);
-              m_hist_goodDataLB15->Fill(lumiBlockNb, 1.);
               if ((nbOfTracksInDetectors[0] <=2) && (nbOfTracksInDetectors[2] <=2) && (nbOfTracksInDetectors[5]<=2) && (nbOfTracksInDetectors[7] <= 2) &&
                     (nbOfTracksInDetectors[0]>0) && (nbOfTracksInDetectors[2] >0) && (nbOfTracksInDetectors[5]>0) && (nbOfTracksInDetectors[7] > 0) ) {
                  {
                      std::string stationName  = "goodDataAssessmentLB15";
-                     std::string stationName1 = "com-goodDataAssessment";
+                     std::string stationName1 = "com_goodDataAssessment";
                      auto two      = Monitored::Scalar<double>(stationName, 2.);
                      auto anotherTwo = Monitored::Scalar<double>(stationName1, 2.);
-                     auto lbNb     = Monitored::Scalar<double>("com-LB", lumiBlockNb);
-                     auto monGroup = Monitored::Group ( m_monTool, two, anotherTwo, lbNb );
+                     auto lbNb     = Monitored::Scalar<double>("com_LB", lumiBlockNb);
+                     auto monGroup = Monitored::Group (  *m_monTools["MonTool_common"], two, anotherTwo, lbNb );
                  }
-                 m_hist_goodData->Fill(2.);
-                 m_hist_goodDataLB15->Fill(lumiBlockNb, 2.);
               }
            }
            if ((ctpRoIVecBP.at(m_elast18>>5)).roIWord() & (1 <<(m_elast18%32))) {
                  {
                      std::string stationName  = "goodDataAssessmentLB18";
-                     std::string stationName1 = "com-goodDataAssessment";
+                     std::string stationName1 = "com_goodDataAssessment";
                      auto one      = Monitored::Scalar<double>(stationName, 1.);
                      auto four = Monitored::Scalar<double>(stationName1, 4.);
-                     auto lbNb     = Monitored::Scalar<double>("com-LB", lumiBlockNb);
-                     auto monGroup = Monitored::Group ( m_monTool, one, four, lbNb );
+                     auto lbNb     = Monitored::Scalar<double>("com_LB", lumiBlockNb);
+                     auto monGroup = Monitored::Group (  *m_monTools["MonTool_common"], one, four, lbNb );
                  }
-              m_hist_goodData->Fill(4.);
-              m_hist_goodDataLB18->Fill(lumiBlockNb, 1.);
               if ((nbOfTracksInDetectors[1] <=2) && (nbOfTracksInDetectors[3] <=2) && (nbOfTracksInDetectors[4]<=2) && (nbOfTracksInDetectors[6] <= 2) &&
                     (nbOfTracksInDetectors[1]>0) && (nbOfTracksInDetectors[3] >0) && (nbOfTracksInDetectors[4]>0) && (nbOfTracksInDetectors[6] > 0) ) {
                  {
                      std::string stationName  = "goodDataAssessmentLB18";
-                     std::string stationName1 = "com-goodDataAssessment";
+                     std::string stationName1 = "com_goodDataAssessment";
                      auto two      = Monitored::Scalar<double>(stationName, 2.);
                      auto five = Monitored::Scalar<double>(stationName1, 5.);
                      auto lbNb     = Monitored::Scalar<double>("com-LB", lumiBlockNb);
-                     auto monGroup = Monitored::Group ( m_monTool, two, five, lbNb );
+                     auto monGroup = Monitored::Group (  *m_monTools["MonTool_common"], two, five, lbNb );
                  }
-                 m_hist_goodData->Fill(5.);
-                 m_hist_goodDataLB18->Fill(lumiBlockNb, 2.);
               }
            }
         }
@@ -1304,6 +1015,276 @@ void TrigALFAROBMonitor::findALFATracks( const ROIB::RoIBResult* roIBResult,
            ATH_MSG_DEBUG( "det: "<<i<<" - "<<nbOfTracksInDetectors[i]<<"; ");
         }
 
+        const float dist = 8264.;
+        const std::vector <std::string> triggers={"elast15", "elast18", "syst17", "syst18"};
+        const std::vector <std::string> armSets={"L1U", "L1D", "R1U","R1D"};
+        if ((ctpRoIVecBP.at(m_elast15>>5)).roIWord() & (1 <<(m_elast15%32))) {
+           if ( (nbOfTracksInDetectors[0] == 1) && (nbOfTracksInDetectors[2] == 1) && (nbOfTracksInDetectors[5] == 1) && (nbOfTracksInDetectors[7] == 1) &&
+                 (nbOfTracksInDetectors[1] == 0) && (nbOfTracksInDetectors[3] == 0) && (nbOfTracksInDetectors[4] == 0) && (nbOfTracksInDetectors[6] == 0) ) {
+               if ( (x_Rec[0] > -9000.) && (x_Rec[2] > -9000.) && (x_Rec[7] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[0] + "_x_" + armSets[0];
+                         std::string name1 = triggers[0] + "_ax_" + armSets[0]; 
+                         auto pcx_x = Monitored::Scalar<float>(name,-x_Rec[0]);
+                         auto pcx_y = Monitored::Scalar<float>("y", -x_Rec[7]);
+                         auto pax_x = Monitored::Scalar<float>(name1,-x_Rec[2]);
+                         auto pax_y = Monitored::Scalar<float>("y", (1000000.*(x_Rec[2] - x_Rec[0]))/dist);
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundElast15"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_1LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_10LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_60LB"], pcx_x, pcx_y, pax_x, pax_y);
+                       }
+               
+               if ( (y_Rec[0] > -9000.) && (y_Rec[2] > -9000.) && (y_Rec[7] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[0] + "_y_" + armSets[0];
+                         std::string name1 = triggers[0] + "_ay_" + armSets[0]; 
+                         auto pcy_x = Monitored::Scalar<float>(name,y_Rec[0]);
+                         auto pcy_y = Monitored::Scalar<float>("y", y_Rec[7]);
+                         auto pay_x = Monitored::Scalar<float>(name1,y_Rec[2]);
+                         auto pay_y = Monitored::Scalar<float>("y", (1000000.*(y_Rec[0] - y_Rec[2]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundElast15"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_1LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_10LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_60LB"], pcy_x, pcy_y, pay_x, pay_y);
+                       }
+               }
+               if ( (x_Rec[5] > -9000.) && (x_Rec[7] > -9000.) && (x_Rec[2] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[0] + "_x_" + armSets[3];
+                         std::string name1 = triggers[0] + "_ax_" + armSets[3]; 
+                         auto pcx_x = Monitored::Scalar<float>(name,-x_Rec[2]);
+                         auto pcx_y = Monitored::Scalar<float>("y", -x_Rec[5]);
+                         auto pax_x = Monitored::Scalar<float>(name1,-x_Rec[5]);
+                         auto pax_y = Monitored::Scalar<float>("y", (1000000.*(x_Rec[5] - x_Rec[7]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundElast15"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_1LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_10LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_60LB"], pcx_x, pcx_y, pax_x, pax_y);
+                       }
+               }
+               if ( (y_Rec[5] > -9000.) && (y_Rec[7] > -9000.) && (y_Rec[2] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[0] + "_y_" + armSets[3];
+                         std::string name1 = triggers[0] + "_ay_" + armSets[3]; 
+                         auto pcy_x = Monitored::Scalar<float>(name,y_Rec[2]);
+                         auto pcy_y = Monitored::Scalar<float>("y", y_Rec[5]);
+                         auto pay_x = Monitored::Scalar<float>(name1,y_Rec[5]);
+                         auto pay_y = Monitored::Scalar<float>("y",  (1000000.*(y_Rec[7] - y_Rec[5]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundElast15"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_1LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_10LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast15_60LB"], pcy_x, pcy_y, pay_x, pay_y);
+                       }
+               }
+           }
+         }
+        }
+
+        if ((ctpRoIVecBP.at(m_elast18>>5)).roIWord() & (1 <<(m_elast18%32))) {
+           if ( (nbOfTracksInDetectors[1] == 1) && (nbOfTracksInDetectors[3] == 1) && (nbOfTracksInDetectors[4] == 1) && (nbOfTracksInDetectors[6] == 1) &&
+                 (nbOfTracksInDetectors[0] == 0) && (nbOfTracksInDetectors[2] == 0) && (nbOfTracksInDetectors[5] == 0) && (nbOfTracksInDetectors[7] == 0) ) {
+               if ( (x_Rec[1] > -9000.) && (x_Rec[3] > -9000.) && (x_Rec[6] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[1] + "_x_" + armSets[1];
+                         std::string name1 = triggers[1] + "_ax_" + armSets[1]; 
+                         auto pcx_x = Monitored::Scalar<float>(name,-x_Rec[1]);
+                         auto pcx_y = Monitored::Scalar<float>("y", -x_Rec[6]);
+                         auto pax_x = Monitored::Scalar<float>(name1,-x_Rec[3]);
+                         auto pax_y = Monitored::Scalar<float>("y",  (1000000.*(x_Rec[3] - x_Rec[1]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundElast18"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_1LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_10LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_60LB"], pcx_x, pcx_y, pax_x, pax_y);
+                       }
+               }
+               if ( (y_Rec[1] > -9000.) && (y_Rec[3] > -9000.) && (y_Rec[6] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[1] + "_y_" + armSets[1];
+                         std::string name1 = triggers[1] + "_ay_" + armSets[1]; 
+                         auto pcy_x = Monitored::Scalar<float>(name,y_Rec[1]);
+                         auto pcy_y = Monitored::Scalar<float>("y", y_Rec[6]);
+                         auto pay_x = Monitored::Scalar<float>(name1,y_Rec[3]);
+                         auto pay_y = Monitored::Scalar<float>("y",  (1000000.*(y_Rec[1] - y_Rec[3]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundElast18"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_1LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_10LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_60LB"], pcy_x, pcy_y, pay_x, pay_y);
+                       }
+               }
+               if ( (x_Rec[4] > -9000.) && (x_Rec[6] > -9000.) && (x_Rec[3] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[1] + "_x_" + armSets[2];
+                         std::string name1 = triggers[1] + "_ax_" + armSets[2]; 
+                         auto pcx_x = Monitored::Scalar<float>(name,-x_Rec[3]);
+                         auto pcx_y = Monitored::Scalar<float>("y", -x_Rec[4]);
+                         auto pax_x = Monitored::Scalar<float>(name1,-x_Rec[4]);
+                         auto pax_y = Monitored::Scalar<float>("y", (1000000.*(x_Rec[4] - x_Rec[6]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundElast18"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_1LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_10LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_60LB"], pcx_x, pcx_y, pax_x, pax_y);
+                       }
+               }
+               if ( (y_Rec[4] > -9000.) && (y_Rec[6] > -9000.) && (y_Rec[3] > -9000.)  ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[1] + "_y_" + armSets[2];
+                         std::string name1 = triggers[1] + "_ay_" + armSets[2]; 
+                         auto pcy_x = Monitored::Scalar<float>(name,y_Rec[3]);
+                         auto pcy_y = Monitored::Scalar<float>("y", y_Rec[4]);
+                         auto pay_x = Monitored::Scalar<float>(name1,y_Rec[4]);
+                         auto pay_y = Monitored::Scalar<float>("y",  (1000000.*(y_Rec[6] - y_Rec[4]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundElast18"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_1LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_10LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundElast18_60LB"], pcy_x, pcy_y, pay_x, pay_y);
+                       }
+               }
+           }
+         }
+
+        if ((ctpRoIVecBP.at(m_syst17>>5)).roIWord() & (1 <<(m_syst17%32))) {
+           //if ( (m_nbOfTracksInDetectors[0] >= 1) && (m_nbOfTracksInDetectors[2] >= 1) && (m_nbOfTracksInDetectors[4] >= 1) && (m_nbOfTracksInDetectors[6] >= 1) &&
+             if (1) {  // (m_nbOfTracksInDetectors[1] == 0) && (m_nbOfTracksInDetectors[3] == 0) && (m_nbOfTracksInDetectors[5] == 0) && (m_nbOfTracksInDetectors[7] == 0) ) {
+               //ATH_MSG_INFO(" m_syst17 fired: xrec0: "<<x_Rec[0]<<" xrec2: "<<x_Rec[2]<<" xrec4: "<<x_Rec[4]<<" xrec6: "<<x_Rec[6] );
+               if ( (x_Rec[0] > -9000.) && (x_Rec[2] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[2] + "_x_" + armSets[0];
+                         std::string name1 = triggers[2] + "_ax_" + armSets[0]; 
+                         auto pcx_x = Monitored::Scalar<float>(name,-x_Rec[0]);
+                         auto pcx_y = Monitored::Scalar<float>("y", -x_Rec[2]);
+                         auto pax_x = Monitored::Scalar<float>(name1,-x_Rec[2]);
+                         auto pax_y = Monitored::Scalar<float>("y", (1000000.*(x_Rec[2] - x_Rec[0]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_1LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_10LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_60LB"], pcx_x, pcx_y, pax_x, pax_y);
+                       }
+               }
+               if ( (y_Rec[0] > -9000.) && (y_Rec[2] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[2] + "_y_" + armSets[0];
+                         std::string name1 = triggers[2] + "_ay_" + armSets[0]; 
+                         auto pcy_x = Monitored::Scalar<float>(name,y_Rec[0]);
+                         auto pcy_y = Monitored::Scalar<float>("y", y_Rec[2]);
+                         auto pay_x = Monitored::Scalar<float>(name1, y_Rec[2]);
+                         auto pay_y = Monitored::Scalar<float>("y",  (1000000.*(y_Rec[0] - y_Rec[2]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_1LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_10LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_60LB"], pcy_x, pcy_y, pay_x, pay_y);
+                       }
+               }
+               if ( (x_Rec[4] > -9000.) && (x_Rec[6] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[2] + "_x_" + armSets[2];
+                         std::string name1 = triggers[2] + "_ax_" + armSets[2]; 
+                         auto pcx_x = Monitored::Scalar<float>(name,-x_Rec[6]);
+                         auto pcx_y = Monitored::Scalar<float>("y", -x_Rec[4]);
+                         auto pax_x = Monitored::Scalar<float>(name1, -x_Rec[4]);
+                         auto pax_y = Monitored::Scalar<float>("y", (1000000.*(x_Rec[4] - x_Rec[6]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_1LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_10LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_60LB"], pcx_x, pcx_y, pax_x, pax_y);
+                       }
+               }
+               if ( (y_Rec[4] > -9000.) && (y_Rec[6] > -9000.)) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[2] + "_y_" + armSets[2];
+                         std::string name1 = triggers[2] + "_ay_" + armSets[2]; 
+                         auto pcy_x = Monitored::Scalar<float>(name,y_Rec[6]);
+                         auto pcy_y = Monitored::Scalar<float>("y", y_Rec[4]);
+                         auto pay_x = Monitored::Scalar<float>(name1, y_Rec[4]);
+                         auto pay_y = Monitored::Scalar<float>("y",  (1000000.*(y_Rec[6] - y_Rec[4]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_1LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_10LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst17_60LB"], pcy_x, pcy_y, pay_x, pay_y);
+                       }
+               }
+           }
+         }
+
+        if ((ctpRoIVecBP.at(m_syst18>>5)).roIWord() & (1 <<(m_syst18%32))) {
+            //if ( (m_nbOfTracksInDetectors[1] >= 1) && (m_nbOfTracksInDetectors[3] >= 1) && (m_nbOfTracksInDetectors[5] >= 1) && (m_nbOfTracksInDetectors[7] >= 1) &&
+              if (1) { //((m_nbOfTracksInDetectors[0] == 0) && (m_nbOfTracksInDetectors[2] == 0) && (m_nbOfTracksInDetectors[4] == 0) && (m_nbOfTracksInDetectors[6] == 0) ) {
+               //ATH_MSG_INFO(" m_syst18 fired: xrec1: "<<x_Rec[1]<<" xrec3: "<<x_Rec[3]<<" xrec5: "<<x_Rec[5]<<" xrec7: "<<x_Rec[7] );
+               if ( (x_Rec[1] > -9000.) && (x_Rec[3] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[3] + "_x_" + armSets[1];
+                         std::string name1 = triggers[3] + "_ax_" + armSets[1]; 
+                         auto pcx_x = Monitored::Scalar<float>(name,-x_Rec[1]);
+                         auto pcx_y = Monitored::Scalar<float>("y", -x_Rec[3]);
+                         auto pax_x = Monitored::Scalar<float>(name1, -x_Rec[3]);
+                         auto pax_y = Monitored::Scalar<float>("y", (1000000.*(x_Rec[3] - x_Rec[1]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_1LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_10LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_60LB"], pcx_x, pcx_y, pax_x, pax_y);
+                       }
+               }
+               if ( (y_Rec[1] > -9000.) && (y_Rec[3] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[3] + "_y_" + armSets[1];
+                         std::string name1 = triggers[3] + "_ay_" + armSets[1]; 
+                         auto pcy_x = Monitored::Scalar<float>(name,y_Rec[1]);
+                         auto pcy_y = Monitored::Scalar<float>("y", y_Rec[3]);
+                         auto pay_x = Monitored::Scalar<float>(name1, y_Rec[3]);
+                         auto pay_y = Monitored::Scalar<float>("y",  (1000000.*(y_Rec[1] - y_Rec[3]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_1LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_10LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_60LB"], pcy_x, pcy_y, pay_x, pay_y);
+                       }
+               }
+               if ( (x_Rec[5] > -9000.) && (x_Rec[7] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[3] + "_x_" + armSets[3];
+                         std::string name1 = triggers[3] + "_ax_" + armSets[3]; 
+                         auto pcx_x = Monitored::Scalar<float>(name,-x_Rec[7]);
+                         auto pcx_y = Monitored::Scalar<float>("y", -x_Rec[5]);
+                         auto pax_x = Monitored::Scalar<float>(name1, -x_Rec[5]);
+                         auto pax_y = Monitored::Scalar<float>("y", (1000000.*(x_Rec[5] - x_Rec[7]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_1LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_10LB"], pcx_x, pcx_y, pax_x, pax_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_60LB"], pcx_x, pcx_y, pax_x, pax_y);
+                       }
+               }
+               if ( (y_Rec[5] > -9000.)&& (y_Rec[7] > -9000.) ) {
+                       {
+                         ATH_MSG_DEBUG( "filling bckg histos " );
+                         std::string name = triggers[3] + "_y_" + armSets[3];
+                         std::string name1 = triggers[3] + "_ay_" + armSets[3]; 
+                         auto pcy_x = Monitored::Scalar<float>(name,y_Rec[7]);
+                         auto pcy_y = Monitored::Scalar<float>("y", y_Rec[5]);
+                         auto pay_x = Monitored::Scalar<float>(name1, y_Rec[5]);
+                         auto pay_y = Monitored::Scalar<float>("y", (1000000.*(y_Rec[7] - y_Rec[5]))/dist );
+                         auto monGroup = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_1LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_1LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_10LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_10LB"], pcy_x, pcy_y, pay_x, pay_y);
+                         auto monGroup_60LB = Monitored::Group ( *m_monTools["MonTool_backgroundSyst18_60LB"], pcy_x, pcy_y, pay_x, pay_y);
+                       }
+               }
+           }
+         }
+
    return;
 }  
 
@@ -1403,10 +1384,6 @@ void TrigALFAROBMonitor::findODTracks( bool FiberHitsODNeg[][3][30], bool FiberH
                             if (FoundTrack[iUL]) break;
                         }
                     }//end of iLay-loop
-                    // hMinMultipl[iStation*2+iUL][iSide]->Fill(MinMultipl);
-                    // hMultipl2D[iStation*2+iUL][iSide][0]->Fill(Multiplicity[0],Multiplicity[1]);
-                    // hMultipl2D[iStation*2+iUL][iSide][1]->Fill(Multiplicity[0],Multiplicity[2]);
-                    // hMultipl2D[iStation*2+iUL][iSide][2]->Fill(Multiplicity[1],Multiplicity[2]);
                 }//end of iUL-loop
 
             } else {//The same just for the negative side
@@ -1481,45 +1458,38 @@ void TrigALFAROBMonitor::findODTracks( bool FiberHitsODNeg[][3][30], bool FiberH
                         }
                         if (FoundTrack[iUL]) break;
                     }//end of iLay-loop
-                    // hMinMultipl[iStation*2+iUL][iSide]->Fill(MinMultipl);
-                    // hMultipl2D[iStation*2+iUL][iSide][0]->Fill(Multiplicity[0],Multiplicity[1]);
-                    // hMultipl2D[iStation*2+iUL][iSide][1]->Fill(Multiplicity[0],Multiplicity[2]);
-                    // hMultipl2D[iStation*2+iUL][iSide][2]->Fill(Multiplicity[1],Multiplicity[2]);
                 }//end of iUL-loop
             }
 
             //If we have a track in both upper and lower detector, we fill the histograms
             if (FoundTrack[0]) { 
                  {
-                     std::string stationName  = "od-" + m_stationNames[iStation*2] + "-RP_" + std::to_string(iStation*2+1) + "_" + std::to_string(iSide) + " position";
-                     ATH_MSG_INFO(stationName);
+                     std::string stationName  = "od_" + m_stationNames[iStation*2] + "_RP_" + std::to_string(iStation*2+1) + "_" + std::to_string(iSide) + " position";
                      auto pos    = Monitored::Scalar<double>(stationName, Pos[0]);
-                     auto monGroup = Monitored::Group ( m_monTool, pos );
+                     auto monGroup = Monitored::Group (  *m_monTools["MonTool_OD_" + m_stationNames[iStation*2]], pos );
                  }
 
-                 m_hist_PosDetector[iStation*2][iSide]->Fill(Pos[0]);
+                 //m_hist_PosDetector[iStation*2][iSide]->Fill(Pos[0]);
                  ODtracks[iStation*2][iSide] = Pos[0];
             }
             if (FoundTrack[1]) {
                  {
-                     std::string stationName  = "od-" + m_stationNames[iStation*2+1] + "-RP_" + std::to_string(iStation*2+2) + "_" + std::to_string(iSide) + " position";
-                     ATH_MSG_INFO(stationName);
+                     std::string stationName  = "od_" + m_stationNames[iStation*2+1] + "_RP_" + std::to_string(iStation*2+2) + "_" + std::to_string(iSide) + " position";
                      auto pos    = Monitored::Scalar<double>(stationName, Pos[1]);
-                     auto monGroup = Monitored::Group ( m_monTool, pos );
+                     auto monGroup = Monitored::Group (  *m_monTools["MonTool_OD_" + m_stationNames[iStation*2+1]], pos );
                  }
-                 m_hist_PosDetector[iStation*2+1][iSide]->Fill(Pos[1]);
+                 //m_hist_PosDetector[iStation*2+1][iSide]->Fill(Pos[1]);
                  ODtracks[iStation*2+1][iSide] = Pos[1];
             }
             //if (FoundTrack[0] && FoundTrack[1]){
             if( (ODtracks[iStation*2][iSide] < 0) && (ODtracks[iStation*2+1][iSide] < 0) ) {
               {
-                  std::string stationName  = "od-" + m_stationNames[iStation*2] + "-distance_" + std::to_string(iStation*2+1) + "_" + std::to_string(iStation*2+2)+ "_side_" + std::to_string(iSide);
-                  ATH_MSG_INFO(stationName);
+                  std::string stationName  = "od_" + m_stationNames[iStation*2] + "_distance_" + std::to_string(iStation*2+1) + "_" + std::to_string(iStation*2+2)+ "_side_" + std::to_string(iSide);
                   auto pos    = Monitored::Scalar<double>(stationName, -ODtracks[iStation*2][iSide] - ODtracks[iStation*2+1][iSide] + m_alfa_edge[iStation*2] + m_alfa_edge[iStation*2+1]);
-                  auto monGroup = Monitored::Group ( m_monTool, pos );
+                  auto monGroup = Monitored::Group (  *m_monTools["MonTool_OD_" +  m_stationNames[iStation*2]], pos );
               }
 
-              m_hist_DistStation[2*iStation][iSide]->Fill(-ODtracks[iStation*2][iSide] - ODtracks[iStation*2+1][iSide] + m_alfa_edge[iStation*2] + m_alfa_edge[iStation*2+1]);
+              //m_hist_DistStation[2*iStation][iSide]->Fill(-ODtracks[iStation*2][iSide] - ODtracks[iStation*2+1][iSide] + m_alfa_edge[iStation*2] + m_alfa_edge[iStation*2+1]);
             }
 
         }//end of iSide-loop
diff --git a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.h b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.h
index 840564901a3..60370d8dc2a 100755
--- a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.h
+++ b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "AthenaBaseComps/AthReentrantAlgorithm.h"
@@ -26,6 +26,8 @@
 
 #include "AthenaMonitoringKernel/Monitored.h"
 
+#include <initializer_list>
+
 
 
 /////////////////////////////////////////////////////////////////////////////
@@ -36,6 +38,7 @@ namespace ROIB {
 
 class MuCTPI_RDO;
 class IROBDataProviderSvc;
+class ITrigROBDataProviderSvc;
 
 class TH1F;       /// for monitoring purposes
 class TH2F;       /// for monitoring purposes
@@ -90,10 +93,6 @@ private:
   BooleanProperty                  m_doROBChecksum;
   TH1F*                            m_hist_failedChecksumForALFAROB;
   Histo1DProperty                  m_histProp_failedChecksumForALFAROB;
-  //TH1F*                            m_hist_failedChecksumForROB;
-  //Histo1DProperty                  m_histProp_failedChecksumForROB;
-  //TH1F*                            m_hist_failedChecksumForSD;
-  //Histo1DProperty                  m_histProp_failedChecksumForSD;
 
   /// Switch for ALFA fast online tracking
   BooleanProperty                  m_doALFATracking;
@@ -121,42 +120,29 @@ private:
   std::map<eformat::GenericStatus, std::string> m_map_GenericStatus;
   std::vector<std::string>                      m_vec_SpecificStatus;
 
+  TH2F*                            m_hist_bckg_pcx[4][4];
+  TH2F*                            m_hist_bckg_pcy[4][4];
+  TH2F*                            m_hist_bckg_pax[4][4];
+  TH2F*                            m_hist_bckg_pay[4][4];
+
   /// pointers to the CTP and muCTPi result objects
   ROIB::MuCTPIResult*              m_lvl1muCTPIResult;  // RoIB muCTPi Result
 
-  ToolHandle<GenericMonitoringTool> m_monTool{this,"MonTool","","Monitoring tool"};
+  ToolHandleArray<GenericMonitoringTool> m_monTools{this, "MonTools", {}, "Monitoring tools"};
 
   /// vectors with CTP and muCTPi ROB Ids
-  //std::vector<uint32_t> m_ctpRobIds;
-  //std::vector<uint32_t> m_muCTPiRobIds;
   std::vector<uint32_t> m_ALFARobIds;
 
-  /// trigger muCTPi RoIs from L1 and DAQ ROB
-  //std::vector<ROIB::MuCTPIRoI>     m_lvl1muCTPIRoIs;    // RoIs from RoIB muCTPi ROB
-  //std::vector<ROIB::MuCTPIRoI>     m_daqmuCTPIRoIs;     // RoIs from DAQ muCTPi ROB
-
-  //std::vector<uint32_t>            m_lvl1muCTPIHash_Endcap;  // Hash for RoIs from RoIB 
-  //std::vector<uint32_t>            m_lvl1muCTPIHash_Forward; // Hash for RoIs from RoIB 
-  //std::vector<uint32_t>            m_lvl1muCTPIHash_Barrel;  // Hash for RoIs from RoIB 
-
-  //std::vector<uint32_t>            m_daqmuCTPIHash_Endcap;   // Hash for RoIs from DAQ ROB 
-  //std::vector<uint32_t>            m_daqmuCTPIHash_Forward;  // Hash for RoIs from DAQ ROB 
-  //std::vector<uint32_t>            m_daqmuCTPIHash_Barrel;   // Hash for RoIs from DAQ ROB 
-
   Histo1DProperty                  m_histProp_NumberOfRoIs;
 
   std::map<std::string, int> m_map_TrgNamesToHistGroups;
   std::map<int, int>         m_map_TrgItemNumbersToHistGroups;
 
-  //mutable std::map<int, int>  m_triggerHitPatternReady;
-  //mutable std::map<int, int>  m_triggerHitPattern;
 
   std::string m_pathHisto;
 
-  //TrigConf::HLTChain* m_HLTcostMon_chain;
 
-  int m_elast15 {0}, m_elast18 {0};     // ctp-items id numbers to select golden alfa trigger for data quality assesment
-  //mutable int m_nbOfTracksInDetectors[8]; // counters for track candidates - needed in data quality assesment
+  int m_elast15 {0}, m_elast18 {0},  m_syst17 {0}, m_syst18 {0};     // ctp-items id numbers to select golden alfa trigger for data quality assesment
 
 // ALFA extensions
 // geometry data
@@ -167,16 +153,13 @@ private:
 
 #include "../src/TrigALFAROBMon_geomTable.icc"
 
-  //mutable std::vector <float> m_pU[8][10];
-  //mutable std::vector <float> m_pV[8][10];
-
   const float m_y_min[2] = {0.,-35.};
   const float m_y_max[2] = {35.,0.};
 
-  //mutable bool m_sFiberHitsODPos[8][3][30],  m_sFiberHitsODNeg[8][3][30];
 
   const std::vector<std::string> m_stationNames {"B7L1U", "B7L1L", "A7L1U", "A7L1L", "A7R1U", "A7R1L", "B7R1U", "B7R1L"};
-  const std::vector<std::string> m_trigConditions{"elastic", "elastic_ALFA_BG", "singleDiffr", "ALFA_MBTS_singleDiffr", "ALFA_LUCID_singleDiffr", "ALFA_EM3", "ALFA_J12", "ALFA_TRT", "ANY", "ANY_UNPAIRED_ISO", "ANY_ALFA_BG", "ALFA_EMPTY"};
+  //const std::vector<std::string> m_trigConditions{"elastic", "elastic_ALFA_BG", "singleDiffr", "ALFA_MBTS_singleDiffr", "ALFA_LUCID_singleDiffr", "ALFA_EM3", "ALFA_J12", "ALFA_TRT", "ANY", "ANY_UNPAIRED_ISO", "ANY_ALFA_BG", "ALFA_EMPTY"};
+  const std::vector<std::string> m_trigConditions{"elastic",  "ANY"};
 
 
   /// Helper for checksum test
@@ -214,9 +197,4 @@ private:
 
   /// Helper to print contents of a muCTPi RoIB data word 
   void dumpRoIBDataWord(uint32_t data_word ) const;
-
-  // routines to reset selected set of histograms
-  void reset1LBhistos() const;
-  void reset10LBhistos() const;
-  void reset60LBhistos() const;
 };
-- 
GitLab