diff --git a/Hlt/Hlt2Conf/CMakeLists.txt b/Hlt/Hlt2Conf/CMakeLists.txt
index 4478122e2b49c959d6c89e8d5c0bb2dee3ebcd5b..fafe2f65ca1b9365271f0f97a65af00e2a8fed84 100644
--- a/Hlt/Hlt2Conf/CMakeLists.txt
+++ b/Hlt/Hlt2Conf/CMakeLists.txt
@@ -38,7 +38,6 @@ if(BINARY_TAG MATCHES "san$")
             Hlt2Conf.streaming.test_sprucing_streaming_check_B
             Hlt2Conf.streaming.test_sprucing_hlt2_check_output_with_reco_with_streams_mdf
             Hlt2Conf.test_hlt2_2or3bodytopo_realtime
-            Hlt2Conf.test_hlt2_pv_tracks_relations_check
             Hlt2Conf.test_persistreco_realtime
             Hlt2Conf.test_persistreco_output_realtime
             Hlt2Conf.test_turbo_hlt2_check_output_with_reco_with_streams_mdf
@@ -52,53 +51,23 @@ if(BUILD_TESTING AND USE_DD4HEP)
         TEST
             # These need muon geometry v2 or depend on tests needing it
             Hlt2Conf.test_hlt1_pp_expected_24_without_UT
+            Hlt2Conf.test_hlt2_2or3bodytopo_fromfile
+            Hlt2Conf.sprucing.test_spruce_example_fromfile
             Hlt2Conf.streaming.test_hlt2_streaming
             Hlt2Conf.streaming.test_hlt2_streaming_check_A
             Hlt2Conf.streaming.test_hlt2_streaming_check_B
-            Hlt2Conf.streaming.test_sprucing_streaming
-            Hlt2Conf.streaming.test_sprucing_streaming_check_A
-            Hlt2Conf.streaming.test_sprucing_streaming_check_B
-            Hlt2Conf.test_hlt2_2or3bodytopo_realtime
-            Hlt2Conf.test_hlt2_2or3bodytopo_realtime_dst
-            Hlt2Conf.test_hlt2_and_spruce_bandwidth
             Hlt2Conf.test_hlt2_and_spruce_bandwidth_SMOG2
+            Hlt2Conf.test_persistreco_realtime
+            Hlt2Conf.test_persistreco_output_realtime
             Hlt2Conf.test_hlt2_btracking_reco_plus_lines
             Hlt2Conf.test_hlt2_flavourtagging_flavourtaggers
             Hlt2Conf.test_persistreco_check_flavourtags
             Hlt2Conf.test_hlt2_flavourtagging_sskaontagger
-            Hlt2Conf.test_hlt2_2or3bodytopo_realtime_with_extras
             Hlt2Conf.test_hlt2_noUT_trackefflines
-            Hlt2Conf.test_hlt2_passthrough_persistreco
-            Hlt2Conf.test_hlt2_passthrough_persistreco_output
             Hlt2Conf.test_hlt2_pp_expected_24_with_UT
-            Hlt2Conf.test_hlt2_pv_tracks_relations_check
             Hlt2Conf.test_hlt2_trackefflines
             Hlt2Conf.test_hlt2_with_hlt1_decisions
-            Hlt2Conf.test_persistreco_output_realtime
-            Hlt2Conf.sprucing.test_spruce_bandwidth
-            Hlt2Conf.sprucing.test_spruce_example_realtime
-            Hlt2Conf.sprucing.test_spruce_example_realtime_check
-            Hlt2Conf.sprucing.test_spruce_example_realtime_dstinput
-            Hlt2Conf.sprucing.test_spruce_example_realtime_dstinput_check
-            Hlt2Conf.sprucing.test_spruce_example_realtime_dstinput_gaudirun
-            Hlt2Conf.sprucing.test_spruce_example_realtime_dstinput_gaudirun_check
-            Hlt2Conf.sprucing.test_spruce_example_realtime_extraoutputs
-            Hlt2Conf.sprucing.test_spruce_example_realtime_extraoutputs_check
-            Hlt2Conf.sprucing.test_spruce_alllines_realtime_gaudirun
-            Hlt2Conf.sprucing.test_spruce_example_realtime_monitoring
-            Hlt2Conf.sprucing.test_spruce_example_realtime_persistreco
-            Hlt2Conf.sprucing.test_spruce_example_realtime_persistreco_check
-            Hlt2Conf.sprucing.test_spruce_hlt2filter
-            Hlt2Conf.sprucing.test_spruce_passthrough
-            Hlt2Conf.sprucing.test_spruce_passthrough_check
-            Hlt2Conf.sprucing.test_spruce_passthrough_dstinput
-            Hlt2Conf.sprucing.test_spruce_passthrough_dstinput_check
-            Hlt2Conf.sprucing.test_spruce_passthrough_dstinput_gaudirun
-            Hlt2Conf.sprucing.test_spruce_passthrough_dstinput_gaudirun_check
-            Hlt2Conf.sprucing.test_spruce_passthrough_gaudirun
-            Hlt2Conf.sprucing.test_spruce_passthrough_gaudirun_check
             Hlt2Conf.test_persistreco_fromfile
-            Hlt2Conf.test_persistreco_output_fromfile
             # needs sim-20180530-vc-md100 as condition version
             Hlt2Conf.test_hlt2_reco_plus_thor_selections
             Hlt2Conf.test_hlt2_reco_plus_thor_selections_fastest
@@ -139,7 +108,6 @@ if(BUILD_TESTING AND NOT USE_DD4HEP)
             Hlt2Conf.sprucing.test_turcal_spruce_2022_data_trackeff_rb_check
             Hlt2Conf.sprucing.test_turcal_spruce_2022_data_monitoring_check
             Hlt2Conf.sprucing.test_turcal_spruce_2022_data_monitoring_rb_check
-            Hlt2Conf.sprucing.test_excl_spruce_2022_data_b2cc_check
             Hlt2Conf.sprucing.test_excl_spruce_2022_data_b2oc_check
             Hlt2Conf.sprucing.test_excl_spruce_2022_data_bandq_check
             Hlt2Conf.sprucing.test_excl_spruce_2022_data_qee_check
diff --git a/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_fromfile.py b/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_fromfile.py
index 6582ac1bbb0c9f360f7b916d8a4c3e219d83ffc9..0e8819194e04dc626b484e9cf4b1e837e23e2474 100644
--- a/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_fromfile.py
+++ b/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_fromfile.py
@@ -20,25 +20,12 @@ from RecoConf.reconstruction_objects import reconstruction
 
 from Hlt2Conf.lines.topological_b import threebody_line, twobody_line
 
-input_files = [
-    # Signal MC B->DsK, 13264031
-    'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000001_1.ldst'
-]
-
-options.input_files = input_files
-options.input_type = 'ROOT'
 options.input_raw_format = 4.3
-# When running from Upgrade MC, must use the post-juggling locations of the raw
-# event
+
+options.set_input_and_conds_from_testfiledb(
+    'expected_2024_min_bias_hlt1_filtered_v2')
 
 options.evt_max = 1000
-options.simulation = True
-options.data_type = 'Upgrade'
-options.dddb_tag = 'dddb-20171126'
-options.conddb_tag = 'sim-20171127-vc-md100'
-options.geometry_version = 'run3/trunk'
-options.conditions_version = 'master'
-options.persistreco_version = 0.0
 
 options.output_file = 'hlt2_2or3bodytopo_fromfile.mdf'
 options.output_type = 'MDF'
@@ -50,6 +37,6 @@ def make_lines():
 
 
 public_tools = [stateProvider_with_simplified_geom()]
-with reconstruction.bind(from_file=True):
+with reconstruction.bind(from_file=False):
     config = run_moore(
         options, make_lines, public_tools, exclude_incompatible=False)
diff --git a/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime.py b/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime.py
index ee77108b3355b8e4377969cd2aea1a98401b5294..fcf60f96cc076ffeeb7a7f7c5819a9a7a369c77b 100644
--- a/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime.py
+++ b/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime.py
@@ -18,51 +18,23 @@ from Moore import options, run_moore
 from RecoConf.global_tools import stateProvider_with_simplified_geom
 from RecoConf.reconstruction_objects import reconstruction
 
-from RecoConf.hlt2_global_reco import reconstruction as hlt2_reconstruction
-from RecoConf.hlt2_global_reco import make_light_reco_pr_kf, make_light_reco_pr_kf_without_UT
-
 from Hlt2Conf.lines.topological_b import threebody_line, twobody_line
 
-input_files = [
-    # Signal MC B->DsK, 13264031
-    'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000001_1.ldst'
-]
-
-options.input_files = input_files
-options.input_type = 'ROOT'
-options.input_raw_format = 4.3
-# When running from Upgrade MC, must use the post-juggling locations of the raw
-# event
+options.set_input_and_conds_from_testfiledb('expected_2024_BdToKstgamma_xdigi')
 
-options.evt_max = 100
-options.simulation = True
-options.data_type = 'Upgrade'
-options.dddb_tag = 'dddb-20171126'
-options.conddb_tag = 'sim-20171127-vc-md100'
-options.geometry_version = 'run3/trunk'
-options.conditions_version = 'master'
+options.evt_max = 1000
 
 options.output_file = 'hlt2_2or3bodytopo_realtime.mdf'
 options.output_type = 'MDF'
 options.output_manifest_file = "hlt2_2or3bodytopo_realtime.tck.json"
 
