{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "from coffea import hist\n", "from coffea.analysis_objects import JaggedCandidateArray\n", "import coffea.processor as processor" ] }, { "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'] += jets.size\n", " output['cutflow']['all jets'] += jets.counts.sum()\n", " \n", " # Get jets with higher GeV than 30.\n", " min_jetpt = (jets.pt > 30)\n", " output['cutflow']['jets with pt > 30'] += min_jetpt.sum().sum()\n", " \n", " # Get all leptons with higher GeV than 10.\n", " min_muonpt = (muons.pt > 10)\n", " output['cutflow']['muons with pt > 10'] += min_muonpt.sum().sum()\n", " min_electronpt = (electrons.pt > 10)\n", " output['cutflow']['electrons with pt > 10'] += min_electronpt.sum().sum()\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", " # Cross is like distincts, but across multiple JCA's. So we cross jets with each lepton to generate all (jet, lepton) pairs. We have nested=True so that all jet values are stored in sublists together, and thus maintain uniqueness so we can get them back later.\n", " jet_muon_pairs = goodjets.cross(goodmuons, nested=True)\n", " jet_electron_pairs = goodjets.cross(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 = (jet_muon_pairs.i0.delta_r(jet_muon_pairs.i1) > 0.4).all()\n", " good_je_pairs = (jet_electron_pairs.i0.delta_r(jet_electron_pairs.i1) > 0.4).all()\n", " \n", " output['cutflow']['jet-muon pairs'] += good_jm_pairs.sum().sum()\n", " output['cutflow']['jet-electron pairs'] += good_je_pairs.sum().sum()\n", " output['cutflow']['jet-lepton pairs'] += (good_jm_pairs & good_je_pairs).sum().sum()\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 = goodjets[good_jm_pairs & good_je_pairs].pt.sum()\n", " output['cutflow']['final jets'] += goodjets[good_jm_pairs & good_je_pairs].counts.sum()\n", " output['Jet_pt'].fill(dataset=dataset, Jet_pt=sumjets.flatten())\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": [ "[######### ] | 23% Completed | 1min 1.0s" ] }, { "name": "stderr", "output_type": "stream", "text": [ "distributed.comm.tcp - WARNING - Closing dangling stream in \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[########### ] | 29% Completed | 1min 2.1s" ] }, { "name": "stderr", "output_type": "stream", "text": [ "distributed.comm.tcp - WARNING - Closing dangling stream in \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[########################################] | 100% Completed | 1min 58.5s\r" ] } ], "source": [ "fileset = {'SingleMu' : [\"root://eospublic.cern.ch//eos/root-eos/benchmark/Run2012B_SingleMu.root\"]}\n", "\n", "from dask.distributed import Client\n", "from coffea_casa import CoffeaCasaCluster\n", "\n", "client = Client(\"tls://localhost:8786\")\n", "\n", "output = processor.run_uproot_job(fileset=fileset, \n", " treename=\"Events\", \n", " processor_instance=Processor(),\n", " executor=processor.dask_executor,\n", " executor_args={'client': client, 'nano': True},\n", " chunksize=250000)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAESCAYAAAAMifkAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAbdElEQVR4nO3df5RU5Z3n8feH5ucEAxE6OSISIMEESdDRFtkkKhknisYJk6w/UDOJGZW4RI9ZE4/u6nEyx/Fs3Kwes1HEBhl1TgTHH1F0jT9mN9HZRMemHVHQqAgYOrgKGMeoYxT47h/3dluU1X2Lpm7XrerP65w+3ffep259uaeoT93n3noeRQRmZmZ9GVLvAszMrPgcFmZmlslhYWZmmRwWZmaWyWFhZmaZHBZmZpapIcNC0jJJr0paU2X7kyQ9I2mtpFvyrs/MrNmoEb9nIekI4E3g5oj4TEbbacA/An8WEb+X9NGIeHUg6jQzaxYNeWYREY8Ar5Wuk/QJSfdL6pT0z5I+nW46C7g2In6fPtZBYWa2mxoyLHrRDpwbEYcA3wcWpev3B/aX9CtJj0maW7cKzcwa1NB6F1ALkkYDnwNuk9S9ekT6eygwDZgDTAT+WdJnIuL1ga7TzKxRNUVYkJwhvR4RB1XY1gU8FhHvARskPUcSHh0DWaCZWSNrim6oiHiDJAhOBFDiwHTzXcAX0/XjSbql1telUDOzBtWQYSFpOfAo8ClJXZLOAE4DzpC0GlgLzEubPwBsk/QM8AvggojYVo+6zcwaVUPeOmtmZgOrIc8szMxsYDXcBe7x48fH5MmT612GmVlD6ezs3BoRrf19fMOFxeTJk1m1alW9yzAzayiSXtqTx7sbyszMMjkszMwsk8PCzMwyNdw1CzNrXu+99x5dXV2888479S6lYY0cOZKJEycybNiwmu7XYWFmhdHV1cVee+3F5MmTKRnnzaoUEWzbto2uri6mTJlS0327G8rMCuOdd95h3LhxDop+ksS4ceNyOTPLLSyyZrOTdJqkp9KfX5eM5WRmg5iDYs/kdfzyPLO4Eehr7ogNwJERMRO4jGQ+CjMzK6DcrllExCOSJvex/dcli4+RzDVhZtbjyC/NZVPX5prtb7+JE3j4ofsz211++eXccssttLS0MGTIEK6//nqWLFnC+eefzwEHHLDbz7tx40aOP/541qyp2NHS02bKlClccsklXHbZZQBs3bqVffbZh29/+9tcc801u/28tVSUC9xnAD/vbaOkBcACgEmTJg1UTcz6/BFsfS2ZI2n83mN5/FePDNhzmxls6trMjIWLshtWae2ihZltHn30Ue69916eeOIJRowYwdatW3n33XdZunRpzerozdSpU7n33nt7wuK2225jxowZuT9vNep+gVvSF0nC4sLe2kREe0S0RURba2u/hzbZbVtfe50ZCxcxY+GintAws+b28ssvM378eEaMSCbbHD9+PBMmTGDOnDk9Qw2NHj2aiy++mAMPPJDZs2fzyiuvAPDiiy8ye/ZsDj30UC699FJGjx79gf3v2LGDCy64gEMPPZSZM2dy/fXX92wbNWoU06dP73meW2+9lZNOOqln++mnn87tt9/es1xp/3mpa1hImgksBeZ5jgkzK4Kjjz6aTZs2sf/++7Nw4UIefvjhD7R56623mD17NqtXr+aII45gyZIlAJx33nmcd955dHR0MGHChIr7v+GGGxgzZgwdHR10dHSwZMkSNmzY0LN9/vz5rFixgq6uLlpaWnrdz0CrW1hImgTcCfxVRDxfrzrMzEqNHj2azs5O2tvbaW1t5eSTT+bGG2/cpc3w4cM5/vjjATjkkEPYuHEjkHRhnXjiiQCceuqpFff/4IMPcvPNN3PQQQdx2GGHsW3bNl544YWe7XPnzuWhhx5i+fLlnHzyybX/B/ZTbtcs0tns5gDjJXUBfwMMA4iIxcClwDhgUXqr1/aIaMurHjOzarW0tDBnzhzmzJnDZz/7WW666aZdtg8bNqznFtWWlha2b99e9b4jgp/85Cccc8wxu6zvDpzhw4dzyCGHcOWVV7J27VruueeenjZDhw5l586dPft59913+/PP65fcziwi4pSI2CcihkXExIi4ISIWp0FBRJwZER+JiIPSHweFmdXdc889t8sn/SeffJKPf/zjVT129uzZ3HHHHQCsWLGiYptjjjmG6667jvfeew+A559/nrfeemuXNt/73ve44oorGDdu3C7rJ0+eTGdnJwB33313zz4GQlHuhjIz+4D9Jk6o6g6m3dlfljfffJNzzz2X119/naFDh/LJT36S9vZ2TjjhhMzHXn311Xz961/nyiuv5Mtf/jJjxoz5QJszzzyTjRs3cvDBBxMRtLa2ctddd+3SZsaM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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 28103661\n", "jet-electron pairs 33916050\n", "jet-lepton pairs 25397925\n", "final jets 25397925\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.5" } }, "nbformat": 4, "nbformat_minor": 4 }