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