-from RecoConf.decoders import default_ft_decoding_version
-ft_decoding_version = 2  #4,6
-default_ft_decoding_version.global_bind(value=ft_decoding_version)
-
-from RecoConf.calorimeter_reconstruction import make_digits
-make_digits.global_bind(calo_raw_bank=False)
-
 
 def make_lines():
-    return [twobody_line(persistreco=True), threebody_line(persistreco=True)]
 
+    return [twobody_line(persistreco=True), threebody_line(persistreco=True)]
 
-skipUT = False
-my_reco = make_light_reco_pr_kf_without_UT if skipUT else make_light_reco_pr_kf
 
 public_tools = [stateProvider_with_simplified_geom()]
-with hlt2_reconstruction.bind(
-        make_reconstruction=my_reco), reconstruction.bind(from_file=False):
+with reconstruction.bind(from_file=False):
     config = run_moore(
         options, make_lines, public_tools, exclude_incompatible=False)
diff --git a/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime_dst.py b/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime_dst.py
index cfdad58dc7d7d12c5d7d1abe711b1b18794207d0..97286f20551007f3436426e3062ec1dd0695f9ee 100644
--- a/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime_dst.py
+++ b/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime_dst.py
@@ -22,36 +22,15 @@ from RecoConf.reconstruction_objects import reconstruction
 
 from Hlt2Conf.lines.topological_b import threebody_line, twobody_line
 
-input_files = [
-    # Signal MC B->DsK, 13264031
-    'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000001_1.ldst'
-]
-
-options.input_files = input_files
-options.input_type = 'ROOT'
-options.input_raw_format = 4.3
-# When running from Upgrade MC, must use the post-juggling locations of the raw
-# event
+options.set_input_and_conds_from_testfiledb('expected_2024_BdToKstgamma_xdigi')
 
 options.evt_max = 100
 options.simulation = True
-options.data_type = 'Upgrade'
-options.dddb_tag = 'dddb-20171126'
-options.conddb_tag = 'sim-20171127-vc-md100'
-options.geometry_version = 'run3/trunk'
-options.conditions_version = 'master'
 
 options.output_file = 'hlt2_2or3bodytopo_realtime_dst.dst'
 options.output_type = 'ROOT'
 options.output_manifest_file = "hlt2_2or3bodytopo_realtime_dst.tck.json"
 
-from RecoConf.decoders import default_ft_decoding_version
-ft_decoding_version = 2  #4,6
-default_ft_decoding_version.global_bind(value=ft_decoding_version)
-
-from RecoConf.calorimeter_reconstruction import make_digits
-make_digits.global_bind(calo_raw_bank=False)
-
 
 def make_lines():
     return [twobody_line(persistreco=True), threebody_line(persistreco=True)]
diff --git a/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime_with_extras.py b/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime_with_extras.py
index 8947d06edfd31dfdc176b41fb85ab49f11d10e9c..32182f81430be908913b4a280c7071b541a9fc05 100644
--- a/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime_with_extras.py
+++ b/Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_realtime_with_extras.py
@@ -18,24 +18,18 @@ from Moore import options, run_moore
 from RecoConf.global_tools import stateProvider_with_simplified_geom
 from RecoConf.reconstruction_objects import reconstruction
 
-from RecoConf.hlt2_global_reco import reconstruction as hlt2_reconstruction
-from RecoConf.hlt2_global_reco import make_light_reco_pr_kf, make_light_reco_pr_kf_without_UT
-
 from Moore.lines import Hlt2Line
 from RecoConf.reconstruction_objects import (upfront_reconstruction)
 
 from Hlt2Conf.lines.topological_b import make_filtered_topo_twobody, make_filtered_topo_threebody, line_prefilters
 
-input_files = [
-    # Signal MC B->DsK, 13264031
-    'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000001_1.ldst'
-]
+options.set_input_and_conds_from_testfiledb('expected_2024_BdToKstgamma_xdigi')
 
 
 def twobody_with_extras_line(name="Hlt2_Topo2Body_with_extras",
                              prescale=1,
                              persistreco=True):
