diff --git a/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb b/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb
index 80b69f21e2ef3848fb843bc273927fb09a91e8e5..cdb7b42b8c142b13762a542dd515d60393e68036 100644
--- a/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb
+++ b/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb
@@ -143,11 +143,9 @@
     "ctrl_src = ctrl_source_template.format(karabo_id_control)\n",
     "\n",
     "runs_dict = OrderedDict()\n",
+    "run_numbers = [run_high, run_med, run_low]\n",
     "\n",
-    "for gain_idx, (run_name, run_number) in enumerate(zip(\n",
-    "    [\"high\", \"med\", \"low\"],\n",
-    "    [run_high, run_med, run_low]\n",
-    ")):\n",
+    "for gain_idx, (run_name, run_number) in enumerate(zip([\"high\", \"med\", \"low\"], run_numbers)):\n",
     "    runs_dict[run_name] = {\n",
     "        \"number\": run_number,\n",
     "        \"gain\": gain_idx,\n",
@@ -182,7 +180,6 @@
     "    nmods = 8\n",
     "\n",
     "instrument_src = instrument_source_template.format(karabo_id, receiver_template)\n",
-    "run_numbers = [run_high, run_med, run_low]\n",
     "\n",
     "def create_karabo_da_list(modules):\n",
     "    return([\"AGIPD{:02d}\".format(i) for i in modules])\n",
@@ -298,16 +295,26 @@
     "        gm == AgipdGainMode.ADAPTIVE_GAIN for gm in gain_modes\n",
     "    ):\n",
     "        fixed_gain_mode = False\n",
+    "    # Some runs are adaptive by mistake.\n",
     "    elif any(\n",
     "        gm == AgipdGainMode.ADAPTIVE_GAIN for gm in gain_modes\n",
     "    ):\n",
     "        raise ValueError(\n",
-    "            f\"ERROR: Given runs {self.read_conditions['run_number']}\"\n",
+    "            f\"ERROR: Given runs {run_numbers}\"\n",
     "            \" have a mix of ADAPTIVE and FIXED gain modes: \"\n",
-    "            f\"{self.read_conditions['gain_mode']}.\"\n",
+    "            f\"{gain_modes}.\"\n",
     "    )\n",
-    "    else:\n",
+    "    elif list(gain_modes) == [\n",
+    "        AgipdGainMode.FIXED_HIGH_GAIN,\n",
+    "        AgipdGainMode.FIXED_MEDIUM_GAIN,\n",
+    "        AgipdGainMode.FIXED_LOW_GAIN\n",
+    "    ]:\n",
     "        fixed_gain_mode = True\n",
+    "    else:\n",
+    "        raise ValueError(\n",
+    "        \"ERROR: Wrong arrangment of given dark runs. \"\n",
+    "        f\"Given runs' gain_modes are {gain_modes} for runs: {run_numbers}.\"\n",
+    "    )\n",
     "    return fixed_gain_mode"
    ]
   },
@@ -344,7 +351,7 @@
     "            continue\n",
     "        elif cond == \"gain_mode\":\n",
     "            fixed_gain_mode = validate_gain_modes(cond_dict[\"gain_mode\"])\n",
-    "        if not all(x == vlist[0] for x in vlist):\n",
+    "        elif not all(x == vlist[0] for x in vlist):\n",
     "            # TODO: raise ERROR??\n",
     "            print(\n",
     "                f\"WARNING: {cond} is not the same for the runs \"\n",
@@ -369,26 +376,14 @@
     "if operation_mode not in (\"ADAPTIVE_GAIN\", \"FIXED_GAIN\"):\n",
     "    print(f\"WARNING: unknown operation_mode \\\"{operation_mode}\\\" parameter set\")\n",
     "\n",
-    "if (\n",
-    "    gain_mode == [\n",
-    "        AgipdGainMode.FIXED_HIGH_GAIN,\n",
-    "        AgipdGainMode.FIXED_MEDIUM_GAIN,\n",
-    "        AgipdGainMode.FIXED_LOW_GAIN\n",
-    "    ] and\n",
-    "    operation_mode == \"ADAPTIVE_GAIN\"\n",
-    "):\n",
+    "if fixed_gain_mode and operation_mode == \"ADAPTIVE_GAIN\":\n",
     "    print(\n",
-    "        \"WARNING: operation_mode parameter is ADAPTIVE_GAIN, \"\n",
-    "        \"slow data indicates FIXED_GAIN.\")\n",
+    "        \"WARNING: Operation_mode parameter is ADAPTIVE_GAIN, but\"\n",
+    "        \"slow data indicates FIXED_GAIN. Processing fixed gain constants.\")\n",
     "elif not fixed_gain_mode and operation_mode == \"FIXED_GAIN\":\n",
     "    print(\n",
-    "        \"WARNING: operation_mode parameter is FIXED_GAIN, \"\n",
-    "        \"slow data indicates ADAPTIVE_GAIN\")\n",
-    "elif not all(gm == AgipdGainMode.ADAPTIVE_GAIN for gm in gain_mode):\n",
-    "    raise ValueError(\n",
-    "        \"ERROR: Wrong arrangment of given dark runs. \"\n",
-    "        f\"Given runs' gain_modes are {gain_mode} for runs: {runs}.\"\n",
-    "    )"
+    "        \"WARNING: Operation_mode parameter is FIXED_GAIN, \"\n",
+    "        \"slow data indicates ADAPTIVE_GAIN. Processing adaptive gain constants.\")"
    ]
   },
   {