From fa4d7b27da29cd1d295be1a6b1d64cc1574f84f4 Mon Sep 17 00:00:00 2001
From: Stefanie Morgenstern <stefanie.morgenstern@cern.ch>
Date: Mon, 14 Dec 2020 15:19:01 +0000
Subject: [PATCH] ATR-22117 add random trigger for FIRSTEMPTY

---
 .../share/ref_RDOtoRDOTrig_v1Dev_build.ref    |  2 ++
 .../share/ref_data_v1Dev_build.ref            |  2 ++
 .../python/HLTMenuConfig/Menu/LS2_v1.py       |  1 +
 .../TriggerMenuMT/python/L1/Config/ItemDef.py |  2 --
 .../python/L1/Menu/Menu_MC_pp_v8.py           | 24 +++++++++++++++----
 .../LVL1MenuConfig/LVL1Menu/Menu_LS2_v1.py    |  3 ++-
 6 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index c059ebb16c1..f087f38c2c1 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -2436,6 +2436,8 @@ HLT_noalg_cosmiccalo_L1J30_EMPTY:
   eventCount: 0
 HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY:
   eventCount: 0
+HLT_noalg_cosmiccalo_L1RD0_FIRSTEMPTY:
+  eventCount: 0
 HLT_noalg_cosmiccalo_L1RD1_EMPTY:
   eventCount: 0
 HLT_noalg_eb_L1ABORTGAPNOTCALIB_noPS:
diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
index dfabadecc32..bf4bc3734fc 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -1354,6 +1354,8 @@ HLT_noalg_cosmiccalo_L1J30_EMPTY:
   eventCount: 4
 HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY:
   eventCount: 4
+HLT_noalg_cosmiccalo_L1RD0_FIRSTEMPTY:
+  eventCount: 20
 HLT_noalg_cosmiccalo_L1RD1_EMPTY:
   eventCount: 20
 HLT_noalg_eb_L1ABORTGAPNOTCALIB_noPS:
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index 5e099641c19..1cae1c9258a 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -447,6 +447,7 @@ def setupMenu():
         #ChainProp(name='HLT_noalg_mb_L1RD2_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup),
         #ChainProp(name='HLT_noalg_zb_L1ZB', l1SeedThresholds=['FSNOSEED'], stream=['ZeroBias'], groups=ZeroBiasGroup),
         ChainProp(name='HLT_noalg_L1All', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=['RATE:SeededStreamers', 'BW:Other']), # ATR-22072, for rates in MC. To move to MC menu once good nightly in LS2_v1.