-    candidates = make_filtered_topo_twobody(MVACut=0.992)
+    candidates = make_filtered_topo_twobody(MVACut=0.)
     return Hlt2Line(
         name=name,
         algs=upfront_reconstruction() + line_prefilters() + [candidates],
@@ -51,7 +45,7 @@ def twobody_with_extras_line(name="Hlt2_Topo2Body_with_extras",
 def threebody_with_extras_line(name="Hlt2_Topo3Body_with_extras",
                                prescale=1,
                                persistreco=True):
-    candidates = make_filtered_topo_threebody(MVACut=0.999)
+    candidates = make_filtered_topo_threebody(MVACut=0.)
     return Hlt2Line(
         name=name,
         algs=upfront_reconstruction() + line_prefilters() + [candidates],
@@ -71,36 +65,13 @@ def make_lines():
     ]
 
 
-options.input_files = input_files
-options.input_type = 'ROOT'
-options.input_raw_format = 4.3
-# When running from Upgrade MC, must use the post-juggling locations of the raw
-# event
-
 options.evt_max = 100
-options.simulation = True
-options.data_type = 'Upgrade'
-options.dddb_tag = 'dddb-20171126'
-options.conddb_tag = 'sim-20171127-vc-md100'
-options.geometry_version = 'run3/trunk'
-options.conditions_version = 'master'
 
 options.output_file = 'hlt2_2or3bodytopo_realtime_with_extras.mdf'
 options.output_type = 'MDF'
 options.output_manifest_file = "hlt2_2or3bodytopo_realtime_with_extras.tck.json"
 
-from RecoConf.decoders import default_ft_decoding_version
-ft_decoding_version = 2  #4,6
-default_ft_decoding_version.global_bind(value=ft_decoding_version)
-
-from RecoConf.calorimeter_reconstruction import make_digits
-make_digits.global_bind(calo_raw_bank=False)
-
-skipUT = False
-my_reco = make_light_reco_pr_kf_without_UT if skipUT else make_light_reco_pr_kf
-
 public_tools = [stateProvider_with_simplified_geom()]
-with hlt2_reconstruction.bind(
-        make_reconstruction=my_reco), reconstruction.bind(from_file=False):
+with reconstruction.bind(from_file=False):
     config = run_moore(
         options, make_lines, public_tools, exclude_incompatible=False)
diff --git a/Hlt/Hlt2Conf/options/hlt2_passthrough_persistreco.py b/Hlt/Hlt2Conf/options/hlt2_passthrough_persistreco.py
index a39bfded287295fce0dcc820ef357d6fa63c1288..98f41c343b6f776f4406379c6b66db21a883d3a6 100644
--- a/Hlt/Hlt2Conf/options/hlt2_passthrough_persistreco.py
+++ b/Hlt/Hlt2Conf/options/hlt2_passthrough_persistreco.py
@@ -18,27 +18,10 @@ from Moore import options, run_moore
 from RecoConf.global_tools import stateProvider_with_simplified_geom
 from RecoConf.reconstruction_objects import reconstruction
 from Moore.lines import Hlt2Line
-from RecoConf.decoders import default_ft_decoding_version
-from RecoConf.calorimeter_reconstruction import make_digits
 
-input_files = [
-    'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000001_1.ldst'
-]
-
-options.input_files = input_files
-options.input_type = 'ROOT'
-options.input_raw_format = 4.3
-
-ft_decoding_version = 2
-default_ft_decoding_version.global_bind(value=ft_decoding_version)
-make_digits.global_bind(calo_raw_bank=False)
-
-options.evt_max = 10
-options.simulation = True
-options.data_type = 'Upgrade'
-options.dddb_tag = 'dddb-20171126'
-options.conddb_tag = 'sim-20171127-vc-md100'
+options.set_input_and_conds_from_testfiledb('expected_2024_BdToKstgamma_xdigi')
 
+options.evt_max = 100
 options.output_file = 'hlt2_passthrough_persistreco.mdf'
 options.output_type = 'MDF'
 options.output_manifest_file = "hlt2_passthrough_persistreco.tck.json"
diff --git a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime.yaml b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime.yaml
index 4a167d764adb06a1882a86aed5619a5f417779f5..3da5b0f314e3b3b2f1ee0e2ce8d8cd3ec2f407c1 100644
--- a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime.yaml
+++ b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime.yaml
@@ -6,10 +6,11 @@ input_type : 'RAW'
 
 evt_max : -1
 simulation : True
-dddb_tag : 'dddb-20171126'
-conddb_tag : 'sim-20171127-vc-md100'
-geometry_version : 'run3/trunk'
-conditions_version : 'master'
+geometry_version: run3/trunk
+conditions_version: jonrob/all-pmts-active
+dddb_tag: dddb-20231017
+conddb_tag: sim-20231017-vc-mu100
+
 
 output_file : 'spruce_example_realtimereco.{stream}.dst'
 output_type : 'ROOT'
diff --git a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_dstinput.yaml b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_dstinput.yaml
index f0773049f0776a5c375c7ef496ba0203f2278945..23fd6f187a964703196e15036ae6edfdc4f1d79e 100644
--- a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_dstinput.yaml
+++ b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_dstinput.yaml
@@ -6,8 +6,12 @@ input_type : 'ROOT'
 
 evt_max : -1
 simulation : True
-dddb_tag : 'dddb-20171126'
-conddb_tag : 'sim-20171127-vc-md100'
+
+geometry_version: run3/trunk
+conditions_version: jonrob/all-pmts-active
+dddb_tag: dddb-20231017
+conddb_tag: sim-20231017-vc-mu100
+
 
 output_file : 'spruce_realtimereco_dstinput.{stream}.dst'
 output_type : 'ROOT'
diff --git a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_extraoutputs.yaml b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_extraoutputs.yaml
index 3b7c13f49765f849d0933cff7eca847e90433c43..792a1ffefe3936184e9412cdba10214fcc366bc5 100644
--- a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_extraoutputs.yaml
+++ b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_extraoutputs.yaml
@@ -6,8 +6,11 @@ input_type : 'RAW'
 
 evt_max : -1
 simulation : True
-dddb_tag : 'dddb-20171126'
-conddb_tag : 'sim-20171127-vc-md100'
+geometry_version: run3/trunk
+conditions_version: jonrob/all-pmts-active
+dddb_tag: dddb-20231017
+conddb_tag: sim-20231017-vc-mu100
+
 
 output_file : 'spruce_realtimereco_extraoutputs.dst'
 output_type : 'ROOT'
diff --git a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_neutral_dstinput.yaml b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_neutral_dstinput.yaml
index c02ca790d20bff735f195f03fcf4db867e774509..10cba19b0b88dfd8ccb11ec1d23302ee84a15db6 100644
--- a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_neutral_dstinput.yaml
+++ b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_neutral_dstinput.yaml
@@ -7,10 +7,11 @@ input_type : 'ROOT'
 evt_max : -1
 simulation : True
 data_type : 'Upgrade'
-dddb_tag : 'dddb-20231017'
-conddb_tag : 'sim-20231017-vc-mu100'
-geometry_version : 'run3/trunk'
-conditions_version : 'jonrob/all-pmts-active'
+geometry_version: run3/trunk
+conditions_version: jonrob/all-pmts-active
+dddb_tag: dddb-20231017
+conddb_tag: sim-20231017-vc-mu100
+
 
 output_file : 'spruce_realtimereco_neutral_dstinput.{stream}.dst'
 output_type : 'ROOT'
diff --git a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_persistreco.yaml b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_persistreco.yaml
index 6b1014a86a4d27270c8e7f35b9b00130503d3e03..73bf000dc706b1eac0a2aaed4b504c9fbd3abf2f 100644
--- a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_persistreco.yaml
+++ b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_example_realtime_persistreco.yaml
@@ -6,8 +6,11 @@ input_type : 'RAW'
 
 evt_max : -1
 simulation : True
-dddb_tag : 'dddb-20171126'
-conddb_tag : 'sim-20171127-vc-md100'
+geometry_version: run3/trunk
+conditions_version: jonrob/all-pmts-active
+dddb_tag: dddb-20231017
+conddb_tag: sim-20231017-vc-mu100
+
 
 output_file : 'spruce_realtimereco_persistreco.dst'
 output_type : 'ROOT'
diff --git a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_hlt2filter.yaml b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_hlt2filter.yaml
index 69df8d8ea579f7d3881e3d45efe79f65b3c774cf..354857291904f1208f4c1e6a2cf4c7531e1107eb 100644
--- a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_hlt2filter.yaml
+++ b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_hlt2filter.yaml
@@ -6,8 +6,11 @@ input_type : 'RAW'
 
 evt_max : -1
 simulation : True
-dddb_tag : 'dddb-20180815'
-conddb_tag : 'sim-20180530-vc-md100'
+geometry_version: run3/trunk
+conditions_version: jonrob/all-pmts-active
+dddb_tag: dddb-20231017
+conddb_tag: sim-20231017-vc-mu100
+
 
 output_file : 'spruce_HLT2filter.dst'
 output_type : 'ROOT'
diff --git a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_passthrough.yaml b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_passthrough.yaml
index 4a67fa1fbc8c031f673cd94dde064c785d2b22e4..fc30e449cb2a3a6836fb27c994876f62d6b62b46 100644
--- a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_passthrough.yaml
+++ b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_passthrough.yaml
@@ -1,13 +1,16 @@
 process: TurboPass
 input_raw_format : 0.5
-input_files : ['hlt2_test_persistreco_fromfile.test_stream_B.mdf']
+input_files : ['hlt2_2or3bodytopo_realtime.mdf']
 input_type : 'RAW'
-input_manifest_file : 'hlt2_test_streaming.tck.json'
+input_manifest_file : 'hlt2_2or3bodytopo_realtime.tck.json'
 
 evt_max : -1
 simulation : True
-dddb_tag : 'dddb-20171126'
-conddb_tag : 'sim-20171127-vc-md100'
+geometry_version: run3/trunk
+conditions_version: jonrob/all-pmts-active
+dddb_tag: dddb-20231017
+conddb_tag: sim-20231017-vc-mu100
+
 
 output_file : 'spruce_passthrough.{stream}.dst'
 output_type : 'ROOT'
diff --git a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_passthrough_dstinput.yaml b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_passthrough_dstinput.yaml
index 7d865881a96a42a92c027b0221d3b852fbbd1c12..88e8020278b8e149d1e6e10eeb08742fda2a1fb2 100644
--- a/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_passthrough_dstinput.yaml
+++ b/Hlt/Hlt2Conf/options/sprucing/lbexec_yamls/spruce_passthrough_dstinput.yaml
@@ -6,8 +6,10 @@ input_manifest_file : 'hlt2_2or3bodytopo_realtime_dst.tck.json'
 
 evt_max : -1
 simulation : True
-dddb_tag : 'dddb-20171126'
-conddb_tag : 'sim-20171127-vc-md100'
+geometry_version: run3/trunk
+conditions_version: jonrob/all-pmts-active
+dddb_tag: dddb-20231017
+conddb_tag: sim-20231017-vc-mu100
 
 output_file : 'spruce_passthrough_dstinput.dst'
 output_type : 'ROOT'
diff --git a/Hlt/Hlt2Conf/options/sprucing/spruce_example_realtime_dstinput.py b/Hlt/Hlt2Conf/options/sprucing/spruce_example_realtime_dstinput.py
index 46cb4f8161b9aa0ae45eb7e88d9c500c90250811..166b65408d1b39b665f63752323b377a177ce87c 100644
--- a/Hlt/Hlt2Conf/options/sprucing/spruce_example_realtime_dstinput.py
+++ b/Hlt/Hlt2Conf/options/sprucing/spruce_example_realtime_dstinput.py
@@ -22,7 +22,7 @@ from Hlt2Conf.lines.test.spruce_test import Test_sprucing_line
 
 input_files = ['hlt2_2or3bodytopo_realtime_dst.dst']
 
-options.input_raw_format = 0.3
+options.input_raw_format = 0.5
 options.input_process = 'Hlt2'
 options.input_files = input_files
 options.input_manifest_file = "hlt2_2or3bodytopo_realtime_dst.tck.json"
@@ -30,8 +30,11 @@ options.input_type = 'ROOT'
 
 options.evt_max = -1
 options.simulation = True
-options.dddb_tag = 'dddb-20171126'
-options.conddb_tag = 'sim-20171127-vc-md100'
+
+options.geometry_version = 'run3/trunk'
+options.conditions_version = 'jonrob/all-pmts-active'
+options.dddb_tag = 'dddb-20231017'
+options.conddb_tag = 'sim-20231017-vc-mu100'
 
 options.output_file = 'spruce_realtimereco_dstinput_gaudirun.dst'
 options.output_type = 'ROOT'
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py b/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py
index 666581d334e0e4828ad3ba0151ea4177080af8a7..cb02ca47dee65f47e7aac303d2f8848c669f69db 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py
@@ -10,16 +10,14 @@
 ###############################################################################
 from Moore import Options, run_moore
 from RecoConf.global_tools import stateProvider_with_simplified_geom
-from RecoConf.reconstruction_objects import upfront_reconstruction
 from Hlt2Conf.lines import sprucing_lines
-from Hlt2Conf.lines.test.spruce_test import Test_sprucing_line, Test_sprucing_BdToKstGamma, Test_extraoutputs_sprucing_line, Test_persistreco_sprucing_line, Test_sprucing_rawbank_sp_line
-from Hlt2Conf.lines.b_to_open_charm import b_to_dh
+from Hlt2Conf.lines.test import spruce_test
 from Moore.lines import PassLine, SpruceLine
 from Moore.persistence import persist_line_outputs
 from PyConf.application import metainfo_repos
 from Moore.persistence.hlt2_tistos import list_of_full_stream_lines
 from Moore.config import filter_lines as remove_lines
-from Moore.streams import Stream, Streams, DETECTORS
+from Moore.streams import Stream, Streams
 
 public_tools = [stateProvider_with_simplified_geom()]
 
@@ -44,13 +42,17 @@ def spruce_streaming(options: Options):
     def make_streams():
         stream_A = Stream(
             name="test_stream_A",
-            lines=[Test_sprucing_line(name="Spruce_test_stream_A_line")],
+            lines=[
+                spruce_test.Test_sprucing_line(
+                    name="Spruce_test_stream_A_line")
+            ],
             detectors=['VP', 'UT', 'FT', 'Rich', 'Muon', 'Calo'])
 
         stream_B = Stream(
             name="test_stream_B",
             lines=[
-                Test_sprucing_rawbank_sp_line(name="Spruce_test_stream_B_line")
+                spruce_test.Test_sprucing_rawbank_sp_line(
+                    name="Spruce_test_stream_B_line")
             ],
             detectors=['VP', 'UT', 'Muon', 'Calo'])
 
@@ -92,7 +94,9 @@ def spruce_example_realtime(options: Options):
         return Streams(streams=[
             Stream(
                 name="test",
-                lines=[Test_sprucing_line(name="Spruce_Test_line")],
+                lines=[
+                    spruce_test.Test_sprucing_line(name="Spruce_Test_line")
+                ],
                 detectors=["Rich"])
         ])
 
@@ -110,7 +114,8 @@ def spruce_example_realtime_neutral(options: Options):
             Stream(
                 name="test",
                 lines=[
-                    Test_sprucing_BdToKstGamma(name="SpruceTest_BdToKstGamma")
+                    spruce_test.Test_sprucing_BdToKstGamma(
+                        name="SpruceTest_BdToKstGamma")
                 ],
                 detectors=["Rich"])
         ])
