diff --git a/Hlt/RecoConf/CMakeLists.txt b/Hlt/RecoConf/CMakeLists.txt
index 43ed39d48aa9973558840213a790430f0cbcf9a5..d01e7a7f700baf48c2d709f81f096a247b3a4890 100644
--- a/Hlt/RecoConf/CMakeLists.txt
+++ b/Hlt/RecoConf/CMakeLists.txt
@@ -50,6 +50,9 @@ if(BUILD_TESTING AND NOT USE_DD4HEP)
RecoConf.hlt1_pvs_with_beamspotmoni_2025
RecoConf.decoding.compare_hlt1_hlt2_muon_decoding_v3geometry_data_2023
RecoConf.hlt2_reco_jet_efficiency
+ RecoConf.decoding.compare_hlt1_hlt2_rich_smart_ids
+ RecoConf.decoding.compare_hlt1_hlt2_rich_pixels
+ RecoConf.decoding.compare_hlt1_hlt2_rich_pixels_mcdata
PROPERTY
DISABLED TRUE
)
diff --git a/Hlt/RecoConf/options/compare_hlt1_hlt2_rich_pixels.py b/Hlt/RecoConf/options/compare_hlt1_hlt2_rich_pixels.py
new file mode 100644
index 0000000000000000000000000000000000000000..94a1491db7e1d80cab56a56397dc66c2f34b8493
--- /dev/null
+++ b/Hlt/RecoConf/options/compare_hlt1_hlt2_rich_pixels.py
@@ -0,0 +1,42 @@
+###############################################################################
+# (c) Copyright 2000-2025 CERN for the benefit of the LHCb Collaboration #
+# #
+# This software is distributed under the terms of the GNU General Public #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". #
+# #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization #
+# or submit itself to any jurisdiction. #
+###############################################################################
+
+from Allen.config import setup_allen_non_event_data_service
+from AllenConf.rich_reconstruction import make_pixels
+from PyConf.Algorithms import CompareRecAllenRichPixels
+from PyConf.application import configure, configure_input
+from PyConf.control_flow import CompositeNode, NodeLogic
+from RecoConf.options import options
+from RecoConf.rich_reconstruction import default_rich_reco_options, make_rich_pixels
+
+options.evt_max = 100
+config = configure_input(options)
+non_event_data_node = setup_allen_non_event_data_service()
+
+allen_rich1_pixels = make_pixels(rich=1)
+allen_rich2_pixels = make_pixels(rich=2)
+reco_opts = default_rich_reco_options()
+rec_rich_pixels = make_rich_pixels(options=reco_opts)
+
+test_pixels = CompareRecAllenRichPixels(
+ rich1_pixels=allen_rich1_pixels["dev_rich_pixels"],
+ rich2_pixels=allen_rich2_pixels["dev_rich_pixels"],
+ SIMDPixelSummaries=rec_rich_pixels["RichSIMDPixels"],
+)
+
+cf_node = CompositeNode(
+ "compare_rich_pixels",
+ combine_logic=NodeLogic.NONLAZY_OR,
+ children=[non_event_data_node, test_pixels],
+ force_order=True,
+)
+
+config.update(configure(options, cf_node))
diff --git a/Hlt/RecoConf/options/compare_hlt1_hlt2_rich_smart_ids.py b/Hlt/RecoConf/options/compare_hlt1_hlt2_rich_smart_ids.py
index 90a79ad6dacceb7c92c1ac7d67ad2a22022b8407..b315cf737f74ae1518377303a790dc6e5fe768c2 100644
--- a/Hlt/RecoConf/options/compare_hlt1_hlt2_rich_smart_ids.py
+++ b/Hlt/RecoConf/options/compare_hlt1_hlt2_rich_smart_ids.py
@@ -10,7 +10,7 @@
###############################################################################
from Allen.config import setup_allen_non_event_data_service
from AllenConf.rich_reconstruction import decode_rich
-from PyConf.Algorithms import TestAllenRichPixels
+from PyConf.Algorithms import CompareRecAllenRichSmartIDs
from PyConf.application import configure, configure_input
from PyConf.control_flow import CompositeNode, NodeLogic
from RecoConf.options import options
@@ -24,7 +24,7 @@ allen_rich2_decoding_rich = decode_rich(rich=2)
reco_opts = default_rich_reco_options()
rec_rich_pixels = make_rich_pixels(options=reco_opts)
-test_hits = TestAllenRichPixels(
+test_hits = CompareRecAllenRichSmartIDs(
rich1_smart_ids=allen_rich1_decoding_rich["dev_smart_ids"],
rich2_smart_ids=allen_rich2_decoding_rich["dev_smart_ids"],
RichDecodedData=rec_rich_pixels["RichDecodedData"],
diff --git a/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_pixels.qmt b/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_pixels.qmt
new file mode 100644
index 0000000000000000000000000000000000000000..26d86c3f2e206f70dadea5bc61ca41e7ffae53f9
--- /dev/null
+++ b/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_pixels.qmt
@@ -0,0 +1,29 @@
+
+
+
+
+gaudirun.py
+
+ $MOOREROOT/tests/options/default_input_and_conds_hlt2_2025_data.py
+ $RECOCONFROOT/options/compare_hlt1_hlt2_rich_pixels.py
+
+true
+
+
+from Moore.qmtest.exclusions import remove_known_warnings
+countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
+ stdout=remove_known_warnings(stdout))
+
+
+
diff --git a/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_pixels_mcdata.qmt b/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_pixels_mcdata.qmt
new file mode 100644
index 0000000000000000000000000000000000000000..3b622eb72ecc1b881b57d5f33784db1593f74ea2
--- /dev/null
+++ b/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_pixels_mcdata.qmt
@@ -0,0 +1,29 @@
+
+
+
+
+gaudirun.py
+
+ $MOOREROOT/tests/options/mdf_input_and_conds_nominal_beamline_mc_expected_2024.py
+ $RECOCONFROOT/options/compare_hlt1_hlt2_rich_pixels.py
+
+true
+
+
+from Moore.qmtest.exclusions import remove_known_warnings
+countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
+ stdout=remove_known_warnings(stdout))
+
+
+
diff --git a/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_smart_ids.qmt b/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_smart_ids.qmt
index ce74dfdcd0076c1f5f377981ae0f7a0f64fdaf2f..77548b430f6c8a99299455000d86a7c6f772a9f4 100644
--- a/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_smart_ids.qmt
+++ b/Hlt/RecoConf/tests/qmtest/decoding.qms/compare_hlt1_hlt2_rich_smart_ids.qmt
@@ -15,7 +15,7 @@ Make sure HLT1- and HLT2-decoded Rich smart IDs are the same
gaudirun.py
- $MOOREROOT/tests/options/mdf_input_and_conds_data_2022.py
+ $MOOREROOT/tests/options/default_input_and_conds_hlt2_2025_data.py
$RECOCONFROOT/options/compare_hlt1_hlt2_rich_smart_ids.py
true