+        ChainProp(name='HLT_noalg_cosmiccalo_L1RD0_FIRSTEMPTY', l1SeedThresholds=['FSNOSEED'], stream=['CosmicCalo'], groups=['RATE:Calibration','BW:Detector']),
     ]
 
     TriggerFlags.MonitorSlice.signatures   = TriggerFlags.MonitorSlice.signatures() + [
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/ItemDef.py b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/ItemDef.py
index 404df6fa2ad..65464cc74fa 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/ItemDef.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/ItemDef.py
@@ -1178,8 +1178,6 @@ class ItemDef:
         MenuItem('L1_RD0_BGRP11'         ).setLogic( d.RNDM0 & bgrp11cond         ).setTriggerType(TT.rand)
         MenuItem('L1_RD0_ABORTGAPNOTCALIB').setLogic( d.RNDM0 & abortgap          ).setTriggerType(TT.rand)
 
-
-
         MenuItem('L1_RD1_FILLED'         ).setLogic( d.RNDM1 & physcond           ).setTriggerType(TT.rand)
         MenuItem('L1_RD1_EMPTY'          ).setLogic( d.RNDM1 & cosmiccond         ).setTriggerType(TT.zerobs)
         MenuItem('L1_RD1_BGRP10'         ).setLogic( d.RNDM1 & alfacalib          ).setTriggerType(TT.zerobs)
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_MC_pp_v8.py b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_MC_pp_v8.py
index d44ccffe4cc..cd4697b43fe 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_MC_pp_v8.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_MC_pp_v8.py
@@ -1,8 +1,22 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 # Run this file in order to print out the empty slots
 
-from ..Base.L1MenuFlags import L1MenuFlags
+from TriggerMenuMT.L1.Base.L1MenuFlags import L1MenuFlags
+
+def print_available():
+    import logging
+    defineMenu()
+    available = list(set(range(509)) - set(L1MenuFlags.CtpIdMap.value.values()) - set([508]))
+    freeItems = 512 - len(L1MenuFlags.items.value) # correct for ZB and CALREQ items
+    floatingItems = sorted(list(set(L1MenuFlags.items.value) - set(L1MenuFlags.CtpIdMap.value.keys()))) # these items get their CTPID assigned automatically
+    unusedItemsWithCTPID = set(L1MenuFlags.CtpIdMap.value.keys()) - set(L1MenuFlags.items.value) # this should be empty, otherwise remove the items from the CtpIdMap
+    available.sort()
+    logging.info("There are %d available CTP IDs: %s", len(available), ",".join(map(str,available)))
+    logging.info("IDs >= 472 go in partition 2, IDs >= 492 go in partition 3")
+    logging.info("There are %d free items", freeItems)
+    logging.info("There are %d floating items: %s", len(floatingItems), ",".join(map(str,floatingItems)))
+    logging.info("There are %d unused items with CTP ID: %s", len(unusedItemsWithCTPID), ",".join(map(str,unusedItemsWithCTPID)))
 
 def defineMenu():
 
@@ -191,7 +205,7 @@ def defineMenu():
         'L1_EM12_XS20', 'L1_EM15_XS30',
         
         # RNDM
-        'L1_RD0_FILLED', 'L1_RD0_UNPAIRED_ISO',  'L1_RD0_EMPTY', 'L1_RD0_ABORTGAPNOTCALIB',
+        'L1_RD0_FILLED', 'L1_RD0_UNPAIRED_ISO',  'L1_RD0_EMPTY', 'L1_RD0_ABORTGAPNOTCALIB', 'L1_RD0_FIRSTEMPTY',
         'L1_RD1_EMPTY',
         'L1_RD2_EMPTY',
         'L1_RD2_FILLED',
@@ -542,6 +556,7 @@ def defineMenu():
         'L1_RD0_FILLED' : 200,
         'L1_RD0_UNPAIRED_ISO' : 201,
         'L1_RD0_EMPTY' : 202,
+        'L1_RD0_FIRSTEMPTY' : 209,
         'L1_RD1_EMPTY' : 204,
         'L1_RD2_FILLED' : 205,
         'L1_RD2_EMPTY' : 206,
@@ -788,5 +803,4 @@ def defineMenu():
 
     }
 
-
-
+if __name__ == "__main__": print_available()
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/Menu_LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/Menu_LS2_v1.py
index 9a9ef8eaaec..cf3f0e5c85b 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/Menu_LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/Menu_LS2_v1.py
@@ -474,7 +474,7 @@ def defineMenu():
         # RNDM
         'L1_RD0_FILLED', 'L1_RD0_UNPAIRED_ISO',  'L1_RD0_EMPTY',
         "L1_RD1_EMPTY","L1_RD2_EMPTY",
-#        'L1_RD0_FIRSTEMPTY', 
+        'L1_RD0_FIRSTEMPTY', 
         'L1_RD0_ABORTGAPNOTCALIB',
         'L1_RD2_FILLED', 'L1_RD2_EMPTY',
         'L1_RD3_FILLED', 'L1_RD3_EMPTY',
@@ -892,6 +892,7 @@ def defineMenu():
         'L1_RD0_FILLED' : 200,
         'L1_RD0_UNPAIRED_ISO' : 201,
         'L1_RD0_EMPTY' : 202,
+        'L1_RD0_FIRSTEMPTY' : 209,
         'L1_RD1_EMPTY' : 204,
         'L1_RD2_FILLED' : 205,
         'L1_RD2_EMPTY' : 206,
-- 
GitLab