diff --git a/demo/i10/i10_energy_demo.ipynb b/demo/i10/i10_energy_demo.ipynb new file mode 100644 index 00000000..c923f679 --- /dev/null +++ b/demo/i10/i10_energy_demo.ipynb @@ -0,0 +1,401 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "63e49d72-c969-4f3b-878d-90862d3ff969", + "metadata": {}, + "source": [ + "This is energy demo. " + ] + }, + { + "cell_type": "markdown", + "id": "ea412d67-1c5c-4ccc-a9c9-2dc5e26fecc4", + "metadata": {}, + "source": [ + "Load all the devices in i10 dodal." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9dfd1049-ccc8-4c5e-a08c-dc55f7b65644", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "namespace(pin_hole=,\n", + " idd_gap=,\n", + " idd_phase=,\n", + " idu_jaw_phase=,\n", + " switching_mirror=,\n", + " slits=,\n", + " slits_current=,\n", + " d5a_det=,\n", + " optics_slits=,\n", + " optics_slits_current=,\n", + " diagnostics=,\n", + " pgm=,\n", + " pa_stage=,\n", + " rasor_temperature_controller=,\n", + " idu_gap=,\n", + " optics_diagnostics=,\n", + " first_mirror=,\n", + " sample_stage=,\n", + " idd_jaw_phase=,\n", + " diffractometer=,\n", + " det_slits=,\n", + " idu_phase=,\n", + " rasor_femto=,\n", + " rasor_det_scalers=,\n", + " focusing_mirror=,\n", + " rasor_sr570=,\n", + " synchrotron=,\n", + " rasor_femto_drain_scaler_det=,\n", + " idd=,\n", + " rasor_femto_fluo_scaler_det=,\n", + " rasor_sr570_drain_scaler_det=,\n", + " rasor_femto_pa_scaler_det=,\n", + " idu=,\n", + " idd_controller=,\n", + " rasor_sr570_pa_scaler_det=,\n", + " rasor_sr570_fluo_scaler_det=,\n", + " idu_controller=,\n", + " idd_energy=,\n", + " idd_polarisation=,\n", + " idu_polarisation=,\n", + " idd_laa=,\n", + " idu_laa=,\n", + " energy_dd=,\n", + " idu_energy=,\n", + " energy_ud=)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from dodal.beamlines.i10 import *\n", + "from bluesky.run_engine import RunEngine\n", + "from bluesky.callbacks.best_effort import BestEffortCallback\n", + "bec = BestEffortCallback()\n", + "import bluesky.plans as bp\n", + "from bluesky import plan_stubs as bps\n", + "RE= RunEngine()\n", + "RE.subscribe(bec)\n", + "import matplotlib.pyplot as pl\n", + "import stomp\n", + "######## These are all the device available on p99.########################\n", + "from dodal.utils import make_all_devices\n", + "from types import SimpleNamespace\n", + "from dodal.devices.insertion_device import Pol\n", + "t_devices, error, connection_spec = devices.build_and_connect()\n", + "i10 = SimpleNamespace(**t_devices)\n", + "i10" + ] + }, + { + "cell_type": "markdown", + "id": "4419b27e-f2cb-42b9-b962-68bc1bc577af", + "metadata": {}, + "source": [ + "To connect all the devices, make use of make_all_devices" + ] + }, + { + "cell_type": "markdown", + "id": "58d0ce7f", + "metadata": {}, + "source": [ + "List connected devices" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "5e220efe-e4ea-45ce-b1e1-cc6ad1c18ac5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "error" + ] + }, + { + "cell_type": "markdown", + "id": "6e5c9ca2-1bc3-4cd7-a74d-450b1d9906a6", + "metadata": {}, + "source": [ + "Helper to print out positions." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e1e61258-0638-48c5-b7b2-e4009be15ff7", + "metadata": {}, + "outputs": [], + "source": [ + "async def get_energy_position():\n", + " print(await i10.energy_ud.read())\n", + " print(await i10.idu_gap.read())\n", + " print(await i10.idu_phase.read())\n", + " print(await i10.idu_polarisation.read())" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "6cf6f144-8cb1-406d-a13e-03e14b986682", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'idu_controller-energy': {'value': 0.0, 'timestamp': 1782731387.5761328, 'alarm_severity': 0}, 'pgm-energy': {'value': 800.0035, 'timestamp': 1782731291.34775, 'alarm_severity': 0}}\n", + "{'idu_gap': {'value': 18.0837, 'timestamp': 1782731291.740809, 'alarm_severity': 0}}\n", + "{'idu_phase-btm_outer': {'value': 0.0, 'timestamp': 1782731291.741387, 'alarm_severity': 0}, 'idu_phase-top_inner': {'value': 0.0, 'timestamp': 1782731291.741272, 'alarm_severity': 0}, 'idu_phase-btm_inner': {'value': 15.523000000000001, 'timestamp': 1782731291.741332, 'alarm_severity': 0}, 'idu_phase-top_outer': {'value': -15.523000000000001, 'timestamp': 1782731291.740921, 'alarm_severity': 0}}\n", + "{'idu_controller-polarisation': {'value': , 'timestamp': 1782731387.5761328, 'alarm_severity': 0}}\n" + ] + } + ], + "source": [ + "await get_energy_position()" + ] + }, + { + "cell_type": "markdown", + "id": "7932e50a-007b-424b-8901-de1852921737", + "metadata": {}, + "source": [ + "Change polarisation. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "b52056f5-faab-480a-9a45-5a36f99dc9d2", + "metadata": {}, + "outputs": [], + "source": [ + "await i10.energy_ud.set(800.0)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "00dc93fc-193a-47b9-af81-95d8009c6433", + "metadata": {}, + "outputs": [], + "source": [ + "await i10.idu_polarisation.set(pol=Pol.PC)" + ] + }, + { + "cell_type": "markdown", + "id": "81036314-3c11-41d4-b960-83e09ef0ceff", + "metadata": {}, + "source": [ + "Turn off autogain\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "d3efe964-f676-4578-ae31-15f35c23d4f1", + "metadata": {}, + "outputs": [], + "source": [ + "await i10.rasor_femto_fluo_scaler_det.auto_mode.set(False)" + ] + }, + { + "cell_type": "markdown", + "id": "78ede873-0c24-43a0-aa28-4fd9256b3411", + "metadata": {}, + "source": [ + "Perform energy scan\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "0d29a188-7d8d-4108-a92b-35f819706069", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Transient Scan ID: 1 Time: 2026-06-29 12:14:16\n", + "Persistent Unique Scan ID: 'de6b1185-6f99-4f96-8371-a69910e327e5'\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Unable to determine polarisation. Defaulting to NONE.\n", + "Unable to determine polarisation. Defaulting to NONE.\n", + "Unable to determine polarisation. Defaulting to NONE.\n", + "Unable to determine polarisation. Defaulting to NONE.\n", + "Unable to determine polarisation. Defaulting to NONE.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "New stream: 'primary'\n", + "+-----------+------------+-----------------------+------------+-------------------------------------+\n", + "| seq_num | time | idu_controller-energy | pgm-energy | rasor_femto_fluo_scaler_det-current |\n", + "+-----------+------------+-----------------------+------------+-------------------------------------+\n", + "| 1 | 12:14:23.2 | 830.000 | 830.01020000 | 0.000 |\n", + "| 2 | 12:14:25.5 | 830.333 | 830.33530000 | 0.000 |\n", + "| 3 | 12:14:28.1 | 830.667 | 830.68140000 | 0.000 |\n", + "| 4 | 12:14:30.5 | 831.000 | 831.01170000 | 0.000 |\n", + "| 5 | 12:14:32.7 | 831.333 | 831.32780000 | 0.000 |\n", + "| 6 | 12:14:35.0 | 831.667 | 831.66940000 | 0.000 |\n", + "| 7 | 12:14:37.3 | 832.000 | 832.00180000 | 0.000 |\n", + "| 8 | 12:14:39.0 | 832.333 | 832.33850000 | 0.000 |\n", + "| 9 | 12:14:41.0 | 832.667 | 832.68160000 | 0.000 |\n", + "| 10 | 12:14:43.6 | 833.000 | 833.01590000 | 0.000 |\n", + "| 11 | 12:14:45.8 | 833.333 | 833.31790000 | 0.000 |\n", + "| 12 | 12:14:48.5 | 833.667 | 833.67890000 | 0.000 |\n", + "| 13 | 12:14:50.7 | 834.000 | 834.00270000 | 0.000 |\n", + "| 14 | 12:14:52.4 | 834.333 | 834.35770000 | 0.000 |\n", + "| 15 | 12:14:54.1 | 834.667 | 834.67290000 | 0.000 |\n", + "| 16 | 12:14:56.4 | 835.000 | 835.01060000 | 0.000 |\n", + "| 17 | 12:14:58.6 | 835.333 | 835.32420000 | 0.000 |\n", + "| 18 | 12:15:00.8 | 835.667 | 835.68920000 | 0.000 |\n", + "| 19 | 12:15:03.4 | 836.000 | 835.99100000 | 0.000 |\n", + "| 20 | 12:15:05.7 | 836.333 | 836.33530000 | 0.000 |\n", + "| 21 | 12:15:08.4 | 836.667 | 836.66380000 | 0.000 |\n", + "| 22 | 12:15:10.6 | 837.000 | 836.97900000 | 0.000 |\n", + "| 23 | 12:15:12.9 | 837.333 | 837.33320000 | 0.000 |\n", + "| 24 | 12:15:15.5 | 837.667 | 837.68130000 | 0.000 |\n", + "| 25 | 12:15:17.7 | 838.000 | 838.00770000 | 0.000 |\n", + "+-----------+------------+-----------------------+------------+-------------------------------------+\n", + "generator scan ['de6b1185'] (scan num: 1)\n", + "\n", + "\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "('de6b1185-6f99-4f96-8371-a69910e327e5',)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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0a1bN6xZs6ba869evRo33ngjLBYLUlNTsXXrVgDAxo0bMXHiROTn58NgMMBgMGDGjBkAXMP3s2bNwrhx4xAZGYm//vWvAIBPPvkEV111FUJDQ5GSkoJ58+bV6/U7ceIERo0ahejoaMTExODWW2/FsWPH5O9PmDABI0aMwOzZs5GYmIgOHTrU+DhWqxWPPvookpKSEB4ejh49elR5TZctW4bo6GisXbsWnTp1QkREBAYNGoScnJwqj7N48WJ06tQJYWFh6NixI1599dVqr9/KlSvRr18/hIWF4b333oPdbsfkyZMRHR2N2NhYPPHEExg/fjxGjBgBAFi+fDliY2OrHB8NACNGjMCdd95Zr9eLSBW+PlmISOv69esnHnroISGEEIMHDxapqali69atYufOnaJ3797CbDaLl156SQhR8+l1Fy9eFADEhg0brvhcJ0+eFDExMWLkyJFix44d4uDBg2LJkiXiwIEDQggh5s+fLyIjI8UHH3wgDhw4IB5//HERHBwsDh06VOX5O3bsKL766itx8OBB8X//93+iZcuWwmazCavVKhYsWCAiIyPl44ylUyRbtmwpIiMjxb/+9S9x+PBhcfjwYbFz505hNBrFM888Iw4ePCiWLl0qzGazWLp0qRxzy5Yt5d9fCCEAiE8//VQI4TpprlOnTuKuu+4Se/fuFb/++qsYM2aM6NChg3yK2vjx40VERIS48847xb59+2o9iW7SpEmid+/eYtOmTeLw4cPixRdfFKGhofLvvnTpUhEcHCwGDBggduzYIXbt2iU6deokxowZIz/Gu+++KxISEsQnn3wijh49Kj755BMRExMjli1bVuX1S0lJke9z6tQp8eyzz4qYmBixevVqsX//fnHfffeJyMhIceuttwohhCgpKRFRUVFi1apV8nOdOXNGBAUFie+///6K/9+J1MbkT9RAUvI/ePCgAFDlaM/9+/cLAKol/6lTp4pWrVqJ8vLyGr+fmJgoZs+eXeW27t27iwceeKDK8y9evFj+/i+//CIAiP379wshXEkyKiqq2mO3bNlSjBgxosptY8aMETfffHOV2x577DHRuXPnKj9XW/JfsWKF6NChg3A6nfL3rVarMJvNYu3atUIIV/KPj4+XLwZq8vvvvwuTySSys7Or3H7TTTeJqVOnyr8XAHH48GH5+4sWLRLx8fHy123atBHvv/9+lceYNWuW6NWrlxDC/fotWLCgyn3i4+PFiy++KH9tt9tFixYt5OQvhBD333+/GDx4sPz1vHnzROvWrav87kTewoY/IpXs378fQUFBSE9Pl2/r2LEjoqOjVXuOzMxM9O3bt8YGw4KCApw6dQp9+vSpcnufPn2wZ8+eKrd17dpV/ntCQgIA15RFx44dL/v81157bZWv9+/fj1tvvbXa8y1YsAAOhwMmk+myj7dnzx4cPny4Ws9EWVmZPJUBAF26dEFISAgA4L333sO9994rf+/bb79FQUEBHA4H2rdvX+VxrFYrYmNj5a8tFgvatGkjf52QkICzZ88CAIqLi3HkyBHcfffduOeee+T72O12REVF1fo65Ofn48yZM7juuuvk20wmE9LT0+F0OuXb7rnnHnTv3h3Z2dlISkrCsmXLMGHCBBgMhsu+RkSewORP5EVGo6vNRggh31afhjGz2axKHJUvHqTkUzlR1SY8PFyV55cUFRUhPT29Wm8EADRp0qTG5x0+fDh69Oghf52UlIQvvvgCJpMJu3btqnbBERERIf/90osmg8Eg/78oKioCALz11ltVHh9AtcdU8jqkpaUhNTUVy5cvxy233IJffvkFX3/9db0fh0gNTP5EKunYsSPsdjt27dqF7t27AwAOHjxYZcmclNBycnKQlpYGAFWa/66ka9eueOedd2Cz2aolssjISCQmJmLLli3o16+ffPuWLVuqVKVXEhISAofDUaf7durUCVu2bKly25YtW9C+ffsrVv0AcM0112DlypVo2rQpIiMj6/ScjRo1qjZSkJaWBofDgbNnz6Jv3751epxLxcfHIzExEUePHsXYsWPr/HNRUVGIj4/Hjh07cMMNNwAAHA4Hdu/ejW7dulW576RJk7BgwQJkZ2djwIABSE5OVhQrUUOx259IJR06dMCgQYNw7733Ytu2bdi1axcmTZpUpVo3m83o2bMnnnvuOezfvx///e9/MW3atDo/x4MPPoiCggL8+c9/xs6dO/Hbb79hxYoVOHjwIADgsccew/PPP4+VK1fi4MGD+Mc//oHMzEw89NBDdX6OlJQUFBUVYf369Th//jxKSkpqve+UKVOwfv16zJo1C4cOHcI777yDhQsX4tFHH63Tc40dOxZxcXG49dZb8cMPPyArKwsbN27E5MmTcfLkyTrH3L59e4wdOxbjxo3D6tWrkZWVhe3bt2Pu3Ln1qq5nzpyJuXPn4pVXXsGhQ4fw888/Y+nSpZg/f/5lf+7vf/875s6di88//xwHDx7EQw89hIsXL1Yb0h8zZgxOnjyJt956C3fddVed4yJSG5M/kYqWLl2KxMRE9OvXDyNHjsRf//pXNG3atMp9lixZArvdjvT0dDz88MN49tln6/z4sbGx+P7771FUVIR+/fohPT0db731ljwKMHnyZGRkZGDKlCno0qUL1qxZgy+++ALt2rWr83P07t0b9913H0aPHo0mTZrghRdeqPW+11xzDVatWoUPP/wQV199NZ566ik888wzmDBhQp2ey2KxYNOmTWjRogVGjhyJTp064e6770ZZWVmdRwIkS5cuxbhx4zBlyhR06NABI0aMwI4dO9CiRYs6P8akSZOwePFiLF26FF26dEG/fv2wbNkytGrV6rI/98QTT+COO+7AuHHj0KtXL0RERGDgwIEICwurcr+oqCjcfvvtiIiIkJcBEvmCQVSefCQiogZzOp3o1KkTRo0ahVmzZlX53k033YSrrroKr7zyio+iI+KcPxFRg/3+++/4z3/+g379+sFqtWLhwoXIysrCmDFj5PtcvHgRGzduxMaNG6tsHETkCxz2J/Ij9913HyIiImr8c9999/k6PKqF0WjEsmXL0L17d/Tp0wc///wz1q1bh06dOsn3SUtLw4QJE/D888/Xukshkbdw2J/Ij5w9exYFBQU1fi8yMrJa/wARkRJM/kRERAGGw/5EREQBhsmfiIgowDD5ExERBRgmfyIiogDD5E9ERBRgmPyJiIgCDJM/ERFRgPl//eA+tNu2TkAAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "RE(bp.scan([i10.rasor_femto_fluo_scaler_det],i10.energy_ud, 830, 838, 25),bec)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "e5bd3e4b-0e0f-40f0-a134-26a4894c3fba", + "metadata": {}, + "outputs": [], + "source": [ + "await i10.idu_polarisation.set(Pol.LA)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4dbc0f3e-84ef-4d3c-84af-72442466bf53", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Transient Scan ID: 2 Time: 2026-06-29 12:17:05\n", + "Persistent Unique Scan ID: '4dd4989c-167c-439f-91ca-9cb874d2a9f7'\n", + "New stream: 'primary'\n", + "+-----------+------------+---------------------------------------+-------------------------------------+\n", + "| seq_num | time | idu_controller-linear_arbitrary_angle | rasor_femto_fluo_scaler_det-current |\n", + "+-----------+------------+---------------------------------------+-------------------------------------+\n", + "| 1 | 12:17:12.7 | -90.000 | 0.000 |\n", + "| 2 | 12:17:16.1 | -80.526 | 0.000 |\n", + "| 3 | 12:17:20.3 | -71.053 | 0.000 |\n", + "| 4 | 12:17:23.8 | -61.579 | 0.000 |\n", + "| 5 | 12:17:27.9 | -52.105 | 0.000 |\n", + "| 6 | 12:17:31.3 | -42.632 | 0.000 |\n", + "| 7 | 12:17:34.9 | -33.158 | 0.000 |\n", + "| 8 | 12:17:38.3 | -23.684 | 0.000 |\n", + "| 9 | 12:17:41.7 | -14.211 | 0.000 |\n", + "| 10 | 12:17:45.1 | -4.737 | 0.000 |\n" + ] + } + ], + "source": [ + "RE(bp.scan([i10.rasor_femto_fluo_scaler_det],i10.idu_laa, -90, 90, 20),bec)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7c59f710-3777-4758-946a-9cdc94a425a9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}