{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# LHC Page1\n", "
\n", "\n", "Extract live data from the [LHC](http://home.cern/topics/large-hadron-collider) and create interactive plots with [PyTimber](https://gitlab.cern.ch/acc-logging-team/nxcals/-/tree/develop/python/pytimber)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preparation\n", "Let's import all the Python modules necessary for this study and tell matplotlib to generate interactive javascript plots." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Enable an interactive mode for Matplotlib plots\n", "%matplotlib notebook\n", "\n", "from datetime import datetime\n", "\n", "import matplotlib.pyplot as plt\n", "import matplotlib.ticker as ticker\n", "import pytz\n", "import time\n", "import pytimber" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now open the connection to the database:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "db = pytimber.LoggingDB(spark_session=spark)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Retrieve the data from the logging database\n", "We are now ready to open a connection to the logging database and extract for the past 24 hours:\n", "- The beams' intensities\n", "- The beam energy" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "now = time.time()\n", "now_minus_a_day = now - 3600 * 24\n", "\n", "t1 = \"2016-06-23 00:00:00\"\n", "t2 = \"2016-06-26 00:00:00\"\n", "\n", "# Uncomment for the recent data\n", "# t1 = now_minus_a_day\n", "# t2 = now\n", "\n", "ib1 = \"LHC.BCTDC.A6R4.B1:BEAM_INTENSITY\"\n", "ib2 = \"LHC.BCTDC.A6R4.B2:BEAM_INTENSITY\"\n", "nrg = \"LHC.BOFSU:OFSU_ENERGY\"\n", "data = db.get([ib1, ib2, nrg], t1, t2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting the data\n", "We can now build a plot of the intensity and beams energy starting from the data we retrieved. The [matplotlib](https://matplotlib.org) library can be used for creating interactive javascript based data visualisations." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def dumpdate(t=None, fmt=\"%Y-%m-%d %H:%M:%S.SSS\"):\n", " utc_dt = datetime.utcfromtimestamp(t)\n", " tz = pytz.timezone(\"Europe/Zurich\")\n", " tz_dt = utc_dt.astimezone(tz)\n", " return tz_dt.strftime(fmt)\n", "\n", "class rdmDateFormatter(ticker.Formatter):\n", " def __call__(self, x, pos=None):\n", " return dumpdate(x, fmt=\"%Y-%m-%d\\n%H:%M:%S\")\n", " \n", "plt.figure(figsize=(12, 6))\n", "\n", "tt, vv = data[ib1]\n", "plt.plot(tt, vv, '-b', label='Beam1')\n", "tt, vv = data[ib2]\n", "plt.plot(tt, vv, '-r', label='Beam2')\n", "plt.ylabel('Protons')\n", "plt.twinx()\n", "if nrg in data:\n", " tt, vv = data[nrg]\n", " plt.plot(tt, vv, '-g', label='Energy')\n", "plt.ylabel('Energy [GeV]')\n", "plt.title(time.asctime(time.localtime(now)))\n", "\n", "# set xaxis date\n", "ax = plt.gca()\n", "ax.xaxis.set_major_formatter(rdmDateFormatter())\n", "ax.xaxis.major.locator._nbins = 6\n", "plt.draw()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Further analysis\n", "In this section we show how to search for the available variables such as the luminosity of experiments and the tree of the variables." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Experiments' instantaneous luminosity variable names\n" ] }, { "data": { "text/plain": [ "['ATLAS.OFFLINE:BUNCH_LUMI_INST',\n", " 'ATLAS:BUNCH_LUMI_INST',\n", " 'ALICE:BUNCH_LUMI_INST',\n", " 'CMS.OFFLINE:BUNCH_LUMI_INST',\n", " 'CMS:BUNCH_LUMI_INST',\n", " 'LHCB:BUNCH_LUMI_INST',\n", " 'LHCB.OFFLINE:BUNCH_LUMI_INST',\n", " 'ALICE.OFFLINE:BUNCH_LUMI_INST']" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(\"Experiments' instantaneous luminosity variable names\")\n", "db.search_variables(\"%LUMI_INST\")" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Exploration of the variables' tree\n" ] }, { "data": { "text/plain": [ "{'/LHC/Beam Instrumentation/Beam Position/DOROS BPMs/P1': ['LHC.BPM.1L1.B1_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.2R1.B2_DOROS:RAW_V1',\n", " 'LHC.BPM.1R1.B2_DOROS:RAW_H2',\n", " 'LHC.BPM.1R1.B2_B_DOROS:raw_V1',\n", " 'LHC.BPM.1R1.B1_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.2L1.B2_DOROS:POS_H',\n", " 'LHC.BPM.7L1.B1_DOROS:HORPOSSPREAD',\n", " 'LHC.BPM.2R1.B1_DOROS:POS_H',\n", " 'LHC.BPM.1R1.B2_DOROS:POS_H',\n", " 'LHC.BPM.A6R1.B1_DOROS:POS_V',\n", " 'LHC.BPM.2R1.B2_DOROS:RAW_H1',\n", " 'LHC.BPM.A6R1.B1_DOROS:RAW_V1',\n", " 'LHC.BPM.7R1.B2_DOROS:RAW_H1',\n", " 'LHC.BPM.7R1.B2_DOROS:RAW_V1',\n", " 'LHC.BPM.1R1.B2_DOROS:RAW_V2',\n", " 'LHC.BPM.1R1.B1_B_DOROS:pos_V',\n", " 'LHC.BPM.1L1.B1_DOROS:POS_H',\n", " 'LHC.BPM.A6R1.B1_DOROS:RAW_H1',\n", " 'LHC.BPM.7L1.B2_DOROS:VERPOSSPREAD',\n", " 'LHC.BPM.A6L1.B2_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.1L1.B2_B_DOROS:pos_V',\n", " 'LHC.BPM.1R1.B1_B_DOROS:raw_H1',\n", " 'LHC.BPM.7L1.B2_DOROS:RAW_V1',\n", " 'LHC.BPM.1L1.B2_B_DOROS:acq_status',\n", " 'LHC.BPM.7R1.B2_DOROS:POS_H',\n", " 'LHC.BPM.1R1.B2_DOROS:POS_V',\n", " 'LHC.BPM.2L1.B2_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.1L1.B1_DOROS:HW_STATUSES',\n", " 'LHC.BPM.1R1.B1_B_DOROS:raw_V1',\n", " 'LHC.BPM.1R1.B2_B_DOROS:raw_H1',\n", " 'LHC.BPM.2L1.B2_DOROS:RAW_V2',\n", " 'LHC.BPM.7L1.B1_DOROS:HW_STATUSES',\n", " 'LHC.BPM.2L1.B2_DOROS:POS_V',\n", " 'LHC.BPM.7L1.B2_DOROS:RAW_H1',\n", " 'LHC.BPM.A6L1.B2_DOROS:POS_V',\n", " 'LHC.BPM.7L1.B2_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.2L1.B2_DOROS:RAW_H2',\n", " 'LHC.BPM.7R1.B1_DOROS:POS_V',\n", " 'LHC.BPM.7R1.B1_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.7R1.B2_DOROS:RAW_H2',\n", " 'LHC.BPM.1L1.B1.DOROS:POSITION_SPREAD_H',\n", " 'LHC.BPM.7L1.B2_DOROS:HW_STATUSES',\n", " 'LHC.BPM.7R1.B1_DOROS:VERPOSSPREAD',\n", " 'LHC.BPM.1L1.B1_B_DOROS:raw_H2',\n", " 'LHC.BPM.1R1.B2_B_DOROS:acq_status',\n", " 'LHC.BPM.2R1.B2_DOROS:POS_V',\n", " 'LHC.BPM.A6R1.B1_DOROS:POS_H',\n", " 'LHC.BPM.1R1.B1_B_DOROS:pos_H',\n", " 'LHC.BPM.1R1.B1_DOROS:HW_STATUSES',\n", " 'LHC.BPM.7R1.B2_DOROS:POS_V',\n", " 'LHC.BPM.7R1.B2_DOROS:RAW_V2',\n", " 'LHC.BPM.2R1.B1_DOROS:POS_V',\n", " 'LHC.BPM.1L1.B1_B_DOROS:raw_V2',\n", " 'LHC.BPM.2L1.B1_DOROS:POS_V',\n", " 'LHC.BPM.1R1.B2_DOROS:HW_STATUSES',\n", " 'LHC.BPM.1R1.B1.DOROS:POSITION_SPREAD_H',\n", " 'LHC.BPM.A6R1.B1_DOROS:RAW_V2',\n", " 'LHC.BPM.1R1.B1_B_DOROS:raw_H2',\n", " 'LHC.BPM.1L1.B2_B_DOROS:raw_V2',\n", " 'LHC.BPM.1L1.B1_DOROS:RAW_V1',\n", " 'LHC.BPM.1L1.B1_DOROS:POS_V',\n", " 'LHC.BPM.1L1.B2_DOROS:RAW_V2',\n", " 'LHC.BPM.1R1.B1_B_DOROS:raw_V2',\n", " 'LHC.BPM.A6R1.B1_DOROS:RAW_H2',\n", " 'LHC.BPM.1R1.B2_B_DOROS:raw_V2',\n", " 'LHC.BPM.1L1.B2_B_DOROS:pos_H',\n", " 'LHC.BPM.2L1.B1_DOROS:RAW_V2',\n", " 'LHC.BPM.1L1.B2_DOROS:POS_V',\n", " 'LHC.BPM.1R1.B2_B_DOROS:raw_H2',\n", " 'LHC.BPM.1L1.B2_DOROS:RAW_H2',\n", " 'LHC.BPM.7L1.B2_DOROS:HORPOSSPREAD',\n", " 'LHC.BPM.2L1.B1_DOROS:RAW_H2',\n", " 'LHC.BPM.1L1.B1_DOROS:RAW_H1',\n", " 'LHC.BPM.A6L1.B2_DOROS:RAW_V1',\n", " 'LHC.BPM.7L1.B1_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.A6L1.B2_DOROS:RAW_H1',\n", " 'LHC.BPM.A6L1.B2_DOROS:RAW_H2',\n", " 'LHC.BPM.1L1.B1_B_DOROS:acq_status',\n", " 'LHC.BPM.7R1.B1_DOROS:RAW_H1',\n", " 'LHC.BPM.1L1.B1_B_DOROS:pos_H',\n", " 'LHC.BPM.1L1.B2_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.2R1.B1_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.1R1.B2_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.1L1.B2.DOROS:POSITION_SPREAD_V',\n", " 'LHC.BPM.1L1.B2_DOROS:POS_H',\n", " 'LHC.BPM.2L1.B1_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.1L1.B1.DOROS:POSITION_SPREAD_V',\n", " 'LHC.BPM.2R1.B1_DOROS:RAW_H1',\n", " 'LHC.BPM.1R1.B2_B_DOROS:pos_V',\n", " 'LHC.BPM.2L1.B1_DOROS:POS_H',\n", " 'LHC.BPM.7L1.B1_DOROS:VERPOSSPREAD',\n", " 'LHC.BPM.1R1.B1_DOROS:RAW_H2',\n", " 'LHC.BPM.2R1.B2_DOROS:POS_H',\n", " 'LHC.BPM.1R1.B1_DOROS:POS_H',\n", " 'LHC.BPM.7L1.B2_DOROS:POS_H',\n", " 'LHC.BPM.1R1.B1_DOROS:RAW_V2',\n", " 'LHC.BPM.2R1.B1_DOROS:RAW_V1',\n", " 'LHC.BPM.1L1.B1_B_DOROS:raw_H1',\n", " 'LHC.BPM.1L1.B2_B_DOROS:raw_H2',\n", " 'LHC.BPM.7R1.B1_DOROS:RAW_V1',\n", " 'LHC.BPM.7R1.B1_DOROS:HW_STATUSES',\n", " 'LHC.BPM.1L1.B2_DOROS:RAW_V1',\n", " 'LHC.BPM.1L1.B2_B_DOROS:raw_V1',\n", " 'LHC.BPM.1L1.B2_B_DOROS:raw_H1',\n", " 'LHC.BPM.1L1.B2_DOROS:RAW_H1',\n", " 'LHC.BPM.1L1.B1_B_DOROS:raw_V1',\n", " 'LHC.BPM.1R1.B1.DOROS:POSITION_SPREAD_V',\n", " 'LHC.BPM.A6R1.B1_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.1L1.B1_DOROS:RAW_H2',\n", " 'LHC.BPM.2L1.B1_DOROS:RAW_V1',\n", " 'LHC.BPM.1L1.B1_DOROS:RAW_V2',\n", " 'LHC.BPM.7L1.B1_DOROS:RAW_H2',\n", " 'LHC.BPM.7R1.B1_DOROS:POS_H',\n", " 'LHC.BPM.2L1.B1_DOROS:RAW_H1',\n", " 'LHC.BPM.7L1.B1_DOROS:RAW_V2',\n", " 'LHC.BPM.A6L1.B2_DOROS:RAW_V2',\n", " 'LHC.BPM.7R1.B1_DOROS:RAW_V2',\n", " 'LHC.BPM.1R1.B2_DOROS:RAW_H1',\n", " 'LHC.BPM.1L1.B1_B_DOROS:pos_V',\n", " 'LHC.BPM.1R1.B1_DOROS:RAW_V1',\n", " 'LHC.BPM.7R1.B2_DOROS:HORPOSSPREAD',\n", " 'LHC.BPM.7R1.B2_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.7L1.B1_DOROS:POS_V',\n", " 'LHC.BPM.7R1.B1_DOROS:RAW_H2',\n", " 'LHC.BPM.1R1.B2_B_DOROS:pos_H',\n", " 'LHC.BPM.1R1.B2.DOROS:POSITION_SPREAD_H',\n", " 'LHC.BPM.2R1.B1_DOROS:RAW_V2',\n", " 'LHC.BPM.2R1.B1_DOROS:RAW_H2',\n", " 'LHC.BPM.2R1.B2_DOROS:RAW_H2',\n", " 'LHC.BPM.1R1.B1_B_DOROS:acq_status',\n", " 'LHC.BPM.7R1.B1_DOROS:HORPOSSPREAD',\n", " 'LHC.BPM.1R1.B2_DOROS:RAW_V1',\n", " 'LHC.BPM.1R1.B1_DOROS:RAW_H1',\n", " 'LHC.BPM.1R1.B1_DOROS:POS_V',\n", " 'LHC.BPM.2R1.B2_DOROS:RAW_V2',\n", " 'LHC.BPM.7R1.B2_DOROS:VERPOSSPREAD',\n", " 'LHC.BPM.7L1.B2_DOROS:POS_V',\n", " 'LHC.BPM.7L1.B2_DOROS:RAW_H2',\n", " 'LHC.BPM.A6L1.B2_DOROS:POS_H',\n", " 'LHC.BPM.7L1.B2_DOROS:RAW_V2',\n", " 'LHC.BPM.7L1.B1_DOROS:RAW_V1',\n", " 'LHC.BPM.7R1.B2_DOROS:HW_STATUSES',\n", " 'LHC.BPM.2L1.B2_DOROS:RAW_V1',\n", " 'LHC.BPM.1L1.B2_DOROS:HW_STATUSES',\n", " 'LHC.BPM.1L1.B2.DOROS:POSITION_SPREAD_H',\n", " 'LHC.BPM.1R1.B2.DOROS:POSITION_SPREAD_V',\n", " 'LHC.BPM.2L1.B2_DOROS:RAW_H1',\n", " 'LHC.BPM.7L1.B1_DOROS:POS_H',\n", " 'LHC.BPM.2R1.B2_DOROS:ACQ_STATUS',\n", " 'LHC.BPM.7L1.B1_DOROS:RAW_H1']}" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(\"Exploration of the variables' tree\")\n", "db.get_variables_for_hierarchies(\"/LHC/Beam_Instrumentation/Beam_Position/DOROS_BPMs/P1\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.9.12" }, "sparkconnect": { "bundled_options": [ "NXCALS" ], "list_of_options": [] } }, "nbformat": 4, "nbformat_minor": 1 }