@@ -120,11 +125,6 @@ def spruce_example_realtime_neutral(options: Options):
 
 
 def spruce_sp_passthrough(options: Options):
-    """Test pass-through Sprucing line. Produces spruce_passthrough.dst
-    Run like any other options file:
-    ./Moore/run gaudirun.py spruce_passthrough.py
-    """
-
     def make_streams():
         return Streams(streams=[
             Stream(
@@ -132,9 +132,9 @@ def spruce_sp_passthrough(options: Options):
                 lines=[
                     PassLine(
                         "Passthrough",
-                        hlt2_filter_code='Hlt2_test_stream_B_lineDecision')
+                        hlt2_filter_code='Hlt2Topo2BodyDecision')
                 ],
-                detectors=DETECTORS)
+                detectors=['Muon'])
         ])
 
     config = run_moore(options, make_streams, public_tools)
@@ -142,11 +142,6 @@ def spruce_sp_passthrough(options: Options):
 
 
 def spruce_passthrough(options: Options):
-    """Test pass-through Sprucing line. Produces spruce_passthrough.dst
-    Run like any other options file:
-    ./Moore/run gaudirun.py spruce_passthrough.py
-    """
-
     def pass_through_line(name="Passthrough"):
         """Return a Sprucing line that performs no selection
         """
@@ -161,26 +156,25 @@ def spruce_passthrough(options: Options):
 
 def spruce_hlt2filter(options: Options):
     """Test HLT2 filters on Sprucing lines. Runs on `hlt2_2or3bodytopo_realtime.mdf` from `hlt2_2or3bodytopo_realtime.py`
-
-    Run like any other options file:
-
-    ./Moore/run gaudirun.py spruce_hlt2filter.py
-
     """
 
     def Sprucing_line_1(name='Spruce_filteronTopo2'):
-        line_alg = b_to_dh.make_BdToDsmK_DsmToKpKmPim(process='spruce')
+
+        kst, b0 = spruce_test.b2kstgamma_line()
+
         return SpruceLine(
             name=name,
-            algs=upfront_reconstruction() + [line_alg],
+            algs=spruce_test.SpruceTest_prefilter() + [kst, b0],
             #hlt1_filter_code="HLT_PASS_RE('Hlt1GECPassthroughDecision')",
             hlt2_filter_code="Hlt2Topo2BodyDecision")
 
     def Sprucing_line_2(name='Spruce_filteronTopo3'):
-        line_alg = b_to_dh.make_BdToDsmK_DsmToHHH_FEST(process='spruce')
+
+        kst, b0 = spruce_test.b2kstgamma_line()
+
         return SpruceLine(
             name=name,
-            algs=upfront_reconstruction() + [line_alg],
+            algs=spruce_test.SpruceTest_prefilter() + [kst, b0],
             #hlt1_filter_code="HLT_PASS_RE('Hlt1PassthroughDecision')",
             hlt2_filter_code="Hlt2Topo3BodyDecision")
 
@@ -198,7 +192,7 @@ def spruce_example_realtime_extraoutputs(options: Options):
 
     def make_lines():
         return [
-            Test_extraoutputs_sprucing_line(
+            spruce_test.Test_extraoutputs_sprucing_line(
                 name="Spruce_Test_line_extraoutputs"),
         ]
 
@@ -212,7 +206,8 @@ def spruce_example_realtime_persistreco(options: Options):
 
     def make_lines():
         return [
-            Test_persistreco_sprucing_line(name="Spruce_Test_line_persistreco")
+            spruce_test.Test_persistreco_sprucing_line(
+                name="Spruce_Test_line_persistreco")
         ]
 
     config = run_moore(options, make_lines, public_tools)
@@ -221,12 +216,6 @@ def spruce_example_realtime_persistreco(options: Options):
 
 def spruce_all_lines_realtime_test_old_json(options: Options):
     """Test running all Sprucing lines on topo{2,3} persistreco hlt2 output (use real time reco). Produces spruce_all_lines_realtimereco_newPacking.dst
-
-    Use this for rate tests
-
-    Run like any other options file:
-
-    ./Moore/run gaudirun.py spruce_all_lines_realtime.py
     """
 
     trunc_lines = sprucing_lines
@@ -258,9 +247,11 @@ def spruce_test_lines(options: Options):
 
     def make_lines():
         return [
-            Test_sprucing_line(name="SpruceTest_SpruceTest"),
-            Test_extraoutputs_sprucing_line(name="SpruceTest_ExtraOutputs"),
-            Test_persistreco_sprucing_line(name="Spruce_Test_line_persistreco")
+            spruce_test.Test_sprucing_line(name="SpruceTest_SpruceTest"),
+            spruce_test.Test_extraoutputs_sprucing_line(
+                name="SpruceTest_ExtraOutputs"),
+            spruce_test.Test_persistreco_sprucing_line(
+                name="Spruce_Test_line_persistreco")
         ]
 
     config = run_moore(options, make_lines, public_tools)
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/check_output.py b/Hlt/Hlt2Conf/python/Hlt2Conf/check_output.py
index 4432ab4e181c4cfecae882890143e304a6480fc2..6e494d6173ed911336d4b7d4173c879f103f8d3e 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/check_output.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/check_output.py
@@ -49,7 +49,7 @@ def check_persistreco(TES, locations, N=3, unexpected_locs=[]):
                       f" entries, expected >={N}.")
 
 
-def check_MCoutput(TES, RECO_ROOT, fs=4, mcpart=100):
+def check_MCoutput(TES, RECO_ROOT, fs=2, mcpart=100):
     """
     Check MC TES locations are present for dst workflows
 
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/test/spruce_test.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/test/spruce_test.py
index a154c1bd3785833ad9b02f97ea42d0d5cc792c9c..ce8c8e8a22490e510cc943bb0b26a7c9602a169c 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/test/spruce_test.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/test/spruce_test.py
@@ -16,7 +16,7 @@ from Moore.config import SpruceLine
 
 from SelAlgorithms.monitoring import histogram_1d, monitor
 
-from GaudiKernel.SystemOfUnits import GeV, MeV, mm, picosecond
+from GaudiKernel.SystemOfUnits import GeV, MeV, mm
 
 import Functors as F
 
@@ -25,82 +25,21 @@ from RecoConf.reconstruction_objects import make_pvs, upfront_reconstruction
 from RecoConf.event_filters import require_pvs, require_gec
 
 from Hlt2Conf.algorithms_thor import ParticleFilter, ParticleCombiner
-from Hlt2Conf.standard_particles import (make_has_rich_long_pions,
-                                         make_has_rich_long_kaons,
-                                         make_long_pions, make_photons)
+from Hlt2Conf.standard_particles import (
+    make_has_rich_long_pions, make_has_rich_long_kaons, make_photons)
 
 from math import cos
 
 sprucing_lines = {}
 
-##############################################
-# From the B2OC BToDh_Builder
-##############################################
-
-
-def _make_kaons(k_pidk_min=-10., p_min=2 * GeV, pt_min=250 * MeV, minipchi2=4):
-    pvs = make_pvs()
-    kaons = ParticleFilter(make_has_rich_long_kaons(),
-                           F.FILTER(F.require_all(F.P > p_min, F.PT > pt_min)))
-    if k_pidk_min is not None:
-        code = F.PID_K > k_pidk_min
-        kaons = ParticleFilter(kaons, F.FILTER(code))
-    if minipchi2 is not None:
-        code = F.MINIPCHI2(pvs) > minipchi2
-        kaons = ParticleFilter(kaons, F.FILTER(code))
-    return kaons
-
-
-def _make_ds(kaons, pvs):
-    pions = ParticleFilter(
-        make_has_rich_long_pions(),
-        F.FILTER(
-            F.require_all(F.PT > 250 * MeV, F.P > 2 * GeV,
-                          F.MINIPCHI2(pvs) > 4)))
-    return ParticleCombiner([kaons, kaons, pions],
-                            name='Test_Ds2KKPiCombiner_{hash}',
-                            DecayDescriptor='[D_s+ -> K+ K- pi+]cc',
-                            Combination12Cut=F.require_all(
-                                F.MASS < 2010 * MeV,
-                                F.SDOCA(1, 2) < 0.5 * mm),
-                            CombinationCut=F.require_all(
-                                in_range(1930 * MeV, F.MASS, 2010 * MeV),
-                                F.SUM(F.PT) > 1800 * MeV,
-                                F.SDOCA(1, 3) < 0.5 * mm,
-                                F.SDOCA(2, 3) < 0.5 * mm,
-                            ),
-                            CompositeCut=F.require_all(
-                                F.CHI2DOF < 10,
-                                F.BPVFDCHI2(pvs) > 36,
-                                F.BPVIPCHI2(pvs) > 0,
-                                F.BPVDIRA(pvs) > 0,
-                                in_range(1930 * MeV, F.MASS, 2010 * MeV)))
-
-
-def _make_b2x(particles, descriptor, name="Test_B2XCombiner_{hash}"):
-    pvs = make_pvs()
-
-    return ParticleCombiner(
-        particles,
-        name=name,
-        DecayDescriptor=descriptor,
-        CombinationCut=F.require_all(
-            in_range(5000 * MeV, F.MASS, 7000 * MeV),
-            F.SUM(F.PT) > 6 * GeV),
-        CompositeCut=F.require_all(
-            in_range(5000 * MeV, F.MASS, 7000 * MeV), F.CHI2DOF < 20,
-            F.BPVIPCHI2(pvs) < 25,
-            F.BPVLTIME(pvs) > 0.3 * picosecond,
-            F.BPVDIRA(pvs) > 0.999))
-
 
+#########################################################
+### Standalone code to make B->Kstgamma Sprucing line ###
 def make_filter_tracks(make_particles=make_has_rich_long_pions,
                        make_pvs=make_pvs,
                        name="SpruceTest_has_rich_long_pions",
                        pt_min=250. * MeV,
                        p_min=2.0 * GeV,
-                       trchi2dof_max=3,
-                       trghostprob_max=0.4,
                        mipchi2dvprimary_min=None,
                        pid=None):
     """
