diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/settings/hlt2_binds.py b/Hlt/Hlt2Conf/python/Hlt2Conf/settings/hlt2_binds.py
index d508de0b5f807813a0f7dc2321b8318d060f62bc..459e8bdd3122ec5aad6793f9951140fa942352a4 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/settings/hlt2_binds.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/settings/hlt2_binds.py
@@ -143,6 +143,35 @@ def config_pp_2025_nominal():
         yield
 
 
+@contextmanager
+def config_pp_2025_with_monitoring():
+    """ContextManagerGenerator for default 2025 proton-proton HLT2 configuration binds with monitoring.
+
+    Depending on the actual data and control flow, using this convenience function
+    may emits some warnings about something not called within a bind. This is harmless
+    if the corresponding component is not configured on purpose - like a default HLT1
+    filter code which is not used when only the reconstruction is run.
+
+    Use this function like this::
+
+        with config_pp_2025_with_monitoring():
+            run_reconstruction()
+    """
+    with (
+        config_pp_2025(),
+        add_hlt2_rich.bind(track_types=["Long"]),
+        convert_tracks_to_v3_from_v1.bind(
+            track_types=["Long", "Upstream", "Downstream", "Ttrack"]
+        ),
+        PrKalmanFilter.bind(FillFitResult=True),
+        PrKalmanFilter_Downstream.bind(FillFitResult=True),
+        PrKalmanFilter_Upstream.bind(FillFitResult=True),
+        PrKalmanFilter_Seed.bind(FillFitResult=True),
+        PrKalmanFilter_Velo.bind(FillFitResult=True),
+    ):
+        yield
+
+
 #############################
 ### 2024 HLT2 pp settings ###
 #############################