{ "cells": [ { "cell_type": "markdown", "id": "0ef5ce86-6598-46ad-8fd4-c074b13c06d2", "metadata": {}, "source": [ "# Packed Selection\n", "\n", "This is a rendered copy of [packedselection.ipynb](https://github.com/scikit-hep/coffea/blob/master/binder/packedselection.ipynb). You can optionally run it interactively on [binder at this link](https://mybinder.org/v2/gh/coffeateam/coffea/master?filepath=binder%2Fpackedselection.ipynb)\n", "\n", "In `coffea`, `PackedSelection` is a class that can store several boolean arrays in a memory-efficient manner and evaluate arbitrary combinations of boolean requirements in an CPU-efficient way. Supported inputs include 1D numpy or awkward arrays and it has built-in functionalities to form analysis in signal and control regions, and to implement cutflow or \"N-1\" plots.\n", "\n", "`coffea` 2025 supports multiple modes, including `eager` (which loads all data from the file, typically best for testing only small input files), `virtual` (which functions the most like `coffea 0.7` and only loads data as-needed), and `dask` (the original variation introduced in CalVer `coffea` to utilize fully DAG-building via `dask` / `dask-awkward`). Let's first read a sample file of 40 Drell-Yan events to demonstrate the utilities using our `NanoAODSchema` as our schema; feel free to swap between `eager` and `virtual` modes for the `events` array." ] }, { "cell_type": "code", "execution_count": 1, "id": "d144affc-9918-4642-940e-148335eed6b7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
[{Electron: [], PuppiMET: {phi: 1.64, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: -0.0145, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" {Electron: [Electron, ...], PuppiMET: {...}, ...},\n",
" {Electron: [Electron, ...], PuppiMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: 0.538, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: -0.0232, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" {Electron: [{deltaEtaSC: 0.00415, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" {Electron: [], PuppiMET: {phi: 0.105, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: -0.513, ...}, FsrPhoton: [], ChsMET: ..., ...},\n",
" {Electron: [{deltaEtaSC: 0.00813, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" ...,\n",
" {Electron: [{deltaEtaSC: -0.00836, ...}], PuppiMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: 0.612, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: -0.00405, ...}], PuppiMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: 2.83, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: 0.053, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" {Electron: [], PuppiMET: {phi: 1.44, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: -0.00986, ...}], PuppiMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: -2.92, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: -0.415, ...}, FsrPhoton: [], ChsMET: ..., ...}]\n",
"--------------------------------------------------------------------------------\n",
"backend: cpu\n",
"nbytes: 243.3 kB\n",
"type: 40 * event"
],
"text/plain": [
"\n",
"N-1 selection stats:\n",
"\n"
],
"text/plain": [
"\n",
"\u001b[38;2;230;159;0mN-\u001b[0m\u001b[1;38;2;230;159;0m1\u001b[0m\u001b[38;2;230;159;0m selection stats:\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Ignoring twoElectron pass = 10 all = 40 -- eff = 25.0 %\n", "\n" ], "text/plain": [ "Ignoring \u001b[38;2;213;94;0mtwoElectron \u001b[0mpass = \u001b[1;36m10\u001b[0m all = \u001b[1;36m40\u001b[0m -- eff = \u001b[1;36m25.0\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Ignoring noMuon pass = 3 all = 40 -- eff = 7.5 %\n", "\n" ], "text/plain": [ "Ignoring \u001b[38;2;213;94;0mnoMuon \u001b[0mpass = \u001b[1;36m3\u001b[0m all = \u001b[1;36m40\u001b[0m -- eff = \u001b[1;36m7.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Ignoring leadPt20 pass = 5 all = 40 -- eff = 12.5 %\n", "\n" ], "text/plain": [ "Ignoring \u001b[38;2;213;94;0mleadPt20 \u001b[0mpass = \u001b[1;36m5\u001b[0m all = \u001b[1;36m40\u001b[0m -- eff = \u001b[1;36m12.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
All cuts pass = 3 all = 40 -- eff = 7.5 %\n", "\n" ], "text/plain": [ "\u001b[38;2;230;159;0mAll cuts\u001b[0m pass = \u001b[1;36m3\u001b[0m all = \u001b[1;36m40\u001b[0m -- eff = \u001b[1;36m7.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nminusone.print()" ] }, { "cell_type": "markdown", "id": "282ebb23-70f8-43e1-bb60-99770fcf3543", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Or get a histogram of your total event yields. This just returns a `hist.Hist` object and we can plot it with its backends to `mplhep`." ] }, { "cell_type": "code", "execution_count": 13, "id": "ef6b795a-3205-4850-a366-791bf625f094", "metadata": {}, "outputs": [ { "data": { "image/png": "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22+/bf42rrvuOtm9ezeHMBvcYl2tpcmsSZMmpsj0mWeeMcXuer17m5YtW0rp0qWDcrRJj0d0dLTUqFHDjHLs3bvXjPjoa67WvOzatUsSExPNKJweB2pALsGlphT4xyeQBQsWmPnsGjVqOFdddZWTlJTkuU5rQNq3b28u37BhQx7fY1zqvPF9993nFC9e3Pnwww/PuX7w4MHOtm3bOJjnoXUxmzZtcmrXru3ccMMNzokTJ8zl7t+E1n3ceuutzvfff88xvERu3djOnTudF154wenfv7/zyiuveK7XUbqWLVua46qf+F0ZGRnONddc48yePTsoj7U+h7TGrl27ds66deucn376yXnzzTfNCNuNN95oao7q169vRkf0drgwwkcADXu+//77TtGiRZ0JEyaYF4YxY8aYJ7oOAeofvhtAWrRo4VSuXNk5efJkHt5zZPU4fvXVV+bFe/78+c6uXbs81991111OiRIlsgwg8D6Gety2bt1q3gzcN0qdwtIplkaNGnme9+7t3WkBXJx7PHUKKyoqyhRBN2/e3ITjhx56yHO7uXPnOrfddptTtWpV51//+pfzwQcfOE8++aRTunTpoJ7m+vbbb524uDindevWXsFLC21nzpzpPP3002b6RQMxLozw4af0jzk1NdVz/sCBA06nTp1Mtbk7B1mlShUTNAoWLOg8/vjjnk99+/fvp9LfD73zzjtmZVLDhg3NY9a4cWNn+PDhnus7d+5sVmosXbo0T++nP3KDhNYcVKhQwQQNrT3QUSOde88cQG6++WbP3wKyT19batasacKE0mOpx11HW91VdUrffPV1R+uW6tWrZ+odQuFN97vvvjMBRE+rVq0653pWqV0awoefLhu85ZZbTOBw/fbbb8748ePNC4Nern/s7ieRZ5991oyA/POf//SMgMC/6Iu2fiqcMmWKc+zYMeeHH35wEhISTBAZMWKE53Z/+9vfnIoVKzppaWl5en/90SeffOIZ+du+fbv5O9FP5Tr8/9FHH5nbfPnllybA6SdT5Czk6fHVDzW//PKL53IdZdLj+umnn57zb7S4V2+rr1GhQgOIPu80gGR1THBxhA8/XsGiduzY4Vk7f/jwYfN19OjR5kX34MGDnvMaRsqUKWOmXeB/qwR01EPrEtzqePcx7tOnj/mk7gZNHfbWF3Oca+jQoU6rVq28LtNVFxrU3SCux0+ntvTvBjmjq1Vefvllz3l32kpHPtxRuczP71Dtb6EBRKeldART+30ge1jt4mfcvg5apf/dd9+Z1RCvvvqq6QehvQs0MOoqF60wv/LKK81tf/75Z+nbt6/88MMPpvcH/If2ndDVLBEREXLy5ElTJa/0cdTH+JFHHvHcxu0doCs1cC59zutKA11R8P8fnOTmm2+WXr16yb/+9S/Zs2ePOX4xMTGm8yYuLqsW9HrsHn/8cc/z1F1FVLBgQXP83cdi4cKFZo+Xs1fEhIrq1aubLqfly5fnbzYHCB9+9gJQoEAB81WXq+myLn1xXb58uYwfP16OHDli/tDj4uLko48+kvvuu88se3v99dflpptukiJFiuTh/wUy08dJH7emTZuaDQArVKhgHj99k9Q3T/cFu2TJktKgQQPTrhnn0gDuqlatmqxfv14++eQTryWe+mape2ywl0v2aVjTZaJz5swx53V58tNPP22eq+7zWJcy67HNyMiQQoUKmcsHDx4sHTp08GxuGapq1aplmqvp3zeyh/DhJy8A33//vTz66KPm/DvvvGMChn5K1v4duoHT/PnzTQA5fPiwGQ2ZOnWquV7DinZ0rFOnTl7/byAT7duxfft2GT58uLRq1cp8Gp8wYYIkJSXJkCFDZOPGjeaFWzub6lc+qZ9r586dZgOzPn36mPP33HOPCdx33nmn2QtH/xb0k7n2QdG/Id1nA9mjQVhfY3SkQ/cW0s3SdN8oHWV16THWAKKKFStmetDoaKwGQd3jJdTxwSGHsjlNg1yic6laNKpz2vp1xowZXtf37dvXFCfqunu39kOLEtPT03lM/EDmeW9dBq2PoRbojRs3zut22hdAlzBeffXVZkVBdHS0s3Hjxjy4x/7v119/dZ566inTQ2HAgAGe+oMHHnjAdH/Vfjc6316yZMmQWGXhK2fXaGgvFPd1p1evXp7Lz94nKjY21tQtRUREBGUXU9gVpv/JaXDB5dEugXfccYfExsaa8wMHDjRziDrVoqMZSoc63WStn0x0bwHds0Jvm/nTCfJui3Gt03Gny3T/B6270cdRHyPd7fPll182j6G7+6rW5midTlpamtSvX9/UfuDP3Wkz++2332TcuHHy3nvvSevWrWXkyJHm8gULFpiRP30M2rZty8hRNp+zukeLTrfoVK2OZgwdOlS+/fZbc7yfeuop07XTvb0+JlqvVLduXTMdrPVJ2p0XuCyWww7O6myplfmu5ORks/pBm03df//9nsszNwvTTyZa3Z95GRzyjnY57N27t/lel35qnwl3pZL2ZMmXL58zadIkHqKLcFdUaOfIzN003REQXemiIx3aUA85445kaIM27URaqVIl06NDX4d0JOPQoUPOP/7xDzMid/bIq664092XdYUH4AuEDz+wfPlys0GWa9GiRU5kZKRXAHG76yl3iS3y3uTJk810mA5ba+Mw7faYmTYR0wCi/T2QdXjbu3ev+V77n/Ts2dMsG9fuvZnpEmXtgaKbe2lAR/Zk7gSrm79pT6DVq1ebDQzLly/vPPbYY55g8sgjj5jplenTp5vLnnvuOXN7es/AlwgffkD3AdA3Lm2i5M7JagDRlsb6qUR7QGgjMX1R1k+B8C868qHz5U2bNvW8QGdu6a11OoUKFTrnDTXUaRtuPW76Sdttya39OR599FHTJv3VV1/1uv2oUaOcWrVqmbbe2sUX2aONwvRDjRs0XF26dDHbMRw/ftyc/89//mPCht5We9Doc5caD/gaq138wFtvvWWWrbVr186zjFB3TNRlb4sXLzY1IFOmTJHp06ebpZnIe26plK4CKFOmjPTs2dOc7927t6n70N4Ibs8Wre0ZMGCAPP/882aFBv5r27ZtEhkZaWoQ4uPjzYovXfWjx+qaa64xz39dVeHSeoTu3bub5cp6zJE92pdDa5O0JinzElndqbZw4cLm+CpdOffEE0/ItGnTzK6tX331lVx//fUcbvgUBad5VFSnf+j6xuU2CtPLtWeHFppqMZ0GDqUvElpkqtuCazMb+M9jqL1WNGg0b97cvKCPHTvWvGFqf5YRI0Z43iB37NhhelRokV+pUqXy+u77DW0KpkvKGzZsaI6pvsnpknINIFoM+corr5i/hyuuuEIqV64sixYtMtu4syz50ulriX5g0X4z6tlnn5X333/fHHdd9q39PCpVqiQJCQnmOsAan4+l4KK0MFGXCOoeHroxU+alljoFo/Pa7hQM/JO2S9dh6X79+jnffPON5/KxY8eaoequXbua/VsGDx58Tlv1UKf1B+5yz2nTpjnXX3+9qS/QvTIaNGjgaY2ubebfeust584773S6d+9u6hGQvWmW6tWrO3//+9+9Xk9051U95jpdqMu+dYol1Fulwz7ChwWZ/6B17lT7P2gN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", "text/plain": [ "
\n",
"Cutflow selection stats:\n",
"\n"
],
"text/plain": [
"\n",
"\u001b[38;2;230;159;0mCutflow selection stats:\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Cut noMuon :pass = 28 cumulative pass = 28 all = 40 \n", "-- eff = 70.0 % -- cumulative eff = 70.0 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mnoMuon \u001b[0m:pass = \u001b[1;36m28\u001b[0m cumulative pass = \u001b[1;36m28\u001b[0m all = \u001b[1;36m40\u001b[0m \n", "-- eff = \u001b[1;36m70.0\u001b[0m % -- cumulative eff = \u001b[1;36m70.0\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut twoElectron :pass = 5 cumulative pass = 5 all = 40 \n", "-- eff = 12.5 % -- cumulative eff = 12.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mtwoElectron \u001b[0m:pass = \u001b[1;36m5\u001b[0m cumulative pass = \u001b[1;36m5\u001b[0m all = \u001b[1;36m40\u001b[0m \n", "-- eff = \u001b[1;36m12.5\u001b[0m % -- cumulative eff = \u001b[1;36m12.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut leadPt20 :pass = 17 cumulative pass = 3 all = 40 \n", "-- eff = 42.5 % -- cumulative eff = 7.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mleadPt20 \u001b[0m:pass = \u001b[1;36m17\u001b[0m cumulative pass = \u001b[1;36m3\u001b[0m all = \u001b[1;36m40\u001b[0m \n", "-- eff = \u001b[1;36m42.5\u001b[0m % -- cumulative eff = \u001b[1;36m7.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cutflow.print()" ] }, { "cell_type": "markdown", "id": "e6aa8edf-3953-410d-b46f-f7d54adda821", "metadata": {}, "source": [ "Again, you can extract yield hists, only now there are two of them." ] }, { "cell_type": "code", "execution_count": 22, "id": "e9e3db1b-8836-4a85-8e56-5819134b7343", "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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ooXNnDnTunXrFg4U+vq6667bbf+UlBS3FVWtWrVIH1ZCUfAgfMQ3zmH84xzGN87fgfmzFo8S7XZRS0bPnj2tZcuWduKJJ9ro0aNt8+bNbvYLAABIbCUSPi644AL7+eef7c4777Q1a9bYcccdZ9OmTdttECoAAEg8JTbgVF0se+pmQclR95UKu+3ajYX4wTmMf5zD+Mb58yMptC9zYgAAACKEheUAAIBXhA8AAOAV4QMAAHhF+AAAAF4RPhLIunXrwkXfAACRxxyOfUP4SBAvvviiK2+/cOFCt8owAQSIf1zoYkfwnrrrsiC81+4ZU20TxI8//mjXXnutzZ0719555x1r3ry5e1EoiKB0XpRYG6l0ntP//ve/buVwraOF2BC8l37//ff22muvufP0l7/8xbp37x7tQ4tZhI8EomqzCiCzZ8+2WbNmEUBK2UVJCwrqDbBSpUp26KGHEi5LoZdfftnuuOMOd24bNmxoubm5VqtWrWgfFsxs8eLF1q5dOzv22GNdF/fq1autY8eO9sADD1i9evX4G+2C8JFg9ILo378/AaSUmTp1ql1//fV2yCGHuAvTlClT7Pjjj4/2YSGCFixYYFlZWe71W6NGDXv00UetQoUK9vTTT1vTpk35W0fRli1b7Mwzz7RjjjnGBcL169fbt99+axdeeKFrAXnyySetSZMmnKMiCB8J2gUzYMAAAkgpafFQU2/r1q3dHbGa4l955RW3KZDoYoX4t2jRIneeNWZLSyiIli4/5ZRT3P+DyZMnuwsfouP333+3tm3bWr9+/YotoKoWEL021fLx5ptvurBId/f/R4d/AgxG+89//mM//PCDff311+5rJXGl81NPPdVOO+00++KLLxiEGocUPNSF9vnnn9tVV13l1lLSndZTTz1ll19+uZ177rk2ffr0aB8mInRXrfOpG4dAlSpV7P3333f/D3S+9TpG9N5rNRZHITGwfft210L17rvvusdvv/129zjj7P6X1nZB6bNz50738eWXXw4dc8wxoaOPPjpUo0aNUE5OTvi51atXh7p16+Yenz9/fpSPGPtr69atobPPPjuUlJQUOuuss4o9t2XLllDfvn1DVatWDb322mv8cePckiVLQscdd5zbVq1a5R4LXscFBQWhzMzMUNu2bUOFhYVRPtLSL/i77+rJJ58M1alTJzRp0qTwY8H5eOihh0J//etfQ2vXrt3r9ycawkcpU/Q/9htvvBGqXLly6NFHHw2tWLEiNHr0aHehys7ODm3bti0cQDp06BCqX7++u5ghvnz33Xehnj17upDx+eefF/s/8Ntvv4UuvvjiUK1atUKbNm2K8pHiQF7DRT//+uuv3cWtU6dO7iJW9PmNGze61zhK1o4dO9zHdevWudfbrFmzws8tXbrUvRbbtGkTeuGFF4p93zPPPBM66qijQv/97385Rf+L8FFKvP322+4OKKA3px49eoT+8Y9/uK9XrlwZOuKII1zQKF++fOjGG290FydZs2ZNKC8vL2rHjn0TXGh+//1317JR9FyfeeaZocMOOyz01VdfFdtX51gBE/EhOG/vvPNOaODAge686o56wYIF4QDyl7/8xQUQXQCLfg/8BI9FixaFjj/++FDDhg1dq3GrVq3C+3z00Ueh888/3z0/ZswY95heq7feeqsLJRs2bOA0/S/CRynw0ksvhU455ZTw3ZD8+uuvoUceecSFDj3etGnT0FVXXeWeu+OOO1wLyPXXXx9uAUFsCy4wb775ZuiCCy4ItWzZ0l2cFDrll19+CXXp0sUFEDXRF/0exJepU6eGKlSoEOrVq1eoc+fOoWbNmrnX9/Tp08MBRC2VJ5xwQujnn3+O9uEmFLVuHH744a71eOHChaH33nsvdOyxx4auvfba8D5qEbnpppvcOVRrh16r1atXD3322WdRPfZYQ/goJYJ+4OXLl4eb9oKUPWrUqNBpp50WvlPS1wojNWvW5K44jrz66quh5ORk90anOym96Z188smhsWPHuucVMs855xwXLL/55ptoHy4OgFqpdNesLtKAmvYvvfTSULt27dxdtyxevNi9hv/zn//wd/ZEXZeXXHJJ6Oqrrw4/poA/ZMgQ1xJVlFo7dI4eeOCB0MSJE937MoorFww8RfxO8SpXrpybwaJ55eeff76dc845dtNNN1lqaqobha1ZLhoRf/jhh7vv0Yj5G264wS6++GJXkAqxTedww4YN9s9//tOGDRtm2dnZ7nEVjLvnnnts0qRJbpqlpl0+9NBDVrFiRaqbxuGUab2Wy5cvb2vXri1WOKx9+/ZuH9X3+Oabb1wRK53vzz77zO0PPzRLRcX7GjVqFH5M503nR8XfNCupbNmylpKS4qbU6hwx/XnvmGobh4quFaDgIZpKe/TRR9vJJ5/syqc/8sgjlp+f714cqvWgiqaXXnqp9ejRw5544gk76aSTCB5xQudQxcMUQIKLjf4PZGRkuJoPqiUQTKmtW7euPfPMM+7/AuLn/Kouy8iRI925VPBQNeKir3VNideF7/XXXw9/H8HD37o5mjarUH/rrbe6EFj0+eAc6UYuOTnZfV5QUFDCRxf/CB9xmsCXLVvm7nzlhRdecAHjp59+cvU7WrVq5QpMKYDogqX1BcaNG+eeV1h57733qLYX44I3Nt0Ny6ZNm9ybm2q2BM/rTU8tXrrzUvXLYF/dfSF+zrFaJi+77DKrU6eONW7c2Nq0aWPDhw+3Dz74oFhNiLS0NGvQoEEUjzjxWqN+/vnncNDT++aKFSvc13rtFV07KTiXeuzGG290rc8KLPgDu3TDIE5MmzbN9e2rr1Ef1a9Y1A033BBq0aJFaMSIEeGxH5s3b6YOQBz5+OOPQ+edd56bjSRTpkxx5/qxxx4rtp9mNakfmgGm8efDDz9051Wzz3Y9p2lpaaF777039MQTT4QGDx7splNrsCn80CBuzVAZOnSoq5ek114w6Leo2bNnu5mEooGolSpVCs2dO5fT9CcIH3Hktttuc1O5Arfccot7QWgkfKBokSEFEE0D0wuCKV7x5/HHH3dFpS688MLwTKa///3v7pz37t3b/X/Q4FPVctHgNsSuosFQU6WDjxpEGtxE7FogTIFEr23NmGjfvn24jgv8Df5VqQJNbU5JSQlNnjzZPb59+/Zi+82cOdPd6GmGiwaEB9Oi8cfodokTauZbuXKl6/sPqH9fJbW//PJLV15Z1OdYWFjoPh89erT99a9/dc23QZM84kefPn3c+dVqtVqLR4tVabDpiy++aKtWrXLNwPr44YcfMrAtDprwVX476BbTOdO5U/eoukU1eFRbsL9ogLGWZ//444/t1VdfteOOOy6q/47SLhi7sW3bNtuxY4elp6e7Lk0NAK5ataob0C/qutbzAXWJ6typa3vu3Lks6LiPWFguDs2YMcONqNbsBtEgtEsuucT1M/7rX/8K77d06VK37Lb6LYOZLohNwWJTms2QmZkZHgysC5EGCOu8akyAxvHoXGpAm94Qf/vtNzcQDrFNFzDdIOg1qovaeeed517HHTp0cAPDu3Xr5m4uFDI0QyIILMFH+Hn96T3z/vvvd0FDN26aWaTVoTVgXyvTan2dv//97+57FEAUJBUiNQh1xIgRbn/soz9pGUEMOvfcc12V0g8++CDcpKv1O1JTU109ADXRq5CY6gCsX78+2oeLPxBUmZVvv/3WFY7S+A2NzwmomVdrQ6hMugpPFS0mh/igCsI6r1pjSU34Tz/9dLEm/Pz8fNcF06BBg3CVWvitXKqiYYceeqh7f1W9HHW3aMyHXpcq2njPPfeEGjduHLr99tuLlU1XHZair1fsG8JHHFJV0r/97W+uat77778fDiAaDFWtWjXXR8xicbFPFxkt+hdUKQ3KMKtwmMbr7PqG1rx5c3d+tX5E8IaJ+Bnv8frrr7ubhnr16oULw+0aQLT8gc4xA0v9vxYrVqzoBvgGdEOnwaPBEhUaA6IB/AogKjamsXQar0MBsQND+IiTNy61YAQVSoPHldCLBhDRXfErr7zCWi1xECBVJl1vXiqVrXMWBJC77rrLDRRW+fRgEKIWDlOrx8iRI8PVbBE/r18FCw0W13nWsgY6vw8++OBuAUTVibt27RpatmxZ1I450Wgwvloc1eoULM4XDApWy8egQYPC+6qcvWabaQVhbQwCPnCEjzhZu6V169ahunXruhHwRUdTBwEk6IJBfFDLxf333x9q0qSJm7Gic7trANE5V0BRs+7NN9/s3iCLBlDER/DQHbSa8YPXqEqiqwtGAaRoGfVnn3029MMPPzBl2pOiSxBoZpnOh2aRBWuwKACqpSroIttToMSBI3zE+LS8Tz/91C1kpDEcahLURUqBQ9O7AlpFUXfQzC2PD0GXiZpxa9eu7bpYdDecmZnp1m8JAkhubq57Q0xPT3dNvUzhiz+qD6Gm+2HDhhWbDq0FH/v16+cCps69aknoNRzceaNkadrsiSee6GqsBMaNG+fW1RkwYEDorbfecq/H/v377/a+TD2dyCB8xBC9EIr29aovUXfHGuhUNIxoTrnupN59993w45dddplbcRGxS4FiV1rkTxcfFRS7/PLLQxkZGe5OOWj6VZOwLlqsXhp/FC61Iu0///nPYo8HTfoahKrQoQCi1zSrnvrzxRdfuMU2s7KyXItT4Mknn3S1dVQ7Rzd1u54zRA7hI0bojUgDDXVHJBpdrdHWGgSlJF6ULlRK6KqCqEqniH1a5l6DSxU2NKo+oEHCusNSE7AuVhpMqq/feOONqB4vDt53333nKl/q9RrcMe9616yxPwqlwUrUKHlBkNDNXefOnUNnn3126Lnnnis2g0WvVXXBULyv5FBkLEaohsPbb7/tFgtT0bBgzRbVdPj8889t4cKF4X1PPPFEe/zxx11hm6efftqtpojYtXXrVlcDYMmSJTZq1Ch7+OGH3Vo8y5cvtzPOOMPVf7jzzjvdudZqxHrub3/7m1sgEPFdO0IrSKsORCAoIDZ//nybM2eOK1ilOi3VqlWL4pEmlqBuigoyaiFOvb8++OCDbnE/Uc2kwYMHu8f1Wi363ovIIXzEEL0JqXiU/vOraI1WJn322WfdYmJaKj0IJdKyZUsXTrSkelCQCrFJy2v37t3bBQoFERUqql+/vl1wwQWuuuXq1avdAoCqgNm0aVO3YOAVV1xh9erVi/ah4wBWQA3oHHfp0sUViZs3b5676AULxT311FP22GOPhasRwx+dg5deesktrvnLL79Yx44d3Y3AAw88YM8//7zb58orr3RVhXUDMH78eFf1FJFFhdMYpLuia665xpo1a+ZKLOuO+aKLLnIvEq2YqAsU4u/ipDL3d911lwsZKsOsN7y33nrLtYps3LjRZs+ebe3atXP7680uWJ4bsS2oQjpz5ky3qUpt165d7cwzz3SroN58881uWQStXKvWrTfffNO1WKo8PhUxo1NttlOnTq7FUedGdGOnpQzUWqXWR1WilWeeecbatm3rgiQii/ARo9Tkp/St0r5BANGLRSV/7777bpfaEV/0xqbQoQCpsui6q6pRo4Y7t2oR0bmmnHZ80hotChd9+/Z1rZdff/21K7/90UcfufOsFkzdVatbVWXx1W3avHnzaB92QtJaLCeccIINHDjQrr766nBp9a+++sotWaFAeNVVV7nziRJUguNJcJA0+l0jr6+88ko3IE31HlQy/ccff+RvG+OCgYUaQKy6DkVnIs2bNy900kknhRo1auQGmQoVS+P7HGtWS1C1VLVYtNRB0eJUsmbNGlcEkBWmo0evs19++cUN2B8yZEh4AGrw+lMZg7S0NLeSNHU8ShbhIw4CSMuWLV05db1p7Wm6JmLzovTiiy+6tTw040EXIxUT0wyIIICoQqIuWrooIT5MmjQpXIsloOnxWtJAr0+dX02X7tOnT/h5TYnXBQ/+7a0mx4QJE1xdlYkTJxZ7XLVXHn74YSpEe1CuJFtVcPDUzTJmzBjXD6lZLampqfxZY5z6/zWT4dJLL3Wj6Bs1auTGeahJfs2aNW7GS6tWrWzkyJHWr18/t6KplljX97GCaezSqrP/8z//47rGtKq0ZirJ77//7sZyaEVUDSru3LmzjR071j23aNEie+6559xslurVq0f5X5BYgi7M999/321a3VtjcfTa69mzp3333XfWq1cvW7BggdWuXdvNStK50vgPfY2SxZiPOKExAZo1gfhw++23uyl6b7zxRvgxfa1Bwxq7owCivmYNLq5Zs6bVrVs3qseLvQvGBIgGlObm5lp+fr7dcsstblp0MPtMU9/79OnjxnMEtI8Glmoap84z/AYPzWpRwDj77LNd2NDUZk2vveOOO9wg4EmTJrnztXnzZvf++uijj7obPpQ8wgdQAm98mlqrGg/Tp093Fy/dHWv2ikbPa8Dpp59+apmZmfzt4yR4LFu2zLVuqAVDrVpq0dLARdWDOOuss+yHH35wd9WVK1d2A8I1oHjWrFk2btw4N8tJM9fgl6Y3qyVKM8z0elTJgmOOOca1aqh1SrPMNPhXrZI6b7rBq1KlCqfJE+p8ABGq8fDrr7+6rjHdcelCpIvUjBkz3MVLd1yiNzk1v+sj4iN4fPHFF9awYUNXV0dOPfVUFzp0DhVCpk2b5mqyqMle/xc0TV4tHupyUXM/wSM6FBjVMqXg8f3331uHDh3s/PPPd3V2/v3vf7saSWrBOvTQQ618+fIED89o+QAi4OWXX3ZTotetW+dqsrRp08ZdlNTyoSqJp59+utsvOzvbTb3Upjc9xH7wUJ0HTcvUnXJRCpaPPPKIq9EyZMiQcBeMLnq6o1bRQH1EdOi85OXl2ZFHHulap1RFOigYpjCplg4VdLz//vsZaxUFDDgFDpL6+tWvrO6U9evXu3Ee3377rSuDrwqXeuNTDQ/dXS1evNjeffddgkecBI+TTjrJrr/++mLBQ0XCVEBMhap0TlUZU4OH9X0630cddVRUjz+Rx3ioe3P79u0u+KkLRfWQVHNFg0k1ziMoMqYaK2qR0hgdBnlHB90uwEFQBUtdjFQpUW9uo0ePdn3MKtusgmLt27d3rRz6qK6YTz75hAFtMU7BQ3fMGnioFo+cnJxw19p9991nF198sStIFXTBKHRqLMjQoUNdsER0godehyoM1qJFC9ftpcJvooCo51XwTa9LjcNR9+igQYNc0TdEBy0fwAFSJcsLL7zQTcFUNdqAQoZoRsvEiRNdKNFFC/FDd8fp6emu0nBwcVMIUdeaKpVq4GLQQqIAorttrdfSoEGDaB96QgnOzauvvuq6OxUE1dKogKEZRiqLrqnuCv96TGUL1O2ioEK3Z3Qx5gM4CLo4KYBoJoSm7OmiFNAbnKbc6jHVh1BTME288XNR04wkzZbQWkqanqnuFa3JopkSRal2i4KKZrjoHKNk6XWl8RvqNtF5UmuGBpKqXo5aqnQeNHVddXZ0zvSa0/iOjz/+2O2rlhEWbYw+wgdwkDSrQUWLNMZD4wOKBpC3337bDW6jjkf80YVNFyzNltC4AQ0gVmExrdlStmxZt4+K/2lKp7rWCB5+WqQ0mFstGerqbNy4savRodYn1ezQdHatz6IxOQr8ovOmsR9MbY8tjPkADpLuwNTkroJhGvOhheICulgRPOJDMK4joDtmBUo116s7RbMiigYPje1RM77urgkefqhQm6Y8a+C2pjnro86HWju0KrRebxr0G1SYVf0VdX0GY3QQOwgfQARocOKTTz7pWkFUP0DLqiM+S3FrbIdqdag1Q7VbWrdu7YrDqXx6UFL93nvvdTNctL/KdcMfzRxTF6dmmSnsq0jYtdde687Z0UcfbU888UQ4IOpzBRR1nSG20O0CRJDGCag5WEWMatWqxd82jrz44ouu9L3Gd6hGhNb40OwJXdS0zLpmKmlQoyrXaqCpgofGDyB646000Ful7TXuSt0rGuSt8CgqLKbQqPL2xx13HKcpxhA+gAhjHZ74owuVWjU0RVO1H0QBUl0tqvWhOh9a1FELAKpl6x//+AcXtBgJIDpfCiA9evRwrVOPPfaYqz57xBFH2G233UarR4wifABIeCoKp/ChO2W1fAQmT57sLm4aOKxKpxrzoWm1LPIYO9T9cvXVV7swqHV1NPMomOHCeYpdjPkAkLCDS3WBEnWzaFOwEA1gFBUU02BTNemLxhJwQYu9MSCa2aKKtCocFgz4TklJifah4Q8QPgAkHN0ZaxqtZrOIxm507NjR1Yb4+eefw7NXVJBKS69rJVTE9oDv3NxcV3MlLS3NPUZNndhGtwuAhJzZolkSumipkJhmrmhapuq1qAtGd9Jq5dAYD40hUFDRAmWIbXS1xA/CB4CECh1a16NSpUruMd0tv/TSS27qrKbUfvfddzZ8+HA3zVaDFtXqoRouCikAIofwASBhzJo1y7V0PProo24AqQKGilJplVO1cASWLVvmnlPFzOrVq0f1mIHSiIXlACQMVaFdv369TZgwwVXE1CJk+lx1PE4//XQ3XVPUxcKYAaDk0PIBoFTPaNl12mVWVpZt2LDBVcVUiXQFEA1UXLdunQsirEwLlDxmuwAoNbTMfUChQ5u6WoYNG+bGcYjGd2hVVK1E/MEHH7hxHipOpcGl2mfXNV4ARB7hA0CpobLneXl5bvEx0WBSTaHVyrNabl0VSxU8tNjf3Llz3efPP/+83X777Xb22WfbaaedRncL4AHdLgBKDRUJ0/osK1eudDU8HnroIRdEtPjbG2+84YpQacCpakGomqm6WTTgVC0mql5avnz5aP8TgIRA+ABQqmg8R+fOnd1CcH379i02i2XFihVu/RZVv5wyZYrVr1/fdbVoHRAA/tDtAqBUUW0ObZo+q/EckyZNCj+nwaTjxo1zrR+nnnqqrV69OlzNFIA/tHwAKHUKCwtdBdOrrrrKFRXr3bu3XXLJJeHn1cWiCqYKH7Vq1YrqsQKJiPABoNRSy8f111/vptr26tXLrd2iwaVr1661J598MtqHByQswgeAUu3777+3G2+80VUtVReLptW+/fbbbhAqgOggfAAo9X788UebPn26rVq1yi644AJr2LBhtA8JSGiEDwAA4BWzXQAAgFeEDwAA4BXhAwAAeEX4AAAAXhE+AACAV4QPAADgFeEDAAB4RfgAAABeET4AAIBXhA8AcUuLxXXr1i3ahwFgPxE+AACAV4QPAHtUWFjolqOvUaOGVahQwU4++WT79NNP3XOzZ8+2pKQkmzlzprVs2dIqVapkJ510klsxtqhXXnnFjj/+ePf9RxxxhA0fPtx+//338PMbNmywq6++2mrWrOn2adq0qb3++uvuuWHDhtlxxx1X7OeNHj3a6tWrF35+4sSJ7nfoWLTpuADEvnLRPgAAsemWW26xF1980V3g69atayNHjrSsrCxbvnx5eJ/bb7/dHnjgATv88MOtX79+duWVV9qHH37onnv//fft8ssvt4cffthOOeUUW7FihfXt29c9d9ddd9nOnTutS5cutnHjRnvmmWesQYMGtmTJEitbtuw+Hd9NN91kX3/9tRUUFNj48ePdY2lpaSXytwAQWYQPALvZvHmzjR071iZMmOACgjzxxBP2zjvv2Lhx4+yEE05wj91777126qmnus9vvfVWO+uss2zr1q2uFUOtHHqsZ8+e7nm1fNxzzz0u1Ch8zJgxwz755BMXII4++ujwPvuqcuXKVrFiRddCk56ezlkE4gjhA8Bu1Eqxfft2a9u2bfix8uXL24knnujCQhA+mjVrFn6+Vq1a7uO6dessMzPTvvjiC9cKooAS2LFjhwsnW7ZssYULF1qdOnXCwQNA4iB8ADhgCiQBjbkQdafIpk2bXOtH9+7dd/s+tYyo1eKPlClTxkKhULHHFIgAxD/CB4DdaPxFcnKya7nQeI/gwq8BpwMHDtynv5gGmmoA6pFHHrnH59VqsmrVKvv222/32PqhcSRr1qxxASQINmotKUrHqNYUAPGF8AFgN4cccohdc801dvPNN7tBnOpG0YBTdZf07t3bdan8mTvvvNPOPvts973nnXeea8nQ9y1evNhGjBjhxoq0a9fOevToYQ8++KALKd98840LGp07d7b27dvbzz//7H6vvn/atGn21ltvWdWqVcO/QzNfpk+f7kJO9erVLTU1tVhrDIDYxFRbAHt03333uWBw2WWXuVYMzXLRhf7QQw/dp7+YZsZo2uzbb7/txoi0bt3aRo0aFW5JEc2m0XMXXXSRNWnSxA1GDVoyGjdubGPGjLHc3Fxr3ry5G5yqGS5F9enTxxo2bOim+6qlJJhpAyC2JYV27VQFAAAoQbR8AAAArwgfAADAK8IHAADwivABAAC8InwAAACvCB8AAMArwgcAAPCK8AEAALwifAAAAK8IHwAAwCvCBwAA8IrwAQAAzKf/B/T/delTqddfAAAAAElFTkSuQmCC", "text/plain": [ "
\n",
"Cutflow selection stats: (weighted)\n",
"\n"
],
"text/plain": [
"\n",
"\u001b[38;2;230;159;0mCutflow selection stats:\u001b[0m \u001b[1;4;38;2;247;72;165m(\u001b[0m\u001b[1;4;38;2;247;72;165mweighted\u001b[0m\u001b[1;4;38;2;247;72;165m)\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Cut noMuon :pass = 315450.423828125 cumulative pass = 315450.423828125 all = 578762.435546875 \n", "-- eff = 54.5 % -- cumulative eff = 54.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mnoMuon \u001b[0m:pass = \u001b[1;36m315450.423828125\u001b[0m cumulative pass = \u001b[1;36m315450.423828125\u001b[0m all = \u001b[1;36m578762.435546875\u001b[0m \n", "-- eff = \u001b[1;36m54.5\u001b[0m % -- cumulative eff = \u001b[1;36m54.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut twoElectron :pass = 25807.2109375 cumulative pass = 25807.2109375 all = 578762.435546875 \n", "-- eff = 4.5 % -- cumulative eff = 4.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mtwoElectron \u001b[0m:pass = \u001b[1;36m25807.2109375\u001b[0m cumulative pass = \u001b[1;36m25807.2109375\u001b[0m all = \u001b[1;36m578762.435546875\u001b[0m \n", "-- eff = \u001b[1;36m4.5\u001b[0m % -- cumulative eff = \u001b[1;36m4.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut leadPt20 :pass = 237244.12109375 cumulative pass = 26331.201171875 all = 578762.435546875 \n", "-- eff = 41.0 % -- cumulative eff = 4.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mleadPt20 \u001b[0m:pass = \u001b[1;36m237244.12109375\u001b[0m cumulative pass = \u001b[1;36m26331.201171875\u001b[0m all = \u001b[1;36m578762.435546875\u001b[0m \n", "-- eff = \u001b[1;36m41.0\u001b[0m % -- cumulative eff = \u001b[1;36m4.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "wgtcutflow.print()" ] }, { "cell_type": "code", "execution_count": 28, "id": "552df1d2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n",
"Cutflow selection stats:\n",
"\n"
],
"text/plain": [
"\n",
"\u001b[38;2;230;159;0mCutflow selection stats:\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Cut noMuon :pass = 28 cumulative pass = 28 all = 40 \n", "-- eff = 70.0 % -- cumulative eff = 70.0 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mnoMuon \u001b[0m:pass = \u001b[1;36m28\u001b[0m cumulative pass = \u001b[1;36m28\u001b[0m all = \u001b[1;36m40\u001b[0m \n", "-- eff = \u001b[1;36m70.0\u001b[0m % -- cumulative eff = \u001b[1;36m70.0\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut twoElectron :pass = 5 cumulative pass = 5 all = 40 \n", "-- eff = 12.5 % -- cumulative eff = 12.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mtwoElectron \u001b[0m:pass = \u001b[1;36m5\u001b[0m cumulative pass = \u001b[1;36m5\u001b[0m all = \u001b[1;36m40\u001b[0m \n", "-- eff = \u001b[1;36m12.5\u001b[0m % -- cumulative eff = \u001b[1;36m12.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut leadPt20 :pass = 17 cumulative pass = 3 all = 40 \n", "-- eff = 42.5 % -- cumulative eff = 7.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mleadPt20 \u001b[0m:pass = \u001b[1;36m17\u001b[0m cumulative pass = \u001b[1;36m3\u001b[0m all = \u001b[1;36m40\u001b[0m \n", "-- eff = \u001b[1;36m42.5\u001b[0m % -- cumulative eff = \u001b[1;36m7.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "wgtcutflow.print(weighted=False)" ] }, { "cell_type": "code", "execution_count": 29, "id": "2b4b06b3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n",
"Cutflow selection stats: (weighted) (scaled by 0.0008639129728627657)\n",
"\n"
],
"text/plain": [
"\n",
"\u001b[38;2;230;159;0mCutflow selection stats:\u001b[0m \u001b[1;4;38;2;247;72;165m(\u001b[0m\u001b[1;4;38;2;247;72;165mweighted\u001b[0m\u001b[1;4;38;2;247;72;165m)\u001b[0m \u001b[1m(\u001b[0m\u001b[1;4;38;2;53;155;115mscaled\u001b[0m by \u001b[1;36m0.0008639129728627657\u001b[0m\u001b[1m)\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Cut noMuon :pass = 272.5217134401749 cumulative pass = 272.5217134401749 all = 500.0003762745956 \n", "-- eff = 54.5 % -- cumulative eff = 54.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mnoMuon \u001b[0m:pass = \u001b[1;36m272.5217134401749\u001b[0m cumulative pass = \u001b[1;36m272.5217134401749\u001b[0m all = \u001b[1;36m500.0003762745956\u001b[0m \n", "-- eff = \u001b[1;36m54.5\u001b[0m % -- cumulative eff = \u001b[1;36m54.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut twoElectron :pass = 22.295184322312107 cumulative pass = 22.295184322312107 all = 500.0003762745956 \n", "-- eff = 4.5 % -- cumulative eff = 4.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mtwoElectron \u001b[0m:pass = \u001b[1;36m22.295184322312107\u001b[0m cumulative pass = \u001b[1;36m22.295184322312107\u001b[0m all = \u001b[1;36m500.0003762745956\u001b[0m \n", "-- eff = \u001b[1;36m4.5\u001b[0m % -- cumulative eff = \u001b[1;36m4.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut leadPt20 :pass = 204.95827394831554 cumulative pass = 22.74786628344207 all = 500.0003762745956 \n", "-- eff = 41.0 % -- cumulative eff = 4.5 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mleadPt20 \u001b[0m:pass = \u001b[1;36m204.95827394831554\u001b[0m cumulative pass = \u001b[1;36m22.74786628344207\u001b[0m all = \u001b[1;36m500.0003762745956\u001b[0m \n", "-- eff = \u001b[1;36m41.0\u001b[0m % -- cumulative eff = \u001b[1;36m4.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "wgtcutflow.print(weighted=True, scale=500 / 578762)" ] }, { "cell_type": "markdown", "id": "e89c75df", "metadata": {}, "source": [ "The histograms are now by default weighted, but like the print function this can be explicitly toggled between using `weighted=True|False.`There's no option to scale the histograms by a scalar, this is left to a user to do so afterwards." ] }, { "cell_type": "code", "execution_count": 30, "id": "cc9c15b1", "metadata": {}, "outputs": [ { "data": { "image/png": "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WIsgBAAArEUQAgAA1iIIAQAAaxGEAACAtQhCAADAWgQhAABgLYIQAACwFkEIAABYiyAEAACsRRACAADWIggBAABrEYQAAIC1CEIAAMBaBCEAAGAtghAAALAWQQgAAFiLIAQAAKxFEAIAANYiCAEAAGsRhAAAgLUIQgAAwFoEIQAAYC2CEAAAsBZBCAAAWIsgBAAArEUQAgAA1iIIAQAAaxGEAACAtQhCAADAWgQhAABgLYIQAACwFkEIAABYiyAEAACsleMg9MUXX8htt90mlSpVkpCQEPn444/99juOIyNGjJCKFStK8eLFpU2bNrJr1y6/Mr/++qt06tRJoqKipHTp0tK9e3f5/fff/cps2rRJrrnmGilWrJhUqVJFxowZ84djmTt3rtSpU8eUadCggSxcuDDHxwIAAOyV4yB0/PhxadSokUyaNOms+zWwvPLKK/Laa6/JmjVrpESJEhIbGyunTp3yymgI2rp1qyxbtkzmz59vwlWvXr28/UePHpW2bdtKtWrVZP369TJ27FgZNWqUvPHGG16Z1atXy7333mtC1HfffSd33HGHuW3ZsiVHxwIAACzm/A366x999JG3nZWV5URHRztjx471HktJSXEiIiKc999/32xv27bN/N66deu8MosWLXJCQkKcffv2me3Jkyc7ZcqUcdLS0rwyQ4cOdWrXru1t33333U779u39jqd58+ZO7969s30s55KammqOVe9z0/G0dKfa0Pnmpj8DyF+8B4Mf5zD4Hc/Da2FOrt+52kdoz549kpSUZJqgXKVKlZLmzZtLQkKC2dZ7bQ6LiYnxymj50NBQU2vjlrn22mslPDzcK6M1OTt37pTffvvNK+P7Om4Z93WycyxnSktLM7VRvjcAAFB45WoQ0uChKlSo4Pe4brv79L58+fJ++4sWLSply5b1K3O25/B9jT8r47v/XMdypvj4eBOW3Jv2TQIAAIUXo8Z8DBs2TFJTU71bYmJi4M4MAAAIriAUHR1t7g8ePOj3uG67+/Q+OTnZb39GRoYZSeZb5mzP4fsaf1bGd/+5juVMERERZiSb7w0AABReuRqEatSoYULG8uXLvce0n432/WnZsqXZ1vuUlBQzGsy1YsUKycrKMv133DI6kiw9Pd0royPMateuLWXKlPHK+L6OW8Z9newcCwAAsFuOg5DO97Nx40Zzczsl68979+41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", "text/plain": [ "
\n",
"Cutflow selection stats:\n",
"\n"
],
"text/plain": [
"\n",
"\u001b[38;2;230;159;0mCutflow selection stats:\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Cut noMuon :pass = 12 cumulative pass = 12 all = 18 \n", "-- eff = 66.7 % -- cumulative eff = 66.7 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mnoMuon \u001b[0m:pass = \u001b[1;36m12\u001b[0m cumulative pass = \u001b[1;36m12\u001b[0m all = \u001b[1;36m18\u001b[0m \n", "-- eff = \u001b[1;36m66.7\u001b[0m % -- cumulative eff = \u001b[1;36m66.7\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut twoElectron :pass = 2 cumulative pass = 2 all = 18 \n", "-- eff = 11.1 % -- cumulative eff = 11.1 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mtwoElectron \u001b[0m:pass = \u001b[1;36m2\u001b[0m cumulative pass = \u001b[1;36m2\u001b[0m all = \u001b[1;36m18\u001b[0m \n", "-- eff = \u001b[1;36m11.1\u001b[0m % -- cumulative eff = \u001b[1;36m11.1\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut leadPt20 :pass = 3 cumulative pass = 0 all = 18 \n", "-- eff = 16.7 % -- cumulative eff = 0.0 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mleadPt20 \u001b[0m:pass = \u001b[1;36m3\u001b[0m cumulative pass = \u001b[1;36m0\u001b[0m all = \u001b[1;36m18\u001b[0m \n", "-- eff = \u001b[1;36m16.7\u001b[0m % -- cumulative eff = \u001b[1;36m0.0\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "ELECTRONS\n" ] }, { "data": { "text/html": [ "
\n",
"Cutflow selection stats:\n",
"\n"
],
"text/plain": [
"\n",
"\u001b[38;2;230;159;0mCutflow selection stats:\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Cut noMuon :pass = 13 cumulative pass = 13 all = 13 \n", "-- eff = 100.0 % -- cumulative eff = 100.0 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mnoMuon \u001b[0m:pass = \u001b[1;36m13\u001b[0m cumulative pass = \u001b[1;36m13\u001b[0m all = \u001b[1;36m13\u001b[0m \n", "-- eff = \u001b[1;36m100.0\u001b[0m % -- cumulative eff = \u001b[1;36m100.0\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut twoElectron :pass = 3 cumulative pass = 3 all = 13 \n", "-- eff = 23.1 % -- cumulative eff = 23.1 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mtwoElectron \u001b[0m:pass = \u001b[1;36m3\u001b[0m cumulative pass = \u001b[1;36m3\u001b[0m all = \u001b[1;36m13\u001b[0m \n", "-- eff = \u001b[1;36m23.1\u001b[0m % -- cumulative eff = \u001b[1;36m23.1\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Cut leadPt20 :pass = 9 cumulative pass = 3 all = 13 \n", "-- eff = 69.2 % -- cumulative eff = 23.1 %\n", "\n" ], "text/plain": [ "Cut \u001b[38;2;213;94;0mleadPt20 \u001b[0m:pass = \u001b[1;36m9\u001b[0m cumulative pass = \u001b[1;36m3\u001b[0m all = \u001b[1;36m13\u001b[0m \n", "-- eff = \u001b[1;36m69.2\u001b[0m % -- cumulative eff = \u001b[1;36m23.1\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"TAUS\")\n", "taucutflow.print()\n", "print(\"ELECTRONS\")\n", "elecutflow.print()" ] }, { "cell_type": "markdown", "id": "851963d2", "metadata": {}, "source": [ "## Categorical Axis fill for `yieldhist` and `plot_vars`\n", "In order to support subdividing a sample into subsamples or different channels in an efficient manner, a complex input `categorical` is available. This is expected to be a dictionary with several key-value pairs: `axis`: a `hist.axis` type including the axis features desired; `values`: an event-by-event array of fill values that should be passed into the histogram fill, and `labels`: the human-readable bin labels matching the axis passed in." ] }, { "cell_type": "code", "execution_count": 36, "id": "e9072a2d", "metadata": {}, "outputs": [ { "data": { "image/png": "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E4J++uknp0mTJk6tWrVMbXpcXJxXZvny5c6dd95ptk+YMMHcp5/Vp556ygSk1NRUDtP/EIRwXn388cfONddc4/1KVL///rvz5ptvmgCk99evX9/p3r272TZkyBBTM/Too496NUMo2NyT3bx585yOHTs6zZo1MydKDcDqwIEDzk033WTCkDaj+D4GweWTTz5xihUr5tx///1Ou3btnIYNG5rP94IFC7wwpDW4f/vb35z9+/cHenetorU+F198salVX7dunbNs2TKnQYMGzsMPP+yV0ZqiJ554whxDrQXSz2q5cuWctWvXBnTfCxqCEM47t9/AL7/84lW/ur8+Xn/9dad169beL0i9rcGoQoUK1BYEkc8//9wJDw83X7r6C1O/gK+++mpn4sSJZrsG3ttuu82E3C1btgR6d3EWtPZOaxO0GdulzS//+Mc/nFatWpnaCLVhwwbzGf7Pf/7D+5xPtHm5U6dOTs+ePb379MfGwIEDTQ2dL60F0mP06quvOlOnTjXfy/BX1O00DZyPYZtFixY1I8F03oo777xTbrvtNnniiSckOjrajGbQ0WI6suTiiy82j9GRJ3379pV7773XTL6Hgk2PYWpqqrzyyisyfPhwGTRokLlfJ8d8/vnnZdq0aWbotA6lHjt2rBQvXpxZpYNwGgT9LIeFhcm+ffv8Jkm87rrrTBmdP2jLli1mwj493mvXrjXlkT90tJdOVFq7dm3vPj1uenx0oksd3VekSBGJiIgww+T1GDGlwV9j+DzOie/aNRqClA6Pv/zyy+Xqq682S2i8+eabkpaWZj6oOpeMziT9j3/8Qzp06CDvvPOOXHnllYSgIKHHUCdK1DDknvj030CVKlXMnDI6V4k7TL5q1arywQcfmH8LCJ7jq/M+jR492hxLDUE6C7zvZ12nudCT8Ny5c73HEYLybx03HQqvPzCeeuopE0h9t7vHSH9UhoeHm78PHTp0gfcu+BGEcG7/gEJDZdu2baZGQP373/82YWfPnj1mfqC4uDgzmZ6GIT156no37777rtmuwWnZsmXMclrAuV+yWkug/vzzT/NFq3NCudv1C1hrAvUXqc467JbVX6UInmOsNbadO3eWypUrS506daRly5by7LPPyrfffus350zZsmXlsssuC+Ae21dLt3//fi906vfmr7/+am7rZ893LT/3WOp9jz/+uKmV1/CE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", "text/plain": [ "
[{Electron: [], PuppiMET: {phi: 1.64, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: -0.0145, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" {Electron: [Electron, ...], PuppiMET: {...}, ...},\n",
" {Electron: [Electron, ...], PuppiMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: 0.538, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: -0.0232, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" {Electron: [{deltaEtaSC: 0.00415, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" {Electron: [], PuppiMET: {phi: 0.105, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: -0.513, ...}, FsrPhoton: [], ChsMET: ..., ...},\n",
" {Electron: [{deltaEtaSC: 0.00813, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" ...,\n",
" {Electron: [{deltaEtaSC: -0.00836, ...}], PuppiMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: 0.612, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: -0.00405, ...}], PuppiMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: 2.83, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: 0.053, ...}], PuppiMET: {...}, FsrPhoton: [], ...},\n",
" {Electron: [], PuppiMET: {phi: 1.44, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [{deltaEtaSC: -0.00986, ...}], PuppiMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: -2.92, ...}, FsrPhoton: [], ChsMET: {...}, ...},\n",
" {Electron: [], PuppiMET: {phi: -0.415, ...}, FsrPhoton: [], ChsMET: ..., ...}]\n",
"--------------------------------------------------------------------------------\n",
"backend: cpu\n",
"nbytes: 243.3 kB\n",
"type: 40 * event"
],
"text/plain": [
"\n",
"N-1 selection stats: (weighted)\n",
"\n"
],
"text/plain": [
"\n",
"\u001b[38;2;230;159;0mN-\u001b[0m\u001b[1;38;2;230;159;0m1\u001b[0m\u001b[38;2;230;159;0m selection stats:\u001b[0m \u001b[1;4;38;2;247;72;165m(\u001b[0m\u001b[1;4;38;2;247;72;165mweighted\u001b[0m\u001b[1;4;38;2;247;72;165m)\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"Ignoring twoElectron pass = 105588.109375 all = 578762.4375 -- eff = 18.2 %\n", "\n" ], "text/plain": [ "Ignoring \u001b[38;2;213;94;0mtwoElectron \u001b[0mpass = \u001b[1;36m105588.109375\u001b[0m all = \u001b[1;36m578762.4375\u001b[0m -- eff = \u001b[1;36m18.2\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Ignoring noMuon pass = 26331.201171875 all = 578762.4375 -- eff = 4.5 %\n", "\n" ], "text/plain": [ "Ignoring \u001b[38;2;213;94;0mnoMuon \u001b[0mpass = \u001b[1;36m26331.201171875\u001b[0m all = \u001b[1;36m578762.4375\u001b[0m -- eff = \u001b[1;36m4.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Ignoring leadPt20 pass = 25807.212890625 all = 578762.4375 -- eff = 4.5 %\n", "\n" ], "text/plain": [ "Ignoring \u001b[38;2;213;94;0mleadPt20 \u001b[0mpass = \u001b[1;36m25807.212890625\u001b[0m all = \u001b[1;36m578762.4375\u001b[0m -- eff = \u001b[1;36m4.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
All cuts pass = 26331.201171875 all = 578762.4375 -- eff = 4.5 %\n", "\n" ], "text/plain": [ "\u001b[38;2;230;159;0mAll cuts\u001b[0m pass = \u001b[1;36m26331.201171875\u001b[0m all = \u001b[1;36m578762.4375\u001b[0m -- eff = \u001b[1;36m4.5\u001b[0m %\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nminusone.print(weighted=True)" ] }, { "cell_type": "markdown", "id": "e1146ee8-5fe8-4e05-8ebe-658014f613a3", "metadata": {}, "source": [ "And now if we call `result()` again, the `nev` list is materialized." ] }, { "cell_type": "code", "execution_count": 47, "id": "700e7669-0459-4e3d-b020-805562106cab", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "[np.int64(40), np.int64(10), np.int64(3), np.int64(5), np.int64(3)]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nminusone.result().nev" ] }, { "cell_type": "markdown", "id": "b77aa859-7ae1-4c54-9fc4-2ab516e3a483", "metadata": { "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "Again the histogram of your total event yields works. This time it is returns a `hist.dask.Hist` object." ] }, { "cell_type": "code", "execution_count": 48, "id": "a2c4fb20-b241-4eeb-8312-ee5a645f30b6", "metadata": { "slideshow": { "slide_type": "-" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "\n", "