@@ -154,7 +93,6 @@ def make_test_has_rich_detached_kaons(
         pid=pid)
 
 
-#@configurable
 def make_test_detached_kstar0s(
         name="test_detached_kstar0s_{hash}",
         make_pvs=make_pvs,
@@ -253,48 +191,7 @@ def make_test_b2xgamma_excl(intermediate,
         CompositeCut=vertex_code)
 
 
-def SpruceTest_prefilter(require_GEC=False):
-    """
-    Args:
-        require_GEC (bool, optional): require the General Event Cut. Default to False.
-    """
-    gec = [require_gec()] if require_GEC else []
-    return upfront_reconstruction() + gec + [require_pvs(make_pvs())]
-
-
-#@register_line_builder(sprucing_lines)
-def Test_sprucing_line(name='SpruceTest_SpruceTest', prescale=1):
-    pvs = make_pvs()
-    kaons = _make_kaons()
-    d = _make_ds(kaons, pvs)
-    line_alg = _make_b2x(particles=[d, kaons], descriptor='[B0 -> D_s- K+]cc')
-
-    d_mon = monitor(
-        name=name + "_Ds_Monitor",
-        data=d,
-        histograms=[
-            histogram_1d(
-                name="m",
-                title="m",
-                label="MASS",
-                functor=F.MASS,
-                bins=50,
-                range=((1968.35 - 5 * 5.0) * MeV, (1968.35 + 5 * 5.0) * MeV))
-        ])
-
-    return SpruceLine(
-        name=name,
-        prescale=prescale,
-        raw_banks=['Calo'],
-        algs=upfront_reconstruction() + [require_pvs(pvs), d_mon, line_alg])
-
-
-#@register_line_builder(sprucing_lines)
-#@configurable
-def Test_sprucing_BdToKstGamma(name="SpruceTest_BdToKstGamma",
-                               persistreco=False,
-                               prescale=1.):
-
+def b2kstgamma_line():
     pvs = make_pvs()
 
     kst = make_test_detached_kstar0s(
@@ -323,6 +220,48 @@ def Test_sprucing_BdToKstGamma(name="SpruceTest_BdToKstGamma",
         dira_min=cos(0.045),
         name="Test_BdToKstGamma_Combiner")
 
+    return kst, b0
+
+
+#########################################################
+#########################################################
+
+
+def SpruceTest_prefilter(require_GEC=False):
+    """
+    Args:
+        require_GEC (bool, optional): require the General Event Cut. Default to False.
+    """
+    gec = [require_gec()] if require_GEC else []
+    return upfront_reconstruction() + gec + [require_pvs(make_pvs())]
+
+
+def Test_sprucing_line(name='SpruceTest_SpruceTest', prescale=1):
+    kst, b0 = b2kstgamma_line()
+    kst_mon = monitor(
+        name=name + "_kst_Monitor",
+        data=kst,
+        histograms=[
+            histogram_1d(
+                name="m",
+                title="m",
+                label="MASS",
+                functor=F.MASS,
+                bins=50,
+                range=((900 - 5 * 5.0) * MeV, (1100 + 5 * 5.0) * MeV))
+        ])
+
+    return SpruceLine(
+        name=name,
+        prescale=prescale,
+        raw_banks=['Calo'],
+        algs=SpruceTest_prefilter() + [kst_mon, kst, b0])
+
+
+def Test_sprucing_BdToKstGamma(name="SpruceTest_BdToKstGamma", prescale=1.):
+
+    kst, b0 = b2kstgamma_line()
+
     return SpruceLine(
         name=name,
         prescale=prescale,
@@ -332,10 +271,11 @@ def Test_sprucing_BdToKstGamma(name="SpruceTest_BdToKstGamma",
 
 def Test_extraoutputs_sprucing_line(name='SpruceTest_ExtraOutputs',
                                     prescale=1):
+
+    from Hlt2Conf.standard_particles import make_long_pions
+    kst, b0 = b2kstgamma_line()
+
     pvs = make_pvs()
-    kaons = _make_kaons()
-    d = _make_ds(kaons, pvs)
-    line_alg = _make_b2x(particles=[d, kaons], descriptor='[B0 -> D_s- K+]cc')
 
     LongT = ParticleFilter(make_long_pions(), F.FILTER(F.MINIPCHI2(pvs) > 0))
 
@@ -348,32 +288,28 @@ def Test_extraoutputs_sprucing_line(name='SpruceTest_ExtraOutputs',
         pv_tracks=True,
         track_ancestors=True,
         persistreco=True,
-        algs=upfront_reconstruction() + [require_pvs(pvs), line_alg])
+        algs=SpruceTest_prefilter() + [kst, b0])
 
 
 def Test_persistreco_sprucing_line(name='SpruceTest_PersistReco', prescale=1):
-    pvs = make_pvs()
-    kaons = _make_kaons()
-    d = _make_ds(kaons, pvs)
-    line_alg = _make_b2x(particles=[d, kaons], descriptor='[B0 -> D_s- K+]cc')
+
+    kst, b0 = b2kstgamma_line()
+
     return SpruceLine(
         name=name,
         prescale=prescale,
         persistreco=True,
-        algs=upfront_reconstruction() + [require_pvs(pvs), line_alg])
+        algs=SpruceTest_prefilter() + [kst, b0])
 
 
 ### line for testing selective persistency of detector raw banks
 ### currently it is asking for one addiitonal 'FT' bank
 def Test_sprucing_rawbank_sp_line(name='SpruceTest_rawbank_sp', prescale=1):
-    pvs = make_pvs()
-    kaons = _make_kaons(p_min=5 * GeV, pt_min=500 * MeV, k_pidk_min=None)
-    d = _make_ds(kaons, pvs)
 
-    line_alg = _make_b2x(particles=[d, kaons], descriptor='[B0 -> D_s- K+]cc')
+    kst, b0 = b2kstgamma_line()
 
     return SpruceLine(
         name=name,
         prescale=prescale,
         raw_banks=['FT'],
-        algs=upfront_reconstruction() + [require_pvs(pvs), line_alg])
+        algs=SpruceTest_prefilter() + [kst, b0])
diff --git a/Hlt/Hlt2Conf/tests/options/bandwidth/spruce_bandwidth_input.py b/Hlt/Hlt2Conf/tests/options/bandwidth/spruce_bandwidth_input.py
deleted file mode 100644
index a11c22bcc9f501e550cbcb9fafdcaf4788764b6c..0000000000000000000000000000000000000000
--- a/Hlt/Hlt2Conf/tests/options/bandwidth/spruce_bandwidth_input.py
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# (c) Copyright 2023 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.                                       #
-###############################################################################
-'''
-Configure input files for the Sprucing bandwidth tests
-
-This is needed for the qmtest in Moore.
-For the test in LHCbPR, the input files are configured by
-$PRCONFIGROOT/python/MooreTests/run_bandwidth_test_jobs.py
-
-If updating, please also update spruce_bandwidth_input.yaml
-'''
-
-from Moore import options
-from Moore.persistence.hlt2_tistos import list_of_full_stream_lines
-from Hlt2Conf.sprucing_settings.fixed_line_configs import lines_for_TISTOS_BW_Aug2023 as lines_for_TISTOS
-
-options.set_input_and_conds_from_testfiledb(
-    'expected_2024_min_bias_hlt2_full_stream_v2')
-options.input_raw_format = 0.5
-options.input_type = "MDF"
-options.evt_max = 1000
-options.n_threads = 1
-
-list_of_full_stream_lines.global_bind(lines=lines_for_TISTOS)
diff --git a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check.py b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check.py
index 9dd825ab4fcc265c66e2808c6d1e5e6923a80bd2..5125174086f663761625c982284a00f985347bb3 100644
--- a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check.py
+++ b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check.py
@@ -39,6 +39,11 @@ from Hlt2Conf.check_output import (
 )
 from DDDB.CheckDD4Hep import UseDD4Hep
 
+
+def error(msg):
+    print("CheckOutput ERROR", msg)
+
+
 parser = argparse.ArgumentParser()
 parser.add_argument('-i', type=str, help='Input MDF or DST')
 parser.add_argument('-t', type=str, help='.tck.json file from the job')
@@ -101,7 +106,6 @@ HistogramPersistencySvc(OutputLevel=5)
 
 appMgr = GP.AppMgr()
 TES = appMgr.evtsvc()
-appMgr.run(1)
 
 # MonkeyPatch for the fact that RegistryEntry.__bool__
 # changed in newer cppyy. Proper fix should go into Gaudi
@@ -114,6 +118,8 @@ for ii in range(nevents):
     print('Checking next event.')
     appMgr.run(1)
     if not TES['/Event']:
+        if ii == 0:
+            error("No events found. Something has gone very wrong!!")
         break
     if ii == 0:
         TES.dump()
diff --git a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_2022_data.py b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_2022_data.py
index 59635c1978fb9df9c287d245ea3a6b83b7a8e14a..d4af8f77e8e897505f64afaeb0b4c8186f4d3b33 100644
--- a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_2022_data.py
+++ b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_2022_data.py
@@ -114,12 +114,14 @@ cppyy.gbl.DataSvcHelpers.RegistryEntry.__bool__ = lambda x: True
 
 raweventloc = f'/Event/{args.stream}/RawEvent'
 
-appMgr.run(1)
 TES.dump()
 nevt = 5
 for i in range(nevt):
     print('Checking next event.')
+    appMgr.run(1)
     if not TES['/Event']:
+        if i == 0:
+            error("No events found. Something has gone very wrong!!")
         break
 
     # Check HLT2 DstData bank is persisted through the Sprucing, together with checks of other banks
@@ -185,4 +187,3 @@ for i in range(nevt):
         for k in sprucefired:
             prefix = '/Event/Spruce/' + k
             check_particles(TES, prefix.removesuffix("Decision"))
-    appMgr.run(1)
diff --git a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_extraoutputs.py b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_extraoutputs.py
index 158c0d98564f393b763cd341c8f0f26e7bb6a3fe..f8629df60a6de0c1dca80b1e33ac426d8fb4c19d 100644
--- a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_extraoutputs.py
+++ b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_extraoutputs.py
@@ -17,7 +17,6 @@ import GaudiPython as GP
 from GaudiConf import IOExtension
 from Configurables import (
     ApplicationMgr,
-    CondDB,
     LHCbApp,
     IODataManager,
     HistogramPersistencySvc,
@@ -26,6 +25,7 @@ from Configurables import (
 from PyConf.application import configured_ann_svc
 from PyConf.packing import default_persistable_locations
 from GaudiConf.reading import do_unpacking
+from DDDB.CheckDD4Hep import UseDD4Hep
 
 from Hlt2Conf.check_output import (
     check_banks,
@@ -51,7 +51,10 @@ LHCbApp(
     DDDBtag="dddb-20171126",
     CondDBtag="sim-20171127-vc-md100",
 )
-CondDB(Upgrade=True)
+
+if not UseDD4Hep:
+    from Configurables import CondDB
+    CondDB(Upgrade=True)
 
 input_process = "Spruce"
 stream = 'default'
@@ -70,7 +73,6 @@ HistogramPersistencySvc(OutputLevel=5)
 
 appMgr = GP.AppMgr()
 TES = appMgr.evtsvc()
-appMgr.run(1)
 
 # MonkeyPatch for the fact that RegistryEntry.__bool__
 # changed in newer cppyy. Proper fix should go into Gaudi
@@ -85,6 +87,8 @@ for ii in range(nevents):
     print('Checking next event.')
     appMgr.run(1)
     if not TES['/Event']:
+        if ii == 0:
+            error("No events found. Something has gone very wrong!!")
         break
     if ii == 0:
         TES.dump()
diff --git a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_neutral.py b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_neutral.py
index 5c6f0c32437363fdb57cd568fe87c372f0909602..2d3c6175cfeff64cad0e6b4d172cd78ce939d5bc 100644
--- a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_neutral.py
+++ b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_neutral.py
@@ -111,7 +111,6 @@ HistogramPersistencySvc(OutputLevel=5)
 
 appMgr = GP.AppMgr()
 TES = appMgr.evtsvc()
-appMgr.run(1)
 
 # MonkeyPatch for the fact that RegistryEntry.__bool__
 # changed in newer cppyy. Proper fix should go into Gaudi
@@ -120,12 +119,14 @@ cppyy.gbl.DataSvcHelpers.RegistryEntry.__bool__ = lambda x: True
 
 nevents = args.n if args.n else 1
 
-ii = 0
-while True:
-    #for ii in range(nevents):
+nevents = 1
+
+for ii in range(nevents):
     print('Checking next event.')
     appMgr.run(1)
     if not TES['/Event']:
+        if ii == 0:
+            error("No events found. Something has gone very wrong!!")
         break
     if ii == 0:
         TES.dump()
@@ -184,7 +185,3 @@ while True:
 
     if args.topo:
         check_hlt2_topo_candidates(TES)
-
-    ii += 1
-
-print("Total number of events is ", ii)
diff --git a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_persistreco.py b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_persistreco.py
index cefb88e18ed2495d77a21f77e446355ebe1af7b6..ddf9daf1d57f1d5a1f1e498bbbbbc938b9573940 100644
--- a/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_persistreco.py
+++ b/Hlt/Hlt2Conf/tests/options/sprucing/spruce_check_persistreco.py
@@ -16,13 +16,12 @@ import GaudiPython as GP
 from GaudiConf import IOExtension
 from Configurables import (
     ApplicationMgr,
-    CondDB,
     LHCbApp,
     IODataManager,
     HistogramPersistencySvc,
 )
+from DDDB.CheckDD4Hep import UseDD4Hep
 
-from PyConf.packing import default_persistable_locations
 from GaudiConf.reading import do_unpacking
 from PyConf.application import configured_ann_svc
 
@@ -51,7 +50,10 @@ LHCbApp(
     DDDBtag="dddb-20171126",
     CondDBtag="sim-20171127-vc-md100",
 )
-CondDB(Upgrade=True)
+
+if not UseDD4Hep:
+    from Configurables import CondDB
+    CondDB(Upgrade=True)
 
 dec_to_check = "Spruce_Test_line_persistreco"
 stream = 'default'
@@ -69,7 +71,6 @@ HistogramPersistencySvc(OutputLevel=5)
 
 appMgr = GP.AppMgr()
 TES = appMgr.evtsvc()
-appMgr.run(1)
 
 # MonkeyPatch for the fact that RegistryEntry.__bool__
 # changed in newer cppyy. Proper fix should go into Gaudi
@@ -78,9 +79,11 @@ cppyy.gbl.DataSvcHelpers.RegistryEntry.__bool__ = lambda x: True
 
 nevents = 1
 for ii in range(nevents):
-    print('Checking next event.')
     appMgr.run(1)
+    print('Checking next event.')
     if not TES['/Event']:
+        if ii == 0:
+            error("No events found. Something has gone very wrong!!")
         break
     if ii == 0:
         TES.dump()
@@ -97,8 +100,14 @@ for ii in range(nevents):
             check_particles(TES, prefix.removesuffix("Decision"))
 
     # Check persistency of packed containers
-    locations = default_persistable_locations(stream="/Event/Spruce/HLT2")
-    check_persistreco(TES, locations.values(), N=2, unexpected_locs=[])
+    locations = [
+        "Rec/ProtoP/Long", "Rec/ProtoP/Neutrals", "Rec/Calo/Electrons"
+    ]
+    #default_persistable_locations(stream="/Event/Spruce/HLT2")
+    check_persistreco(
+        TES, ["/Event/Spruce/HLT2/" + loc for loc in locations],
+        N=2,
+        unexpected_locs=[])
 
     # Specific check for persistreco
     persistedCharged = TES['/Event/Spruce/HLT2/Rec/ProtoP/Long'].size()
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_excl_spruce_2022_data_b2cc_check.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_excl_spruce_2022_data_b2cc_check.qmt
deleted file mode 100644
index 19824a4f97b7ef8a7974332891b34ff1ce8956a9..0000000000000000000000000000000000000000
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_excl_spruce_2022_data_b2cc_check.qmt
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE extension  PUBLIC '-//QM/2.3/Extension//EN'  'http://www.codesourcery.com/qm/dtds/2.3/-//qm/2.3/extension//en.dtd'>
-<!--
-    (c) Copyright 2023 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.
--->
-<!--
-Check a set of banks, decreports, particles and relations of the output of excl sprucing on 2022 data for b2cc streaming.
--->
-
-<extension class="GaudiTest.GaudiExeTest" kind="test">
-<argument name="prerequisites"><set>
-  <tuple><text>sprucing.test_excl_spruce_2022_data</text><enumeral>PASS</enumeral></tuple>
-</set></argument>
-
-<argument name="program"><text>python</text></argument>
-<argument name="timeout"><integer>300</integer></argument>
-<argument name="args"><set>
-  <text>$HLT2CONFROOT/tests/options/sprucing/spruce_check_2022_data.py</text>
-  <text>-input</text>
-  <text>spruce_all_lines_production.b2cc.dst</text>
-  <text>-manifest</text>
-  <text>spruce_all_lines_production.tck.json</text>
-  <text>-job_type</text>
-  <text>excl</text>
-  <text>-stream</text>
-  <text>b2cc</text>
-</set></argument>
-<argument name="use_temp_dir"><enumeral>true</enumeral></argument>
-<argument name="validator"><text>
-
-from Moore.qmtest.exclusions import remove_known_warnings
-countErrorLines({"FATAL": 0, "WARNING": 0, "ERROR": 0},
-                stdout=remove_known_warnings(stdout))
-
-</text></argument>
-</extension>
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_alllines_realtime_gaudirun.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_alllines_realtime_gaudirun.qmt
deleted file mode 100644
index 970fea0dcd09491faf9ce5c02a8e00b2e45dccb9..0000000000000000000000000000000000000000
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_alllines_realtime_gaudirun.qmt
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE extension  PUBLIC '-//QM/2.3/Extension//EN'  'http://www.codesourcery.com/qm/dtds/2.3/-//qm/2.3/extension//en.dtd'>
-<!--
-    (c) Copyright 2000-2018 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.
--->
-<!--
-Test sprucing on all lines using gaudirun. This tests the script used for Throughput tests.
--->
-<extension class="GaudiTest.GaudiExeTest" kind="test">
-<argument name="program"><text>gaudirun.py</text></argument>
-<argument name="timeout"><integer>3000</integer></argument>
-<argument name="args"><set>
-<text>$HLT2CONFROOT/tests/options/bandwidth/spruce_bandwidth_input.py</text>
-  <text>$HLT2CONFROOT/options/sprucing/spruce_all_lines.py</text>
-</set></argument>
-<argument name="use_temp_dir"><enumeral>true</enumeral></argument>
-<argument name="validator"><text>
-
-from Moore.qmtest.exclusions import remove_known_warnings
-countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
-                stdout=remove_known_warnings(stdout))
-
-
-</text></argument>
-</extension>
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime.qmt
index 7c6f07d7b434b080d3398d0d5510e731b2d30fc3..22695c92c68b9abd8b492acce6e7834bd47ce541 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime.qmt
@@ -31,7 +31,5 @@ from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
                 stdout=remove_known_warnings(stdout))
 
-
 </text></argument>
 </extension>
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_check.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_check.qmt
index 7de79e4dc3ac8987bd70a75a2413ecae309ebdb6..c388c713c7c3a4b4ecb39e7913e92af288a02002 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_check.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_check.qmt
@@ -33,7 +33,7 @@ Runs over spruce_example_realtimereco.dst from spruce_example_realtime.py. Tests
   <text>-s</text>
   <text>test</text>
   <text>-rb</text>
-  <text>9</text><text>21</text>
+  <text>9</text><text>77</text>
   <text>-notrb</text>
   <text>13</text><text>73</text>
   <text>-topo</text>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_dstinput_gaudirun.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_dstinput_gaudirun.qmt
index fa013acb68cbe48acd3670535b27f99877156c9b..00b732f6c7a561ac14b6436f05836a4a60acffca 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_dstinput_gaudirun.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_dstinput_gaudirun.qmt
@@ -30,8 +30,5 @@ from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
                 stdout=remove_known_warnings(stdout))
 
-
 </text></argument>
 </extension>
-
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_extraoutputs.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_extraoutputs.qmt
index fc14b2f38501b02e88d968aa9e1325dc8021c9f3..28c04d69086442fd2eb4b3c7ea4fd9f9257d1c63 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_extraoutputs.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_extraoutputs.qmt
@@ -31,7 +31,5 @@ from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
                 stdout=remove_known_warnings(stdout))
 
