From 267c71e4e80f721274755c93e43d78e69f51058c Mon Sep 17 00:00:00 2001
From: tstreble <thomas.strebler@cern.ch>
Date: Wed, 12 Mar 2025 23:41:39 +0100
Subject: [PATCH 01/14] Added Pixel JSON masking config

---
 .../python/PixelConditionsConfig.py                        | 7 +++++--
 InnerDetector/InDetConfig/python/InDetConfigFlags.py       | 4 ++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/python/PixelConditionsConfig.py b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/python/PixelConditionsConfig.py
index 9feba07b5330..b4326d21efcf 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/python/PixelConditionsConfig.py
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/python/PixelConditionsConfig.py
@@ -1,6 +1,6 @@
 """Define functions to configure Pixel conditions algorithms
 
-Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
+Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 """
 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
@@ -216,7 +216,10 @@ def PixelDeadMapCondAlgCfg(flags, name="PixelDeadMapCondAlg", **kwargs):
     """Return a ComponentAccumulator with configured PixelDeadMapCondAlg"""
     acc = ComponentAccumulator()
     acc.merge(PixelConfigCondAlgCfg(flags))
-    if flags.GeoModel.Run is LHCPeriod.Run1:
+    if flags.InDet.JsonPathPixelModuleVeto:
+        kwargs.setdefault("ReadKey", "")
+        kwargs.setdefault("JsonPath", flags.InDet.JsonPathPixelModuleVeto)
+    elif flags.GeoModel.Run is LHCPeriod.Run1:
         kwargs.setdefault("ReadKey", "")
     else:
         kwargs.setdefault("ReadKey", "/PIXEL/PixelModuleFeMask")
diff --git a/InnerDetector/InDetConfig/python/InDetConfigFlags.py b/InnerDetector/InDetConfig/python/InDetConfigFlags.py
index 5c6abe61b911..c9337b1e8c1a 100644
--- a/InnerDetector/InDetConfig/python/InDetConfigFlags.py
+++ b/InnerDetector/InDetConfig/python/InDetConfigFlags.py
@@ -31,6 +31,10 @@ def createInDetConfigFlags():
     icf.addFlag("InDet.ForceCoolVectorPayload", False)
     # Turn on SCT_ModuleVetoSvc, allowing it to be configured later
     icf.addFlag("InDet.doSCTModuleVeto", False)
+    # Path to the JSON file to mask the modules for Pixel.
+    # A non-empty string activates the veto automatically
+    icf.addFlag("InDet.JsonPathPixelModuleVeto", "")
+
     # Enable check for dead modules and FEs
     icf.addFlag("InDet.checkDeadElementsOnTrack", True)
     # Turn running of Event Info TRT Occupancy Filling Alg on and off (also whether it is used in TRT PID calculation)
-- 
GitLab


From 0247f36b0a6ecfae6116a39f135c56a7cabdc8c8 Mon Sep 17 00:00:00 2001
From: Patrick Scholer <patrick.scholer@cern.ch>
Date: Thu, 13 Mar 2025 19:59:26 +0000
Subject: [PATCH 02/14] updating cond tags in ci tests

updating cond tags in ci tests
---
 AtlasTest/CITest/Athena.cmake                 | 12 ++++++------
 Tools/PROCTools/data/q449_AOD_digest.ref      | 14 +++++++-------
 Tools/WorkflowTestRunner/python/References.py |  2 +-
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/AtlasTest/CITest/Athena.cmake b/AtlasTest/CITest/Athena.cmake
index d86a157b7f05..cebfce109b97 100644
--- a/AtlasTest/CITest/Athena.cmake
+++ b/AtlasTest/CITest/Athena.cmake
@@ -69,7 +69,7 @@ atlas_add_citest( RecoRun2MC_PileUp
    DEPENDS_SUCCESS PileUpPresamplingRun2 )
 
 atlas_add_citest( RecoRun3Data
-   SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a q449 --threads 8 -e '--maxEvents 100 --preExec="flags.Exec.FPE=500;" --conditionsTag CONDBR2-BLKPA-2022-13' --run-only 
+   SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a q449 --threads 8 -e '--maxEvents 100 --preExec="flags.Exec.FPE=500;" --conditionsTag CONDBR2-BLKPA-2022-16' --run-only 
    PROPERTIES PROCESSORS 8 )
 
 atlas_add_citest( RecoRun3Data_Checks
@@ -77,7 +77,7 @@ atlas_add_citest( RecoRun3Data_Checks
    DEPENDS_SUCCESS RecoRun3Data )
 
 atlas_add_citest( RecoRun3Data_Bulk
-    SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a f1333 --threads 8  -e '--skipEvents 100 --maxEvents 500 --inputBSFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/TCT_Run3/data22_13p6TeV.00431493.physics_Main.daq.RAW._lb0525._SFO-16._0001.data --conditionsTag CONDBR2-BLKPA-2022-13'  --run-only --no-output-checks 
+    SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a f1333 --threads 8  -e '--skipEvents 100 --maxEvents 500 --inputBSFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/TCT_Run3/data22_13p6TeV.00431493.physics_Main.daq.RAW._lb0525._SFO-16._0001.data --conditionsTag CONDBR2-BLKPA-2022-16'  --run-only --no-output-checks 
    PROPERTIES PROCESSORS 8 )
 
 atlas_add_citest( RecoRun3Data_Bulk_Checks
@@ -85,7 +85,7 @@ atlas_add_citest( RecoRun3Data_Bulk_Checks
    DEPENDS_SUCCESS RecoRun3Data_Bulk )
 
 atlas_add_citest( RecoRun3Data_Express
-    SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a x785 -e '--maxEvents 25 --inputBSFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/TCT_Run3/data24_13p6TeV.00477023.express_express.merge.RAW._lb0287._SFO-ALL._0001.1 --conditionsTag CONDBR2-ES1PA-2024-03 ' --no-output-checks
+    SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a x785 -e '--maxEvents 25 --inputBSFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/TCT_Run3/data24_13p6TeV.00477023.express_express.merge.RAW._lb0287._SFO-ALL._0001.1 --conditionsTag CONDBR2-ES1PA-2024-05 ' --no-output-checks
     LOG_IGNORE_PATTERN "WARNING FPE .*PixelChargeLUTCalibCondAlg"
     # ignore FPEs from PixelChargeLUTCalibCondAlg
   )
@@ -106,10 +106,10 @@ atlas_add_citest( ZdcRec_ZDCInjCalib
   )
 
 atlas_add_citest( RecoRun3Data_Cosmics 
-   SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a q450 -e '--maxEvents 25  --preExec="all:flags.Exec.FPE=500;" --conditionsTag CONDBR2-BLKPA-2022-13'  --no-output-checks)
+   SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a q450 -e '--maxEvents 25  --preExec="all:flags.Exec.FPE=500;" --conditionsTag CONDBR2-BLKPA-2022-16'  --no-output-checks)
 
 atlas_add_citest( RecoRun3Data_Calib
-   SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a q451 -e '--maxEvents 25  --preExec="all:flags.Exec.FPE=500;" --conditionsTag CONDBR2-BLKPA-2022-13' --no-output-checks)
+   SCRIPT RunWorkflowTests_Run3.py --CI -r -w DataReco -a q451 -e '--maxEvents 25  --preExec="all:flags.Exec.FPE=500;" --conditionsTag CONDBR2-BLKPA-2022-16' --no-output-checks)
 
 atlas_add_citest( RecoRun3MC
    SCRIPT RunWorkflowTests_Run3.py --CI -r -w MCReco -e '--maxEvents 25 --conditionsTag OFLCOND-MC23-SDR-RUN3-08' )
