diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index 9c4757a74b6fe3f7b7d9e3021d69603efdaef980..c8d782b99bf8d1c3f7d20f1e541bc7578ca00af9 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -2444,6 +2444,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 9c8ff74457777e39e45614ba290edb1a50ba2ec2..f55a38a8f6e371abf458eda87e21727c9b4a5484 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -1362,6 +1362,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 3d04a4a3053328a6ca203c2875d0f947d762f92d..11510d8b227a8e1bf91d7004abf587ec002967e8 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 404df6fa2ad0396890bc0aa7c69d70b9a58ab620..65464cc74faa46c80996f87f3891833229e7a432 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 d44ccffe4ccbbb0d6bf38c4f4af73b2d9df0761a..cd4697b43fecea4acfb1e66b6bccc28c19143f1a 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 9a9ef8eaaec7b53d0a3c0abd0412450293edfd39..cf3f0e5c85b636293b171dbd2df324be765c5d65 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,