Add option to persist application options to the FSR
New MR since !4532 (closed) confusingly showed 110 changes of which only 3 were made by me and I did not find a straightforward solution to deal with it.
Work on https://gitlab.cern.ch/lhcb-dpa/project/-/issues/271 .
Persist the options used for Sprucing to create a .dst file to its FileSummaryRecord. The goal is to have data files that are self contained i.e. information necessary for further processing should be contained in the file itself (dbtags etc.). Useful for Automatic configuration of Analysis productions for Run3 see DaVinci#145 .
Test to check whether writing the options works correctly is implemented in LHCbIntegrationTests!70 (merged)
This is what the application_options in the FSR look like:
...
{"append_decoding_keys_to_output_manifest": true,
"auditors": [],
"buffer_events": 20000,
"compression": null,
"conddb_tag": "sim-20231017-vc-md100",
"conditions_version": "jonrob/all-pmts-active",
"control_flow_file": null,
"data_flow_file": null,
"data_type": "Upgrade",
"dddb_tag": "dddb-20231017",
"event_store": "HiveWhiteBoard",
"event_timeout": null,
"evt_max": -1,
"first_evt": 0,
"geometry_version": "run3/trunk",
"histo_file": "spruce_test_lines_histos.root",
"input_files": ["hlt2_2or3bodytopo_test.mdf"],
"input_manifest_file": "hlt2_2or3bodytopo_test.tck.json",
"input_process": "Hlt2",
"input_raw_format": 0.5,
"input_type": "RAW",
"memory_pool_size": 10485760,
"monitoring_file": null,
"msg_svc_format": "% F%35W%S %7W%R%T %0W%M",
"msg_svc_time_format": "%Y-%m-%d %H:%M:%S UTC",
"n_event_slots": 1,
"n_threads": 1,
"ntuple_file": null,
"output_file": "spruce_test_lines_production.dst",
"output_level": 3,
"output_manifest_file": "spruce_test_lines_production.tck.json",
"output_type": "ROOT",
"persistreco_version": 1.0,
"phoenix_filename": null,
"preamble_algs": [],
"print_freq": 10000,
"process": "Spruce",
"python_logging_level": 20,
"require_specific_decoding_keys": [],
"scheduler_legacy_mode": true,
"simulation": true,
"tck": null,
"use_iosvc": false,
"write_decoding_keys_to_git": true,
"write_options_to_fsr": true,
"xml_file_catalog": null,
"xml_summary_file": null}