@@ -215,7 +215,7 @@ atlas_add_citest( CPAlgorithmsRun3Data_PHYSLITE
 # Data Quality
 #################################################################################
 atlas_add_citest( GlobalMonitoring
-   SCRIPT GlobalMonitoring.py IOVDb.GlobalTag="CONDBR2-HLTP-2024-03" --offline  --evtMax 20 )
+   SCRIPT GlobalMonitoring.py IOVDb.GlobalTag="CONDBR2-HLTP-2025-01" --offline  --evtMax 20 )
 
 atlas_add_citest( DataQuality_Run3MC
    SCRIPT Run3DQTestingDriver.py 'Input.Files=["../RecoRun3MC/run_q454/myAOD.pool.root"]' DQ.Environment=AOD DQ.Steering.doHLTMon=False --threads=1
diff --git a/Tools/PROCTools/data/q449_AOD_digest.ref b/Tools/PROCTools/data/q449_AOD_digest.ref
index 0cdb3075dcd9..b1440b2836b6 100644
--- a/Tools/PROCTools/data/q449_AOD_digest.ref
+++ b/Tools/PROCTools/data/q449_AOD_digest.ref
@@ -1,18 +1,18 @@
          run       event       nTopo   nIdTracks  nTauTracks       nTaus      nMuons       nElec   nTrueElec   nFakeElec       nPhot   nTruePhot   nFakePhot
       431493  1096110158         311         447          87           6           1          15           0          15          15           0          15
-      431493  1096111916         286         319          49           6           0          10           0          10          14           0          14
-      431493  1096112143         267         389          48           4           1           1           0           1           2           0           2
+      431493  1096111916         286         319          49           6           1          10           0          10          14           0          14
+      431493  1096112143         267         389          48           4           0           1           0           1           2           0           2
       431493  1096113011         367         402          71           9           0           9           0           9          11           0          11
       431493  1096113187         274         319          71           7           0           9           0           9          15           0          15
       431493  1096113771         294         409          77           6           0          10           0          10          12           0          12
       431493  1096114154         374         572          87           6           0           6           0           6          18           0          18
       431493  1096114168         132         151          17           4           0           2           0           2           6           0           6
-      431493  1096115980         390         519         130          10           0          20           0          20          22           0          22
+      431493  1096115980         390         519         130          10           1          20           0          20          22           0          22
       431493  1096116200         309         410          57           6           1           4           0           4          12           0          12
       431493  1096118782         294         357          95           7           1          12           0          12          23           0          23
       431493  1096119418         307         337          81           6           0           5           0           5           9           0           9
       431493  1096119460         227         313          15           2           0           2           0           2           5           0           5
-      431493  1096120001         388         586         124           8           0          14           0          14          18           0          18
+      431493  1096120001         388         586         124           8           1          14           0          14          18           0          18
       431493  1096122174         301         413          72           8           0           5           0           5          23           0          23
       431493  1096123090         428         537         158          11           0          20           0          20          28           0          28
       431493  1096123254         489         685          96           7           2          14           0          14          27           0          27
@@ -50,7 +50,7 @@
       431493  1096146735         321         378         105          10           2          21           0          21          26           0          26
       431493  1096147568         392         600          41           4           2           4           0           4          14           0          14
       431493  1096150983         272         320          22           5           0           2           0           2          13           0          13
-      431493  1096152978         365         498          87           7           1           8           0           8          11           0          11
+      431493  1096152978         365         498          87           7           2           8           0           8          11           0          11
       431493  1096153967         539         655         111          10           2           7           0           7          33           0          33
       431493  1096155046         240         373          32           4           1           1           0           1           3           0           3
       431493  1096155387         335         486          84           9           1           7           0           7          15           0          15
@@ -72,7 +72,7 @@
       431493  1096171788         310         441          60           4           0           9           0           9          12           0          12
       431493  1096171838         423         615         140           9           0          10           0          10          25           0          25
       431493  1096173554         314         425          47           5           1           4           0           4           9           0           9
-      431493  1096173910         355         572         107           8           1          11           0          11           9           0           9
+      431493  1096173910         355         572         107           8           0          11           0          11           9           0           9
       431493  1096176781         366         440          89          10           0          11           0          11          20           0          20
       431493  1096177006         309         381          45           5           0           7           0           7          11           0          11
       431493  1096177862         252         280          13           2           0           2           0           2          11           0          11
@@ -80,7 +80,7 @@
       431493  1096178101         361         439          19           3           0           1           0           1          10           0          10
       431493  1096178859         348         361          38           5           1           7           0           7          14           0          14
       431493  1096180059         377         436          34           4           1           2           0           2          22           0          22
-      431493  1096181059         229         263          38           5           0           7           0           7          10           0          10
+      431493  1096181059         229         263          38           5           1           7           0           7          10           0          10
       431493  1096181128         363         556          83           8           1           6           0           6          14           0          14
       431493  1096182354         308         314          58           6           1          13           0          13          16           0          16
       431493  1096182555         238         358          58           7           0           6           0           6           9           0           9
diff --git a/Tools/WorkflowTestRunner/python/References.py b/Tools/WorkflowTestRunner/python/References.py
index 19a8fd94b21d..468b2bffe59b 100644
--- a/Tools/WorkflowTestRunner/python/References.py
+++ b/Tools/WorkflowTestRunner/python/References.py
@@ -23,7 +23,7 @@ references_map = {
     "d1912": "v5",
     # Reco
     "q442": "v9",
-    "q449": "v24",
+    "q449": "v25",
     "q452": "v10",
     "q454": "v23",
     # Derivations
-- 
GitLab


From b87dbc2f56328b8a618cd055bc28e16e03c85240 Mon Sep 17 00:00:00 2001
From: Tamara Vazquez Schroeder <tamara.vazquez.schroeder@cern.ch>
Date: Thu, 13 Mar 2025 21:28:17 +0000
Subject: [PATCH 03/14] Update version to 24.0.83

---
 Projects/Athena/version.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Projects/Athena/version.txt b/Projects/Athena/version.txt
index a1b7724a5989..d8fffd262b0c 100644
--- a/Projects/Athena/version.txt
+++ b/Projects/Athena/version.txt
@@ -1 +1 @@
-24.0.82
\ No newline at end of file
+24.0.83
\ No newline at end of file
-- 
GitLab


From fcb8aba46cef08b998763f5562b3e7cc91ef0783 Mon Sep 17 00:00:00 2001
From: Tamara Vazquez Schroeder <tamara.vazquez.schroeder@cern.ch>
Date: Thu, 13 Mar 2025 21:29:47 +0000
Subject: [PATCH 04/14] Update version to 24.0.83

---
 Projects/AthSimulation/version.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Projects/AthSimulation/version.txt b/Projects/AthSimulation/version.txt
index a1b7724a5989..d8fffd262b0c 100644
--- a/Projects/AthSimulation/version.txt
+++ b/Projects/AthSimulation/version.txt
@@ -1 +1 @@
-24.0.82
\ No newline at end of file
+24.0.83
\ No newline at end of file
-- 
GitLab


From d24104d836152a8062071d84f5031eb540c24725 Mon Sep 17 00:00:00 2001
From: Tamara Vazquez Schroeder <tamara.vazquez.schroeder@cern.ch>
Date: Thu, 13 Mar 2025 21:30:31 +0000
Subject: [PATCH 05/14] Update version to 24.0.83

---
 Projects/DetCommon/version.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Projects/DetCommon/version.txt b/Projects/DetCommon/version.txt
index a1b7724a5989..d8fffd262b0c 100644
--- a/Projects/DetCommon/version.txt
+++ b/Projects/DetCommon/version.txt
@@ -1 +1 @@
-24.0.82
\ No newline at end of file
+24.0.83
\ No newline at end of file
-- 
GitLab


From ce55d1e25cf3875645765386f2c5ed886fb56163 Mon Sep 17 00:00:00 2001
From: Tamara Vazquez Schroeder <tamara.vazquez.schroeder@cern.ch>
Date: Thu, 13 Mar 2025 21:31:06 +0000
Subject: [PATCH 06/14] Update version to 24.0.83

---
 Projects/VP1Light/version.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Projects/VP1Light/version.txt b/Projects/VP1Light/version.txt
index a1b7724a5989..d8fffd262b0c 100644
--- a/Projects/VP1Light/version.txt
+++ b/Projects/VP1Light/version.txt
@@ -1 +1 @@
-24.0.82
\ No newline at end of file
+24.0.83
\ No newline at end of file
-- 
GitLab


From 09b2695c2b5c6c065b778f33648870acf19ceb51 Mon Sep 17 00:00:00 2001
From: John Derek Chapman <chapman@hep.phy.cam.ac.uk>
Date: Fri, 14 Mar 2025 06:46:29 +0000
Subject: [PATCH 07/14] Simulation: Make Frozen Shower configuration more
 robust

LArG4ShowerLibSvc: Throw an error if the expected frozen shower libraries are not all loaded (ATLASSIM-7444)
---
 .../src/LArG4ShowerLibSvc.cxx                 | 30 +++++++++++++------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/LArCalorimeter/LArG4/LArG4ShowerLibSvc/src/LArG4ShowerLibSvc.cxx b/LArCalorimeter/LArG4/LArG4ShowerLibSvc/src/LArG4ShowerLibSvc.cxx
index dd29b5a9a19c..c3ddf5992d3f 100755
--- a/LArCalorimeter/LArG4/LArG4ShowerLibSvc/src/LArG4ShowerLibSvc.cxx
+++ b/LArCalorimeter/LArG4/LArG4ShowerLibSvc/src/LArG4ShowerLibSvc.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "LArG4ShowerLibSvc/LArG4ShowerLibSvc.h"
@@ -45,11 +45,13 @@ StatusCode LArG4ShowerLibSvc::initialize()
 {
   ATH_MSG_INFO("Initializing");
 
+  std::vector<std::string> ignoredLibraryFiles{};
   // iterate through filenames in list
   for (const std::string& fileName : m_fileNameList) {
     std::string resolvedFilename = PathResolverFindCalibFile(fileName);
     if (resolvedFilename.empty()) {
       ATH_MSG_WARNING("Could not resolve input filename " << (fileName) << ". Ignoring!");
+      ignoredLibraryFiles.push_back(fileName);
       continue;
     } else {
       ATH_MSG_INFO("Resolving input filename to " << resolvedFilename);
@@ -59,6 +61,7 @@ StatusCode LArG4ShowerLibSvc::initialize()
 
     if (rootfile.IsZombie()) {
       ATH_MSG_WARNING("File " << resolvedFilename << " is not a valid ROOT file");
+      ignoredLibraryFiles.push_back(fileName);
       continue;
     }
 
@@ -70,11 +73,13 @@ StatusCode LArG4ShowerLibSvc::initialize()
     // if no library can be created based on the file nullptr is returned
     if (library == nullptr) {
       ATH_MSG_WARNING("File " << resolvedFilename << " is not a valid library file");
+      ignoredLibraryFiles.push_back(fileName);
       continue;
     }
 
     if (m_detmap.find(library->detector()) == m_detmap.end()) {
       ATH_MSG_WARNING("Library " << resolvedFilename << " is produced for unknown detector: " << library->detector());
+      ignoredLibraryFiles.push_back(fileName);
       delete library;
       continue;
     }
@@ -96,17 +101,24 @@ StatusCode LArG4ShowerLibSvc::initialize()
 
   // no point in the service with no libraries
   if (m_libraryMap.empty()) {
-    ATH_MSG_WARNING("No library files found");
-  } else {
-    ATH_MSG_INFO("List of loaded libraries:");
-    for (const auto& m : m_libraryMap) {
-      ATH_MSG_INFO("      " << m_locations[m.first] << ": " << m.second->comment());
+    ATH_MSG_ERROR("No library files found. Please check the configuration of this job.");
+    return StatusCode::FAILURE;
+  }
+  // some of the configured library files did not work
+  if (!ignoredLibraryFiles.empty() ) {
+    for (const std::string& fileName : ignoredLibraryFiles) {
+      ATH_MSG_ERROR("Failed to create a library from filename: " << (fileName));
+    }
+    ATH_MSG_ERROR("Some library filenames were invalid. Please check the configuration of this job.");
+    return StatusCode::FAILURE;
+  }
+  ATH_MSG_INFO("List of loaded libraries:");
+  for (const auto& m : m_libraryMap) {
+    ATH_MSG_INFO("      " << m_locations[m.first] << ": " << m.second->comment());
 #ifdef DEBUG_FrozenShowers
-      m_statisticsMap[m.second] = m.second->createStatistics();
+    m_statisticsMap[m.second] = m.second->createStatistics();
 #endif
-    }
   }
-
   ATH_MSG_INFO("Shower library successfully initialized.");
 
   return StatusCode::SUCCESS;
-- 
GitLab


From 403f4540d0d2276ce4cfa4960e8f335c9a8f9238 Mon Sep 17 00:00:00 2001
From: Jiri Masik <jiri.masik@cern.ch>
Date: Fri, 14 Mar 2025 09:32:43 +0000
Subject: [PATCH 08/14] RDO compatibility tests for mc23 production

RDO compatibility tests for mc23 production
---
 .../test/test_mc23a_13p6TeV.sh                | 13 +++++----
 .../test/test_mc23d_13p6TeV.sh                | 28 +++++++++++++++++++
 2 files changed, 36 insertions(+), 5 deletions(-)
 create mode 100755 Reconstruction/RecExample/RecJobTransformTests/test/test_mc23d_13p6TeV.sh

diff --git a/Reconstruction/RecExample/RecJobTransformTests/test/test_mc23a_13p6TeV.sh b/Reconstruction/RecExample/RecJobTransformTests/test/test_mc23a_13p6TeV.sh
index 85c1bdce827a..7774cbb14304 100755
--- a/Reconstruction/RecExample/RecJobTransformTests/test/test_mc23a_13p6TeV.sh
+++ b/Reconstruction/RecExample/RecJobTransformTests/test/test_mc23a_13p6TeV.sh
@@ -13,11 +13,14 @@ CONDTAG=$(python -c "from AthenaConfiguration.TestDefaults import defaultConditi
 GEOTAG=$(python -c "from AthenaConfiguration.TestDefaults import defaultGeometryTags; print(defaultGeometryTags.RUN3)")
 BKGFILE=$(python -c "from AthenaConfiguration.TestDefaults import defaultTestFiles; print(defaultTestFiles.RDO_BKG_RUN3[0])")
 
-Reco_tf.py --CA --multithreaded --maxEvents=300 \
---inputHITSFile="${INPUTFILE}" --conditionsTag="${CONDTAG}" --geometryVersion="${GEOTAG}" \
---inputRDO_BKGFile="${BKGFILE}" \
---outputRDOFile=myRDO.pool.root --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root \
---preInclude 'Campaigns.MC23a'
+Reco_tf.py --CA "default:True" "RDOtoRDOTrigger:False" \
+           --multithreaded --maxEvents=300 \
+	   --asetup "RDOtoRDOTrigger:Athena,23.0.20.7" \
+	   --steering "doOverlay" "doRDO_TRIG" "doTRIGtoALL" \
+	   --inputHITSFile="${INPUTFILE}" --conditionsTag="${CONDTAG}" --geometryVersion="${GEOTAG}" \
+	   --inputRDO_BKGFile="${BKGFILE}" \
+	   --outputRDOFile=myRDO.pool.root --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root \
+	   --preInclude 'Campaigns.MC23a'
 
 RES=$?
 echo "art-result: $RES Reco"
diff --git a/Reconstruction/RecExample/RecJobTransformTests/test/test_mc23d_13p6TeV.sh b/Reconstruction/RecExample/RecJobTransformTests/test/test_mc23d_13p6TeV.sh
new file mode 100755
index 000000000000..14725abc9975
--- /dev/null
+++ b/Reconstruction/RecExample/RecJobTransformTests/test/test_mc23d_13p6TeV.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# art-description: Reco_tf runs on MC23d 13.6 TeV ttbar with HITS input (overlay+trigger+reco). Report issues to https://its.cern.ch/jira/projects/ATLASRECTS/
+# art-output: log.*
+# art-athena-mt: 8
+# art-type: grid
+# art-include: main/Athena
+# art-include: 24.0/Athena
+
+export ATHENA_CORE_NUMBER=8
+INPUTFILE=$(python -c "from AthenaConfiguration.TestDefaults import defaultTestFiles; print(defaultTestFiles.HITS_RUN3[0])")
+CONDTAG=$(python -c "from AthenaConfiguration.TestDefaults import defaultConditionsTags; print(defaultConditionsTags.RUN3_MC)")
+GEOTAG=$(python -c "from AthenaConfiguration.TestDefaults import defaultGeometryTags; print(defaultGeometryTags.RUN3)")
+BKGFILE=$(python -c "from AthenaConfiguration.TestDefaults import defaultTestFiles; print(defaultTestFiles.RDO_BKG_RUN3[0])")
+
+#TODO update input files from mc23d campaign when available
+
+Reco_tf.py --CA "default:True" "RDOtoRDOTrigger:False" \
+	   --multithreaded --maxEvents=300 \
+	   --asetup "RDOtoRDOTrigger:Athena,23.0.32.7" \
+	   --steering "doOverlay" "doRDO_TRIG" "doTRIGtoALL" \
+	   --inputHITSFile="${INPUTFILE}" --conditionsTag="${CONDTAG}" --geometryVersion="${GEOTAG}" \
+	   --inputRDO_BKGFile="${BKGFILE}" \
+	   --outputRDOFile=myRDO.pool.root --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root \
+	   --preInclude 'Campaigns.MC23d'
+
+RES=$?
+echo "art-result: $RES Reco"
-- 
GitLab


From 2167e194c601408772282176cc50c5cb20bbd89c Mon Sep 17 00:00:00 2001
From: Kaito Sugizaki <kaito.sugizaki@cern.ch>
Date: Fri, 14 Mar 2025 15:32:28 +0000
Subject: [PATCH 09/14] Fix memory blowup issues with anomaly detection trigger
 chains

Fix memory blowup issues with anomaly detection trigger chains
---
 .../src/TrigADComboHypoTool.cxx               |  28 +-
 .../share/ref_RDOtoRDOTrig_v1Dev_build.ref    | 408 ++++++++++++++++++
 .../share/ref_v1Dev_decodeBS_build.ref        | 378 ++++++++++++++++
 .../python/HLT/Menu/Dev_pp_run3_v1.py         |  41 +-
 4 files changed, 820 insertions(+), 35 deletions(-)

diff --git a/Trigger/TrigHypothesis/TrigAnomalyDetectionHypo/src/TrigADComboHypoTool.cxx b/Trigger/TrigHypothesis/TrigAnomalyDetectionHypo/src/TrigADComboHypoTool.cxx
index 9da26d68f357..c38f3479aea0 100644
--- a/Trigger/TrigHypothesis/TrigAnomalyDetectionHypo/src/TrigADComboHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigAnomalyDetectionHypo/src/TrigADComboHypoTool.cxx
@@ -248,7 +248,7 @@ bool TrigADComboHypoTool::getAdDecision(
 		 << "METs: " << input_mets.size());
 
   // pt1 eta1 phi1 pt2 eta2 phi2 ... for 6 jets, 3 electrons, 3 muons, 3 photons, and MET
-  unsigned int metind = (m_maxjs+m_maxes+m_maxms+m_maxgs)*3;
+  unsigned int metind = (m_maxjs.value()+m_maxes.value()+m_maxms.value()+m_maxgs.value())*3;
   std::vector<float> inputTensor;
 
   unsigned int jet_count = 0;
@@ -259,12 +259,12 @@ bool TrigADComboHypoTool::getAdDecision(
 		   << jet->eta() << ", "
 		   << jet->phi() << ", "
 		   << jet->m()/1000 << ")");
-    if (jet_count<m_maxjs) {
+    if (jet_count<m_maxjs.value()) {
       inputTensor.insert(inputTensor.end(), {static_cast<float>(jet->pt()/1000), static_cast<float>(jet->eta()), static_cast<float>(jet->phi())});
+      jet_count++;
     }
-    jet_count++;
   }
-  inputTensor.insert(inputTensor.end(), 3*(m_maxjs-jet_count), 0.);
+  inputTensor.insert(inputTensor.end(), 3*(m_maxjs.value()-jet_count), 0.);
 
   unsigned int ele_count = 0;
   for(const auto &ele : input_electrons){
@@ -274,12 +274,12 @@ bool TrigADComboHypoTool::getAdDecision(
 		   << ele->eta() << ", "
 		   << ele->phi() << ", "
 		   << ele->m()/1000 << ")");
-    if (ele_count<m_maxes) {
+    if (ele_count<m_maxes.value()) {
       inputTensor.insert(inputTensor.end(), {static_cast<float>(ele->pt()/1000), static_cast<float>(ele->eta()), static_cast<float>(ele->phi())});
+      ele_count++;
     }
-    ele_count++;
   }
-  inputTensor.insert(inputTensor.end(), 3*(m_maxes-ele_count), 0.);
+  inputTensor.insert(inputTensor.end(), 3*(m_maxes.value()-ele_count), 0.);
 
   unsigned int muon_count = 0;
   for(const auto &muon : input_muons){
@@ -289,12 +289,12 @@ bool TrigADComboHypoTool::getAdDecision(
 		   << muon->eta() << ", "
 		   << muon->phi() << ", "
 		   << muon->m()/1000 << ")");
-    if (muon_count<m_maxms) {
+    if (muon_count<m_maxms.value()) {
       inputTensor.insert(inputTensor.end(), {static_cast<float>(muon->pt()/1000), static_cast<float>(muon->eta()), static_cast<float>(muon->phi())});
+      muon_count++;
     }
-    muon_count++;
   }
-  inputTensor.insert(inputTensor.end(), 3*(m_maxms-muon_count), 0.);
+  inputTensor.insert(inputTensor.end(), 3*(m_maxms.value()-muon_count), 0.);
 	
   unsigned int gam_count = 0;
   for(const auto &gam : input_photons){
@@ -304,12 +304,12 @@ bool TrigADComboHypoTool::getAdDecision(
 		   << gam->eta() << ", "
 		   << gam->phi() << ", "
 		   << gam->m()/1000 << ")");
-    if (gam_count<m_maxgs) {
+    if (gam_count<m_maxgs.value()) {
       inputTensor.insert(inputTensor.end(), {static_cast<float>(gam->pt()/1000), static_cast<float>(gam->eta()), static_cast<float>(gam->phi())});
+      gam_count++;
     }
-    gam_count++;
   }
-  inputTensor.insert(inputTensor.end(), 3*(m_maxgs-gam_count), 0.);
+  inputTensor.insert(inputTensor.end(), 3*(m_maxgs.value()-gam_count), 0.);
 
   inputTensor.insert(inputTensor.end(), {0., 0., 0.});
   for(const auto &met : input_mets){
@@ -345,7 +345,7 @@ float TrigADComboHypoTool::runInference(std::vector<float> &tensor) const {
     ATH_MSG_DEBUG("in TrigADComboHypoTool::runInference()");
 
     auto memory_info = Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault);
-    int input_tensor_size = (m_maxjs+m_maxes+m_maxms+m_maxgs+1)*3;
+    int input_tensor_size = (m_maxjs.value()+m_maxes.value()+m_maxms.value()+m_maxgs.value()+1)*3;
     Ort::Value input_tensor = Ort::Value::CreateTensor<float>(memory_info, tensor.data(), input_tensor_size, m_input_node_dims.data(), m_input_node_dims.size());
 
     // Ort::Session::Run is non-const.
diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index f35ef30b7247..b3e9ead6b6ba 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -1,3 +1,411 @@
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetL_L1ADVAEL:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 3
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetL_L1ADVAET:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 3
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetM_L1ADVAEL:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 3
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetM_L1ADVAET:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 3
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetT_L1ADVAEL:
+  eventCount: 1
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 1
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetT_L1ADVAET:
+  eventCount: 1
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 1
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetL_L1ADVAEL:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 3
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetL_L1ADVAET:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 3
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetM_L1ADVAEL:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 3
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetM_L1ADVAET:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 3
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetT_L1ADVAEL:
+  eventCount: 1
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 1
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetT_L1ADVAET:
+  eventCount: 1
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 1
+  stepFeatures:
+    0: 15
+    1: 11
+    2: 37
+    3: 10
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetL_L1ADVAEL:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 7
+    9: 7
+    10: 3
+  stepFeatures:
+    0: 9
+    1: 8
+    2: 34
+    3: 7
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+    9: 5
+    10: 5
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetL_L1ADVAET:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 7
+    9: 7
+    10: 3
+  stepFeatures:
+    0: 9
+    1: 8
+    2: 34
+    3: 7
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+    9: 5
+    10: 5
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetM_L1ADVAEL:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 7
+    9: 7
+    10: 3
+  stepFeatures:
+    0: 9
+    1: 8
+    2: 34
+    3: 7
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+    9: 5
+    10: 5
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetM_L1ADVAET:
+  eventCount: 3
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 7
+    9: 7
+    10: 3
+  stepFeatures:
+    0: 9
+    1: 8
+    2: 34
+    3: 7
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+    9: 5
+    10: 5
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetT_L1ADVAEL:
+  eventCount: 1
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 7
+    9: 7
+    10: 1
+  stepFeatures:
+    0: 9
+    1: 8
+    2: 34
+    3: 7
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+    9: 5
+    10: 5
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetT_L1ADVAET:
+  eventCount: 1
+  stepCounts:
+    0: 7
+    1: 7
+    2: 7
+    3: 7
+    4: 7
+    5: 7
+    6: 7
+    7: 7
+    8: 7
+    9: 7
+    10: 1
+  stepFeatures:
+    0: 9
+    1: 8
+    2: 34
+    3: 7
+    4: 6
+    5: 6
+    6: 6
+    7: 39
+    8: 7
+    9: 5
+    10: 5
 HLT_10j35_pf_ftf_presel7j30_L14jJ40:
   eventCount: 0
   stepCounts:
diff --git a/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref b/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref
index 0918978649c7..cb4755c465cc 100644
--- a/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref
+++ b/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref
@@ -1,3 +1,381 @@
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetL_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetL_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetM_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetM_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetT_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetT_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetL_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetL_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetM_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetM_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetT_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetT_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetL_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+    8: 2
+    9: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetL_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+    8: 2
+    9: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetM_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+    8: 2
+    9: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetM_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+    8: 2
+    9: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetT_L1ADVAEL:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+    8: 2
+    9: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
+HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetT_L1ADVAET:
+  eventCount: 0
+  stepCounts:
+    0: 2
+    1: 2
+    2: 2
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 2
+    8: 2
+    9: 2
+  stepFeatures:
+    0: 3
+    1: 3
+    2: 11
+    3: 2
+    4: 2
+    5: 2
+    6: 2
+    7: 11
+    8: 2
 HLT_10j35_pf_ftf_presel7j30_L14jJ40:
   eventCount: 0
 HLT_10j40_L14jJ40:
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py
index c9768f7a4b79..c163dab6e134 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py
@@ -1201,27 +1201,26 @@ def getDevSignatures():
         #----------------------------------------------------------------------------------------------------------------------
 
         # Anomaly detection (ATR-30618, ATR-30826)
-        # temporarily commented out, as these chains cause a huge increase in RAM
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetL_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetM_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetT_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetL_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetM_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetT_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetL_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetM_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetT_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetL_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetM_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetT_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetL_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetM_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetT_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetL_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetM_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
-        #ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetT_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetL_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetM_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetT_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetL_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetM_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24noL1_j20_xe0_nn_anomdetT_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','FSNOSEED','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetL_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetM_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetT_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetL_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetM_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_nn_anomdetT_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetL_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetM_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetT_L1ADVAET', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetL_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetM_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
+        ChainProp(name='HLT_0e25_nopid_0g25_loose_0mu24_j20_xe0_tcpufit_anomdetT_L1ADVAEL', l1SeedThresholds=['eEM18L','eEM18L','MU3V','FSNOSEED','FSNOSEED'], groups=PrimaryPhIGroup+Topo2Group),
 
     ]
 
-- 
GitLab


From 8435100b95a128a498d59aa9ad681d9b81172b84 Mon Sep 17 00:00:00 2001
From: Javier Jimenez Pena <javier.jimenez.pena@cern.ch>
Date: Fri, 14 Mar 2025 15:34:27 +0000
Subject: [PATCH 10/14] Implementing a list of vetoed trigger items for L1Calo
 DQ Plots due to known...

Implenting a list of vetoed trigger items for L1Calo DQ Plots due to known mismatches btwn Sim and Hdw
---
 .../python/L1TopoOnlineMonitoringConfig.py    |   8 +-
 .../src/L1TopoOnlineMonitor.cxx               | 111 +++++++++++++++++-
 .../src/L1TopoOnlineMonitor.h                 |   9 ++
 3 files changed, 123 insertions(+), 5 deletions(-)

diff --git a/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/python/L1TopoOnlineMonitoringConfig.py b/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/python/L1TopoOnlineMonitoringConfig.py
index a52fb5c7454a..b7525e123a01 100644
--- a/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/python/L1TopoOnlineMonitoringConfig.py
+++ b/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/python/L1TopoOnlineMonitoringConfig.py
@@ -68,7 +68,9 @@ def getL1TopoPhase1OnlineMonitor(flags, name='L1TopoOnlineMonitor', doSimMon=Tru
                                           doHwMonCTP = doHwMonCtp,
                                           doComp = doComp,
                                           doMultComp = doMultComp,
-                                          forceCTPasHdw=forceCtp)
+                                          forceCTPasHdw=forceCtp,
+                                          MultiplicityVetoList=["ZeroBiasC","ZeroBiasB"],
+                                          AlgorithmVetoList   =["jXE40delay"])
     if logLevel : alg.OutputLevel=logLevel
     alg.MonTool = GenericMonitoringTool(flags, 'MonTool')
     alg.MonTool.HistPath = name
@@ -85,7 +87,9 @@ def getL1TopoPhase1DQMonitor(flags, name='L1TopoDQMonitor', doSimMon=True, doHwM
                                           doHwMonCTP = doHwMonCtp,
                                           doComp = doComp,
                                           doMultComp = doMultComp,
-                                          forceCTPasHdw=forceCtp)
+                                          forceCTPasHdw=forceCtp,
+                                          MultiplicityVetoList=["ZeroBiasA","ZeroBiasB"],
+                                          AlgorithmVetoList   =["jXE40delay"])
 
     #Define the Monitoring plots for L1Calo DQ
     helper.defineDQAlgorithm("L1TopoMismatchRate",
diff --git a/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/src/L1TopoOnlineMonitor.cxx b/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/src/L1TopoOnlineMonitor.cxx
index 4d98918f3bca..ebc64ab2189c 100644
--- a/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/src/L1TopoOnlineMonitor.cxx
+++ b/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/src/L1TopoOnlineMonitor.cxx
@@ -94,6 +94,108 @@ StatusCode L1TopoOnlineMonitor::initialize() {
   ATH_CHECK(m_monTool.retrieve(DisableTool{m_monTool.name().empty()}));
   ATH_CHECK(m_errorFlagsKey.initialize());
 
+  const TrigConf::L1Menu * l1menu = nullptr;
+  ATH_CHECK( m_detStore->retrieve(l1menu) );
+
+  auto & conn2EL = l1menu->connector("Topo2El");
+  auto & conn3EL = l1menu->connector("Topo3El");
+
+  auto & connOpt0 = l1menu->connector("Topo1Opt0");
+  auto & connOpt1 = l1menu->connector("Topo1Opt1");
+  auto & connOpt2 = l1menu->connector("Topo1Opt2");
+  auto & connOpt3 = l1menu->connector("Topo1Opt3");
+
+  m_TopoAlgTriggerNames.reserve(32*4);
+  m_TopoAlgTriggerNotVetoed.reserve(32*4);
+  m_TopoMultTriggerNames.reserve(64*4);
+  m_TopoMultTriggerNotVetoed.reserve(64*4);
+
+  //TopoOpt
+  auto & tlopt0 = connOpt0.triggerLines();
+  auto & tlopt1 = connOpt1.triggerLines();
+  auto & tlopt2 = connOpt2.triggerLines();
+  auto & tlopt3 = connOpt3.triggerLines();
+
+  long unsigned int size_tlopt0 = tlopt0.size();
+  long unsigned int size_tlopt1 = tlopt1.size();
+  long unsigned int size_tlopt2 = tlopt2.size();
+  long unsigned int size_tlopt3 = tlopt3.size();
+
+  long unsigned int total_size_opt = size_tlopt0+size_tlopt1+size_tlopt2+size_tlopt3;
+
+  for  (size_t j = 0; j < size_tlopt0; ++j) m_TopoMultTriggerNames.push_back(tlopt0[j].name());
+  for  (size_t j = 0; j < size_tlopt1; ++j) m_TopoMultTriggerNames.push_back(tlopt1[j].name());
+  for  (size_t j = 0; j < size_tlopt2; ++j) m_TopoMultTriggerNames.push_back(tlopt2[j].name());
+  for  (size_t j = 0; j < size_tlopt3; ++j) m_TopoMultTriggerNames.push_back(tlopt3[j].name());
+
+  //Topo2a
+  auto & tl2a0 = conn2EL.triggerLines(0, 0); //clock 0
+  auto & tl2a1 = conn2EL.triggerLines(0, 1); //clock 1
+  long unsigned int size_tl2a0 = tl2a0.size();
+  long unsigned int size_tl2a1 = tl2a1.size();
+  //Topo2b
+  auto & tl2b0 = conn2EL.triggerLines(1, 0); //clock 0
+  auto & tl2b1 = conn2EL.triggerLines(1, 1); //clock 1
+  long unsigned int size_tl2b0 = tl2b0.size();
+  long unsigned int size_tl2b1 = tl2b1.size();
+  //Topo3a
+  auto & tl3a0 = conn3EL.triggerLines(0, 0); //clock 0
+  auto & tl3a1 = conn3EL.triggerLines(0, 1); //clock 1
+  long unsigned int size_tl3a0 = tl3a0.size();
+  long unsigned int size_tl3a1 = tl3a1.size();
+  //Topo3b
+  auto & tl3b0 = conn3EL.triggerLines(1, 0); //clock 0
+  auto & tl3b1 = conn3EL.triggerLines(1, 1); //clock 1
+  long unsigned int size_tl3b0 = tl3b0.size();
+  long unsigned int size_tl3b1 = tl3b1.size();
+
+  for (size_t i = 0; i < 16; ++i) {
+    if (i < size_tl2a0) m_TopoAlgTriggerNames.push_back(tl2a0[i].name());
+    else                m_TopoAlgTriggerNames.push_back("Empty");
+    if (i < size_tl2a1) m_TopoAlgTriggerNames.push_back(tl2a1[i].name());
+    else                m_TopoAlgTriggerNames.push_back("Empty");
+  }
+
+  for (size_t i = 0; i < 16; ++i) {
+    if (i < size_tl2b0) m_TopoAlgTriggerNames.push_back(tl2b0[i].name());
+    else                m_TopoAlgTriggerNames.push_back("Empty");
+    if (i < size_tl2b1) m_TopoAlgTriggerNames.push_back(tl2b1[i].name());
+    else                m_TopoAlgTriggerNames.push_back("Empty");
+  }
+
+    for (size_t i = 0; i < 16; ++i) {
+    if (i < size_tl3a0) m_TopoAlgTriggerNames.push_back(tl3a0[i].name());
+    else                m_TopoAlgTriggerNames.push_back("Empty");
+    if (i < size_tl3a1) m_TopoAlgTriggerNames.push_back(tl3a1[i].name());
+    else                m_TopoAlgTriggerNames.push_back("Empty");
+  }
+
+  for (size_t i = 0; i < 16; ++i) {
+    if (i < size_tl3b0) m_TopoAlgTriggerNames.push_back(tl3b0[i].name());
+    else                m_TopoAlgTriggerNames.push_back("Empty");
+    if (i < size_tl3b1) m_TopoAlgTriggerNames.push_back(tl3b1[i].name());
+    else                m_TopoAlgTriggerNames.push_back("Empty");
+  }
+
+  //Fill Vector of booleans to fill corresponding triggers
+  //Only elements with a corresponding Veto are set to false
+
+  for (size_t j = 0; j < total_size_opt; ++j) {
+    m_TopoMultTriggerNotVetoed[j] = true;
+    for (const std::string& VetoedElement : m_MultiplicityVetoList) {
+      if ( !m_TopoMultTriggerNotVetoed[j] || m_TopoMultTriggerNames[j].find(VetoedElement)!= std::string::npos) m_TopoMultTriggerNotVetoed[j] = false;
+      else m_TopoMultTriggerNotVetoed[j] = true;
+    }
+  }
+
+  for (int j =0; j<128;j++){
+    m_TopoAlgTriggerNotVetoed[j] = true;
+    for (const std::string& VetoedElement : m_AlgorithmVetoList) {
+      if ( !m_TopoAlgTriggerNotVetoed[j] || m_TopoAlgTriggerNames[j].find(VetoedElement)!= std::string::npos) m_TopoAlgTriggerNotVetoed[j] = false;
+      else m_TopoAlgTriggerNotVetoed[j] = true;
+    }
+  }
+
   return AthMonitorAlgorithm::initialize();
 }
 
@@ -523,13 +625,16 @@ StatusCode L1TopoOnlineMonitor::doComp( DecisionBits& decisionBits, const EventC
   auto mon_matchVsLumi_DQ = Monitored::Scalar<unsigned>("L1TopoAlgorithmMissMatchVsLumi");
 
   for (size_t i=0;i<4;i++) {
+
     auto mon_trig = Monitored::Scalar<unsigned>("Phase1TopoTrigger_"+std::to_string(i));
     auto mon_match = Monitored::Scalar<unsigned>("Phase1TopoMissMatch_"+std::to_string(i));
     auto mon_match_DQ = Monitored::Scalar<unsigned>("L1TopoAlgorithmMissMatch_"+std::to_string(i));
     auto mon_match_OF_DQ = Monitored::Scalar<unsigned>("L1TopoAlgorithmOverflowMissMatch_"+std::to_string(i));
     auto mon_weight = Monitored::Scalar<float>("Phase1TopoWeight_"+std::to_string(i));
     auto mon_OFweight = Monitored::Scalar<float>("Phase1TopoOFWeight_"+std::to_string(i));
+    
     for (size_t j=0;j<32;j++) {
+      
       if (ambiguityBitsSim[32*i+j] == 0) {
         mon_trig = static_cast<unsigned>(j);
         mon_trig_allboards = static_cast<unsigned>(32*i+j);
@@ -554,7 +659,7 @@ StatusCode L1TopoOnlineMonitor::doComp( DecisionBits& decisionBits, const EventC
 	if ( m_countSim[32*i+j]  < m_countHdw[32*i+j] ){ mon_match_DQ = 0;  mon_matchVsLumi_DQ = 1;}
 	if ( m_countSim[32*i+j]  > m_countHdw[32*i+j] ){ mon_match_DQ = 1;  mon_matchVsLumi_DQ = 1;}
 	if ( m_countSim[32*i+j] == m_countHdw[32*i+j] ){ mon_match_DQ = 2;  mon_matchVsLumi_DQ = 0;}
-	if ( m_countSim[32*i+j] > 0 ||  m_countHdw[32*i+j] > 0) {
+	if ( (m_countSim[32*i+j] > 0 ||  m_countHdw[32*i+j] > 0 ) && m_TopoAlgTriggerNotVetoed[32*i+j] ) {
 	  Monitored::Group(m_monTool, mon_trig, mon_match_DQ);
 	  Monitored::Group(m_monTool, lbn, mon_trig_allboards, mon_matchVsLumi_DQ);
 	}
@@ -562,7 +667,7 @@ StatusCode L1TopoOnlineMonitor::doComp( DecisionBits& decisionBits, const EventC
 	if (m_overflow_countSim[32*i+j]  <m_overflow_countHdw[32*i+j] ) mon_match_OF_DQ = 0;
 	if (m_overflow_countSim[32*i+j]  >m_overflow_countHdw[32*i+j] ) mon_match_OF_DQ = 1;
 	if (m_overflow_countSim[32*i+j] ==m_overflow_countHdw[32*i+j] ) mon_match_OF_DQ = 2;
-	if (m_overflow_countSim[32*i+j] > 0 || m_overflow_countHdw[32*i+j] > 0) Monitored::Group(m_monTool, mon_trig, mon_match_OF_DQ);
+	if ( (m_overflow_countSim[32*i+j] > 0 || m_overflow_countHdw[32*i+j] > 0 ) && m_TopoAlgTriggerNotVetoed[32*i+j] ) Monitored::Group(m_monTool, mon_trig, mon_match_OF_DQ);
 
         rate = m_countHdw[32*i+j]>0 ? m_countHdwNotSim[32*i+j]/m_countHdw[32*i+j] : 0;
         if (rate != m_rateHdwNotSim[32*i+j]) {
@@ -649,7 +754,7 @@ StatusCode L1TopoOnlineMonitor::doMultComp( std::vector<std::vector<unsigned>> &
       if (monMultSim == monMultHdw){mon_match = 2;  mon_matchVsLumi_DQ = 0;}
       mon_multiplicity = static_cast<unsigned>(k);
       mon_multiplicity_allboards = static_cast<unsigned>(k+AccumulatedPosition);
-      if ( monMultSim > 0 ||  monMultHdw > 0){
+      if (( monMultSim > 0 ||  monMultHdw > 0) && m_TopoMultTriggerNotVetoed[k+AccumulatedPosition]) {
 	Monitored::Group(m_monTool, mon_multiplicity, mon_match);
 	Monitored::Group(m_monTool, lbn, mon_multiplicity_allboards, mon_matchVsLumi_DQ);
       }
diff --git a/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/src/L1TopoOnlineMonitor.h b/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/src/L1TopoOnlineMonitor.h
index d00d78a06e8d..406e197fbe79 100644
--- a/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/src/L1TopoOnlineMonitor.h
+++ b/Trigger/TrigT1/L1Topo/L1TopoOnlineMonitoring/src/L1TopoOnlineMonitor.h
@@ -63,6 +63,11 @@ private:
     }
   };
 
+  std::vector<std::string> m_TopoAlgTriggerNames;
+  std::vector<bool>        m_TopoAlgTriggerNotVetoed;
+  std::vector<std::string> m_TopoMultTriggerNames;
+  std::vector<bool>        m_TopoMultTriggerNotVetoed;
+
   std::unique_ptr<float[]> m_rateHdwNotSim;
   std::unique_ptr<float[]> m_rateSimNotHdw;
   std::unique_ptr<float[]> m_rateHdwAndSim;
@@ -110,6 +115,10 @@ private:
     this, "doMultComp", false, "Enable L1Topo Multiplicity HW/Sim comparison"};
   Gaudi::Property<bool> m_forceCTPasHdw {
     this, "forceCTPasHdw", false, "Force to CTP monitoring as primary in Sim/Hdw comparison"};
+  Gaudi::Property<std::vector<std::string>> m_AlgorithmVetoList {
+    this, "AlgorithmVetoList", {}, "List of L1Topo algorithm items Vetoed for monitoring in L1CaloDQ package due to known Sim/Hdw mismatches"};
+  Gaudi::Property<std::vector<std::string>> m_MultiplicityVetoList {
+    this, "MultiplicityVetoList", {}, "List of multiplicity items Vetoed for monitoring in L1CaloDQ package due to known Sim/Hdw mismatches"};
 
   ServiceHandle<StoreGateSvc> m_detStore { this, "DetectorStore", "StoreGateSvc/DetectorStore", "Detector store to get the menu" };
 
-- 
GitLab


From 8d0e387e15ea5294cc9965d60a97ed9ef53a08f7 Mon Sep 17 00:00:00 2001
From: Francesco Giuseppe Gravili <francesco.giuseppe.gravili@cern.ch>
Date: Fri, 14 Mar 2025 15:36:01 +0000
Subject: [PATCH 11/14] Preliminary clean up in MM Trigger

Preliminary clean up in MM Trigger
---
 .../TrigT1NSWSimTools/MMT_Hit.h               | 20 ++-----
 .../TrigT1NSWSimTools/src/MMT_Diamond.cxx     |  2 +-
 .../TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx  | 24 ++------
 .../TrigT1NSWSimTools/src/MMT_struct.cxx      | 58 -------------------
 4 files changed, 10 insertions(+), 94 deletions(-)

diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h b/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h
index 148889be7386..0a660eb4e7e6 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h
@@ -1,5 +1,5 @@
 /*
- *   Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
+ *   Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
  */
 
 #ifndef MMT_HIT_H
@@ -7,13 +7,9 @@
 
 #include "MMT_struct.h"
 
-namespace MuonGM {
-  class MuonDetectorManager;
-}
-
 class MMT_Hit {
   public:
-    MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager* detManager, const std::shared_ptr<MMT_Parameters> par, const std::vector<ROOT::Math::XYZVector> &planeCoordinates);
+    MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager* detManager, const std::string_view stName, const std::vector<ROOT::Math::XYZVector> &planeCoordinates);
     MMT_Hit(const MMT_Hit* hit);
     ~MMT_Hit()=default;
 
@@ -22,12 +18,10 @@ class MMT_Hit {
     int getBC() const { return m_BC_time; }
     int getChannel() const { return m_strip; }
     int getGasGap() const { return m_gasgap; }
-    std::string getModule() const { return m_module; }
     int getMultiplet() const { return m_multiplet; }
     int getPlane() const { return m_plane; }
     char getSector() const { return m_sector; }
     double getRZSlope() const { return m_RZslope; }
-    double getYZSlope() const { return m_YZslope; }
     int getVMM() const { return m_VMM_chip; }
     int getMMFE8() const { return m_MMFE_VMM; }
     float getShift() const { return m_shift; }
@@ -37,7 +31,6 @@ class MMT_Hit {
     double getR() const { return m_R; }
     double getRp() const { return m_Rp; }
     double getX() const { return m_localX; }
-    double getY() const { return m_Y; }
     double getZ() const { return m_Z; }
     double getPitchOverZ() const { return m_PitchOverZ; }
     float getTime() const { return m_time; }
@@ -45,19 +38,16 @@ class MMT_Hit {
     bool isX() const;
     bool isU() const;
     bool isV() const;
-    void printHit() const;
     void setAge(int age) { m_age = age; }
     void setAsNoise() { m_isNoise = true; }
     void setBC(int bc) { m_BC_time = bc; }
     void setRZSlope(double slope) { m_RZslope = slope; }
-    void setYZSlope(double slope) { m_YZslope = slope; }
-    void setY(double y) { m_Y = y; }
     void setZ(double z) { m_Z = z; }
     bool verifyHit() const;
 
   private:
     char m_sector;
-    std::string m_module, m_station_name;
+    std::string m_station_name;
     int m_VMM_chip;
     int m_MMFE_VMM;
     int m_ART_ASIC;
@@ -68,9 +58,9 @@ class MMT_Hit {
     int m_gasgap;
     int m_strip;
     double m_localX;
-    double m_RZslope, m_YZslope;
+    double m_RZslope;
     int m_BC_time, m_age;
-    double m_Y, m_Z, m_PitchOverZ;
+    double m_Z, m_PitchOverZ;
     double m_R, m_Rp;
     bool m_isNoise;
     float m_time, m_shift;
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Diamond.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Diamond.cxx
index d747376bed9c..edbf6644e7ae 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Diamond.cxx
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Diamond.cxx
@@ -61,7 +61,7 @@ void MMT_Diamond::createRoads_fillHits(const unsigned int iterator, std::vector<
   this->setUVfactor(uvfactor);
 
   for (const auto &hit_entry : hitDatas) {
-    auto myhit = std::make_shared<MMT_Hit>(hit_entry, detManager, par, planeCoordinates);
+    auto myhit = std::make_shared<MMT_Hit>(hit_entry, detManager, sector, planeCoordinates);
     if (myhit->verifyHit()) {
       m_hitslopes.push_back(myhit->getRZSlope());
       entry.ev_hits.push_back(myhit);
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx
index 1128af45ec37..6c2913692a4e 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx
@@ -1,5 +1,5 @@
 /*
- *   Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
+ *   Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
  */
 
 #include "TrigT1NSWSimTools/MMT_Hit.h"
@@ -10,15 +10,9 @@
 #include "MuonReadoutGeometry/MMReadoutElement.h"
 #include <cmath>
 
-MMT_Hit::MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager* detManager, const std::shared_ptr<MMT_Parameters> par, const std::vector<ROOT::Math::XYZVector> &planeCoordinates) {
-  m_sector = par->getSector();
-
-  std::string module(1, m_sector);
-  module += (std::abs(entry.station_eta) == 1) ? "M1" : "M2";
-  m_module = module;
-
-  m_station_name = "MM";
-  m_station_name += m_sector;
+MMT_Hit::MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager* detManager, const std::string_view stName, const std::vector<ROOT::Math::XYZVector> &planeCoordinates) {
+  m_sector = stName[2];
+  m_station_name = stName;
   m_VMM_chip = entry.VMM_chip;
   m_MMFE_VMM = entry.MMFE_VMM;
   m_ART_ASIC = std::ceil(1.*entry.MMFE_VMM/2);
@@ -31,14 +25,12 @@ MMT_Hit::MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager*
   m_localX = entry.localX;
   m_BC_time = entry.BC_time;
   m_age = entry.BC_time;
-  m_Y = -1.;
   m_Z = -1.;
   m_R = -1.;
   m_Rp = -1.;
   m_isNoise = false;
   m_time = entry.gtime;
   m_RZslope = -1.;
-  m_YZslope = -1.;
   m_PitchOverZ = -1.;
   m_shift = -1.;
 
@@ -100,11 +92,6 @@ MMT_Hit::MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager*
     m_PitchOverZ = roP.stripPitch/m_Z;
     m_RZslope = m_R / m_Z;
 
-    int eta = std::abs(m_station_eta)-1;
-    double base = par->getYbase(m_plane, eta);
-    m_Y = base + m_strip*roP.stripPitch - roP.stripPitch/2.;
-    m_YZslope = m_Y / m_Z;
-
     double index = std::round((std::abs(m_RZslope)-0.1)/5e-04); // 0.0005 is approx. the step in slope achievable with a road size of 8 strips
     double roundedSlope = 0.1 + index*((0.6 - 0.1)/1000.);
     m_Rp = roP.distanceFromZAxis + roundedSlope*(planeCoordinates[m_plane].Z() - planeCoordinates[0].Z());
@@ -114,7 +101,6 @@ MMT_Hit::MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager*
 
 MMT_Hit::MMT_Hit(const MMT_Hit* hit)
   : m_sector (hit->m_sector),
-    m_module (hit->m_module),
     m_station_name (hit->m_station_name),
     m_VMM_chip (hit->m_VMM_chip),
     m_MMFE_VMM (hit->m_MMFE_VMM),
@@ -127,10 +113,8 @@ MMT_Hit::MMT_Hit(const MMT_Hit* hit)
     m_strip (hit->m_strip),
     m_localX (hit->m_localX),
     m_RZslope (hit->m_RZslope),
-    m_YZslope (hit->m_YZslope),
     m_BC_time (hit->m_BC_time),
     m_age (hit->m_age),
-    m_Y (hit->m_Y),
     m_Z (hit->m_Z),
     m_PitchOverZ (hit->m_PitchOverZ),
     m_R (hit->m_R),
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx
index 0029f92bf9fc..3b0afc9815ec 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx
@@ -85,64 +85,6 @@ MMT_Parameters::MMT_Parameters(std::string layerSetup, char wedgeSize, const Muo
     ATH_MSG_WARNING("Number of planes in setup is "<< layerSetup.size() << ", but we have a nominal " << z_nominal.size() << " planes.");
     throw std::runtime_error("MMT_Parameters: Invalid number of planes");
   }
-
-  float stereo_degree = Gaudi::Units::deg*roParam_top_mult1.stereoAngle[2];
-
-  // MM_firststrip_positions returns the position for phi sector 1.
-  // => for the small sectors, rotate this by -1/16 of a rotation to make our lives easier.
-  // in this coordinate basis, x is up/down the wedge (radial), and y is left/right (phi).
-  float cos_rotation = std::cos(-2*M_PI / 16.0);
-  float sin_rotation = std::sin(-2*M_PI / 16.0);
-  float x_rotated = 0.0;
-  float y_rotated = 0.0;
-
-  float st_angle = 0.0;
-
-  float radial_pos      = 0;
-  float radial_pos_xx_1 = 0, radial_pos_xx_2 = 0;
-  float radial_pos_uv_1 = 0, radial_pos_uv_2 = 0;
-
-  for (unsigned int eta = 1; eta <= 2; eta++){
-    unsigned int layer = 1;
-    for (const auto& pos: MM_firststrip_positions(detManager, wedgeString, eta)){
-
-      if (wedgeString=="MMS"){
-        x_rotated = pos.X()*cos_rotation - pos.Y()*sin_rotation;
-        y_rotated = pos.X()*sin_rotation + pos.Y()*cos_rotation;
-      }
-      else{
-        x_rotated = pos.X();
-        y_rotated = pos.Y();
-      }
-
-      if      (is_u(layer)) st_angle = -1*std::abs(stereo_degree);
-      else if (is_v(layer)) st_angle =    std::abs(stereo_degree);
-      else                  st_angle = 0;
-
-      // walk from the center of the strip to the position of the strip at the center of the wedge.
-      // NB: for X-planes, this is simply the center of the strip: tan(0) = 0.
-      radial_pos = std::abs(x_rotated - y_rotated*std::tan(st_angle * M_PI/180.0));
-
-      if (is_x(layer) && eta==1) radial_pos_xx_1 = radial_pos;
-      else if (is_x(layer) && eta==2) radial_pos_xx_2 = radial_pos;
-      if (is_u(layer) && eta==1) radial_pos_uv_1 = radial_pos;
-      else if (is_u(layer) && eta==2) radial_pos_uv_2 = radial_pos;
-
-      layer++;
-    }
-  }
-
-  // store radial positions as fixed point
-  std::array<float, 2> radial_pos_xx = {radial_pos_xx_1, radial_pos_xx_2};
-  std::array<float, 2> radial_pos_uv = {radial_pos_uv_1, radial_pos_uv_2};
-  m_ybases[0] = radial_pos_xx;
-  m_ybases[1] = radial_pos_xx;
-  m_ybases[2] = radial_pos_uv;
-  m_ybases[3] = radial_pos_uv;
-  m_ybases[4] = radial_pos_uv;
-  m_ybases[5] = radial_pos_uv;
-  m_ybases[6] = radial_pos_xx;
-  m_ybases[7] = radial_pos_xx;
 }
 
 std::vector<ROOT::Math::XYZVector> MMT_Parameters::MM_firststrip_positions(const MuonGM::MuonDetectorManager* detManager, const std::string& wedge, int eta) const {
-- 
GitLab


From fa679895454fbc3ea157b2c4940c81d1eb7f3fad Mon Sep 17 00:00:00 2001
From: Lucas Bezio <lucas.bezio@cern.ch>
Date: Fri, 14 Mar 2025 15:40:58 +0000
Subject: [PATCH 12/14] Switching stream (ATR-30891) and Moving HH4b and
 HHbbtautau EOF chains to Physics (ATR-29523)

Switching stream (ATR-30891) and Moving HH4b and HHbbtautau EOF chains to Physics (ATR-29523)
---
 .../python/HLT/Menu/MC_pp_run3_v1.py          | 17 --------------
 .../python/HLT/Menu/Physics_pp_run3_v1.py     | 23 ++++++++++++++++++-
 .../python/L1/Menu/Menu_MC_pp_run3_v1.py      |  4 +---
 .../python/L1/Menu/Menu_Physics_pp_run3_v1.py |  2 ++
 4 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/MC_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/MC_pp_run3_v1.py
index 81d9d43cd649..56638c5488c7 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/MC_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/MC_pp_run3_v1.py
@@ -241,23 +241,12 @@ def getMCSignatures():
         
         #L1 legacy Removal
         #ATR-29523
-        ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn177_pf_ftf_presel2c20XX2c20b85_L13jJ40p0ETA25'    , l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        ChainProp(name='HLT_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        ChainProp(name='HLT_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        
         ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn177_pf_ftf_presel1c20XX2c20bgtwo85_L13jJ40p0ETA25'    , l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
         ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel1c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
         ChainProp(name='HLT_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel1c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
         ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel1c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
         ChainProp(name='HLT_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel1c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
 
-        ChainProp(name='HLT_j50c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        ChainProp(name='HLT_j40c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        ChainProp(name='HLT_j50c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        ChainProp(name='HLT_j40c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
-        
         ChainProp(name='HLT_j50c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel1c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
         ChainProp(name='HLT_j40c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel1c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
         ChainProp(name='HLT_j50c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel1c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
@@ -507,12 +496,6 @@ def getMCSignatures():
         ChainProp(name='HLT_tau60_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRAB_L1eTAU60_2eTAU20M_jXE80', l1SeedThresholds=['eTAU60','eTAU20M','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryPhIGroup+TauMETGroup),
         ChainProp(name='HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRAB_L1eEM18M_2eTAU20M_jXE70', l1SeedThresholds=['eEM18M','eTAU20M','FSNOSEED'], stream=[PhysicsStream], groups=PrimaryPhIGroup+TauMETGroup),
 
-        #ATR-29523
-        ChainProp(name='HLT_tau25_mediumRNN_tracktwoMVA_probe_L1eTAU12_j50c_020jvt_j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel3c20XX1c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+5*['FSNOSEED'], stream=[PhysicsStream], groups=PrimaryPhIGroup+TauBJetGroup),
-        ChainProp(name='HLT_tau20_mediumRNN_tracktwoMVA_probe_L1eTAU12_j50c_020jvt_j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel3c20XX1c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+5*['FSNOSEED'], stream=[PhysicsStream], groups=PrimaryPhIGroup+TauBJetGroup),
-        ChainProp(name='HLT_tau25_mediumRNN_tracktwoMVA_probe_L1eTAU12_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel3c20XX1c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+4*['FSNOSEED'], stream=[PhysicsStream], groups=PrimaryPhIGroup+TauBJetGroup),
-        ChainProp(name='HLT_tau20_mediumRNN_tracktwoMVA_probe_L1eTAU12_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel3c20XX1c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+4*['FSNOSEED'], stream=[PhysicsStream], groups=PrimaryPhIGroup+TauBJetGroup),
-
         # ATR-28795 bjet menu cleanup
         ChainProp(name='HLT_g60_tight_2j55_0eta200_emergingPTF0p1dR0p4_pf_ftf_L1eEM26M', groups=SupportPhIGroup+EgammaJetGroup, l1SeedThresholds=['eEM26M','FSNOSEED']),
         ChainProp(name='HLT_g45_tight_2j55_0eta200_emergingPTF0p1dR0p4_pf_ftf_L1eEM26M', groups=SupportPhIGroup+EgammaJetGroup, l1SeedThresholds=['eEM26M','FSNOSEED']),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py
index e07e5f6bd3d8..66f07c9bd6b0 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py
@@ -72,6 +72,9 @@ EOFBeePhIGroup = ['EOF:BeePhaseI']
 EOFTLALegGroup = ['EOF:TLALegacy']
 EOFTLAPhIGroup = ['EOF:TLAPhaseI']
 EOFTauPhIGroup = ['EOF:TauPhaseI']
+EOFMultiBjetGroup = ['EOF:MultiBjetPhaseI']
+EOFTauBjetGroup = ['EOF:TauBjetPhaseI']
+
 # For unconventional tracking chains (ATR-23797)
 UnconvTrkGroup = ['RATE:UnconvTrk', 'BW:UnconvTrk'] 
 LowMuGroup = ['LowMu']
@@ -1350,7 +1353,7 @@ def setupMenu():
 
         # Support chain
         ChainProp(name='HLT_5j35c_nnJvtv1_j25c_nnJvtv1_SHARED_j25c_nnJvtv1_boffperf_pf_ftf_presel6c25_L14jJ40', l1SeedThresholds=['FSNOSEED']*3, stream=['VBFDelayed'], groups=SupportPhIGroup+MultiBjetGroup),
-        ChainProp(name='HLT_5j35c_020jvt_j25c_020jvt_SHARED_j25c_020jvt_boffperf_pf_ftf_presel6c25_L14jJ40', l1SeedThresholds=['FSNOSEED']*3, stream=['VBFDelayed'], groups=SupportPhIGroup+MultiBjetGroup),
+        ChainProp(name='HLT_5j35c_020jvt_j25c_020jvt_SHARED_j25c_020jvt_boffperf_pf_ftf_presel6c25_L14jJ40', l1SeedThresholds=['FSNOSEED']*3, stream=[PhysicsStream], groups=SupportPhIGroup+MultiBjetGroup),
 
         # Phase I inputs GN1
         #  Single b-jet
@@ -1499,6 +1502,17 @@ def setupMenu():
         ChainProp(name='HLT_5j35c_020jvt_j25c_020jvt_SHARED_j25c_020jvt_bgn260_pf_ftf_presel5c25XXc25bgtwo85_L14jJ40', l1SeedThresholds=['FSNOSEED']*3, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
         ChainProp(name='HLT_5j45c_020jvt_j25c_020jvt_SHARED_j25c_020jvt_bgn260_pf_ftf_presel5c25XXc25bgtwo85_L14jJ40', l1SeedThresholds=['FSNOSEED']*3, stream=[PhysicsStream], groups=PrimaryPhIGroup+MultiBjetGroup),
 
+        #HH4b EoF chains
+        #ATR-29523
+        ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn177_pf_ftf_presel2c20XX2c20b85_L13jJ40p0ETA25'    , l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
+        ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
+        ChainProp(name='HLT_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
+        ChainProp(name='HLT_2j50c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
+        ChainProp(name='HLT_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
+        ChainProp(name='HLT_j50c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
+        ChainProp(name='HLT_j40c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn277_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
+        ChainProp(name='HLT_j50c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
+        ChainProp(name='HLT_j40c_020jvt_2j25c_020jvt_j20c_020jvt_SHARED_2j20c_020jvt_bgn280_pf_ftf_presel2c20XX2c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*4, stream=[PhysicsStream], groups=EOFMultiBjetGroup+MultiBjetGroup),
     ]
 
     chains['Tau'] += [
@@ -2221,6 +2235,13 @@ def setupMenu():
         ChainProp(name='HLT_tau25_mediumRNN_tracktwoMVA_probe_L1eTAU12_j65c_020jvt_j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel2c20XX1c20bgtwo82XX1c20gntau80_L1jJ85p0ETA21_3jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+5*['FSNOSEED'], stream=[PhysicsStream], groups=PrimaryPhIGroup+TauBJetGroup),
         ChainProp(name='HLT_tau25_mediumRNN_tracktwoMVA_probe_L1eTAU12_j65c_020jvt_j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel2c20XX1c20bgtwo80XX1c20gntau80_L1jJ85p0ETA21_3jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+5*['FSNOSEED'], stream=[PhysicsStream], groups=PrimaryPhIGroup+TauBJetGroup),
 
+        #EoF chains
+        #ATR-29523
+        ChainProp(name='HLT_tau25_mediumRNN_tracktwoMVA_probe_L1eTAU12_j50c_020jvt_j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel3c20XX1c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+5*['FSNOSEED'], stream=[PhysicsStream], groups=EOFTauBjetGroup+TauBJetGroup),
+        ChainProp(name='HLT_tau20_mediumRNN_tracktwoMVA_probe_L1eTAU12_j50c_020jvt_j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel3c20XX1c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+5*['FSNOSEED'], stream=[PhysicsStream], groups=EOFTauBjetGroup+TauBJetGroup),
+        ChainProp(name='HLT_tau25_mediumRNN_tracktwoMVA_probe_L1eTAU12_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel3c20XX1c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+4*['FSNOSEED'], stream=[PhysicsStream], groups=EOFTauBjetGroup+TauBJetGroup),
+        ChainProp(name='HLT_tau20_mediumRNN_tracktwoMVA_probe_L1eTAU12_2j40c_020jvt_j25c_020jvt_j20c_020jvt_SHARED_j20c_020jvt_bgn285_pf_ftf_presel3c20XX1c20bgtwo85_L13jJ40p0ETA25', l1SeedThresholds=['PROBEeTAU12']+4*['FSNOSEED'], stream=[PhysicsStream], groups=EOFTauBjetGroup+TauBJetGroup),
+
         #ATR-28679 -jXE
         ChainProp(name='HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE110', l1SeedThresholds=['PROBEeTAU12','FSNOSEED','FSNOSEED'],  groups=TagAndProbePhIGroup+TauMETGroup),
         ChainProp(name='HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE110', l1SeedThresholds=['PROBEcTAU20M','FSNOSEED','FSNOSEED'],  groups=TagAndProbePhIGroup+TauMETGroup),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_MC_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_MC_pp_run3_v1.py
index 6a9bccef186e..4591c3ec4c8c 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_MC_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_MC_pp_run3_v1.py
@@ -96,9 +96,7 @@ def defineMenu():
         'L1_cTAU30M_2cTAU20M_DR-eTAU30eTAU20-jJ40',
         'L1_cTAU30M_2cTAU20M_DR-eTAU30eTAU20-jJ30',
         'L1_cTAU30M_2cTAU20M_3jJ30p0ETA25',
-        #ATR-29523
-        'L1_3jJ40p0ETA25',
-
+        
         # ATR-29651 - Tau+X chains using eTAU20M seeds
         'L1_eEM18M_2eTAU20M_4jJ30', 'L1_eTAU60_2eTAU20M_jXE80', 'L1_eEM18M_2eTAU20M_jXE70', 
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_Physics_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_Physics_pp_run3_v1.py
index e9bde55599cc..e1d7936b4a04 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_Physics_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/Menu_Physics_pp_run3_v1.py
@@ -174,6 +174,8 @@ def defineMenu():
         'L1_2jJ40_jXE110',
         'L1_3jJ40p0ETA25_jXE80',
         
+        #ATR-29523
+        'L1_3jJ40p0ETA25',
         # new calo
         #'L1_gXERHO70', 'L1_gXERHO100',
         'L1_gXENC70', 'L1_gXENC100',
-- 
GitLab


From db20d1b1fa0084feb6401436c5264cf00caf7c83 Mon Sep 17 00:00:00 2001
From: abarton <Adam.Edward.Barton@cern.ch>
Date: Sat, 15 Mar 2025 13:41:21 +0000
Subject: [PATCH 13/14] Fix compile error

---
 InnerDetector/InDetConfig/python/InDetConfigFlags.py         | 2 ++
 Trigger/TrigT1/TrigT1NSWSimTools/CMakeLists.txt              | 2 +-
 Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h | 2 +-
 Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx             | 5 +++--
 Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx          | 2 +-
 5 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/InnerDetector/InDetConfig/python/InDetConfigFlags.py b/InnerDetector/InDetConfig/python/InDetConfigFlags.py
index c9337b1e8c1a..e9837e8cfb6c 100644
--- a/InnerDetector/InDetConfig/python/InDetConfigFlags.py
+++ b/InnerDetector/InDetConfig/python/InDetConfigFlags.py
@@ -31,6 +31,8 @@ def createInDetConfigFlags():
     icf.addFlag("InDet.ForceCoolVectorPayload", False)
     # Turn on SCT_ModuleVetoSvc, allowing it to be configured later
     icf.addFlag("InDet.doSCTModuleVeto", False)
+    # Turn on SCT simple width calculation in clustering tool
+    icf.addFlag("InDet.doSCTSimpleWidth", True)
     # Path to the JSON file to mask the modules for Pixel.
     # A non-empty string activates the veto automatically
     icf.addFlag("InDet.JsonPathPixelModuleVeto", "")
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/CMakeLists.txt b/Trigger/TrigT1/TrigT1NSWSimTools/CMakeLists.txt
index 70699cea658b..782fa2cf1eb5 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/CMakeLists.txt
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/CMakeLists.txt
@@ -14,7 +14,7 @@ atlas_add_library( TrigT1NSWSimToolsLib
                    PUBLIC_HEADERS TrigT1NSWSimTools
                    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}
                    LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel FourMomUtils GaudiKernel GeoPrimitives Identifier MuonDigitContainer MuonIdHelpersLib MuonRDO MuonReadoutGeometry MuonSimData MuonSimEvent MuonTesterTreeLib RegSelLUT TrkSurfaces TrackRecordLib
-                   PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} AGDDKernel AtlasHepMCLib TruthUtils GeneratorObjects PathResolver StoreGateLib )
+                   PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} AGDDKernel AtlasHepMCLib TruthUtils GeneratorObjects PathResolver StoreGateLib MuonAGDDDescription)
 
 # Component(s) in the package:
 atlas_add_component( TrigT1NSWSimTools
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h b/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h
index 0a660eb4e7e6..16140d52df53 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMT_Hit.h
@@ -25,7 +25,7 @@ class MMT_Hit {
     int getVMM() const { return m_VMM_chip; }
     int getMMFE8() const { return m_MMFE_VMM; }
     float getShift() const { return m_shift; }
-    std::string getStationName() const { return m_station_name; }
+    const std::string& getStationName() const { return m_station_name; }
     int getStationEta() const { return m_station_eta; }
     int getStationPhi() const { return m_station_phi; }
     double getR() const { return m_R; }
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx
index 6c2913692a4e..9e5ce50dde96 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_Hit.cxx
@@ -10,9 +10,10 @@
 #include "MuonReadoutGeometry/MMReadoutElement.h"
 #include <cmath>
 
-MMT_Hit::MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager* detManager, const std::string_view stName, const std::vector<ROOT::Math::XYZVector> &planeCoordinates) {
+MMT_Hit::MMT_Hit(const hitData_entry &entry, const MuonGM::MuonDetectorManager* detManager, const std::string_view stName, const std::vector<ROOT::Math::XYZVector> &planeCoordinates)
+   : m_station_name(stName)
+ {
   m_sector = stName[2];
-  m_station_name = stName;
   m_VMM_chip = entry.VMM_chip;
   m_MMFE_VMM = entry.MMFE_VMM;
   m_ART_ASIC = std::ceil(1.*entry.MMFE_VMM/2);
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx
index 3b0afc9815ec..107115961b86 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMT_struct.cxx
@@ -8,7 +8,7 @@
 #include "MuonReadoutGeometry/MuonChannelDesign.h"
 #include "MuonReadoutGeometry/MuonDetectorManager.h"
 
-MMT_Parameters::MMT_Parameters(std::string layerSetup, char wedgeSize, const MuonGM::MuonDetectorManager* detManager)
+MMT_Parameters::MMT_Parameters(const std::string& layerSetup, char wedgeSize, const MuonGM::MuonDetectorManager* detManager)
   : AthMessaging(Athena::getMessageSvc(), "MMT_Parameters") {
 
   // Get the modules for each multiplet, the sector and side arguement (third and fifth argument, respectively) shouldn't matter
-- 
GitLab


From 6a21b8ece0e10f0197d325e03addef342cf7995b Mon Sep 17 00:00:00 2001
From: Frank Winklmeier <frank.winklmeier@cern.ch>
Date: Mon, 17 Mar 2025 08:50:10 +0100
Subject: [PATCH 14/14] Update references

---
 Tools/PROCTools/data/q449_AOD_digest.ref      | 20 +++++++++----------
 Tools/WorkflowTestRunner/python/References.py |  2 +-
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/Tools/PROCTools/data/q449_AOD_digest.ref b/Tools/PROCTools/data/q449_AOD_digest.ref
index b1440b2836b6..8126f978e74c 100644
--- a/Tools/PROCTools/data/q449_AOD_digest.ref
+++ b/Tools/PROCTools/data/q449_AOD_digest.ref
@@ -5,9 +5,9 @@
       431493  1096113011         367         402          71           9           0           9           0           9          11           0          11
       431493  1096113187         274         319          71           7           0           9           0           9          15           0          15
       431493  1096113771         294         409          77           6           0          10           0          10          12           0          12
-      431493  1096114154         374         572          87           6           0           6           0           6          18           0          18
+      431493  1096114154         374         572          87           6           1           6           0           6          18           0          18
       431493  1096114168         132         151          17           4           0           2           0           2           6           0           6
-      431493  1096115980         390         519         130          10           1          20           0          20          22           0          22
+      431493  1096115980         390         519         130          10           0          20           0          20          22           0          22
       431493  1096116200         309         410          57           6           1           4           0           4          12           0          12
       431493  1096118782         294         357          95           7           1          12           0          12          23           0          23
       431493  1096119418         307         337          81           6           0           5           0           5           9           0           9
@@ -26,8 +26,8 @@
       431493  1096128475         165         251          31           5           0           1           0           1          11           0          11
       431493  1096128958         301         370          77           7           0          14           0          14          22           0          22
       431493  1096129516         305         431          15           2           1           2           0           2          12           0          12
-      431493  1096130319         318         520          76           6           1          10           0          10          15           0          15
-      431493  1096130794         340         450         113           8           1          15           0          15          22           0          22
+      431493  1096130319         318         520          76           6           0          10           0          10          15           0          15
+      431493  1096130794         340         451         114           8           1          15           0          15          22           0          22
       431493  1096131620         400         576         131           9           0          13           0          13          26           0          26
       431493  1096131904         328         437          83           9           0          12           0          12          11           0          11
       431493  1096132044         277         303          22           4           1           2           0           2           8           0           8
@@ -42,12 +42,12 @@
       431493  1096137906         161         179          20           4           2           5           0           5           7           0           7
       431493  1096139648         219         205          27           5           3           2           0           2           7           0           7
       431493  1096139847         242         368          40           6           2           1           0           1           8           0           8
-      431493  1096142414         373         506         111           8           1           7           0           7          23           0          23
+      431493  1096142414         373         506         111           8           0           7           0           7          23           0          23
       431493  1096143027         398         499          84           9           1           3           0           3          11           0          11
       431493  1096144036         268         343          65           5           0          12           0          12          14           0          14
       431493  1096145110         241         257          18           2           0           5           0           5           8           0           8
       431493  1096146639         283         422          77           6           0           3           0           3          18           0          18
-      431493  1096146735         321         378         105          10           2          21           0          21          26           0          26
+      431493  1096146735         321         378         105          10           1          21           0          21          26           0          26
       431493  1096147568         392         600          41           4           2           4           0           4          14           0          14
       431493  1096150983         272         320          22           5           0           2           0           2          13           0          13
       431493  1096152978         365         498          87           7           2           8           0           8          11           0          11
@@ -63,16 +63,16 @@
       431493  1096160558         247         368          40           4           0           2           0           2          10           0          10
       431493  1096161183         249         318          54           4           0          12           0          12           7           0           7
       431493  1096162191         348         391          14           2           1           1           0           1           8           0           8
-      431493  1096163035         344         448         120          10           0          14           0          14          26           0          26
+      431493  1096163035         344         448         120          10           1          14           0          14          26           0          26
       431493  1096163900         337         461          70           7           0          12           0          12          19           0          19
       431493  1096164842         307         442          50           5           1           3           0           3           9           0           9
       431493  1096167556         330         425          74           7           1           9           0           9          11           0          11
       431493  1096168429         297         416          99           8           0           6           0           6           8           0           8
       431493  1096171532         341         417          88           9           0          13           0          13          14           0          14
-      431493  1096171788         310         441          60           4           0           9           0           9          12           0          12
+      431493  1096171788         310         441          60           4           1           9           0           9          12           0          12
       431493  1096171838         423         615         140           9           0          10           0          10          25           0          25
       431493  1096173554         314         425          47           5           1           4           0           4           9           0           9
-      431493  1096173910         355         572         107           8           0          11           0          11           9           0           9
+      431493  1096173910         355         572         107           8           1          11           0          11           9           0           9
       431493  1096176781         366         440          89          10           0          11           0          11          20           0          20
       431493  1096177006         309         381          45           5           0           7           0           7          11           0          11
       431493  1096177862         252         280          13           2           0           2           0           2          11           0          11
@@ -80,7 +80,7 @@
       431493  1096178101         361         439          19           3           0           1           0           1          10           0          10
       431493  1096178859         348         361          38           5           1           7           0           7          14           0          14
       431493  1096180059         377         436          34           4           1           2           0           2          22           0          22
-      431493  1096181059         229         263          38           5           1           7           0           7          10           0          10
+      431493  1096181059         229         263          38           5           0           7           0           7          10           0          10
       431493  1096181128         363         556          83           8           1           6           0           6          14           0          14
       431493  1096182354         308         314          58           6           1          13           0          13          16           0          16
       431493  1096182555         238         358          58           7           0           6           0           6           9           0           9
diff --git a/Tools/WorkflowTestRunner/python/References.py b/Tools/WorkflowTestRunner/python/References.py
index 6695445ed097..4012940bb8a8 100644
--- a/Tools/WorkflowTestRunner/python/References.py
+++ b/Tools/WorkflowTestRunner/python/References.py
@@ -26,7 +26,7 @@ references_map = {
     "d1912": "v8",
     # Reco
     "q442": "v75",
-    "q449": "v121",
+    "q449": "v122",
     "q452": "v35",
     "q454": "v51",
     # Derivations
-- 
GitLab