Skip to content
Snippets Groups Projects

[AGIPD][DARK] fix gain mode validation for FIXED_GAIN operation mode

Merged Karim Ahmed requested to merge fix/operation_mode_fixed_gain_selected into master
1 file
+ 0
12
Compare changes
  • Side-by-side
  • Inline
@@ -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",
@@ -292,6+289,6 @@
"metadata": {},
"outputs": [],
"source": [
"def validate_gain_modes(gain_modes: List[AgipdGainMode]):\n",
" # Validate that gain modes are not a mix of adaptive and fixed gain.\n",
" if all(\n",
" 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.\")"
]
},
{
Loading