From 094d031be0a393a756be912b6dd397b5f1c9595a Mon Sep 17 00:00:00 2001 From: ahmedk <karim.ahmed@xfel.eu> Date: Tue, 30 Jul 2024 05:45:53 +0200 Subject: [PATCH] refactor: update the input parameter names --- .../Characterize_Darks_Gotthard2_NBC.ipynb | 18 +++++++--- .../Gotthard2/Correction_Gotthard2_NBC.ipynb | 34 +++++++++---------- src/cal_tools/gotthard2/gotthard2lib.py | 7 ++-- tests/test_reference_runs/callab_tests.py | 10 +++--- 4 files changed, 39 insertions(+), 30 deletions(-) diff --git a/notebooks/Gotthard2/Characterize_Darks_Gotthard2_NBC.ipynb b/notebooks/Gotthard2/Characterize_Darks_Gotthard2_NBC.ipynb index 5c49f27a3..6b6466f3d 100644 --- a/notebooks/Gotthard2/Characterize_Darks_Gotthard2_NBC.ipynb +++ b/notebooks/Gotthard2/Characterize_Darks_Gotthard2_NBC.ipynb @@ -30,12 +30,12 @@ "run_low = 9 # run number for G2 dark run, required\n", "\n", "# Parameters used to access raw data.\n", + "input_source_template = \"{karabo_id}/DET/RECEIVER{input_source_affixes}:daqOutput\" # data source template used to read INSTRUMENT keys.\n", + "ctrl_source_template = \"{karabo_id_control}/DET/{control_template}\" # template for control source name (filled with karabo_id_control)\n", "karabo_id = \"FXE_XAD_G2XES\" # karabo prefix of Gotthard-II devices\n", "karabo_da = [\"\"] # data aggregators\n", - "receiver_template = \"RECEIVER{}\" # receiver template used to read INSTRUMENT keys.\n", - "receiver_affixes = [\"\"] # The affix to format into the receiver template to be able to load the correct receiver name from the data.\n", + "input_source_affixes = [\"\"] # The affix to format into the input source template to be able to load the correct module's data.\n", "control_template = \"CONTROL\" # control template used to read CONTROL keys.\n", - "ctrl_source_template = '{}/DET/{}' # template for control source name (filled with karabo_id_control)\n", "karabo_id_control = \"\" # Control karabo ID. Set to empty string to use the karabo-id\n", "\n", "# Parameters for the calibration database.\n", @@ -110,7 +110,10 @@ "if not karabo_id_control:\n", " karabo_id_control = karabo_id\n", "\n", - "ctrl_src = ctrl_source_template.format(karabo_id_control, control_template)\n", + "ctrl_src = ctrl_source_template.format(\n", + " karabo_id_control=karabo_id_control,\n", + " control_template=control_template,\n", + ")\n", "run_nums = gotthard2lib.sort_dark_runs_by_gain(\n", " raw_folder=in_folder,\n", " runs=run_nums,\n", @@ -236,7 +239,12 @@ "print(f\"Processing {karabo_da}\")\n", "\n", "da_to_source = gotthard2lib.map_da_to_source(\n", - " karabo_da, receiver_affixes, receiver_template, run_dc)" + " run_dc,\n", + " karabo_da,\n", + " input_source_template,\n", + " karabo_id,\n", + " input_source_affixes,\n", + ")" ] }, { diff --git a/notebooks/Gotthard2/Correction_Gotthard2_NBC.ipynb b/notebooks/Gotthard2/Correction_Gotthard2_NBC.ipynb index cc5859219..a424d7f31 100644 --- a/notebooks/Gotthard2/Correction_Gotthard2_NBC.ipynb +++ b/notebooks/Gotthard2/Correction_Gotthard2_NBC.ipynb @@ -58,15 +58,14 @@ "sequences_per_node = 1 # number of sequence files per node if notebook executed through xfel-calibrate, set to 0 to not run SLURM parallel\n", "\n", "# Parameters used to access raw data.\n", + "output_source_template = \"{karabo_id}/CORR/RECEIVER:daqOutput\" # Correction data source template. filled with karabo_id and correction receiver\n", + "ctrl_source_template = \"{karabo_id_control}/DET/{control_template}\" # template for control source name (filled with karabo_id_control)\n", "karabo_id = \"DETLAB_25UM_GH2\" # karabo prefix of Gotthard-II devices\n", "karabo_da = [\"\"] # data aggregators\n", - "receiver_template = \"RECEIVER{}\" # receiver template used to read INSTRUMENT keys.\n", - "receiver_affixes = [\"\"] # The affix to format into the receiver template to be able to load the correct receiver name from the data.\n", + "input_source_affixes = [\"\"] # The affix to format into the input source template to be able to load the correct module's data.\n", + "input_source_template = \"{karabo_id}/DET/RECEIVER{input_source_affixes}:daqOutput\" # data source template used to read INSTRUMENT keys.\n", "control_template = \"CONTROL\" # control template used to read CONTROL keys.\n", - "ctrl_source_template = \"{}/DET/{}\" # template for control source name (filled with karabo_id_control)\n", "karabo_id_control = \"\" # Control karabo ID. Set to empty string to use the karabo-id\n", - "corr_source_template = \"{}/CORR/{}:daqOutput\" # Correction data source template. filled with karabo_id and correction receiver\n", - "corr_receiver = \"\" # Receiver name for corrected data. Leave empty to use the default receiver: - For 50um GH2 data, it will use the same receiver name - For 25um GH2 data, it will use the first (e.g. .._Master) receiver. Specifying a receiver name is recommended.\n", "\n", "# Parameters for calibration database.\n", "cal_db_interface = \"tcp://max-exfl-cal001:8016#8025\" # the database interface to use.\n", @@ -147,7 +146,10 @@ "if not karabo_id_control:\n", " karabo_id_control = karabo_id\n", "\n", - "ctrl_src = ctrl_source_template.format(karabo_id_control, control_template)\n", + "ctrl_src = ctrl_source_template.format(\n", + " karabo_id_control=karabo_id_control,\n", + " control_template=control_template,\n", + ")\n", "\n", "# Run's creation time:\n", "creation_time = calcat_creation_time(in_folder, run, creation_time)\n", @@ -239,20 +241,18 @@ " db_modules = [da_to_pdu[da] for da in karabo_da]\n", "\n", "print(f\"Process modules: {db_modules} for run {run}\")\n", - "if len(receiver_affixes) != len(karabo_da):\n", + "if len(input_source_affixes) != len(karabo_da):\n", " raise ValueError(\n", " \"receiver_affixes & karabo_da are not the same length\")\n", "\n", "da_to_source = gotthard2lib.map_da_to_source(\n", - " karabo_da, receiver_affixes, receiver_template, run_dc)\n", - "data_sources = list(da_to_source.values())\n", - "if not corr_receiver:\n", - " # Defaulting to the first receiver from data_sources.\n", - " # Format expected: '{karabo_id}/DET/{receiver_name}:{output_channel}'.\n", - " # This is acceptable for 50um data but may not be ideal for 25um data. \n", - " # Using corr_receiver is recommended when possible.\n", - " corr_receiver = data_sources[0].split(\"/\")[-1].split(\":\")[0]\n", - " print(f\"Using {corr_receiver} as a receiver name for the corrected data.\")" + " run_dc,\n", + " karabo_da,\n", + " input_source_template,\n", + " karabo_id,\n", + " input_source_affixes,\n", + ")\n", + "data_sources = list(da_to_source.values())" ] }, { @@ -429,7 +429,7 @@ "metadata": {}, "outputs": [], "source": [ - "corr_data_source = corr_source_template.format(karabo_id, corr_receiver)\n", + "corr_data_source = output_source_template.format(karabo_id=karabo_id)\n", "\n", "for raw_file in seq_files:\n", "\n", diff --git a/src/cal_tools/gotthard2/gotthard2lib.py b/src/cal_tools/gotthard2/gotthard2lib.py index bf62d9083..51f1e6118 100644 --- a/src/cal_tools/gotthard2/gotthard2lib.py +++ b/src/cal_tools/gotthard2/gotthard2lib.py @@ -5,10 +5,11 @@ from typing import List, Union import extra_data -def map_da_to_source(da, affixes, template, dc): +def map_da_to_source(dc, das, source_template, karabo_id, affixes): da_to_source = {} - for da, aff in zip(da, affixes): - sources = dc.select(f"*{template.format(aff)}:daqOutput").all_sources + for da, aff in zip(das, affixes): + sources = dc.select( + f"*{source_template.format(karabo_id=karabo_id, input_source_affixes=aff)}").all_sources # noqa if len(sources) != 1: raise ValueError(f"No/multiple sources found for {aff!r}") da_to_source[da] = list(sources)[0] diff --git a/tests/test_reference_runs/callab_tests.py b/tests/test_reference_runs/callab_tests.py index 8e8e00ec9..08d6f26e2 100644 --- a/tests/test_reference_runs/callab_tests.py +++ b/tests/test_reference_runs/callab_tests.py @@ -869,8 +869,8 @@ automated_test_config = { "in-folder": "/gpfs/exfel/exp/CALLAB/202130/p900203/raw", "karabo-da": ["GH200/1", "GH200/2",], "control-template": "GOTTHARD2_CTRL", - "receiver-affixes": ["_MASTER", "_SLAVE"], - "receiver-template": "GOTTHARD2{}", + "input-source-affixes": ["MASTER", "SLAVE"], + "input-source-template": "{karabo_id}/DET/GOTTHARD2_{input_source_affixes}:daqOutput", "run-high": "28", # 82 "run-med": "29", # 83 "run-low": "30", # 84 @@ -887,9 +887,9 @@ automated_test_config = { "in-folder": "/gpfs/exfel/exp/CALLAB/202130/p900203/raw", "karabo-da": ["GH200/1", "GH200/2",], "control-template": "GOTTHARD2_CTRL", - "receiver-affixes": ["_MASTER", "_SLAVE"], - "receiver-template": "GOTTHARD2{}", - "corr-receiver": "GOTTHARD2_RECEIVER", + "input-source-affixes": ["MASTER", "SLAVE"], + "input-source-template": "{karabo_id}/DET/GOTTHARD2_{input_source_affixes}:daqOutput", + "output-source-template": "{karabo_id}/CORR/GH200:daqOutput", "run": "31", "karabo-id": "SA1_XTD9_HIREX", "no-offset-correction": True, -- GitLab