{ "cells": [ { "cell_type": "code", "execution_count": 1, "source": [ "from servicex import ServiceXDataset\r\n", "from coffea.processor.servicex import DataSource, Analysis\r\n", "from coffea.processor.servicex import LocalExecutor\r\n", "from func_adl_servicex import ServiceXSourceXAOD \r\n", "\r\n", "import matplotlib.pyplot as plt\r\n", "\r\n", "from coffea import hist, processor\r\n", "from IPython.display import display, update_display, HTML" ], "outputs": [], "metadata": {} }, { "cell_type": "markdown", "source": [ "Creating the datasets - mark `ignore_cache` true to force a re-submission to the backend." ], "metadata": {} }, { "cell_type": "code", "execution_count": 2, "source": [ "dids = ['mc15_13TeV:mc15_13TeV.361106.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zee.merge.DAOD_STDM3.e3601_s2576_s2132_r6630_r6264_p2363_tid05630052_00']\r\n", "datasets = [\r\n", " ServiceXDataset(did, backend_name='atlas_xaod', ignore_cache=False)\r\n", " for did in dids\r\n", "]" ], "outputs": [], "metadata": {} }, { "cell_type": "code", "execution_count": 3, "source": [ "leptons_per_event_query = ServiceXSourceXAOD('dummy_dataset') \\\r\n", " .Select(lambda e: e.Electrons(\"Electrons\")) \\\r\n", " .Select(lambda eles: eles.Where(lambda e: e.pt()/1000.0 > 30.0)) \\\r\n", " .Select(lambda eles: eles.Where(lambda e: abs(e.eta()) < 2.5)) \\\r\n", " .Where(lambda eles: len(eles) == 2) \\\r\n", " .Select(lambda ls: {\r\n", " 'electrons_pt': ls.Select(lambda e: e.pt()/1000.0),\r\n", " 'electrons_eta': ls.Select(lambda e: e.eta()),\r\n", " 'electrons_phi': ls.Select(lambda e: e.phi()),\r\n", " 'electrons_mass': ls.Select(lambda e: e.m()/1000.0),\r\n", " 'electrons_charge': ls.Select(lambda e: e.charge())\r\n", " })" ], "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "Found backend type matching \"xaod\". Matching by type is depreciated. Please switch to using the \"name\" keyword in your servicex.yaml file.\n", "Found backend type matching \"xaod\". Matching by type is depreciated. Please switch to using the \"name\" keyword in your servicex.yaml file.\n" ] } ], "metadata": {} }, { "cell_type": "code", "execution_count": 4, "source": [ "datasource = DataSource(query=leptons_per_event_query, metadata={'dataset-nickname': 'Zee'}, datasets=datasets)" ], "outputs": [], "metadata": {} }, { "cell_type": "code", "execution_count": 5, "source": [ "class Z_EEAnalysis(Analysis):\r\n", " @staticmethod\r\n", " def process(events):\r\n", " import awkward as ak\r\n", " from collections import defaultdict\r\n", "\r\n", " sumw = defaultdict(float)\r\n", " mass_hist = hist.Hist(\r\n", " \"Events\",\r\n", " hist.Cat(\"dataset\", \"Dataset\"),\r\n", " hist.Bin(\"mass\", \"$Z_{ee}$ [GeV]\", 60, 60, 120),\r\n", " )\r\n", "\r\n", " dataset = events.metadata['dataset-nickname']\r\n", "\r\n", " electrons = events.electrons\r\n", "\r\n", " # Form the invar mass, plot.\r\n", " cut = (ak.num(electrons) == 2)\r\n", " diele = electrons[cut][:, 0] + electrons[cut][:, 1]\r\n", "\r\n", " sumw[dataset] += len(events)\r\n", " mass_hist.fill(\r\n", " dataset=dataset,\r\n", " mass=diele.mass,\r\n", " )\r\n", " \r\n", " return {\r\n", " \"sumw\": sumw,\r\n", " \"mass\": mass_hist\r\n", " }" ], "outputs": [], "metadata": {} }, { "cell_type": "code", "execution_count": 6, "source": [ "analysis = Z_EEAnalysis()\r\n", "executor = LocalExecutor()" ], "outputs": [], "metadata": {} }, { "cell_type": "code", "execution_count": 7, "source": [ "%matplotlib inline\r\n", "async def plot_stream(accumulator_stream):\r\n", " global first\r\n", " fig, axes = plt.subplots()\r\n", " first = True\r\n", "\r\n", "\r\n", " count = 0\r\n", " async for coffea_info in accumulator_stream:\r\n", " print(coffea_info)\r\n", " hist.plot1d(coffea_info['mass'], ax=axes)\r\n", "\r\n", " count += 1\r\n", " plt.text(0.95, 0.75, f'Chunks of data: {count}', horizontalalignment='right', transform=axes.transAxes)\r\n", "\r\n", " # Either display it or update a previous version of the plot\r\n", " if first:\r\n", " display(fig, display_id='mass_update')\r\n", " first = False\r\n", " else:\r\n", " update_display(fig, display_id='mass_update')\r\n", " return coffea_info\r\n", "\r\n", "await plot_stream(executor.execute(analysis, datasource, title='Zee_2'))\r\n", "plt.close() # Prevents another copy of the plot showing up in the notebook" ], "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Zee_2: 0%| | 0/9000000000.0 [00:00]" ], "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, "model_id": "070203154729404491cbe28cc403b006" } }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ " Zee_2 Downloaded: 0%| | 0/9000000000.0 [00:00]" ], "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, "model_id": "6be97963d51640b8be1967e88066ed4f" } }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "{'sumw': defaultdict(, {'Zee': 50000.0}), 'mass': }\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/svg+xml": "\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-08-16T22:40:45.255058\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.4.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZsAAAEOCAYAAABfM7oIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAApGElEQVR4nO3de5wU1Zn/8c/jgILIKAqSQSRgwi86oCCMIBt1wQuiJkESFcT8RGNAo2z0l30lSjYJoiara7IachEnkQAucglZFA0GWAHxLoNBhFGBEFgHRhnAOOIN0Of3R50emqF7mFtNT/d8369Xv7rqqVPV58ztmXPqVJW5OyIiInE6LNMVEBGR3KdkIyIisVOyERGR2CnZiIhI7JRsREQkdko2IiISOyUbERGJXYtLNmY2LtN1iEsutw3Uvmyn9mWvxmhbi0s2QM7+QJDbbQO1L9upfdlLyUZERJo/i+t2NWb2JWBOUugk4CfAjBDvDmwGrnD3d83MgF8CFwMfAte4+yvhWGOAH4Xj3OXu00O8PzANaAssBG72QzToqKOO8pNPPrkRWtj8VFRU0KlTp0xXIzZqX3ZT+7LXqlWrdrt7+4YcI7Zkc8CHmOUBW4GBwE3ALne/28xuAzq4+61mdjHwL0TJZiDwS3cfaGbHAiVAEeDAKqB/SFAvA98FXiJKNpPd/cma6lJUVOQlJSXxNFREJAeZ2Sp3L2rIMZpqGO084G/uvgUYDkwP8enApWF5ODDDIy8Cx5hZAXAhsMTdd7n7u8ASYFjYlu/uL4bezIykY4mISDPSVMlmFDArLHd29/Kw/DbQOSyfALyVtE9ZiNUUL0sRFxGRZib2ZGNmhwNfA/5YfVvokcQ+jmdm48ysxMxKKioq4v44EZFc0zHxNzS86jw7rVUctarmIuAVd38nrL9jZgXuXh6GwraH+FbgxKT9uobYVmBwtfjyEO+aovxB3L0YKIbonE1DGiMisnfvXsrKyvj4448zXZVG1aZNG7p27Urr1q2rb9rR0HM2TZFsrmT/EBrAAmAMcHd4fywpPt7MZhNNEHgvJKRFwM/MrEMoNxSY4O67zKzSzM4kmiBwNfCr+JsjIi1dWVkZ7du3p3v37kQTabOfu7Nz507Kysro0aNHox8/1mE0M2sHXAD8d1L4buACM9sAnB/WIZpNtgnYCPwOuBHA3XcBdwIrw+uOECOU+X3Y529AjTPRREQaw8cff8xxxx2XM4kGwMw47rjjYuutxdqzcfcPgOOqxXYSzU6rXtaJpkWnOs5UYGqKeAnQu1EqKyJSB7mUaBLibJPuICAiEoO8vDz69u1Lr1696NOnD7/4xS/47LPPatxn8+bNPPLII41el/vvv58PP/yw0Y9bF01xzkZEDmHS4+so3VYJQGl59F5YkB+9d8ln4ld7ZaxuUj9t27Zl9erVAGzfvp3Ro0dTWVnJpEmT0u6TSDajR49u1Lrcf//9fPOb3+TII49s1OPWhXo2Is1A6bbKA5JMItGUlldWJSHJXscffzzFxcX8+te/xt3ZvHkzZ599Nv369aNfv348//zzANx2220888wz9O3bl/vuuy9tufLycs455xz69u1L7969eeaZZwBYvHgxgwYNol+/flx++eXs3r2byZMns23bNoYMGcKQIUMy9jXA3VvUq3///i7S3Fwx5Xm/YsrztY5LZpWWlh6yTLt27Q6KHX300f7222/7Bx984B999JG7u69fv94Tf5eWLVvml1xySVX5dOV+/vOf+1133eXu7vv27fPKykqvqKjws88+23fv3u3u7nfffbdPmjTJ3d0///nPe0VFRb3bBpR4A//2ahhNRKSJ7d27l/Hjx7N69Wry8vJYv359ncqdccYZfOtb32Lv3r1ceuml9O3bl6effprS0lK+/OUvA7Bnzx4GDRrUZG06FCUbEZEmsGnTJvLy8jj++OOZNGkSnTt35tVXX+Wzzz6jTZs2Kfe57777UpY755xzWLFiBX/+85+55ppr+N73vkeHDh244IILmDVrVspjZZrO2YiIxKyiooIbbriB8ePHY2a89957FBQUcNhhh/Hwww/z6aefAtC+fXvef//9qv3SlduyZQudO3dm7NixfPvb3+aVV17hzDPP5LnnnmPjxo0AfPDBB1U9oerHzQQlGxGRGHz00UdVU5/PP/98hg4dysSJEwG48cYbmT59On369OGNN96gXbt2AJx22mnk5eXRp08f7rvvvrTlli9fTp8+fTj99NOZM2cON998M506dWLatGlceeWVnHbaaQwaNIg33ngDgHHjxjFs2LCMThBokufZNCd6no00RyMffAGAOdcPqlVcMuv111/nlFNOyXQ1YpGqbdn0PBsREWnBlGxERCR2SjYiIhI7JRsREYmdko2IiMROyUZE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" }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "{'sumw': defaultdict(, {'Zee': 200000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 350000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 395000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 545000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 695000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 845000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 895000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1045000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1095000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1245000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1370000.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1519800.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1669800.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1819800.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1843800.0}), 'mass': }\n", "{'sumw': defaultdict(, {'Zee': 1993800.0}), 'mass': }\n" ] } ], "metadata": {} } ], "metadata": { "kernelspec": { "name": "python3", "display_name": "Python 3.9.6 64-bit ('.venv': venv)" }, "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.6" }, "interpreter": { "hash": "0857beeb8bd56f57ec31dfb6d49aa425259567fda5d0227b9061b424f42da337" } }, "nbformat": 4, "nbformat_minor": 5 }