From 5631dbeddbd6b4f90b4270925a2117c8a75b196f Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Tue, 19 Sep 2023 17:56:18 +0200
Subject: [PATCH] MR suggestions

---
 .../AGIPD/AGIPD_Correct_and_Verify.ipynb      |  6 +++---
 src/cal_tools/agipdlib.py                     | 20 ++++++++++---------
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb b/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
index bca36cae0..392ecdd48 100644
--- a/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
+++ b/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
@@ -66,8 +66,8 @@
     "\n",
     "# Correction Booleans\n",
     "only_offset = False # Apply only Offset correction. if False, Offset is applied by Default. if True, Offset is only applied.\n",
-    "rel_gain_mode = \"CS\"  # Select relative gain correct mode. Choices (PC: Pulse Capacitor or CS: Current Source). Default CS.\n",
-    "rel_gain = False # do relative gain correction based on PC or CS data\n",
+    "rel_gain_mode = \"PC\"  # Select relative gain correct mode. Choices (PC: Pulse Capacitor or CS: Current Source). Default PC.\n",
+    "rel_gain = False # do relative gain correction (PC or CS) based on selected rel_gain_mode.\n",
     "xray_gain = False # do relative gain correction based on xray data\n",
     "blc_noise = False # if set, baseline correction via noise peak location is attempted\n",
     "blc_stripes = False # if set, baseline corrected via stripes\n",
@@ -652,7 +652,7 @@
     "\n",
     "print(\"Preparing constants (\"\n",
     "      f\"FF: {agipd_corr.corr_bools.get('xray_corr', False)}, \"\n",
-    "      f\"{rel_gain_mode}: {any(agipd_corr.gain_bools)}, \"\n",
+    "      f\"{rel_gain_mode}: {any(agipd_corr.pc_bools)}, \"\n",
     "      f\"BLC: {any(agipd_corr.blc_bools)})\")\n",
     "# Display retrieved calibration constants timestamps\n",
     "agipd_cal.display_markdown_retrieved_constants(metadata=agipd_metadata)"
diff --git a/src/cal_tools/agipdlib.py b/src/cal_tools/agipdlib.py
index f01ea7221..ff7f7c8f6 100644
--- a/src/cal_tools/agipdlib.py
+++ b/src/cal_tools/agipdlib.py
@@ -635,12 +635,14 @@ class AgipdCorrections:
 
         self.rel_gain_mode = "CS"
         # Flags allowing for pulse capacitor constant retrieval.
-        self.gain_bools = [self.corr_bools.get("rel_gain"),
-                         self.corr_bools.get("adjust_mg_baseline"),
-                         self.corr_bools.get('blc_noise'),
-                         self.corr_bools.get('blc_hmatch'),
-                         self.corr_bools.get('blc_stripes'),
-                         self.corr_bools.get('melt_snow')]
+        self.pc_bools = [
+            self.corr_bools.get("rel_gain"),
+            self.corr_bools.get("adjust_mg_baseline"),
+            self.corr_bools.get('blc_noise'),
+            self.corr_bools.get('blc_hmatch'),
+            self.corr_bools.get('blc_stripes'),
+            self.corr_bools.get('melt_snow')
+        ]
 
         self.blc_bools = [self.corr_bools.get('blc_noise'),
                           self.corr_bools.get('blc_hmatch'),
@@ -1407,7 +1409,7 @@ class AgipdCorrections:
             self.xray_cor[module_idx][...] = xray_cor.transpose()[...]
 
         # add additional bad pixel information
-        if any(self.gain_bools):
+        if any(self.pc_bools):
             if f"BadPixels{self.rel_gain_mode}" in cons_data:
                 bp_relgain = np.moveaxis(
                     cons_data[f"BadPixels{self.rel_gain_mode}"].astype(np.uint32), 0, 2)  # noqa
@@ -1419,8 +1421,8 @@ class AgipdCorrections:
                 # No Chance to have both SlopesPC and SlopesCS used at the same time?
                 # What to do for SlopesCS
                 # Switch between SlopesCS and SlopesPC based on rel_gain_mode.
-                # Change pc_bools to gain_bools. or rel_gain_bools??
-                pass
+                rel_gain[..., 1] = rel_gain[..., 0] * cons_data["SlopesCS"][..., self.max_cells, 6]  # noqa
+                rel_gain[..., 2] = rel_gain[..., 1] * cons_data["SlopesCS"][..., self.max_cells, 7]  # noqa
             
             elif "SlopesPC" in cons_data:
                 slopesPC = cons_data["SlopesPC"].astype(np.float32, copy=False)
-- 
GitLab