-
 </text></argument>
 </extension>
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_monitoring.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_monitoring.qmt
index 885989071336777a1b3500f2a296d3eac47bc217..9c91a6fa335c8a6228b3878b17559125d90a1408 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_monitoring.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_example_realtime_monitoring.qmt
@@ -42,7 +42,7 @@ else: raise Exception(f"File: {histo_file} does not exist!")
 inFile=TFile.Open(histo_file)
 
 histo_b_mass_name='Spruce_Test_line/m'
-histo_d_mass_name='Spruce_Test_line_Ds_Monitor/m'
+histo_d_mass_name='Spruce_Test_line_kst_Monitor/m'
 
 histo_b_mass=inFile.Get(histo_b_mass_name)
 histo_d_mass=inFile.Get(histo_d_mass_name)
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_hlt2filter.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_hlt2filter.qmt
index c7d3a8bbe601b38b5962f921e6f3d7fbaf865a65..df4fa1b38dd3d15fe75ad35039a5041b5f0d1f10 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_hlt2filter.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_hlt2filter.qmt
@@ -52,4 +52,3 @@ if not ref_matches_Topo3[0][1]==matches_Topo3[0][1]:
 
 </text></argument>
 </extension>
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_passthrough.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_passthrough.qmt
index 42b2ba48a135f52bb61e0481380f375952a9b62b..1d34a31501f5020da7b7fefb21ebf008cb854fcc 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_passthrough.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_passthrough.qmt
@@ -18,7 +18,7 @@ The pass through line runs no selection and persists whatever in Hlt2 stage
 -->
 <extension class="GaudiTest.GaudiExeTest" kind="test">
 <argument name="prerequisites"><set>
