From 2799a7c425dfa9e12ebfe86d1df1d9ef8bb9c496 Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Wed, 27 Sep 2023 11:16:37 +0200
Subject: [PATCH] split ff and pc queries

---
 .../AGIPD/AGIPD_Correct_and_Verify.ipynb      | 43 ++++++++++++-------
 1 file changed, 27 insertions(+), 16 deletions(-)

diff --git a/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb b/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
index 925d9b077..7cf0c39ef 100644
--- a/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
+++ b/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
@@ -557,6 +557,21 @@
     "## Retrieving constants"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def get_constants_and_update_metadata(cal_data, main_metadata, constants):\n",
+    "    try:\n",
+    "        metadata = cal_data.metadata(constants)\n",
+    "        for key, value in metadata.items():\n",
+    "            main_metadata.setdefault(key, {}).update(value)\n",
+    "    except CalCatError as e:  # TODO: replace when API errors are improved.\n",
+    "        warning(f\"CalCatError: {e}\")"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -584,24 +599,20 @@
     "dark_constants = [\"Offset\", \"Noise\", \"BadPixelsDark\"]\n",
     "if not gain_mode:  # Adaptive gain\n",
     "    dark_constants.append(\"ThresholdsDark\")\n",
-    "gain_constants = []\n",
+    "\n",
+    "agipd_metadata = agipd_cal.metadata(dark_constants)\n",
+    "\n",
+    "agipd_cal.gain_mode = None  # gain_mode not used of gain constants\n",
     "if any(agipd_corr.pc_bools):\n",
-    "    gain_constants += [\"SlopesPC\", \"BadPixelsPC\"]\n",
+    "    pc_constants = [\"SlopesPC\", \"BadPixelsPC\"]\n",
+    "    get_constants_and_update_metadata(\n",
+    "        agipd_cal, agipd_metadata, pc_constants)\n",
+    "\n",
     "if agipd_corr.corr_bools.get('xray_corr'):\n",
-    "    gain_constants += agipd_cal.illuminated_calibrations\n",
+    "    ff_constants = agipd_cal.illuminated_calibrations\n",
+    "    get_constants_and_update_metadata(\n",
+    "        agipd_cal, agipd_metadata, ff_constants)\n",
     "\n",
-    "# First retrieve dark constants\n",
-    "agipd_metadata = agipd_cal.metadata(dark_constants)\n",
-    "if gain_constants:\n",
-    "    # Then retrieve gain constants without\n",
-    "    # using the `gain_mode` condition.\n",
-    "    agipd_cal.gain_mode = None\n",
-    "    try:\n",
-    "        illum_metadata = agipd_cal.metadata(gain_constants)\n",
-    "        for key, value in illum_metadata.items():\n",
-    "            agipd_metadata.setdefault(key, {}).update(value)\n",
-    "    except CalCatError as e:  # TODO: replace when API errors are improved.\n",
-    "        warning(f\"CalCatError: {e}\")\n",
     "step_timer.done_step(\"Constants were retrieved in\")\n",
     "\n",
     "print(\"Preparing constants (\"\n",
@@ -634,7 +645,7 @@
     "        karabo_da.drop(da)\n",
     "        modules.drop(mod)\n",
     "\n",
-    "    warn_missing_constants = set(dark_constants + gain_constants)\n",
+    "    warn_missing_constants = set(dark_constants + pc_constants + ff_constants)\n",
     "    warn_missing_constants -= error_missing_constants\n",
     "    warn_missing_constants -= set(calibrations)\n",
     "    if warn_missing_constants:\n",
-- 
GitLab