{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "%matplotlib inline\n", "from coffea import hist\n", "import coffea.processor as processor\n", "import awkward as ak" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# This program will graph the sum of Jet pT's which are greater than 30 GeV and farther than a Euclidean distance of 0.4 from any lepton with pT > 10 GeV.\n", "class Processor(processor.ProcessorABC):\n", " def __init__(self):\n", " dataset_axis = hist.Cat(\"dataset\", \"\")\n", " muon_axis = hist.Bin(\"Jet_pt\", \"Jet_pt [GeV]\", 100, 15, 200)\n", " \n", " self._accumulator = processor.dict_accumulator({\n", " 'Jet_pt': hist.Hist(\"Counts\", dataset_axis, muon_axis),\n", " 'cutflow': processor.defaultdict_accumulator(int)\n", " })\n", " \n", " @property\n", " def accumulator(self):\n", " return self._accumulator\n", " \n", " def process(self, events):\n", " output = self.accumulator.identity()\n", " \n", " dataset = events.metadata[\"dataset\"]\n", "\n", " muons = events.Muon\n", " electrons = events.Electron\n", " jets = events.Jet\n", " \n", " output['cutflow']['all events'] += ak.size(jets, axis=0)\n", " output['cutflow']['all jets'] += ak.sum(ak.num(jets, axis=1))\n", " \n", " # Get jets with higher GeV than 30.\n", " min_jetpt = (jets.pt > 30)\n", " output['cutflow']['jets with pt > 30'] += ak.sum(ak.sum(min_jetpt, axis=1))\n", " \n", " # Get all leptons with higher GeV than 10.\n", " min_muonpt = (muons.pt > 10)\n", " output['cutflow']['muons with pt > 10'] += ak.sum(ak.sum(min_muonpt, axis=1))\n", " min_electronpt = (electrons.pt > 10)\n", " output['cutflow']['electrons with pt > 10'] += ak.sum(ak.sum(min_electronpt, axis=1))\n", " \n", " # Mask jets and leptons with their minimum requirements/\n", " goodjets = jets[min_jetpt]\n", " goodmuons = muons[min_muonpt]\n", " goodelectrons = electrons[min_electronpt]\n", " \n", " jet_muon_pairs = ak.cartesian({'jets': goodjets, 'muons': goodmuons}, nested=True)\n", " jet_electron_pairs = ak.cartesian({'jets': goodjets, 'electrons': goodelectrons}, nested=True)\n", " \n", " # This long conditional checks that the jet is at least 0.4 euclidean distance from each lepton. It then checks if each unique jet contains a False, i.e., that a jet is 0.4 euclidean distance from EVERY specific lepton in the event.\n", " good_jm_pairs = goodjets.nearest(goodmuons).delta_r(goodjets) > 0.4\n", " good_je_pairs = goodjets.nearest(goodelectrons).delta_r(goodjets) > 0.4\n", " good_jl_pairs = good_jm_pairs & good_je_pairs\n", " \n", " output['cutflow']['jet-muon pairs'] += ak.sum(ak.sum(good_jm_pairs, axis=1))\n", " output['cutflow']['jet-electron pairs'] += ak.sum(ak.sum(good_je_pairs, axis=1))\n", " output['cutflow']['jet-lepton pairs'] += ak.sum(ak.sum(good_jl_pairs, axis=1))\n", " \n", " # We then mask our jets with all three of the above good pairs to get only jets that are 0.4 distance from every type of lepton, and sum them.\n", " sumjets = ak.sum(goodjets[good_jl_pairs].pt, axis=1)\n", " output['cutflow']['final jets'] += ak.sum(ak.num(goodjets[good_jl_pairs], axis=1))\n", " output['Jet_pt'].fill(dataset=dataset, Jet_pt=sumjets)\n", " \n", " return output\n", "\n", " def postprocess(self, accumulator):\n", " return accumulator" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[########################################] | 100% Completed | 5min 3.3s\r" ] } ], "source": [ "from dask.distributed import Client\n", "import time\n", "\n", "client = Client(\"tls://localhost:8786\")\n", "\n", "# Our file is missing some cross-references, so we have to make NanoAOD push warnings instead of erroring out.\n", "# This ultimately isn't a problem, it's just a constraint of the public NanoAOD we're using.\n", "def fix():\n", " from coffea.nanoevents import NanoAODSchema\n", " NanoAODSchema.warn_missing_crossrefs = True\n", "\n", "client.register_worker_callbacks(fix)\n", "processor.NanoAODSchema.warn_missing_crossrefs = True\n", "\n", "fileset = {'SingleMu' : [\"root://eospublic.cern.ch//eos/root-eos/benchmark/Run2012B_SingleMu.root\"]}\n", "\n", "output = processor.run_uproot_job(fileset,\n", " treename = 'Events',\n", " processor_instance = Processor(),\n", " executor = processor.dask_executor,\n", " executor_args = {'schema': processor.NanoAODSchema, 'client': client}\n", " )" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaIAAAEHCAYAAADs2kIyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAgcklEQVR4nO3de7RU5Znn8e/PgwIJinLRBSI5ELUHMWjkiHRMDDP0CEmcYGe8kMtIJiYkohnTph0xZsV0p1kjk9Y4moGIQouOAkouGKeNEo26JgsVMN6QEFCInJZGEe82CvjMH/s9uCnOpTjnVO065/w+a9Wqqqf2u+upbXke3ne/9W5FBGZmZkU5oOgEzMysZ3MhMjOzQrkQmZlZoVyIzMysUC5EZmZWqF5FJ1ArBg0aFPX19UWnYWbWpaxevXpbRAzuyD5ciJL6+npWrVpVdBpmZl2KpD93dB8VG5qTtEDSS5KeycV+LOmPkp6S9EtJh+Zeu1zSBknrJE3KxcdKejq9dp0kpXhvSUtS/FFJ9bk20yStT7dplfqMZmbWcZU8R3QzMLkkthw4PiLGAH8CLgeQdBwwFRid2syRVJfazAWmA8ekW9M+zwdejYijgZ8As9O+BgBXAqcA44ArJR1Wgc9nZmadoGKFKCIeBraXxO6LiF3p6SPAsPR4CrA4It6NiI3ABmCcpCHAIRGxIrIlIG4Bzsy1WZgeLwUmpt7SJGB5RGyPiFfJil9pQTQzsxpR5DmirwFL0uMjyQpTk8YU25kel8ab2mwGiIhdkl4HBubjzbQxsx5o586dNDY2smPHjqJT6bL69OnDsGHDOPDAAzt934UUIklXALuA25pCzWwWrcTb26Y0j+lkw34MHz68lYzNrCtrbGzk4IMPpr6+nnSa2fZDRPDKK6/Q2NjIiBEjOn3/Vf8dUZo8cAbw5fhgxdVG4KjcZsOAF1N8WDPxvdpI6gX0JxsKbGlf+4iIeRHREBENgwd3aPahmdWwHTt2MHDgQBehdpLEwIEDK9ajrGohkjQZuAz4fES8k3vpLmBqmgk3gmxSwmMRsQV4U9L4dP7nPGBZrk3TjLizgAdSYbsXOF3SYWmSwukpZmY9mItQx1Ty+FVsaE7SImACMEhSI9lMtsuB3sDy9KEeiYhvRcQaSXcAz5IN2V0YEbvTri4gm4HXF7gn3QDmA7dK2kDWE5oKEBHbJf0IWJm2+/uI2GvShJmZ1Y6KFaKI+GIz4fmtbD8LmNVMfBVwfDPxHcDZLexrAbCg7GTNrEf59H+czObGZkfs2+WoYUN5aPlv2txu1qxZ3H777dTV1XHAAQdwww03cOONN3LJJZdw3HHH7ff7btq0iTPOOINnnnmm1W1GjBjB97//fX70ox8BsG3bNoYMGcI3v/lNfvrTn+73+3Y2r6xQgHGnnsa27a/teT5owKE89vuHi0vIrIfZ3Pgio2fM6bT9rZkzo81tVqxYwd13383jjz9O79692bZtG++99x433XRTp+XRkpEjR3L33XfvKUR33nkno0ePrvj7lsuLnhZg2/bXGD1jzp5bviiZWfe0ZcsWBg0aRO/evQEYNGgQQ4cOZcKECXuWF+vXrx9XXHEFJ5xwAuPHj2fr1q0APPfcc4wfP56TTz6ZH/zgB/Tr12+f/e/evZtLL72Uk08+mTFjxnDDDTfsea1v376MGjVqz/ssWbKEc845Z8/rX/3qV1m6dOme583tv5JciMzMquD0009n8+bNHHvsscyYMYOHHnpon23efvttxo8fz5NPPslpp53GjTfeCMDFF1/MxRdfzMqVKxk6dGiz+58/fz79+/dn5cqVrFy5khtvvJGNGzfueX3q1KksXryYxsZG6urqWtxPEVyIzMyqoF+/fqxevZp58+YxePBgzj33XG6++ea9tjnooIM444wzABg7diybNm0CsmG9s8/OTol/6Utfanb/9913H7fccgsnnngip5xyCq+88grr16/f8/rkyZNZvnw5ixYt4txzz+38D9gBPkdkZlYldXV1TJgwgQkTJvCxj32MhQsX7vX6gQceuGeadF1dHbt27WpuN82KCK6//nomTZq0V7ypmB100EGMHTuWq6++mjVr1vDrX/96zza9evXi/fff37Of9957rz0fr93cIzIzq4J169bt1UN54okn+MhHPlJW2/Hjx/Pzn/8cgMWLFze7zaRJk5g7dy47d+4E4E9/+hNvv/32Xtt897vfZfbs2QwcOHCveH19PatXrwZg2bJle/ZRLe4R1YDdvfowctQYwDPozKrhqGFDy5rptj/7a8tbb73Ft7/9bV577TV69erF0Ucfzbx58zjrrLPabHvttdfyla98hauvvprPfe5z9O/ff59tvv71r7Np0yZOOukkIoLBgwfzq1/9aq9tRo8e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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hist.plot1d(output['Jet_pt'], overlay='dataset', fill_opts={'edgecolor': (0,0,0,0.3), 'alpha': 0.8})" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "all events 53446198\n", "all jets 170952895\n", "jets with pt > 30 37461601\n", "muons with pt > 10 58440651\n", "electrons with pt > 10 5483772\n", "jet-muon pairs 27423877\n", "jet-electron pairs 4918297\n", "jet-lepton pairs 3430495\n", "final jets 32545926\n" ] } ], "source": [ "for key, value in output['cutflow'].items():\n", " print(key, value)" ] } ], "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.8.8" } }, "nbformat": 4, "nbformat_minor": 4 }