diff --git a/GaudiConf/python/GaudiConf/LbExec/options.py b/GaudiConf/python/GaudiConf/LbExec/options.py
index 27ab308b88cf992fe69272f0d1af07e973277433..3b006f81f0a96fc9840122c57030fe08174f1590 100644
--- a/GaudiConf/python/GaudiConf/LbExec/options.py
+++ b/GaudiConf/python/GaudiConf/LbExec/options.py
@@ -147,6 +147,12 @@ class Options(BaseModel):
     ntuple_file: Optional[str] = None
     ntuple_basketsize: Optional[int] = 32000  # ROOT default
     xml_summary_file: Optional[str] = None
+    # write configuration of lines in streams to json at runtime
+    write_streams_attributes_to_json: bool = False
+    # Output json file for configuration of lines in streams
+    output_streams_attributes_file: Optional[str] = "line_attribute_dict.json"
+    # Input json file for configuration of lines in streams
+    input_streams_attributes_file: Optional[str] = "line_attribute_dict.json"
     """Processing"""
     n_threads: int = 1
     # defaults to 1.2 * n_threads
diff --git a/PyConf/python/PyConf/application.py b/PyConf/python/PyConf/application.py
index 8aba4a63cc50a7c05a8d17a71d8cfc5a0dffa0bd..5655ca4423eae6abdea3cd88bca8f2d2e9cfc9ed 100644
--- a/PyConf/python/PyConf/application.py
+++ b/PyConf/python/PyConf/application.py
@@ -357,6 +357,11 @@ class ApplicationOptions(ConfigurableUser):
         'control_flow_file': '',
         # Data flow file name; not generated if empty
         'data_flow_file': '',
+        # write configuration of lines in streams to json at runtime
+        "write_streams_attributes_to_json": False,
+        # Output json file for configuration of lines in streams
+        "output_streams_attributes_file": "line_attribute_dict.json",
+
         # write application options to the FSR (File Summary Record)
         'write_options_to_fsr': False,
         # Output manifest of TES contents
@@ -369,6 +374,7 @@ class ApplicationOptions(ConfigurableUser):
         'require_specific_decoding_keys': [],
         # input manifest of TES contents -- only needed when running passthrough to produce the output manifest, and/or as source of decoding keys...
         'input_manifest_file': '',
+        "input_streams_attributes_file": "",
         # Algorithms to be executed before the main control flow.
         # Could be used for controlling profiling, e.g. CallgrindProfile, PerfProfile.
         'preamble_algs': [],
diff --git a/PyConf/python/PyConf/reading.py b/PyConf/python/PyConf/reading.py
index 0459426af4179a229d764f10636262030809fb45..12da94d8649dfa05e89a8dcb409e009c814e5752 100644
--- a/PyConf/python/PyConf/reading.py
+++ b/PyConf/python/PyConf/reading.py
@@ -230,6 +230,7 @@ def get_pp2mcp_relations(location):
     mc_location = location.replace(
         "Relations/ChargedPP2MCP" if "Charged" in location else
         "Relations/NeutralPP2MCP", "MC/Particles")
+
     mc_parts = get_mc_particles(mc_location)
 
     return _get_unpacked("PP2MCPRelations", location, ExtraInputs=[mc_parts])