From d970e63d5bff3c1eb056c9ee67d19250f2f02461 Mon Sep 17 00:00:00 2001
From: Tomasz Bold <tomasz.bold@gmail.com>
Date: Fri, 9 Apr 2021 13:36:23 +0000
Subject: [PATCH] ALFAROB monitoring chain added to LS2_v1 menu

---
 .../python/TrigOnlineMonitorConfig.py         | 197 ++++++++++++++++++
 .../share/TrigALFAROBMonitor.py               | 194 +----------------
 .../src/TrigALFAROBMonitor.cxx                |   2 +-
 .../src/TrigStreamerHypoToolMT.cxx            |   7 +-
 .../src/TrigStreamerHypoToolMT.h              |   3 +-
 .../DecisionHandling/src/InputMakerForRoI.cxx |   9 +-
 .../DecisionHandling/src/InputMakerForRoI.h   |   2 +-
 .../share/ref_RDOtoRDOTrig_v1Dev_build.ref    |   4 +
 .../share/ref_data_v1Dev_build.ref            |   4 +
 .../python/HLTMenuConfig/Menu/LS2_v1.py       |   1 +
 .../Menu/PhysicsP1_pp_run3_v1.py              |   2 +
 .../HLTMenuConfig/Menu/SignatureDicts.py      |   2 +-
 .../MinBias/ALFAMenuSequences.py              |  28 +++
 .../MinBias/MinBiasChainConfiguration.py      |  11 +-
 14 files changed, 262 insertions(+), 204 deletions(-)
 create mode 100644 Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/ALFAMenuSequences.py

diff --git a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/python/TrigOnlineMonitorConfig.py b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/python/TrigOnlineMonitorConfig.py
index 57f763c391e..c00f31a21a1 100644
--- a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/python/TrigOnlineMonitorConfig.py
+++ b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/python/TrigOnlineMonitorConfig.py
@@ -16,3 +16,200 @@ class TrigOpMonitor(_TrigOpMonitor):
          if a.getType()=='LuminosityCondAlg':
             self.LuminosityCondDataKey = a.LuminosityOutputKey
             break
+
+
+def TrigALFAROBMonitor():
+   from AthenaConfiguration.ComponentFactory import CompFactory
+   from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
+
+   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')
+
+   # common
+   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]"]
+   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 = CompFactory.TrigALFAROBMonitor("ALFAROBMonitor")
+   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]
+   return ALFAROBMonitor
+   
diff --git a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/share/TrigALFAROBMonitor.py b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/share/TrigALFAROBMonitor.py
index 1d416143e5e..3d705d728aa 100755
--- a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/share/TrigALFAROBMonitor.py
+++ b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/share/TrigALFAROBMonitor.py
@@ -14,204 +14,14 @@ ALFAROBMonitor = CfgMgr.TrigALFAROBMonitor("ALFAROBMonitor")
 #--------------------------------------------------------------
 from AthenaCommon.AlgSequence import AlgSequence 
 topSequence = AlgSequence()
-topSequence += ALFAROBMonitor
+from TrigOnlineMonitor.TrigOnlineMonitorConfig import TrigALFAROBMonitor
+topSequence += TrigALFAROBMonitor()
 
-from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
 #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