-  <tuple><text>streaming.test_hlt2_streaming</text><enumeral>PASS</enumeral></tuple>
+  <tuple><text>test_hlt2_2or3bodytopo_realtime</text><enumeral>PASS</enumeral></tuple>
 </set></argument>
 <argument name="program"><text>lbexec</text></argument>
 <argument name="timeout"><integer>3000</integer></argument>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_passthrough_gaudirun.qmt b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_passthrough_gaudirun.qmt
index e60a777751142d906452752e891483b179c93c00..29581f228f4275da8deba334aeed8505d9467987 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_passthrough_gaudirun.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/sprucing.qms/test_spruce_passthrough_gaudirun.qmt
@@ -35,5 +35,3 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
 
 </text></argument>
 </extension>
-
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming.qmt b/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming.qmt
index 60c09cc43666eac71e3f40133d53cf63446dd706..03491095fdc12cbcab0a00698ebbcbf738cb17c9 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming.qmt
@@ -33,7 +33,4 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
                 stdout=remove_known_warnings(stdout))
 
 </text></argument>
-<argument name="unsupported_platforms"><set>
-  <text>clang.*-dbg</text>
-</set></argument>
 </extension>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming_check_A.qmt b/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming_check_A.qmt
index 604d2b5d23c4e2807c3f7095c1b2c7710fc259d5..383b6fb3709df2308e618375445147972a0515b3 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming_check_A.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming_check_A.qmt
@@ -31,9 +31,14 @@ Test HLT2 streaming. Runs over hlt2_test_persistreco_fromfile.test_stream_A.mdf
 from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "WARNING": 0, "ERROR": 0},
                 stdout=remove_known_warnings(stdout))
-
 </text></argument>
+
+<!--
+2024/10/18: Disabled due to a problem with missing input files
+-->
 <argument name="unsupported_platforms"><set>
-  <text>clang.*-dbg</text>
+  <text>.*</text>
 </set></argument>
+
+
 </extension>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming_check_B.qmt b/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming_check_B.qmt
index 2c872d9b57d2b92704662d9a7d17bdcfe51c1a5d..f4f56c7fcbc4f78389058df8c6d9470fcc6b9ff6 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming_check_B.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/streaming.qms/test_hlt2_streaming_check_B.qmt
@@ -31,9 +31,14 @@ Test HLT2 streaming. Runs over hlt2_test_persistreco_fromfile.test_stream_B.mdf
 from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "WARNING": 0, "ERROR": 0},
                 stdout=remove_known_warnings(stdout))
-
 </text></argument>
+
+<!--
+2024/10/18: Disabled due to a problem with missing input files
+-->
 <argument name="unsupported_platforms"><set>
-  <text>clang.*-dbg</text>
+  <text>.*</text>
 </set></argument>
+
+
 </extension>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime.qmt b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime.qmt
index c961b7af62c51987470b53a701f7ac432db96eca..793153dc37801279ac6d047edf3496e8e96f2a03 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime.qmt
@@ -12,11 +12,11 @@
 <!--
 Check topo 2 or 3 body lines with persistreco using real time reco.
 -->
+
 <extension class="GaudiTest.GaudiExeTest" kind="test">
 <argument name="program"><text>gaudirun.py</text></argument>
 <argument name="timeout"><integer>3600</integer></argument>
 <argument name="args"><set>
-  <text>$MOOREROOT/options/muon_geometry_v2.py</text>
   <text>$HLT2CONFROOT/options/hlt2_2or3bodytopo_realtime.py</text>
 </set></argument>
 <argument name="options"><text>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime_dst.qmt b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime_dst.qmt
index 644e327f0bc9cf763abde4c6ed6729b19a7de8ca..d741a0906762dc3abc053aa6d5e64901b3809df3 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime_dst.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime_dst.qmt
@@ -16,7 +16,6 @@ Check topo 2 or 3 body lines with persistreco using real time reco and DST HLT2
 <argument name="program"><text>gaudirun.py</text></argument>
 <argument name="timeout"><integer>3600</integer></argument>
 <argument name="args"><set>
-  <text>$MOOREROOT/options/muon_geometry_v2.py</text>
   <text>$HLT2CONFROOT/options/hlt2_2or3bodytopo_realtime_dst.py</text>
 </set></argument>
 <argument name="options"><text>
