{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Intro to coffea.hist" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A histogram in Coffea is a `N-D` collection of different categories, along with bin(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's start by importing some necessary libraries" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "from coffea import hist\n", "import matplotlib.pyplot as plt #plot histograms\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simple example from the Coffea manual" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "h = hist.Hist(\"Observed bird count\",\n", " hist.Cat(\"species\", \"Bird species\"),\n", " hist.Bin(\"x\", \"x coordinate [m]\", 20, -5, 5),\n", " hist.Bin(\"y\", \"y coordinate [m]\", 20, -5, 5),\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we'ss use `fill()` to add 10 `ducks`, with random `x-y` values using `numpy.random`, each with a weight of 3" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "h.fill(species='ducks', x=np.random.normal(size=10), y=np.random.normal(size=10), weight=np.ones(10) * 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now I'll add another species" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "h.fill(species='phoenix', x=np.random.normal(size=1), y=np.random.normal(size=1), weight=np.ones(1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create a plot to draw everthing in using matplotlib and the `plot2d()` method in `coffea.hist`" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.integrate('species')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hist.plot2d(h.integrate('species'), xaxis='x')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can play with the axes to learn some more
\n", "We can view the axes with `h.axes()`" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(,\n", " ,\n", " )" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.axes()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can remove the `x`-axis by integrating it out with `integrate()`" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.integrate('x').integrate('species')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now we can make a `1D` plot, in this case of `species` and `y coordinate`" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEGCAYAAABvtY4XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcYElEQVR4nO3de3hV9ZX/8feCoDEqWC7PjBQ12AEUJUAEq+INUGCAIjpeUBCBsVRrRdoBxJ9WGRz9MYxVf8URpR0LWi8oqFitiqh4ZSgEMIKANyKi1OHyMwISy2XNH2cnHiCXneTscw47n9fznCdnX78r+9GVL9/93WubuyMiIvHTKNMBiIhINJTgRURiSgleRCSmlOBFRGJKCV5EJKZyMh1AspYtW3p+fn6mwxAROWgUFRVtdvdWlW3LqgSfn5/P0qVLMx2GiMhBw8w+q2qbhmhERGJKCV5EJKaU4EVEYiqrxuBFpOHZtWsXGzZsoKysLNOhZLXc3FzatGlDkyZNQh+jBC8iGbVhwwaOPPJI8vPzMbNMh5OV3J0tW7awYcMG2rZtG/o4DdGISEaVlZXRokULJfdqmBktWrSo9b9ylOBFJOOU3GtWl2ukBC8iElNK8CKS1Ro3bkyXLl3o3LkzhYWFvPvuuwB8+eWXXHzxxaHOce6556b9Icpbb72VBQsWpLXN/ekmq2S3Sc1ScI7S+p9DMuawww5jxYoVALz88svcdNNNvPHGG7Ru3Zo5c+YcsP/u3bvJycl8aps8eXKmQ1APXkQOHt988w0/+MEPACgpKeHkk08GYObMmVxyySX85Cc/oU+fPuzcuZMhQ4ZQUFDAZZddxs6dOys938SJE+nYsSMFBQWMGzcOgBEjRnDNNddw1lln0b59e55//nkA9uzZw/jx4+nevTsFBQU8+OCDFeeZOnUqnTp1onPnzkycOLHiPOV/gIqKijjnnHM45ZRT6Nu3Lxs3bgTgt7/9bUX7Q4YMSfn1yvyfORGRauzcuZMuXbpQVlbGxo0bee211yrdb9GiRRQXF9O8eXPuvvtu8vLyKC4upri4mMLCwgP237p1K8888wxr1qzBzPj6668rtpWUlPDGG2/wySef0LNnTz7++GMefvhhmjVrxpIlS/juu+/o0aMHffr0Yc2aNTz77LMsXryYvLw8tm7duk87u3bt4vrrr2fevHm0atWK2bNnc/PNN/PQQw8xZcoU1q1bx6GHHrpP+6miBC8iWS15iGbRokUMHz6clStXHrDf+eefT/PmzQF48803GTNmDAAFBQUUFBQcsH/Tpk3Jzc3l6quvZsCAAQwcOLBi26WXXkqjRo1o164dxx9/PGvWrGH+/PkUFxdX9MpLS0v56KOPWLBgASNHjiQvLw+gIoZya9euZeXKlZx//vlA4l8CRx99dEVsQ4cOZfDgwQwePLgeV6lySvAictA4/fTT2bx5M5s2bTpg2+GHH77Pck3TCnNycvjLX/7Cq6++yhNPPMF9991X8a+D/Y81M9ydadOm0bdv3322vfTSS9W25e6cdNJJLFq06IBtL7zwAm+++SbPPfcct99+O6tWrUrp/QONwYvIQWPNmjXs2bOHFi1aVLvf2WefzaOPPgrAypUrKS4uPmCf7du3U1paSv/+/bn33nsr/pUA8NRTT7F3714++eQTPv30Uzp06EDfvn2ZPn06u3btAuDDDz9kx44d9OnTh4ceeohvv/0W4IAhmg4dOrBp06aKBL9r1y5WrVrF3r17+fzzz+nZsydTp07l66+/Zvv27XW+NpVRD15Eslr5GDwkesOzZs2icePG1R5z7bXXMnLkSAoKCujSpQunnnrqAfts27aNCy64gLKyMtyde+65p2Jbhw4dOOecc/jqq6944IEHKoZySkpKKCwsxN1p1aoVzz77LP369WPFihV069aNQw45hP79+3PnnXdWnOuQQw5hzpw5jBkzhtLSUnbv3s3YsWNp3749w4YNo7S0FHfnl7/8JUcddVRKrlk5c/eUnrA+unXr5nrhh+xD0yRjb/Xq1Zx44omZDqPCiBEjGDhwYOg59ulU2bUysyJ371bZ/hqiERGJKQ3RiIgkmTlzZqZDSBn14EVEYkoJXkQkppTgRURiSgleRCSmdJNVRLJK/sQXUnq+kikD6hZHfj5Lly6lZcuWKY0nWf/+/XnsscdSPv+9nBK8iEiG/PnPf470/BqiEZEGraSkhBNOOIGrrrqKgoICLr744oqyA9OmTaOwsJBOnTqxZs0aIFGKYPDgwRQUFHDaaadVlEHYsWMHo0aNonv37nTt2pV58+YBiWmXF110Ef369aNdu3ZMmDChou38/Hw2b97MkiVLKCgooKysjB07dnDSSSdVWlCttpTgRaTBW7t2LaNHj6a4uJimTZty//33A9CyZUuWLVvGtddey1133QXAbbfdRteuXSkuLubOO+9k+PDhANxxxx306tWLJUuW8PrrrzN+/Hh27NgBwIoVK5g9ezbvv/8+s2fP5vPPP9+n/e7duzNo0CBuueUWJkyYwLBhwypq3deHEryINHjHHHMMPXr0AGDYsGG8/fbbAFx00UUAnHLKKZSUlADw9ttvc+WVVwLQq1cvtmzZQmlpKfPnz2fKlCl06dKFc889l7KyMtavXw9A7969adasGbm5uXTs2JHPPvvsgBhuvfVWXnnlFZYuXbpPL78+NAYvIg1eZeWBAQ499FAg8V7Y3bt3A4mCZ5Ud7+7MnTuXDh067LNt8eLFFefZ/1zJtm7dyvbt29m1axdlZWUHlD+ui0h78Gb2SzNbZWYrzexxM8uNsj0RkbpYv359RTnfxx9/nDPPPLPKfZNLES9cuJCWLVvStGlT+vbty7Rp0yr+ACxfvrxWMYwePZrbb7+doUOHcuONN9bxN9lXZD14M/shMAbo6O47zexJYAgwM6o2ReTgV9dpjfVx4oknMmvWLH72s5/Rrl07rr32WqZNm1bpvpMmTaooRZyXl8esWbMA+PWvf83YsWMpKCjA3cnPz694n2tNHn74YXJycrjiiivYs2cPZ5xxBq+99hq9evWq1+8VWbngIMH/N9AZ+AZ4Fvitu8+v6hiVC5YDqFxw7GW6XHBJSQkDBw5MyayVqGVNuWB3/wK4C1gPbARKK0vuZjbazJaa2dLKXsMlIiJ1E1mCN7MfABcAbYHWwOFmNmz//dx9hrt3c/durVq1iiocEZFK5efnHxS997qI8ibrecA6d9/k7ruAp4EzImxPRESSRJng1wOnmVmeJeYc9QZWR9ieiIgkiXIMfjEwB1gGvB+0NSOq9kREZF+RPujk7rcBt0XZhoiIVE5PsopIdknF1Nh9zle7abKTJk3iiCOOYNy4cbU6Lh3lhWtLtWhERGJKCV5EGrw77riDDh06cN5557F27VoAzj33XMofvNy8eTP5+fkA7Nmzh3HjxtGpUycKCgoOeOJ1586d9OvXj9/97nfs2LGDAQMG0LlzZ04++WRmz56d1t9LQzQi0qAVFRXxxBNPsHz5cnbv3k1hYSGnnHJKlfvPmDGDdevWsXz5cnJycti6dWvFtu3btzNkyBCGDx/O8OHDmTt3Lq1bt+aFFxJvqSotTe9T1erBi0iD9tZbb3HhhReSl5dH06ZNGTRoULX7L1iwgGuuuYacnET/uHnz5hXbLrjgAkaOHFlRI75Tp04sWLCAG2+8kbfeeotmzVJ8f6EGSvAi0uDtXy4YICcnh7179wJQVlZWsd7dK90foEePHrz44osVFSXbt29PUVERnTp14qabbmLy5MkRRF81JXgRadDOPvtsnnnmGXbu3Mm2bdv405/+BCRmxRQVFQEwZ86civ379OnDAw88UFHTPXmIZvLkybRo0YKf//znAHz55Zfk5eUxbNgwxo0bx7Jly9L1awEagxeRbJPm6p+FhYVcdtlldOnSheOOO46zzjoLgHHjxnHppZfyyCOP7FO29+qrr+bDDz+koKCAJk2a8NOf/pRf/OIXFdvvvfdeRo0axYQJE+jduzfjx4+nUaNGNGnShOnTp6f1d4usXHBdqFywHEDlgmMv0+WCDyZZUy5YREQySwleRCSmlOBFJOOyaag4W9XlGinBi0hG5ebmsmXLFiX5arg7W7ZsITc3t1bHaRaNiGRUmzZt2LBhA3plZ/Vyc3Np06ZNrY5RgheRjGrSpAlt27bNdBixpCEaEZGYUoIXEYkpJXgRkZhSghcRiSkleBGRmKoxwZvZDWHWiYhIdgnTg7+qknUjUhyHiIikWJXz4M3scuAKoK2ZPZe06UhgS9SBiYhI/VT3oNO7wEagJfCbpPXbgOIogxIRkfqrMsG7+2fAZ8Dp6QtHRERSJcxN1ovM7CMzKzWzb8xsm5l9k47gRESk7sLUopkK/MTdV0cdjIiIpE6YWTRfKbmLiBx8wvTgl5rZbOBZ4Lvyle7+dFRBiYhI/YVJ8E2Bb4E+SescUIIXEcliNSZ4dx+ZjkBERCS1akzwZvYHEj32fbj7qEgiEhGRlAgzRPN80vdc4ELgy2jCERGRVAkzRDM3ednMHgcWRBaRiIikRF3KBbcDjk11ICIiklphxuC3kRiDt+DnX4EbI45LRETqKcwQzZHpCERERFIrzE1WzGwQcHawuNDdn69u/6TjjgJ+D5xMovc/yt0X1SFOERGppTBDNFOA7sCjwaobzKyHu98U4vz/D3jJ3S82s0OAvLqHKiIitRGmB98f6OLuewHMbBawHKg2wZtZUxK9/hEA7v434G/1CVZERMILNUQDHAVsDb43C3nM8cAm4A9m1hkoAm5w9x3JO5nZaGA0wLHHanKOxNiksP/rVHV8aWrikAYjzDTJ/wssN7OZQe+9CLgzxHE5QCEw3d27AjuAifvv5O4z3L2bu3dr1apVLUIXEZHqhJlF87iZLSQxDm/Aje7+1xDn3gBscPfFwfIcKknwIiISjTBvdLoQ+Nbdn3P3eUCZmQ2u6bjgj8DnZtYhWNUb+KA+wYqISHhhhmhuc/eKwT93/xq4LeT5rwceNbNioAvhhnZERCQFwtxkreyPQKibs+6+AuhWm4BERCQ1wvTgl5rZ3Wb2IzM73szuIXGjVUREsliYBH89ifnrs4EngZ3AdVEGJSIi9RdmFk2l0xtFRCS71aVcsIiIHASU4EVEYkoJXkQkpqocgzezaVTysu1y7j4mkohERCQlquvBLyUxHTKXRE2Zj4JPF2BP5JGJiEi9VNmDd/dZAGY2Aujp7ruC5QeA+WmJTkRE6izMGHxrIPm1fUcE60REJIuFKTkwhUS54NeD5XOASZFFJCIiKVFtgjezRsBa4MfBB2BiyHLBIiKSQdUmeHffa2a/cffTgXlpiklERFIgzBj8fDP7JzOzyKMREZGUCTMG/yvgcGC3mZWReKuTu3vTSCMTEZF6CVNs7Mia9hERkexT3ZOsJ7j7GjMrrGy7uy+LLiwREamv6nrwvwJGA7+pZJsDvSKJSEREUqK6J1lHBz97pi8cERFJlRrH4M0sF/g5cCaJnvtbwAPuXhZxbCIiUg9hZtE8DGwDpgXLlwOPAJdEFZSIiNRfmATfwd07Jy2/bmbvRRWQiIikRpgHnZab2WnlC2b2Y+Cd6EISEZFUqG6a5PskxtybAMPNbH2wfBzwQXrCExGRuqpuiGZg2qIQEZGUq26a5GfpDERERFJLL90WEYkpJXgRkZhSghcRianqZtFsIzFrplIqFywikt2qu8l6JICZTQb+SuLpVQOGsu9LuEVEJAuFGaLp6+73u/s2d//G3acD/xR1YCIiUj9hEvweMxtqZo3NrJGZDQX2RB2YiIjUT5gEfwVwKfBV8LkkWCciIlkszCv7SoALog9FRERSqcYevJm1N7NXzWxlsFxgZrdEH5qIiNRHmCGa3wE3AbsA3L0YGBJlUCIiUn9hEnyeu/9lv3W7wzYQ3JxdbmbP1y40ERGpjzAJfrOZ/YjgoSczuxjYWIs2bgBW1yE2ERGphzAJ/jrgQeAEM/sCGAtcE+bkZtYGGAD8vq4BiohI3YR5Zd9n7n6emR0ONHL3bbU4/73ABKp58tXMRgOjAY499thanFoOBvkTX6jX8SW5KQpEpAEK04NfZ2YzgNOA7WFPbGYDgf9x96Lq9nP3Ge7ezd27tWrVKuzpRUSkBmESfAdgAYmhmnVmdp+ZnRniuB7AIDMrAZ4AepnZH+scqYiI1EqNCd7dd7r7k+5+EdAVaAq8EeK4m9y9jbvnk5hW+Zq7D6tvwCIiEk6oevBmdo6Z3Q8sA3JJlC4QEZEsVuNNVjNbB6wAngTGu/uO2jbi7guBhbU9TkRE6q7aBG9mjYE/uPvkNMUjIiIpUu0QjbvvAXqmKRYREUmhMPPg3zWz+4DZQMXwjLsviywqERGptzAJ/ozgZ/IwjQO9Uh+OiIikSph68BqiERE5CIWpB/93ZvZfZvZisNzRzP45+tBERKQ+wsyDnwm8DLQOlj8kUXBMRESyWJgE39LdnwT2Arj7bvTSbRGRrBcmwe8wsxZ8Xw/+NKA00qhERKTewsyi+RXwHPAjM3sHaAVcHGlUIiJSb2Fm0Swzs3NIVJU0YK2774o8MhERqZcws2guAQ5z91XAYGC2mRVGHZiIiNRPmDH4X7v7tqAGfF9gFjA92rBERKS+wiT48hkzA4Dp7j4POCS6kEREJBXCJPgvzOxBEjXg/2xmh4Y8TkREMihMor6UxINO/dz9a6A5MD7KoEREpP7CvLLvW6AE+Eczux442t3nRx2YiIjUT5g3Ot0KXAI8Haz6g5k95e7/FmlkEgsluVdkOgSY1CzTEaRGtvwek/Sc48EizINOlwNd3b0MwMymkHg3qxK8iEgWCzMGX0LiRdvlDgU+iSQaERFJmSp78GY2jUT9me+AVWb2SrB8PvB2esITEZG6qm6IZmnwswh4Jmn9wsiiERGRlKkywbv7LAAzywX+gUTv/ZPysXgREcluVY7Bm1mOmU0FNpAoT/BH4HMzm2pmTdIVoIiI1E11N1n/g8RDTW3d/RR37wr8CDgKuCsNsYmISD1Ul+AHAj91923lK9z9G+BaoH/UgYmISP1Ul+Dd3b2SlXsI3u4kIiLZq7oE/4GZDd9/pZkNA9ZEF5KIiKRCddMkrwOeNrNRJKZKOtAdOAy4MA2xiYhIPVQ3TfIL4Mdm1gs4icTr+l5091fTFZyIiNRdmHeyvga8loZYREQkhfTiDhGRmFKCFxGJKSV4EZGYUoIXEYkpJXgRkZhSghcRianIEryZHWNmr5vZajNbZWY3RNWWiIgcKMw7WetqN/Av7r7MzI4EiszsFXf/IMI2RUQkEFkP3t03uvuy4Ps2YDXww6jaExGRfaVlDN7M8oGuwOJKto02s6VmtnTTpk3pCEdEpEGIPMGb2RHAXGBsUE9+H+4+w927uXu3Vq1aRR2OiEiDEWmCD17tNxd41N2fjrItERHZV5SzaAz4L2C1u98dVTsiIlK5KHvwPYArgV5mtiL46FV/IiJpEtk0SXd/m0QNeRERyQA9ySoiElNK8CIiMaUELyISU0rwIiIxpQQvIhJTSvAiIjGlBC8iElNK8CIiMaUELyISU0rwIiIxpQQvIhJTSvAiIjGlBC8iElNK8CIiMaUELyISU0rwIiIxpQQvIhJTSvAiIjGlBC8iElNK8CIiMaUELyISU0rwIiIxpQQvIhJTSvAiIjGlBC8iElNK8CIiMaUELyISU0rwIiIxpQQvIhJTSvAiIjGlBC8iElNK8CIiMaUELyISU0rwIiIxpQQvIhJTSvAiIjGlBC8iElORJngz62dma83sYzObGGVbIiKyr8gSvJk1Bv4T+EegI3C5mXWMqj0REdlXlD34U4GP3f1Td/8b8ARwQYTtiYhIkpwIz/1D4POk5Q3Aj/ffycxGA6ODxe1mtjbCmMJoCWzOcAzZQtfie7oW5f7VdC2+lw3X4riqNkSZ4K2SdX7ACvcZwIwI46gVM1vq7t0yHUc20LX4nq7F93Qtvpft1yLKIZoNwDFJy22ALyNsT0REkkSZ4JcA7cysrZkdAgwBnouwPRERSRLZEI277zazXwAvA42Bh9x9VVTtpVDWDBdlAV2L7+lafE/X4ntZfS3M/YBhcRERiQE9ySoiElNK8CIiMaUEXw0zG2dmbmYtMx1LppjZf5jZGjMrNrNnzOyoTMeUTiq3kWBmx5jZ62a22sxWmdkNmY4p08yssZktN7PnMx1LVZTgq2BmxwDnA+szHUuGvQKc7O4FwIfATRmOJ21UbmMfu4F/cfcTgdOA6xrwtSh3A7A600FURwm+avcAE6jk4ayGxN3nu/vuYPG/STzP0FCo3EbA3Te6+7Lg+zYSie2HmY0qc8ysDTAA+H2mY6mOEnwlzGwQ8IW7v5fpWLLMKODFTAeRRpWV22iwSa2cmeUDXYHFGQ4lk+4l0QHcm+E4qhVlqYKsZmYLgL+vZNPNwP8B+qQ3osyp7lq4+7xgn5tJ/DP90XTGlmGhym00JGZ2BDAXGOvu32Q6nkwws4HA/7h7kZmdm+FwqtVgE7y7n1fZejPrBLQF3jMzSAxJLDOzU939r2kMMW2quhblzOwqYCDQ2xvWgxMqt5HEzJqQSO6PuvvTmY4ng3oAg8ysP5ALNDWzP7r7sAzHdQA96FQDMysBurl7pivGZYSZ9QPuBs5x902ZjiedzCyHxI3l3sAXJMpvXHGQPJGdUpbo7cwCtrr72AyHkzWCHvw4dx+Y4VAqpTF4qcl9wJHAK2a2wsweyHRA6RLcXC4vt7EaeLIhJvdAD+BKoFfw38GKoAcrWUw9eBGRmFIPXkQkppTgRURiSgleRCSmlOBFRGJKCV5EJKaU4EWSmNn24GdrM5tTj/OMNbO8Wh6zMKhcOagWxxwWTFn8W0OueiqV0zRJabDMLCepkFr5uu3ufkQKzl1CLR+QM7OFJB6aWZqO9iT+1IOXjDOz25Pri5vZHWY2ppL9hgd16d8zs0eCdceZ2avB+lfN7Nga1s80s7vN7HXg34OXwi8ysyVmdntSW/lmtjL4PsLMnjazl8zsIzObmrTfdDNbGtRI/9dg3RigNfB60A5m1idoZ5mZPRXUdKnpuiw0s3vM7M2gDnv3II6PzOzf6nSxpWFxd330yegHyAeWBd8bAZ8ALfbb5yRgLdAyWG4e/PwTcFXwfRTwbA3rZwLPA42D5eeA4cH364DtSTGtDL6PAD4FmpGoPfIZcMx+cTQGFgIFwXJJUqwtgTeBw4PlG4FbK7kOC0n0wpOX/z34fgOJOjhHA4eSqJPTImnfivb00af8ox68ZJy7lwBbzKwriSqey919y3679QLmeDAE4e5bg/WnA48F3x8BzqxhPcBT7r4n+N4DeDxpv6q86u6l7l4GfAAcF6y/1MyWActJ/BGq7CUYpwXr3zGzFcBVScfX5Lng5/vAKk/UZf+OxB+cY6o+TKQBV5OUrPN7Ej3lvwceqmS7Ea5Ub1X7JK/fEfKYZN8lfd8D5JhZW2Ac0N3d/7+ZzSTRw9+fAa+4++Uh2qmq3b37xbAX/f8rNVAPXrLFM0A/oDuJ4l77e5VEb7kFgJk1D9a/CwwJvg8F3q5h/f7e2W+/2mhK4o9FqZn9HYlX+5XbRqJIGyTehNXDzP4hiD3PzNrXsi2RWlMPQLKCu/8tuCH5ddLwSfL2VWZ2B/CGme0hMSQyAhgDPGRm44FNwMjgkKrW7+8G4LHgJu/cWsb8npktB1aRGDJ5J2nzDOBFM9vo7j3NbATwuJkdGmy/hUQpYpHIaJqkZAUzawQsAy5x948yHU8maJqkpJqGaCTjzKwj8DGJG5kNMrkHtgIz6/KgE9CELH8/qKSfevAiIjGlHryISEwpwYuIxJQSvIhITCnBi4jElBK8iEhM/S8qQiVwerqabQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hist.plot1d(h.integrate('x'), stack=True) #stack makes a stack plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A more pratical, physics example" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "In this example, I'll load a set of histograms from `histos/ttH_private_UL17_fixWeights_objects.pkl.gz`
\n", "This is a pickle file created by TopCoffea" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "First, let's import all the relevent packages (same as before, but here to make this section stand alone)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "import pickle #read pickle file\n", "from coffea import hist\n", "import topcoffea.modules.HistEFT as HistEFT\n", "import gzip #read zipped pickle file\n", "import matplotlib.pyplot as plt #plot histograms\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Next, we'll open the pickle file, and load its histograms into a dictionary" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/bin/bash: /opt/conda/lib/libtinfo.so.6: no version information available (required by /bin/bash)\n", "/bin/bash: /opt/conda/lib/libtinfo.so.6: no version information available (required by /bin/bash)\n", "File ‘../histos/ttH_private_UL17_fixWeights_objects.pkl.gz’ already there; not retrieving.\n" ] } ], "source": [ "#This only works in Jupyter notebooks. Run the wget command directly in the terminal otherwise\n", "!mkdir -p ../histos/\n", "!wget -nc https://cernbox.cern.ch/index.php/s/JxAIaZhXZo4mGkg/download -O ../histos/ttH_private_UL17_fixWeights_objects.pkl.gz\n", "fin = '../histos/ttH_private_UL17_fixWeights_objects.pkl.gz'\n", "hists = {} #dictionary of histograms\n", "with gzip.open(fin) as fin:\n", " hin = pickle.load(fin)\n", " for k in hin.keys():\n", " if k in hists: hists[k]+=hin[k]\n", " else: hists[k]=hin[k]" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Now we'll grab the histogram for `njets`" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "h = hists['njets'] #load histogram of njets distribution" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Each histogram is a `N-D` collection of different categories" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "(,\n", " ,\n", " ,\n", " ,\n", " ,\n", " )" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.axes() #all axes in this version" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "You can retrieve the histogram's bin contents with the `values()` method" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('ttHJet_privateUL17', 'eeSSonZ', 'base', 'ch+', 'nominal') ...\n" ] } ], "source": [ "h.values() #this is large, and Jupyter wants to show the whole thing\n", "print(list(h.values())[0],'...') #just print the first entry" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "To select a specific label in a category we must use `integrate()` (the other option is `sum()` which combines all the lables in a category together)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "ch3l = ['eemSSonZ', 'eemSSoffZ', 'mmeSSonZ', 'mmeSSoffZ','eeeSSonZ', 'eeeSSoffZ', 'mmmSSonZ', 'mmmSSoffZ'] #define ch3l to make things cleaner\n", "h = h.integrate('cut','base').integrate('channel',ch3l).integrate('sumcharge', 'ch+').integrate('systematic', 'nominal')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "We've now integrated outeverything but the type of samples:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{('ttHJet_privateUL17',): array([0.07281313, 0.60113587, 1.78300836, 2.35064192, 1.73882553,\n", " 0.98864291, 0.40450678, 0.12870998, 0.02832856, 0.00800146])}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.values()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(,\n", " )" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.axes()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create a plot to draw everthing in using matplotlib and the `plot1d()` method in `coffea.hist`" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcAAAAGpCAYAAAAa3ubhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAdAklEQVR4nO3deZhU9Z2o8fcroKjgBswdFJJWxIQBpCVtBIkRM+qjgUAeg1viiMkkiEsWEx3JcqMxPjfeONfkGo3GySgYFMlgFoyOcYxEjUHDEtRWokMcEnvwThDiQlAQ/d0/quhpmqa7uu3TRfF7P8/TD7WcOv2tcnk5VafOiZQSkiTlZrdqDyBJUjUYQElSlgygJClLBlCSlCUDKEnKUu9qD9BZAwcOTHV1ddUeQ5K0E1m2bNmLKaVBnXlMzQWwrq6OpUuXVnsMSdJOJCL+0NnH+BaoJClLBlCSlCUDKEnKUs19BigpX2+88QZNTU28/vrr1R5FVdK3b1+GDBlCnz593va6DKCkmtHU1ET//v2pq6sjIqo9jnpYSol169bR1NTEwQcf/LbX51ugkmrG66+/zoABA4xfpiKCAQMGdNs7AAZQUk0xfnnrzn/+BlCSlCUDKEm7mIkTJ3rAkAoYQElSlgygJPWAv/zlL0yaNIkxY8YwatQo5s+fzxVXXMGRRx7JqFGjmDFjBikloLQFd9FFF/H+97+fESNGsGTJEk455RSGDx/OV77yFQBWr17Nu9/9bqZPn87hhx/OtGnT2Lhx43a/97777mP8+PGMHTuWU089lQ0bNvTo896ZGUBJ6gH33nsvBx54II8//jiNjY2cdNJJXHjhhSxZsoTGxkZee+01fvaznzUvv/vuu/PQQw8xc+ZMpk6dyvXXX09jYyOzZ89m3bp1ADzzzDPMmDGDJ554gn322Yfvfve72/zOF198kSuvvJL777+f5cuX09DQwDXXXNOjz3tnZgAlqQeMHj2a+++/n0svvZSHH36Yfffdl0WLFnHUUUcxevRoHnjgAZ566qnm5adMmdL8uJEjRzJ48GD22GMPDjnkEJ5//nkAhg4dyoQJEwA466yz+NWvfrXN73z00Ud5+umnmTBhAvX19cyZM4c//KHTx4zeZflFeEnqAYcddhjLli3jnnvu4Ytf/CInnngi119/PUuXLmXo0KFcfvnl23y/bY899gBgt912a7689fqWLVuA7b8S0Pp6SokTTjiBefPmFfW0appbgJLUA9asWcNee+3FWWedxcUXX8zy5csBGDhwIBs2bGDBggWdXucf//hHFi9eDMC8efN43/vet83948aN45FHHmHVqlUAbNy4kWefffZtPpNdh1uAktQDnnzySS655BJ22203+vTpww033MBPfvITRo8eTV1dHUceeWSn1zlixAjmzJnDueeey/DhwznvvPO2uX/QoEHMnj2bM888k02bNgFw5ZVXcthhh3XLc6p1sXWvo1rR0NCQ/H7LrqVu1t3VHmGHVl81qdojqIWVK1cyYsSIao+xU1i9ejWTJ0+msbGx2qP0uLb+PYiIZSmlhs6sx7dAJUlZMoCSVIPq6uqy3PrrTgZQkpQlAyhJypIBlCRlyQBKkrLk9wAl1azu/gqNX3vJi1uAklShl156qfmA06tXr+b2229vvu+Xv/wlkydP3mb5c845p/kIL5Wco+/b3/52m2d06Iobb7yRW2+9tUuPnT17NmvWrOlwudbPafXq1YwaNQpo+/UAuO666zj00EOJCF588cXm26+++mrq6+upr69n1KhR9OrVi/Xr13dp/koZQEmqUHsB7A7dFcAtW7Ywc+ZMzj777C49vtIAdsWECRO4//77eec737nN7ZdccgkrVqxgxYoVfOMb3+DYY4/lgAMOKGSGrXwLVJIqNGvWLH7/+99TX19Pnz59ePbZZ6mvr2f69OkcccQRFa/nvvvu47LLLmPTpk0MGzaMW265hZtvvpk1a9Zw3HHHMXDgQBYtWtTmY/v168e5557LokWL2H///bnjjjsYNGgQEydO5Oijj+aRRx5hypQpvPrqq/Tr149JkyYxffp0fvOb3wClcE+ZMoUnnniCK664grvuuovXXnuNo48+mu9973vceeedLF26lI997GPsueeeLF68mKeffprPf/7zbNiwgYEDBzJ79mwGDx7cpdewktdp3rx5nHnmmV1af2e4BShJFbrqqqsYNmwYK1as4Oqrr+aYY45hxYoVXHTRRQA8/PDDzW/j1dfXs3Dhwu3WsaNz9H3mM5/hwAMPZNGiRTuMH5ROrDt27FiWL1/Osccey9e+9rXm+1566SUefPBBvvCFLzTfNmLECDZv3sxzzz0HwPz58znttNMA2jwf4bRp02hoaOC2225jxYoV9O7dm09/+tMsWLCAZcuW8YlPfIIvf/nL3fJ6tmXjxo3ce++9fOQjHynsd2zlFqAkdZNjjjlmm5PannPOOdst0/IcfQCbN29m/PjxFf+O3XbbjdNPPx0onQPwlFNOab5v6+2tnXbaafzwhz9k1qxZzJ8/n/nz5wOwaNEivvnNb7Jx40bWr1/PyJEj+dCHPrTNY5955hkaGxs54YQTAHjzzTebt/5an35pR7d1xl133cWECRMKf/sTDKAk9ajuPkdfy+DsvffebS5z+umnc+qpp3LKKacQEQwfPpzXX3+d888/f4fnI2w578iRI5tPu9TSgAED+POf/9x8ff369QwcOPBtPZ877rijR97+BAMoqYb19NcW+vfvz6uvvrrd5c4YN24cF1xwAatWreLQQw9l48aNNDU1cdhhhzWvs72IvPXWWyxYsIAzzjiD22+/fbtzALZl2LBh9OrVi69//evNW4lbY9fyfITTpk3b7rm9613vYu3atSxevJjx48fzxhtv8OyzzzJy5EgmTpzI3LlzOf7444kI5syZw3HHHdfp12Srl19+mQcffJC5c+d2eR2d4WeAklShAQMGMGHCBEaNGsXcuXPp3bs3Y8aM4Vvf+laHj92yZQt77LHHNufoO/zwwxk3bhy/+93vAJgxYwYnn3xyuxHZe++9eeqpp3jPe97DAw88wFe/+tWKZj/99NOZO3du8+d/++23H5/61KcYPXo0H/7wh7c5H+E555zDzJkzqa+v580332TBggVceumljBkzhvr6en796183z9u/f3/GjBnDmDFj2LBhAxdffHHzen7xi18wZMiQ5p/Fixdz7bXXMmTIEJqamjj88MP55Cc/2bz8j3/8Y0488cQdbsl2N88HqKrzfICqVK2eD3DTpk0ceuihNDY2su+++76tdfXr148NGzZ002S1yfMBSlINWLp0KfX19Zx//vlvO37qXn4GKEkFamhoYOXKlZ1+3FFHHcWmTZu2ue0HP/hB9lt/3ckASqopKaW3vat9LXjssceqPcJOqTs/tvMtUEk1o2/fvqxbt65b/yeo2pFSYt26dfTt27db1ucWoKSasXXvwbVr11Z7FFVJ3759GTJkSLesywBKqhl9+vTh4IMPrvYY2kX4FqgkKUsGUJKUJQMoScqSAZQkZckASpKyZAAlSVkygJKkLBlASVKWDKAkKUsGUJKUJQMoScqSAZQkZckASpKyZAAlSVkygJKkLBlASVKWDKAkKUsGUJKUJQMoScqSAZQkZckASpKyZAAlSVkygJKkLBlASVKWDKAkKUsGUJKUJQMoScqSAZQkZamwAEbE0IhYFBErI+KpiPhsG8tERFwbEasi4omIGFvUPJIktdS7wHVvAb6QUloeEf2BZRHxbymlp1ssczIwvPxzFHBD+U9JkgpV2BZgSumFlNLy8uVXgZXAQa0WmwrcmkoeBfaLiMFFzSRJ0lY98hlgRNQBRwCPtbrrIOD5Fteb2D6SRMSMiFgaEUvXrl1b2JySpHwUHsCI6AfcCXwupfRK67vbeEja7oaUbkopNaSUGgYNGlTEmJKkzBQawIjoQyl+t6WUftTGIk3A0BbXhwBripxJkiQodi/QAP4ZWJlSumYHiy0Ezi7vDToOeDml9EJRM0mStFWRe4FOAP4OeDIiVpRv+xLwDoCU0o3APcAHgVXARuDjBc4jSVKzwgKYUvoVbX/G13KZBFxQ1AySJO2IR4KRJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCz1rvYA6hl1s+6u9giStFNxC1CSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCz5NQipHTv710dWXzWp2iNINcstQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwVFsCIuDki/hQRjTu4f2JEvBwRK8o/Xy1qFkmSWutd4LpnA9cBt7azzMMppckFziBJUpsK2wJMKT0ErC9q/ZIkvR3V/gxwfEQ8HhH/GhEjqzyLJCkjRb4F2pHlwDtTShsi4oPAT4DhbS0YETOAGQDveMc7emxASdKuq2pbgCmlV1JKG8qX7wH6RMTAHSx7U0qpIaXUMGjQoB6dU5K0a6paACPiryMiypffW55lXbXmkSTlpbC3QCNiHjARGBgRTcBlQB+AlNKNwDTgvIjYArwGnJFSSkXNI0lSS4UFMKV0Zgf3X0fpaxKSJPW4au8FKklSVRhASVKWDKAkKUsGUJKUJQMoScqSAZQkZckASpKyZAAlSVkygJKkLBlASVKWDKAkKUsGUJKUJQMoScqSAZQkZckASpKyZAAlSVkygJKkLBlASVKWDKAkKUsGUJKUJQMoScpSpwMYEftHxOFFDCNJUk+pKIAR8cuI2CciDgAeB26JiGuKHU2SpOJUugW4b0rpFeAU4JaU0nuA44sbS5KkYlUawN4RMRg4DfhZgfNIktQjKg3g14CfA6tSSksi4hDg34sbS5KkYvWucLkXUkrNO76klJ7zM0BJUi2rdAvwOxXeJklSTWh3CzAixgNHA4Mi4vMt7toH6FXkYJIkFamjt0B3B/qVl+vf4vZXgGlFDSVJUtHaDWBK6UHgwYiYnVL6Qw/NJElS4SrdCWaPiLgJqGv5mJTSB4oYSpKkolUawH8BbgS+D7xZ3DiSJPWMSgO4JaV0Q6GTSJLUgyr9GsRdEXF+RAyOiAO2/hQ6mSRJBap0C3B6+c9LWtyWgEO6dxxJknpGRQFMKR1c9CCSJPWkSk+HtFdEfKW8JygRMTwiJhc7miRJxan0M8BbgM2UjgoD0ARcWchEkiT1gEoDOCyl9E3gDYCU0mtAFDaVJEkFqzSAmyNiT0o7vhARw4BNhU0lSVLBKt0L9HLgXmBoRNwGTADOKWgmSZIKV+leoPdFxDJgHKW3Pj+bUnqx0MkkSSpQRQGMiIXAPGBhSukvxY4kSVLxKv0M8P8AxwBPR8S/RMS0iOhb4FySJBWq0rdAt54WqRfwAeBTwM2UTowrSVLNqXQnGMp7gX4IOB0YC8wpaihJkopW6WeA84GjKO0Jej3wy5TSW0UOJklSkSrdArwF+GhKyXMBSpJ2Ce3uBBMR/wCQUroXOKXVff+rwLkkSSpUR3uBntHi8hdb3XdSN88iSVKP6SiAsYPLbV2XJKlmdBTAtIPLbV2XJKlmdLQTzJiIeIXS1t6e5cuUr/tFeElSzWo3gCmlXj01iCRJPanSQ6FJkrRLMYCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKUmEBjIibI+JPEdG4g/sjIq6NiFUR8UREjC1qFkmSWityC3A2cFI7958MDC//zABuKHAWSZK2UVgAU0oPAevbWWQqcGsqeRTYLyIGFzWPJEktVfMzwIOA51tcbyrftp2ImBERSyNi6dq1a3tkOEnSrq13FX93tHFbamvBlNJNwE0ADQ0NbS4j5ahu1t3VHmGHVl81qdojSO2q5hZgEzC0xfUhwJoqzSJJykw1A7gQOLu8N+g44OWU0gtVnEeSlJHC3gKNiHnARGBgRDQBlwF9AFJKNwL3AB8EVgEbgY8XNYskSa0VFsCU0pkd3J+AC4r6/ZIktccjwUiSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKkgGUJGXJAEqSsmQAJUlZMoCSpCwZQElSlgygJClLBlCSlCUDKEnKUu9qD7ArqZt1d7VHkCRVyC1ASVKWDKAkKUsGUJKUJQMoScqSAZQkZckASpKyZAAlSVkygJKkLBlASVKWDKAkKUsGUJKUJQMoScpSoQGMiJMi4pmIWBURs9q4f2JEvBwRK8o/Xy1yHkmStirsbBAR0Qu4HjgBaAKWRMTClNLTrRZ9OKU0uag5JElqS5FbgO8FVqWUnkspbQbuAKYW+PskSapYkQE8CHi+xfWm8m2tjY+IxyPiXyNiZFsriogZEbE0IpauXbu2iFklSZkpMoDRxm2p1fXlwDtTSmOA7wA/aWtFKaWbUkoNKaWGQYMGde+UkqQsFRnAJmBoi+tDgDUtF0gpvZJS2lC+fA/QJyIGFjiTJElAsQFcAgyPiIMjYnfgDGBhywUi4q8jIsqX31ueZ12BM0mSBBS4F2hKaUtEXAj8HOgF3JxSeioiZpbvvxGYBpwXEVuA14AzUkqt3yaVJKnbFRZAaH5b855Wt93Y4vJ1wHVFziBJUls8EowkKUsGUJKUJQMoScqSAZQkZckASpKyZAAlSVkygJKkLBlASVKWCv0ivKR81c26u9oj7NDqqyZVewTtBNwClCRlyQBKkrJkACVJWTKAkqQsGUBJUpYMoCQpSwZQkpQlAyhJypIBlCRlyQBKkrJkACVJWTKAkqQsGUBJUpYMoCQpSwZQkpQlAyhJypIBlCRlyQBKkrJkACVJWTKAkqQsGUBJUpYMoCQpSwZQkpQlAyhJypIBlCRlyQBKkrJkACVJWTKAkqQsGUBJUpYMoCQpSwZQkpQlAyhJypIBlCRlyQBKkrJkACVJWTKAkqQsGUBJUpYMoCQpSwZQkpQlAyhJypIBlCRlyQBKkrLUu9oDSFJPq5t1d7VH2KHVV02q9gjZcAtQkpQlAyhJypIBlCRlyQBKkrJkACVJWTKAkqQsGUBJUpYMoCQpSzX3Rfgn//PlnfpLrJKk2uAWoCQpSwZQkpQlAyhJypIBlCRlyQBKkrJUc3uBStKubGfey31XO1WTW4CSpCwVGsCIOCkinomIVRExq437IyKuLd//RESMLXIeSZK2KiyAEdELuB44Gfgb4MyI+JtWi50MDC//zABuKGoeSZJaKvIzwPcCq1JKzwFExB3AVODpFstMBW5NKSXg0YjYLyIGp5ReKHAuSVIX7MyfT3ZFkQE8CHi+xfUm4KgKljkI2CaAETGD0hYiwKY//O/Jjd07ahYGAi9We4ga5OvWdb52XePr1jXv6uwDigxgtHFb6sIypJRuAm4CiIilKaWGtz9eXnzdusbXret87brG161rImJpZx9T5E4wTcDQFteHAGu6sIwkSd2uyAAuAYZHxMERsTtwBrCw1TILgbPLe4OOA1728z9JUk8o7C3QlNKWiLgQ+DnQC7g5pfRURMws338jcA/wQWAVsBH4eAWrvqmgkXd1vm5d4+vWdb52XePr1jWdft2itAOmJEl58UgwkqQsGUBJUpZqKoAdHVpN24uIoRGxKCJWRsRTEfHZas9USyKiV0T8NiJ+Vu1ZakX5gBYLIuJ35X/vxld7ploQEReV/xttjIh5EdG32jPtrCLi5oj4U0Q0trjtgIj4t4j49/Kf+3e0npoJYIWHVtP2tgBfSCmNAMYBF/i6dcpngZXVHqLG/F/g3pTSu4Ex+Pp1KCIOAj4DNKSURlHacfCM6k61U5sNnNTqtlnAL1JKw4FflK+3q2YCSItDq6WUNgNbD62mdqSUXkgpLS9ffpXS/4wOqu5UtSEihgCTgO9Xe5ZaERH7AO8H/hkgpbQ5pfRSVYeqHb2BPSOiN7AXfid6h1JKDwHrW908FZhTvjwH+HBH66mlAO7osGmqUETUAUcAj1V5lFrxbeAfgLeqPEctOQRYC9xSfuv4+xGxd7WH2tmllP4T+Efgj5QOBflySum+6k5Vc/7H1u+Rl//8q44eUEsBrOiwaWpbRPQD7gQ+l1J6pdrz7OwiYjLwp5TSsmrPUmN6A2OBG1JKRwB/oYK3onJX/rxqKnAwcCCwd0ScVd2pdn21FEAPm9ZFEdGHUvxuSyn9qNrz1IgJwJSIWE3p7fYPRMTc6o5UE5qAppTS1ncZFlAKotp3PPAfKaW1KaU3gB8BR1d5plrzXxExGKD85586ekAtBbCSQ6uplYgISp/HrEwpXVPteWpFSumLKaUhKaU6Sv+uPZBS8m/kHUgp/T/g+YjYemT+v2XbU6CpbX8ExkXEXuX/Zv8Wdx7qrIXA9PLl6cBPO3pAkWeD6FY7OrRalceqBROAvwOejIgV5du+lFK6p3ojaRf3aeC28l9Un6OyQxxmLaX0WEQsAJZT2nP7t3hItB2KiHnARGBgRDQBlwFXAT+MiL+n9BeKUztcj4dCkyTlqJbeApUkqdsYQElSlgygJClLBlCSlCUDKEnKkgGUOiEiNrRz334RcX7Rvzsi6iLioy1ub4iIazt4bN3WI+dXuPw95edT6HOSqskASt1nP6AnYlEHNAcwpbQ0pfSZSh9cyfIppQ+WD2K9Hz3znKQeZwClLoiISyJiSUQ8ERFfK998FTAsIlZExNWtlq8rnx/v++Xzvd0WEcdHxCPl85e9t7zc5RFxcYvHNZYPYt7SVcAx5d9zUURM3Hq+wvLjfxARD5TX+6k2Zm+5fL+IuCUiniw/l4+Ub18dEQNbP6fyuqe2WNdtETHlbb6cUlXUzJFgpJ1FRJwIDKd0iq4AFkbE+ykd9HlUSql+Bw89lNLRKWZQOrTfR4H3AVOAL1HB6VvKZgEXp5Qml+eZ2Or+wymd+3Fv4LcRcXc76/qflM48MLq8rtYnEd3mOUXEscBFwE8jYl9Kx6ucjlSD3AKUOu/E8s9vKR266t2UgtiR/0gpPZlSegt4itLJOxPwJKW3NbvLT1NKr6WUXgQWUQr1jhxP6UTTAKSU/tzeilNKDwKHRsRfAWcCd6aUtnTDzFKPcwtQ6rwAvpFS+t42N27/VmVrm1pcfqvF9bf47/8Wt7DtX0z7dmG+1sc3bO94h9HB/W35AfAxSgcJ/0QnHyvtNNwClDrv58AnyudYJCIOKm8RvQr0f5vrXk359EERMZbS+eFa6+j3TI2IvhExgNIBg5e0s+x9wIVbr7TxFmhbv2s28DkAD0ivWmYApQpFRG9gU/lM3bcDiyPiSUrnvOufUloHPFLeceXq9tbVjjuBA8pn7jgPeLaNZZ4AtkTE4xFxURv3/wa4G3gU+HpKqb3zZl4J7F+e+XHguJZ3tvWcUkr/RelUPbd07qlJOxfPBiFVKCLGAP+UUmrvM7WqiojLgQ0ppX8s8HfsRelzy7EppZeL+j1S0dwClCoQETOBecBXqj1LNUXE8cDvgO8YP9U6twAlSVlyC1CSlCUDKEnKkgGUJGXJAEqSsmQAJUlZ+v8tXECWn5/6AAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,1, figsize=(7,7)) #create an axis for plotting\n", "hist.plot1d(h, stack=True)\n", "#fig.show() #not needed in Jupyter, but this draws the figure in the terminal" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# topcoffea.modules.HistEFT" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "I'll continue using the ```histos/plotsTopEFT.pkl.gz``` file from above
\n", "Now we'll use methods that are unique to HistEFT (e.g. `set_wilson_coefficients()` to scale the Wilson Coefficient (WC) values)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "The `HistEFT` class holds the structure constants ($S_0, S_{1j}, S_{2j},$ and $S_{3jk}$) we solved for when partins the EFT files,
\n", "so the event yields are just a function of the WCs ($\\vec{c}$):" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\\begin{equation}\n", "N\\left(\\dfrac{\\vec{c}}{\\Lambda^2}\\right) = S_0 + \\sum_j S_{1j} \\frac{c_j}{\\Lambda^2} + \\sum_j S_{2j} \\frac{c_j^2}{\\Lambda^4} + \\sum_{j,k} S_{3jk} \\frac{c_j}{\\Lambda^2} \\frac{c_k}{\\Lambda^2}\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "First, we'll scale the histogram to the SM (all `WCs=0`)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "h.set_wilson_coefficients(np.zeros(h._nwc))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "where `_nwc` is a local variable inside a HistEFT that stores how many WCs it contains
\n", "The WCs are used whenever `values()` method is called" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{('ttHJet_privateUL17',): array([0.07281313, 0.60113587, 1.78300836, 2.35064192, 1.73882553,\n", " 0.98864291, 0.40450678, 0.12870998, 0.02832856, 0.00800146])}" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.values()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{('ttHJet_privateUL17',): array([0.00000000e+00, 7.28131349e-02, 6.01135867e-01, 1.78300836e+00,\n", " 2.35064192e+00, 1.73882553e+00, 9.88642912e-01, 4.04506782e-01,\n", " 1.28709985e-01, 2.83285563e-02, 8.00146189e-03, 1.55367261e-03])}" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.values(overflow='all')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Plotting this should look the same as before, since by default the WCs are 0" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAZhklEQVR4nO3de7zVdZ3v8ddHQEnBGzBnUKitiMVw29I2QTKxUR8aBD0Mb+WIdQrx0sXSkS4nzXxMnJxjjWmapxQMRRrsgumYY5KaYXEJFSUdcij34JkQ8kIoin7OH2ux2Wx/wNqwF2tfXs/HYz32+l3X5/cT93t/f7/f+n4jM5EkqaU9al2AJKl9MiAkSYUMCElSIQNCklTIgJAkFepe6wJaq2/fvllXV1frMiSpQ1myZMnzmdmvNdt0uICoq6tj8eLFtS5DkjqUiPhja7fxEpMkqZABIUkqZEBIkgp1uHsQkrbt9ddfp7GxkVdffbXWpahGevbsyYABA+jRo8cu78uAkDqRxsZGevfuTV1dHRFR63K0m2Uma9eupbGxkUMOOWSX9+clJqkTefXVV+nTp4/h0EVFBH369GmzFqQBIXUyhkPX1pb//Q0ISVIhA0JSlzNu3Di/cFsBb1Jrl9VNv6vWJbBqxvhalyB1OrYgJLULf/3rXxk/fjwjR45k2LBhzJ07lyuuuIIjjzySYcOGMXXqVDaPgDlu3Dguuugi3ve+9zFkyBAWLVrEKaecwuDBg/nyl78MwKpVq3jXu97FlClTGDFiBJMnT2bDhg1v+dx7772XMWPGMGrUKE499VTWr1+/W4+7PTMgJLUL99xzDwcddBCPPvooy5cv56STTuLCCy9k0aJFLF++nFdeeYWf/exnTevvueeePPjgg0ybNo1JkyZx3XXXsXz5cmbOnMnatWsBeOqpp5g6dSqPPfYY++67L9/5zne2+sznn3+eK6+8kvvuu4+lS5fS0NDA1VdfvVuPuz0zICS1C8OHD+e+++7j0ksv5aGHHmK//fZjwYIFHHXUUQwfPpz777+fJ554omn9iRMnNm03dOhQ+vfvz1577cWhhx7Ks88+C8DAgQMZO3YsAGeddRa/+tWvtvrMRx55hCeffJKxY8dSX1/PrFmz+OMfW92nXaflPQhJ7cLhhx/OkiVLuPvuu/nCF77AiSeeyHXXXcfixYsZOHAgl19++VbP9++1114A7LHHHk3vN09v2rQJeOsjny2nM5MTTjiBOXPmVOuwOjRbEJLahdWrV7P33ntz1llncfHFF7N06VIA+vbty/r165k3b16r9/mnP/2JhQsXAjBnzhze+973brV89OjRPPzww6xcuRKADRs28PTTT+/ikXQetiAktQuPP/44l1xyCXvssQc9evTg+uuv5yc/+QnDhw+nrq6OI488stX7HDJkCLNmzeLcc89l8ODBnHfeeVst79evHzNnzuTMM89k48aNAFx55ZUcfvjhbXJMHV1sfiqgo2hoaEifX25ffMy1/VixYgVDhgypdRntwqpVq5gwYQLLly+vdSm7XdG/g4hYkpkNrdmPl5gkSYUMCEmdUl1dXZdsPbQlA0KSVMiAkCQVMiAkSYUMCElSIb8HIXVibf0Iso8Tdy22ICS1mRdeeKGpQ7xVq1Zx2223NS375S9/yYQJE7Za/5xzzmn6hnQlYzR861vfKuyRdWfccMMN3HLLLTu17cyZM1m9evUO12t5TKtWrWLYsGFA8fkAuPbaaznssMOICJ5//vmm+VdddRX19fXU19czbNgwunXrxrp163aq/koZEJLazPYCoi20VUBs2rSJadOmcfbZZ+/U9pUGxM4YO3Ys9913H+94xzu2mn/JJZewbNkyli1bxte//nWOPfZYDjzwwKrUsJmXmCS1menTp/OHP/yB+vp6evTowdNPP019fT1TpkzhiCOOqHg/9957L5dddhkbN25k0KBB3Hzzzdx0002sXr2a4447jr59+7JgwYLCbXv16sW5557LggULOOCAA7j99tvp168f48aN4+ijj+bhhx9m4sSJvPzyy/Tq1Yvx48czZcoUfvvb3wKlYJs4cSKPPfYYV1xxBXfeeSevvPIKRx99NN/97ne54447WLx4MR/96Ed529vexsKFC3nyySf53Oc+x/r16+nbty8zZ86kf//+O3UOKzlPc+bM4cwzz9yp/beGLQhJbWbGjBkMGjSIZcuWcdVVV3HMMcewbNkyLrroIgAeeuihpssk9fX1zJ8//y372NYYDZ/+9Kc56KCDWLBgwTbDAUoDD40aNYqlS5dy7LHH8tWvfrVp2QsvvMADDzzA5z//+aZ5Q4YM4bXXXuOZZ54BYO7cuZx22mkAheNRTJ48mYaGBm699VaWLVtG9+7d+dSnPsW8efNYsmQJH//4x/nSl77UJuezyIYNG7jnnnv48Ic/XLXP2MwWhKTd5phjjtlq0J9zzjnnLes0H6MB4LXXXmPMmDEVf8Yee+zB6aefDpTGgDjllFOalm2e39Jpp53GD3/4Q6ZPn87cuXOZO3cuAAsWLOAb3/gGGzZsYN26dQwdOpQPfvCDW2371FNPsXz5ck444QQA3njjjabWQ8vuxbc1rzXuvPNOxo4dW/XLS2BASGpn2nqMhua/kPfZZ5/CdU4//XROPfVUTjnlFCKCwYMH8+qrr3L++edvczyK5vUOHTq0qVvx5vr06cNf/vKXpul169bRt2/fXTqe22+/fbdcXgIDQurUdvdjqb179+bll19+y/vWGD16NBdccAErV67ksMMOY8OGDTQ2NnL44Yc37XN7v2TffPNN5s2bxxlnnMFtt932ljEgigwaNIhu3brxta99ramVsTkMmo9HMXny5Lcc2zvf+U7WrFnDwoULGTNmDK+//jpPP/00Q4cOZdy4ccyePZvjjz+eiGDWrFkcd9xxrT4nm7344os88MADzJ49e6f30Rreg5DUZvr06cPYsWMZNmwYs2fPpnv37owcOZJvfvObO9x206ZN7LXXXluN0TBixAhGjx7N73//ewCmTp3KySefvN1fsvvssw9PPPEE7373u7n//vv5yle+UlHtp59+OrNnz266/7D//vvzyU9+kuHDh/OhD31oq/EozjnnHKZNm0Z9fT1vvPEG8+bN49JLL2XkyJHU19fz61//uqne3r17M3LkSEaOHMn69eu5+OKLm/bzi1/8ggEDBjS9Fi5cyDXXXMOAAQNobGxkxIgRfOITn2ha/8c//jEnnnjiNltCbc3xILTLHA+i/eio40Fs3LiRww47jOXLl7Pffvvt0r569erF+vXr26iyjsnxICR1CosXL6a+vp7zzz9/l8NBbct7EJJqqqGhgRUrVrR6u6OOOqppmNDNfvCDH3T51kNbMiCkTiYzd/lRyo7gN7/5Ta1LaJfa8rZB1S4xRcTAiFgQESsi4omI+EzBOhER10TEyoh4LCJGVaseqSvo2bMna9eubdNfEuo4MpO1a9fSs2fPNtlfNVsQm4DPZ+bSiOgNLImIf8/MJ5utczIwuPw6Cri+/FPSTtj89MuaNWtqXYpqpGfPngwYMKBN9lW1gMjM54Dnyu9fjogVwMFA84CYBNySpT93HomI/SOif3lbSa3Uo0cPDjnkkFqXoU5itzzFFBF1wBFAy4uGBwPPNptuLM+TJNVY1QMiInoBdwCfzcyXWi4u2OQtF08jYmpELI6IxTadJWn3qGpAREQPSuFwa2b+qGCVRmBgs+kBwFs6Wc/MGzOzITMb+vXrV51iJUlbqeZTTAF8H1iRmVdvY7X5wNnlp5lGAy96/0GS2odqPsU0FvgH4PGIWFae90Xg7QCZeQNwN/ABYCWwAfhYFeuRJLVCNZ9i+hXF9xiar5PABdWqQZK08+yLSZJUyICQJBUyICRJhQwISVIhA0KSVMiAkCQVMiAkSYUMCElSIQNCklTIgJAkFTIgJEmFDAhJUiEDQpJUyICQJBWq5ngQqrK66XfVugRJnZgtCElSIQNCklTIgJAkFfIehDqF9nI/ZtWM8bUuQWoztiAkSYUMCElSIQNCklTIgJAkFTIgJEmFDAhJUiEDQpJUyICQJBUyICRJhQwISVIhA0KSVMiAkCQVMiAkSYUMCElSIQNCklTIgJAkFapaQETETRHx54hYvo3l4yLixYhYVn59pVq1SJJar5ojys0ErgVu2c46D2XmhCrWIEnaSVVrQWTmg8C6au1fklRdtb4HMSYiHo2If4uIoTWuRZLUTDUvMe3IUuAdmbk+Ij4A/AQYXLRiREwFpgK8/e1v320FSlJXVrMWRGa+lJnry+/vBnpERN9trHtjZjZkZkO/fv12a52S1FXVLCAi4m8jIsrv31OuZW2t6pEkba1ql5giYg4wDugbEY3AZUAPgMy8AZgMnBcRm4BXgDMyM6tVjySpdaoWEJl55g6WX0vpMVhJUjtU66eYJEntlAEhSSpkQEiSChkQkqRCrQ6IiDggIkZUoxhJUvtRUUBExC8jYt+IOBB4FLg5Iq6ubmmSpFqqtAWxX2a+BJwC3JyZ7waOr15ZkqRaqzQgukdEf+A04GdVrEeS1E5UGhBfBX4OrMzMRRFxKPAf1StLklRrlX6T+rnMbLoxnZnPeA9Ckjq3SlsQ365wniSpk9huCyIixgBHA/0i4nPNFu0LdKtmYZKk2trRJaY9gV7l9Xo3m/8Spd5YJUmd1HYDIjMfAB6IiJmZ+cfdVJMkqR2o9Cb1XhFxI1DXfJvMfH81ipIk1V6lAfGvwA3A94A3qleOJKm9qDQgNmXm9VWtRJLUrlT6mOudEXF+RPSPiAM3v6pamSSppiptQUwp/7yk2bwEDm3bciRJ7UVFAZGZh1S7EElS+1Jpd997R8SXy08yERGDI2JCdUuTJNVSpfcgbgZeo/StaoBG4MqqVCRJahcqDYhBmfkN4HWAzHwFiKpVJUmquUoD4rWIeBulG9NExCBgY9WqkiTVXKVPMV0O3AMMjIhbgbHAOVWqSZLUDlT6FNO9EbEEGE3p0tJnMvP5qlYmSaqpigIiIuYDc4D5mfnX6pYkSWoPKr0H8X+AY4AnI+JfI2JyRPSsYl2SpBqr9BLT5m6/uwHvBz4J3ERp4CBJUidU6U1qyk8xfRA4HRgFzKpWUZKk2qv0HsRc4ChKTzJdB/wyM9+sZmGSpNqqtAVxM/CRzHQsCEnqIrZ7kzoi/hEgM+8BTmmx7J+qWJckqcZ29BTTGc3ef6HFspPauBZJUjuyo4CIbbwvmpYkdSI7CojcxvuiaUlSJ7KjgBgZES9FxMvAiPL7zdPDt7dhRNwUEX+OiOXbWB4RcU1ErIyIxyJi1E4egySpCrYbEJnZLTP3zczemdm9/H7zdI8d7Hsm279PcTIwuPyaClzfmsIlSdVVaVcbrZaZDwLrtrPKJOCWLHkE2D8i+lerHklS61QtICpwMPBss+nG8ry3iIipEbE4IhavWbNmtxQnSV1dxV1tVEHRU1CFN74z80bgRoCGhgZvjqvdqpt+V61LYNWM8bUuQZ1ELVsQjcDAZtMDgNU1qkWS1EItA2I+cHb5aabRwIuZ+VwN65EkNVO1S0wRMQcYB/SNiEbgMqAHQGbeANwNfABYCWwAPlatWiRJrVe1gMjMM3ewPIELqvX5kqRdU8tLTJKkdsyAkCQVMiAkSYUMCElSIQNCklTIgJAkFTIgJEmFDAhJUiEDQpJUyICQJBUyICRJhQwISVIhA0KSVMiAkCQVMiAkSYUMCElSIQNCklTIgJAkFTIgJEmFDAhJUiEDQpJUyICQJBUyICRJhQwISVIhA0KSVMiAkCQVMiAkSYUMCElSIQNCklSoe60L6Kjqpt9V6xIkqapsQUiSChkQkqRCBoQkqZABIUkqZEBIkgpVNSAi4qSIeCoiVkbE9ILl4yLixYhYVn59pZr1SJIqV7XHXCOiG3AdcALQCCyKiPmZ+WSLVR/KzAnVqkOStHOq2YJ4D7AyM5/JzNeA24FJVfw8SVIbqmZAHAw822y6sTyvpTER8WhE/FtEDC3aUURMjYjFEbF4zZo11ahVktRCNQMiCuZli+mlwDsycyTwbeAnRTvKzBszsyEzG/r169e2VUqSClUzIBqBgc2mBwCrm6+QmS9l5vry+7uBHhHRt4o1SZIqVM2AWAQMjohDImJP4AxgfvMVIuJvIyLK799TrmdtFWuSJFWoak8xZeamiLgQ+DnQDbgpM5+IiGnl5TcAk4HzImIT8ApwRma2vAwlSaqBqvbmWr5sdHeLeTc0e38tcG01a5Ak7Ry/SS1JKmRASJIKOWCQ1Mm0l8GsVs0YX+sStItsQUiSChkQkqRCBoQkqZABIUkqZEBIkgoZEJKkQgaEJKmQASFJKmRASJIKGRCSpEIGhCSpkAEhSSpkQEiSChkQkqRCBoQkqZABIUkqZEBIkgoZEJKkQgaEJKmQASFJKmRASJIKGRCSpEIGhCSpUPdaFyCpc6qbfletS2DVjPG1LqFDswUhSSpkQEiSChkQkqRCBoQkqVCHu0n9+H+92C5ufklSZ2cLQpJUyICQJBUyICRJhap6DyIiTgL+BegGfC8zZ7RYHuXlHwA2AOdk5tJq1iSp62gv9ys76hf2qtaCiIhuwHXAycDfAWdGxN+1WO1kYHD5NRW4vlr1SJJap5otiPcAKzPzGYCIuB2YBDzZbJ1JwC2ZmcAjEbF/RPTPzOeqWJck7VbtpSXTWtUMiIOBZ5tNNwJHVbDOwcBWARERUym1MAA2/vF/T1jetqV2WH2B52tdRDvhudjCc7GF52KLd7Z2g2oGRBTMy51Yh8y8EbgRICIWZ2bDrpfX8XkutvBcbOG52MJzsUVELG7tNtV8iqkRGNhsegCweifWkSTVQDUDYhEwOCIOiYg9gTOA+S3WmQ+cHSWjgRe9/yBJ7UPVLjFl5qaIuBD4OaXHXG/KzCciYlp5+Q3A3ZQecV1J6THXj1Ww6xurVHJH5LnYwnOxhediC8/FFq0+F1F6gEiSpK35TWpJUiEDQpJUqEMFREScFBFPRcTKiJhe63pqJSIGRsSCiFgREU9ExGdqXVMtRUS3iPhdRPys1rXUWvnLpvMi4vflfx9jal1TLUTEReX/N5ZHxJyI6FnrmnaniLgpIv4cEcubzTswIv49Iv6j/POAHe2nwwREhV13dBWbgM9n5hBgNHBBFz4XAJ8BVtS6iHbiX4B7MvNdwEi64HmJiIOBTwMNmTmM0kMyZ9S2qt1uJnBSi3nTgV9k5mDgF+Xp7eowAUGzrjsy8zVgc9cdXU5mPre5U8PMfJnSL4GDa1tVbUTEAGA88L1a11JrEbEv8D7g+wCZ+VpmvlDTomqnO/C2iOgO7E0X+35VZj4IrGsxexIwq/x+FvChHe2nIwXEtrrl6NIiog44AvhNjUuplW8B/wi8WeM62oNDgTXAzeVLbt+LiH1qXdTulpn/Bfwz8CdK3fa8mJn31raqduF/bP6eWfnn3+xog44UEBV1y9GVREQv4A7gs5n5Uq3r2d0iYgLw58xcUuta2onuwCjg+sw8AvgrFVxG6GzK19YnAYcABwH7RMRZta2qY+pIAWG3HM1ERA9K4XBrZv6o1vXUyFhgYkSsonTJ8f0RMbu2JdVUI9CYmZtbk/MoBUZXczzwn5m5JjNfB34EHF3jmtqD/46I/gDln3/e0QYdKSAq6bqjSygPtPR9YEVmXl3remolM7+QmQMys47Sv4f7M7PL/qWYmf8PeDYiNvfa+fds3b1+V/EnYHRE7F3+f+Xv6YI36wvMB6aU308BfrqjDao6olxb2lbXHTUuq1bGAv8APB4Ry8rzvpiZd9euJLUTnwJuLf8R9QyVdV/TqWTmbyJiHrCU0hN/v6OLdbkREXOAcUDfiGgELgNmAD+MiP9JKURP3eF+7GpDklSkI11ikiTtRgaEJKmQASFJKmRASJIKGRCSpEIGhDq0iFi/nWX7R8T51f7siKiLiI80m98QEdfsYNu6zT1tVrj+3eXjqeoxSc0ZEOrM9gd2xy/TOqApIDJzcWZ+utKNK1k/Mz9Q7nhvf3bPMUkGhDqHiLgkIhZFxGMR8dXy7BnAoIhYFhFXtVi/rjxmwvfKYwbcGhHHR8TD5f7y31Ne7/KIuLjZdsvLHSQ2NwM4pvw5F0XEuM1jU5S3/0FE3F/e7ycLam++fq+IuDkiHi8fy4fL81dFRN+Wx1Te96Rm+7o1Iibu4umUgA70TWppWyLiRGAwpS7hA5gfEe+j1FHdsMys38amh1H6NulUSl25fAR4LzAR+CIVdIdcNh24ODMnlOsZ12L5CErjduwD/C4i7trOvv4Xpd5Hh5f31XJQl62OKSKOBS4CfhoR+1Hqc2gKUhuwBaHO4MTy63eUuld4F6XA2JH/zMzHM/NN4AlKg6kk8Dily0Zt5aeZ+UpmPg8soBRk23I8pYGxAMjMv2xvx5n5AHBYRPwNcCZwR2ZuaoOaJVsQ6hQC+HpmfnermW+9FNTSxmbv32w2/SZb/t/YxNZ/SO3M0JUt+7PZXv82sYPlRX4AfJRSh4Ufb+W20jbZglBn8HPg4+XxMYiIg8t/Ub8M9N7Ffa+i3GV2RIyiNMZASzv6nEkR0TMi+lDqQG3Rdta9F7hw80TBJaaiz5oJfBagC3dgqSowINRhlYeT3FgeLew2YGFEPE5pHITembkWeLh8Y/mq7e1rO+4ADiz3mnse8HTBOo8BmyLi0Yi4qGD5b4G7gEeAr2Xm9sYxuRI4oFzzo8BxzRcWHVNm/jel7qxvbt2hSdtnb67qsCJiJPB/M3N71/RrKiIuB9Zn5j9X8TP2pnTfZFRmvlitz1HXYwtCHVJETAPmAF+udS21FBHHA78Hvm04qK3ZgpAkFbIFIUkqZEBIkgoZEJKkQgaEJKmQASFJKvT/AV8hX4ntJREgAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hist.plot1d(h, stack=True)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Now let's set them all to 1 to see that things change" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "tags": [] }, "outputs": [], "source": [ "h.set_wilson_coefficients(np.ones(h._nwc))" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{('ttHJet_privateUL17',): array([ 0.28840513, 3.14251926, 8.48740069, 11.90790139, 9.58551669,\n", " 5.25475153, 2.16472929, 1.33508699, 0.24890812, 0.03036111])}" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.values()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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sGzZMgYPHsyMGTMYMmTIJh3D9hyn2bNnc8opp2zS/jvCnoKkzXLppZcybNgwFi1axGWXXcbBBx/MokWLOOeccwC47777ilMgdXV13HTTTWvtY31zHJx99tnsuuuuzJs3b72BAC2T9ey3334sXLiQQw89lK997WvFay+//DL33HMPX/ziF4tlI0eO5M033+Tpp58GYM6cOZx44okA65zP4fjjj6e+vp7rrruORYsW0bdvXz772c8yd+5cFixYwOmnn86Xv/zlTjme67J8+XJuu+02PvShD3VZG6vYU5DUpQ4++OA1Jso57bTT1lqn9RwHAG+++SYHHnhgu9vYaqutOOmkk4CWORSOO+644rVVy9s68cQT+elPf8q0adOYM2cOc+bMAWDevHl885vfZPny5bz00kuMGjWKD3zgA2ts+8QTT9DY2MiRRx4JwNtvv130EtoO1b2+ZR1x8803M2HChC4/dQSGgqRuoLPnOGj9S3j77bdf5zonnXQSJ5xwAscddxwRwYgRI3jjjTc466yz1jufQ+t6R40aVQzR3dqgQYP4+9//Xjx/6aWXGDx48Ga9nxtuuKEqp47AUJC2ONW+hXTgwIG8+uqraz3uiPHjx/PpT3+ap556iuHDh7N8+XKamprYa6+9in1u6BfrO++8w9y5czn55JO5/vrr15pDYV2GDRtGnz59+PrXv170JlYFQOv5HI4//vi13tvee+9Nc3Mz8+fP58ADD+Stt97iySefZNSoUUycOJFZs2ZxxBFHEBHMnDmTww47rMPHZJVXXnmFe+65h1mzZm3yPjrCawqSNsugQYOYMGECo0ePZtasWfTt25dx48bx7W9/e6Pbrly5km222WaNOQ7Gjh3L+PHj+eMf/wjA1KlTef/737/BX6zbb789jz32GO95z3u46667+OpXv9qu2k866SRmzZpVXE/Yaaed+OQnP8mYMWP44Ac/uMZ8DqeddhpnnnkmdXV1vP3228ydO5fzzz+fcePGUVdXx+9+97ui3oEDBzJu3DjGjRvHsmXLOPfcc4v93HnnnQwdOrT4mj9/Pt/97ncZOnQoTU1NjB07lk984hPF+j//+c856qij1tvj6WzOp6AOcz6F7qWnzqewYsUKhg8fTmNjIzvuuONm7WvAgAEsW7askyrrmZxPQVKP1dDQQF1dHWedddZmB4I6l9cUJFVdfX09ixcv7vB2BxxwQDGF5io/+clPen0voTMZCtIWIDM3+7bHnuCBBx4ou4RuqTMvA3j6SOrh+vfvz9KlSzv1F4N6jsxk6dKl9O/fv1P2Z09B6uFW3bXS3NxcdikqSf/+/Rk6dGin7MtQkHq4fv36sccee5RdhrYQXXb6KCKuiYgXIqKx1bJdIuI3EfGnyvedu6p9SVLHdeU1hRnA0W2WTQPuzMwRwJ2V55KkbqLLQiEz7wXazgZxLDCz8ngm8MGual+S1HHVvvvonzLzeYDK93etb8WImBoRDRHR4AU0SaqObntLamZOz8z6zKyvqakpuxxJ6hWqHQp/i4ghAJXvL1S5fUnSBlQ7FG4CplQeTwF+WeX2JUkb0JW3pM4G5gN7R0RTRHwcuBQ4MiL+BBxZeS5J6ia67MNrmbm+aYIO76o2JUmbp9teaJYkVZ/DXKjH6g6T/TjRj7Y09hQkSQVDQZJUMBQkSQVDQZJUMBQkSQVDQZJUMBQkSQVDQZJUMBQkSQVDQZJUMBQkSQVDQZJUMBQkSQVDQZJUMBQkSQVDQZJUMBQkSQVDQZJUcDrOHqY7TEEpactlT0GSVDAUJEkFQ0GSVDAUJEkFQ0GSVCglFCLinIh4LCIaI2J2RPQvow5J0pqqHgoRsRtwNlCfmaOBPsDJ1a5DkrS2sk4f9QW2jYi+wHbAcyXVIUlqpeqhkJn/BXwLeAZ4HnglM29vu15ETI2IhohoaG5urnaZktQrlXH6aGfgWGAPYFdg+4g4te16mTk9M+szs76mpqbaZUpSr1TG6aMjgL9kZnNmvgX8DDiohDokSW2UEQrPAOMjYruICOBwYHEJdUiS2ijjmsIDwFxgIfBopYbp1a5DkrS2UkZJzcwLgQvLaFuStH5+olmSVDAUJEkFQ0GSVDAUJEkFQ0GSVDAUJEkFQ0GSVDAUJEkFQ0GSVDAUJEmFDodCROwcEWO7ohhJUrnaFQoRcXdE7BARuwAPA9dGxOVdW5okqdra21PYMTP/ARwHXJuZ76FlXgRJ0hakvaHQNyKGACcCt3RhPZKkErU3FL4G/Bp4KjMfjIg9gT91XVmSpDK0dz6F5zOzuLicmU97TUGStjzt7Sn8ZzuXSZJ6sA32FCLiQOAgoCYivtDqpR2APl1ZmCSp+jZ2+mhrYEBlvYGtlv8DOL6ripIklWODoZCZ9wD3RMSMzPxrlWqSJJWkvReat4mI6UBt620y831dUZQkqRztDYX/C/wAuBp4u+vKkSSVqb2hsDIzr+rSSiRJpWvvLak3R8RZETEkInZZ9dWllUmSqq69PYUple/ntVqWwJ6dW44kqUztCoXM3KMzG42InWi5PjGalnA5PTPnd2YbkqSOa+/Q2dtFxFcqdyARESMiYtJmtPsd4LbM3AcYByzejH1JkjpJe68pXAu8ScunmwGagEs2pcGI2AE4BPgRQGa+mZkvb8q+JEmdq72hMCwzvwm8BZCZrwOxiW3uCTTTMlHPQxFxdURs33aliJgaEQ0R0dDc3LyJTUmSOqK9ofBmRGxLy/l/ImIYsGIT2+wL7AdclZn7Aq8B09qulJnTM7M+M+tramo2sSlJUke0NxQuAm4Ddo+I64A7gS9tYptNQFNmPlB5PpeWkJAklay9dx/dHhELgPG0nDb6XGa+uCkNZuZ/R8SzEbF3Zj4BHA48vin7kiR1rnaFQkTcBMwGbsrM1zqh3c8C10XE1sDTwMc6YZ+SpM3U3g+v/W/gJODSiPgDMAe4JTPf2JRGM3MRUL8p20qSuk57Tx+tGkK7D/A+4JPANbRMtiNJ2kK0t6dA5e6jD9DSY9gPmNlVRUmSytHeawpzgANouQPpSuDuzHynKwuTJFVfe3sK1wIfzkznUpCkLdgGP6cQEV8CyMzbgOPavPYfXViXJKkEG/vw2smtHl/Q5rWjO7kWSVLJNhYKsZ7H63ouSerhNnZNIdfzeF3PpV6ndtqtZZcAwJJLjym7BG0hNhYK4yLiH7T0CratPKbyvH+XViZJqroNhkJm9qlWIZKk8rV3lFRJUi9gKEiSCoaCJKlgKEiSCoaCJKlgKEiSCoaCJKlgKEiSCoaCJKlgKEiSCoaCJKlgKEiSCoaCJKlgKEiSCoaCJKlgKEiSCqWFQkT0iYiHIuKWsmqQJK2pzJ7C54DFJbYvSWqjlFCIiKHAMcDVZbQvSVq3snoKVwBfAt5Z3woRMTUiGiKiobm5uWqFSVJvVvVQiIhJwAuZuWBD62Xm9Mysz8z6mpqaKlUnSb1bGT2FCcDkiFgC3AC8LyJmlVCHJKmNqodCZl6QmUMzsxY4GbgrM0+tdh2SpLX5OQVJUqFvmY1n5t3A3WXWIElazZ6CJKlgKEiSCoaCJKlgKEiSCoaCJKlgKEiSCoaCJKlgKEiSCoaCJKlQ6ieae5LaabeWXYIkdTl7CpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSpUfZKdiNgd+DHwP4B3gOmZ+Z1q1yFtSbrDJFBLLj2m7BLUCcqYeW0l8MXMXBgRA4EFEfGbzHy8hFokSa1U/fRRZj6fmQsrj18FFgO7VbsOSdLaSr2mEBG1wL7AA+t4bWpENEREQ3Nzc9Vrk6TeqLRQiIgBwI3A5zPzH21fz8zpmVmfmfU1NTXVL1CSeqFSQiEi+tESCNdl5s/KqEGStLaqh0JEBPAjYHFmXl7t9iVJ61dGT2EC8G/A+yJiUeXrX0uoQ5LURtVvSc3M3wJR7XYlSRvnJ5olSQVDQZJUMBQkSQVDQZJUMBQkSQVDQZJUKGOUVElboO4wfDc4hPfmsqcgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSoYCpKkgqEgSSpEZpZdw0ZtM2REDplyRdllSFK7dJfZ3yJiQWbWd2QbewqSpEIpoRARR0fEExHxVERMK6MGSdLaqh4KEdEHuBJ4P/DPwCkR8c/VrkOStLa+JbT5L8BTmfk0QETcABwLPF5CLZLU6Wqn3Vp2CZusjFDYDXi21fMm4IC2K0XEVGBq5emKv/6vSY1VqK0nGAy8WHYR3YTHYjWPxWoei9X27ugGZYRCrGPZWrdAZeZ0YDpARDR09Ar6lspjsZrHYjWPxWoei9UioqGj25RxobkJ2L3V86HAcyXUIUlqo4xQeBAYERF7RMTWwMnATSXUIUlqo+qnjzJzZUR8Bvg10Ae4JjMf28hm07u+sh7DY7Gax2I1j8VqHovVOnwsesQnmiVJ1eEnmiVJBUNBklTo1qHgcBgtImL3iJgXEYsj4rGI+FzZNZUtIvpExEMRcUvZtZQpInaKiLkR8cfK/48Dy66pLBFxTuXnozEiZkdE/7JrqqaIuCYiXoiIxlbLdomI30TEnyrfd97YfrptKDgcxhpWAl/MzJHAeODTvfhYrPI5YHHZRXQD3wFuy8x9gHH00mMSEbsBZwP1mTmalptYTi63qqqbARzdZtk04M7MHAHcWXm+Qd02FGg1HEZmvgmsGg6j18nM5zNzYeXxq7T84O9WblXliYihwDHA1WXXUqaI2AE4BPgRQGa+mZkvl1pUufoC20ZEX2A7etnnnzLzXuClNouPBWZWHs8EPrix/XTnUFjXcBi99hfhKhFRC+wLPFByKWW6AvgS8E7JdZRtT6AZuLZyKu3qiNi+7KLKkJn/BXwLeAZ4HnglM28vt6pu4Z8y83lo+eMSeNfGNujOodCu4TB6k4gYANwIfD4z/1F2PWWIiEnAC5m5oOxauoG+wH7AVZm5L/Aa7Tg9sCWqnCs/FtgD2BXYPiJOLbeqnqk7h4LDYbQSEf1oCYTrMvNnZddTognA5IhYQsspxfdFxKxySypNE9CUmat6jXNpCYne6AjgL5nZnJlvAT8DDiq5pu7gbxExBKDy/YWNbdCdQ8HhMCoiImg5b7w4My8vu54yZeYFmTk0M2tp+T9xV2b2yr8IM/O/gWcjYtVImIfTe4egfwYYHxHbVX5eDqeXXnRv4yZgSuXxFOCXG9ugjFFS22UTh8PYUk0A/g14NCIWVZb9e2b+qryS1E18Friu8ofT08DHSq6nFJn5QETMBRbScrfeQ/Sy4S4iYjYwERgcEU3AhcClwE8j4uO0BOcJG92Pw1xIklbpzqePJElVZihIkgqGgiSpYChIkgqGgiSpYCioR4mIZRt4baeIOKur246I2oj4cKvl9RHx3Y1sW7tq9Mp2rv+ryvvp0vcktWUoaEuyE1CNX6C1QBEKmdmQmWe3d+P2rJ+Z/1oZ3G4nqvOeJMBQUA8VEedFxIMR8UhEfK2y+FJgWEQsiojL2qxfW5lz4OrKePvXRcQREXF/Zaz5f6msd1FEnNtqu8bKIIStXQocXGnnnIiYuGpeh8r2P4mIuyr7/eQ6am+9/oCIuDYiHq28lw9Vli+JiMFt31Nl38e22td1ETF5Mw+nVOi2n2iW1icijgJG0DK8egA3RcQhtAwGNzoz69az6XBaPtE5lZZhVD4MvBeYDPw77RhWuGIacG5mTqrUM7HN62Npmfdie+ChiLh1A/v6n7SM6Dmmsq+2k6Cs8Z4i4lDgHOCXEbEjLeP7TEHqJPYU1BMdVfl6iJZhDfahJSQ25i+Z+WhmvgM8RsvkIwk8Ssspoc7yy8x8PTNfBObREl7rcwQtk0kBkJl/39COM/MeYHhEvAs4BbgxM1d2Qs0SYE9BPVMA38jMH66xcO3TPG2taPX4nVbP32H1z8JK1vxjaVOmdGw7dsyGxpKJjby+Lj8BPkLLgICnd3BbaYPsKagn+jVwemV+CSJit8pfzq8CAzdz30uoDD8dEfvRMj5/Wxtr59iI6B8Rg2gZoOzBDax7O/CZVU/WcfpoXW3NAD4P0IsHiVQXMRTUY1SmWVxRmVHremB+RDxKyzwCAzNzKXB/5eLwZRva1wbcCOxSGY32U8CT61jnEWBlRDwcEees4/U/ALcCvwe+npkbmgfkEmDnSs0PA4e1fnFd7ykz/0bLsNDXduytSRvnKKnqMSJiHPB/MnND5+hLFREXAcsy81td2MZ2tFwH2S8zX+mqdtQ72VNQjxARZwKzga+UXUuZIuII4I/AfxoI6gr2FCRJBXsKkqSCoSBJKhgKkqSCoSBJKhgKkqTC/wcDx2briozpmQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hist.plot1d(h, stack=True)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "There's one last thing we must due in order to produce the predicted event yields.
\n", "The EFT samples come normalized to $\\sigma * w_{\\mathrm{gen}}$
\n", "In order to produce event yeilds, we must scale them by $\\frac{\\mathcal{L}}{\\sum{w_{\\mathrm{event}}^{\\mathrm{SM}}}}$ , where $\\sum{w_{\\mathrm{event}}^{\\mathrm{SM}}}$ is the sum of the event weights, evaluated at the SM." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, load the `SumOfEFTweights` histogram" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "sow = hists['SumOfEFTweights'] #get histogram with sum of EFT weights" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, set the WCs to the SM values of 0" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "sow.set_wilson_coefficients(np.zeros(sow._nwc)) #set to SM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now sum over all the samples" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "scrolled": true }, "outputs": [], "source": [ "sow = sow.sum('sample')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, get the stored value" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sum of EFT weights 39430.66101814883\n" ] } ], "source": [ "smsow = np.sum(sow.values()[()])\n", "print('Sum of EFT weights', smsow)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can scale the desired histogram by $\\frac{\\mathcal{L}}{\\sum{w_{\\mathrm{event}}^{\\mathrm{SM}}}}$" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scaling by 1.5140501949110556\n" ] } ], "source": [ "h.set_wilson_coefficients(np.zeros(h._nwc))\n", "wgt = 1000*59.7/smsow\n", "print('Scaling by', wgt)\n", "h.scale(wgt) #2018 lumi of 59.7 fb^-1" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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/pb999+f9ddffyJDnDTjqTEEICJeDGwBdDUNTWZ+YbznlBZl/dBkOJkmqjlS09P222/P6aefDsABBxzAAQccsND2xrpeNSn/85//ZP/99+fMM8/kqquuYrXVVmO33XbjE5/4BE9/+tMBOOqoo9h7770XHBMRzJkzZ0zNqY2yzjrrLO6//34OOugg/va3v7HKKquw5ZZbsv/++7PBBhssdExE8N73vpeDDz6Y97znPZx88sl88Ytf5MMf/vCC65uZ3HDDDay55po861nP4qabbhrSJHrxxRez6aab8tznPpcrrrgCgCeffJKjjz6a733ve1xzzTXcf//9rLbaarzsZS/j05/+NOuuu27X16Cba9kr22yzDSuvvDIAV155Jaeddtqoy7jnnnvYe++9efGLX8znPve5iQ5x0ow5MazmJvwp8PpuD6GMZO46MYyIpYDPAa8E1qdMd3MJcFBmntdlGQcBWw6zyycy89JuY5IkTZ6tttqKBx98kHPOOYd1112Xddddl2uuuYYVV1xxoXWNBGQqnX/++dRqNW699Vae9axnsdlmm/H3v/+dr3zlKxx//PH88Y9/ZM0112S11VZj5513XjBQYrvttht3M+Kxxx7L17/+dWbPns3GG2/M1VdfzbHHHsu8efM47rjjhjRnPvDAA+ywww5cdtllrLXWWqy22mpDylxjjTXYaqutOOecczj33HPZaqutFtp+/PHHA/D2t799wbqDDjqIAw88kMUXX5zNNtuMpZdemiuuuIIf/OAH/OY3v+Fvf/sbq6666ojXoNtr2Ssf/ehHF/z7qKOOGlNiuM8++3Dffffxk5/8hMUXH3HK574xnhrD9wJvqP59I3AW8MC4I6pExFOAs4FNgH9REsIVgRqwS0S8JTOP7aKo3SjzKHZy8HhjlSRNjC9/+csLBpq87W1vGzL4pHndVMpM3v3ud3Pbbbdx+OGH8973vheAhx56iA984AP88Ic/5L3vfS8nn3wyO+20EzvttNOCgRcT0a/vsMMOY7fdduMnP/kJs2fPJjM56KCDOOCAA3j/+9/PlVdeyRJLLLFg/2OOOYbNN9+cq666atiR2LvvvjvnnHMOJ554YtvEMCJ461vfCsDjjz/OoYceygorrMBf/vIXnve85y1Y/653vYujjjqKk08+mb333nvYazCaazld/fnPf+aYY47hwAMP5NnPfnavwxmVMd8SD3gHpQbwJGC9zHxzZv7HSI9RlL8PJSn8PfDszNwmM9enJKMBfCsilh6ugCj14usAF2VmdHj8ZSxPXpLUP04//fQFU7G0e8yZM2dc5Z9wwglccMEFvOtd71qQyADMnj2b733ve2y44YaccsopXHNN13eKHZWVVlqJo48+mtmzZwOlaXb//fdnp5124rrrruPnP//5Qvs/8cQTHHHEESNOz7P77rsDcOKJJy60/rLLLuPyyy/nJS95yYJr989//pOXv/zl/Nd//deCpBBg1qxZvOUtbwHKtEAj6fW1nAqf+tSnWHXVVUccuNKPxlNj+Jxq+ZnMfGQigmnxxmr50cz8V2NlZv4yIn5NqTncmFJT2ckzgdnA9H13SZJGtOKKKw6p8Wr20EMPjWvuvvPOK72XGolUs1mzZvGa17yGSy+9lLPPPntSmrnf9KY3sfTSQ+tC3vWud3Hqqady4YUXLqjZA1hzzTXZcMMNRyx3zTXXZMstt+Tcc8/lqquuYr311gPguOOOAxZuRn7mM5/Z9o4bjz766IL9u9HraznZjj/+eM466yy+853vtH3N+t14EsPHquX8CYijnbWARzr0/7uCkhiuzfCJYeMddfUExyZJ6iObbLLJsE2P119//bhqDa++unyNvOIVrxh2vzvvnJw7vz7nOc9pu76ROP3jH/9YaP0znvGMrsvefffdOffcc/nVr37FJz/5SaAkN0suuSRvfOMbh+x/+umnc8opp3D55Zdz7bXXctVVV/Hoo492fb5eX8vJ9qUvfYnll19+ocE308l4EsMLgB2BDYFzJyachezBYPLZau1qefMIZTQSw+sjYgDYBlgcuAg4LjNHrvOWJM1IX//61wH48Ic/vND6dlOUPP744wC8+MUvZplllulY5mTNVTdrVvuv68aghkceWbjhbqmlluq67N13351PfepTnHjiiXzyk5/kyiuv5O9//zu77747K6ywwoL9Hn74YfbZZx9++MMfsvTSS7Plllvy0pe+lPe85z3Mnj2bd73rXV2dbzzXcqTpY3p9K9tzzjmHv/3tb7zvfe9b0Ow/3YwnMfwKsAPwWeB1ExJNk+pOKwtExLKUpuG3UkZCXwj8eYRi1qmWXwWa63PfBuwXEftk5tETErAkaVr5yEc+AsD73//+hQZu3HPPPQALjSRt1MwdeOCB7LDDDlMXZOXaa69tu77RD69TjWI35syZwxZbbMFZZ53F7bff3nY0MsCPf/xjfvjDH/KOd7yDb3/72wsldX/4wx+6Pt9YrmVjhPINN9ww7H6NPo5rr732sPtNlsMPPxyA//iP0Qyp6C9jHnySmadS7n386oj4eUSsM9IxYxURO1JGJl8J7EdJCF+ZmU+OcGijxvAuYBfKqOa1qzKWAo6IiOd1OFaSNIOtvvrqwNCk68orrwRYqH/bJptsAsDvfve7tmXtt99+7Lbbbtx+++2TESrHH3982+baI444YqH4xmr33XfnySefpF6vc9xxx7HyyisPmQLn1FNPBUpC3VrTd9ZZw/XqWthYruXzn/98YOggmWbXX3895557LostttiC/afSAw88wLHHHstznvMctthiiyk//0QZc2IYEd+mTANzEWWk8FURcXNE/Dki/tDhceoYT3cX8FtKLeHDwIuBgyNipBrPk4B9gRdl5m8y857MvK6aZPsAYAmg47wHW2yxRdePuXPnjvGpSZLauffee7taN1YvfOELAdh///157LHSc+mWW27hu9/9LgAvfelLF+y7xx57sM4663DYYYctqFEDeOyxxzjiiCM4+OCDueGGG4Y0f/7rX/+akObNm266iYGBgQXJYWZy8MEHc8opp7DGGmssNPBkLBoDQb7+9a9z0UUXscceeyxUiwqw3HLLAQvXDmYmP//5zznkkEMAuPvuu4eU3XoNxnIt3/a2t7Haaqtxwgkn8LGPfWzI++Dss89m11135YEHHmibuE6FP/zhDzz00EMTdj/kuXPndp2DTKTxNCW/jzJdTfNU6c+sHp2M6X9HZl4I7AwQEc8AjgHeTRn48sVhjvvJMMV+BzgE6PizojFySpI0dZ72tKcBcOSRR3LjjTfyxje+ccH0KM3r9thjj3Gd58tf/jKnnHIKxx57LH/6059Yc801+fvf/87999/PjjvuyJ577rlg3yWWWIK5c+fyhje8gd13333BRNYXXXQRDzzwACuuuCI/+cnCXzlPe9rTmD9/PjvssAMbbLAB3/nOd8Yc684778xPf/pTTjzxRDbccEOuuuoq7rzzTpZeemkOP/xwllxyyTGXDbDWWmux+eabc/755wNDm5EB3vnOd/KjH/2IT37yk3zlK1/huc99Ltdeey233XYbH/jAB5g7dy7f/e53ue222zj22DLNcLtr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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import mplhep\n", "plt.style.use(mplhep.style.CMS)\n", "\n", "fig, ax = plt.subplots(1,1) #create an axis for plotting\n", "hist.plot1d(h, ax=ax, stack=True)\n", "ax.legend()\n", "\n", "# add some labels\n", "lumi = mplhep.cms.label(ax=ax, lumi=59.7, label=\"Preliminary\")" ] } ], "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 }