-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, monTool1]
diff --git a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.cxx b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.cxx
index f68bafb90c2..22e2dee1183 100755
--- a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.cxx
+++ b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/src/TrigALFAROBMonitor.cxx
@@ -148,7 +148,7 @@ StatusCode TrigALFAROBMonitor::execute (const EventContext& ctx) const {
   m_robDataProviderSvc->getROBData(ctx, m_ALFARobIds,ALFARobFragmentVec, name());
 
   if (ALFARobFragmentVec.size()==0) {
-    ATH_MSG_INFO(" No ALFA ROB found.");
+    ATH_MSG_DEBUG(" No ALFA ROB found.");
     return StatusCode::SUCCESS;
   } 
 
diff --git a/Trigger/TrigHypothesis/TrigStreamerHypo/src/TrigStreamerHypoToolMT.cxx b/Trigger/TrigHypothesis/TrigStreamerHypo/src/TrigStreamerHypoToolMT.cxx
index 799eabb2b15..f68b1ef1d12 100644
--- a/Trigger/TrigHypothesis/TrigStreamerHypo/src/TrigStreamerHypoToolMT.cxx
+++ b/Trigger/TrigHypothesis/TrigStreamerHypo/src/TrigStreamerHypoToolMT.cxx
@@ -35,7 +35,10 @@ StatusCode TrigStreamerHypoToolMT::finalize() {
 StatusCode TrigStreamerHypoToolMT::decide(std::vector<ITrigStreamerHypoToolMT::HypoInfo>& hypoInfo) const
 {
   ATH_MSG_DEBUG("Executing decide() of " << name() << " over " << hypoInfo.size() << " Decision Objects" );
-
+  if ( not m_pass ) {
+    ATH_MSG_DEBUG("Pass option is false, rejecting");
+    return StatusCode::SUCCESS;
+  }
   size_t count = 0;
   for (ITrigStreamerHypoToolMT::HypoInfo& hi : hypoInfo) {
     // Perform logic-flow check (this HypoTool can only accept the chain if the chain was active also in the previous decision object)
@@ -44,7 +47,7 @@ StatusCode TrigStreamerHypoToolMT::decide(std::vector<ITrigStreamerHypoToolMT::H
       ATH_MSG_DEBUG("Decision Object at index " << count << " Passed previous trigger step, passing here too.");
       TrigCompositeUtils::addDecisionID(getId().numeric(), hi.m_newDecision);
     } else {
-      ATH_MSG_DEBUG("Decision Object at index " << count << " didn't pass previous trigger step. Cannot be acceptd here.");
+      ATH_MSG_DEBUG("Decision Object at index " << count << " didn't pass previous trigger step. Cannot be accepted here.");
     }
     ++count;
   }
diff --git a/Trigger/TrigHypothesis/TrigStreamerHypo/src/TrigStreamerHypoToolMT.h b/Trigger/TrigHypothesis/TrigStreamerHypo/src/TrigStreamerHypoToolMT.h
index d0a245604fe..5f5d0ee860d 100644
--- a/Trigger/TrigHypothesis/TrigStreamerHypo/src/TrigStreamerHypoToolMT.h
+++ b/Trigger/TrigHypothesis/TrigStreamerHypo/src/TrigStreamerHypoToolMT.h
@@ -36,7 +36,8 @@ class TrigStreamerHypoToolMT: public extends<AthAlgTool, ITrigStreamerHypoToolMT
 
   // Identifier is used to keep track of which tool made which decision.
   // The information is stored in the event store.
-  HLT::Identifier m_decisionId;    
+  HLT::Identifier m_decisionId;
+  Gaudi::Property<bool> m_pass{ this, "Pass", true, "Pass or reject"};
 
 };
 #endif
diff --git a/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.cxx b/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.cxx
index 1755cfdb72d..dca20ee30aa 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.cxx
@@ -13,15 +13,14 @@ using TrigCompositeUtils::Decision;
 using TrigCompositeUtils::createAndStore;
 using TrigCompositeUtils::roiString;
 
-InputMakerForRoI:: InputMakerForRoI( const std::string& name, 
- ISvcLocator* pSvcLocator )    
-: InputMakerBase( name, pSvcLocator ) {}
+InputMakerForRoI:: InputMakerForRoI( const std::string& name, ISvcLocator* pSvcLocator )    
+  : InputMakerBase( name, pSvcLocator ) {}
 
 
 StatusCode  InputMakerForRoI::initialize() {
   ATH_MSG_DEBUG("Will produce output RoI collections: " << m_RoIs);
   ATH_CHECK( m_RoIs.initialize( SG::AllowEmpty ) );
-  ATH_CHECK( m_roiTool.retrieve() );
+  if (not m_roiTool.empty()) ATH_CHECK( m_roiTool.retrieve() );
   return StatusCode::SUCCESS;
 }
 
@@ -42,7 +41,7 @@ StatusCode  InputMakerForRoI::execute( const EventContext& context ) const {
   }
 
   // Find and link to the output Decision objects the ROIs to run over
-  ATH_CHECK( m_roiTool->attachROILinks(*outputHandle, context) );
+  if (not m_roiTool.empty()) ATH_CHECK( m_roiTool->attachROILinks(*outputHandle, context) );
 
   if (m_RoIs.empty()) {
     ATH_MSG_DEBUG("No concrete output ROI collection required from this InputMaker.");
diff --git a/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.h b/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.h
index aa615baf368..89218ab7a64 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/InputMakerForRoI.h
@@ -32,7 +32,7 @@
       "Name of the collection of ROI extrated from the input Decision Objects. Used as cocnrete starting handle for step's reconstruction."};
 
     ToolHandle<IViewCreatorROITool> m_roiTool{this, "RoITool", "",
-      "Tool used to supply per-Decision Object the RoI which should be processed."};
+      "Tool used to supply per-Decision Object the RoI which should be processed. If left empty and no RoIs will be attached."};
 
     Gaudi::Property<bool> m_mergeIntoSuperRoI{this, "MergeIntoSuperRoI", false,
       "If true, the output RoIs collection will contain only one ROI, this will be a SuperRoI encompassing all individual ROIs - one from each of the input Decision Objects."};
diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index 131e29e9acb..566f843c52f 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -236,6 +236,10 @@ HLT_2j55_pf_ftf_bdl1r60_split_2j55_pf_ftf_0eta320_L14J15p0ETA25:
     2: 5
 HLT_2j60_L1J15:
   eventCount: 0
+HLT_mb_alfaperf_L1RD0_EMPTY:
+  eventCount: 0
+HLT_mb_alfaperf_L1RD0_FILLED:
+  eventCount: 0
 HLT_2mu10_bJpsimumu_L12MU10:
   eventCount: 0
   stepCounts:
diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
index ec3ae496976..7e617f7ef4b 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -1702,6 +1702,10 @@ HLT_j85_pf_ftf_L1J20:
     1: 3
 HLT_larnoiseburst_L1XE60:
   eventCount: 0
+HLT_mb_alfaperf_L1RD0_EMPTY:
+  eventCount: 0
+HLT_mb_alfaperf_L1RD0_FILLED:
+  eventCount: 0
 HLT_mb_mbts_L1MBTS_1_EMPTY:
   eventCount: 9
   stepCounts:
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index fac03360b9e..feec6521d17 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -714,6 +714,7 @@ def setupMenu():
         ChainProp(name='HLT_mb_sp5000_trk80_hmt_L1RD0_FILLED',     l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup+['PS:Online']),
         ChainProp(name='HLT_mb_sp5000_trk100_hmt_L1RD0_FILLED',    l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup+['PS:Online']),
         ChainProp(name='HLT_mb_sp5000_trk200_hmt_L1RD0_FILLED',    l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup+['PS:Online']),
+
     ]
     TriggerFlags.CalibSlice.signatures     =    TriggerFlags.CalibSlice.signatures() + [
         ChainProp(name='HLT_noalg_AlfaPEB_L1ALFA_ANY', l1SeedThresholds=['FSNOSEED'], stream=['ALFACalib'], groups=['RATE:ALFACalibration','BW:Detector']),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py
index d935f17512e..6ae23d6ab8c 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py
@@ -56,6 +56,8 @@ def addP1Signatures():
     TriggerFlags.MinBiasSlice.signatures   = TriggerFlags.MinBiasSlice.signatures() + [
         ChainProp(name='HLT_mb_sptrk_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=['PS:Online',MinBiasGroup]),
         ChainProp(name='HLT_mb_sp_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=['PS:Online',MinBiasGroup]),
+        ChainProp(name='HLT_mb_alfaperf_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=['DISCARD'], groups=MinBiasGroup+['PS:Online']),
+        ChainProp(name='HLT_mb_alfaperf_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['DISCARD'], groups=MinBiasGroup+['PS:Online']),
     ]
     TriggerFlags.CalibSlice.signatures     = TriggerFlags.CalibSlice.signatures() + [
         ChainProp(name='HLT_noalg_LArPEBCalib_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['LArPEB'], groups=['RATE:Calibration','BW:Detector']),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index 5037766d805..da7b7cb1cfc 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -564,7 +564,7 @@ MinBiasChainParts = {
                         'trk100', 'trk110', 'trk120', 'trk130', 'trk140', 'trk150', 'trk160', 'trk180', 'trk200', 'trk220', 'trk240', 'trk260', 'trk280',
                         'pt2', 'pt4', 'pt6', 'pt8', ],
     'hypoEFsumEtInfo': ['sumet40', 'sumet50', 'sumet60', 'sumet70', 'sumet80', 'sumet90', 'sumet110', 'sumet150',],
-    'recoAlg'        : ['mbts', 'sptrk', 'sp', 'noalg', 'perf', 'hmt', 'hmtperf', 'idperf', 'zdcperf'],
+    'recoAlg'        : ['mbts', 'sptrk', 'sp', 'noalg', 'perf', 'hmt', 'hmtperf', 'idperf', 'zdcperf', 'alfaperf'],
     'addInfo'        : ['peb'],
     'sigFolder'     : 'MinBias',
     'subSigs'       : ['MinBias'],
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/ALFAMenuSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/ALFAMenuSequences.py
new file mode 100644
index 00000000000..b472bba3ed8
--- /dev/null
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/ALFAMenuSequences.py
@@ -0,0 +1,28 @@
+#
+#  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+#
+
+from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence
+from AthenaCommon.CFElements import parOR
+from AthenaCommon.CFElements import seqAND
+from TrigStreamerHypo.TrigStreamerHypoConf import TrigStreamerHypoAlgMT, TrigStreamerHypoToolMT
+
+
+def ALFAPerfSequence():
+    from TrigOnlineMonitor.TrigOnlineMonitorConfig import TrigALFAROBMonitor
+    from DecisionHandling.DecisionHandlingConf import InputMakerForRoI, ViewCreatorInitialROITool
+    inputMakerAlg = InputMakerForRoI("IM_ALFAPerf", RoITool = ViewCreatorInitialROITool() )
+#        inputMaker.RoIs="TimeBurnerInputRoIs"
+
+    reco = parOR("ALFAPerfReco", [TrigALFAROBMonitor()])
+    hypoAlg = TrigStreamerHypoAlgMT("ALFAPerfHypo")
+    hypoAlg.RuntimeValidation = False 
+    def alwaysRejectHypoToolGen(chainDict):
+        return TrigStreamerHypoToolMT(chainDict["chainName"], Pass = False)
+
+    viewSeq = seqAND("ALFAPerfRecoView", [inputMakerAlg, reco])
+
+    return MenuSequence(Sequence    = viewSeq,
+                        Maker       = inputMakerAlg,
+                        Hypo        = hypoAlg,
+                        HypoToolGen = alwaysRejectHypoToolGen)
\ No newline at end of file
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/MinBiasChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/MinBiasChainConfiguration.py
index c810512fa5c..26f8996cbd2 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/MinBiasChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MinBias/MinBiasChainConfiguration.py
@@ -6,7 +6,8 @@ log = logging.getLogger( __name__ )
 
 
 from TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase import ChainConfigurationBase
-from TriggerMenuMT.HLTMenuConfig.MinBias.MinBiasMenuSequences import MinBiasSPSequence, MinBiasTrkSequence, MinBiasMbtsSequence 
+from TriggerMenuMT.HLTMenuConfig.MinBias.MinBiasMenuSequences import MinBiasSPSequence, MinBiasTrkSequence, MinBiasMbtsSequence
+from TriggerMenuMT.HLTMenuConfig.MinBias.ALFAMenuSequences import ALFAPerfSequence
 
 #----------------------------------------------------------------
 # fragments generating configuration will be functions in New JO,
@@ -22,6 +23,8 @@ def MinBiasTrkSequenceCfg(flags):
 def MinBiasMbtsSequenceCfg(flags):
     return MinBiasMbtsSequence()
 
+def ALFAPerfSequenceCfg(flags):
+    return ALFAPerfSequence()
 
 class MinBiasChainConfig(ChainConfigurationBase):
 
@@ -44,6 +47,9 @@ class MinBiasChainConfig(ChainConfigurationBase):
         if "_sptrk" in self.chainName or "hmt" in self.chainName:
             steps.append(self.getMinBiasTrkStep())
 
+        if "_alfaperf" in self.chainName:
+            steps.append(self.getALFAPerfStep())
+
         return self.buildChain(steps)
 
     def getMinBiasMbtsStep(self):
@@ -54,3 +60,6 @@ class MinBiasChainConfig(ChainConfigurationBase):
 
     def getMinBiasTrkStep(self):
         return self.getStep(3,'TrkCount',[MinBiasTrkSequenceCfg])
+
+    def getALFAPerfStep(self):
+        return self.getStep(1,'ALFAPerf',[ALFAPerfSequenceCfg])
\ No newline at end of file
-- 
GitLab