@@ -30,6 +29,5 @@ from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
                 stdout=remove_known_warnings(stdout))
 
-
 </text></argument>
 </extension>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime_with_extras.qmt b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime_with_extras.qmt
index 38a421170b8559ae646928bae0cdd2505bed95cf..f36a23b905362d0c29c0065eeefdbff35e7c94cb 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime_with_extras.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_2or3bodytopo_realtime_with_extras.qmt
@@ -16,7 +16,6 @@ Check topo 2 or 3 body lines with persistreco using real time reco.
 <argument name="program"><text>gaudirun.py</text></argument>
 <argument name="timeout"><integer>3600</integer></argument>
 <argument name="args"><set>
-  <text>$MOOREROOT/options/muon_geometry_v2.py</text>
   <text>$HLT2CONFROOT/options/hlt2_2or3bodytopo_realtime_with_extras.py</text>
 </set></argument>
 <argument name="options"><text>
@@ -30,6 +29,5 @@ from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
                 stdout=remove_known_warnings(stdout))
 
-
 </text></argument>
 </extension>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthrough_persistreco.qmt b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthrough_persistreco.qmt
index 2aa14c48cfc431d099df52bec5ff08392e1a9bf3..6382717c9ad006560f34755f244a9edee6465202 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthrough_persistreco.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthrough_persistreco.qmt
@@ -17,7 +17,6 @@ Test pass through HLT2 line that persists reconstruction
 <argument name="program"><text>gaudirun.py</text></argument>
 <argument name="timeout"><integer>3000</integer></argument>
 <argument name="args"><set>
-  <text>$MOOREROOT/options/muon_geometry_v2.py</text>
   <text>$HLT2CONFROOT/options/hlt2_passthrough_persistreco.py</text>
 </set></argument>
 <argument name="use_temp_dir"><enumeral>true</enumeral></argument>
@@ -27,7 +26,5 @@ from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
                 stdout=remove_known_warnings(stdout))
 
-
 </text></argument>
 </extension>
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthrough_persistreco_output.qmt b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthrough_persistreco_output.qmt
index 137e813986c48a4d42b744b7a9822e7b79711a9d..cabd7a4ff4a6309faf708ffaa0cb7363bbcfe5cc 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthrough_persistreco_output.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthrough_persistreco_output.qmt
@@ -32,7 +32,5 @@ from Moore.qmtest.exclusions import remove_known_warnings
 countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
                 stdout=remove_known_warnings(stdout))
 
-
 </text></argument>
 </extension>
-
diff --git a/Hlt/Hlt2Conf/tests/qmtest/test_persistreco_output_realtime.qmt b/Hlt/Hlt2Conf/tests/qmtest/test_persistreco_output_realtime.qmt
index 6174be546f9dd9f7789ad697b2784a06fa001f1d..ea3ffb42a0dc6e9c376719f1ea4b87ff84a83a86 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/test_persistreco_output_realtime.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/test_persistreco_output_realtime.qmt
@@ -31,4 +31,13 @@ countErrorLines({"FATAL": 0, "WARNING": 0, "ERROR": 0},
                 stdout=remove_known_warnings(stdout))
 
 </text></argument>
+
+<!--
+2024/10/18: Disabled due to a problem with missing input files
+-->
+<argument name="unsupported_platforms"><set>
+  <text>.*</text>
+</set></argument>
+
+
 </extension>
diff --git a/Hlt/Hlt2Conf/tests/qmtest/test_persistreco_realtime.qmt b/Hlt/Hlt2Conf/tests/qmtest/test_persistreco_realtime.qmt
index 0288d15261e29058a7db9204e246d864fb84ce04..5d61aa8711007aea0745ac737fe05e2282267434 100644
--- a/Hlt/Hlt2Conf/tests/qmtest/test_persistreco_realtime.qmt
+++ b/Hlt/Hlt2Conf/tests/qmtest/test_persistreco_realtime.qmt
@@ -33,4 +33,12 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
 
 
 </text></argument>
+
+<!--
+2024/10/18: Disabled due to a problem with missing input files
+-->
+<argument name="unsupported_platforms"><set>
+  <text>.*</text>
+</set></argument>
+
 </extension>
diff --git a/Hlt/Moore/python/Moore/tests/lhcbintegrationtests_options_tupling_track_refitting.py b/Hlt/Moore/python/Moore/tests/lhcbintegrationtests_options_tupling_track_refitting.py
index e63e14cd5481985ad927573a3d71a56108afb097..e0c2afe5a8163b6f21d7230aaaa7d5ca3b145141 100644
--- a/Hlt/Moore/python/Moore/tests/lhcbintegrationtests_options_tupling_track_refitting.py
+++ b/Hlt/Moore/python/Moore/tests/lhcbintegrationtests_options_tupling_track_refitting.py
@@ -8,11 +8,7 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-"""Test persistreco when using real time reco. Produces hlt2_2or3bodytopo_realtime.mdf
-
-Run like any other options file:
-
-    ./Moore/run gaudirun.py hlt2_2or3bodytopo_realtime.py
+"""Test persistreco when using real time reco.
 """
 from Moore import Options, run_moore
 from RecoConf.global_tools import stateProvider_with_simplified_geom
diff --git a/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring.qmt b/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring.qmt
index 5982650fa2687308a22c4284090e2e524d8557e1..cc52ed3c008e72f23e4bf4cbeed4bd44b4a4bc46 100644
--- a/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring.qmt
+++ b/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring.qmt
@@ -34,4 +34,12 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
 <argument name="unsupported_platforms"><set>
   <text>clang.*-dbg</text>
 </set></argument>
+
+<!--
+2024/11/27: Disabled due to a problem with the monitoring code, see lhcb/Moore#880
+-->
+<argument name="unsupported_platforms"><set>
+  <text>.*</text>
+</set></argument>
+
 </extension>
diff --git a/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring_baseline.qmt b/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring_baseline.qmt
index 96eafb387bebbfd10fb7953e3485434d52b6d91f..37a1edf4f43b4326aa502eb82bdaeba4f28a861d 100644
--- a/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring_baseline.qmt
+++ b/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring_baseline.qmt
@@ -34,4 +34,12 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
 <argument name="unsupported_platforms"><set>
   <text>clang.*-dbg</text>
 </set></argument>
+
+<!--
+2024/11/27: Disabled due to a problem with the monitoring code, see lhcb/Moore#880
+-->
+<argument name="unsupported_platforms"><set>
+  <text>.*</text>
+</set></argument>
+
 </extension>
diff --git a/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring_retina.qmt b/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring_retina.qmt
index ffcc1d57ee47a544a23a2cba8409d1719ba32ea7..2ddd77495a4c75b4d99ec987ec6f53091cc647ac 100644
--- a/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring_retina.qmt
+++ b/Hlt/RecoConf/tests/qmtest/VP_cluster_monitoring_retina.qmt
@@ -34,4 +34,12 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
 <argument name="unsupported_platforms"><set>
   <text>clang.*-dbg</text>
 </set></argument>
+
+<!--
+2024/11/27: Disabled due to a problem with the monitoring code, see lhcb/Moore#880
+-->
+<argument name="unsupported_platforms"><set>
+  <text>.*</text>
+</set></argument>
+
 </extension>
diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_baseline_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_baseline_plots.qmt
index dceab0114df6b9acc0ce58210332512aca3a0cfd..cc4d20916f6d34f4a038bf22dbfb728e75a4400c 100644
--- a/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_baseline_plots.qmt
+++ b/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_baseline_plots.qmt
@@ -38,4 +38,12 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
 <argument name="unsupported_platforms"><set>
   <text>clang.*-dbg</text>
 </set></argument>
+
+<!--
+2024/11/27: Disabled due to a problem with the monitoring code, see lhcb/Moore#880
+-->
+<argument name="unsupported_platforms"><set>
+  <text>.*</text>
+</set></argument>
+
 </extension>
diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_comparison_baseline_retina_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_comparison_baseline_retina_plots.qmt
index 1fb464d4c4c19af0d6dee5f406cf1496ee793594..b64bbb67ad116e02e327915abbc16a6a27b2d2e3 100644
--- a/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_comparison_baseline_retina_plots.qmt
+++ b/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_comparison_baseline_retina_plots.qmt
@@ -43,4 +43,12 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
 <argument name="unsupported_platforms"><set>
   <text>clang.*-dbg</text>
 </set></argument>
+
+<!--
+2024/11/27: Disabled due to a problem with the monitoring code, see lhcb/Moore#880
+-->
+<argument name="unsupported_platforms"><set>
+  <text>.*</text>
+</set></argument>
+
 </extension>
diff --git a/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_retina_plots.qmt b/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_retina_plots.qmt
index b2d7ae514ce2a53d3ce9873179d85b4158b347c7..5a3400e02f98cd6325c933e2086006dc9f319f7a 100644
--- a/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_retina_plots.qmt
+++ b/Hlt/RecoConf/tests/qmtest/performance.qms/VP_cluster_monitoring_retina_plots.qmt
@@ -38,4 +38,12 @@ countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
 <argument name="unsupported_platforms"><set>
   <text>clang.*-dbg</text>
 </set></argument>
+
+<!--
+2024/11/27: Disabled due to a problem with the monitoring code, see lhcb/Moore#880
+-->
+<argument name="unsupported_platforms"><set>
+  <text>.*</text>
+</set></argument>
+
 </extension>