Skip to content

Instantly share code, notes, and snippets.

@andrzejnovak
Created June 17, 2024 16:08
Show Gist options
  • Save andrzejnovak/e29f1e3d02e8c3edc463f86eea181fc4 to your computer and use it in GitHub Desktop.
Save andrzejnovak/e29f1e3d02e8c3edc463f86eea181fc4 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 119,
"id": "6b368849-3c1c-4740-80eb-12aa92744cc3",
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"import os\n",
"import rhalphalib as rl\n",
"import numpy as np\n",
"import scipy.stats\n",
"import pickle\n",
"import mplhep as hep\n",
"import matplotlib.pyplot as plt\n",
"import logging"
]
},
{
"cell_type": "code",
"execution_count": 120,
"id": "fe8a84dd",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T18:56:43.972341Z",
"start_time": "2024-03-27T18:56:43.787304Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Welcome to JupyROOT 6.26/04\n"
]
}
],
"source": [
"import sys\n",
"import os\n",
"import rhalphalib as rl\n",
"import numpy as np\n",
"import scipy.stats\n",
"import pickle\n",
"import mplhep as hep\n",
"import matplotlib.pyplot as plt\n",
"\n",
"rl.util.install_roofit_helpers()\n",
"rl.ParametericSample.PreferRooParametricHist = False\n",
"\n",
"msdbins = np.linspace(40, 201, 24)\n",
"msd = rl.Observable(\"msd\", msdbins)\n",
"\n",
"def expo_sample(norm, scale, obs):\n",
" cdf = scipy.stats.expon.cdf(scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"\n",
"def gaus_sample(norm, loc, scale, obs):\n",
" cdf = scipy.stats.norm.cdf(loc=loc, scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5a13c0c4",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:34.381675Z",
"start_time": "2024-03-27T19:25:34.105835Z"
}
},
"outputs": [
{
"data": {
"image/png": "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nebMmT17tubOnav58+drw4YN6t69u7KysnTw4MEIVt4yjz32mObNm6dnn31W27Zt02OPPabZs2frmWeecebY1N/+/fs1ZMgQPffcc82Ot6SXcePGaevWrSouLtayZcu0bt063XXXXSerheM6Xn9ff/21Nm/erAcffFCbN2/Wm2++qYqKCl177bUh82zt70iLFy/W+++/3+wt1G3u71//+pcuueQSDRgwQGvXrtVHH32kBx98UHFxcc6cjvyZ+m39TZkyRStWrNArr7yibdu2KT8/X3l5eVqyZIkzp6P2V1JSotzcXL3//vsqLi5WQ0ODRo0apf379ztzvq32w4cPKzs7W/X19Vq/fr0WLFigwsJCzZgxo32LNzimvXv3mnPOOccUFxebyy67zNxzzz3GGGNqa2tN165dzaJFi5y527ZtM5KMz+eLULWtU1BQYC655JJjjjc2Nprk5GTz+OOPO8dqa2uNy+Uyf/3rX09GiSckOzvb3H777SHHRo8ebcaNG2eMsbs/SWbx4sXO1y3p5eOPPzaSzKZNm5w5y5cvN1FRUeaLL744abW3xDf7a87GjRuNJPPZZ58ZYzpHf59//rk588wzzZYtW8xZZ51lnnrqKWfM9v5uuukmc8sttxzzPTZ9pjbX33nnnWceeeSRkGNDhw41999/vzHGrv5qamqMJFNSUmKMaVntf/vb30x0dLTx+/3OnHnz5hm3223q6urarVZ2YI4jNzdX2dnZyszMDDleWlqqhoaGkOMDBgxQv3795PP5TnaZbbJkyRINHz5cP/3pT5WYmKgLLrhAf/rTn5zxnTt3yu/3h/To8Xg0YsQIK3q86KKLtGrVKn3yySeSpH/+85967733dNVVV0myv78jtaQXn8+nhIQEDR8+3JmTmZmp6Ohobdiw4aTXfKICgYCioqKc553Z3l9jY6PGjx+vqVOn6rzzzjtq3Ob+GhsbVVRUpO9973vKyspSYmKiRowYEfJrGNs/Uy+66CItWbJEX3zxhYwxWrNmjT755BONGjVKkl39BQIBSVKvXr0ktax2n8+njIyMkBvNZmVlKRgMauvWre1WKwHmGF577TVt3rxZM2fOPGrM7/crNjb2qIdFJiUlye/3n6QKT8y///1vzZs3T+ecc45WrlypSZMm6Ve/+pUWLFggSU4f37zzsS093nfffRo7dqwGDBigrl276oILLlB+fr7GjRsnyf7+jtSSXvx+vxITE0PGY2Ji1KtXL+v6PXjwoAoKCnTzzTc7D5Ozvb/HHntMMTEx+tWvftXsuM391dTUaN++fZo1a5auvPJKvfPOO7rhhhs0evRolZSUSLL/M/WZZ55Renq6UlNTFRsbqyuvvFLPPfecLr30Ukn29NfY2Kj8/HxdfPHFGjRokKSW1e73+5v9/Gkaay8d9lECkbRr1y7dc889Ki4uDvkdbWfS2Nio4cOH6w9/+IMk6YILLtCWLVs0f/585eTkRLi6E/fGG2/o1Vdf1cKFC3XeeeeprKxM+fn5SklJ6RT9naoaGhr0s5/9TMYYzZs3L9LlhEVpaanmzJmjzZs3KyoqKtLlhF1jY6Mk6brrrtPkyZMlSeeff77Wr1+v+fPn67LLLotkeWHxzDPP6P3339eSJUt01llnad26dcrNzVVKSspRO/gdWW5urrZs2aL33nsv0qW0CDswzSgtLVVNTY2GDh2qmJgYxcTEqKSkRHPnzlVMTIySkpJUX1+v2trakPdVV1crOTk5MkW30hlnnKH09PSQYwMHDnSuCmjq45tnmtvS49SpU51dmIyMDI0fP16TJ092dtRs7+9ILeklOTlZNTU1IeOHDh3Snj17rOm3Kbx89tlnKi4udnZfJLv7e/fdd1VTU6N+/fo5nzefffaZ7r33Xp199tmS7O6vT58+iomJ+dbPG1s/Uw8cOKDf/OY3evLJJ3XNNddo8ODBysvL00033aQ//vGPkuzoLy8vT8uWLdOaNWuUmprqHG9J7cnJyc1+/jSNtRcCTDOuuOIKlZeXq6yszHkNHz5c48aNc/7ctWtXrVq1ynlPRUWFKisr5fV6I1h5y1188cVHXSr3ySef6KyzzpIkpaWlKTk5OaTHYDCoDRs2WNHj119/rejo0L/eXbp0cf41aHt/R2pJL16vV7W1tSotLXXmrF69Wo2NjRoxYsRJr7m1msLLjh079Pe//129e/cOGbe5v/Hjx+ujjz4K+bxJSUnR1KlTtXLlSkl29xcbG6sLL7zwuJ83w4YNs/YztaGhQQ0NDcf9vOnI/RljlJeXp8WLF2v16tVKS0sLGW9J7V6vV+Xl5SEhu+kfGd8MruEuHi1w5FVIxhgzceJE069fP7N69WrzwQcfGK/Xa7xeb+QKbKWNGzeamJgY8/vf/97s2LHDvPrqq6Zbt27mlVdecebMmjXLJCQkmLffftt89NFH5rrrrjNpaWnmwIEDEay8ZXJycsyZZ55pli1bZnbu3GnefPNN06dPHzNt2jRnjk397d2713z44Yfmww8/NJLMk08+aT788EPnKpyW9HLllVeaCy64wGzYsMG899575pxzzjE333xzpFoKcbz+6uvrzbXXXmtSU1NNWVmZ+fLLL53XkVc42Npfc755FZIxdvf35ptvmq5du5oXX3zR7NixwzzzzDOmS5cu5t1333XW6Mifqd/W32WXXWbOO+88s2bNGvPvf//bvPzyyyYuLs48//zzzhodtb9JkyYZj8dj1q5dG/L/1tdff+3M+bbaDx06ZAYNGmRGjRplysrKzIoVK8zpp59upk+f3q61E2Ba6JsB5sCBA+aXv/ylOe2000y3bt3MDTfcYL788svIFdgGS5cuNYMGDTIul8sMGDDAvPjiiyHjjY2N5sEHHzRJSUnG5XKZK664wlRUVESo2tYJBoPmnnvuMf369TNxcXHmO9/5jrn//vtDfuDZ1N+aNWuMpKNeOTk5xpiW9fLf//7X3HzzzaZHjx7G7Xab2267zezduzcC3RzteP3t3Lmz2TFJZs2aNc4atvbXnOYCjO39/fnPfzb9+/c3cXFxZsiQIeatt94KWaMjf6Z+W39ffvml+cUvfmFSUlJMXFycOffcc80TTzxhGhsbnTU6an/H+n/r5Zdfdua0pPZPP/3UXHXVVSY+Pt706dPH3HvvvaahoaFda4/6/wYAAACswTkwAADAOgQYAABgHQIMAACwDgEGAABYhwADAACsQ4ABAADWIcAAAADrEGAAAIB1CDAAAMA6BBgAAGAdAgwAALAOAQYAAFjn/wBl+sSBuwB9IQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"yb, yc = 5e3, 2e3\n",
"srfb, srfc = 0.8, 0.8\n",
"a = expo_sample(1e5, 150, msd)[0]\n",
"b = gaus_sample(yb*srfb, 80, 6, msd)[0]\n",
"c = gaus_sample(yc*srfc, 120, 6, msd)[0]\n",
"hep.histplot([a, b, c], bins=msd.binning, stack=True, histtype='fill');\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "b35a15fd",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-28T19:24:55.687524Z",
"start_time": "2024-03-28T19:24:54.750766Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGdCAYAAAAMm0nCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAu5klEQVR4nO3df1iVdZ7/8ReCHPHHOaQGB0Y0ykpRNNNWz1T2QwY0+qntZplSWV660KQ4SmxmZbNhNpX2S7dtJt0rnbK9tDFYNULFStSiGJGMzDQsPeBmcNQUUe7vH/PlXk+igR6EDz4f13Vf67k/n/M5n/deM4fXfM59f+4gy7IsAQAAGKRNc08AAACgsQgwAADAOAQYAABgHAIMAAAwDgEGAAAYhwADAACMQ4ABAADGIcAAAADjhDT3BJpKbW2t9uzZo06dOikoKKi5pwMAABrAsiwdOHBA0dHRatPm1OssrTbA7NmzRzExMc09DQAAcAZ2796tbt26nbK91QaYTp06SfrH/wOcTmczzwYAADSEz+dTTEyM/Xf8VFptgKn72cjpdBJgAAAwzK9d/sFFvAAAwDgEGAAAYBwCDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4xBgAACAcQgwAADAOI0KMPPnz1e/fv3s3W09Ho9Wrlxpt19//fUKCgryOyZOnOg3RllZmZKTk9W+fXtFRERo2rRpOnbsmF+fdevW6corr5TD4VDPnj21cOHCM68QAAC0Oo16lEC3bt00e/ZsXXrppbIsS4sWLdJtt92mL774Qn369JEkPfTQQ5o1a5b9nvbt29v/Pn78uJKTk+V2u7Vhwwbt3btX48aNU9u2bfXMM89Iknbu3Knk5GRNnDhRixcvVl5enh588EFFRUUpKSkpEDUDAADDBVmWZZ3NAJ07d9Zzzz2n8ePH6/rrr9cVV1yhuXPn1tt35cqVuvnmm7Vnzx5FRkZKkhYsWKCMjAzt27dPoaGhysjIUE5OjrZu3Wq/b/To0aqsrNSqVasaPC+fzyeXy6WqqiqehQQAgCEa+vf7jK+BOX78uN5++20dOnRIHo/HPr948WJ17dpVffv2VWZmpn7++We7raCgQPHx8XZ4kaSkpCT5fD6VlJTYfRISEvw+KykpSQUFBaedT3V1tXw+n98BAABap0Y/jbq4uFgej0dHjhxRx44dtXz5csXFxUmS7rnnHvXo0UPR0dHasmWLMjIyVFpaqmXLlkmSvF6vX3iRZL/2er2n7ePz+XT48GGFhYXVO6+srCw99dRTjS0HAAAYqNEB5vLLL1dRUZGqqqr03//930pJSVF+fr7i4uI0YcIEu198fLyioqI0bNgw7dixQ5dccklAJ/5LmZmZSk9Pt1/7fD7FxMQ0yWdd9GhOQMfbNTs5oOMBANDaNfonpNDQUPXs2VMDBw5UVlaW+vfvr3nz5tXbd/DgwZKkb775RpLkdrtVXl7u16futdvtPm0fp9N5ytUXSXI4HPbdUXUHAABonc56H5ja2lpVV1fX21ZUVCRJioqKkiR5PB4VFxeroqLC7pObmyun02n/DOXxeJSXl+c3Tm5urt91NgAA4PzWqJ+QMjMzNWLECHXv3l0HDhzQkiVLtG7dOq1evVo7duzQkiVLdNNNN6lLly7asmWLpkyZoqFDh6pfv36SpMTERMXFxWns2LGaM2eOvF6vZsyYodTUVDkcDknSxIkT9corr2j69Ol64IEHtGbNGi1dulQ5OYH92QYAAJirUQGmoqJC48aN0969e+VyudSvXz+tXr1av/vd77R79259+OGHmjt3rg4dOqSYmBiNGjVKM2bMsN8fHBys7OxsTZo0SR6PRx06dFBKSorfvjGxsbHKycnRlClTNG/ePHXr1k1vvPEGe8AAAADbWe8D01I15T4wXMQLAEDTaPJ9YAAAAJoLAQYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA4BBgAAGKdRz0JC0+DRBAAANA4rMAAAwDgEGAAAYBwCDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4xBgAACAcQgwAADAOAQYAABgHAIMAAAwDgEGAAAYhwADAACMw9OoYa4nXQEeryqw4wEAmgwrMAAAwDiswLRCFz2aE7Cxds1ODthYAAAECiswAADAOAQYAABgHAIMAAAwDgEGAAAYhwADAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA47MSLcyvQzy8CAJyXWIEBAADGYQUGp8eKCQCgBWIFBgAAGKdRKzDz58/X/PnztWvXLklSnz59NHPmTI0YMUKSdOTIEU2dOlVvv/22qqurlZSUpNdee02RkZH2GGVlZZo0aZLWrl2rjh07KiUlRVlZWQoJ+b+prFu3Tunp6SopKVFMTIxmzJih++677+yrRaNddGRJQMfb1e6egI4HADg/NWoFplu3bpo9e7YKCwv12Wef6cYbb9Rtt92mkpISSdKUKVP0/vvv691331V+fr727NmjkSNH2u8/fvy4kpOTdfToUW3YsEGLFi3SwoULNXPmTLvPzp07lZycrBtuuEFFRUWaPHmyHnzwQa1evTpAJQMAANMFWZZlnc0AnTt31nPPPac777xTF154oZYsWaI777xTkvTVV1+pd+/eKigo0JAhQ7Ry5UrdfPPN2rNnj70qs2DBAmVkZGjfvn0KDQ1VRkaGcnJytHXrVvszRo8ercrKSq1atarB8/L5fHK5XKqqqpLT6TybEk9y0aM5AR3vfNKiV2CerGruGQDAea+hf7/P+BqY48eP6+2339ahQ4fk8XhUWFiompoaJSQk2H169eql7t27q6CgQJJUUFCg+Ph4v5+UkpKS5PP57FWcgoICvzHq+tSNcSrV1dXy+Xx+BwAAaJ0aHWCKi4vVsWNHORwOTZw4UcuXL1dcXJy8Xq9CQ0MVHh7u1z8yMlJer1eS5PV6/cJLXXtd2+n6+Hw+HT58+JTzysrKksvlso+YmJjGlgYAAAzR6ABz+eWXq6ioSJs2bdKkSZOUkpKiL7/8sinm1iiZmZmqqqqyj927dzf3lAAAQBNp9D4woaGh6tmzpyRp4MCB+vTTTzVv3jzdddddOnr0qCorK/1WYcrLy+V2uyVJbrdbmzdv9huvvLzcbqv7v3XnTuzjdDoVFhZ2ynk5HA45HI7GlgMAAAx01vvA1NbWqrq6WgMHDlTbtm2Vl5dnt5WWlqqsrEwej0eS5PF4VFxcrIqKCrtPbm6unE6n4uLi7D4njlHXp24MAACARq3AZGZmasSIEerevbsOHDigJUuWaN26dVq9erVcLpfGjx+v9PR0de7cWU6nUw8//LA8Ho+GDBkiSUpMTFRcXJzGjh2rOXPmyOv1asaMGUpNTbVXTyZOnKhXXnlF06dP1wMPPKA1a9Zo6dKlysnhzh8AAPAPjQowFRUVGjdunPbu3SuXy6V+/fpp9erV+t3vfidJevHFF9WmTRuNGjXKbyO7OsHBwcrOztakSZPk8XjUoUMHpaSkaNasWXaf2NhY5eTkaMqUKZo3b566deumN954Q0lJSQEqGQAAmO6s94FpqdgHpmVq0fvABBr7ygBAozX5PjAAAADNhQADAACMQ4ABAADGafQ+MMDZCOTTrc+r62kAAH5YgQEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4xBgAACAcQgwAADAOAQYAABgHJ5GDWMF8snWEk+3BgCTsAIDAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA4BBgAAGAcAgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOPwLCTg/wv4s5UCOhoA4ESswAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA53IQFN5UlXAMeqCtxYANAKsAIDAACMQ4ABAADGIcAAAADjNCrAZGVl6aqrrlKnTp0UERGh22+/XaWlpX59rr/+egUFBfkdEydO9OtTVlam5ORktW/fXhEREZo2bZqOHTvm12fdunW68sor5XA41LNnTy1cuPDMKgQAAK1OowJMfn6+UlNTtXHjRuXm5qqmpkaJiYk6dOiQX7+HHnpIe/futY85c+bYbcePH1dycrKOHj2qDRs2aNGiRVq4cKFmzpxp99m5c6eSk5N1ww03qKioSJMnT9aDDz6o1atXn2W5AACgNQiyLMs60zfv27dPERERys/P19ChQyX9YwXmiiuu0Ny5c+t9z8qVK3XzzTdrz549ioyMlCQtWLBAGRkZ2rdvn0JDQ5WRkaGcnBxt3brVft/o0aNVWVmpVatWNWhuPp9PLpdLVVVVcjqdZ1pivS56NCeg4wG/Ztfs5OaeAgCcEw39+31W18BUVf3j1s7OnTv7nV+8eLG6du2qvn37KjMzUz///LPdVlBQoPj4eDu8SFJSUpJ8Pp9KSkrsPgkJCX5jJiUlqaCg4JRzqa6uls/n8zsAAEDrdMb7wNTW1mry5Mm6+uqr1bdvX/v8Pffcox49eig6OlpbtmxRRkaGSktLtWzZMkmS1+v1Cy+S7Nder/e0fXw+nw4fPqywsLCT5pOVlaWnnnrqTMsBAAAGOeMAk5qaqq1bt+rjjz/2Oz9hwgT73/Hx8YqKitKwYcO0Y8cOXXLJJWc+01+RmZmp9PR0+7XP51NMTEyTfR4AAGg+Z/QTUlpamrKzs7V27Vp169bttH0HDx4sSfrmm28kSW63W+Xl5X596l673e7T9nE6nfWuvkiSw+GQ0+n0OwAAQOvUqABjWZbS0tK0fPlyrVmzRrGxsb/6nqKiIklSVFSUJMnj8ai4uFgVFRV2n9zcXDmdTsXFxdl98vLy/MbJzc2Vx+NpzHQBAEAr1agAk5qaqrfeektLlixRp06d5PV65fV6dfjwYUnSjh079PTTT6uwsFC7du3SihUrNG7cOA0dOlT9+vWTJCUmJiouLk5jx47V3//+d61evVozZsxQamqqHA6HJGnixIn69ttvNX36dH311Vd67bXXtHTpUk2ZMiXA5QMAABM1KsDMnz9fVVVVuv766xUVFWUf77zzjiQpNDRUH374oRITE9WrVy9NnTpVo0aN0vvvv2+PERwcrOzsbAUHB8vj8ejee+/VuHHjNGvWLLtPbGyscnJylJubq/79++v555/XG2+8oaSkpACVDQAATHZW+8C0ZOwDg9aEfWAAnC/OyT4wAAAAzYEAAwAAjHPG+8AAOHfiF8UHdLzilOKAjgcA5xoBBjDAgW2zm3sKANCi8BMSAAAwDgEGAAAYhwADAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA4BBgAAGAcNrIDzkOB3NmXXX0BNAdWYAAAgHFYgQHOQ4F8NAHPaQLQHFiBAQAAxiHAAAAA4/ATEoAWhZ+kADQEKzAAAMA4BBgAAGAcAgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOOwDwyAsxLIxxJIUqfejwZ0PACtEyswAADAOAQYAABgHAIMAAAwDgEGAAAYhwADAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA47MQLoEUJ9M6+8YviAzZWcUpxwMYCcHZYgQEAAMYhwAAAAOMQYAAAgHEIMAAAwDiNCjBZWVm66qqr1KlTJ0VEROj2229XaWmpX58jR44oNTVVXbp0UceOHTVq1CiVl5f79SkrK1NycrLat2+viIgITZs2TceOHfPrs27dOl155ZVyOBzq2bOnFi5ceGYVAgCAVqdRASY/P1+pqanauHGjcnNzVVNTo8TERB06dMjuM2XKFL3//vt69913lZ+frz179mjkyJF2+/Hjx5WcnKyjR49qw4YNWrRokRYuXKiZM2fafXbu3Knk5GTdcMMNKioq0uTJk/Xggw9q9erVASgZAACYLsiyLOtM37xv3z5FREQoPz9fQ4cOVVVVlS688EItWbJEd955pyTpq6++Uu/evVVQUKAhQ4Zo5cqVuvnmm7Vnzx5FRkZKkhYsWKCMjAzt27dPoaGhysjIUE5OjrZu3Wp/1ujRo1VZWalVq1Y1aG4+n08ul0tVVVVyOp1nWmK9Lno0J6DjAWg6nXo/GrCxuI0aaHoN/ft9VtfAVFVVSZI6d+4sSSosLFRNTY0SEhLsPr169VL37t1VUFAgSSooKFB8fLwdXiQpKSlJPp9PJSUldp8Tx6jrUzdGfaqrq+Xz+fwOAADQOp3xRna1tbWaPHmyrr76avXt21eS5PV6FRoaqvDwcL++kZGR8nq9dp8Tw0tde13b6fr4fD4dPnxYYWFhJ80nKytLTz311JmWA6CVCvTGeABahjNegUlNTdXWrVv19ttvB3I+ZywzM1NVVVX2sXv37uaeEgAAaCJntAKTlpam7OxsrV+/Xt26dbPPu91uHT16VJWVlX6rMOXl5XK73XafzZs3+41Xd5fSiX1+eedSeXm5nE5nvasvkuRwOORwOM6kHAAAYJhGrcBYlqW0tDQtX75ca9asUWxsrF/7wIED1bZtW+Xl5dnnSktLVVZWJo/HI0nyeDwqLi5WRUWF3Sc3N1dOp1NxcXF2nxPHqOtTNwYAADi/NWoFJjU1VUuWLNHf/vY3derUyb5mxeVyKSwsTC6XS+PHj1d6ero6d+4sp9Ophx9+WB6PR0OGDJEkJSYmKi4uTmPHjtWcOXPk9Xo1Y8YMpaam2isoEydO1CuvvKLp06frgQce0Jo1a7R06VLl5HD3DwAAaOQKzPz581VVVaXrr79eUVFR9vHOO+/YfV588UXdfPPNGjVqlIYOHSq3261ly5bZ7cHBwcrOzlZwcLA8Ho/uvfdejRs3TrNmzbL7xMbGKicnR7m5uerfv7+ef/55vfHGG0pKSgpAyQAAwHRntQ9MS8Y+MAACbdfs5OaeAtDqnZN9YAAAAJrDGe8DAwDnm/hF8QEdj519gTNHgAGABmJTPKDl4CckAABgHAIMAAAwDgEGAAAYhwADAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA4bGQHAM0kkM9V4zlNON+wAgMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA77wABAKxDIPWUk9pVBy8cKDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4xBgAACAcQgwAADAOOwDAwA4CfvKoKVjBQYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBz2gQEANLlA7ivDnjKQWIEBAAAGIsAAAADjEGAAAIBxGh1g1q9fr1tuuUXR0dEKCgrSe++959d+3333KSgoyO8YPny4X5/9+/drzJgxcjqdCg8P1/jx43Xw4EG/Plu2bNG1116rdu3aKSYmRnPmzGl8dQAAoFVqdIA5dOiQ+vfvr1dfffWUfYYPH669e/fax1//+le/9jFjxqikpES5ubnKzs7W+vXrNWHCBLvd5/MpMTFRPXr0UGFhoZ577jk9+eSTev311xs7XQAA0Ao1+i6kESNGaMSIEaft43A45Ha7623btm2bVq1apU8//VSDBg2SJL388su66aab9Kc//UnR0dFavHixjh49qr/85S8KDQ1Vnz59VFRUpBdeeMEv6AAAgPNTk9xGvW7dOkVEROiCCy7QjTfeqD/+8Y/q0qWLJKmgoEDh4eF2eJGkhIQEtWnTRps2bdIdd9yhgoICDR06VKGhoXafpKQkPfvss/rpp590wQUXnPSZ1dXVqq6utl/7fL6mKA0A0MwCeUu2xG3Zpgr4RbzDhw/Xf/3XfykvL0/PPvus8vPzNWLECB0/flyS5PV6FRER4feekJAQde7cWV6v1+4TGRnp16fudV2fX8rKypLL5bKPmJiYQJcGAABaiICvwIwePdr+d3x8vPr166dLLrlE69at07BhwwL9cbbMzEylp6fbr30+HyEGAIBWqslvo7744ovVtWtXffPNN5Ikt9utiooKvz7Hjh3T/v377etm3G63ysvL/frUvT7VtTUOh0NOp9PvAAAArVOTB5jvv/9eP/74o6KioiRJHo9HlZWVKiwstPusWbNGtbW1Gjx4sN1n/fr1qqmpsfvk5ubq8ssvr/f6FwAAcH5pdIA5ePCgioqKVFRUJEnauXOnioqKVFZWpoMHD2ratGnauHGjdu3apby8PN12223q2bOnkpKSJEm9e/fW8OHD9dBDD2nz5s365JNPlJaWptGjRys6OlqSdM899yg0NFTjx49XSUmJ3nnnHc2bN8/vJyIAAHD+anSA+eyzzzRgwAANGDBAkpSenq4BAwZo5syZCg4O1pYtW3Trrbfqsssu0/jx4zVw4EB99NFHcjgc9hiLFy9Wr169NGzYMN1000265ppr/PZ4cblc+uCDD7Rz504NHDhQU6dO1cyZM7mFGgAASJKCLMuymnsSTcHn88nlcqmqqirg18ME+hY+AEDrwC3ZZ6+hf795FhIAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHGa5GnUAACcj3hS9rnDCgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAONwFxIAAC0UdzWdGiswAADAOAQYAABgHAIMAAAwDgEGAAAYhwADAACMw11IAACcJwJ5V1Nz39HECgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4xBgAACAcQgwAADAOAQYAABgHAIMAAAwDgEGAAAYhwADAACMQ4ABAADGaXSAWb9+vW655RZFR0crKChI7733nl+7ZVmaOXOmoqKiFBYWpoSEBG3fvt2vz/79+zVmzBg5nU6Fh4dr/PjxOnjwoF+fLVu26Nprr1W7du0UExOjOXPmNL46AADQKjU6wBw6dEj9+/fXq6++Wm/7nDlz9NJLL2nBggXatGmTOnTooKSkJB05csTuM2bMGJWUlCg3N1fZ2dlav369JkyYYLf7fD4lJiaqR48eKiws1HPPPacnn3xSr7/++hmUCAAAWpsgy7KsM35zUJCWL1+u22+/XdI/Vl+io6M1depU/eEPf5AkVVVVKTIyUgsXLtTo0aO1bds2xcXF6dNPP9WgQYMkSatWrdJNN92k77//XtHR0Zo/f74ee+wxeb1ehYaGSpIeffRRvffee/rqq68aNDefzyeXy6Wqqio5nc4zLbFeFz2aE9DxAAAwza7ZyU0ybkP/fgf0GpidO3fK6/UqISHBPudyuTR48GAVFBRIkgoKChQeHm6HF0lKSEhQmzZttGnTJrvP0KFD7fAiSUlJSSotLdVPP/1U72dXV1fL5/P5HQAAoHUKaIDxer2SpMjISL/zkZGRdpvX61VERIRfe0hIiDp37uzXp74xTvyMX8rKypLL5bKPmJiYsy8IAAC0SK3mLqTMzExVVVXZx+7du5t7SgAAoIkENMC43W5JUnl5ud/58vJyu83tdquiosKv/dixY9q/f79fn/rGOPEzfsnhcMjpdPodAACgdQpogImNjZXb7VZeXp59zufzadOmTfJ4PJIkj8ejyspKFRYW2n3WrFmj2tpaDR482O6zfv161dTU2H1yc3N1+eWX64ILLgjklAEAgIEaHWAOHjyooqIiFRUVSfrHhbtFRUUqKytTUFCQJk+erD/+8Y9asWKFiouLNW7cOEVHR9t3KvXu3VvDhw/XQw89pM2bN+uTTz5RWlqaRo8erejoaEnSPffco9DQUI0fP14lJSV65513NG/ePKWnpwescAAAYK6Qxr7hs88+0w033GC/rgsVKSkpWrhwoaZPn65Dhw5pwoQJqqys1DXXXKNVq1apXbt29nsWL16stLQ0DRs2TG3atNGoUaP00ksv2e0ul0sffPCBUlNTNXDgQHXt2lUzZ8702ysGAACcv85qH5iWjH1gAABoOq1qHxgAAIBzgQADAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA4BBgAAGAcAgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4xBgAACAcQgwAADAOAQYAABgHAIMAAAwDgEGAAAYhwADAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA4BBgAAGAcAgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAME7AA8yTTz6poKAgv6NXr152+5EjR5SamqouXbqoY8eOGjVqlMrLy/3GKCsrU3Jystq3b6+IiAhNmzZNx44dC/RUAQCAoUKaYtA+ffroww8//L8PCfm/j5kyZYpycnL07rvvyuVyKS0tTSNHjtQnn3wiSTp+/LiSk5Pldru1YcMG7d27V+PGjVPbtm31zDPPNMV0AQCAYZokwISEhMjtdp90vqqqSn/+85+1ZMkS3XjjjZKkN998U71799bGjRs1ZMgQffDBB/ryyy/14YcfKjIyUldccYWefvppZWRk6Mknn1RoaGhTTBkAABikSa6B2b59u6Kjo3XxxRdrzJgxKisrkyQVFhaqpqZGCQkJdt9evXqpe/fuKigokCQVFBQoPj5ekZGRdp+kpCT5fD6VlJSc8jOrq6vl8/n8DgAA0DoFPMAMHjxYCxcu1KpVqzR//nzt3LlT1157rQ4cOCCv16vQ0FCFh4f7vScyMlJer1eS5PV6/cJLXXtd26lkZWXJ5XLZR0xMTGALAwAALUbAf0IaMWKE/e9+/fpp8ODB6tGjh5YuXaqwsLBAf5wtMzNT6enp9mufz0eIAQCglWry26jDw8N12WWX6ZtvvpHb7dbRo0dVWVnp16e8vNy+Zsbtdp90V1Ld6/quq6njcDjkdDr9DgAA0Do1eYA5ePCgduzYoaioKA0cOFBt27ZVXl6e3V5aWqqysjJ5PB5JksfjUXFxsSoqKuw+ubm5cjqdiouLa+rpAgAAAwT8J6Q//OEPuuWWW9SjRw/t2bNHTzzxhIKDg3X33XfL5XJp/PjxSk9PV+fOneV0OvXwww/L4/FoyJAhkqTExETFxcVp7NixmjNnjrxer2bMmKHU1FQ5HI5ATxcAABgo4AHm+++/1913360ff/xRF154oa655hpt3LhRF154oSTpxRdfVJs2bTRq1ChVV1crKSlJr732mv3+4OBgZWdna9KkSfJ4POrQoYNSUlI0a9asQE8VAAAYKsiyLKu5J9EUfD6fXC6XqqqqAn49zEWP5gR0PAAATLNrdnKTjNvQv988CwkAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4xBgAACAcQgwAADAOAQYAABgHAIMAAAwDgEGAAAYhwADAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA4BBgAAGAcAgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4xBgAACAcQgwAADAOAQYAABgnBYdYF599VVddNFFateunQYPHqzNmzc395QAAEAL0GIDzDvvvKP09HQ98cQT+vzzz9W/f38lJSWpoqKiuacGAACaWYsNMC+88IIeeugh3X///YqLi9OCBQvUvn17/eUvf2nuqQEAgGYW0twTqM/Ro0dVWFiozMxM+1ybNm2UkJCggoKCet9TXV2t6upq+3VVVZUkyefzBXx+tdU/B3xMAABM0hR/X08c17Ks0/ZrkQHmf//3f3X8+HFFRkb6nY+MjNRXX31V73uysrL01FNPnXQ+JiamSeYIAMD5zDW3acc/cOCAXC7XKdtbZIA5E5mZmUpPT7df19bWav/+/erSpYuCgoIC9jk+n08xMTHavXu3nE5nwMZtKajPbNRnNuozW2uvTzo3NVqWpQMHDig6Ovq0/VpkgOnatauCg4NVXl7ud768vFxut7ve9zgcDjkcDr9z4eHhTTVFOZ3OVvsfUIn6TEd9ZqM+s7X2+qSmr/F0Ky91WuRFvKGhoRo4cKDy8vLsc7W1tcrLy5PH42nGmQEAgJagRa7ASFJ6erpSUlI0aNAg/dM//ZPmzp2rQ4cO6f7772/uqQEAgGbWYgPMXXfdpX379mnmzJnyer264oortGrVqpMu7D3XHA6HnnjiiZN+rmotqM9s1Gc26jNba69Palk1Blm/dp8SAABAC9Mir4EBAAA4HQIMAAAwDgEGAAAYhwADAACMQ4BpgNmzZysoKEiTJ0+2zx05ckSpqanq0qWLOnbsqFGjRp208V5L98MPP+jee+9Vly5dFBYWpvj4eH322Wd2u2VZmjlzpqKiohQWFqaEhARt3769GWfccMePH9fjjz+u2NhYhYWF6ZJLLtHTTz/t92wNk+pbv369brnlFkVHRysoKEjvvfeeX3tDatm/f7/GjBkjp9Op8PBwjR8/XgcPHjyHVZza6eqrqalRRkaG4uPj1aFDB0VHR2vcuHHas2eP3xim1vdLEydOVFBQkObOnet33vT6tm3bpltvvVUul0sdOnTQVVddpbKyMru9JX+n/lp9Bw8eVFpamrp166awsDD7AcQnaqn1ZWVl6aqrrlKnTp0UERGh22+/XaWlpX59GjL3srIyJScnq3379oqIiNC0adN07NixJp07AeZXfPrpp/qP//gP9evXz+/8lClT9P777+vdd99Vfn6+9uzZo5EjRzbTLBvvp59+0tVXX622bdtq5cqV+vLLL/X888/rggsusPvMmTNHL730khYsWKBNmzapQ4cOSkpK0pEjR5px5g3z7LPPav78+XrllVe0bds2Pfvss5ozZ45efvllu49J9R06dEj9+/fXq6++Wm97Q2oZM2aMSkpKlJubq+zsbK1fv14TJkw4VyWc1unq+/nnn/X555/r8ccf1+eff65ly5aptLRUt956q18/U+s70fLly7Vx48Z6t1A3ub4dO3bommuuUa9evbRu3Tpt2bJFjz/+uNq1a2f3acnfqb9WX3p6ulatWqW33npL27Zt0+TJk5WWlqYVK1bYfVpqffn5+UpNTdXGjRuVm5urmpoaJSYm6tChQ3afX5v78ePHlZycrKNHj2rDhg1atGiRFi5cqJkzZzbt5C2c0oEDB6xLL73Uys3Nta677jrrkUcesSzLsiorK622bdta7777rt1327ZtliSroKCgmWbbOBkZGdY111xzyvba2lrL7XZbzz33nH2usrLScjgc1l//+tdzMcWzkpycbD3wwAN+50aOHGmNGTPGsiyz65NkLV++3H7dkFq+/PJLS5L16aef2n1WrlxpBQUFWT/88MM5m3tD/LK++mzevNmSZH333XeWZbWO+r7//nvrN7/5jbV161arR48e1osvvmi3mV7fXXfdZd17772nfI9J36n11denTx9r1qxZfueuvPJK67HHHrMsy6z6KioqLElWfn6+ZVkNm/v//M//WG3atLG8Xq/dZ/78+ZbT6bSqq6ubbK6swJxGamqqkpOTlZCQ4He+sLBQNTU1fud79eql7t27q6Cg4FxP84ysWLFCgwYN0j//8z8rIiJCAwYM0H/+53/a7Tt37pTX6/Wr0eVyafDgwUbU+Nvf/lZ5eXn6+uuvJUl///vf9fHHH2vEiBGSzK/vRA2ppaCgQOHh4Ro0aJDdJyEhQW3atNGmTZvO+ZzPVlVVlYKCguznnZleX21trcaOHatp06apT58+J7WbXF9tba1ycnJ02WWXKSkpSRERERo8eLDfzzCmf6f+9re/1YoVK/TDDz/IsiytXbtWX3/9tRITEyWZVV9VVZUkqXPnzpIaNveCggLFx8f7bTSblJQkn8+nkpKSJpsrAeYU3n77bX3++efKyso6qc3r9So0NPSkh0VGRkbK6/WeoxmenW+//Vbz58/XpZdeqtWrV2vSpEn6/e9/r0WLFkmSXccvdz42pcZHH31Uo0ePVq9evdS2bVsNGDBAkydP1pgxYySZX9+JGlKL1+tVRESEX3tISIg6d+5sXL1HjhxRRkaG7r77bvthcqbX9+yzzyokJES///3v6203ub6KigodPHhQs2fP1vDhw/XBBx/ojjvu0MiRI5Wfny/J/O/Ul19+WXFxcerWrZtCQ0M1fPhwvfrqqxo6dKgkc+qrra3V5MmTdfXVV6tv376SGjZ3r9db7/dPXVtTabGPEmhOu3fv1iOPPKLc3Fy/32hbk9raWg0aNEjPPPOMJGnAgAHaunWrFixYoJSUlGae3dlbunSpFi9erCVLlqhPnz4qKirS5MmTFR0d3SrqO1/V1NToX/7lX2RZlubPn9/c0wmIwsJCzZs3T59//rmCgoKaezoBV1tbK0m67bbbNGXKFEnSFVdcoQ0bNmjBggW67rrrmnN6AfHyyy9r48aNWrFihXr06KH169crNTVV0dHRJ63gt2SpqanaunWrPv744+aeSoOwAlOPwsJCVVRU6Morr1RISIhCQkKUn5+vl156SSEhIYqMjNTRo0dVWVnp977y8nK53e7mmXQjRUVFKS4uzu9c79697bsC6ur45ZXmptQ4bdo0exUmPj5eY8eO1ZQpU+wVNdPrO1FDanG73aqoqPBrP3bsmPbv329MvXXh5bvvvlNubq69+iKZXd9HH32kiooKde/e3f6++e677zR16lRddNFFksyur2vXrgoJCfnV7xtTv1MPHz6sf/u3f9MLL7ygW265Rf369VNaWpruuusu/elPf5JkRn1paWnKzs7W2rVr1a1bN/t8Q+budrvr/f6pa2sqBJh6DBs2TMXFxSoqKrKPQYMGacyYMfa/27Ztq7y8PPs9paWlKisrk8fjacaZN9zVV1990q1yX3/9tXr06CFJio2Nldvt9qvR5/Np06ZNRtT4888/q00b//94BwcH2/9r0PT6TtSQWjwejyorK1VYWGj3WbNmjWprazV48OBzPufGqgsv27dv14cffqguXbr4tZtc39ixY7Vlyxa/75vo6GhNmzZNq1evlmR2faGhobrqqqtO+30zcOBAY79Ta2pqVFNTc9rvm5Zcn2VZSktL0/Lly7VmzRrFxsb6tTdk7h6PR8XFxX4hu+5/ZPwyuAZ68miAE+9CsizLmjhxotW9e3drzZo11meffWZ5PB7L4/E03wQbafPmzVZISIj17//+79b27dutxYsXW+3bt7feeustu8/s2bOt8PBw629/+5u1ZcsW67bbbrNiY2Otw4cPN+PMGyYlJcX6zW9+Y2VnZ1s7d+60li1bZnXt2tWaPn263cek+g4cOGB98cUX1hdffGFJsl544QXriy++sO/CaUgtw4cPtwYMGGBt2rTJ+vjjj61LL73Uuvvuu5urJD+nq+/o0aPWrbfeanXr1s0qKiqy9u7dax8n3uFgan31+eVdSJZldn3Lli2z2rZta73++uvW9u3brZdfftkKDg62PvroI3uMlvyd+mv1XXfddVafPn2stWvXWt9++6315ptvWu3atbNee+01e4yWWt+kSZMsl8tlrVu3zu+/Wz///LPd59fmfuzYMatv375WYmKiVVRUZK1atcq68MILrczMzCadOwGmgX4ZYA4fPmz967/+q3XBBRdY7du3t+644w5r7969zTfBM/D+++9bffv2tRwOh9WrVy/r9ddf92uvra21Hn/8cSsyMtJyOBzWsGHDrNLS0maabeP4fD7rkUcesbp37261a9fOuvjii63HHnvM7w+eSfWtXbvWknTSkZKSYllWw2r58ccfrbvvvtvq2LGj5XQ6rfvvv986cOBAM1RzstPVt3PnznrbJFlr1661xzC1vvrUF2BMr+/Pf/6z1bNnT6tdu3ZW//79rffee89vjJb8nfpr9e3du9e67777rOjoaKtdu3bW5Zdfbj3//PNWbW2tPUZLre9U/91688037T4NmfuuXbusESNGWGFhYVbXrl2tqVOnWjU1NU0696D/XwAAAIAxuAYGAAAYhwADAACMQ4ABAADGIcAAAADjEGAAAIBxCDAAAMA4BBgAAGAcAgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOP8P/S0ZJKMBthKAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"yb, yc = 5e3, 2e3\n",
"srfb, srfc = 0.8, 0.8\n",
"a = expo_sample(1e5, 150, msd)[0]\n",
"b = gaus_sample(yb*(1-srfb), 80, 6, msd)[0]\n",
"c = gaus_sample(yc*(1-srfc), 120, 6, msd)[0]\n",
"hep.histplot([a, b, c], bins=msd.binning, stack=True, histtype='fill');\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "a6efc304",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:35.251829Z",
"start_time": "2024-03-27T19:25:34.990878Z"
}
},
"outputs": [
{
"data": {
"image/png": "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q6++Whs2bNCsWbP04x//WCtWrJAkew5f313aX+Y3d+5cTZ48WQMHDlTnzp01fPhwZWRkaOrUqZL8f35f15L5uN1uRURE+LR36tRJPXv29Ls5nz59WtnZ2ZoyZYp9k0B/n99zzz2nTp066cc//nGz7f48v6qqKp08eVILFizQuHHj9O677+qee+7Rvffeq5KSEkn+/5368ssvKz4+XjExMQoODta4ceO0dOlSjR49WpL/zM/r9SojI0M33nijBg8eLKllY3e73c1+/zS1tRe/vq1DRzp8+LAee+wxFRUV+fzO2BRer1cjRozQf/3Xf0mShg8frr1792r58uVKTU3t4NFdvNWrV+uNN97QypUrde2116q8vFwZGRmKjo42Yn6Xs4aGBv37v/+7LMvSsmXLOno4baKsrEyLFy/Wrl27FBAQ0NHDaXNer1eSdPfddyszM1OSNGzYMG3dulXLly/XzTff3JHDaxMvv/yytm3bprffflv9+vXTli1blJaWpujo6LN+E3ApS0tL0969e/X+++939FBahJWcC1RWVqaqqipdd9116tSpkzp16qSSkhK99NJL6tSpkyIjI1VfX6/q6mqf11VWVioqKqpjBt0Kffr0UXx8vM+xQYMG2Vc6NM3h62fP+8v8Zs+eba/mJCQkaNq0acrMzLRX5fx9fl/XkvlERUWpqqrKp/3MmTM6fvy438y5KeD89a9/VVFRkb2KI/n3/P7whz+oqqpKffv2tb9v/vrXv+rxxx9X//79Jfn3/Hr37q1OnTp943eOv36nnjp1Sj/96U/1i1/8QnfeeaeGDBmi9PR0TZo0Sf/93/8tyT/ml56ervz8fG3atEkxMTH28ZaMPSoqqtnvn6a29kLIuUBjxozRnj17VF5ebj9GjBihqVOn2n/v3LmziouL7dccOHBAFRUVcjqdHTjylrnxxhvPukTwz3/+s/r16ydJiouLU1RUlM/8PB6Ptm/f7hfz+/LLLxUY6Puff1BQkP1/lP4+v69ryXycTqeqq6tVVlZm12zcuFFer1dJSUnf+phbqyngfPLJJ3rvvffUq1cvn3Z/nt+0adO0e/dun++b6OhozZ49Wxs2bJDk3/MLDg7WyJEjz/udk5iY6LffqQ0NDWpoaDjvd86lPD/LspSenq61a9dq48aNiouL82lvydidTqf27NnjE8Sb/kfk6+G2rQePNvLVq6ssy7Jmzpxp9e3b19q4caO1c+dOy+l0Wk6ns+MG2Ao7duywOnXqZP3nf/6n9cknn1hvvPGG1aVLF+vXv/61XbNgwQKrR48e1u9+9ztr9+7d1t13323FxcVZp06d6sCRt0xqaqr1ne98x8rPz7cOHjxovfXWW1bv3r2tOXPm2DX+Nr8TJ05YH374ofXhhx9akqxf/OIX1ocffmhfXdSS+YwbN84aPny4tX37duv999+3rr76amvKlCkdNSUf55tffX29ddddd1kxMTFWeXm5dfToUfvx1Ss3/HV+zfn61VWW5d/ze+utt6zOnTtbr776qvXJJ59YL7/8shUUFGT94Q9/sPu4lL9Tv2l+N998s3XttddamzZtsv7yl79Yr7/+uhUaGmq98sordh+X6vxmzZplhYeHW5s3b/b5t/Xll1/aNd809jNnzliDBw+2xo4da5WXl1uFhYXWlVdeaeXk5LTr2Ak5bejrIefUqVPWf/zHf1hXXHGF1aVLF+uee+6xjh492nEDbKV33nnHGjx4sBUSEmINHDjQevXVV33avV6v9eSTT1qRkZFWSEiINWbMGOvAgQMdNNrW8Xg81mOPPWb17dvXCg0Ntb773e9aTzzxhM8PRH+b36ZNmyxJZz1SU1Mty2rZfP7xj39YU6ZMsbp162Y5HA5r+vTp1okTJzpgNmc73/wOHjzYbJska9OmTXYf/jq/5jQXcvx9fr/61a+sAQMGWKGhodbQoUOtdevW+fRxKX+nftP8jh49aj3wwANWdHS0FRoaal1zzTXWCy+8YHm9XruPS3V+5/q39frrr9s1LRn7oUOHrPHjx1thYWFW7969rccff9xqaGho17EH/P8JAAAAGIVzcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAw0v8DqI8A/wsdrzoAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"yb, yc = 5e3, 2e3\n",
"srfb, srfc = 0.8, 0.8\n",
"a = expo_sample(1e6, 150, msd)[0]\n",
"b = gaus_sample(yb*(1-srfb), 80, 6, msd)[0]\n",
"c = gaus_sample(yc*(1-srfc), 120, 6, msd)[0]\n",
"hep.histplot([a, b, c], bins=msd.binning, stack=True, histtype='fill');\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "cea40de8",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:36.120396Z",
"start_time": "2024-03-27T19:25:35.254983Z"
}
},
"outputs": [],
"source": [
"import hist\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e3e52af4",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:36.238296Z",
"start_time": "2024-03-27T19:25:36.124053Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(800.0, 200.0, 1000.0)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = hist.new.Reg(10, 0, 10).Weight().fill(np.random.normal(5, 1, 800))\n",
"b = hist.new.Reg(10, 0, 10).Weight().fill(np.random.normal(5, 1, 200))\n",
"a.values().sum(), b.values().sum(), a.values().sum()+b.values().sum()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "64b3ab64",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:36.349700Z",
"start_time": "2024-03-27T19:25:36.240398Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.5 3.0\n"
]
},
{
"data": {
"text/plain": [
"(400.0, 600.0, 1000.0)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"k = 0.5\n",
"m = 1 - (a.values().sum() * (k - 1) / b.values().sum())\n",
"print(k, m)\n",
"c = a * k \n",
"d = b * m\n",
"c.values().sum(), d.values().sum(), c.values().sum()+d.values().sum()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1e8eae3f",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:36.461655Z",
"start_time": "2024-03-27T19:25:36.353710Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0., 2., 16., 110., 255., 295., 105., 16., 1., 0.])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.values()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "9a665f54",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:36.573893Z",
"start_time": "2024-03-27T19:25:36.465502Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"800.0 200.0 1000.0\n",
"400.0 600.0 1000.0\n"
]
}
],
"source": [
"srla = rl.TemplateSample(\"A\", rl.Sample.BACKGROUND, a)\n",
"srlb = rl.TemplateSample(\"A\", rl.Sample.BACKGROUND, b)\n",
"print(srla.getExpectation(nominal=True).sum(), srlb.getExpectation(nominal=True).sum(), srla.getExpectation(nominal=True).sum()+srlb.getExpectation(nominal=True).sum())\n",
"srla.scale(k)\n",
"srlb.scale(m)\n",
"print(srla.getExpectation(nominal=True).sum(), srlb.getExpectation(nominal=True).sum(), srla.getExpectation(nominal=True).sum()+srlb.getExpectation(nominal=True).sum())\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "cfdde827-45fa-4e1d-9d4e-79efa62b1d93",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 1. , 8. , 55. , 127.5, 147.5, 52.5, 8. , 0.5,\n",
" 0. ])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"srla.getExpectation(nominal=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "ddecf7f8",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:36.682698Z",
"start_time": "2024-03-27T19:25:36.576711Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 1. , 8. , 55. , 127.5, 147.5, 52.5, 8. , 0.5,\n",
" 0. ])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"srla.getExpectation(eval=True)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "fa74dd0e",
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"import os\n",
"import rhalphalib as rl\n",
"import numpy as np\n",
"import scipy.stats\n",
"import pickle\n",
"import mplhep as hep\n",
"import matplotlib.pyplot as plt\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "27cb1996",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:36.794223Z",
"start_time": "2024-03-27T19:25:36.684495Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{<NuisanceParameter (CMS_lumi) instance at 0x7fe6a7ce6da0>,\n",
" <NuisanceParameter (CMS_pf_2prong) instance at 0x7fe6a7ce5990>,\n",
" <NuisanceParameter (CMS_pf_bbenriched) instance at 0x7fe6a7ce7730>}"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pth = 'tmp/testModel.pkl'\n",
"with open(pth, \"rb\") as fout:\n",
" model = pickle.load(fout)\n",
"model.parameters"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "1d573fe9",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:36.938656Z",
"start_time": "2024-03-27T19:25:36.800000Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Nuisance: CMS_pf_2prong = -2sig -> Total = 129, composed out of 12.5% + 7.0% + 80.4%\n",
"Nuisance: CMS_pf_2prong = 0.5sig -> Total = 99, composed out of 33.6% + 18.9% + 47.4%\n",
"Nuisance: CMS_pf_2prong = 0sig -> Total = 100, composed out of 28.8% + 16.2% + 55.0%\n",
"Nuisance: CMS_pf_2prong = 0.5sig -> Total = 99, composed out of 33.6% + 18.9% + 47.4%\n",
"Nuisance: CMS_pf_2prong = 2sig -> Total = 109, composed out of 46.9% + 26.4% + 26.7%\n",
"Nuisance: CMS_pf_bbenriched = -2sig -> Total = 94, composed out of 16.3% + 24.9% + 58.8%\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 104, composed out of 32.6% + 14.3% + 53.1%\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 100, composed out of 28.8% + 16.2% + 55.0%\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 104, composed out of 32.6% + 14.3% + 53.1%\n",
"Nuisance: CMS_pf_bbenriched = 2sig -> Total = 121, composed out of 45.1% + 9.3% + 45.6%\n"
]
}
],
"source": [
"nuis1 = [p for p in model.parameters if \"CMS_pf_2prong\" == p.name][0]\n",
"nuis2 = [p for p in model.parameters if \"CMS_pf_bbenriched\" == p.name][0]\n",
"\n",
"for i in [-2, 0.5, 0, 0.5, 2]:\n",
" nuis1.value = i\n",
" nuis2.value = 0\n",
" a = model['ptbin0passhighbvl']['hqq'].getExpectation(eval=True)\n",
" b = model['ptbin0passlowbvl']['hqq'].getExpectation(eval=True)\n",
" c = model['ptbin0fail']['hqq'].getExpectation(eval=True)\n",
" tot = sum(a+b+c)\n",
" print(f\"Nuisance: {nuis1.name:>20} = {i:3}sig -> Total = {tot:3.0f}, composed out of {100*a.sum()/tot:.1f}% + {100*b.sum()/tot:.1f}% + {100*c.sum()/tot:.1f}%\")\n",
" \n",
"for i in [-2, 0.5, 0, 0.5, 2]:\n",
" nuis1.value = 0\n",
" nuis2.value = i\n",
" a = model['ptbin0passhighbvl']['hqq'].getExpectation(eval=True)\n",
" b = model['ptbin0passlowbvl']['hqq'].getExpectation(eval=True)\n",
" c = model['ptbin0fail']['hqq'].getExpectation(eval=True)\n",
" tot = sum(a+b+c)\n",
" print(f\"Nuisance: {nuis2.name:>20} = {i:3}sig -> Total = {tot:3.0f}, composed out of {100*a.sum()/tot:.1f}% + {100*b.sum()/tot:.1f}% + {100*c.sum()/tot:.1f}%\")\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "40ea8cc3",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-26T22:32:08.225421Z",
"start_time": "2024-03-26T22:32:08.119179Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([1.03750576e-21, 3.93271690e-18, 6.99464689e-15, 5.84754012e-12,\n",
" 2.30294181e-09, 4.28468791e-07, 3.77930451e-05, 1.58718434e-03,\n",
" 3.18969282e-02, 3.08436733e-01, 1.44291254e+00, 3.28057336e+00,\n",
" 3.63499732e+00, 1.96364332e+00, 5.16055659e-01, 6.57066023e-02,\n",
" 4.03188670e-03, 1.18572265e-04, 1.66255071e-06, 1.10642415e-08,\n",
" 3.48181484e-11, 5.19584376e-14, 0.00000000e+00])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model['ptbin0passlowbvl']['hqq'].getExpectation(eval=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "96a5bfe3-2971-479f-9cd8-8431dc4371f4",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "1840a44c-ca21-4dc9-b00d-55fd17d486a3",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "9c8359c4-e6d9-4d62-86fa-abaa4e5109b9",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "f60d4d93-1a55-48c2-b72f-a8d9b8cacedf",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 17,
"id": "8309c6f0",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:37.063875Z",
"start_time": "2024-03-27T19:25:36.959202Z"
}
},
"outputs": [],
"source": [
"import sys\n",
"import os\n",
"import rhalphalib as rl\n",
"import numpy as np\n",
"import scipy.stats\n",
"import pickle\n",
"import mplhep as hep\n",
"import matplotlib.pyplot as plt\n",
"\n",
"rl.util.install_roofit_helpers()\n",
"rl.ParametericSample.PreferRooParametricHist = False"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "ba4b8242",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:37.172780Z",
"start_time": "2024-03-27T19:25:37.068252Z"
}
},
"outputs": [],
"source": [
"pth = 'tmp/testModel.pkl'\n",
"pth = '/home/anovak/work/htt/test_eric2/10/hadelModel.pkl'\n",
"pth = '/home/anovak/work/htt/test_eric3/hadelModel.pkl'\n",
"# pth = '/home/anovak/jeff/m200/m200_model.pkl'"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "b1a767c0",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:37.289753Z",
"start_time": "2024-03-27T19:25:37.178512Z"
}
},
"outputs": [],
"source": [
"with open(pth, \"rb\") as fout:\n",
" model = pickle.load(fout)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "aa8c55b4",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:37.830161Z",
"start_time": "2024-03-27T19:25:37.724068Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"odict_values([<Channel (failhadel2017) instance at 0x7fe69a8ab550>, <Channel (topCRfailhadel2017) instance at 0x7fe6a5b1a1a0>, <Channel (wlnuCRfailhadel2017) instance at 0x7fe6a7ce4130>, <Channel (loosepasshadel2017) instance at 0x7fe6a7ce67a0>, <Channel (topCRloosepasshadel2017) instance at 0x7fe6a7ce4580>, <Channel (wlnuCRloosepasshadel2017) instance at 0x7fe6a7ce7ac0>, <Channel (passhadel2017) instance at 0x7fe6a7d28e50>, <Channel (topCRpasshadel2017) instance at 0x7fe6a7d2a2f0>, <Channel (wlnuCRpasshadel2017) instance at 0x7fe6a7d2b700>])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.channels"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "6715f3d4",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:38.007728Z",
"start_time": "2024-03-27T19:25:37.901755Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"odict_values([<TemplateSample (wlnuCRfailhadel2017_dy) instance at 0x7fe6a7ce5480>, <TemplateSample (wlnuCRfailhadel2017_htt125) instance at 0x7fe6a7ce6830>, <TemplateSample (wlnuCRfailhadel2017_multijet) instance at 0x7fe6a7ce4a90>, <TemplateSample (wlnuCRfailhadel2017_phitt10) instance at 0x7fe6a7ce4070>, <TemplateSample (wlnuCRfailhadel2017_phitt100) instance at 0x7fe6a7ce4e20>, <TemplateSample (wlnuCRfailhadel2017_phitt125) instance at 0x7fe6a7ce4fd0>, <TemplateSample (wlnuCRfailhadel2017_phitt150) instance at 0x7fe6a7ce6950>, <TemplateSample (wlnuCRfailhadel2017_phitt20) instance at 0x7fe6a7ce7190>, <TemplateSample (wlnuCRfailhadel2017_phitt200) instance at 0x7fe6a7ce58a0>, <TemplateSample (wlnuCRfailhadel2017_phitt250) instance at 0x7fe6a7ce5db0>, <TemplateSample (wlnuCRfailhadel2017_phitt30) instance at 0x7fe6a7ce4760>, <TemplateSample (wlnuCRfailhadel2017_phitt300) instance at 0x7fe6a7ce5b10>, <TemplateSample (wlnuCRfailhadel2017_phitt40) instance at 0x7fe6a5c6b460>, <TemplateSample (wlnuCRfailhadel2017_phitt50) instance at 0x7fe6a7ce4b80>, <TemplateSample (wlnuCRfailhadel2017_phitt75) instance at 0x7fe6a7ce68c0>, <TemplateSample (wlnuCRfailhadel2017_top) instance at 0x7fe6a7ce5960>, <TemplateSample (wlnuCRfailhadel2017_wlnu) instance at 0x7fe6a7ce6560>])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model['wlnuCRfailhadel2017'].samples"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "a3d7ce9a",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:38.189129Z",
"start_time": "2024-03-27T19:25:38.082533Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([0.0585703 , 0.10709761, 0.11632293, 0.02967474, 0.09815668,\n",
" 0.04458329, 0.02698446, 0.00653558, 0.00989022, 0. ,\n",
" 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. ])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model['failhadel2017']['failhadel2017_phitt30'].getExpectation(nominal=True)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "8d3ae7ba",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:38.674077Z",
"start_time": "2024-03-27T19:25:38.566164Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{<IndependentParameter (dy_eff_hadel) instance at 0x7fe6a7ce6e30>,\n",
" <IndependentParameter (topLeffSF_hadel) instance at 0x7fe6a7ce7a90>,\n",
" <IndependentParameter (topeffSF_hadel) instance at 0x7fe6a5c8bfd0>,\n",
" <IndependentParameter (wlnuLeffSF_hadel) instance at 0x7fe6a7ce7fd0>,\n",
" <IndependentParameter (wlnueffSF_hadel) instance at 0x7fe6a5b1ab60>,\n",
" <NuisanceParameter (CMS_id_hadel) instance at 0x7fe6a5c08580>,\n",
" <NuisanceParameter (CMS_lumi_17) instance at 0x7fe6ce6780d0>,\n",
" <NuisanceParameter (CMS_lumi_1718) instance at 0x7fe6a5aff700>,\n",
" <NuisanceParameter (CMS_lumi_all) instance at 0x7fe6a5afea40>,\n",
" <NuisanceParameter (CMS_top_norm) instance at 0x7fe6a5c8be80>,\n",
" <NuisanceParameter (CMS_trig_hadel) instance at 0x7fe6b8a106d0>,\n",
" <NuisanceParameter (CMS_vvqq_norm) instance at 0x7fe6b8a10070>,\n",
" <NuisanceParameter (CMS_wlnu_norm) instance at 0x7fe6a5c8bf40>,\n",
" <NuisanceParameter (qcd_Rfail_hadel) instance at 0x7fe6a5c6bc40>,\n",
" <NuisanceParameter (qcd_Rloosepass_hadel) instance at 0x7fe6a7ce5ff0>,\n",
" <NuisanceParameter (qcd_Rpass_hadel) instance at 0x7fe6a7d2bcd0>,\n",
" <NuisanceParameter (r_h125_hadel) instance at 0x7fe6a7ce6f50>,\n",
" <NuisanceParameter (top_highmass_bin13_hadel) instance at 0x7fe6a5c8b6d0>,\n",
" <NuisanceParameter (top_highmass_bin14_hadel) instance at 0x7fe6a5c8a0e0>,\n",
" <NuisanceParameter (top_highmass_bin15_hadel) instance at 0x7fe6a5c89de0>,\n",
" <NuisanceParameter (top_highmass_bin16_hadel) instance at 0x7fe6a5c89f00>,\n",
" <NuisanceParameter (top_highmass_bin17_hadel) instance at 0x7fe6a5c8b670>,\n",
" <NuisanceParameter (toppt) instance at 0x7fe6a5c8b6a0>,\n",
" <NuisanceParameter (wlnuhighmass_bin13_hadel) instance at 0x7fe6a5c8bfa0>,\n",
" <NuisanceParameter (wlnuhighmass_bin14_hadel) instance at 0x7fe6a5c89e70>,\n",
" <NuisanceParameter (wlnuhighmass_bin15_hadel) instance at 0x7fe6a5c8ada0>,\n",
" <NuisanceParameter (wlnuhighmass_bin16_hadel) instance at 0x7fe6a5c8bf70>,\n",
" <NuisanceParameter (wlnuhighmass_bin17_hadel) instance at 0x7fe6ca6882b0>}"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.parameters"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "41f113bb",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:38.887771Z",
"start_time": "2024-03-27T19:25:38.779318Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"['CMS_id_hadel',\n",
" 'CMS_lumi_17',\n",
" 'CMS_lumi_1718',\n",
" 'CMS_lumi_all',\n",
" 'CMS_top_norm',\n",
" 'CMS_trig_hadel',\n",
" 'CMS_vvqq_norm',\n",
" 'CMS_wlnu_norm',\n",
" 'qcd_Rfail_hadel',\n",
" 'qcd_Rloosepass_hadel',\n",
" 'qcd_Rpass_hadel',\n",
" 'r_h125_hadel',\n",
" 'top_highmass_bin13_hadel',\n",
" 'top_highmass_bin14_hadel',\n",
" 'top_highmass_bin15_hadel',\n",
" 'top_highmass_bin16_hadel',\n",
" 'top_highmass_bin17_hadel',\n",
" 'toppt',\n",
" 'wlnuhighmass_bin13_hadel',\n",
" 'wlnuhighmass_bin14_hadel',\n",
" 'wlnuhighmass_bin15_hadel',\n",
" 'wlnuhighmass_bin16_hadel',\n",
" 'wlnuhighmass_bin17_hadel']"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_pnames = list(set([p.name for p in model.parameters if p.hasPrior()]))\n",
"sorted(all_pnames)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "464974b1",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:42.028539Z",
"start_time": "2024-03-27T19:25:39.261603Z"
}
},
"outputs": [],
"source": [
"def get_yields(model):\n",
" yields = {}\n",
" for ch in model.channels:\n",
" yields[ch.name] = {}\n",
" for sample in ch:\n",
" yields[ch.name][sample.name] = sample.getExpectation(eval=True)\n",
" return yields\n",
"\n",
"yields_nominal = get_yields(model)\n",
" \n",
"pnames = ['CMS_lumi_1718', 'qcd_Rloosepass_hadel', 'toppt',]\n",
"pnames = all_pnames\n",
"scaled_up = {}\n",
"scaled_down = {}\n",
"for pname in pnames:\n",
" # Set all to 0\n",
" for pn in all_pnames:\n",
" for p in [p for p in model.parameters if p.name == pn]:\n",
" p.value = 0\n",
" \n",
" # Set all matching up\n",
" param_s = [p for p in model.parameters if p.name == pname]\n",
" for p in param_s:\n",
" p.value = 1\n",
" scaled_up[pname] = get_yields(model) \n",
"\n",
"for pname in pnames:\n",
" # Set all to 0\n",
" for pn in all_pnames:\n",
" for p in [p for p in model.parameters if p.name == pn]:\n",
" p.value = 0\n",
" \n",
" # Set all matching up\n",
" param_s = [p for p in model.parameters if p.name == pname]\n",
" for p in param_s:\n",
" p.value = -1\n",
" scaled_down[pname] = get_yields(model) "
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "f01b6ccf",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:42.031040Z",
"start_time": "2024-03-27T19:25:42.031026Z"
}
},
"outputs": [],
"source": [
"channels = [ch.name for ch in model.channels]\n",
"percent_threshold = 0.5\n",
"for pname in pnames:\n",
" for channel in channels:\n",
" nom = yields_nominal[channel]\n",
" up = scaled_up[pname][channel]\n",
" down = scaled_down[pname][channel]\n",
" for sample in nom.keys():\n",
" if \"phitt\" in sample:\n",
" continue\n",
" diffu = (np.sum(up[sample])-np.sum(nom[sample]))/np.sum(nom[sample])\n",
" diffd = (np.sum(nom[sample])-np.sum(down[sample]))/np.sum(down[sample])\n",
" if diffu > percent_threshold or diffd > percent_threshold:\n",
" print(f\"{pname}: {sample}\")\n",
" fig, ax = plt.subplots()\n",
" hep.histplot(nom[sample], label='Nominal', color='black', ls='--')\n",
" hep.histplot(up[sample], label='Up', color='red', ls='-.')\n",
" hep.histplot(down[sample], label='Down', color='blue', ls=':')\n",
" plt.title(f\"{pname}: {sample}\")\n",
" plt.legend()\n",
" \n",
"# break"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "db1c11d0",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "21f88baf",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "405c943f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "b95ef6ec",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "5242d1e9",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "0322a664",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 39,
"id": "860511b8",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-25T09:42:25.755165Z",
"start_time": "2024-03-25T09:42:25.101966Z"
}
},
"outputs": [],
"source": [
"out = {}\n",
"for ch in model.channels:\n",
" out[ch.name] = {}\n",
" for sample in ch:\n",
" yields = sample.getExpectation(eval=True)\n",
" out[ch.name][sample.name] = yields"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "b4dc0172",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-25T09:42:27.569174Z",
"start_time": "2024-03-25T09:42:26.115435Z"
}
},
"outputs": [
{
"data": {
"image/png": "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dHi47bbbdOzYMU2YMEGtW7dWnTp19NNPP2no0KGXVK/dbld4eLiWLl1a4eeNGze+qO0MHz5cq1ev1tKlS3XLLbec83lUVJQOHz58zvLyZWcHoapauXIld0MBLkawAWqJX3/9VWlpaZo2bZomT57sWL5v3z631rtjxw7t3btXS5Ys0b333utYnpqa6lSufPLAitqzZ88ep/ctWrTQ2rVr1bVr10vuNRk3bpxSUlI0e/Zs3XPPPRWWiYuL02effSa73e50AXFGRoaCg4N11VVXXVLd5ZYuXaq6devqzjvvvKztAPgfrrEBaonynpXynpRys2fP9ni9pmlqzpw5TuWioqIUFxenJUuWOA2Lpaamavfu3U5lBwwYoLKyMj311FPn1FdaWqrjx4+ft00vvPCCZs6cqccff1wPP/xwpeV+97vfKScnRx988IFj2dGjR7V8+XL16dPnsiYw/Pnnn7V27VrdddddTndiAbg89NgAtURISIhuuukmzZgxQyUlJbriiiv0ySefKCsry631tm7dWi1atNCjjz6qn376SSEhIXr//fcrnG9m+vTp6t27t7p166b77rtPx44d09y5c9WuXTudPHnSUa579+564IEHNH36dG3fvl09evSQv7+/9u3bp+XLl2vOnDmOCfXOtmLFCo0fP14tW7ZUmzZt9Oabbzp9fttttykiIkLS6WBzww03KDk5Wbt373bMPFxWVqZp06Y5rbdx40Zt3LhR0unQcurUKT399NOSpJtuukk33XSTU/l33nlHpaWlDEMBLkawAWqRZcuW6cEHH9S8efNkmqZ69OhR4UWzruTv769//vOfeuihhzR9+nQFBgbqrrvu0ujRo9WxY0ensr169dLy5cv1xBNPaOLEiWrRooVSUlK0atUqrV+/3qnsggUL1KlTJ73yyit6/PHH5efnp9jYWP3xj39U165dK23PV199Jen0kNfgwYPP+XzdunWOYOPr66uPPvpI48aN00svvaSCggJdf/31Wrx4sVq1auW03qeffnpO2Jk0aZIkacqUKecEm6VLlyo8PPycxysAuDyGeXa/NAAAQA3FNTYAAMAyCDYAAMAyCDYAAMAyCDYAAMAyCDYAAMAyCDYAAMAyLDuPjd1u16FDh1SvXj0ZhuHt5gAAgItgmqZOnDih6Ohop0eZXCzLBptDhw4pJibG280AAACX4IcfflCTJk2qvJ5lg029evUknT4wISEhXm4NAAC4GHl5eYqJiXH8Ha8qywab8uGnkJAQgg0AADXMpV5GwsXDAADAMgg2AADAMgg2AADAMix7jQ0AAKZpqrS0VGVlZd5uCv7L19dXfn5+bpuKhWADALCk4uJiHT58WPn5+d5uCs4SHBysqKgoBQQEuHzbBBsAgOXY7XZlZWXJ19dX0dHRCggIYLLWasA0TRUXF+vnn39WVlaWWrZseUmT8J0PwQYAYDnFxcWy2+2KiYlRcHCwt5uDMwQFBcnf318HDhxQcXGxAgMDXbp9Lh4GAFiWq3sD4Bru/L7wHQcAAJZBsAEAAJZBsAEAoAZITEzUmDFjvN2Mao9gAwAALIO7ooDLYJqmSovtHq/XL8CHW1cBoAIEG+AylBbbtfDhDR6vd8Sc7vK3+Xq8XqAmM01TBSXemYE4yN+3Sv+MnDp1SiNHjtQHH3ygevXq6dFHH3V89uSTT+rdd9/Vzp07ndaJi4tTnz599NRTT7ms3TURwQYAUCsUlJSp7eSPvVL37id7Kjjg4v/kjhs3Ths2bNCqVasUHh6uxx9/XFu3blVcXJzuu+8+TZs2TVu2bNH1118vSdq2bZu+/vprffDBB+7ahRqDYAO4SPKMbm7tRSkpKlPK+M/dtn0A1cPJkyf12muv6c0339Stt94qSVqyZImaNGkiSWrSpIl69uyplJQUR7BJSUlR9+7ddeWVV3qt3dUFwQZwEX+bL8NDQDUW5O+r3U/29FrdF+v7779XcXGx4uPjHcsaNGigVq1aOd4PHz5c9913n1588UX5+Pho2bJlmjVrlkvbXFMRbAAAtYJhGFUaDqrO+vTpI5vNphUrViggIEAlJSX63e9+5+1mVQvc7g0AQDXSokUL+fv7KyMjw7Hs119/1d69ex3v/fz8NGTIEKWkpCglJUUDBw5UUFCQN5pb7VgjugIAYBF169bVsGHDNG7cODVs2FDh4eH6v//7v3Oer3T//ferTZs2kqRNmzZ5o6nVEsEGAIBq5oUXXtDJkyfVp08f1atXT3/5y1+Um5vrVKZly5bq0qWLjh075nQ9Tm1HsAEAoJqpW7eu3njjDb3xxhuOZePGjXMqY5qmDh06pD//+c+ebl61RrABAKCG+fnnn/X2228rOztbycnJ3m5OtUKwAQCghgkPD1ejRo20cOFC1a9f39vNqVYINgAA1DCmaXq7CdUWt3sDAADLINgAAADLINgAAADLINgAAADLINgAAADLINgAAADLINgAAFCNJCYmasyYMd5uRo1FsAEAoAYxDEMrV650WjZ16lTFxcWdU3bhwoVKTExUSEiIDMPQ8ePHnT7fv3+/hg0bpubNmysoKEgtWrTQlClTVFxc7FTGMIxzXl9++aUb9u7yMUEfLMc0TZUW2z1SV0lRmUfqAYBLkZ+fr169eqlXr16aOHHiOZ9/++23stvteuWVV/Sb3/xGO3fu1PDhw3Xq1CnNnDnTqezatWvVrl07x/uGDRu6vf2XgmADyykttmvhwxu83QwA1Y1pSiX53qnbP1gyjIsubrfbNX78eP39739XQECA/vSnP2nq1KmKjY2VJN11112SpGbNmmnq1KmaNm2apNO9OZKUkpKioUOHOoa01q9fX2E95aGn3JVXXqk9e/Zo/vz55wSbhg0bKjIy8qL3wVsINgCA2qEkX3o22jt1P35ICqhz0cWXLFmisWPHKiMjQ+np6Ro6dKi6du2qLVu2KDw8XCkpKerVq5d8fX1Vt25d7dy5U2vWrNHatWslSaGhoZfc1NzcXDVo0OCc5XfeeacKCwt11VVXafz48brzzjsvuQ53ItjA0pJndJO/zdcjdfkFcMkaANe4+uqrNWXKFElSy5Yt9fLLLystLU233XabJCksLMyp96Ru3bry8/O77B6V7777TnPnznXqralbt67++te/qmvXrvLx8dH777+vfv36aeXKldUy3BBsYGn+Nl+PBRsA1Zx/8OmeE2/VXQVXX3210/uoqCgdOXLElS06x08//aRevXrp7rvv1vDhwx3LGzVqpLFjxzreX3/99Tp06JBeeOEFgg0AAF5jGFUaDvImf39/p/eGYchud99NEYcOHdLNN9+sLl26aOHChRcsHx8fr9TUVLe153LQdw4AQA3i7++vsjLnOzIDAgLOWXaxfvrpJyUmJqpTp05KSUmRj8+Fo8H27dsVFRV1SfW5Gz02AADUILGxsUpLS1PXrl1ls9lUv359xcbGKisrS9u3b1eTJk1Ur1492Ww2ZWdnKzs7W999950kaceOHapXr56aNm2qBg0aOEJNs2bNNHPmTP3888+Oesqv11myZIkCAgJ0zTXXSJI++OADLVq0SH//+989v/MXgR4bAABqkL/+9a9KTU1VTEyM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aPLkyY4y48eP16lTpzRixAgdP35c3bp105o1axxz2EjS0qVLNXr0aN16663y8fFR//799dJLL7m6uQAAwEIM88wpgS0kLy9PoaGhys3NVUhIiLebAw8qKSrTwoc3SGKa/uqO7xWAs13u32+XX2MDAADgLTwEEx5jmqZKi+1ur8eTT6QGAFQvBBt4TGmx3THsAACAOzAUBQAALIMeG3hF8oxuHrlQ1C+A7A4AtQnBBl7hb/PlDhgAgMvx7ywAALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMgg0AALAMtwSbn376SX/84x/VsGFDBQUFqUOHDvr3v//t+Nw0TU2ePFlRUVEKCgpSUlKS9u3b57SNY8eOadCgQQoJCVFYWJiGDRumkydPuqO5AADAIlwebH799Vd17dpV/v7++te//qXdu3frr3/9q+rXr+8oM2PGDL300ktasGCBMjIyVKdOHfXs2VOFhYWOMoMGDdKuXbuUmpqq1atXa+PGjRoxYoSrmwsAACzEz9UbfP755xUTE6OUlBTHsubNmzu+Nk1Ts2fP1hNPPKG+fftKkl5//XVFRERo5cqVGjhwoL755hutWbNGW7Zs0XXXXSdJmjt3ru644w7NnDlT0dHRrm42AACwAJf32PzjH//Qddddp7vvvlvh4eG65ppr9Oqrrzo+z8rKUnZ2tpKSkhzLQkNDFR8fr/T0dElSenq6wsLCHKFGkpKSkuTj46OMjIwK6y0qKlJeXp7TCwAA1C4uDzb/+c9/NH/+fLVs2VIff/yxRo4cqYceekhLliyRJGVnZ0uSIiIinNaLiIhwfJadna3w8HCnz/38/NSgQQNHmbNNnz5doaGhjldMTIyrdw0AAFRzLh+Kstvtuu666/Tss89Kkq655hrt3LlTCxYs0JAhQ1xdncPEiRM1duxYx/u8vDzCDVCDlBSVeaQevwAfGYbhkboAeJ7Lg01UVJTatm3rtKxNmzZ6//33JUmRkZGSpJycHEVFRTnK5OTkKC4uzlHmyJEjTtsoLS3VsWPHHOufzWazyWazuWo3AHhYyvjPPVLPiDnd5W/z9UhdADzP5UNRXbt21Z49e5yW7d27V82aNZN0+kLiyMhIpaWlOT7Py8tTRkaGEhISJEkJCQk6fvy4MjMzHWU+/fRT2e12xcfHu7rJAADAIlzeY/PII4+oS5cuevbZZzVgwABt3rxZCxcu1MKFCyVJhmFozJgxevrpp9WyZUs1b95ckyZNUnR0tPr16yfpdA9Pr169NHz4cC1YsEAlJSUaPXq0Bg4cyB1RgIX4BfhoxJzubq+npKjMYz1CALzL5cHm+uuv14oVKzRx4kQ9+eSTat68uWbPnq1BgwY5yowfP16nTp3SiBEjdPz4cXXr1k1r1qxRYGCgo8zSpUs1evRo3XrrrfLx8VH//v310ksvubq5ALzIMAyGhQC4lGGapuntRrhDXl6eQkNDlZubq5CQEG83Bzr9X/PChzdI4joHeBbnHlBzXO7fb54VBQAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALINgAwAALMPP2w0AajLTNGUWFHi8XiMoSIZheLxeAKjuCDbAZTALCrTn2k4er7fV1kwZwcEerxcAqjuGogAAgGXQYwPL8eTwkP2Melpu+lw+QUFurWtf125u2z4AWAHBBpbjreEhn6Ag+TA8BABexVAUAACwDHpsYGnuHh46k+GhegAAlSPYwNIYHgKA2oWhKAAAYBluDzbPPfecDMPQmDFjHMsKCws1atQoNWzYUHXr1lX//v2Vk5PjtN7BgwfVu3dv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SsvWlvOhuLhYb775pu677z4ZhlFpOSueD2fKyspSdna20/c8NDRU8fHxlX7PL+X3TE2Um5srwzAu+DDiqvx81RTr169XeHi4WrVqpZEjR+qXX36ptGxtOR9ycnL04YcfatiwYRcse7nnBMHmDEePHlVZWdk5j22IiIhQdnZ2hetkZ2dXqXxNZLfbNWbMGHXt2lXt27evtFyrVq20aNEirVq1Sm+++absdru6dOmiH3/80YOtda34+HgtXrxYa9as0fz585WVlaUbb7xRJ06cqLB8bTgfJGnlypU6fvy4hg4dWmkZK54PZyv/vlble34pv2dqmsLCQk2YMEH33HPPeZ/gXNWfr5qgV69eev3115WWlqbnn39eGzZs0O23366ysrIKy9eG80GSlixZonr16um3v/3tecu54pyots+KQvUxatQo7dy584LjnAkJCU5PX+/SpYvatGmjV155RU899ZS7m+kWt99+u+Prq6++WvHx8WrWrJnefffdi/rPw6pee+013X777YqOjq60jBXPB1xYSUmJBgwYINM0NX/+/POWteLP18CBAx1fd+jQQVdffbVatGih9evX69Zbb/Viy7xr0aJFGjRo0AVvIHDFOUGPzRkaNWokX19f5eTkOC3PyclRZGRkhetERkZWqXxNM3r0aK1evVrr1q1TkyZNqrSuv7+/rrnmGn333Xduap3nhYWF6aqrrqp0n6x+PkjSgQMHtHbtWt1///1VWs+K50P597Uq3/NL+T1TU5SHmgMHDig1NfW8vTUVudDPV0105ZVXqlGjRpXuk5XPh3KfffaZ9uzZU+XfGdKlnRMEmzMEBASoU6dOSktLcyyz2+1KS0tz+s/zTAkJCU7lJSk1NbXS8jWFaZoaPXq0VqxYoU8//VTNmzev8jbKysq0Y8cORUVFuaGF3nHy5El9//33le6TVc+HM6WkpCg8PFy9e/eu0npWPB+aN2+uyMhIp+95Xl6eMjIyKv2eX8rvmZqgPNTs27dPa9euVcOGDau8jQv9fNVEP/74o3755ZdK98mq58OZXnvtNXXq1EkdO3as8rqXdE5c1qXHFvT222+bNpvNXLx4sbl7925zxIgRZlhYmJmdnW2apmkOHjzYfOyxxxzlN23aZPr5+ZkzZ840v/nmG3PKlCmmv7+/uWPHDm/tgkuMHDnSDA0NNdevX28ePnzY8crPz3eUOftYTJs2zfz444/N77//3szMzDQHDhxoBgYGmrt27fLGLrjEX/7yF3P9+vVmVlaWuWnTJjMpKcls1KiReeTIEdM0a8/5UK6srMxs2rSpOWHChHM+s+r5cOLECXPbtm3mtm3bTEnmiy++aG7bts1xt89zzz1nhoWFmatWrTK//vprs2/fvmbz5s3NgoICxzZuueUWc+7cuY73F/o9Ux2d7zgUFxebd955p9mkSRNz+/btTr8zioqKHNs4+zhc6OerOjrfcThx4oT56KOPmunp6WZWVpa5du1a89prrzVbtmxpFhYWOrZhhfPBNC/8s2Gappmbm2sGBweb8+fPr3Ab7jgnCDYVmDt3rtm0aVMzICDA7Ny5s/nll186Puvevbs5ZMgQp/LvvvuuedVVV5kBAQFmu3btzA8//NDDLXY9SRW+UlJSHGXOPhZjxoxxHLeIiAjzjjvuMLdu3er5xrvQ73//ezMqKsoMCAgwr7jiCvP3v/+9+d133zk+ry3nQ7mPP/7YlGTu2bPnnM+sej6sW7euwp+F8n212+3mpEmTzIiICNNms5m33nrrOcenWbNm5pQpU5yWne/3THV0vuOQlZVV6e+MdevWObZx9nG40M9XdXS+45Cfn2/26NHDbNy4senv7282a9bMHD58+DkBxQrng2le+GfDNE3zlVdeMYOCgszjx49XuA13nBOGaZpmlfuGAAAAqiGusQEAAJZBsAEAAJZBsAEAAJZBsAEAAJZBsAEAAJZBsAEAAJZBsAEAAJZBsAEAAJZBsAEAAJZBsAEAAJZBsAEAAJbx/wGP56cxg3gIXQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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0a1bN5N71Gi1Wvz000/IyspCp06dMHbsWEybNs3kXjdERER044qmL7/8Ehs2bEDbtm2xevVqJCQkVLvN8OHD0aJFC3Tu3BmNGjXCrl27btuOv78/du3aBYPBgF69eqFt27aIi4uDp6cnVKobcWLcuHFwcHBAq1at0KhRo7u6auteSeLmiTmFyM/Ph1arRV5ensk5PqR8+hIDlo3eDoBX9dwNHj9SguLiYmRlZSE4OBjOzs627k6tdOLECYSEhODUqVN44IEHzFp3dd+fe/37zWdFERERkYkrV67g22+/hYeHR627dUotu08yERERWVpMTAwyMjKwZMmSWncrFQYbIiIiMrFmzRpbd+GucSqKiIiIFIPBhoiIiBSDU1FE90AIAVFUZPV2JRcXPpySiKgKDDZE90AUFeHEg52s3m6LAxmQXGvHreGJiKyJU1FERESkGByxITKTZrt2QuVSsyf41oSxqAinunazWP1ERErAYENkJioXF6g4PUREZFOciiIiIrIjPXr0QFxcnK27UWsx2BAREZFiMNgQEVGdIISAsbDQJq87fd700KFDsX37dixYsACSJEGSJJw5cwbbt2/HQw89BI1GAz8/P0yaNAllZWXydj169EBsbCxiY2Oh1WrRsGFDTJ069Y7bVRKeY0NERHWCrW7PANz5LRoWLFiAkydPok2bNpg5cyYAwGAwoG/fvhg6dCi++OIL/Pbbbxg+fDicnZ2RkJAgb5ucnIyYmBjs3bsX+/fvx4gRI9CkSRMMHz7cUrtllxhsiIiI7IRWq4VarYarqyt8fX0BAG+99RYCAgLw0UcfQZIkhISE4OLFi5g4cSKmTZsGlerG5EtAQADmzZsHSZLQokULHD58GPPmzWOwISIiUiLJxQUtDmTYrO27dfz4cYSFhZncbbxr164oKCjAH3/8gSZNmgAAHn74YZMyYWFh+PDDD2EwGODg4HD3na9lGGyIiKhOkCSJd+yuA3jyMBERkR1Rq9UwGAzy+5YtWyItLc3kROBdu3bB3d0djRs3lpelp6eb1LNnzx40a9asTo3WAAw2REREdiUoKAjp6ek4c+YM/vzzT7z++us4f/483njjDfz2229Yt24dpk+fjvj4ePn8GgA4d+4c4uPjceLECaxevRqLFi3C6NGjbbgntsGpKCIiIjsybtw4REdHo1WrVigqKkJWVhY2bNiA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obm7S0R2wlhUZLm6Swzy10IIi7VDRLYnCYX+lOfn50Or1SIvLw8eHh627g4BKLl6DZ9N3gcAeDWxCzT13W3cI7I1Y2EhTjzYyeLtGFRqbO8+DwA/e0T27l7/fvNZUURERKQYZp+KIiK6U5KLC1ocyLh9wXtUkleA7TOOWLwdIrI9BhsishlJkiC5ulq8HVWFc2yISNk4FUVERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREisFgQ0RERIrBYENERESKwWBDREREiuFo6w6QbQkhUFZqtEpbeiu1Q0REdReDTR1XVmrEstHbbd0NIqvRlxqhKjFYpS1HtQqSJFmlLSK6gcGGiOqU5OkZVmtrxIJwOGkcrNYeETHYUAXDZnez6C9hY2EhTnXtBgBwVO+2WDtERFR3MdiQzEnjYNlgY3CAg7EUADg8T1blqFYhfMcYAECzXTuhcnW1WFv6EgOSJuy0WP1EVD0GGyJSPEmS5FDtpHGAitNDRIrFy72JiIhIMRhsiIiISDEsHmzee+89SJKEuLg4eVlxcTFGjRqFBg0aoF69ehg0aBCys7NNtjt37hz69esHV1dXeHt7Y/z48SgrK7N0d4mIiKgWs2iw2bdvHz755BO0a9fOZPmYMWPwww8/4JtvvsH27dtx8eJFPPPMM/J6g8GAfv36obS0FLt370ZycjJWrFiBadOmWbK7REREVMtZLNgUFBRg8ODB+PTTT1G/fn15eV5eHj7//HPMnTsXjz/+ODp16oSkpCTs3r0be/bsAQD89NNPOHbsGL788kt06NABffr0waxZs7B48WKUlpZaqstERERUy1ks2IwaNQr9+vVDRESEyfKMjAzo9XqT5SEhIWjSpAnS0tIAAGlpaWjbti18fHzkMpGRkcjPz8fRo0erbK+kpAT5+fkmLyIiIqpbLHK597///W8cOHAA+/btq7ROp9NBrVbD09PTZLmPjw90Op1cpmKoKV9fvq4qiYmJmDFjhhl6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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAAGzCAYAAAA8I13DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHu0lEQVR4nO3deVhU5eIH8O+ZgRmGXUC2KwKZouaaJuIGKVdcWizLvHkNzaRr2JXMJSsVNZfUcss0y9Dcyha1rCxCxSVEQy01wyVcSgEVAWVn5v394Y9zHVkUnY3D9/M88zzMOe8573sOh+E773sWSQghQERERKQAKms3gIiIiMhUGGyIiIhIMRhsiIiISDEYbIiIiEgxGGyIiIhIMRhsiIiISDEYbIiIiEgxGGyIiIhIMRhsiIiISDEYbIhsUEREBCIiIqzdjHty/fp1vPDCC/D19YUkSYiLi6vV8pIkIT4+Xn6/atUqSJKEM2fOyNOCgoLwyCOPmKbBNdi5cyckScLOnTtrvWxV7SYi82GwIarn8vPzMW3aNLRt2xbOzs7Q6XRo1aoVJk6ciAsXLsjlhg0bBkmS5JdWq0WzZs0wZcoUFBcXV1rvrFmzsGrVKowaNQpr1qzB0KFDLblZNstgMGDVqlV47LHHEBAQACcnJ7Rq1QpvvfVWlfsRAFauXIkWLVrAwcEBTZs2xZIlSyqVSU9PxyuvvIIuXbrAwcGh2jBVEdKqe82cOdPUm0xkUXbWbgARWc+ff/6JyMhInDt3Dk8//TRiYmKg0Wjw22+/YeXKldi0aRNOnDghl9dqtfjoo48AAHl5ediyZQtmzJiB06dPY926dUbr3r59Ozp37oypU6feVduKiopgZ6e8j6jCwkIMHz4cnTt3xn/+8x94e3sjJSUFU6dORVJSErZv3w5JkuTyH3zwAf7zn/9g4MCBGDt2LHbv3o3//ve/KCwsxMSJE+VyKSkpWLx4MVq2bIkWLVrg8OHDVdbfokULrFmzptL0NWvW4Mcff0Tv3r1Nvs1EFiWIyOaEh4eL8PBws9ZRVlYm2rZtKxwdHcXu3bsrzc/LyxOvv/66/D46Olo4OTkZlTEYDKJz585CkiSRmZlpNC84OFj079/fZO1NSEgQAERGRoY8LTAw0KR1VGfHjh0CgNixY0etl7213SUlJWLv3r2Vyk2bNk0AEImJifK0wsJC4enpWWkbhwwZIpycnEROTo487cqVKyI/P18IIcS8efMq7avbuf/++0XTpk1rsWVEtolDUURm9Ntvv0GSJHz99dfytLS0NEiShAcffNCobN++fREaGlrleiqGDzZu3IiZM2eiUaNGcHBwQK9evXDq1CmjskFBQRg2bFilddx63s6XX36JX3/9FW+88Qa6detWqbyrq+tthyUkSUK3bt0ghMCff/5p1NaMjAx8++238hDHmTNnUFpaiilTpqBDhw5wc3ODk5MTunfvjh07dlS57pvPsanJnj170KlTJzg4OOC+++7DJ598YjQ/JycH48aNQ+vWreHs7AxXV1f07dsXv/76a6V1/fXXXxgwYACcnJzg7e2NV155BSUlJVXWm5qaij59+sDNzQ2Ojo4IDw/H3r17a2yrRqNBly5dKk1/4oknAADHjx+Xp+3YsQNXrlzBSy+9ZFQ2NjYWBQUF+Pbbb+VpHh4ecHFxqbHu6uzfvx+nTp3CkCFD7mp5IlvCYENkRq1atYK7uzt27dolT9u9ezdUKhV+/fVX5OfnA7hx3sXPP/+MHj161Li+OXPmYNOmTRg3bhwmTZqEffv23fU/o4qwda/nvlScx9GgQQMA/xvq8PLyQrt27bBmzRqsWbMGDRs2RH5+Pj766CNERETg7bffRnx8PC5duoSoqKhqh05u59SpU3jqqafwz3/+E++88w4aNGiAYcOG4dixY3KZP//8E5s3b8YjjzyCd999F+PHj8eRI0cQHh5udB5RUVERevXqhR9++AGjR4/GG2+8gd27d2PChAmV6t2+fTt69OiB/Px8TJ06FbNmzUJubi569uyJ/fv313o7MjMzAQBeXl7ytEOHDgEAOnbsaFS2Q4cOUKlU8vx7VTGMyGBDimDtLiMipevfv7/o1KmT/P7JJ58UTz75pFCr1eL7778XQghx8OBBAUBs2bJFCFF5KKpiKKRFixaipKREnr5o0SIBQBw5ckSeFhgYKKKjoyu149Z1tm/fXri5ud3xdlQMRV26dElcunRJnDp1SsyfP19IkiRatWolDAaDUfmqhonKy8uN2i+EEFevXhU+Pj7i+eefN5oOQEydOlV+X91QFACxa9cueVp2drbQarXi1VdflacVFxcLvV5vtP6MjAyh1WrF9OnT5WkLFy4UAMTGjRvlaQUFBeL+++83GooyGAyiadOmIioqymi7CwsLRXBwsPjnP/9ZY7urEhkZKVxdXcXVq1flabGxsUKtVldZvmHDhmLw4MFVzqvNUFR5ebnw8fExOkaJ6jL22BCZWffu3XHw4EEUFBQAuDFs0q9fP7Rr1w67d+8GcKMXp2JYpybDhw+HRqMxWjcAeRioNvLz82s9dFFQUICGDRuiYcOGuP/++zFu3Dh07doVW7ZsMTrhtTpqtVpuv8FgQE5ODsrLy9GxY0ccPHiw1tsAAC1btpT3AwA0bNgQISEhRvtEq9VCpbrxcafX63HlyhU4OzsjJCTEqN7vvvsOfn5+eOqpp+Rpjo6OiImJMarz8OHDOHnyJJ599llcuXIFly9fxuXLl1FQUIBevXph165dMBgMd7wNs2bNwk8//YQ5c+bA3d1dnl5UVGT0+76Zg4MDioqK7riO6iQlJSErK4u9NaQYyrvkgMjGdO/eHeXl5UhJSUFAQACys7PRvXt3HDt2zCjYtGzZEh4eHjWuq3HjxkbvK4Z/rl69Wut2ubq61joQOTg44JtvvgFw41yUuXPnIjs7Gzqd7o7XsXr1arzzzjv4448/UFZWJk8PDg6uVVsq3LpPgBv75eZ9YjAYsGjRIrz//vvIyMiAXq+X53l6eso/nz17Fvfff3+lkBYSEmL0/uTJkwCA6OjoatuVl5cn/35q8tlnn+HNN9/EiBEjMGrUKKN5Op0OpaWlVS5XXFxcq/1enXXr1kGtVuOZZ56553UR2QIGGyIz69ixIxwcHLBr1y40btwY3t7eaNasGbp37473338fJSUl2L17t3zyaE3UanWV04UQ8s/V9Zzo9Xqj5Zs3b45Dhw7h/PnzCAgIuKNtUavViIyMlN9HRUWhefPmePHFF41OkK7O2rVrMWzYMAwYMADjx4+Ht7c31Go1Zs+ejdOnT99RG6pqU1Vu3iezZs3C5MmT8fzzz2PGjBnw8PCASqVCXFxcrXpWKlQsM2/ePLRr167KMs7OzrddT2JiIp577jn0798fy5cvrzTfz88Per0e2dnZ8Pb2lqeXlpbiypUr8Pf3r3Xbb1ZUVIRNmzYhMjISPj4+97QuIlvBYENkZhqNBp06dcLu3bvRuHFjedike/fuKCkpwbp165CVlXXbE4fvVIMGDZCbm1tp+tmzZ3HffffJ7x999FFs2LABa9euxaRJk+6qLj8/P7zyyiuYNm0a9u3bh86dO9dY/osvvsB9992Hr776yiiA3e29bu7UF198gYcffhgrV640mp6bm2t0sm5gYCCOHj0KIYRR+9LT042Wa9KkCYAbvV43B73aSE1NxRNPPIGOHTti48aNVd6zpyI0/fLLL+jXr588/ZdffoHBYKg2VN2pr7/+GteuXeMwFCkKz7EhsoDu3bsjNTUVO3bskIONl5cXWrRogbffflsuYwpNmjTBvn37jIYwtm7divPnzxuVe+qpp9C6dWvMnDkTKSkpldZz7do1vPHGG7et7+WXX4ajoyPmzJlz27IVvSs396akpqZWWb8pqdVqozoB4PPPP8fff/9tNK1fv364cOECvvjiC3laYWEhVqxYYVSuQ4cOaNKkCebPn4/r169Xqu/SpUs1tuf48ePo378/goKCsHXr1mqHlHr27AkPDw8sW7bMaPqyZcvg6OiI/v3711jP7axfvx6Ojo531FtIVFewx4bIArp3746ZM2fi/PnzRgGmR48e+OCDDxAUFIRGjRqZpK4XXngBX3zxBfr06YNBgwbh9OnTWLt2rdzLUMHe3h5fffUVIiMj0aNHDwwaNAhdu3aFvb09jh07hvXr16NBgwa3vZeNp6cnhg8fjvfffx/Hjx9HixYtqi37yCOP4KuvvsITTzyB/v37IyMjA8uXL0fLli2rDAim8sgjj2D69OkYPnw4unTpgiNHjmDdunVGPVgAMHLkSLz33nt47rnnkJaWBj8/P6xZswaOjo5G5VQqFT766CP07dsXDzzwAIYPH45//OMf+Pvvv7Fjxw64urrK5yLd6tq1a4iKisLVq1cxfvx4o3vRADeCaVhYGIAb59jMmDEDsbGxePrppxEVFYXdu3dj7dq1mDlzptE5WXl5efKjFirupfPee+/B3d0d7u7uGD16tFE9OTk5+P777zFw4MA7GjYjqjOsek0WUT2Rn58v1Gq1cHFxEeXl5fL0tWvXCgBi6NChRuWru9z7888/NyqXkZEhAIiEhASj6e+88474xz/+IbRarejatav45Zdfqr2b8dWrV8WUKVNE69athaOjo3BwcBCtWrUSkyZNEhcvXpTLVXXn4QqnT58WarXa6DLzqi73NhgMYtasWSIwMFBotVrRvn17sXXrVhEdHS0CAwONyuIOL/eu6s7Dt25rcXGxePXVV4Wfn5/Q6XSia9euIiUlpcp9cvbsWfHYY48JR0dH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vYTs7Gz4+/vjxRdfxJQpU+QyEyZMQEFBAWJiYpCbm4tu3bph27ZtcHBwkMusW7cOo0ePRq9evaBSqTBw4EAsXrzY1M0lohpYsvfLTqPiN2oyKUmS4OfnB29vb8U96LEus7e3N+tjHCSh0DOr8vPz4ebmhry8PLi6ulq7OYQb/yQremyGz+1mkafs8p9l7d38e7KkmEXhdeLJy0RkXvf6/5vPiiKrsNeq+U+MiIhMjsGGiIzYaVSIWXT3Tw+ujbISPRIm7LFIXURUPzDYEJERSZLYm0ZEdZbJb9BHREREZC0MNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYDDZERESkGAw2REREpBgMNkRERKQYZgk2f//9N/7973/D09MTOp0OrVu3xi+//CLPF0JgypQp8PPzg06nQ2RkJE6ePGm0jpycHAwZMgSurq5wd3fHiBEjcP36dXM0l4iIiBTC5MHm6tWr6Nq1K+zt7fH999/j999/xzvvvIMGDRrIZebOnYvFixdj+fLlSE1NhZOTE6KiolBcXCyXGTJkCI4dO4bExERs3boVu3btQkxMjKmbS0RERApiZ+oVvv322wgICEBCQoI8LTg4WP5ZCIGFCxfizTffxOOPPw4A+OSTT+Dj44PNmzdj8ODBOH78OLZt24YDBw6gY8eOAIAlS5agX79+mD9/Pvz9/U3dbCIiIlIAk/fYfP311+jYsSOefvppeHt7o3379vjwww/l+RkZGcjMzERkZKQ8zc3NDaGhoUhJSQEApKSkwN3dXQ41ABAZGQmVSoXU1NQq6y0pKUF+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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiUAAAGzCAYAAADwumcoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFKUlEQVR4nO3deXhM5+IH8O+ZZJasE4msN4moInaqFbGmpELVcuXWcntdVOkSfoi2Gl2CLqlqi1rS5RKqV5W2aCkuKdG6tga3tBrLjV0SShJZJ2be3x9upkYWJubMnIzv53nmeTJn3vO+75w5k3zznvecIwkhBIiIiIgcTOXoDhAREREBDCVERESkEAwlREREpAgMJURERKQIDCVERESkCAwlREREpAgMJURERKQIDCVERESkCAwlREREpAgMJUR3YNmyZZAkCadOnXJ0V+qtGTNmQJIkXL58Wfa2IiIiMHr06DqtK0kSZsyYYdP+ENGdYSghIqrF/v37MWHCBLRq1QoeHh4IDw/H0KFDcezYsWrLHz16FH379oWnpyd8fX0xcuRIXLp0qUq5N998EwMHDkRgYGCtQSgiIgKSJFX7aNq0qS3fKpHDuTq6A0RESjZ79mzs2rULjz/+ONq2bYucnBwsXLgQDzzwAPbs2YPWrVuby547dw49evSAXq/HW2+9haKiIrz77rs4fPgw9u3bB41GYy77yiuvICgoCB06dMCWLVtqbH/evHkoKiqyWHb69Gm88sor6NOnj+3fMJEDMZQQEdUiMTERK1eutAgUw4YNQ5s2bfD222/js88+My9/6623UFxcjMzMTISHhwMAOnXqhEceeQTLli3D+PHjzWWzs7MRERGBy5cvw9/fv8b2Bw8eXGXZG2+8AQB44okn7vbtESkKD98Q1dHixYvRqlUraLVahISEICEhAfn5+VXKrVmzBh07doSbmxsaNmyIv/3tbzh//rxFmZycHIwZMwahoaHQarUIDg7GoEGDqsxh2bRpE7p37w4PDw94eXmhf//++OWXXyzKjB49Gp6envjvf/+LuLg4eHh4ICQkBLNmzcKtNwV/99130aVLF/j5+cHNzQ0dO3bEl19+WeU9bN26Fd26dYOPjw88PT3RvHlzTJ8+3aLMggUL0KpVK7i7u6NBgwZ48MEHsXLlyip15efnY/To0fDx8YFer8eYMWNQUlJiUSYtLQ29evVCQEAAtFotWrZsidTU1Cp1CSHwxhtvIDQ0FO7u7nj44YerbI+b2508eTLCwsKg1Wpx//33Y/bs2TCZTNWWr9SlSxeLQAIATZs2RatWrXD06FGL5V999RUee+wxcyABgNjYWDRr1gyrV6+2KBsREVFru7VZuXIlGjdujC5dutS5DiIl4kgJUR3MmDEDM2fORGxsLJ599llkZWUhNTUV+/fvx65du6BWqwHcmCA7ZswYPPTQQ0hJSUFubi7mz5+PXbt24eDBg/Dx8QEAxMfH45dffsHEiRMRERGBvLw8bN26FWfOnDH/8VqxYgVGjRqFuLg4zJ49GyUlJUhNTUW3bt1w8OBBiz9yRqMRffv2RefOnfHOO+9g8+bNSE5OxvXr1zFr1ixzufnz52PgwIF44oknYDAYsGrVKjz++OPYsGED+vfvDwD45Zdf8Nhjj6Ft27aYNWsWtFotTpw4gV27dpnr+eSTT/B///d/+Mtf/oJJkyahrKwMP//8M/bu3Yu//vWvFttu6NChaNy4MVJSUnDgwAH84x//QEBAAGbPnm0uk5qailatWmHgwIFwdXXFt99+i+eeew4mkwkJCQnmcq+99hreeOMNPProo3j00Udx4MAB9OnTBwaDwaLNkpIS9OzZE+fPn8fTTz+N8PBw/Pvf/0ZSUhIuXryIefPmWfX5CyGQm5uLVq1amZedP38eeXl5ePDBB6uU79SpE7777jur2qjJwYMHcfToUbz88ss2qY9IUQQR3VZaWpoAILKzs0VeXp7QaDSiT58+wmg0msssXLhQABBLly4VQghhMBhEQECAaN26tSgtLTWX27BhgwAgXnvtNSGEEFevXhUAxJw5c2ps/9q1a8LHx0eMGzfOYnlOTo7Q6/UWy0eNGiUAiIkTJ5qXmUwm0b9/f6HRaMSlS5fMy0tKSizqMxgMonXr1qJXr17mZXPnzhUALNa71aBBg0SrVq1qfF0IIZKTkwUA8eSTT1os//Of/yz8/Pwslt3aLyGEiIuLE/fdd5/5eeXn0L9/f2EymczLp0+fLgCIUaNGmZe9/vrrwsPDQxw7dsyizpdeekm4uLiIM2fOmJcBEMnJybW+lxUrVggAYsmSJeZl+/fvFwDEp59+WqX8Cy+8IACIsrKyKq9dunTpjtqsNHXqVAFA/Prrr3dUnqg+4eEbIitt27YNBoMBkydPhkr1x1do3Lhx8Pb2xsaNGwEAP/30E/Ly8vDcc89Bp9OZy/Xv3x+RkZHmcm5ubtBoNNixYweuXr1abZtbt25Ffn4+RowYgcuXL5sfLi4uiIqKwvbt26usM2HCBPPPkiRhwoQJMBgM2LZtm3m5m5ub+eerV6+ioKAA3bt3x4EDB8zLK0dz1q9fX+OhDh8fH5w7dw779++vcbtVeuaZZyyed+/eHb///jsKCwur7VdBQQEuX76Mnj174r///S8KCgoA/PE5TJw4EZIkmctPnjy5Sptr1qxB9+7d0aBBA4vtFxsbC6PRiJ07d96235V+++03JCQkIDo6GqNGjTIvLy0tBQBotdoq61R+/pVl6spkMmHVqlXo0KEDWrRocVd1ESkRQwmRlU6fPg0AaN68ucVyjUaD++67z/x6TeUAIDIy0vy6VqvF7NmzsWnTJgQGBqJHjx545513kJOTYy5//PhxAECvXr3g7+9v8fjXv/6FvLw8i/pVKhXuu+8+i2XNmjUDAIt5Khs2bEDnzp2h0+ng6+sLf39/pKammv/wAzcmdXbt2hVPPfUUAgMDMXz4cKxevdoioEybNg2enp7o1KkTmjZtioSEBIvDOze7eb4FADRo0AAALALZrl27EBsbCw8PD/j4+MDf3988h6Wyb5Xb79bTYv39/c113rz9Nm/eXGXbxcbGAkCV7VeTnJwc9O/fH3q9Hl9++SVcXFzMr1UGqfLy8irrlZWVWZSpq4yMDJw/f54TXMlpcU4JkQJMnjwZAwYMwLp167Blyxa8+uqrSElJwffff48OHTqYA8CKFSsQFBRUZX1XV+u/yj/88AMGDhyIHj16YPHixQgODoZarUZaWprFBFU3Nzfs3LkT27dvx8aNG7F582Z88cUX6NWrF/71r3/BxcUFLVq0QFZWFjZs2IDNmzfjq6++wuLFi/Haa69h5syZFu3e/If8ZuJ/k3BPnjyJ3r17IzIyEu+//z7CwsKg0Wjw3XffYe7cubedmFodk8mERx55BC+++GK1r1cGttoUFBSgX79+yM/Pxw8//ICQkBCL14ODgwEAFy9erLLuxYsX4evrW+0oijX++c9/QqVSYcSIEXdVD5FSMZQQWalRo0YAgKysLIvRCIPBgOzsbPN/3zeX69Wrl0UdWVlZ5tcrNWnSBFOnTsXUqVNx/PhxtG/fHu+99x4+++wzNGnSBAAQEBBgrr82JpMJ//3vfy3+2FZe7KtyQuxXX30FnU6HLVu2WPyxTEtLq1KfSqVC79690bt3b7z//vt466238PLLL2P79u3m/nh4eGDYsGEYNmwYDAYDhgwZgjfffBNJSUkWh69u59tvv0V5eTm++eYbi1GVWw9RVW6/48ePW3wOly5dqnIYrEmTJigqKrqjbVedsrIyDBgwAMeOHcO2bdvQsmXLKmX+9Kc/wd/fHz/99FOV1/bt24f27dvXqe1K5eXl+OqrrxATE1MlEBE5Cx6+IbJSbGwsNBoNPvjgA4tTbJcsWYKCggLzWSsPPvggAgIC8OGHH1oM6W/atAlHjx41lyspKTEP71dq0qQJvLy8zOvFxcXB29sbb731FioqKqr0qborhi5cuND8sxACCxcuhFqtRu/evQHcGLGQJAlGo9Fc7tSpU1i3bp1FPVeuXKlSd+Uf2Mr+/f777xavazQatGzZEkKIavtbm8qRlJu3bUFBQZWwFBsbC7VajQULFliUre5MmqFDh2L37t3VXqQsPz8f169fr7E/RqMRw4YNw+7du7FmzRpER0fXWDY+Ph4bNmzA2bNnzcvS09Nx7NgxPP744zWudye+++475Ofn89ANOTWOlBBZyd/fH0lJSZg5cyb69u2LgQMHIisrC4sXL8ZDDz2Ev/3tbwAAtVqN2bNnY8yYMejZsydGjBhhPiU4IiICU6ZMAXBjBKN3794YOnQoWrZsCVdXV6xduxa5ubkYPnw4AMDb2xupqakYOXIkHnjgAQwfPhz+/v44c+YMNm7ciK5du1qEEJ1Oh82bN2PUqFGIiorCpk2bsHHjRkyfPt18oa7+/fvj/fffR9++ffHXv/4VeXl5WLRoEe6//378/PPP5rpmzZqFnTt3on///mjUqBHy8vKwePFihIaGolu3bgCAPn36ICgoCF27dkVgYCCOHj2KhQsXon///vDy8rJq+/bp0wcajQYDBgzA008/jaKiInzyyScICAiwODTi7++P559/HikpKXjsscfw6KOP4uDBg9i0aRMaNmxoUecLL7yAb775Bo899hhGjx6Njh07ori4GIcPH8aXX36JU6dOVVmn0tSpU/HNN99gwIABuHLlisXF0gCYP28AmD59OtasWYOHH34YkyZNQlFREebMmYM2bdpgzJgxFuutWLECp0+fNl+jZefOneaLoo0c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BQDExMRYLE9LS8Po0aMBAHPnzoVKpUJ8fDzKy8sRFxeHxYsX26SzRERE5LysCiVCiNuW0el0WLRoERYtWlTnThEREdG9h/e+ISIiIkVgKCEiIiJFYCghIiIiRWAoISIiIkVgKCEiIiJFqNMVXYmIKonSMphKSmSr31Ru/KOtOzgDkIjqL4YSIrorlx8dgssy1m9UaYAecwEAorQU0HnJ2BoRORIP3xAREZEicKSEiKyn02HkVBcAwObHvoWvPlC2psoLipAx84hs9RORcjCUEJHVJElCuUa68bObG1Tu7rK1pbppTgkROTceviEiIiJF4EgJkcyEyWT+uaT0d6gg35kqpWVXZKubiEhuDCVEMiu5KSjEfN3PfNiDiIgs8fANkczKKzgngojoTnCkhMiO1CeeQ7GqgV3a0g3ztUs7RES2wlBCiiKEwHWD6fYFbaDCAWd1fPFcHzQMjrBLW25qF7u0Q0RkKwwlpCjXDSZ8PCnD0d2QjbvGBe4afu2IiKrDOSVERESkCPyXjRRrzDvdoNba5xCEq4b5vD6oMJjscjE1V40KksSzpIjsjaGEFEutdbFbKKH6YXlypl3aGT+/J/c9Igfgv4dERESkCBwpISJFc9Wo0HPnFABA010/ynafnYpyI9Je/FGWuonozjCUEJGiSZIEF5MBwI1DeioeViFyWgwlRHRXSsuuoKREvl8lptJS888330eIiJwPQwkR3ZV+W4bJWr/WILDifz+XlF2Bl6enrO0RkeNwoisR1Ru8jxCRc+NICRFZTafzxfXfptulLU/TVQAL7NIWETkWQwkRWc1dq0bmzMft0tbli6dQvJ6hhOhewFBCRFaTJMlu9/Bx17ig2C4tEZGjcU4JERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESmCq6M7QOQoQgiI0lL52yktk70NIiJnYHUo2blzJ+bMmYPMzExcvHgRa9euxeDBg82vCyGQnJyMTz75BPn5+ejatStSU1PRtGlTW/ab6K6J0lJkPdDR0d0gIqL/sfrwTXFxMdq1a4dFixZV+/o777yDDz74AB9++CH27t0LDw8PxMXFoayM/y0SERFRzaweKenXrx/69etX7WtCCMybNw+vvPIKBg0aBAD49NNPERgYiHXr1mH48OF311simTTd9SNUbm6y1H2lIBd9NwwAAGzW6WRpg4jIGdh0Tkl2djZycnIQGxtrXqbX6xEVFYXdu3dXG0rKy8tRXl5ufl5YWGjLLhHdEZWbG1Tu7rLULRncUK6RbvwsSbK0QUTkDGx69k1OTg4AIDAw0GJ5YGCg+bVbpaSkQK/Xmx9hYWG27BIRERHVEw4/JTgpKQkFBQXmx9mzZx3dJSIiInIAm4aSoKAgAEBubq7F8tzcXPNrt9JqtfD29rZ4EBER0b3HpqGkcePGCAoKQnp6unlZYWEh9u7di+joaFs2RURERE7G6omuRUVFOHHihPl5dnY2Dh06BF9fX4SHh2Py5Ml444030LRpUzRu3BivvvoqQkJCLK5lQvWLEALXDSa7tFVRbrRLO0REpDxWh5KffvoJDz/8sPl5YmIiAGDUqFFYtmwZXnzxRRQXF2P8+PHIz89Ht27dsHnzZuh4KmS9dd1gwseTMhzdDSIicnJWh5KYmBgIIWp8XZIkzJo1C7NmzbqrjhER3UqUlsFUUiJL3aabRulq+x1HRPLhvW/IKmPe6Qa11sUubblqHH5yGCnM5UeH4LJMdRtVGqDHXAA3bkEAnZdMLRFRTRhKyCpqrYvdQgkREd1bGEqISNl0OoyceiMIb37sW/jqA2+zQt2UFxQhY+YRWeomojvDUEJEiiZJ0h+X6ZfxdgAqnvlF5HA8aE9ERESKwFBCREREisBQQkRERIrAUEJERESKwFBCREREisBQQkRERIrAUEJERESKwOuUEBHZmT3vvF3JVaOCJEl2bZPIWgwlRER25og7b4+f35O3iCDF4+EbIiIiUgSOlBAR3aLCYJL1svMVN9Ut5523K8qNSHvxR1nqJpIDQwnds4Tpj2P6JaW/Q4USWdopLbsiS70kn+XJmXZri3feJvoDQ0k9Zq/JchVOeqOykpvCQszX/cw3fSMiIsdgKKnHHDFZzpmUVzhn2KK6cdWo0HPnFABA010/ynY34uraJaIbGEqIAKhPPIdiVQPZ29EN85W9DaobSZLgYjIAuHFIRcVDKkR2x1DiJOScLHczZ/2v7ovn+qBhcITs7bip+YeOiKgmDCVOgpPl7o67xgXuGn4diIgcyTn/7SUiIqJ6h6GEiIiIFIHj1URUb5SWXUFJiTy/tkylpeafb76GDRHZD0MJEdUb/bYMk61urUFgxf9+Li2/Ck9PT9naIqLq8fANEdEthBCO7gLRPYkjJUSkaDqdL67/Nl32djxNVwEsAHDjwnpesrfoXOx1hembuWpUkCReidmZMJQQkaJJKhVKhbfs7Wj/d+E0qhtHXGF6/PyevBSCk2EoISJFc1O74NdZcbK3c/niKRR/K3szRFQLhhIiUjRJkuxyYTt3jQuKZW/l3iDnFaYryo1Ie/FHWeomx2MoISIim+IVpqmuGEqIiG4hSstgKimxS1uSmxsnaxL9D0MJEdEtLj86BJft1FbzA5mQ3N3t1BqRsvE6JURERKQIHCkhIgIAnQ4jp96YB7H5sW/hqw+UrSlTaSmOd+0mW/1E9RVDCRERbpzlU665MbdDcnODiodUiOyOh2+IiIhIEThSYmP2vNRyRbnRLu0QERHZA0OJjTniUsvORAgBcdMt5GVtq7TMLu0QEdGdYSghRRGlpch6oKOju0FkNyYZQ7jpptFU3vmY6gOGEhnJeanlW7lqOD2IqD6S8ywco0oD9JgL4Ebgh473PiZlYyiRES+1fHea7voRKjc32eq/UpCLvhsGAAA263SytUOkBBUGE1QyzkPjHDeyBYYSUiyVzKdlSga3P04B5WW+yY4kNzc0P5ApezvlBUXImHkEALA8Wf72iO4WQwkRkZ1JkmSXS8vLOTJSG1NJCUxGeUaJOU/GuTGUEBE5KVeNCj13TgHwv8OhMgYhU0mJeX7MyWgD5Bp75DwZ58ZQQkTkpCRJgovJAODGHDeVjHPcTEYXc1tEdcVQQkR0i9KyKygpsc+vRzedLySVc509J+ck9ZvnyZDzYSghIrpFvy3D7NbW3se3w929od3aswc5J6k7ap4M2QdDCd2WPa+yKueFpIjuZXJ/t/jdJVtgKKHb4lVW6V6g0/ni+m/TAQD/mtID7hr55l+Ull0xj8bY6wwSOS/SRmQrDCVERAAklQqlwhsA0P39Q7K25SYVwjXyxs9lFUZ4yNoaUf3BUEJWkfsqqzeT7NQOkbOy10XaqmuXqC4YSuoxe831uPlYsdxXWRVCoPT6/9q7Lu97K73OuwTTH9zULvh1Vpxd2vo9PxePbnpL9nbsdZE2ADAZjbh67dKNJ4ZC2dqpKCz+o00TJ706G4aSeswZ53qUGIrReVW0o7tB9yBJkuCusc+vxFIZ56s4ytVrlxCz/hHZ2/EoVWMk3gUAFBT9Djc/H9nbJPtxrpPjqd4rKy1ydBeIiMhBOFLiJOw118Oex4p3nD4HNzudmSBceJdgcgx7XajNnhdpW/vw52jgLc+1V/LOncX3h67JUjc5HkOJk5B7rocjlI7dDze9v13acnfn/TPIMex1obbt/b+Eu7ufbPWXll0x/9zAuyH8fIJkaaeioBgAQ4mzYiih27KYfCqzmyefunl4wt1Tb5d2iZzdwxv/4uguEN3WPRNKhBC4bjDJ3o6h7Lr5Zzlv3w0AxpIS888lFaVQVcjTTomhGA9/2UueyonuQTdfqE1ObqoiVDT7QPZ2iGxFtlCyaNEizJkzBzk5OWjXrh0WLFiATp06ydXcbV03mPDxpAy7tnm8aze73TUzZnVPlGvkulk4EdmSu1aNzJmPy95OcVkFeqR4yt7OrXTDfO3SzvUKgQo73QvHVaOCJPF3rNxkCSVffPEFEhMT8eGHHyIqKgrz5s1DXFwcsrKyEBAQIEeTt2WvSzk7O04+Jbp79jr92E3tYpfwU1279rD+3TMAztilrbHvdYXOQ2uXtu5lsnwr3n//fYwbNw5jxowBAHz44YfYuHEjli5dipdeekmOJm/r5ouMdds1DS5G+Ucwnk4wotxO1yPYfOE83CF/WCh5+jDg6S17OwAnnxLdLXtee8XZnfh5PxqGBDu6GzYT1KiJo7tQLZvvrQaDAZmZmUhKSjIvU6lUiI2Nxe7du6uULy8vR3l5ufl5QUEBAKCw0LZXBCwvvIZSw40rAZYaSu1yWKXE6IJyo32G+y4N+162U/Bu5qbzwnWTfd7TtSJes4SILJWUFaHj9v+zS1tGFw12d54JANj8STGAq3Zp1x7Gz7P9mY2Vf7fv5siEzUPJ5cuXYTQaERgYaLE8MDAQv/32W5XyKSkpmDlzZpXlYWFhtu6a/U2yX1Mt8YD9GiMiulccHejoHsjihTT56r527Rr0+rqdOenwcb2kpCQkJiaan5tMJly5cgV+fn42n1RUWFiIsLAwnD17Ft7e9jkEoUTcDn/gtriB2+EGbocbuB3+wG1xw51sByEErl27hpCQkDq3Y/NQ0rBhQ7i4uCA3N9dieW5uLoKCql5MR6vVQqu1nDzk4+Nj625Z8Pb2vqd3rkrcDn/gtriB2+EGbocbuB3+wG1xw+22Q11HSCrZ/JrDGo0GHTt2RHp6unmZyWRCeno6oqN5ozUiIiKqniyHbxITEzFq1Cg8+OCD6NSpE+bNm4fi4mLz2ThEREREt5IllAwbNgyXLl3Ca6+9hpycHLRv3x6bN2+uMvnV3rRaLZKTk6scLrrXcDv8gdviBm6HG7gdbuB2+AO3xQ322g6S4FXFiIiISAHscx9rIiIiottgKCEiIiJFYCghIiIiRWAoISIiIkVgKCEiIiJFcLpQsmjRIkRERECn0yEqKgr79u2rtfyaNWsQGRkJnU6HNm3a4LvvvrNTT+WRkpKChx56CF5eXggICMDgwYORlZVV6zrLli2DJEkWD51OZ6cey2fGjBlV3ldkZGSt6zjb/gAAERERVbaDJElISEiotryz7A87d+7EgAEDEBISAkmSsG7dOovXhRB47bXXEBwcDDc3N8TGxuL48eO3rdfa3zFKUNu2qKiowLRp09CmTRt4eHggJCQEf//733HhwoVa66zL98vRbrdPjB49usp76tu3723rrW/7xO22Q3W/LyRJwpw5c2qs01b7g1OFki+++AKJiYlITk7GgQMH0K5dO8TFxSEvL6/a8v/+978xYsQIjB07FgcPHsTgwYMxePBgHDlyxM49t52MjAwkJCRgz5492Lp1KyoqKtCnTx8UFxfXup63tzcuXrxofpw+fdpOPZZXq1atLN7Xjz/+WGNZZ9wfAGD//v0W22Dr1q0AgMcff7zGdZxhfyguLka7du2waNGial9/55138MEHH+DDDz/E3r174eHhgbi4OJSVldVYp7W/Y5Sitm1RUlKCAwcO4NVXX8WBAwfw9ddfIysrCwMH3v5GdNZ8v5TgdvsEAPTt29fiPX3++ee11lkf94nbbYeb3//FixexdOlSSJKE+Pj4Wuu1yf4gnEinTp1EQkKC+bnRaBQhISEiJSWl2vJDhw4V/fv3t1gWFRUlnn76aVn7aU95eXkCgMjIyKixTFpamtDr9fbrlJ0kJyeLdu3a3XH5e2F/EEKISZMmiSZNmgiTyVTt6864PwAQa9euNT83mUwiKChIzJkzx7wsPz9faLVa8fnnn9dYj7W/Y5To1m1RnX379gkA4vTp0zWWsfb7pTTVbYdRo0aJQYMGWVVPfd8n7mR/GDRokOjVq1etZWy1PzjNSInBYEBmZiZiY2PNy1QqFWJjY7F79+5q19m9e7dFeQCIi4ursXx9VFBQAADw9fWttVxRUREaNWqEsLAwDBo0CL/88os9uie748ePIyQkBPfddx+eeOIJnDlzpsay98L+YDAY8Nlnn+HJJ5+s9S7czro/VMrOzkZOTo7F563X6xEVFVXj512X3zH1VUFBASRJuu3NUa35ftUXO3bsQEBAAJo3b45nn30Wv//+e41l74V9Ijc3Fxs3bsTYsWNvW9YW+4PThJLLly/DaDRWuZR9YGAgcnJyql0nJyfHqvL1jclkwuTJk9G1a1e0bt26xnLNmzfH0qVLsX79enz22WcwmUzo0qULzp07Z8fe2l5UVBSWLVuGzZs3IzU1FdnZ2ejevTuuXbtWbXln3x8AYN26dcjPz8fo0aNrLOOs+8PNKj9Taz7vuvyOqY/Kysowbdo0jBgxota7wVr7/aoP+vbti08//RTp6emYPXs2MjIy0K9fPxiNxmrL3wv7xPLly+Hl5YUhQ4bUWs5W+4Ms974hZUhISMCRI0due1wvOjra4g7OXbp0QYsWLfDRRx/h9ddfl7ubsunXr5/557Zt2yIqKgqNGjXC6tWr7yj1O6MlS5agX79+CAkJqbGMs+4PdHsVFRUYOnQohBBITU2ttawzfr+GDx9u/rlNmzZo27YtmjRpgh07dqB3794O7JnjLF26FE888cRtJ7vban9wmpGShg0bwsXFBbm5uRbLc3NzERQUVO06QUFBVpWvTyZMmIANGzZg+/btCA0NtWpdtVqNDh064MSJEzL1zjF8fHzQrFmzGt+XM+8PAHD69Gls27YNTz31lFXrOeP+UPmZWvN51+V3TH1SGUhOnz6NrVu31jpKUp3bfb/qo/vuuw8NGzas8T05+z7xww8/ICsry+rfGUDd9wenCSUajQYdO3ZEenq6eZnJZEJ6errFf303i46OtigPAFu3bq2xfH0ghMCECROwdu1afP/992jcuLHVdRiNRhw+fBjBwcEy9NBxioqKcPLkyRrflzPuDzdLS0tDQEAA+vfvb9V6zrg/NG7cGEFBQRafd2FhIfbu3Vvj512X3zH1RWUgOX78OLZt2wY/Pz+r67jd96s+OnfuHH7//fca35Mz7xPAjZHVjh07ol27dlavW+f94a6nyirIqlWrhFarFcuWLRO//vqrGD9+vPDx8RE5OTlCCCFGjhwpXnrpJXP5Xbt2CVdXV/Huu++Ko0ePiuTkZKFWq8Xhw4cd9Rbu2rPPPiv0er3YsWOHuHjxovlRUlJiLnPrdpg5c6bYsmWLOHnypMjMzBTDhw8XOp1O/PLLL454CzYzdepUsWPHDpGdnS127dolYmNjRcOGDUVeXp4Q4t7YHyoZjUYRHh4upk2bVuU1Z90frl27Jg4ePCgOHjwoAIj3339fHDx40HxGydtvvy18fHzE+vXrxc8//ywGDRokGjduLEpLS8119OrVSyxYsMD8/Ha/Y5Sqtm1hMBjEwIEDRWhoqDh06JDF743y8nJzHbdui9t9v5Sotu1w7do18fzzz4vdu3eL7OxssW3bNvHAAw+Ipk2birKyMnMdzrBP3O67IYQQBQUFwt3dXaSmplZbh1z7g1OFEiGEWLBggQgPDxcajUZ06tRJ7Nmzx/xaz549xahRoyzKr169WjRr1kxoNBrRqlUrsXHjRjv32LYAVPtIS0szl7l1O0yePNm8zQIDA8Wjjz4qDhw4YP/O29iwYcNEcHCw0Gg04k9/+pMYNmyYOHHihPn1e2F/qLRlyxYBQGRlZVV5zVn3h+3bt1f7Xah8ryaTSbz66qsiMDBQaLVa0bt37yrbp1GjRiI5OdliWW2/Y5Sqtm2RnZ1d4++N7du3m+u4dVvc7vulRLVth5KSEtGnTx/h7+8v1Gq1aNSokRg3blyVcOEM+8TtvhtCCPHRRx8JNzc3kZ+fX20dcu0PkhBCWD0uQ0RERGRjTjOnhIiIiOo3hhIiIiJSBIYSIiIiUgSGEiIiIlIEhhIiIiJSBIYSIiIiUgSGEiIiIlIEhhIiIiJSBIYSIiIiUgSGEiIiIlIEhhIiIiJShP8HuPpkAHP/LcAAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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eb6+vgCAK1eu1L6D9+jnn3/Gnj174OrqWuG5s2fPomXLllbrS3UYSoiISNEkSTJ5F4otaTQao8eSJBnNKz9exGAwQKVSVThupbi42Ox9ys3NxaBBg/Duu+9WeM7f39/s7dUUQwkREZGNeHt7IycnB3l5eXBxcQGAu15bxNHREaWlpSa18+CDD2LDhg0ICgqCg0PlP/01qdfcePYNERGRjXTu3BnOzs6YM2cOzp49izVr1mDVqlXVviYoKAgnTpxASkoKrl27dk8jK5MmTcKNGzcwYsQIHDlyBGfPnsW2bdswatQoOYgEBQXh8OHDOHfuHK5duwaDwWCORTQJQwkREZGNeHp64ssvv8T333+PkJAQfP3114iNja32NePGjUOrVq3w0EMPwdvbG/v3779rOwEBAdi/fz9KS0vRp08fhISEYMqUKfDw8IBKVRYFpk+fDrVajTZt2sDb27tGZwfVliRMPQnbwrKzs6HX65GVlQV3d3dbd4eoTikuLMWKV5IAAOMXR0CjVdfpdqh+unXrFtLS0tC0aVM4OTnZujt1UkpKCoKDg5Gamor777/fbPVW996Y4/ebIyVERER25MaNG1i/fj3c3d0RGBho6+6YhAe6EhER2ZExY8bg6NGjWLp0KbRara27YxKGEiIiIjuyadMmW3ehxrj7hoiIiBSBoYSIiIgUgbtviCxMCIGSIuuc719caNsLHxER1QZDCZGFlRQZ5NNniYioatx9Q0RERIpg0khJXFwcNm7ciFOnTkGn06Fr165499130apVK7nMrVu3MG3aNHzzzTcoLCxE37598emnn8p3RSSqz0a9F261C405OPJvDiKqW0z61kpKSsKkSZNw6NAh7NixA8XFxejTpw/y8vLkMlOnTsV//vMfrFu3DklJSbh06RKefPJJs3ecqC7SaNVWm8rvREpEVFeYNFKydetWo8erVq2Cj48Pjh49im7duiErKwv/+te/sGbNGvTo0QMAEB8fj9atW+PQoUN45JFHzNdzIiIihYmMjERoaCgWLVpk667USbUa383KygJQdkMhADh69CiKi4vRq1cvuUxwcDAaN26MgwcPVlpHYWEhsrOzjSYiIiKqf2ocSgwGA6ZMmYKwsDC0a9cOAJCeng5HR0d4eHgYlfX19UV6enql9cTFxUGv18tTXbtOPxERWZYQAob8fJtMptyzNioq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4gNDCRERKY6fnx8A1Lsb0imdSqVC48aNLRYSGUqIiEhxJEmCv78/fHx87O6mc3WZo6MjVCrLHfnBUEJERIqlVqvt7v4uVDUe6EpERESKwFBCREREisBQQkRERIrAUEJERESKwFBCREREisBQQkRERIrAUEJERESKwFBCREREisBQQkRERIrAUEJERESKwMvME1mYEAKioMAqbRms1A4RkSUwlBBZmCgoQMqDHW3dDSIixePuGyIiIlIEjpQQWVGL/fug0ums0pZkpXaIiMyFoYTIilQ6HVTOzrbuBhGRInH3DRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAkMJERERKQJDCRERESkCQwkREREpAu99Q0S1YigosGz9haXy/4UQFm2LiGyLoYSIaiU1LNyi9ZeqHIFuCwEAoqAAcHKzaHtEZDsm777Zu3cvBg0ahICAAEiShM2bNxs9HxUVBUmSjKZ+/fqZq79ERERkp0weKcnLy0OHDh0wevRoPPnkk5WW6devH+Lj4+XHWq225j0kIsWRdDq0Sj5qlbYKs3KRNPekVdoiItsyOZT0798f/fv3r7aMVquFn59fjTtFRMomSRIkZ2ertKW67ZgSIrJvFjn7JjExET4+PmjVqhUmTpyI69evV1m2sLAQ2dnZRhMRERHVP2YPJf369cPnn3+OXbt24d1330VSUhL69++P0tLK/9qJi4uDXq+Xp8DAQHN3iYiIiOoAs599M3z4cPn/ISEhaN++PZo3b47ExET07NmzQvnZs2cjOjpafpydnc1gQkREVA9Z/OJpzZo1g5eXF86cOVPp81qtFu7u7kYTERER1T8WDyUXLlzA9evX4e/vb+mmiIiIqA4zefdNbm6u0ahHWloajh8/Dk9PT3h6emLu3LkYOnQo/Pz8cPbsWcycORP3338/+vbta9aOExERkX0xOZT89NNP6N69u/y4/HiQkSNHYunSpThx4gRWr16NzMxMBAQEoE+fPpg/fz6vVUJERETVMjmUREZGVnv/iW3bttWqQ0RERFQ/8S7BREREpAgMJURERKQIDCVERESkCAwlREREpAgMJURERKQIDCVERESkCAwlREREpAgMJURERKQIDCVERESkCAwlREREpAgMJURERKQIDCVERESkCAwlREREpAgM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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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DDKlpaUoLS2Vp/Pz859mM4jIxDiWiegP8+fPR2FhIQYPHgwnJye89tpr8t/XCgEBAejWrRtu3bqlM56GniLIaLVaREdHo3v37mjXrh0AICcnB7a2tnB1ddUp6+npiZycnCrrqZj/8BiamtaJj4/H3Llzn7TrREREtYajoyP+/e9/49///rc87/XXX9cpI4TAlStX8Pe//93U3av1nvgVBVOnTsXZs2exYcMGQ/bnscTGxiIvL0/+XLp0yeR9ICIiMoXr169jyZIlyMnJwfjx483dnVrnic7ITJs2DTt37sT+/fvle90BwMvLC2VlZbhz547OWZnc3Fx4eXlVWVfF/NzcXHh7e+usExQUVOU6arUaarX6SbpORESkKB4eHnBzc8PKlStRv359c3en1tHrjIwQAtOmTcP27dvx/fffo2nTpjrLO3XqBBsbG+zdu1eel56ejuzsbISEhFRZZ9OmTeHl5aWzTn5+Po4ePVrtOkRERHWFEALXr1/HX/7yF3N3pVbSK8hMnToVa9euxbp16+Dk5IScnBzk5OSgpKQEwP1BuhMnTkRMTAz27duHEydOYPz48QgJCdEZ6NuqVSts374dwP37/KOjo/H+++/jP//5D86cOYNx48bBx8cHERERhttSIiIisjh6XVpatmwZACAsLExnfkJCAqKiogAACxYsgJWVFV588UWdB+I9KD09XWdE9syZM1FUVIQpU6bgzp076NGjB3bt2gU7O7sn2CQiIiKqK/QKMkKIR5axs7PD0qVLsXTp0seuR5IkvPvuu3j33Xf16Q4RERHVcU981xIRERGRuTHIEBERkWIxyBAREZFiKf+1oET0VIQQuFemNXo75aUao7dBpERhYWEICgrCwoULzd0VRWKQIarj7pVpsXJ6irm7QUTVkCQJ27dv13kkSVxcHBITE3Hq1CmdsitXrsS6deuQlpaGgoIC3L59W+cBtVlZWXjvvffw/fffIycnBz4+PvjrX/+Kt956C7a2tnKZh58TB6DadyaaG4MMERGRhSguLkb//v3Rv39/xMbGVlr+yy+/QKvVYsWKFWjevDnOnj2LyZMno6ioCB9//LFO2T179qBt27bydMOGDY3e/yfBIENEsvEf9TDJW6mtbTk8j0xACKC82PTt2jgAkqTXKlqtFjNnzsTnn38OW1tb/L//9/8QFxcHPz8/AMDQoUMB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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGzCAYAAAAIWpzfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFuElEQVR4nO3deXQUVeL28aeTdDoLWQhkHQKJDArKpiAIqETIsKgsiiLKOKAIjoADooI4AgEdEUVAEUEcDbigMg7LyCi8iBCUAUQWFQUEDItCWIQkZA/pev/gl5Y2YQl2pVPJ93NOn9Ndfeve25VK58mtW1U2wzAMAQAAWICPtzsAAABwsQguAADAMgguAADAMgguAADAMgguAADAMgguAADAMgguAADAMgguAADAMgguAADAMgguACpk3rx5stls+uqrr0xvKykpSUlJSZe0bkJCggYOHOjR/gDwPoILgBph586dGj16tFq2bKmQkBDFxsbqlltuOWcA+/nnn9W3b1+Fh4crNDRUvXr10o8//lim3OzZs3XnnXeqfv36stls5wxLSUlJstls5T7sdrsnPypQrfl5uwMAUBn++c9/6o033lCfPn00dOhQZWVl6bXXXtN1112n5cuXKzk52VU2JydHN910k7KysvTkk0/Kbrdr+vTp6tixo7Zt26Y6deq4yk6ZMkWnTp1SmzZtdPjw4XO2//e//10PPPCA27Lc3Fz99a9/VZcuXTz/gYFqiuACoEa4++67lZKSolq1armW3X///WrSpIlSUlLcgsurr76q3bt368svv9S1114rSerevbuaNm2qF198Uc8++6yrbFpammu05ey6f+tPf/pTmWXvvPOOJKl///6/+/MBNQWHioAqLCUlRTabTTt37lTfvn0VGhqqOnXqaMSIESooKHCVS01NVadOnRQVFSWHw6Err7xSs2fPLlPfV199pa5du6pu3boKDAxUYmKi7r//frcy77//vlq1aqWQkBCFhoaqWbNmeumll8rUVVhYqFGjRikyMlLBwcG67bbbdOzYMbcyS5cu1S233KK4uDg5HA41bNhQTz/9tEpKSsrUN3fuXDVs2FCBgYFq06aNPv/883K3SWFhoSZMmKA//vGPcjgcio+P1+jRo1VYWHjebdmqVasywaJOnTq64YYbtGPHDrflH374oa699lpXaJGkxo0bq3Pnzlq4cKFb2QYNGshms5237XNZsGCBgoOD1atXr0taH6iJGHEBLKBv375KSEjQ5MmTtWHDBr388ss6efKk3nrrLUln5llcddVV6tmzp/z8/PTRRx9p6NChcjqdGjZsmCTp6NGj6tKliyIjI/XEE08oPDxc+/bt06JFi1ztrFy5Unfffbc6d+6sKVOmSJJ27NihdevWacSIEW59evjhh1W7dm1NmDBB+/bt04wZMzR8+HB98MEHrjLz5s1TrVq1NGrUKNWqVUufffaZxo8fr+zsbL3wwguucm+88YYefPBBtW/fXiNHjtSPP/6onj17KiIiQvHx8a5yTqdTPXv21BdffKEhQ4aoSZMm+vbbbzV9+nT98MMPWrJkSYW3bUZGhurWrevWxjfffFMm0ElSmzZt9P/+3//TqVOnFBISUuG2znbs2DGtXLlSd911l4KDg39XXUCNYgCosiZMmGBIMnr27Om2fOjQoYYk4+uvvzYMwzDy8vLKrNu1a1fjsssuc71evHixIcnYtGnTOdsbMWKEERoaapw+ffqcZVJTUw1JRnJysuF0Ol3LH3nkEcPX19fIzMx0LSuvXw8++KARFBRkFBQUGIZhGEVFRUZUVJTRsmVLo7Cw0FVu7ty5hiSjY8eOrmVvv/224ePjY3z++edudc6ZM8eQZKxbt861rEGDBsaAAQPO+TkMwzDWrl1r2Gw2Y9y4ca5lx44dMyQZkyZNKlN+1qxZhiRj586d5dYXHBx8wTZLzZw505BkfPzxxxdVHsAZHCoCLKB01KTUww8/LEn6+OOPJUmBgYGu97KysnT8+HF17NhRP/74o7KysiRJ4eHhkqRly5apuLi43HbCw8OVm5urlStXXrBPQ4YMcTtEcsMNN6ikpET79+93LTu7X6dOndLx48d1ww03KC8vTzt37pR05vDV0aNH9de//lX+/v6u8gMHDlRYWJhbm//617/UpEkTNW7cWMePH3c9OnXqJElavXr1Bftd6ujRo7rnnnuUmJio0aNHu5bn5+dLkhwOR5l1AgIC3Mr8HgsWLFBkZGS5c18AnBvBBbCARo0aub1u2LChfHx8tG/fPknSunXrlJycrODgYIWHhysyMlJPPvmkJLmCS8eOHdWnTx9NnDhRdevWVa9evZSamuo2N2To0KG6/PLL1b17d9WrV0/333+/li9fXm6f6tev7/a6du3akqST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GDZsmOt1SUmJERcXZ0yePLnc8n379jVuueUWt2Vt27Y1HnzwQVP7WZmOHj1qSDLS0tLOWSY1NdUICwurvE5VggkTJhgtWrS46PI1YV8oNWLECKNhw4aG0+ks9/3quD9IMhYvXux67XQ6jZiYGOOFF15wLcvMzDQcDofx3nvvnbOein7HVDW/3Q7l+fLLLw1Jxv79+89ZpqK/X1VRedtiwIABRq9evSpUT03YJ3r16mV06tTpvGU8tU/UqBGXoqIibd68WcnJya5lPj4+Sk5O1vr168tdZ/369W7lJalr167nLG9FWVlZkqSIiIjzlsvJyVGDBg0UHx+vXr166bvvvquM7plq9+7diouL02WXXab+/fvrwIED5yxbE/YF6czvyTvvvKP777//vHdfr477w9nS09OVkZHh9jMPCwtT27Ztz/kzv5TvGCvKysqSzWa74M1uK/L7ZSVr1qxRVFSUrrjiCj300EP65Zdfzlm2JuwTR44c0X//+18NGjTogmU9sU/UqOBy/PhxlZSUlLmtQHR0tDIyMspdJyMjo0LlrcbpdGrkyJHq0KGDmjZtes5yV1xxhd58800tXbpU77zzjpxOp9q3b6+ffvqpEnvrWW3bttW8efO0fPlyzZ49W+np6brhhht06tSpcstX932h1JIlS5SZmamBAwees0x13B9+q/TnWpGf+aV8x1hNQUGBxowZo7vvvvu8dwCu6O+XVXTr1k1vvfWWVq1apSlTpigtLU3du3dXSUlJueVrwj4xf/58hYSE6Pbbbz9vOU/tE167VxGqhmHDhmn79u0XPM7Yrl07tzt3t2/fXk2aNNFrr72mp59+2uxumqJ79+6u582bN1fbtm3VoEEDLVy48KL+c6iu3njjDXXv3l1xcXHnLFMd9wdcWHFxsfr27SvDMDR79uzzlq2uv1/9+vVzPW/WrJmaN2+uhg0bas2aNercubMXe+Y9b775pvr373/BCfqe2idq1IhL3bp15evrqyNHjrgtP3LkiGJiYspdJyYmpkLlrWT48OFatmyZVq9erXr16lVoXbvdrquvvlp79uwxqXeVLzw8XJdffvk5P1N13hdK7d+/X59++qkeeOCBCq1XHfeH0p9rRX7ml/IdYxWloWX//v1auXLleUdbynOh3y+ruuyyy1S3bt1zfq7qvE9I0ueff65du3ZV+DtDuvR9okYFF39/f7Vq1UqrVq1yLXM6nVq1apXbf49na9eunVt5SVq5cuU5y1uBYRgaPny4Fi9erM8++0yJiYkVrqOkpETffvutYmNjTeihd+Tk5Gjv3r3n/EzVcV/4rdTUVEVFRemWW26p0HrVcX9ITExUTEyM2888OztbGzduPOfP/FK+Y6ygNLTs3r1bn376qerUqVPhOi70+2VVP/30k3755Zdzfq7quk+UeuONN9SqVSu1aNGiwute8j7xu6f3Wsz7779vOBwOY968ecb3339vDBkyxAgPDzcyMjIMwzCMe++913jiiSdc5detW2f4+fkZU6dONXbs2GFMmDDBsNvtxrfffuutj/C7PfTQQ0ZYWJixZs0a4/Dhw65HXl6eq8xvt8PEiRONFStWGHv37jU2b95s9OvXzwgICDC+++47b3wEj3j00UeNNWvWGOnp6ca6deuM5ORko27dusbRo0cNw6gZ+8LZSkpKjPr16xtjxowp81513R9OnTplbN261di6dashyZg2bZqxdetW19kyzz33nBEeHm4sXbrU+Oabb4xevXoZiYmJRn5+vquOTp06GTNnznS9vtB3TFV0vu1QVFRk9OzZ06hXr56xbds2t++MwsJCVx2/3Q4X+v2qqs63LU6dOmU89thjxvr164309HTj008/Na655hqjUaNGRkFBgauO6r5PlMrKyjKCgoKM2bNnl1uHWftEjQsuhmEYM2fONOrXr2/4+/sbbdq0MTZs2OB6r2PHjsaAAQPcyi9cuNC4/PLLDX9/f+Oqq64y/vvf/1Zyjz1LUrmP1NRUV5nfboeRI0e6tll0dLRx8803G1u2bKn8znvQXXfdZcTGxhr+/v7GH/7wB+Ouu+4y9uzZ43q/JuwLZ1uxYoUhydi1a1eZ96rr/rB69epyfxdKP6vT6TTGjRtnREdHGw6Hw+jcuXOZ7dOgQQNjwoQJbsvO9x1TFZ1vO6Snp5/zO2P16tWuOn67HS70+1VVnW9b5OXlGV26dDEiIyMNu91uNGjQwBg8eHCZAFLd94lSr732mhEYGGhkZmaWW4dZ+4TNMAyjwuM7AAAAXlCj5rgAAABrI7gAAADLILgAAADLILgAAADLILgAAADLILgAAADLILgAAADLILgAAADLILgAAADLILgAAADLILgAAADL+P+En1jUl6C23QAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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JISEhCAwMNDpbjrXlOl0Omg0yp35wVBCRESqpdVqne7+LlQ/nuhKREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKpgVShJS0tD165d4eXlhcDAQAwZMgS5ubkWbSoqKpCYmIjmzZvD09MTw4YNQ0FBgU0HTURERM7HqlCSnZ2NxMREbN26FRkZGaiqqsJ9992H0tJSuc2ECRPw9ddfY8WKFcjOzsbp06cxdOhQmw+ciIiInItV85SsXbvW4vnixYsRGBiIXbt2oWfPnigsLMRHH32EpUuXok+fPgCA9PR03Hrrrdi6dSvuuusu242cqImoeQMrc1kZzCbl5lwwl5cr1jcRkdJuaPK0wsJCAICfnx8AYNeuXaiqqkLfvn3lNtHR0WjZsiW2bNlSZygxGo0wGo3y86KiohsZEpHqiBpB4XC37tCaKx04GiIi9Wr0ia5msxnjx49Ht27d0KFDBwBAfn4+dDodfH19LdoGBQUhPz+/zn7S0tLg4+MjP8LCwho7JCIiImrCGr2nJDExEfv378emTZtuaADJyclISkqSnxcVFTGYkNOKysyA3sfTLrUkg8EudYiIbKVRoeS5557DN998g40bN6JFixby8uDgYFRWVuLy5csWe0sKCgrkOz7+lV6vh16vb8wwiJocjZsBGnd3Rw+DiEiVrDp8I4TAc889h1WrVuHHH39EZGSkxetdunSBq6srMjMz5WW5ubk4ceIE4uLibDNiIiIickpW7SlJTEzE0qVLsWbNGnh5ecnnifj4+MBgMMDHxwejR49GUlIS/Pz84O3tjXHjxiEuLo5X3hAREVGDrAolCxYsAADEx8dbLE9PT0dCQgIAYPbs2dBoNBg2bBiMRiP69euH9957zyaDJSIiIudlVSipOd9Cfdzc3DB//nzMnz+/0YMiIiKimw/vfUNERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCRERE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LUROTo7F94bRaJT7+Ou6uNbvlxo1tB6Ki4vFpEmTxJYtW0ReXp5Yv369uOOOO0SbNm1ERUWF3IczbBPX+t0QQojCwkLh7u4uFixYUGcfSm0PThVKhBBi3rx5omXLlkKn04k777xTbN26VX6tV69eYuTIkRbtv/jiC9G2bVuh0+nEbbfdJr799ls7j9i2ANT5SE9Pl9v8dT2MHz9eXmdBQUFi4MCBYvfu3fYfvI09+uijIiQkROh0OnHLLbeIRx99VBw5ckR+/WbYHq5at26dACByc3Nrveas28OGDRvq/F24+lnNZrN4+eWXRVBQkNDr9eKee+6ptX7Cw8PF9OnTLZY19B2jVg2ti7y8vHq/NzZs2CD38dd1ca3fLzVqaD2UlZWJ++67TwQEBAhXV1cRHh4uxowZUytcOMM2ca3fDSGE+OCDD4TBYBCXL1+usw+ltgdJCCGs3i9DREREZGNOc04JERERNW0MJURERKQKDCVERESkCgwlREREpAoMJURERKQKDCVERESkCgwlREREpAoMJURERKQKDCVERESkCgwlREREpAoMJURERKQK/x8nV5m+aKxWwAAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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fuHo6Cjef/998fPPP4t58+YJJycncerUKVvtwkN76aWXhLu7u0hKShKXL1+WP8XFxXKZe4/D/PnzxXfffSfS0tLE0aNHxfDhw4VerxdnzpyxxS5YzF//+leRlJQk0tPTxf79+0W/fv2El5eXuHLlihCifpwPFQwGg2jSpImYNWtWpWX2ej4UFBSI48ePi+PHjwsA4oMPPhDHjx+X78R59913hYeHh9iyZYs4efKkGDhwoAgJCRElJSXyNvr06SM+/PBDefp+3zF1VU3HoqysTDz77LMiMDBQnDhxwuR7o7S0VN7Gvcfifr9fdVFNx6GgoEDMmDFDHDx4UKSnp4udO3eKxx57TLRo0ULcvHlT3oY9nBP3+90QQoi8vDzh4uIi4uPjq9yGUudDvQ8yQgjx4YcfiiZNmgitViu6dOkiDh06JC/r1auXGD16tEn5L7/8UrRs2VJotVrRrl078e2331q5xZYFoMpPQkKCXObe4zB9+nT5mPn6+or+/fuLY8eOWb/xFvbCCy8If39/odVqxSOPPCJeeOEFce7cOXl5fTgfKnz33XcCgEhNTa20zF7Ph927d1f5u1Cxr0ajUbzxxhvC19dX6HQ60bdv30rHp2nTpmLevHkm82r6jqmrajoW6enp1X5v7N69W97Gvcfifr9fdVFNx6G4uFg8/fTTwtvbWzg5OYmmTZuKiRMnVgok9nBO3O93QwghPvroI+Hs7Cxyc3Or3IZS54MkhBBm9/8QERER1QH1eowMERERqRuDDBEREakWgwwRERGpFoMMERERqRaDDBEREakWgwwRERGpFoMMERERqRaDDBEREakWgwwRERGpFoMMERERqRaDDBEREanW/wdfgs8QRZqK2QAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for ch in out:\n",
" fig, ax = plt.subplots()\n",
" hs = [out[ch][sample] for sample in out[ch] if 'phitt' not in sample]\n",
" ns = [sample.split(\"_\")[-1] for sample in out[ch].keys() if 'phitt' not in sample]\n",
" hep.histplot(hs, label=ns, stack=True)\n",
" \n",
" plt.title(ch)\n",
" plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "fc3b9b5f",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-25T13:30:55.412625Z",
"start_time": "2024-03-25T13:30:55.303608Z"
}
},
"outputs": [],
"source": [
"out = {}\n",
"for ch in model.channels:\n",
" out[ch.name] = {}\n",
" for sample in ch:\n",
" yields = sample.getExpectation(eval=True)\n",
" out[ch.name][sample.name] = yields"
]
},
{
"cell_type": "code",
"execution_count": 108,
"id": "2071610e",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-25T13:30:55.412625Z",
"start_time": "2024-03-25T13:30:55.303608Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"['DefaultRange',\n",
" '__add__',\n",
" '__class__',\n",
" '__delattr__',\n",
" '__dict__',\n",
" '__dir__',\n",
" '__doc__',\n",
" '__eq__',\n",
" '__format__',\n",
" '__ge__',\n",
" '__getattribute__',\n",
" '__gt__',\n",
" '__hash__',\n",
" '__init__',\n",
" '__init_subclass__',\n",
" '__le__',\n",
" '__lt__',\n",
" '__module__',\n",
" '__mul__',\n",
" '__ne__',\n",
" '__new__',\n",
" '__pow__',\n",
" '__radd__',\n",
" '__reduce__',\n",
" '__reduce_ex__',\n",
" '__repr__',\n",
" '__rmul__',\n",
" '__rpow__',\n",
" '__rsub__',\n",
" '__rtruediv__',\n",
" '__setattr__',\n",
" '__sizeof__',\n",
" '__str__',\n",
" '__sub__',\n",
" '__subclasshook__',\n",
" '__truediv__',\n",
" '__weakref__',\n",
" '_binary_op',\n",
" '_constant',\n",
" '_hasPrior',\n",
" '_hi',\n",
" '_intermediate',\n",
" '_lo',\n",
" '_name',\n",
" '_prior',\n",
" '_value',\n",
" 'combinePrior',\n",
" 'constant',\n",
" 'formula',\n",
" 'getDependents',\n",
" 'hasPrior',\n",
" 'hi',\n",
" 'intermediate',\n",
" 'lo',\n",
" 'max',\n",
" 'name',\n",
" 'renderRoofit',\n",
" 'value']"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dir(list(model.parameters)[0])"
]
},
{
"cell_type": "code",
"execution_count": 193,
"id": "96df2bce",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-26T11:08:56.751573Z",
"start_time": "2024-03-26T11:08:56.453511Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f5bbf5ca950>]"
]
},
"execution_count": 193,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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VCrh5uZm8Rpvb29otVoAgFartQg4zcubl/1WG71ej9ra2lvWlpCQAFdXV/Pk7+9/t7tLRERE7ZRda69w4sSJ5p8HDRqEyMhIBAYGYtOmTXB0dGztzbVIfHw8Fi1aZH6u1+sZdIiIiCSqzYeQu7m5oU+fPjh16hQ0Gg0aGhpQWVlp0aakpAQajQYAoNFobhht1fz8dm3UavVvBimVSgW1Wm0xERERkTS1eciprq7G6dOn4ePjg/DwcNjb2yMlJcW8PD8/H4WFhYiKigIAREVF4ejRoygtLTW3SU5OhlqtRv/+/c1trl9Hc5vmdRARERG1esh59dVXkZ6ejrNnz2LPnj147LHHoFAoMH36dLi6umL27NlYtGgRdu/ejaysLDzzzDOIiorC8OHDAQDjx49H//798dRTT+GXX37Brl278Oc//xlxcXFQqVQAgBdeeAFnzpzBa6+9hry8PHz00UfYtGkTFi5c2Nq7Q0RERB1Uq/fJOX/+PKZPn46Kigp4enrigQcewN69e+Hp6QkAeO+99yCXyzF16lTU19cjJiYGH330kfn1CoUC27dvx9y5cxEVFYUuXbpg5syZ+Mtf/mJu07NnT+zYsQMLFy7E+++/Dz8/P3z66aeIiYlp7d0hIiKiDqrVr5PTkfA6OURERB2PTa+TQ0RERGRrDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEkMOURERCRJDDlEREQkSQw5REREJEl2ti6AqE0YjUBNGaA7D+iKrj6eB6ouAgol4OAKOKgBlfq6R9dfPVcDSmdAJrP13hAR0R3o8CFn9erVWLFiBbRaLQYPHowPP/wQERERti6L2lp9tSm06M9fCzDmqQjQFwOGhrvfjkwBqFyuBp+bBSM14NQNUPsCaj/AtTvg7A3IFXe/bSIiuisdOuRs3LgRixYtwtq1axEZ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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(a)\n",
"plt.plot(b)\n",
"plt.plot(c)"
]
},
{
"cell_type": "code",
"execution_count": 203,
"id": "9ae4c5d3",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-26T11:14:27.879644Z",
"start_time": "2024-03-26T11:14:27.585534Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[10.51835149 7.54242706 4.82717647 2.3771783 0.19729855 1.70730334\n",
" 3.33116823 4.66853077 5.71331263 6.45911552 6.89921384 7.02654724\n",
" 6.83371269 6.31295646 5.45616572 4.25485981 2.70018134 0.78288683\n",
" 1.50666287 4.17851249 7.24312262 10.7113803 14.59460997]\n",
"[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22]\n",
"[32956.52188349 31952.89605924 30949.27023499 29945.64441073\n",
" 28942.01858648 27938.39276223 26934.76693797 25931.14111372\n",
" 24927.51528947 23923.88946522 22920.26364096 21916.63781671\n",
" 20913.01199246 19909.3861682 18905.76034395 17902.1345197\n",
" 16898.50869544 15894.88287119 14891.25704694 13887.63122269\n",
" 12884.00539843 11880.37957418 10876.75374993]\n"
]
},
{
"ename": "ValueError",
"evalue": "x and y must have same first dimension, but have shapes (23,) and (2,)",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[203], line 15\u001b[0m\n\u001b[1;32m 12\u001b[0m plt\u001b[38;5;241m.\u001b[39mplot(x,coef, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124myo\u001b[39m\u001b[38;5;124m'\u001b[39m, x, poly1d_fn(x), \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m--k\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 13\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m np\u001b[38;5;241m.\u001b[39mmean(np\u001b[38;5;241m.\u001b[39mnan_to_num(\u001b[38;5;28mabs\u001b[39m(poly1d_fn(np\u001b[38;5;241m.\u001b[39marange(\u001b[38;5;28mlen\u001b[39m(_h))) \u001b[38;5;241m-\u001b[39m _h)\u001b[38;5;241m/\u001b[39m_h, posinf\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m, neginf\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m))\n\u001b[0;32m---> 15\u001b[0m \u001b[43mlinearity\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m, linearity(b), linearity(c)\n",
"Cell \u001b[0;32mIn[203], line 12\u001b[0m, in \u001b[0;36mlinearity\u001b[0;34m(h)\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28mprint\u001b[39m(x)\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28mprint\u001b[39m(poly1d_fn(x))\n\u001b[0;32m---> 12\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43mcoef\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43myo\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpoly1d_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m--k\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 13\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m np\u001b[38;5;241m.\u001b[39mmean(np\u001b[38;5;241m.\u001b[39mnan_to_num(\u001b[38;5;28mabs\u001b[39m(poly1d_fn(np\u001b[38;5;241m.\u001b[39marange(\u001b[38;5;28mlen\u001b[39m(_h))) \u001b[38;5;241m-\u001b[39m _h)\u001b[38;5;241m/\u001b[39m_h, posinf\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m, neginf\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m))\n",
"File \u001b[0;32m~/software/miniforge3/envs/combine/lib/python3.10/site-packages/matplotlib/pyplot.py:3575\u001b[0m, in \u001b[0;36mplot\u001b[0;34m(scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 3567\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mplot)\n\u001b[1;32m 3568\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mplot\u001b[39m(\n\u001b[1;32m 3569\u001b[0m \u001b[38;5;241m*\u001b[39margs: \u001b[38;5;28mfloat\u001b[39m \u001b[38;5;241m|\u001b[39m ArrayLike \u001b[38;5;241m|\u001b[39m \u001b[38;5;28mstr\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3573\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[1;32m 3574\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mlist\u001b[39m[Line2D]:\n\u001b[0;32m-> 3575\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3576\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3577\u001b[0m \u001b[43m \u001b[49m\u001b[43mscalex\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mscalex\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3578\u001b[0m \u001b[43m \u001b[49m\u001b[43mscaley\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mscaley\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3579\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3580\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3581\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/software/miniforge3/envs/combine/lib/python3.10/site-packages/matplotlib/axes/_axes.py:1721\u001b[0m, in \u001b[0;36mAxes.plot\u001b[0;34m(self, scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1478\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 1479\u001b[0m \u001b[38;5;124;03mPlot y versus x as lines and/or markers.\u001b[39;00m\n\u001b[1;32m 1480\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1718\u001b[0m \u001b[38;5;124;03m(``'green'``) or hex strings (``'#008000'``).\u001b[39;00m\n\u001b[1;32m 1719\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 1720\u001b[0m kwargs \u001b[38;5;241m=\u001b[39m cbook\u001b[38;5;241m.\u001b[39mnormalize_kwargs(kwargs, mlines\u001b[38;5;241m.\u001b[39mLine2D)\n\u001b[0;32m-> 1721\u001b[0m lines \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_lines(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, data\u001b[38;5;241m=\u001b[39mdata, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)]\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m lines:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madd_line(line)\n",
"File \u001b[0;32m~/software/miniforge3/envs/combine/lib/python3.10/site-packages/matplotlib/axes/_base.py:303\u001b[0m, in \u001b[0;36m_process_plot_var_args.__call__\u001b[0;34m(self, axes, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 301\u001b[0m this \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m args[\u001b[38;5;241m0\u001b[39m],\n\u001b[1;32m 302\u001b[0m args \u001b[38;5;241m=\u001b[39m args[\u001b[38;5;241m1\u001b[39m:]\n\u001b[0;32m--> 303\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_plot_args\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 304\u001b[0m \u001b[43m \u001b[49m\u001b[43maxes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mthis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mambiguous_fmt_datakey\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mambiguous_fmt_datakey\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/software/miniforge3/envs/combine/lib/python3.10/site-packages/matplotlib/axes/_base.py:499\u001b[0m, in \u001b[0;36m_process_plot_var_args._plot_args\u001b[0;34m(self, axes, tup, kwargs, return_kwargs, ambiguous_fmt_datakey)\u001b[0m\n\u001b[1;32m 496\u001b[0m axes\u001b[38;5;241m.\u001b[39myaxis\u001b[38;5;241m.\u001b[39mupdate_units(y)\n\u001b[1;32m 498\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m x\u001b[38;5;241m.\u001b[39mshape[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m!=\u001b[39m y\u001b[38;5;241m.\u001b[39mshape[\u001b[38;5;241m0\u001b[39m]:\n\u001b[0;32m--> 499\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx and y must have same first dimension, but \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 500\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave shapes \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx\u001b[38;5;241m.\u001b[39mshape\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m and \u001b[39m\u001b[38;5;132;01m{\u001b[39;00my\u001b[38;5;241m.\u001b[39mshape\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 501\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m x\u001b[38;5;241m.\u001b[39mndim \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m2\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m y\u001b[38;5;241m.\u001b[39mndim \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m2\u001b[39m:\n\u001b[1;32m 502\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx and y can be no greater than 2D, but have \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 503\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mshapes \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx\u001b[38;5;241m.\u001b[39mshape\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m and \u001b[39m\u001b[38;5;132;01m{\u001b[39;00my\u001b[38;5;241m.\u001b[39mshape\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mValueError\u001b[0m: x and y must have same first dimension, but have shapes (23,) and (2,)"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def linearity(h):\n",
"# _h = h.values()\n",
" _h = h\n",
" y = _h\n",
" x = np.arange(len(_h))\n",
" coef = np.polyfit(np.arange(len(_h)),_h, 1)\n",
" poly1d_fn = np.poly1d(coef) \n",
" print(abs(poly1d_fn(np.arange(len(_h))) - _h)/np.sqrt(_h))\n",
" \n",
" print(x)\n",
" print(poly1d_fn(x))\n",
" plt.plot(x,coef, 'yo', x, poly1d_fn(x), '--k')\n",
" return np.mean(np.nan_to_num(abs(poly1d_fn(np.arange(len(_h))) - _h)/_h, posinf=0, neginf=0))\n",
"\n",
"linearity(a), linearity(b), linearity(c)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "00e56d72",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:51.634125Z",
"start_time": "2024-03-27T19:25:51.514419Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1007.6255311968024\n",
"224.60095344696748\n",
"1017.3312268062022\n"
]
}
],
"source": [
"def linearity(h):\n",
" # _h = h.values()\n",
" _h = h\n",
" x = np.arange(len(_h))\n",
" coef = np.polyfit(x,_h,1)\n",
" poly1d_fn = np.poly1d(coef) \n",
" fy = poly1d_fn(x)\n",
" residuals = abs(fy-_h)/np.sqrt(_h + 0.001)\n",
" return np.sum(np.nan_to_num(residuals, posinf=0, neginf=0))\n",
"\n",
"for y in [a,b,c]:\n",
" print(linearity(y))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1223f3d1",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "be21cae5",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "dad06d5e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 27,
"id": "35e255ba",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:53.194366Z",
"start_time": "2024-03-27T19:25:53.090176Z"
}
},
"outputs": [],
"source": [
"import logging"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "56de412b",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T19:25:55.805811Z",
"start_time": "2024-03-27T19:25:55.651923Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"X 0.20000000000000018 0.8\n",
"X 0.20000000000000018 0.8\n",
"X 0.20000000000000018 0.8\n",
"X 0.20000000000000018 0.8\n",
"X 0.20000000000000018 0.8\n",
"X 0.20000000000000018 0.8\n",
"X 0.9 0.8\n",
"X 0.9 0.8\n",
"X 0.9 0.8\n",
"X 0.9 0.8\n",
"X 0.9 0.8\n",
"X 0.9 0.8\n",
"Nuisance: CMS_pf_2prong = -2sig -> Total = 91, composed out of 19.3 + 1.2 + 70.3\n",
"Nuisance: CMS_pf_2prong = -1sig -> Total = 81, composed out of 23.6 + 1.5 + 56.2\n",
"Nuisance: CMS_pf_2prong = -0.5sig -> Total = 78, composed out of 26.1 + 1.6 + 50.3\n",
"Nuisance: CMS_pf_2prong = 0sig -> Total = 76, composed out of 28.8 + 1.8 + 45.0\n",
"Nuisance: CMS_pf_2prong = 0.5sig -> Total = 74, composed out of 31.8 + 2.0 + 40.2\n",
"Nuisance: CMS_pf_2prong = 1sig -> Total = 73, composed out of 35.2 + 2.2 + 36.0\n",
"Nuisance: CMS_pf_2prong = 2sig -> Total = 75, composed out of 43.0 + 2.7 + 28.8\n",
"XXX\n",
"Nuisance: CMS_pf_bbenriched = -2sig -> Total = 66, composed out of 18.4 + 2.8 + 45.0\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 70, composed out of 23.0 + 2.3 + 45.0\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 73, composed out of 25.8 + 2.0 + 45.0\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 76, composed out of 28.8 + 1.8 + 45.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 79, composed out of 32.2 + 1.6 + 45.0\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 82, composed out of 36.0 + 1.4 + 45.0\n",
"Nuisance: CMS_pf_bbenriched = 2sig -> Total = 91, composed out of 45.0 + 1.2 + 45.0\n"
]
}
],
"source": [
"def expo_sample(norm, scale, obs):\n",
" cdf = scipy.stats.expon.cdf(scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"\n",
"def gaus_sample(norm, loc, scale, obs):\n",
" cdf = scipy.stats.norm.cdf(loc=loc, scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"def flipSF(SF, SF_unc, yield_pass, yield_fail):\n",
" \"\"\"\n",
" Return (SF, SF_unc) for a pass/fail scale factor.\n",
" \"\"\"\n",
" if yield_fail > 0:\n",
" _sf = 1 + (yield_pass * (SF - 1) / yield_fail)\n",
" _sfunc = 1. / (1 + SF_unc/SF)\n",
" _sfunc = 0.8\n",
" if _sfunc < 0:\n",
" logging.warning(f\"SF uncertainty is negative for entry arguments SF: {SF}, SF_unc: {SF_unc}, yield_pass: {yield_pass}, yield_fail: {yield_fail}\")\n",
" _sfunc = 1\n",
" print(\"X\", _sf, _sfunc)\n",
" return _sf, _sfunc\n",
" else:\n",
" return 1, 1\n",
"\n",
"throwPoisson = False\n",
"\n",
"lumi = rl.NuisanceParameter(\"CMS_lumi\", \"lnN\")\n",
"sys_pf1 = rl.NuisanceParameter(\"CMS_pf_bbenriched\", \"lnN\")\n",
"sys_pf2 = rl.NuisanceParameter(\"CMS_pf_2prong\", \"lnN\")\n",
"\n",
"# ptbins = np.array([450, 500, 550, 600, 675, 800, 1200])\n",
"ptbins = np.array([450, 550, 700, 1200])\n",
"npt = len(ptbins) - 1\n",
"msdbins = np.linspace(40, 201, 24)\n",
"msd = rl.Observable(\"msd\", msdbins)\n",
"\n",
"# here we derive these all at once with 2D array\n",
"ptpts, msdpts = np.meshgrid(ptbins[:-1] + 0.3 * np.diff(ptbins), msdbins[:-1] + 0.5 * np.diff(msdbins), indexing=\"ij\")\n",
"rhopts = 2 * np.log(msdpts / ptpts)\n",
"ptscaled = (ptpts - 450.0) / (1200.0 - 450.0)\n",
"rhoscaled = (rhopts - (-6)) / ((-2.1) - (-6))\n",
"validbins = (rhoscaled >= 0) & (rhoscaled <= 1)\n",
"validbins[...] = True\n",
"# print(validbins)\n",
"rhoscaled[~validbins] = 1 # we will mask these out later\n",
"\n",
"# build actual fit model now\n",
"model = rl.Model(\"testModel\")\n",
"\n",
"totnorms = {\n",
" \"zqq\": 1000,\n",
" \"hqq\": 100,\n",
"}\n",
"\n",
"fracs = {\n",
" \"passhighbvl\": 0.4,\n",
" \"passlowbvl\": 0.1,\n",
" \"fail\": 0.5,\n",
"}\n",
"fracs_data = {\n",
" \"passhighbvl\": 0.35,\n",
" \"passlowbvl\": 0.12,\n",
" \"fail\": 0.53,\n",
"}\n",
"\n",
"templates = {}\n",
"for ptbin in range(npt):\n",
" ptnorm = 1.0 - 0.1*ptbin\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" scale_frac = fracs[region]\n",
" isPass = \"pass\" in region\n",
" templates[f\"zqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"zqq\"] * scale_frac, loc=80, scale=8, obs=msd)\n",
" templates[f\"hqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"hqq\"] * scale_frac, loc=125, scale=8, obs=msd)\n",
" templates[f\"qcd_{region}_{ptbin}\"] = expo_sample(norm=ptnorm * (1e3 if isPass else 1e5), scale=150, obs=msd)\n",
"\n",
"data_templates = {}\n",
"for ptbin in range(npt):\n",
" ptnorm = 1.0 - 0.1*ptbin\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" scale_frac = fracs_data[region]\n",
" isPass = region == \"pass\"\n",
" data_templates[f\"zqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"zqq\"]*scale_frac, loc=80, scale=8, obs=msd)\n",
" data_templates[f\"hqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"hqq\"]*scale_frac, loc=125, scale=8, obs=msd)\n",
" data_templates[f\"qcd_{region}_{ptbin}\"] = expo_sample(norm=ptnorm * (1e3 if isPass else 1e5), scale=150, obs=msd)\n",
"\n",
"\n",
"\n",
"for ptbin in range(npt):\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" ch = rl.Channel(f\"ptbin{ptbin}{region}\")\n",
" model.addChannel(ch)\n",
" mask = validbins[ptbin]\n",
" # add samples\n",
" for sName in [\"zqq\", \"hqq\", \"qcd\"]:\n",
" # for sName in [\"zqq\", \"qcd\"]:\n",
" # some mock expectations\n",
" templ = templates[f\"{sName}_{region}_{ptbin}\"]\n",
" stype = rl.Sample.SIGNAL if sName == \"hqq\" else rl.Sample.BACKGROUND\n",
" sample = rl.TemplateSample(ch.name + \"_\" + sName, stype, templ)\n",
" sample.setParamEffect(lumi, 1.027)\n",
"\n",
" ch.addSample(sample)\n",
"\n",
" if sName in [\"zqq\", \"hqq\"]:\n",
" pass\n",
"\n",
" # Make data\n",
" yields = sum([data_templates[f\"{sName}_{region}_{ptbin}\"][0] for sName in [\"zqq\", \"hqq\", \"qcd\"]])\n",
" if throwPoisson:\n",
" yields = np.random.poisson(yields)\n",
" data_obs = (yields, msd.binning, msd.name)\n",
" ch.setObservation(data_obs)\n",
"\n",
"\n",
"for ptbin in range(npt):\n",
" ch_pass = model[f\"ptbin{ptbin}passhighbvl\"]\n",
" ch_fail = model[f\"ptbin{ptbin}passlowbvl\"]\n",
" for sName in [\"zqq\", \"hqq\"]:\n",
" sample_pass = ch_pass[f\"{sName}\"]\n",
" sample_fail = ch_fail[f\"{sName}\"]\n",
"\n",
" yield_pass = np.sum(templates[f\"{sName}_passhighbvl_{ptbin}\"][0])\n",
" yield_fail = np.sum(templates[f\"{sName}_passlowbvl_{ptbin}\"][0])\n",
"\n",
" sf, nominal_unc = 0.8, 0.2 \n",
" sfunc = 1. + nominal_unc / sf\n",
" # Scale pass \n",
" logging.info(f\" Sample: {sName}, region: pass, ptbin: {ptbin}, sf: {sf}, sfunc_nominal: {nominal_unc}, card_unc: {sfunc}\")\n",
" sample_pass.scale(sf) \n",
" sample_pass.setParamEffect(sys_pf1, sfunc)\n",
"\n",
" # Scale fail\n",
" sf_flipped, sfunc_flipped = flipSF(sf, nominal_unc, yield_pass, yield_fail)\n",
" sample_fail.scale(sf_flipped) \n",
" sample_fail.setParamEffect(sys_pf1, sfunc_flipped)\n",
" logging.info(f\" Sample: {sName}, region: pass, ptbin: {ptbin}, sf: {sf_flipped}, sfunc_nominal: {nominal_unc}, card_unc: {sfunc_flipped}\")\n",
"\n",
"\n",
"for ptbin in range(npt):\n",
" ch_fail = model[f\"ptbin{ptbin}fail\"]\n",
" ch_pass_pass = model[f\"ptbin{ptbin}passhighbvl\"]\n",
" ch_pass_fail = model[f\"ptbin{ptbin}passlowbvl\"]\n",
" for sName in [\"zqq\", \"hqq\"]:\n",
" sample_fail = ch_fail[f\"{sName}\"]\n",
" sample_pass_pass = ch_pass_pass[f\"{sName}\"]\n",
" sample_pass_fail = ch_pass_fail[f\"{sName}\"]\n",
"\n",
" yield_pass_pass = np.sum(templates[f\"{sName}_passhighbvl_{ptbin}\"][0])\n",
" yield_pass_fail = np.sum(templates[f\"{sName}_passlowbvl_{ptbin}\"][0])\n",
" yield_fail = np.sum(templates[f\"{sName}_fail_{ptbin}\"][0])\n",
"\n",
" sf, nominal_unc = 0.9, 0.2\n",
" sfunc = 1. + nominal_unc / sf\n",
" # Scale both pass regions \n",
" logging.info(f\" Nuisance: {sys_pf2.name}, sample: {sName}, region: pass*, ptbin: {ptbin}, sf: {sf}, sfunc_nominal: {nominal_unc}, card_unc: {sfunc}\")\n",
" sample_pass_pass.scale(sf) \n",
" sample_pass_pass.setParamEffect(sys_pf2, sfunc)\n",
" sample_pass_fail.scale(sf) \n",
" sample_pass_fail.setParamEffect(sys_pf2, sfunc)\n",
" # Scale fail\n",
" sf_flipped, sfunc_flipped = flipSF(sf, nominal_unc, yield_pass_pass+yield_pass_fail, yield_fail)\n",
" logging.info(f\" Nuisance: {sys_pf2.name}, sample: {sName}, region: fail, ptbin: {ptbin}, sf: {sf_flipped}, sfunc_nominal: {nominal_unc}, card_unc: {sfunc_flipped}\")\n",
" sample_fail.scale(sf_flipped) \n",
" sample_fail.setParamEffect(sys_pf2, sfunc_flipped)\n",
" \n",
"nuis1 = [p for p in model.parameters if \"CMS_pf_2prong\" == p.name][0]\n",
"nuis2 = [p for p in model.parameters if \"CMS_pf_bbenriched\" == p.name][0]\n",
"\n",
"# siggys = [-2, 1, 0.5, 0, 0.5, 1, 2]\n",
"siggys = [-2, -1, -0.5, 0, 0.5, 1, 2]\n",
"for i in siggys:\n",
" nuis1.value = i\n",
" nuis2.value = 0\n",
" a = model['ptbin0passhighbvl']['hqq'].getExpectation(eval=True)\n",
" b = model['ptbin0passlowbvl']['hqq'].getExpectation(eval=True)\n",
" c = model['ptbin0fail']['hqq'].getExpectation(eval=True)\n",
" tot = sum(a+b+c)\n",
"# print(f\"Nuisance: {nuis1.name:>20} = {i:3}sig -> Total = {tot:3.0f}, composed out of {100*a.sum()/tot:.1f}% + {100*b.sum()/tot:.1f}% + {100*c.sum()/tot:.1f}%\")\n",
" print(f\"Nuisance: {nuis1.name:>20} = {i:4}sig -> Total = {tot:3.0f}, composed out of {a.sum():.1f} + {b.sum():.1f} + {c.sum():.1f}\")\n",
" \n",
"print(\"XXX\")\n",
"for i in siggys:\n",
" nuis1.value = 0\n",
" nuis2.value = i\n",
" a = model['ptbin0passhighbvl']['hqq'].getExpectation(eval=True)\n",
" b = model['ptbin0passlowbvl']['hqq'].getExpectation(eval=True)\n",
" c = model['ptbin0fail']['hqq'].getExpectation(eval=True)\n",
" tot = sum(a+b+c)\n",
"# print(f\"Nuisance: {nuis2.name:>20} = {i:3}sig -> Total = {tot:3.0f}, composed out of {100*a.sum()/tot:.1f}% + {100*b.sum()/tot:.1f}% + {100*c.sum()/tot:.1f}%\")\n",
" print(f\"Nuisance: {nuis2.name:>20} = {i:4}sig -> Total = {tot:3.0f}, composed out of {a.sum():.1f} + {b.sum():.1f} + {c.sum():.1f}\")\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "768e1721",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "6599e37e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 29,
"id": "0d39b047",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-28T22:53:26.868890Z",
"start_time": "2024-03-28T22:53:26.242883Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"{'passhighbvl': 0.4, 'passlowbvl': 0.4, 'fail': 0.2}\n",
"SF =0.7, SFf =1.300, Unc = 0.1, up =0.923,down =1.083, ratio=1.000\n",
"SF =0.7, SFf =1.300, Unc = 0.1, up =0.923,down =1.083, ratio=1.000\n",
"SF =0.7, SFf =1.300, Unc = 0.1, up =0.923,down =1.083, ratio=1.000\n",
"SF =0.7, SFf =1.300, Unc = 0.1, up =0.923,down =1.083, ratio=1.000\n",
"SF =0.7, SFf =1.300, Unc = 0.1, up =0.923,down =1.083, ratio=1.000\n",
"SF =0.7, SFf =1.300, Unc = 0.1, up =0.923,down =1.083, ratio=1.000\n",
"SF = 0.7, SF_flipped = 1.3, SF_unc = 0.1\n",
"SFpass = 1.14/0.88\n",
"SFfail = 0.8/1.08\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 202.1, composed out of 61.2 + 140.8\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 200.8, composed out of 65.5 + 135.3\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 70.0 + 130.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.7, composed out of 74.8 + 124.9\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 80.0 + 120.0\n",
"SF =0.8, SFf =1.200, Unc = 0.1, up =0.917,down =1.091, ratio=1.000\n",
"SF =0.8, SFf =1.200, Unc = 0.1, up =0.917,down =1.091, ratio=1.000\n",
"SF =0.8, SFf =1.200, Unc = 0.1, up =0.917,down =1.091, ratio=1.000\n",
"SF =0.8, SFf =1.200, Unc = 0.1, up =0.917,down =1.091, ratio=1.000\n",
"SF =0.8, SFf =1.200, Unc = 0.1, up =0.917,down =1.091, ratio=1.000\n",
"SF =0.8, SFf =1.200, Unc = 0.1, up =0.917,down =1.091, ratio=1.000\n",
"SF = 0.8, SF_flipped = 1.2, SF_unc = 0.1\n",
"SFpass = 1.12/0.89\n",
"SFfail = 0.8/1.08\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 202.0, composed out of 71.1 + 130.9\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 200.8, composed out of 75.4 + 125.3\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 80.0 + 120.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.7, composed out of 84.9 + 114.9\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 90.0 + 110.0\n",
"SF =0.9, SFf =1.100, Unc = 0.1, up =0.909,down =1.100, ratio=1.000\n",
"SF =0.9, SFf =1.100, Unc = 0.1, up =0.909,down =1.100, ratio=1.000\n",
"SF =0.9, SFf =1.100, Unc = 0.1, up =0.909,down =1.100, ratio=1.000\n",
"SF =0.9, SFf =1.100, Unc = 0.1, up =0.909,down =1.100, ratio=1.000\n",
"SF =0.9, SFf =1.100, Unc = 0.1, up =0.909,down =1.100, ratio=1.000\n",
"SF =0.9, SFf =1.100, Unc = 0.1, up =0.909,down =1.100, ratio=1.000\n",
"SF = 0.9, SF_flipped = 1.1, SF_unc = 0.1\n",
"SFpass = 1.11/0.9\n",
"SFfail = 0.8/1.09\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 202.0, composed out of 81.0 + 121.0\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 200.8, composed out of 85.4 + 115.4\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 90.0 + 110.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.7, composed out of 94.9 + 104.9\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 100.0 + 100.0\n",
"SF =0.95, SFf =1.050, Unc = 0.1, up =0.905,down =1.105, ratio=1.000\n",
"SF =0.95, SFf =1.050, Unc = 0.1, up =0.905,down =1.105, ratio=1.000\n",
"SF =0.95, SFf =1.050, Unc = 0.1, up =0.905,down =1.105, ratio=1.000\n",
"SF =0.95, SFf =1.050, Unc = 0.1, up =0.905,down =1.105, ratio=1.000\n",
"SF =0.95, SFf =1.050, Unc = 0.1, up =0.905,down =1.105, ratio=1.000\n",
"SF =0.95, SFf =1.050, Unc = 0.1, up =0.905,down =1.105, ratio=1.000\n",
"SF = 0.95, SF_flipped = 1.05, SF_unc = 0.1\n",
"SFpass = 1.11/0.9\n",
"SFfail = 0.8/1.1\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 202.0, composed out of 86.0 + 116.1\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 200.8, composed out of 90.4 + 110.4\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 95.0 + 105.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.7, composed out of 99.9 + 99.9\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 105.0 + 95.0\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.900,down =1.111, ratio=1.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.900,down =1.111, ratio=1.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.900,down =1.111, ratio=1.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.900,down =1.111, ratio=1.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.900,down =1.111, ratio=1.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.900,down =1.111, ratio=1.000\n",
"SF = 1, SF_flipped = 1.0, SF_unc = 0.1\n",
"SFpass = 1.1/0.91\n",
"SFfail = 0.8/1.1\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 202.0, composed out of 90.9 + 111.1\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 200.8, composed out of 95.3 + 105.4\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 100.0 + 100.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.7, composed out of 104.9 + 94.9\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 110.0 + 90.0\n",
"SF =1.05, SFf =0.950, Unc = 0.1, up =0.895,down =1.118, ratio=1.000\n",
"SF =1.05, SFf =0.950, Unc = 0.1, up =0.895,down =1.118, ratio=1.000\n",
"SF =1.05, SFf =0.950, Unc = 0.1, up =0.895,down =1.118, ratio=1.000\n",
"SF =1.05, SFf =0.950, Unc = 0.1, up =0.895,down =1.118, ratio=1.000\n",
"SF =1.05, SFf =0.950, Unc = 0.1, up =0.895,down =1.118, ratio=1.000\n",
"SF =1.05, SFf =0.950, Unc = 0.1, up =0.895,down =1.118, ratio=1.000\n",
"SF = 1.05, SF_flipped = 0.95, SF_unc = 0.1\n",
"SFpass = 1.1/0.91\n",
"SFfail = 0.8/1.11\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 202.0, composed out of 95.9 + 106.2\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 200.8, composed out of 100.3 + 100.4\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 105.0 + 95.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.7, composed out of 109.9 + 89.9\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 115.0 + 85.0\n",
"SF =1.1, SFf =0.900, Unc = 0.1, up =0.889,down =1.125, ratio=1.000\n",
"SF =1.1, SFf =0.900, Unc = 0.1, up =0.889,down =1.125, ratio=1.000\n",
"SF =1.1, SFf =0.900, Unc = 0.1, up =0.889,down =1.125, ratio=1.000\n",
"SF =1.1, SFf =0.900, Unc = 0.1, up =0.889,down =1.125, ratio=1.000\n",
"SF =1.1, SFf =0.900, Unc = 0.1, up =0.889,down =1.125, ratio=1.000\n",
"SF =1.1, SFf =0.900, Unc = 0.1, up =0.889,down =1.125, ratio=1.000\n",
"SF = 1.1, SF_flipped = 0.9, SF_unc = 0.1\n",
"SFpass = 1.09/0.92\n",
"SFfail = 0.8/1.11\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 202.1, composed out of 100.8 + 101.2\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 200.8, composed out of 105.3 + 95.5\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 110.0 + 90.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.7, composed out of 114.9 + 84.9\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 120.0 + 80.0\n",
"SF =1.2, SFf =0.800, Unc = 0.1, up =0.875,down =1.143, ratio=1.000\n",
"SF =1.2, SFf =0.800, Unc = 0.1, up =0.875,down =1.143, ratio=1.000\n",
"SF =1.2, SFf =0.800, Unc = 0.1, up =0.875,down =1.143, ratio=1.000\n",
"SF =1.2, SFf =0.800, Unc = 0.1, up =0.875,down =1.143, ratio=1.000\n",
"SF =1.2, SFf =0.800, Unc = 0.1, up =0.875,down =1.143, ratio=1.000\n",
"SF =1.2, SFf =0.800, Unc = 0.1, up =0.875,down =1.143, ratio=1.000\n",
"SF = 1.2, SF_flipped = 0.8, SF_unc = 0.1\n",
"SFpass = 1.08/0.92\n",
"SFfail = 0.8/1.12\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 202.2, composed out of 110.8 + 91.4\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 200.8, composed out of 115.3 + 85.5\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 120.0 + 80.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.7, composed out of 124.9 + 74.8\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 130.0 + 70.0\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"{'passhighbvl': 0.7, 'passlowbvl': 0.1, 'fail': 0.2}\n",
"SF =0.7, SFf =3.100, Unc = 0.1, up =0.774,down =1.292, ratio=7.000\n",
"SF =0.7, SFf =3.100, Unc = 0.1, up =0.774,down =1.292, ratio=7.000\n",
"SF =0.7, SFf =3.100, Unc = 0.1, up =0.774,down =1.292, ratio=7.000\n",
"SF =0.7, SFf =3.100, Unc = 0.1, up =0.774,down =1.292, ratio=7.000\n",
"SF =0.7, SFf =3.100, Unc = 0.1, up =0.774,down =1.292, ratio=7.000\n",
"SF =0.7, SFf =3.100, Unc = 0.1, up =0.774,down =1.292, ratio=7.000\n",
"SF = 0.7, SF_flipped = 3.1, SF_unc = 0.1\n",
"SFpass = 1.14/0.88\n",
"SFfail = 0.8/1.03\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 207.3, composed out of 107.2 + 100.1\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 202.7, composed out of 114.6 + 88.1\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 122.5 + 77.5\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.1, composed out of 131.0 + 68.2\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 140.0 + 60.0\n",
"SF =0.8, SFf =2.400, Unc = 0.1, up =0.708,down =1.412, ratio=7.000\n",
"SF =0.8, SFf =2.400, Unc = 0.1, up =0.708,down =1.412, ratio=7.000\n",
"SF =0.8, SFf =2.400, Unc = 0.1, up =0.708,down =1.412, ratio=7.000\n",
"SF =0.8, SFf =2.400, Unc = 0.1, up =0.708,down =1.412, ratio=7.000\n",
"SF =0.8, SFf =2.400, Unc = 0.1, up =0.708,down =1.412, ratio=7.000\n",
"SF =0.8, SFf =2.400, Unc = 0.1, up =0.708,down =1.412, ratio=7.000\n",
"SF = 0.8, SF_flipped = 2.4, SF_unc = 0.1\n",
"SFpass = 1.12/0.89\n",
"SFfail = 0.8/1.04\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 209.2, composed out of 124.4 + 84.7\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 203.3, composed out of 132.0 + 71.3\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 140.0 + 60.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 199.0, composed out of 148.5 + 50.5\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 157.5 + 42.5\n",
"SF =0.9, SFf =1.700, Unc = 0.1, up =0.588,down =1.700, ratio=7.000\n",
"SF =0.9, SFf =1.700, Unc = 0.1, up =0.588,down =1.700, ratio=7.000\n",
"SF =0.9, SFf =1.700, Unc = 0.1, up =0.588,down =1.700, ratio=7.000\n",
"SF =0.9, SFf =1.700, Unc = 0.1, up =0.588,down =1.700, ratio=7.000\n",
"SF =0.9, SFf =1.700, Unc = 0.1, up =0.588,down =1.700, ratio=7.000\n",
"SF =0.9, SFf =1.700, Unc = 0.1, up =0.588,down =1.700, ratio=7.000\n",
"SF = 0.9, SF_flipped = 1.7, SF_unc = 0.1\n",
"SFpass = 1.11/0.9\n",
"SFfail = 0.8/1.06\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 214.0, composed out of 141.8 + 72.2\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 204.8, composed out of 149.4 + 55.4\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 157.5 + 42.5\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 198.6, composed out of 166.0 + 32.6\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 175.0 + 25.0\n",
"SF =0.95, SFf =1.350, Unc = 0.1, up =0.481,down =2.077, ratio=7.000\n",
"SF =0.95, SFf =1.350, Unc = 0.1, up =0.481,down =2.077, ratio=7.000\n",
"SF =0.95, SFf =1.350, Unc = 0.1, up =0.481,down =2.077, ratio=7.000\n",
"SF =0.95, SFf =1.350, Unc = 0.1, up =0.481,down =2.077, ratio=7.000\n",
"SF =0.95, SFf =1.350, Unc = 0.1, up =0.481,down =2.077, ratio=7.000\n",
"SF =0.95, SFf =1.350, Unc = 0.1, up =0.481,down =2.077, ratio=7.000\n",
"SF = 0.95, SF_flipped = 1.35, SF_unc = 0.1\n",
"SFpass = 1.11/0.9\n",
"SFfail = 0.8/1.07\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 220.5, composed out of 150.4 + 70.1\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 206.8, composed out of 158.1 + 48.6\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 166.2 + 33.8\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 198.2, composed out of 174.8 + 23.4\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 183.8 + 16.3\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.300,down =3.333, ratio=7.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.300,down =3.333, ratio=7.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.300,down =3.333, ratio=7.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.300,down =3.333, ratio=7.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.300,down =3.333, ratio=7.000\n",
"SF =1, SFf =1.000, Unc = 0.1, up =0.300,down =3.333, ratio=7.000\n",
"SF = 1, SF_flipped = 1.0, SF_unc = 0.1\n",
"SFpass = 1.1/0.91\n",
"SFfail = 0.8/1.1\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 242.4, composed out of 159.1 + 83.3\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 212.5, composed out of 166.9 + 45.6\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 175.0 + 25.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 197.2, composed out of 183.5 + 13.7\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin0passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin0passlowbvl_hqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin1passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin1passlowbvl_hqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin2passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin2passlowbvl_hqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin0passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin0passlowbvl_hqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin1passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin1passlowbvl_hqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin2passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin2passlowbvl_hqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin0passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin0passlowbvl_hqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin1passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin1passlowbvl_hqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin2passlowbvl_zqq) has magnitude less than 0, skipping\n",
"WARNING:root:effect_up (CMS_pf_bbenriched, ptbin2passlowbvl_hqq) has magnitude less than 0, skipping\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 200.0, composed out of 192.5 + 7.5\n",
"SF =1.05, SFf =0.650, Unc = 0.1, up =-0.077,down =-13.000, ratio=7.000\n",
"SF =1.05, SFf =0.650, Unc = 0.1, up =-0.077,down =-13.000, ratio=7.000\n",
"SF =1.05, SFf =0.650, Unc = 0.1, up =-0.077,down =-13.000, ratio=7.000\n",
"SF =1.05, SFf =0.650, Unc = 0.1, up =-0.077,down =-13.000, ratio=7.000\n",
"SF =1.05, SFf =0.650, Unc = 0.1, up =-0.077,down =-13.000, ratio=7.000\n",
"SF =1.05, SFf =0.650, Unc = 0.1, up =-0.077,down =-13.000, ratio=7.000\n",
"SF = 1.05, SF_flipped = 0.65, SF_unc = 0.1\n",
"SFpass = 1.1/0.91\n",
"SFfail = 0.8/1.15\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 184.0, composed out of 167.8 + 16.2\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 191.8, composed out of 175.6 + 16.2\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 183.8 + 16.2\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 208.6, composed out of 192.3 + 16.2\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 217.5, composed out of 201.3 + 16.2\n",
"SF =1.1, SFf =0.300, Unc = 0.1, up =-1.333,down =-0.750, ratio=7.000\n",
"SF =1.1, SFf =0.300, Unc = 0.1, up =-1.333,down =-0.750, ratio=7.000\n",
"SF =1.1, SFf =0.300, Unc = 0.1, up =-1.333,down =-0.750, ratio=7.000\n",
"SF =1.1, SFf =0.300, Unc = 0.1, up =-1.333,down =-0.750, ratio=7.000\n",
"SF =1.1, SFf =0.300, Unc = 0.1, up =-1.333,down =-0.750, ratio=7.000\n",
"SF =1.1, SFf =0.300, Unc = 0.1, up =-1.333,down =-0.750, ratio=7.000\n",
"SF = 1.1, SF_flipped = 0.3, SF_unc = 0.1\n",
"SFpass = 1.09/0.92\n",
"SFfail = 0.8/1.33\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 184.0, composed out of 176.5 + 7.5\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 191.8, composed out of 184.3 + 7.5\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 192.5 + 7.5\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 208.6, composed out of 201.1 + 7.5\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 217.5, composed out of 210.0 + 7.5\n",
"SF =1.2, SFf =-0.400, Unc = 0.1, up =2.750,down =0.364, ratio=7.000\n",
"SF =1.2, SFf =-0.400, Unc = 0.1, up =2.750,down =0.364, ratio=7.000\n",
"SF =1.2, SFf =-0.400, Unc = 0.1, up =2.750,down =0.364, ratio=7.000\n",
"SF =1.2, SFf =-0.400, Unc = 0.1, up =2.750,down =0.364, ratio=7.000\n",
"SF =1.2, SFf =-0.400, Unc = 0.1, up =2.750,down =0.364, ratio=7.000\n",
"SF =1.2, SFf =-0.400, Unc = 0.1, up =2.750,down =0.364, ratio=7.000\n",
"SF = 1.2, SF_flipped = -0.4, SF_unc = 0.1\n",
"SFpass = 1.08/0.92\n",
"SFfail = 0.8/0.75\n",
"--------------------------------------------------\n",
"Nuisance: CMS_pf_bbenriched = -1sig -> Total = 183.8, composed out of 193.8 + -10.0\n",
"Nuisance: CMS_pf_bbenriched = -0.5sig -> Total = 191.8, composed out of 201.8 + -10.0\n",
"Nuisance: CMS_pf_bbenriched = 0sig -> Total = 200.0, composed out of 210.0 + -10.0\n",
"Nuisance: CMS_pf_bbenriched = 0.5sig -> Total = 208.6, composed out of 218.6 + -10.0\n",
"Nuisance: CMS_pf_bbenriched = 1sig -> Total = 217.5, composed out of 227.5 + -10.0\n"
]
}
],
"source": [
"def expo_sample(norm, scale, obs):\n",
" cdf = scipy.stats.expon.cdf(scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"\n",
"def gaus_sample(norm, loc, scale, obs):\n",
" cdf = scipy.stats.norm.cdf(loc=loc, scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"def flipSF(SF, SF_unc, yield_pass, yield_fail):\n",
" \"\"\"\n",
" Return (SF, SF_unc) for a pass/fail scale factor.\n",
" \"\"\"\n",
" if yield_fail > 0:\n",
" sf = 1 - (yield_pass * (SF - 1) / yield_fail)\n",
"# sfup = 1. - SF_unc/sf\n",
" sfup = 1. - (SF_unc * yield_pass/yield_fail)/sf\n",
"# sfdown = 1 + SF_unc/(1 - (yield_fail * (SF - 1) / yield_pass))\n",
"# sfdown = 1 + SF_unc/(1 - (yield_pass * (SF - 1) / yield_fail)) + 0.2\n",
" sfdown = (1/(1. - (SF_unc * yield_pass/yield_fail)/sf)) #* ( 1/(yield_pass/yield_fail))\n",
" print(f\"SF ={SF}, SFf ={sf:.3f}, Unc = {SF_unc}, up ={sfup:.3f},down ={sfdown:.3f}, ratio={yield_pass/yield_fail:.3f}\")\n",
"# print(1/sfup)\n",
" return sf, sfup, sfdown\n",
" else:\n",
" return 1, 1\n",
"fracs1 = {\n",
" \"passhighbvl\": 0.4,\n",
" \"passlowbvl\": 0.4,\n",
" \"fail\": 0.2,\n",
" }\n",
"\n",
"fracs2 = {\n",
" \"passhighbvl\": 0.7,\n",
" \"passlowbvl\": 0.1,\n",
" \"fail\": 0.2,\n",
" }\n",
"\n",
"nominal_unc = 0.1\n",
"# sfvals = [0.7, 0.8, 0.9, 0.95, 1, 1.05, 1.1, 1.2]\n",
"sfvals = [0.7, 0.8, 0.9, 0.95, 1, 1.05, 1.1, 1.2]\n",
"for fracs in [fracs1, fracs2]:\n",
" print(\"X\"* 100)\n",
" print(fracs)\n",
" for sf in sfvals:\n",
" throwPoisson = False\n",
"\n",
" lumi = rl.NuisanceParameter(\"CMS_lumi\", \"lnN\")\n",
" sys_pf1 = rl.NuisanceParameter(\"CMS_pf_bbenriched\", \"lnN\")\n",
" sys_pf2 = rl.NuisanceParameter(\"CMS_pf_2prong\", \"lnN\")\n",
"\n",
" # ptbins = np.array([450, 500, 550, 600, 675, 800, 1200])\n",
" ptbins = np.array([450, 550, 700, 1200])\n",
" npt = len(ptbins) - 1\n",
" msdbins = np.linspace(40, 201, 24)\n",
" msd = rl.Observable(\"msd\", msdbins)\n",
"\n",
" # here we derive these all at once with 2D array\n",
" ptpts, msdpts = np.meshgrid(ptbins[:-1] + 0.3 * np.diff(ptbins), msdbins[:-1] + 0.5 * np.diff(msdbins), indexing=\"ij\")\n",
" rhopts = 2 * np.log(msdpts / ptpts)\n",
" ptscaled = (ptpts - 450.0) / (1200.0 - 450.0)\n",
" rhoscaled = (rhopts - (-6)) / ((-2.1) - (-6))\n",
" validbins = (rhoscaled >= 0) & (rhoscaled <= 1)\n",
" validbins[...] = True\n",
" # print(validbins)\n",
" rhoscaled[~validbins] = 1 # we will mask these out later\n",
"\n",
" # build actual fit model now\n",
" model = rl.Model(\"testModel\")\n",
"\n",
" totnorms = {\n",
" \"zqq\": 1000,\n",
" \"hqq\": 250,\n",
" }\n",
"\n",
" # fracs = {\n",
" # \"passhighbvl\": 0.6,\n",
" # \"passlowbvl\": 0.2,\n",
" # \"fail\": 0.2,\n",
" # }\n",
" fracs_data = {\n",
" \"passhighbvl\": 0.35,\n",
" \"passlowbvl\": 0.12,\n",
" \"fail\": 0.53,\n",
" }\n",
"\n",
" templates = {}\n",
" for ptbin in range(npt):\n",
" ptnorm = 1.0 - 0.1*ptbin\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" scale_frac = fracs[region]\n",
" isPass = \"pass\" in region\n",
" templates[f\"zqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"zqq\"] * scale_frac, loc=80, scale=8, obs=msd)\n",
" templates[f\"hqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"hqq\"] * scale_frac, loc=125, scale=8, obs=msd)\n",
" templates[f\"qcd_{region}_{ptbin}\"] = expo_sample(norm=ptnorm * (1e3 if isPass else 1e5), scale=150, obs=msd)\n",
"\n",
" data_templates = {}\n",
" for ptbin in range(npt):\n",
" ptnorm = 1.0 - 0.1*ptbin\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" scale_frac = fracs_data[region]\n",
" isPass = region == \"pass\"\n",
" data_templates[f\"zqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"zqq\"]*scale_frac, loc=80, scale=8, obs=msd)\n",
" data_templates[f\"hqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"hqq\"]*scale_frac, loc=125, scale=8, obs=msd)\n",
" data_templates[f\"qcd_{region}_{ptbin}\"] = expo_sample(norm=ptnorm * (1e3 if isPass else 1e5), scale=150, obs=msd)\n",
"\n",
"\n",
"\n",
" for ptbin in range(npt):\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" ch = rl.Channel(f\"ptbin{ptbin}{region}\")\n",
" model.addChannel(ch)\n",
" mask = validbins[ptbin]\n",
" # add samples\n",
" for sName in [\"zqq\", \"hqq\", \"qcd\"]:\n",
" # for sName in [\"zqq\", \"qcd\"]:\n",
" # some mock expectations\n",
" templ = templates[f\"{sName}_{region}_{ptbin}\"]\n",
" stype = rl.Sample.SIGNAL if sName == \"hqq\" else rl.Sample.BACKGROUND\n",
" sample = rl.TemplateSample(ch.name + \"_\" + sName, stype, templ)\n",
" sample.setParamEffect(lumi, 1.027)\n",
"\n",
" ch.addSample(sample)\n",
"\n",
" if sName in [\"zqq\", \"hqq\"]:\n",
" pass\n",
"\n",
" # Make data\n",
" yields = sum([data_templates[f\"{sName}_{region}_{ptbin}\"][0] for sName in [\"zqq\", \"hqq\", \"qcd\"]])\n",
" if throwPoisson:\n",
" yields = np.random.poisson(yields)\n",
" data_obs = (yields, msd.binning, msd.name)\n",
" ch.setObservation(data_obs)\n",
"\n",
"\n",
" for ptbin in range(npt):\n",
" ch_pass = model[f\"ptbin{ptbin}passhighbvl\"]\n",
" ch_fail = model[f\"ptbin{ptbin}passlowbvl\"]\n",
" for sName in [\"zqq\", \"hqq\"]:\n",
" sample_pass = ch_pass[f\"{sName}\"]\n",
" sample_fail = ch_fail[f\"{sName}\"]\n",
"\n",
" yield_pass = np.sum(templates[f\"{sName}_passhighbvl_{ptbin}\"][0])\n",
" yield_fail = np.sum(templates[f\"{sName}_passlowbvl_{ptbin}\"][0])\n",
"\n",
" # sf, nominal_unc = 1.1, 0.1\n",
" sfunc = 1. + nominal_unc / sf\n",
" sf_flipped, sffu, sffd = flipSF(sf, nominal_unc, yield_pass, yield_fail)\n",
" # print(sfunc, sfunc_flipped)\n",
" # Scale pass \n",
" logging.info(f\" Sample: {sName}, region: pass, ptbin: {ptbin}, sf: {sf}, sfunc_nominal: {nominal_unc}, card_unc: {sffu}\")\n",
" sample_pass.scale(sf) \n",
" sample_pass.setParamEffect(sys_pf1, sfunc, 1/sfunc)\n",
"\n",
" # Scale fail\n",
" sample_fail.scale(sf_flipped) \n",
" rat = yield_pass/yield_fail\n",
" # print(sfunc, sfunc_flipped)\n",
" # sample_fail.setParamEffect(sys_pf1, sfunc_flipped, sfunc)\n",
"# sample_fail.setParamEffect(sys_pf1, sffu, 1+nominal_unc/sffu) # good one, don't touch\n",
" # sample_fail.setParamEffect(sys_pf1, sfunc_flipped, 1.29)\n",
" sample_fail.setParamEffect(sys_pf1, sffu, sffd) \n",
" logging.info(f\" Sample: {sName}, region: pass, ptbin: {ptbin}, sf: {sf_flipped}, sfunc_nominal: {nominal_unc}, card_unc: {sffd}\")\n",
"\n",
" nuis2 = [p for p in model.parameters if \"CMS_pf_bbenriched\" == p.name][0]\n",
"\n",
" print(f\"SF = {np.round(sf, 2)}, SF_flipped = {np.round(sf_flipped, 2)}, SF_unc = {np.round(nominal_unc, 2)}\")\n",
" print(f\"SFpass = {np.round(sfunc,2)}/{np.round(1/sfunc, 2)}\")\n",
" print(f\"SFfail = {np.round(sfunc_flipped, 2)}/{np.round(1+nominal_unc/sf_flipped, 2)}\")\n",
" # siggys = [-2, -1.2, -1, -0.8, -0.5, -0.2, 0, 0.2, 0.5, 0.8, 1, 1.2, 2]\n",
" siggys = [-1, -0.5,0, 0.5, 1]\n",
" for i in siggys:\n",
" if i in [-1, 1.2]:\n",
" print(\"-\"*50)\n",
" nuis1.value = 0\n",
" nuis2.value = i\n",
" a = model['ptbin0passhighbvl']['hqq'].getExpectation(eval=True)\n",
" b = model['ptbin0passlowbvl']['hqq'].getExpectation(eval=True)\n",
" c = model['ptbin0fail']['hqq'].getExpectation(eval=True)\n",
" tot = sum(a+b)\n",
" # print(f\"Nuisance: {nuis2.name:>20} = {i:3}sig -> Total = {tot:3.0f}, composed out of {100*a.sum()/tot:.1f}% + {100*b.sum()/tot:.1f}% + {100*c.sum()/tot:.1f}%\")\n",
" print(f\"Nuisance: {nuis2.name:>20} = {i:4}sig -> Total = {tot:3.1f}, composed out of {a.sum():.1f} + {b.sum():.1f}\")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d4d410b7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "83284a4b",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "14362a9d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "bd5c660d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "c39482fa",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "dc8cd419",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 61,
"id": "94b012bb",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T20:09:50.065400Z",
"start_time": "2024-03-27T20:09:49.958275Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{'CMS_pf_bbenriched': 0.5, 'CMS_pf_bbenriched_fail': 1, 'CMS_lumi': 0}"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m = [p for p in model.parameters if p.name == 'CMS_pf_bbenriched'][0]\n",
"m.value = 0.5\n",
"{p.name:p.value for p in model.parameters}"
]
},
{
"cell_type": "code",
"execution_count": 112,
"id": "dcd42f46",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-28T08:44:37.383339Z",
"start_time": "2024-03-28T08:44:37.169856Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"{'passhighbvl': 0.4, 'passlowbvl': 0.4, 'fail': 0.2}\n"
]
},
{
"ename": "ValueError",
"evalue": "Normalization effects can only depend on one or more IndependentParameters",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[112], line 167\u001b[0m\n\u001b[1;32m 165\u001b[0m tot \u001b[38;5;241m=\u001b[39m yield_fail \u001b[38;5;241m+\u001b[39m yield_pass\n\u001b[1;32m 166\u001b[0m \u001b[38;5;66;03m# sample_fail.setParamEffect(sys_pf1_fail, (tot - yield_pass * ( 1 + sys_pf1 * (sfunc-1) ))/yield_fail)\u001b[39;00m\n\u001b[0;32m--> 167\u001b[0m \u001b[43msample_fail\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msetParamEffect\u001b[49m\u001b[43m(\u001b[49m\u001b[43msys_pf1_fail\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msys_pf1\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43msum\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43msample_pass\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgetExpectation\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m0.8\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 168\u001b[0m logging\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m Sample: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00msName\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, region: pass, ptbin: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mptbin\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, sf: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00msf_flipped\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, sfunc_nominal: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mnominal_unc\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, card_unc: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00msfunc_flipped\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 170\u001b[0m nuis2 \u001b[38;5;241m=\u001b[39m [p \u001b[38;5;28;01mfor\u001b[39;00m p \u001b[38;5;129;01min\u001b[39;00m model\u001b[38;5;241m.\u001b[39mparameters \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCMS_pf_bbenriched\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m==\u001b[39m p\u001b[38;5;241m.\u001b[39mname][\u001b[38;5;241m0\u001b[39m]\n",
"File \u001b[0;32m~/cat/rhalphalib/rhalphalib/sample.py:162\u001b[0m, in \u001b[0;36mTemplateSample.setParamEffect\u001b[0;34m(self, param, effect_up, effect_down, scale)\u001b[0m\n\u001b[1;32m 160\u001b[0m extras \u001b[38;5;241m=\u001b[39m effect_up\u001b[38;5;241m.\u001b[39mgetDependents() \u001b[38;5;241m-\u001b[39m {param}\n\u001b[1;32m 161\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mall\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(p, IndependentParameter) \u001b[38;5;28;01mfor\u001b[39;00m p \u001b[38;5;129;01min\u001b[39;00m extras):\n\u001b[0;32m--> 162\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNormalization effects can only depend on one or more IndependentParameters\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 163\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_extra_dependencies\u001b[38;5;241m.\u001b[39mupdate(extras)\n\u001b[1;32m 164\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m extra \u001b[38;5;129;01min\u001b[39;00m extras:\n",
"\u001b[0;31mValueError\u001b[0m: Normalization effects can only depend on one or more IndependentParameters"
]
}
],
"source": [
"def expo_sample(norm, scale, obs):\n",
" cdf = scipy.stats.expon.cdf(scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"\n",
"def gaus_sample(norm, loc, scale, obs):\n",
" cdf = scipy.stats.norm.cdf(loc=loc, scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"def flipSF(SF, SF_unc, yield_pass, yield_fail):\n",
" \"\"\"\n",
" Return (SF, SF_unc) for a pass/fail scale factor.\n",
" \"\"\"\n",
" if yield_fail > 0:\n",
" _sf = 1 - (yield_pass * (SF - 1) / yield_fail)\n",
" _sfunc = 1. - SF_unc/_sf\n",
" if _sfunc < 0:\n",
" logging.warning(f\"SF uncertainty is negative for entry arguments SF: {SF}, SF_unc: {SF_unc}, yield_pass: {yield_pass}, yield_fail: {yield_fail}\")\n",
" _sfunc = 1\n",
"# print(\"XX\", _sf, _sfunc)\n",
" return _sf, _sfunc\n",
" else:\n",
" return 1, 1\n",
"fracs1 = {\n",
" \"passhighbvl\": 0.4,\n",
" \"passlowbvl\": 0.4,\n",
" \"fail\": 0.2,\n",
" }\n",
"\n",
"fracs2 = {\n",
" \"passhighbvl\": 0.6,\n",
" \"passlowbvl\": 0.2,\n",
" \"fail\": 0.2,\n",
" }\n",
"\n",
"nominal_unc = 0.3\n",
"# sfvals = [0.7, 0.8, 0.9, 0.95, 1, 1.05, 1.1, 1.2]\n",
"sfvals = [0.7, 0.8, 0.9, 0.95, 1, 1.05, 1.1, 1.2]\n",
"for fracs in [fracs1, fracs2]:\n",
" print(\"X\"* 100)\n",
" print(fracs)\n",
" for sf in sfvals:\n",
" throwPoisson = False\n",
"\n",
" lumi = rl.NuisanceParameter(\"CMS_lumi\", \"lnN\")\n",
" sys_pf1 = rl.NuisanceParameter(\"CMS_pf_bbenriched\", \"lnN\")\n",
" sys_pf2 = rl.NuisanceParameter(\"CMS_pf_2prong\", \"lnN\")\n",
" sys_pf1_fail = rl.IndependentParameter(\"CMS_pf_bbenriched_fail\", 1, 0, 2)\n",
" sys_pf2_fail = rl.IndependentParameter(\"CMS_pf_2prong_fail\", 1, 0, 2)\n",
"\n",
" # ptbins = np.array([450, 500, 550, 600, 675, 800, 1200])\n",
" ptbins = np.array([450, 550, 700, 1200])\n",
" npt = len(ptbins) - 1\n",
" msdbins = np.linspace(40, 201, 24)\n",
" msd = rl.Observable(\"msd\", msdbins)\n",
"\n",
" # here we derive these all at once with 2D array\n",
" ptpts, msdpts = np.meshgrid(ptbins[:-1] + 0.3 * np.diff(ptbins), msdbins[:-1] + 0.5 * np.diff(msdbins), indexing=\"ij\")\n",
" rhopts = 2 * np.log(msdpts / ptpts)\n",
" ptscaled = (ptpts - 450.0) / (1200.0 - 450.0)\n",
" rhoscaled = (rhopts - (-6)) / ((-2.1) - (-6))\n",
" validbins = (rhoscaled >= 0) & (rhoscaled <= 1)\n",
" validbins[...] = True\n",
" # print(validbins)\n",
" rhoscaled[~validbins] = 1 # we will mask these out later\n",
"\n",
" # build actual fit model now\n",
" model = rl.Model(\"testModel\")\n",
"\n",
" totnorms = {\n",
" \"zqq\": 1000,\n",
" \"hqq\": 250,\n",
" }\n",
"\n",
" # fracs = {\n",
" # \"passhighbvl\": 0.6,\n",
" # \"passlowbvl\": 0.2,\n",
" # \"fail\": 0.2,\n",
" # }\n",
" fracs_data = {\n",
" \"passhighbvl\": 0.35,\n",
" \"passlowbvl\": 0.12,\n",
" \"fail\": 0.53,\n",
" }\n",
"\n",
" templates = {}\n",
" for ptbin in range(npt):\n",
" ptnorm = 1.0 - 0.1*ptbin\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" scale_frac = fracs[region]\n",
" isPass = \"pass\" in region\n",
" templates[f\"zqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"zqq\"] * scale_frac, loc=80, scale=8, obs=msd)\n",
" templates[f\"hqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"hqq\"] * scale_frac, loc=125, scale=8, obs=msd)\n",
" templates[f\"qcd_{region}_{ptbin}\"] = expo_sample(norm=ptnorm * (1e3 if isPass else 1e5), scale=150, obs=msd)\n",
"\n",
" data_templates = {}\n",
" for ptbin in range(npt):\n",
" ptnorm = 1.0 - 0.1*ptbin\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" scale_frac = fracs_data[region]\n",
" isPass = region == \"pass\"\n",
" data_templates[f\"zqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"zqq\"]*scale_frac, loc=80, scale=8, obs=msd)\n",
" data_templates[f\"hqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"hqq\"]*scale_frac, loc=125, scale=8, obs=msd)\n",
" data_templates[f\"qcd_{region}_{ptbin}\"] = expo_sample(norm=ptnorm * (1e3 if isPass else 1e5), scale=150, obs=msd)\n",
"\n",
"\n",
"\n",
" for ptbin in range(npt):\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" ch = rl.Channel(f\"ptbin{ptbin}{region}\")\n",
" model.addChannel(ch)\n",
" mask = validbins[ptbin]\n",
" # add samples\n",
" for sName in [\"zqq\", \"hqq\", \"qcd\"]:\n",
" # for sName in [\"zqq\", \"qcd\"]:\n",
" # some mock expectations\n",
" templ = templates[f\"{sName}_{region}_{ptbin}\"]\n",
" stype = rl.Sample.SIGNAL if sName == \"hqq\" else rl.Sample.BACKGROUND\n",
" sample = rl.TemplateSample(ch.name + \"_\" + sName, stype, templ)\n",
" sample.setParamEffect(lumi, 1.027)\n",
"\n",
" ch.addSample(sample)\n",
"\n",
" if sName in [\"zqq\", \"hqq\"]:\n",
" pass\n",
"\n",
" # Make data\n",
" yields = sum([data_templates[f\"{sName}_{region}_{ptbin}\"][0] for sName in [\"zqq\", \"hqq\", \"qcd\"]])\n",
" if throwPoisson:\n",
" yields = np.random.poisson(yields)\n",
" data_obs = (yields, msd.binning, msd.name)\n",
" ch.setObservation(data_obs)\n",
"\n",
"\n",
" for ptbin in range(npt):\n",
" ch_pass = model[f\"ptbin{ptbin}passhighbvl\"]\n",
" ch_fail = model[f\"ptbin{ptbin}passlowbvl\"]\n",
" for sName in [\"zqq\", \"hqq\"]:\n",
" sample_pass = ch_pass[f\"{sName}\"]\n",
" sample_fail = ch_fail[f\"{sName}\"]\n",
"\n",
" yield_pass = np.sum(templates[f\"{sName}_passhighbvl_{ptbin}\"][0])\n",
" yield_fail = np.sum(templates[f\"{sName}_passlowbvl_{ptbin}\"][0])\n",
"\n",
" # sf, nominal_unc = 1.1, 0.1\n",
" sfunc = 1. + nominal_unc / sf\n",
" sf_flipped, sfunc_flipped = flipSF(sf, nominal_unc, yield_pass, yield_fail)\n",
" # print(sfunc, sfunc_flipped)\n",
" # Scale pass \n",
" logging.info(f\" Sample: {sName}, region: pass, ptbin: {ptbin}, sf: {sf}, sfunc_nominal: {nominal_unc}, card_unc: {sfunc}\")\n",
" sample_pass.scale(sf) \n",
" sample_pass.setParamEffect(sys_pf1, sfunc, 1/sfunc)\n",
"\n",
" # Scale fail\n",
" sample_fail.scale(sf_flipped) \n",
" # print(sfunc, sfunc_flipped)\n",
" # sample_fail.setParamEffect(sys_pf1, sfunc_flipped, sfunc)\n",
"# sample_fail.setParamEffect(sys_pf1, sfunc_flipped, 1+nominal_unc/sf_flipped) # good one, don't touch\n",
" # sample_fail.setParamEffect(sys_pf1, sfunc_flipped, 1.29)\n",
"# sample_fail.setParamEffect(sys_pf1_fail, (1 - sys_pf1) * yield_pass/yield_fail)\n",
"# print(\"X\", ((sys_pf1 - 1) / nominal_unc)._formula)\n",
"# break\n",
" # N = ((P+F) - P * (1 - SF * unc) )/F\n",
"# sample_fail.setParamEffect(sys_pf1_fail, 1 - (1-sfunc_flipped) * sys_pf1 * yield_pass/yield_fail)\n",
" tot = yield_fail + yield_pass\n",
"# sample_fail.setParamEffect(sys_pf1_fail, (tot - yield_pass * ( 1 + sys_pf1 * (sfunc-1) ))/yield_fail)\n",
" sample_fail.setParamEffect(sys_pf1_fail, sys_pf1*sum(sample_pass.getExpectation())*0.8)\n",
" logging.info(f\" Sample: {sName}, region: pass, ptbin: {ptbin}, sf: {sf_flipped}, sfunc_nominal: {nominal_unc}, card_unc: {sfunc_flipped}\")\n",
"\n",
" nuis2 = [p for p in model.parameters if \"CMS_pf_bbenriched\" == p.name][0]\n",
"\n",
" print(f\"SF = {np.round(sf, 2)}, SF_flipped = {np.round(sf_flipped, 2)}, SF_unc = {np.round(nominal_unc, 2)}\")\n",
" print(f\"SFpass = {np.round(sfunc,2)}/{np.round(1/sfunc, 2)}\")\n",
" print(f\"SFfail = {np.round(sfunc_flipped, 2)}/{np.round(1+nominal_unc/sf_flipped, 2)}\")\n",
" # siggys = [-2, -1.2, -1, -0.8, -0.5, -0.2, 0, 0.2, 0.5, 0.8, 1, 1.2, 2]\n",
" siggys = [-1, -0.5,0, 0.5, 1]\n",
" for i in siggys:\n",
" if i in [-1, 1.2]:\n",
" print(\"-\"*50)\n",
" nuis1.value = 0\n",
" nuis2.value = i\n",
" a = model['ptbin0passhighbvl']['hqq'].getExpectation(eval=True)\n",
" b = model['ptbin0passlowbvl']['hqq'].getExpectation(eval=True)\n",
" c = model['ptbin0fail']['hqq'].getExpectation(eval=True)\n",
" tot = sum(a+b)\n",
" # print(f\"Nuisance: {nuis2.name:>20} = {i:3}sig -> Total = {tot:3.0f}, composed out of {100*a.sum()/tot:.1f}% + {100*b.sum()/tot:.1f}% + {100*c.sum()/tot:.1f}%\")\n",
" print(f\"Nuisance: {nuis2.name:>20} = {i:4}sig -> Total = {tot:3.1f}, composed out of {a.sum():.1f} + {b.sum():.1f}\")\n",
"\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "512404a8",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T20:10:55.540827Z",
"start_time": "2024-03-27T20:10:55.434616Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"'{CMS_pf_bbenriched_fail}'"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[p for p in model.parameters if p.name == 'CMS_pf_bbenriched_fail'][0].formula()"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "ca4903e6",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-27T22:42:38.999218Z",
"start_time": "2024-03-27T22:42:38.892407Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"1.0333333333333334"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"155/150"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "079f0d77",
"metadata": {},
"outputs": [],
"source": [
"pth = '/home/anovak/work/zprimeqq/test/muonCR-v4/pnmd2prong_0p01/ipt2_irho2/m150/m150_model.pkl'\n",
"# pth = 'tmp/testModel.pkl'\n",
"with open(pth, \"rb\") as fout:\n",
" model = pickle.load(fout)\n",
"# model.parameters"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "ff9b80af-f427-491f-b44f-c1e703728833",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(<Observable (msd_muon) instance at 0x7f6e8633f7c0>,\n",
" array([ 40., 45., 50., 55., 60., 65., 70., 75., 80., 85., 90.,\n",
" 95., 100., 105., 110., 115., 120., 125., 130., 135., 140., 145.,\n",
" 150., 155., 160., 165., 170., 175., 180., 185., 190., 195., 200.,\n",
" 205., 210., 215., 220., 225., 230., 235., 240., 245., 250., 255.,\n",
" 260., 265., 270., 275., 280., 285., 290., 295., 300., 305., 310.,\n",
" 315., 320., 325., 330., 335., 340., 345., 350.]))"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model['muonCRpasshighbvl'].observable, model['muonCRpasshighbvl'].observable.binning"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "378c4a2b-fc9b-443b-8077-b51c3e1db7aa",
"metadata": {},
"outputs": [],
"source": [
"getExpectation',\n",
" 'getParamEffect',\n",
" 'mask',\n",
" 'name',\n",
" 'observable',\n",
" 'parameters',\n",
" 'renderRoofit',\n",
" 'sampletype',\n",
" 'scale',\n",
" 'setParamEffect',\n",
" 'show']"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "38c285d9-e6c3-4921-8ea7-fb8e8f91e21a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ptbin0passhighbvl_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passhighbvl_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0passlowbvl_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin0fail_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True False False False False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passhighbvl_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1passlowbvl_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin1fail_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True False\n",
" False False False False False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passhighbvl_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2passlowbvl_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_wqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_zqq [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_zbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_tt [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_wlnu [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_dy [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_st [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_hbb [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_m150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_b150 [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin2fail_2017_qcd [ True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True False False False False False False False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_wqq [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_zqq [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_zbb [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_tt [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_wlnu [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_dy [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_st [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_hbb [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_m150 [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_b150 [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passhighbvl_2017_qcd [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_wqq [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_zqq [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_zbb [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_tt [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_wlnu [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_dy [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_st [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_hbb [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_m150 [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_b150 [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3passlowbvl_2017_qcd [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_wqq [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_zqq [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_zbb [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_tt [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_wlnu [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_dy [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_st [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_hbb [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_m150 [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_b150 [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin3fail_2017_qcd [False True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True False False\n",
" False False False False False False False False False False False False\n",
" False False]\n",
"ptbin4passhighbvl_wqq [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_zqq [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_zbb [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_tt [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_wlnu [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_dy [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_st [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_hbb [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_m150 [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_b150 [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passhighbvl_2017_qcd [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_wqq [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_zqq [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_zbb [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_tt [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_wlnu [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_dy [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_st [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_hbb [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_m150 [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_b150 [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4passlowbvl_2017_qcd [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_wqq [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_zqq [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_zbb [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_tt [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_wlnu [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_dy [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_st [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_hbb [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_m150 [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_b150 [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"ptbin4fail_2017_qcd [False False False False True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" False False]\n",
"muonCRpasslowbvl_tt None\n",
"muonCRpasslowbvl_wlnu None\n",
"muonCRpasslowbvl_dy None\n",
"muonCRpasslowbvl_st None\n",
"muonCRpasslowbvl_qcd None\n",
"muonCRfail_tt None\n",
"muonCRfail_wlnu None\n",
"muonCRfail_dy None\n",
"muonCRfail_st None\n",
"muonCRfail_qcd None\n",
"muonCRpasshighbvl_tt None\n",
"muonCRpasshighbvl_wlnu None\n",
"muonCRpasshighbvl_dy None\n",
"muonCRpasshighbvl_st None\n",
"muonCRpasshighbvl_qcd None\n"
]
}
],
"source": [
"for channel in model.channels:\n",
" # print(channel.name)\n",
" for sample in channel:\n",
" print(sample.name, sample.mask)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fed17e13",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "cf1e2a0e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 115,
"id": "fbc203a4",
"metadata": {},
"outputs": [],
"source": [
"def pf(SF, SF_unc, P, F):\n",
" \"\"\"\n",
" Return (SF, SF_unc) for a pass/fail scale factor.\n",
" \"\"\"\n",
" _sf = 1 + (1 - SF) * P / F\n",
" _sfunc = 1. - SF_unc * (P / F)\n",
" return _sf, _sfunc"
]
},
{
"cell_type": "code",
"execution_count": 116,
"id": "b1fdaf50",
"metadata": {},
"outputs": [],
"source": [
"P = 300.\n",
"F = 5.\n",
"SF = 1\n",
"UNC = 0.3 # 1 - UNC\n",
"TOT = P + F"
]
},
{
"cell_type": "code",
"execution_count": 117,
"id": "804e1601",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SF = 1.0, UNC = -17.0\n",
"300.0 5.0 = 305.0 / 305.0\n",
"down 210.0 95.0 = 305.0 / 305.0\n",
"up 390.0 -75.0 = 485.0 / 305.0\n"
]
}
],
"source": [
"sf, unc = pf(SF, UNC, P, F)\n",
"print(f\"SF = {sf}, UNC = {unc}\")\n",
"print(P*SF, F*sf, '=', P*SF + F*sf, \"/\", TOT)\n",
"print(\"down\", P*SF - UNC*P*SF, F*sf + F*sf*(1-unc), '=', P*SF - UNC*P*SF + F*sf + F*sf*(1-unc), \"/\", TOT)\n",
"print(\"up\", P*SF + UNC*P*SF, F*sf + F*sf*(1+unc), '=', P*SF + UNC*P*SF + F*sf + F*sf*(1-unc), \"/\", TOT)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f5a58388",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "fde17b77",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 574,
"id": "a23c44e5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"{'passhighbvl': 0.95, 'passlowbvl': 0.05, 'fail': 0.2}\n"
]
}
],
"source": [
"def expo_sample(norm, scale, obs):\n",
" cdf = scipy.stats.expon.cdf(scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"\n",
"def gaus_sample(norm, loc, scale, obs):\n",
" cdf = scipy.stats.norm.cdf(loc=loc, scale=scale, x=obs.binning) * norm\n",
" return (np.diff(cdf), obs.binning, obs.name)\n",
"\n",
"def flipSF(SF, SF_unc, yield_pass, yield_fail):\n",
" \"\"\"\n",
" Return (SF, SF_unc) for a pass/fail scale factor.\n",
" \"\"\"\n",
" if yield_fail > 0:\n",
" _sf = 1 - (yield_pass * (SF - 1) / yield_fail)\n",
" _sfunc = 1. - SF_unc/_sf\n",
" if _sfunc < 0:\n",
" logging.warning(f\"SF uncertainty is negative for entry arguments SF: {SF}, SF_unc: {SF_unc}, yield_pass: {yield_pass}, yield_fail: {yield_fail}\")\n",
" _sfunc = 1\n",
"# print(\"XX\", _sf, _sfunc)\n",
" return _sf, _sfunc\n",
" else:\n",
" return 1, 1\n",
"fracs1 = {\n",
" \"passhighbvl\": 0.4,\n",
" \"passlowbvl\": 0.4,\n",
" \"fail\": 0.2,\n",
" }\n",
"\n",
"fracs2 = {\n",
" \"passhighbvl\": 0.95,\n",
" \"passlowbvl\": 0.05,\n",
" \"fail\": 0.2,\n",
" }\n",
"\n",
"nominal_unc = 0.3\n",
"# sfvals = [0.7, 0.8, 0.9, 0.95, 1, 1.05, 1.1, 1.2]\n",
"# sfvals = [0.7, 0.8, 0.9, 0.95, 1, 1.05, 1.1, 1.2]\n",
"sfvals = [0.7]\n",
"for fracs in [fracs2]:\n",
" print(\"X\"* 100)\n",
" print(fracs)\n",
" for sf in sfvals:\n",
" throwPoisson = False\n",
"\n",
" lumi = rl.NuisanceParameter(\"CMS_lumi\", \"lnN\")\n",
" sys_pf1 = rl.NuisanceParameter(\"CMS_pf_bbenriched\", \"lnN\")\n",
" sys_pf2 = rl.NuisanceParameter(\"CMS_pf_2prong\", \"lnN\")\n",
" sys_pf1_fail = rl.IndependentParameter(\"CMS_pf_bbenriched_fail\", 1, 0, 2)\n",
" sys_pf2_fail = rl.IndependentParameter(\"CMS_pf_2prong_fail\", 1, 0, 2)\n",
"\n",
" # ptbins = np.array([450, 500, 550, 600, 675, 800, 1200])\n",
" ptbins = np.array([450, 550, 700, 1200])\n",
" npt = len(ptbins) - 1\n",
" msdbins = np.linspace(40, 201, 24)\n",
" msd = rl.Observable(\"msd\", msdbins)\n",
"\n",
" # here we derive these all at once with 2D array\n",
" ptpts, msdpts = np.meshgrid(ptbins[:-1] + 0.3 * np.diff(ptbins), msdbins[:-1] + 0.5 * np.diff(msdbins), indexing=\"ij\")\n",
" rhopts = 2 * np.log(msdpts / ptpts)\n",
" ptscaled = (ptpts - 450.0) / (1200.0 - 450.0)\n",
" rhoscaled = (rhopts - (-6)) / ((-2.1) - (-6))\n",
" validbins = (rhoscaled >= 0) & (rhoscaled <= 1)\n",
" validbins[...] = True\n",
" # print(validbins)\n",
" rhoscaled[~validbins] = 1 # we will mask these out later\n",
"\n",
" # build actual fit model now\n",
" model = rl.Model(\"testModel\")\n",
"\n",
" totnorms = {\n",
" \"zqq\": 1000,\n",
" \"hqq\": 250,\n",
" }\n",
"\n",
" fracs_data = {\n",
" \"passhighbvl\": 0.35,\n",
" \"passlowbvl\": 0.12,\n",
" \"fail\": 0.53,\n",
" }\n",
"\n",
" templates = {}\n",
" for ptbin in range(npt):\n",
" ptnorm = 1.0 - 0.1*ptbin\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" scale_frac = fracs[region]\n",
" isPass = \"pass\" in region\n",
" templates[f\"zqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"zqq\"] * scale_frac, loc=80, scale=8, obs=msd)\n",
" templates[f\"hqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"hqq\"] * scale_frac, loc=125, scale=8, obs=msd)\n",
" templates[f\"qcd_{region}_{ptbin}\"] = expo_sample(norm=ptnorm * (1e3 if isPass else 1e5), scale=150, obs=msd)\n",
"\n",
" data_templates = {}\n",
" for ptbin in range(npt):\n",
" ptnorm = 1.0 - 0.1*ptbin\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" scale_frac = fracs_data[region]\n",
" isPass = region == \"pass\"\n",
" data_templates[f\"zqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"zqq\"]*scale_frac, loc=80, scale=8, obs=msd)\n",
" data_templates[f\"hqq_{region}_{ptbin}\"] = gaus_sample(norm=ptnorm * totnorms[\"hqq\"]*scale_frac, loc=125, scale=8, obs=msd)\n",
" data_templates[f\"qcd_{region}_{ptbin}\"] = expo_sample(norm=ptnorm * (1e3 if isPass else 1e5), scale=150, obs=msd)\n",
"\n",
"\n",
"\n",
" for ptbin in range(npt):\n",
" for region in [\"passhighbvl\", \"passlowbvl\", \"fail\"]:\n",
" ch = rl.Channel(f\"ptbin{ptbin}{region}\")\n",
" model.addChannel(ch)\n",
" mask = validbins[ptbin]\n",
" # add samples\n",
" for sName in [\"zqq\", \"hqq\", \"qcd\"]:\n",
" # for sName in [\"zqq\", \"qcd\"]:\n",
" # some mock expectations\n",
" templ = templates[f\"{sName}_{region}_{ptbin}\"]\n",
" stype = rl.Sample.SIGNAL if sName == \"hqq\" else rl.Sample.BACKGROUND\n",
" sample = rl.TemplateSample(ch.name + \"_\" + sName, stype, templ)\n",
" sample.setParamEffect(lumi, 1.027)\n",
"\n",
" ch.addSample(sample)\n",
"\n",
" if sName in [\"zqq\", \"hqq\"]:\n",
" pass\n",
"\n",
" # Make data\n",
" yields = sum([data_templates[f\"{sName}_{region}_{ptbin}\"][0] for sName in [\"zqq\", \"hqq\", \"qcd\"]])\n",
" if throwPoisson:\n",
" yields = np.random.poisson(yields)\n",
" data_obs = (yields, msd.binning, msd.name)\n",
" ch.setObservation(data_obs)\n",
"\n",
" indep = rl.IndependentParameter('failscale', 1., 0, 100)\n",
" for ptbin in range(npt):\n",
" ch_pass = model[f\"ptbin{ptbin}passhighbvl\"]\n",
" ch_fail = model[f\"ptbin{ptbin}passlowbvl\"]\n",
" for sName in [\"zqq\", \"hqq\"]:\n",
" sample_pass = ch_pass[f\"{sName}\"]\n",
" sample_fail = ch_fail[f\"{sName}\"]\n",
"\n",
" yield_pass = np.sum(templates[f\"{sName}_passhighbvl_{ptbin}\"][0])\n",
" yield_fail = np.sum(templates[f\"{sName}_passlowbvl_{ptbin}\"][0])\n",
"\n",
" sfunc = 1. + nominal_unc / sf\n",
" sample_pass.scale(sf) \n",
" sample_pass.setParamEffect(sys_pf1, sfunc, 1/sfunc)\n",
"\n",
" # Scale fail\n",
" sff = 1 + (1 - sf) * yield_pass / yield_fail\n",
" sample_fail.scale(sff) \n",
" ratio = yield_pass / yield_fail\n",
" rmod = (yield_pass * sf) / (yield_fail * sff)\n",
" sample_fail.setParamEffect(indep, (1 - sys_pf1 * nominal_unc * rmod))\n",
"# sample_fail.setParamEffect(indep, (1 - sys_pf1) )\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 575,
"id": "f314434c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.0\n"
]
}
],
"source": [
"[p for p in model.parameters if p.name == 'CMS_pf_bbenriched'][0].value = 0\n",
"print((1 - 0 * sfunc * ratio))"
]
},
{
"cell_type": "code",
"execution_count": 576,
"id": "58a8dd7b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"999.9997133484281 999.9997133484281\n"
]
},
{
"data": {
"image/png": "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SXLddddlwYIF+fWvf52JEye2m69fv34ZOnRokqSurq58KcmAAQPS2tra7tISAAA6mX60R/ejAkQA6Ale/l3yw8/s/v1euCxpPGKnh0+ZMiVnnHFGfvnLX+aJJ57I3//93+eGG27If/kv/yXnn39+krRr3vbee+/U1NRkw4YNHVw4AAAdSj/aowkQAaAn2Pegt5unSux3F/Xv3z9/8Rd/kb/4i7/I7Nmz8+/+3b/LVVddVW7Y+vbt2258VVVV2traOqJaAAA6i360RxMgAkBP0G+vXfrltSv5xCc+kcWLF3fYfP369cv27ds7bD4AAHaCfrSsJ/ajHqICAOwWr7zySk455ZT89//+3/Ob3/wmq1evzr333psbbrghZ511Voft54ADDshvfvObrFq1Ki+//HK2bdvWYXMDANB96Uc/OGcgAgC7xcCBAzN27NjcdNNNeemll7Jt27YMHz48F1xwQf7jf/yPHbafCy64II888kiOOeaYbN68OQ8//HBOPvnkDpsfAIDuST/6wQkQAYDdorq6OvPmzcu8efMKx5RKpfesa2lpKf998skntxszePDg97xnv/32yz/8wz98+IIBAOhR9KMfnEuYAQAAAIBCAkQAAAAAoJAAEQAAAAAoJEAEAAAAAArtUoA4b968HHvssRk0aFCGDh2ayZMnZ9WqVe3GvPnmm5kxY0aGDBmSgQMHZsqUKWlubm43Zs2aNTnjjDOy1157ZejQofnbv/3bvPXWWx/+0wAAAAAAHWqXAsRly5ZlxowZeeKJJ/Lggw9m27ZtOe2007Jly5bymMsuuyz3339/7r333ixbtizr1q3L2WefXd6+ffv2nHHGGdm6dWt+9atf5a677sqdd96ZOXPmdNynAoAerq2trdIlsBMcJwCgJ9vRE4vpWjqqH+2zK4OXLFnS7vWdd96ZoUOHZuXKlfn0pz+djRs35vbbb8+iRYtyyimnJEnuuOOOHHLIIXniiSdy/PHH5x/+4R/y3HPP5X//7/+d+vr6HHHEEfnmN7+ZK664IldffXX69evXIR8MAHqifv36pVevXlm3bl3222+/9OvXL1VVVZUui3cplUrZunVr/vjHP6ZXr176GwCgR+nbt2+qqqryxz/+Mfvtt59+tAvq6H50lwLEd9u4cWOSpK6uLkmycuXKbNu2LePHjy+POfjggzNixIgsX748xx9/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CRABAAAAgEICRAAAAACgkAARAAAAACgkQAQAAAAACgkQAQAAAIBCAkQAAAAAoJAAEQAAAAAoJEAEAAAAAAoJEAEAAACAQgJEAAAAAKCQABEAAAAAKCRABAAAAAAKCRABAAAAgEICRAAAAACgkAARAAAAACgkQAQAAAAACgkQAQAAAIBCAkQAAAAAoJAAEQAAAAAoJEAEAAAAAAoJEAEAAACAQgJEAAAAAKCQABEAAAAAKCRABAAAAAAKdXiAePXVV6eqqqrdcvDBB5e3v/nmm5kxY0aGDBmSgQMHZsqUKWlubu7oMgAAAACADtApZyB+8pOfzPr168vLY489Vt522WWX5f7778+9996bZcuWZd26dTn77LM7owwAAAAA4EPq0ymT9umThoaG96zfuHFjbr/99ixatCinnHJKkuSOO+7IIYcckieeeCLHH3/8DudrbW1Na2tr+fWmTZs6o2wAAAAA4F065QzEF154IY2NjTnwwAMzbdq0rFmzJkmycuXKbNu2LePHjy+PPfjggzNixIgsX768cL558+altra2vAwfPrwzygYAAAAA3qXDA8SxY8fmzjvvzJIlS3LLLbdk9erV+dSnPpXXX389TU1N6devXwYPHtzuPfX19Wlqaiqcc9asWdm4cWN5Wbt2bUeXDQAAAADsQIdfwjxp0qTy34cddljGjh2bkSNH5qc//WkGDBjwgeasrq5OdXV1R5UIAAAAAOykTrmE+U8NHjw4Bx10UF588cU0NDRk69ataWlpaTemubl5h/dMBAAAAAAqq9MDxM2bN+ell17KsGHDcvTRR6dv375ZunRpefuqVauyZs2ajBs3rrNLAQAAAAB2UYdfwvz1r389Z555ZkaOHJl169blqquuSu/evfOFL3whtbW1mT59embOnJm6urrU1NTkkksuybhx4wqfwAwAAAAAVE6HB4h/+MMf8oUvfCGvvPJK9ttvv5x00kl54oknst9++yVJbrrppvTq1StTpkxJa2trJkyYkB/84AcdXQYAAAAA0AE6PED88Y9//Ge39+/fPwsXLszChQs7etcAAAAAQAfr9HsgAgAAAADdlwARAAAAACgkQAQAAAAACgkQAQAAAIBCAkQAAAAAoJAAEQAAAAAoJEAEAKBHmTdvXo499tgMGjQoQ4cOzeTJk7Nq1ap2Y958883MmDEjQ4YMycCBAzNl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v91rV/rRij5EZWdVV1enurq63brBgwfvtv3X1NT4h9tNOXbdl2PXvTl+3Zdjt3u5dLn70I/yQTl23Zvj1305dt2b47f77Gw/2quT69ihfffdN717905zc3O79c3NzWloaKhESQAA7EH0owAAO68iAWK/fv1y9NFHZ+nSpeV1bW1tWbp0acaNc6NlAAA6l34UAGDnVewS5pkzZ+a8887LMccck+OOOy7z58/Pli1b8uUvf7lSJb1HdXV1rrrqqvdcrkLX59h1X45d9+b4dV+OHXsi/SidybHr3hy/7sux694cv66rIk9hfsf3v//93HjjjWlqasoRRxyRBQsWZOzYsZUqBwCAPYx+FADg/VU0QAQAAAAAuraK3AMRAAAAAOgeBIgAAAAAQCEBIgAAAABQSIAIAAAAABQSIBZYuHBhDjjggPTv3z9jx47Nr3/960qXxE64+uqrU1VV1W45+OCDK10WO/Doo4/mzDPPTGNjY6qqqrJ48eJ220ulUubMmZNhw4ZlwIABGT9+fF544YXKFMt7vN/xO//889/zXZw4cWJliqWdefPm5dhjj82gQYMydOjQTJ48OatWrWo35s0338yMGTMyZMiQDBw4MFOmTElzc3OFKoY9m560+9GPdi960u5LP9p96Ue7JwHiDvzkJz/JzJkzc9VVV+Xpp5/O4YcfngkTJmTDhg2VLo2d8MlPfjLr168vL4899lilS2IHtmzZksMPPzwLFy7c4fYbbrghCxYsyK233poVK1Zk7733zoQJE/Lmm2/u5krZkfc7fkkyceLEdt/FH/3oR7uxQoosW7YsM2bMyBNPPJEHH3ww27Zty2mnnZYtW7aUx1x22WW5//77c++992bZsmVZt25dzj777ApWDXsmPWn3pR/tPvSk3Zd+tPvSj3ZTJd7juOOOK82YMaP8evv27aXGxsbSvHnzKlgVO+Oqq64qHX744ZUug12UpHTfffeVX7e1tZUaGhpKN954Y3ldS0tLqbq6uvSjH/2oAhXy57z7+JVKpdJ5551XOuussypSD7tmw4YNpSSlZcuWlUqlt79rffv2Ld17773lMc8//3wpSWn58uWVKhP2SHrS7kk/2n3pSbsv/Wj3ph/tHpyB+C5bt27NypUrM378+PK6Xr16Zfz48Vm+fHkFK2NnvfDCC2lsbMyBBx6YadOmZc2aNZUuiV20evXqNDU1tfse1tbWZuzYsb6H3cgjjzySoUOH5uMf/3guuuiivPLKK5UuiR3YuHFjkqSuri5JsnLlymzbtq3d9+/ggw/OiBEjfP9gN9KTdm/60Z5BT9r96Ue7B/1o9yBAfJeXX34527dvT319fbv19fX1aWpqqlBV7KyxY8fmzjvvzJIlS3LLLbdk9erV+dSnPpXXX3+90qWxC975rvkedl8TJ07M3XffnaVLl+b666/PsmXLMmnSpGzfvr3SpfEn2tracumll+bEE0/MmDFjkrz9/evXr18GDx7cbqzvH+xeetLuSz/ac+hJuzf9aPegH+0++lS6AOhIkyZNKv992GGHZezYsRk5cmR++tOfZvr06RWsDPYsU6dOLf996KGH5rDDDstHP/rRPPLIIzn11FMrWBl/asaMGXn22WfdmwugA+lHoWvQj3YP+tHuwxmI77Lvvvumd+/e73m6T3NzcxoaGipUFR/U4MGDc9BBB+XFF1+sdCnsgne+a76HPceBBx6Yfffd13exC7n44ovzwAMP5OGHH87+++9fXt/Q0JCtW7empaWl3XjfP9i99KQ9h360+9KT9iz60a5HP9q9CBDfpV+/fjn66KOzdOnS8rq2trYsXbo048aNq2BlfBCbN2/OSy+9lGHDhlW6FHbBqFGj0tDQ0O57uGnTpqxYscL3sJv6wx/+kFdeecV3sQsolUq5+OKLc9999+Whhx7KqFGj2m0/+uij07dv33bfv1WrVmXNmjW+f7Ab6Ul7Dv1o96Un7Vn0o12HfrR7cgnzDsycOTPnnXdejjnmmBx33HGZP39+tmzZki9/+cuVLo338fWvfz1nnnlmRo4cmXXr1uWqq65K796984UvfKHSpfEumzdvbvfr3+rVq/PMM8+krq4uI0aMyKWXXpprr702o0ePzqhRozJ79uw0NjZm8uTJlSuasj93/Orq6nLNNddkypQpaWhoyEsvvZTLL788H/vYxzJhwoQKVk3y9mUiixYtys9+9rMMGjSofB+Z2traDBgwILW1tZk+fXpmzpyZurq61NTU5JJLLsm4ceNy/PHHV7h62LPoSbsn/Wj3oiftvvSj3Zd+tJuq9GOgu6qbb765NGLEiFK/fv1Kxx13XOmJJ56odEnshHPPPbc0bNiwUr9+/Uof+chHSueee27pxRdfrHRZ7MDDDz9cSvKe5bzzziuVSqVSW1tbafbs2aX6+vpSdXV16dRTTy2tWrWqskVT9ueO3xtvvFE67bTTSvvtt1+pb9++pZEjR5YuuOCCUlNTU6XLplTa4XFLUrrjjjvKY/71X/+19LWvfa20zz77lPbaa6/S5z//+dL69esrVzTswfSk3Y9+tHvRk3Zf+tHuSz/aPVWVSqVS58eUAAAAAEB35B6IAAAAAEAhASIAAAAAUEiACAAAAAAUEiACAAAAAIUEiAAAAABAIQEiAAAAAFBIgAgAAAAAFBIgAgAAAACFBIgAAAAAQCEBIgAAAABQSIAIAAAAABT6/wGYE72jwJkmJAAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1600x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axs = plt.subplots(1, 2, figsize=(16, 5))\n",
"axs[0].stairs(model['ptbin0passhighbvl']['zqq'].getExpectation(nominal=True), label='Nominal');\n",
"axs[0].stairs(model['ptbin0passhighbvl']['zqq'].getExpectation(eval=True), label='Shift');\n",
"axs[0].legend()\n",
"\n",
"axs[1].stairs(model['ptbin0passlowbvl']['zqq'].getExpectation(nominal=True), label='Nominal');\n",
"axs[1].stairs(model['ptbin0passlowbvl']['zqq'].getExpectation(eval=True), label='Shift');\n",
"axs[1].legend()\n",
"\n",
"a = model['ptbin0passhighbvl']['zqq'].getExpectation(nominal=True).sum() + model['ptbin0passlowbvl']['zqq'].getExpectation(nominal=True).sum()\n",
"b = model['ptbin0passhighbvl']['zqq'].getExpectation(eval=True).sum() + model['ptbin0passlowbvl']['zqq'].getExpectation(eval=True).sum()\n",
"print(a, b)"
]
},
{
"cell_type": "code",
"execution_count": 577,
"id": "ca99073c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"14.571428571428575\n",
"999.9997133484281 999.9997133484283\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABRAAAAGsCAYAAACl24uZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABKNklEQVR4nO3df3RU9Z3/8dfk1yQhJMMEkslg+CGIIBBAkJhK+SEREpSCZFegtIJSaG1ghUi12a8gUNso+IOCVI6uQl2lWLeIlrZYfga1AQWaRSsNhEZBSIgBkpiETEIy3z84zDrCBaI3mczk+TjnnsPc+5n3vMe7OX3va2butbjdbrcAAAAAAAAA4DKCfN0AAAAAAAAAgNaLABEAAAAAAACAIQJEAAAAAAAAAIYIEAEAAAAAAAAYIkAEAAAAAAAAYIgAEQAAAAAAAIAhAkQAAAAAAAAAhkJ83cA30djYqJMnT6p9+/ayWCy+bgcAAKDJ3G63vvzySzmdTgUF8Zmuv2EeBQAA/q4p86hfBognT55UYmKir9sAAAD41o4fP67rrrvO122giZhHAQBAoLiWedQvA8T27dtLuvAGo6OjfdwNAABA01VWVioxMdEz18C/MI8CAAB/15R51C8DxIs/E4mOjmZgAwAAfo2fv/on5lEAABAormUe5YI7AAAAAAAAAAwRIAIAAAAAAAAwRIAIAAAAAAAAwJBfXgMRAAB/1tDQoPr6el+3gWYWGhqq4OBgX7cBAABwWcykgc/MeZQAEQCAFuJ2u1VSUqLy8nJft4IWYrPZ5HA4uFEKAABoNZhJ2xaz5lECRAAAWsjFQS0uLk6RkZGESgHM7XarpqZGpaWlkqSEhAQfdwQAAHABM2nbYPY8SoAIAEALaGho8AxqsbGxvm4HLSAiIkKSVFpaqri4OH7ODAAAfI6ZtG0xcx7lJioAALSAi9eXiYyM9HEnaEkXzzfXFwIAAK0BM2nbY9Y8SoAIAEAL4icibQvnGwAAtEbMKG2HWeeaABEAAAAAAACAIQJEAAAAAAAAAIYIEAEAAAAAANCmrFu3TjabzfN48eLFGjhwoM/6ae0IEAEAwDWbMWOGLBaLLBaLwsLC1LNnTy1dulTnz5/3dWsAAABog746n351KywsvOLzJk+erMOHD7dQl/4vxNcNAAAA/5KWlqa1a9fK5XLpz3/+szIzMxUaGqrs7GxftwYAAIA26OJ8+lWdOnW64nMiIiIUERHRnG0FFL6BCAAAmsRqtcrhcKhr16564IEHlJqaqrffflvPPPOM+vfvr3bt2ikxMVE//elPVVVV5XneZ599pvHjx6tDhw5q166d+vbtqz//+c+SpLNnz2ratGnq1KmTIiIidMMNN1wyBAIAAACXc3E+/er261//+oqz6dd/wowr4xuICFgnys/pbHWd6XU7tAtTZxufUgDARRERETp9+rSCgoK0cuVKde/eXf/617/005/+VA8//LB+85vfSJIyMzNVV1en3bt3q127dvrkk08UFRUlSVq4cKE++eQT/eUvf1HHjh1VWFioc+fO+fJtAcC3V35cqjndPLUjYyVbYvPUBoAAcLXZFE1DgIiAdKL8nFKfztW5+gbTa0eEBmvbQyMIEQG0eW63W9u3b9c777yjuXPnat68eZ5j3bp10+OPP66f/OQnniHt2LFjysjIUP/+/SVJ119/vWf9sWPHNGjQIA0ZMsTzfADwa+XHpdVDpfqa5qkfGillfkCICACSNm/e7PlgWpLS09P1xhtveB5fbjZF0xAgIiCdra7TufoGrZg8UD3joq7+hGtUWFqlea/n62x1HQEigDbr4oBWX1+vxsZGff/739fixYu1bds25eTk6J///KcqKyt1/vx51dbWqqamRpGRkfqP//gPPfDAA/rrX/+q1NRUZWRkKCkpSZL0wAMPKCMjQwcOHNCYMWM0ceJEfec73/HxOwWAb6Hm9IXwcNKLUsde5tYuOyxtnHXhNQgQAUCjRo3S888/73ncrl27q86maBoCRAS0nnFR6tc5xtdtAEBAuTighYWFyel0KiQkRJ9++qnuuusuPfDAA/rlL38pu92u9957TzNnzlRdXZ0iIyP1ox/9SGPHjtWf/vQn/fWvf1VOTo6efvppzZ07V+np6frss8/05z//WVu3btXo0aOVmZmpp556ytdvF63Q7t27tXz5cu3fv1/FxcV68803NXHiRM9xi8Vy2ectW7ZMP/vZzyRd+CbCZ5995nU8JydHP//5z5utb7RRHXtJzoG+7gIAAlq7du3Us2dPz+NrmU3RNNxEBQAANMnFAa1Lly4KCbnwWeT+/fvV2Niop59+Wrfeeqt69eqlkydPXvLcxMRE/eQnP9HGjRv10EMP6cUXX/Qc69Spk6ZPn65XX31VK1as0AsvvNBi7wn+pbq6WgMGDNDq1asve7y4uNhre/nll2WxWJSRkeG1bunSpV7r5s6d2xLtAwCAZnatsymuHd9ABAAA31rPnj1VX1+vVatWafz48Xr//fe1Zs0arzXz5s1Tenq6evXqpbNnz2rnzp3q06ePJGnRokUaPHiw+vbtK5fLpc2bN3uOAV+Xnp6u9PR0w+MOh8Pr8VtvvaVRo0Z5XXdTktq3b3/JWiMul0sul8vzuLKysgkdAwCAlnQtsymahm8gAgCAb23AgAF65pln9OSTT6pfv3567bXXlJOT47WmoaFBmZmZ6tOnj9LS0tSrVy/PRazDwsKUnZ2tpKQkDR8+XMHBwdqwYYMv3goCzKlTp/SnP/1JM2fOvOTYE088odjYWA0aNEjLly/X+fPnDevk5OQoJibGsyUmct05AABaq2uZTdE0Frfb7fZ1E01VWVmpmJgYVVRUKDo62tftoBX6+ESF7lr1njbPHWbqNRCbqy6AwFdbW6uioiJ1795d4eHhvm4HLeRK5515xhwWi+WSayB+1bJly/TEE0/o5MmTXufgmWee0c033yy73a6//e1vys7O1n333adnnnnmsnUu9w3ExMREzh+MncyXXhghzc41/xqIzVkbQEBjJm17zJpH+QkzAAAAAtbLL7+sadOmXTIwZ2Vlef6dlJSksLAw/fjHP1ZOTo6sVusldaxW62X3AwAAtAX8hBkAAAAB6d1331VBQYF+9KMfXXVtcnKyzp8/r08//bT5GwMAAPAzBIgAAAAISC+99JIGDx6sAQMGXHVtfn6+goKCFBcX1wKdAQAA+Bd+wgwAAAC/UlVVpcLCQs/joqIi5efny263q0uXLpIuXNPnjTfe0NNPP33J8/Py8rR3716NGjVK7du3V15enubPn68f/OAH6tChQ4u9DwAAAH9BgAgAAAC/sm/fPo0aNcrz+OL1DKdPn65169ZJkjZs2CC3262pU6de8nyr1aoNGzZo8eLFcrlc6t69u+bPn+91XUQAAAD8HwJEAAAA+JWRI0fK7XZfcc3s2bM1e/bsyx67+eabtWfPnuZoDQAAICBxDUQAAAAAAAAAhggQAQAAAAAAABgiQAQAAK3WunXrZLPZTK356aefymKxKD8/39S6AAAACEzMpASIAADgKmbMmCGLxaInnnjCa/+mTZtksVia9bUnT56sw4cPN+trAAAAoPVjJvUtAkQAAHBV4eHhevLJJ3X27NkWfd2IiAjFxcW16GsCAACgdWIm9R0CRAAAcFWpqalyOBzKyckxXPOHP/xBffv2ldVqVbdu3fT00097He/WrZsef/xx3XvvvYqKilLXrl319ttv64svvtCECRMUFRWlpKQk7du3z/Ocr/9cZPHixRo4cKD++7//W926dVNMTIymTJmiL7/80rNmy5YtGjZsmGw2m2JjY3XXXXfp6NGj5v3HAAAAgE8wk/oOASIAALiq4OBg/epXv9KqVav0+eefX3J8//79uueeezRlyhR99NFHWrx4sRYuXKh169Z5rXv22Wd122236e9//7vuvPNO/fCHP9S9996rH/zgBzpw4IB69Oihe++9V26327CXo0ePatOmTdq8ebM2b96s3Nxcr5+yVFdXKysrS/v27dP27dsVFBSku+++W42Njab99wAAAEDLYyb1nRBfNwAAQFt2rq5BR7+oavHX7dEpShFhwU16zt13362BAwfqscce00svveR17JlnntHo0aO1cOFCSVKvXr30ySefaPny5ZoxY4Zn3bhx4/TjH/9YkrRo0SI9//zzuuWWW/Tv//7vkqRHHnlEKSkpOnXqlBwOx2X7aGxs1Lp169S+fXtJ0g9/+ENt375dv/zlLyVJGRkZXutffvllderUSZ988on69evXpPcMAAAQ6PxpHpWYSX2FABEAAB86+kWV7lr1Xou/7ua5w9Svc0yTn/fkk0/q9ttv14IFC7z2Hzp0SBMmTPDad9ttt2nFihVqaGhQcPCF4TApKclzPD4+XpLUv3//S/aVlpYaDmvdunXzDGqSlJCQoNLSUs/jI0eOaNGiRdq7d6/Kyso8n/IeO3bML4c1AACA5uRv86jETOoLBIgAAPhQj05R2jx3mE9e95sYPny4xo4dq+zsbK9Pca9VaGio598X75Z3uX1X+mnHV9dffM5X148fP15du3bViy++KKfTqcbGRvXr1091dXVN7hcAACDQ+ds8KjGT+gIBIgAAPhQRFvyNP3n1lSeeeEIDBw7UjTfe6NnXp08fvf/++17r3n//ffXq1cvzSW9LOH36tAoKCvTiiy/qu9/9riTpvfda/hN1AAAAf+GP86jETNrSCBABAECT9O/fX9OmTdPKlSs9+x566CHdcsst+sUvfqHJkycrLy9Pzz33nH7zm9+0aG8dOnRQbGysXnjhBSUkJOjYsWP6+c9/3qI9AAAAoPkxk7Ys7sIMAACabOnSpV4/0bj55pv1+9//Xhs2bFC/fv20aNEiLV269Bv9pOTbCAoK0oYNG7R//37169dP8+fP1/Lly1u0BwAAALQMZtKWY3Ff6Z7UrVRlZaViYmJUUVGh6OhoX7eDVujjExW6a9V73+qirC1ZF0Dgq62tVVFRkbp3767w8HBft4MWcqXzzjzj3zh/uKqT+dILI6TZuZJzoP/UBhDQmEnbHrPmUb6BCAAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAwRIAIAAAAAAAAw1KQAMScnR7fccovat2+vuLg4TZw4UQUFBV5ramtrlZmZqdjYWEVFRSkjI0OnTp3yWnPs2DHdeeedioyMVFxcnH72s5/p/Pnz3/7dAAAAAAAAADBVkwLE3NxcZWZmas+ePdq6davq6+s1ZswYVVdXe9bMnz9ff/zjH/XGG28oNzdXJ0+e1KRJkzzHGxoadOedd6qurk5/+9vf9Nvf/lbr1q3TokWLzHtXAAAAAAAAAEwR0pTFW7Zs8Xq8bt06xcXFaf/+/Ro+fLgqKir00ksvaf369br99tslSWvXrlWfPn20Z88e3XrrrfrrX/+qTz75RNu2bVN8fLwGDhyoX/ziF3rkkUe0ePFihYWFmffuAAAAAAAAAHwr3+oaiBUVFZIku90uSdq/f7/q6+uVmprqWdO7d2916dJFeXl5kqS8vDz1799f8fHxnjVjx45VZWWl/vGPf1z2dVwulyorK702AAAAAAAAAM3vGweIjY2Nmjdvnm677Tb169dPklRSUqKwsDDZbDavtfHx8SopKfGs+Wp4ePH4xWOXk5OTo5iYGM+WmJj4TdsGAAAAAAAA0ATfOEDMzMzUxx9/rA0bNpjZz2VlZ2eroqLCsx0/frzZXxMAAFw7i8WiTZs2GR7ftWuXLBaLysvLPfs2bdqknj17Kjg4WPPmzWv2HgEAABC4mEeb1zcKEOfMmaPNmzdr586duu666zz7HQ6H6urqvE6GJJ06dUoOh8Oz5ut3Zb74+OKar7NarYqOjvbaAABAy/jiiy/0wAMPqEuXLrJarXI4HBo7dqzef//9a67xne98R8XFxYqJifHs+/GPf6x/+7d/0/Hjx/WLX/xCM2bM0MSJE69aa8aMGbJYLLJYLAoNDVV8fLzuuOMOvfzyy2psbPwmbxEAAACtGPOo7zUpQHS73ZozZ47efPNN7dixQ927d/c6PnjwYIWGhmr79u2efQUFBTp27JhSUlIkSSkpKfroo49UWlrqWbN161ZFR0frpptu+jbvBQAANIOMjAz9/e9/129/+1sdPnxYb7/9tkaOHKnTp09fc42wsDA5HA5ZLBZJUlVVlUpLSzV27Fg5nU61b9++ST2lpaWpuLhYn376qf7yl79o1KhRevDBB3XXXXfp/PnzTaoFAACA1o151PeaFCBmZmbq1Vdf1fr169W+fXuVlJSopKRE586dkyTFxMRo5syZysrK0s6dO7V//37dd999SklJ0a233ipJGjNmjG666Sb98Ic/1P/+7//qnXfe0aOPPqrMzExZrVbz3yEAAPjGysvL9e677+rJJ5/UqFGj1LVrVw0dOlTZ2dn63ve+57W2rKxMd999tyIjI3XDDTfo7bff9hz76k9Gdu3a5RnQbr/9dlksFo0cOVK//e1v9dZbb3k+zd21a5dhXxc/ee7cubNuvvlm/ed//qfeeust/eUvf9G6des8644dO6YJEyYoKipK0dHRuueeezy/fKioqFBwcLD27dsn6cL1ne12u2dmkaRXX33Vc+3lTz/9VBaLRRs3btSoUaMUGRmpAQMGeG4UBwAAAPMxj7aOebRJAeLzzz+viooKjRw5UgkJCZ7t9ddf96x59tlndddddykjI0PDhw+Xw+HQxo0bPceDg4O1efNmBQcHKyUlRT/4wQ907733aunSpea9KwAAYIqoqChFRUVp06ZNcrlcV1y7ZMkS3XPPPTp48KDGjRunadOm6cyZM5es+853vqOCggJJ0h/+8AcVFxfr7bff1j333OP5JLe4uFjf+c53mtTr7bffrgEDBnjmjsbGRk2YMEFnzpxRbm6utm7dqn/961+aPHmypAsffA4cONAzGH700UeyWCz6+9//rqqqKklSbm6uRowY4fU6/+///T8tWLBA+fn56tWrl6ZOnRqQnzIDAAC0BsyjrWMeDWnKYrfbfdU14eHhWr16tVavXm24pmvXrvrzn//clJcGACAw1dVIZYdb/nU79pLCIq+6LCQkROvWrdOsWbO0Zs0a3XzzzRoxYoSmTJmipKQkr7UzZszQ1KlTJUm/+tWvtHLlSn3wwQdKS0vzWhcWFqa4uDhJkt1u91wDOSIiQi6Xy/CayNeid+/eOnjwoCRp+/bt+uijj1RUVOT51PaVV15R37599eGHH+qWW27RyJEjtWvXLi1YsEC7du3SHXfcoX/+85967733lJaWpl27dunhhx/2eo0FCxbozjvvlHRhSO3bt68KCwvVu3fvb9w3AACAzzCPMo9egyYFiAAAwGRlh6UXRlx9ndlm50rOgde0NCMjQ3feeafeffdd7dmzR3/5y1+0bNky/dd//ZdmzJjhWffVAa5du3aKjo72uuZxS3C73Z7r2hw6dEiJiYmeYU2SbrrpJtlsNh06dEi33HKLRowYoZdeekkNDQ3Kzc3VmDFj5HA4tGvXLiUlJamwsFAjR470eo2vvs+EhARJUmlpKQEiAADwT8yjpgrUeZQAEQAAX+rY68Lw5IvXbYLw8HDdcccduuOOO7Rw4UL96Ec/0mOPPeY1sIWGhno9x2KxtPhd6A4dOnTJTd6uZPjw4fryyy914MAB7d69W7/61a/kcDj0xBNPaMCAAXI6nbrhhhu8nvPV93lxOAzUu+0BAIA2gHnUVIE6jxIgAgDgS2GR1/zJa2ty0003adOmTabWDAsLU0NDwzd+/o4dO/TRRx9p/vz5kqQ+ffro+PHjOn78uOdT308++UTl5eW66aabJEk2m01JSUl67rnnFBoaqt69eysuLk6TJ0/W5s2bL7neDAAAQMBhHvVgHjXWpJuoAACAtuX06dO6/fbb9eqrr+rgwYMqKirSG2+8oWXLlmnChAmmvla3bt108OBBFRQUqKysTPX19YZrXS6XSkpKdOLECR04cEC/+tWvNGHCBN1111269957JUmpqanq37+/pk2bpgMHDuiDDz7QvffeqxEjRmjIkCGeWiNHjtRrr73mGc7sdrv69Omj119/vdUMbAAAAG0V82jrmEcJEAEAgKGoqCglJyfr2Wef1fDhw9WvXz8tXLhQs2bN0nPPPWfqa82aNUs33nijhgwZok6dOun99983XLtlyxYlJCSoW7duSktL086dO7Vy5Uq99dZbCg4OlnTh5xxvvfWWOnTooOHDhys1NVXXX3+9Xn/9da9aI0aMUENDg9e1ZUaOHHnJPgAAALQ85tGRag0s7mu5tXIrU1lZqZiYGFVUVCg6OtrX7aAV+vhEhe5a9Z42zx2mfp1jWn1dAIGvtrZWRUVF6t69u8LDw33dDlrIlc4784x/4/zhqk7mX7gpQRNuEtAqagMIaMykbY9Z8yjfQAQAAAAAAABgiAARAAAAAAAAgCECRAAAAAAAAACGCBABAAAAAAAAGCJABACgBfnhvcvwLXC+AQBAa8SM0naYda4JEAEAaAGhoaGSpJqaGh93gpZ08XxfPP8wx+7duzV+/Hg5nU5ZLBZt2rTJ6/iMGTNksVi8trS0NK81Z86c0bRp0xQdHS2bzaaZM2eqqqqqBd8FAAAtj5m07TFrHg0xoxkAAHBlwcHBstlsKi0tlSRFRkbKYrH4uCs0F7fbrZqaGpWWlspmsyk4ONjXLQWU6upqDRgwQPfff78mTZp02TVpaWlau3at57HVavU6Pm3aNBUXF2vr1q2qr6/Xfffdp9mzZ2v9+vXN2jsAAL7ETNp2mD2PEiACANBCHA6HJHkGNgQ+m83mOe8wT3p6utLT06+4xmq1Gv63P3TokLZs2aIPP/xQQ4YMkSStWrVK48aN01NPPSWn02l6zwAAtBbMpG2LWfMoASIAAC3EYrEoISFBcXFxqq+v93U7aGahoaF889CHdu3apbi4OHXo0EG33367Hn/8ccXGxkqS8vLyZLPZPOGhJKWmpiooKEh79+7V3XfffUk9l8sll8vleVxZWdn8bwIAgGbATNp2mDmPEiACANDCgoODCZaAZpSWlqZJkyape/fuOnr0qP7zP/9T6enpysvLU3BwsEpKShQXF+f1nJCQENntdpWUlFy2Zk5OjpYsWdIS7QMA0CKYSdEUBIgAAAAIKFOmTPH8u3///kpKSlKPHj20a9cujR49+hvVzM7OVlZWludxZWWlEhMTv3WvAAAA/oC7MAMAACCgXX/99erYsaMKCwslXbj209ev+3T+/HmdOXPG8BpBVqtV0dHRXhsAAEBbQYAIAACAgPb555/r9OnTSkhIkCSlpKSovLxc+/fv96zZsWOHGhsblZyc7Ks2AQAAWi1+wgwAAAC/UlVV5fk2oSQVFRUpPz9fdrtddrtdS5YsUUZGhhwOh44ePaqHH35YPXv21NixYyVJffr0UVpammbNmqU1a9aovr5ec+bM0ZQpU7gDMwAAwGXwDUQAAAD4lX379mnQoEEaNGiQJCkrK0uDBg3SokWLFBwcrIMHD+p73/ueevXqpZkzZ2rw4MF69913ZbVaPTVee+019e7dW6NHj9a4ceM0bNgwvfDCC756SwAAAK0a30AEAACAXxk5cqTcbrfh8XfeeeeqNex2u9avX29mWwAAAAGLbyACAAAAAAAAMESACAAAAAAAAMAQASIAAAAAAAAAQ1wDEfgGCkurmqVuh3Zh6myLaJbaAAAACDBlh82vGRkr2RLNrwsA8GsEiEATdGgXpojQYM17Pb9Z6keEBmvbQyMIEQEAAGAsMlYKjZQ2zjK/dmiklPkBISIAwAsBItAEnW0R2vbQCJ2trjO9dmFplea9nq+z1XUEiAAAADBmS7wQ8tWcNrdu2eELoWTNaQJEAIAXAkSgiTrbIgj4AAAA4Fu2REI+AECL4SYqAAAAAAAAAAwRIAIAAAAAAAAwRIAIAAAAAAAAwBABIgAAAAAAAABDBIgAAAAAAAAADBEgAgAAAAAAADBEgAgAAAAAAADAEAEiAAAAAAAAAEMEiAAAAAAAAAAMESACAAAAAAAAMESACAAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAwRIAIAAAAAAAAwRIAIAAAAAAAAwBABIgAAAAAAAABDBIgAAAAAAAAADBEgAgAAAAAAADBEgAgAAAAAAADAEAEiAAAAAAAAAEMEiAAAAAAAAAAMESACAAAAAAAAMESACAAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAwRIAIAAAAAAAAwRIAIAAAAAAAAwBABIgAAAAAAAABDBIgAAAAAAAAADBEgAgAAAAAAADBEgAgAAAAAAADAEAEiAAAAAAAAAEMEiAAAAAAAAAAMESACAAAAAAAAMESACAAAAL+ye/dujR8/Xk6nUxaLRZs2bfIcq6+v1yOPPKL+/furXbt2cjqduvfee3Xy5EmvGt26dZPFYvHannjiiRZ+JwAAAP6BABEAAAB+pbq6WgMGDNDq1asvOVZTU6MDBw5o4cKFOnDggDZu3KiCggJ973vfu2Tt0qVLVVxc7Nnmzp3bEu0DAAD4nRBfNwAAAAA0RXp6utLT0y97LCYmRlu3bvXa99xzz2no0KE6duyYunTp4tnfvn17ORyOZu0VAAAgEPANRAAAAAS0iooKWSwW2Ww2r/1PPPGEYmNjNWjQIC1fvlznz583rOFyuVRZWem1AQAAtBV8AxEBy6kyhZd9JFmizC0cGSvZEs2tCQAAmkVtba0eeeQRTZ06VdHR0Z79//Ef/6Gbb75Zdrtdf/vb35Sdna3i4mI988wzl62Tk5OjJUuWtFTbAAAArQoBIgJSaNUJbbP+TJFvupqheKSU+QEhIgAArVx9fb3uueceud1uPf/8817HsrKyPP9OSkpSWFiYfvzjHysnJ0dWq/WSWtnZ2V7PqaysVGIiswAAAGgbCBARkIJrzyjS4tLxUb9W4g0DzStcdljaOEuqOU2ACABAK3YxPPzss8+0Y8cOr28fXk5ycrLOnz+vTz/9VDfeeOMlx61W62WDRQAAgLaAABEBzWXrKTkH+roNAADQgi6Gh0eOHNHOnTsVGxt71efk5+crKChIcXFxLdAhAACAfyFABAAAgF+pqqpSYWGh53FRUZHy8/Nlt9uVkJCgf/u3f9OBAwe0efNmNTQ0qKSkRJJkt9sVFhamvLw87d27V6NGjVL79u2Vl5en+fPn6wc/+IE6dOjgq7cFAADQajX5Lsy7d+/W+PHj5XQ6ZbFYtGnTJq/jM2bMkMVi8drS0tK81pw5c0bTpk1TdHS0bDabZs6cqaqqqm/1RgAAANA27Nu3T4MGDdKgQYMkXbie4aBBg7Ro0SKdOHFCb7/9tj7//HMNHDhQCQkJnu1vf/ubpAs/R96wYYNGjBihvn376pe//KXmz5+vF154wZdvCwAAoNVq8jcQq6urNWDAAN1///2aNGnSZdekpaVp7dq1nsdfv17MtGnTVFxcrK1bt6q+vl733XefZs+erfXr1ze1HQAAALQxI0eOlNvtNjx+pWOSdPPNN2vPnj1mtwUAABCwmhwgpqenKz09/YprrFarHA7HZY8dOnRIW7Zs0YcffqghQ4ZIklatWqVx48bpqaeektPpbGpLAAAAAAAAAJpJk3/CfC127dqluLg43XjjjXrggQd0+vRpz7G8vDzZbDZPeChJqampCgoK0t69ey9bz+VyqbKy0msDAAAAAAAA0PxMDxDT0tL0yiuvaPv27XryySeVm5ur9PR0NTQ0SJJKSkouubtdSEiI7Ha75wLXX5eTk6OYmBjPlpiYaHbbAAAAAAAAAC7D9LswT5kyxfPv/v37KykpST169NCuXbs0evTob1QzOztbWVlZnseVlZWEiAAAAAAAAEALaJafMH/V9ddfr44dO6qwsFCS5HA4VFpa6rXm/PnzOnPmjOF1E61Wq6Kjo702AAAAAAAAAM2v2QPEzz//XKdPn1ZCQoIkKSUlReXl5dq/f79nzY4dO9TY2Kjk5OTmbgcAAAAAAABAEzT5J8xVVVWebxNKUlFRkfLz82W322W327VkyRJlZGTI4XDo6NGjevjhh9WzZ0+NHTtWktSnTx+lpaVp1qxZWrNmjerr6zVnzhxNmTKFOzADAAAAAAAArUyTv4G4b98+DRo0SIMGDZIkZWVladCgQVq0aJGCg4N18OBBfe9731OvXr00c+ZMDR48WO+++66sVqunxmuvvabevXtr9OjRGjdunIYNG6YXXnjBvHcFAAAAAAAAwBRN/gbiyJEj5Xa7DY+/8847V61ht9u1fv36pr40AAAAAAAAgBbW7NdABAAAAAAAAOC/CBABAAAAAAAAGCJABAAAAAAAAGCIABEAAAAAAACAIQJEAAAAAAAAAIYIEAEAAAAAAAAYIkAEAAAAAAAAYIgAEQAAAAAAAIAhAkQAAAAAAAAAhggQAQAAAAAAABgK8XUDAAAAABCoCr+oUq27wvS6HdqFqbMtwvS6AABcDgEiAAAAAJistMqlOEkPbsjXP5ohQIwIDda2h0YQIgIAWgQBIgAAAACYrPJcveIkLRhzozr1Gmpq7cLSKs17PV9nq+sIEAEALYIAEQAAAACaSaI9Qj07x/i6DQAAvhVuogIAAAAAAADAEAEiAAAAAAAAAEMEiAAAAAAAAAAMESACAAAAAAAAMESACAAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAyF+LoB4ET5OZ2trjO15hdnzqmnqRUBAAAQsMqPSzWnTS1pLS80tR4AAL5EgAifOlF+TqlP5+pcfYOpdftaijTKKkVHhJpaFwAAAAGm/Li0eqhUX2Nq2URJNW6rGsLtptYFAMAXCBDhU2er63SuvkErJg9Uz7go0+qGl8VIb0pxUVbTagIAACAA1Zy+EB5OelHq2Mu0soVfVOne3x3VC1GdTasJAICvECCiVegZF6V+nWPMK2gxL4wEAABAG9Cxl+QcaFq5WneFTqrCtHoAAPgSN1EBAAAAAAAAYIgAEQAAAAAAAIAhAkQAAAAAAAAAhggQAQAAAAAAABgiQAQAAAAAAABgiAARAAAAAAAAgCECROCbKDssncw3dQsv+0hOlbXwGwEAwP/s3r1b48ePl9PplMVi0aZNm7yOu91uLVq0SAkJCYqIiFBqaqqOHDnitebMmTOaNm2aoqOjZbPZNHPmTFVVVbXguwAAAPAfIb5uAPArkbFSaKS0cZbppXtK2ma16njVLZJiTK8PAECgqK6u1oABA3T//fdr0qRJlxxftmyZVq5cqd/+9rfq3r27Fi5cqLFjx+qTTz5ReHi4JGnatGkqLi7W1q1bVV9fr/vuu0+zZ8/W+vXrW/rtAAAAtHoEiEBT2BKlzA+kmtOmlz5+JF+JOx9UcO0Z02sDABBI0tPTlZ6eftljbrdbK1as0KOPPqoJEyZIkl555RXFx8dr06ZNmjJlig4dOqQtW7boww8/1JAhQyRJq1at0rhx4/TUU0/J6XS22HsBAADwBwSIQFPZEi9sJnN9wc+mAAD4toqKilRSUqLU1FTPvpiYGCUnJysvL09TpkxRXl6ebDabJzyUpNTUVAUFBWnv3r26++67L6nrcrnkcrk8jysrK5v3jQAAALQiXAMRAAAAAaOkpESSFB8f77U/Pj7ec6ykpERxcXFex0NCQmS32z1rvi4nJ0cxMTGeLTHR/A8TAQAAWisCRAAAAOAqsrOzVVFR4dmOHz/u65YAAABaDAEiAAAAAobD4ZAknTp1ymv/qVOnPMccDodKS0u9jp8/f15nzpzxrPk6q9Wq6Ohorw0AAKCtIEAEAABAwOjevbscDoe2b9/u2VdZWam9e/cqJSVFkpSSkqLy8nLt37/fs2bHjh1qbGxUcnJyi/cMAADQ2nETFQAAAPiVqqoqFRYWeh4XFRUpPz9fdrtdXbp00bx58/T444/rhhtuUPfu3bVw4UI5nU5NnDhRktSnTx+lpaVp1qxZWrNmjerr6zVnzhxNmTKFOzADAABcBgEiAAAA/Mq+ffs0atQoz+OsrCxJ0vTp07Vu3To9/PDDqq6u1uzZs1VeXq5hw4Zpy5YtCg8P9zzntdde05w5czR69GgFBQUpIyNDK1eubPH3AgAA4A8IEAEAAOBXRo4cKbfbbXjcYrFo6dKlWrp0qeEau92u9evXN0d7AAAAAYdrIAIAAAAAAAAwRIAIAAAAAAAAwBABIgAAAAAAAABDBIgAAAAAAAAADBEgAgAAAAAAADBEgAgAAAAAAADAEAEiAAAAAAAAAEMEiAAAAAAAAAAMESACAAAAAAAAMESACAAAAAAAAMAQASIAAAAAAAAAQyG+bgAAAAAA0HSFpVWm1gsvq1JPUysCAAIFASIAAAAA+JEO7cIUERqsea/nm1q3r6VIf7JKpVUuxZlaGQDg7wgQAQAAAMCPdLZFaNtDI3S2us7Uul8cDpNypcpz9QSIAAAvBIgAAAAA4Gc62yLU2RZhas3CMnPrAQACBzdRAQAAAAAAAGCIABEAAAAAAACAIQJEAAAAAAAAAIYIEAEAAAAAAAAYIkAEAAAAAAAAYIgAEQAAAAAAAIAhAkQAAAAAAAAAhggQAQAAAAAAABgiQAQAAAAAAABgiAARAAAAAAAAgCECRAAAAAAAAACGCBABAAAAAAAAGCJABAAAAAAAAGCIABEAAAAAAACAIQJEAAAAAAAAAIaaHCDu3r1b48ePl9PplMVi0aZNm7yOu91uLVq0SAkJCYqIiFBqaqqOHDnitebMmTOaNm2aoqOjZbPZNHPmTFVVVX2rNwIAAAAAAADAfE0OEKurqzVgwACtXr36sseXLVumlStXas2aNdq7d6/atWunsWPHqra21rNm2rRp+sc//qGtW7dq8+bN2r17t2bPnv3N3wUAAAAAAACAZhHS1Cekp6crPT39ssfcbrdWrFihRx99VBMmTJAkvfLKK4qPj9emTZs0ZcoUHTp0SFu2bNGHH36oIUOGSJJWrVqlcePG6amnnpLT6fwWbwcAAAAAAACAmUy9BmJRUZFKSkqUmprq2RcTE6Pk5GTl5eVJkvLy8mSz2TzhoSSlpqYqKChIe/fuvWxdl8ulyspKrw0AAAAAAABA8zM1QCwpKZEkxcfHe+2Pj4/3HCspKVFcXJzX8ZCQENntds+ar8vJyVFMTIxnS0xMNLNtAAAAAAAAAAb84i7M2dnZqqio8GzHjx/3dUsAAAAAAABAm2BqgOhwOCRJp06d8tp/6tQpzzGHw6HS0lKv4+fPn9eZM2c8a77OarUqOjraawMAAAAAAADQ/EwNELt37y6Hw6Ht27d79lVWVmrv3r1KSUmRJKWkpKi8vFz79+/3rNmxY4caGxuVnJxsZjsAAAAAAAAAvqUm34W5qqpKhYWFnsdFRUXKz8+X3W5Xly5dNG/ePD3++OO64YYb1L17dy1cuFBOp1MTJ06UJPXp00dpaWmaNWuW1qxZo/r6es2ZM0dTpkzhDswAAAAAAABAK9PkAHHfvn0aNWqU53FWVpYkafr06Vq3bp0efvhhVVdXa/bs2SovL9ewYcO0ZcsWhYeHe57z2muvac6cORo9erSCgoKUkZGhlStXmvB2AAAAAAAAAJipyQHiyJEj5Xa7DY9bLBYtXbpUS5cuNVxjt9u1fv36pr40AAAAAAAAgBbmF3dhBgAAAK5Vt27dZLFYLtkyMzMlXfhA/OvHfvKTn/i4awAAgNaryd9ABAAAAFqzDz/8UA0NDZ7HH3/8se644w79+7//u2ffrFmzvH4xExkZ2aI9AgAA+BMCRAAAAASUTp06eT1+4okn1KNHD40YMcKzLzIyUg6Ho6VbAwAA8Ev8hBkAAAABq66uTq+++qruv/9+WSwWz/7XXntNHTt2VL9+/ZSdna2ampor1nG5XKqsrPTaAAAA2gq+gQifc6pM4WUfSZYo84qWHTavFgAA8FubNm1SeXm5ZsyY4dn3/e9/X127dpXT6dTBgwf1yCOPqKCgQBs3bjSsk5OToyVLlrRAxwAAAK0PASJ8KrTqhLZZf6bIN13NUDxSiow1vy4AAPAbL730ktLT0+V0Oj37Zs+e7fl3//79lZCQoNGjR+vo0aPq0aPHZetkZ2crKyvL87iyslKJiYnN1zgAAEArQoAInwquPaNIi0vHR/1aiTcMNLd4ZKxkY7AHAKCt+uyzz7Rt27YrfrNQkpKTkyVJhYWFhgGi1WqV1Wo1vUcAAAB/QICIVsFl6yk5B/q6DQAAEEDWrl2ruLg43XnnnVdcl5+fL0lKSEhoga4AAAD8DwEiAAAAAk5jY6PWrl2r6dOnKyTk/0beo0ePav369Ro3bpxiY2N18OBBzZ8/X8OHD1dSUpIPOwYAAGi9CBABAAAQcLZt26Zjx47p/vvv99ofFhambdu2acWKFaqurlZiYqIyMjL06KOP+qhTAACA1o8AEQAAAAFnzJgxcrvdl+xPTExUbm6uDzoCAADwX0G+bgAAAAAAAABA60WACAAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAwRIAIAAAAAAAAwRIAIAAAAAAAAwBABIgAAAAAAAABDBIgAAAAAAAAADBEgAgAAAAAAADAU4usGAAAAAMDXCr+oUq27wrx6pVWm1QIAwNcIEAEAAAC0WaVVLsVJenBDvv5hYoAoSRGhwerQLszUmgAA+AIBIgAAAIA2q/JcveIkLRhzozr1Gmpq7Q7twtTZFmFqTQAAfIEAEQAAAECbl2iPUM/OMb5uAwCAVombqAAAAAAAAAAwRIAIAAAAAAAAwBABIgAAAAAAAABDBIgAAAAAAAAADBEgAgAAAAAAADBEgAgAAAAAAADAEAEiAAAAAAAAAEMEiAAAAAAAAAAMESACAAAAAAAAMESACAAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAwRIAIAAAAAAAAwRIAIAAAAAAAAwBABIgAAAAAAAABDIb5uAIC342fOqfZEhak1O7QLU2dbhKk1AQAAEJis5YXSyShzi0bGSrZEc2sCAFoMASLQSkRHhEqSnvprgf7xTp2ptSNCg7XtoRGEiAAAADDUEG5XjduqxJ0PSjtNLh4aKWV+QIgIAH6KABFoJeKirJKkX08ZqNqO/U2rW1hapXmv5+tsdR0BIgAAAAzVR3VWqmu5XpnaQz07mfgNxLLD0sZZUs1pAkQA8FMEiEAr07NTlOSM8XUbAAAAaINOquOFD7OZRwEAX8FNVAAAAAAAAAAYIkAEAAAAAAAAYIgAEQAAAAAAAIAhAkQAAAAAAAAAhggQAQAAAAAAABgiQAQAAAAAAABgiAARAAAAAAAAgCECRAAAAAAAAACGCBABAAAQUBYvXiyLxeK19e7d23O8trZWmZmZio2NVVRUlDIyMnTq1CkfdgwAANC6ESACAAAg4PTt21fFxcWe7b333vMcmz9/vv74xz/qjTfeUG5urk6ePKlJkyb5sFsAAIDWLcTXDQAAAABmCwkJkcPhuGR/RUWFXnrpJa1fv1633367JGnt2rXq06eP9uzZo1tvvbWlWwUAAGj1+AYiAAAAAs6RI0fkdDp1/fXXa9q0aTp27Jgkaf/+/aqvr1dqaqpnbe/evdWlSxfl5eUZ1nO5XKqsrPTaAAAA2goCRAAAAASU5ORkrVu3Tlu2bNHzzz+voqIiffe739WXX36pkpIShYWFyWazeT0nPj5eJSUlhjVzcnIUExPj2RITE5v5XQAAALQe/IQZAAAAASU9Pd3z76SkJCUnJ6tr1676/e9/r4iIiG9UMzs7W1lZWZ7HlZWVhIgAAKDN4BuIAAAACGg2m029evVSYWGhHA6H6urqVF5e7rXm1KlTl71m4kVWq1XR0dFeGwAAQFtBgAgAAICAVlVVpaNHjyohIUGDBw9WaGiotm/f7jleUFCgY8eOKSUlxYddAgAAtF78hBkAAAABZcGCBRo/fry6du2qkydP6rHHHlNwcLCmTp2qmJgYzZw5U1lZWbLb7YqOjtbcuXOVkpLCHZgBAAAMECACAAAgoHz++eeaOnWqTp8+rU6dOmnYsGHas2ePOnXqJEl69tlnFRQUpIyMDLlcLo0dO1a/+c1vfNw1AABA60WACAAAgICyYcOGKx4PDw/X6tWrtXr16hbqCAAAwL9xDUQAAAAAAAAAhggQAQAAAAAAABgiQAQAAAAAAABgiAARAAAAAAAAgCECRAAAAAAAAACGCBABAAAAAAAAGCJABAAAAAAAAGCIABEAAAAAAACAIQJEAAAAAAAAAIYIEAEAAAAAAAAYMj1AXLx4sSwWi9fWu3dvz/Ha2lplZmYqNjZWUVFRysjI0KlTp8xuAwAAAAAAAIAJmuUbiH379lVxcbFne++99zzH5s+frz/+8Y964403lJubq5MnT2rSpEnN0QYAAAAAAACAbymkWYqGhMjhcFyyv6KiQi+99JLWr1+v22+/XZK0du1a9enTR3v27NGtt9562Xoul0sul8vzuLKysjnaBlqHssOmlgsvq5JTZabWBAAAAAAAbUezBIhHjhyR0+lUeHi4UlJSlJOToy5dumj//v2qr69XamqqZ23v3r3VpUsX5eXlGQaIOTk5WrJkSXO0CrQekbFSaKS0cZapZXtK2ma16njVLZJiTK0NAAAAAAACn+kBYnJystatW6cbb7xRxcXFWrJkib773e/q448/VklJicLCwmSz2byeEx8fr5KSEsOa2dnZysrK8jyurKxUYmKi2a0DvmVLlDI/kGpOm1r2+JF8Je58UMG1Z0ytCwAAAAAA2gbTA8T09HTPv5OSkpScnKyuXbvq97//vSIiIr5RTavVKqvValaLQOtlS7ywmcj1RZWp9QAAAAAAQNvSLDdR+SqbzaZevXqpsLBQDodDdXV1Ki8v91pz6tSpy14zEQAAAAAAAIBvNXuAWFVVpaNHjyohIUGDBw9WaGiotm/f7jleUFCgY8eOKSUlpblbAQAAAAAAANBEpv+EecGCBRo/fry6du2qkydP6rHHHlNwcLCmTp2qmJgYzZw5U1lZWbLb7YqOjtbcuXOVkpJieAMVAAAAAAAAAL5jeoD4+eefa+rUqTp9+rQ6deqkYcOGac+ePerUqZMk6dlnn1VQUJAyMjLkcrk0duxY/eY3vzG7DQAAAAAAAAAmMD1A3LBhwxWPh4eHa/Xq1Vq9erXZLw0AAAAAAADAZKYHiAAAAAAA/1VYWmVqvfCyKvU0tSIAoKURIAIAAAAA1KFdmCJCgzXv9XxT6/a1FOlPVqm0yqU4UysDAFoKASIAAAAAQJ1tEdr20Aidra4zte4Xh8OkXKnyXD0BIgD4KQJEAAAAAICkCyFiZ1uEqTULy8ytBwBoeUG+bgAAAAAAAABA60WACAAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAwRIAIAAAAAAAAwRIAIAAAAAAAAwFCIrxuA/zhRfk5nq+tMrfnFmXPqaWpFAAAABKzy41LNaVNLWssLTa0HAEAgIkDENTlRfk6pT+fqXH2DqXX7Woo0yipFR4SaWhcAAAABpvy4tHqoVF9jatlESTVuqxrC7abWBQAgkBAg4pqcra7TufoGrZg8UD3jokyrG14WI70pxUVZTasJAACAAFRz+kJ4OOlFqWMv08oWflGle393VC9EdTatJgAAgYYAEU3SMy5K/TrHmFfQYl4YCQAAgDagYy/JOdC0crXuCp1UhWn1AAAIRNxEBQAAAAAAAIAhAkQAAAAAAAAAhggQAQAAAAAAABgiQAQAAAAAAABgiAARAAAAAAAAgCECRAAAAAAAAACGCBABAAAQUHJycnTLLbeoffv2iouL08SJE1VQUOC1ZuTIkbJYLF7bT37yEx91DAAA0LoRIAIAACCg5ObmKjMzU3v27NHWrVtVX1+vMWPGqLq62mvdrFmzVFxc7NmWLVvmo44BAABatxBfNwAAAACYacuWLV6P161bp7i4OO3fv1/Dhw/37I+MjJTD4Wjp9gAAAPwO30AEAABAQKuoqJAk2e12r/2vvfaaOnbsqH79+ik7O1s1NTWGNVwulyorK702AACAtoJvIAIAACBgNTY2at68ebrtttvUr18/z/7vf//76tq1q5xOpw4ePKhHHnlEBQUF2rhx42Xr5OTkaMmSJS3VNgAAQKtCgAgAAICAlZmZqY8//ljvvfee1/7Zs2d7/t2/f38lJCRo9OjROnr0qHr06HFJnezsbGVlZXkeV1ZWKjExsfkaBwAAaEUIEAEAABCQ5syZo82bN2v37t267rrrrrg2OTlZklRYWHjZANFqtcpqtTZLnwAAAK0dASIAAAACitvt1ty5c/Xmm29q165d6t69+1Wfk5+fL0lKSEho5u4AAAD8DwEiAAAAAkpmZqbWr1+vt956S+3bt1dJSYkkKSYmRhERETp69KjWr1+vcePGKTY2VgcPHtT8+fM1fPhwJSUl+bh7AACA1ocAEQAAAAHl+eeflySNHDnSa//atWs1Y8YMhYWFadu2bVqxYoWqq6uVmJiojIwMPfrooz7oFgAAoPUjQMQ1c6pM4WUfSZYo84qWHTavFgAAgC78hPlKEhMTlZub20LdAAAA+D8CRFyT0KoT2mb9mSLfdDVD8UgpMtb8ugAAAAAAAPjWCBBxTYJrzyjS4tLxUb9W4g0DzS0eGSvZEs2tCQAAAAAAAFMQIKJJXLaeknOgr9sAAAAAAABACyFABAAAAOA3Cr+oUq27wrx6pVWm1QIAIFARIAIAAABo9UqrXIqT9OCGfP3DxABRkiJCg9WhXZipNQEACCQEiAAAAABavcpz9YqTtGDMjerUa6iptTu0C1NnW4SpNQEACCQEiAAAAAD8RqI9Qj07x/i6DQAA2pQgXzcAAAAAAAAAoPUiQAQAAAAAAABgiAARAAAAAAAAgCECRAAAAAAAAACGCBABAAAAAAAAGCJABAAAAAAAAGCIABEAAAAAAACAIQJEAAAAAAAAAIYIEAEAAAAAAAAYIkAEAAAAAAAAYIgAEQAAAAAAAIAhAkQAAAAAAAAAhggQAQAAAAAAABgK8XUDAFrG8TPnVHuiwtSaHdqFqbMtwtSaAAAACEzW8kLpZJT5hSNjJVui+XUBAB4EiECAi44IlSQ99dcC/eOdOlNrR4QGa9tDIwgRAQAAYKgh3K4at1WJOx+UdjbDC4RGSpkfECICQDMiQAQCXFyUVZL06ykDVduxv2l1C0urNO/1fJ2triNABAAAgKH6qM5KdS3XK1N7qGcnk7+BWHZY2jhLqjlNgAgAzYgAEWgjenaKkpwxvm4DAAAAbdBJdbzwYTbzKAD4JW6iAgAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAxxDUSgrSg7bGq58LIqOVVmak0AAAAAAND6ECACgS4yVgqNvHB3OhP1lLTNatXxqlskcTFsAAAAAAACFQEiEOhsiVLmB1LNaVPLHj+Sr8SdDyq49oypdQEAABCYCkurTK8ZXlalnqZXBQB8HQEi0BbYEi9sJnJ9Yf4ACAAAgMDToV2YIkKDNe/1fNNr97UU6U9WqbTKpTjTqwMALiJABAAAAAA0m862CG17aITOVteZXvuLw2FSrlR5rp4AEQCaEQEiAAAAAKBZdbZFqLMtwvS6hWXm1wQAXCrI1w0AAAAAAAAAaL34BmKAOVF+rnl+GnDmHBcnBgAAwLUpP276Ddys5YWm1gMAANeOADGAnCg/p9Snc3WuvsH02n0tRRpllaIjQk2vDQAAgABSflxaPVSqrzG1bKKkGrdVDeF2U+sCAICrI0AMIGer63SuvkErJg9Uz7goU2uHl8VIb0pxUVZT6wIAACDA1Jy+EB5OelHq2Mu0soVfVOne3x3VC1GdTasJAACuDQFigHGqTP2CitTTYm6AKMtJc+sBAAAgsHXsJTkHmlau1l2hk6owrR4AALh2BIgBJLTqhLZZf6bIN13N9AKRUmRs89QGAABAQCn8okq1bvMCv8LSKtNqAQCApiFADCDBtWcUaXHp+KhfK/GGgea/QGSsZEs0vy4AAAACRmmVS3GSHtyQr3+YGCBKUkRosDq0CzO1JgAAuDoCxADksvU09eciAAAAwLWqPFevOEkLxtyoTr2Gmlq7Q7swdbZFmFoTAABcnU8DxNWrV2v58uUqKSnRgAEDtGrVKg0dau6QAaB5HT9zTrUnzP12Af/PAQCgpTCPNp9Ee4R6do7xdRtoI6zlhdJJk68Dzy+wAMDDZwHi66+/rqysLK1Zs0bJyclasWKFxo4dq4KCAsXFxfmqLQDXKDoiVJK0aesOFf61wNTa50Js+u+HMggRAQDNinkU8H8N4XbVuK1K3PmgtNPc2o0hEQqa8yEhIgDIhwHiM888o1mzZum+++6TJK1Zs0Z/+tOf9PLLL+vnP/+511qXyyWX6/9uDFJRceHbTpWVlc3e5+niYyovO9Hsr2OGiuOfKM7l1pdV1S3y3wZtW3h4e5Wft+oX7tWm166pD9NHO+pVGu80vTYAXAtbx86KTejSrK9x8X+r3W53s74OjDGPNg9mUrQkd0Ss0s79UuHny02te72lWMvC/ksFOzYpJL6XqbUB4Fq0tnnU4vbB1FpXV6fIyEj9z//8jyZOnOjZP336dJWXl+utt97yWr948WItWbKkhbsEAABofsePH9d1113n6zbaHOZRAACAC65lHvXJNxDLysrU0NCg+Ph4r/3x8fH65z//ecn67OxsZWVleR43NjbqzJkzio2NlcViabY+KysrlZiYqOPHjys6OrrZXgfm49z5L86df+P8+S/OXctzu9368ssv5XTybWtfYB5Fc+Pc+TfOn//i3Pk3zl/Laso86hd3YbZarbJarV77bDZbi71+dHQ0/4frpzh3/otz5984f/6Lc9eyYmK4wYS/YB7FN8W582+cP//FufNvnL+Wc63zaFAz93FZHTt2VHBwsE6dOuW1/9SpU3I4HL5oCQAAAG0I8ygAAMC180mAGBYWpsGDB2v79u2efY2Njdq+fbtSUlJ80RIAAADaEOZRAACAa+eznzBnZWVp+vTpGjJkiIYOHaoVK1aourracxe81sBqteqxxx675OcqaP04d/6Lc+ffOH/+i3OHtoh5FM2Jc+ffOH/+i3Pn3zh/rZdP7sJ80XPPPafly5erpKREAwcO1MqVK5WcnOyrdgAAANDGMI8CAABcnU8DRAAAAAAAAACtm0+ugQgAAAAAAADAPxAgAgAAAAAAADBEgAgAAAAAAADAEAEiAAAAAAAAAEMEiAZWr16tbt26KTw8XMnJyfrggw983RKuweLFi2WxWLy23r17+7otXMbu3bs1fvx4OZ1OWSwWbdq0yeu42+3WokWLlJCQoIiICKWmpurIkSO+aRaXuNr5mzFjxiV/i2lpab5pFl5ycnJ0yy23qH379oqLi9PEiRNVUFDgtaa2tlaZmZmKjY1VVFSUMjIydOrUKR91DLRtzKT+h3nUvzCT+i/mUf/FPOqfCBAv4/XXX1dWVpYee+wxHThwQAMGDNDYsWNVWlrq69ZwDfr27avi4mLP9t577/m6JVxGdXW1BgwYoNWrV1/2+LJly7Ry5UqtWbNGe/fuVbt27TR27FjV1ta2cKe4nKudP0lKS0vz+lv83e9+14Idwkhubq4yMzO1Z88ebd26VfX19RozZoyqq6s9a+bPn68//vGPeuONN5Sbm6uTJ09q0qRJPuwaaJuYSf0X86j/YCb1X8yj/ot51E+5cYmhQ4e6MzMzPY8bGhrcTqfTnZOT48OucC0ee+wx94ABA3zdBppIkvvNN9/0PG5sbHQ7HA738uXLPfvKy8vdVqvV/bvf/c4HHeJKvn7+3G63e/r06e4JEyb4pB80TWlpqVuSOzc31+12X/hbCw0Ndb/xxhueNYcOHXJLcufl5fmqTaBNYib1T8yj/ouZ1H8xj/o35lH/wDcQv6aurk779+9XamqqZ19QUJBSU1OVl5fnw85wrY4cOSKn06nrr79e06ZN07Fjx3zdEpqoqKhIJSUlXn+HMTExSk5O5u/Qj+zatUtxcXG68cYb9cADD+j06dO+bgmXUVFRIUmy2+2SpP3796u+vt7r7693797q0qULf39AC2Im9W/Mo4GBmdT/MY/6B+ZR/0CA+DVlZWVqaGhQfHy81/74+HiVlJT4qCtcq+TkZK1bt05btmzR888/r6KiIn33u9/Vl19+6evW0AQX/9b4O/RfaWlpeuWVV7R9+3Y9+eSTys3NVXp6uhoaGnzdGr6isbFR8+bN02233aZ+/fpJuvD3FxYWJpvN5rWWvz+gZTGT+i/m0cDBTOrfmEf9A/Oo/wjxdQOAmdLT0z3/TkpKUnJysrp27arf//73mjlzpg87A9qWKVOmeP7dv39/JSUlqUePHtq1a5dGjx7tw87wVZmZmfr444+5NhcAmIh5FGgdmEf9A/Oo/+AbiF/TsWNHBQcHX3J3n1OnTsnhcPioK3xTNptNvXr1UmFhoa9bQRNc/Fvj7zBwXH/99erYsSN/i63InDlztHnzZu3cuVPXXXedZ7/D4VBdXZ3Ky8u91vP3B7QsZtLAwTzqv5hJAwvzaOvDPOpfCBC/JiwsTIMHD9b27ds9+xobG7V9+3alpKT4sDN8E1VVVTp69KgSEhJ83QqaoHv37nI4HF5/h5WVldq7dy9/h37q888/1+nTp/lbbAXcbrfmzJmjN998Uzt27FD37t29jg8ePFihoaFef38FBQU6duwYf39AC2ImDRzMo/6LmTSwMI+2Hsyj/omfMF9GVlaWpk+friFDhmjo0KFasWKFqqurdd999/m6NVzFggULNH78eHXt2lUnT57UY489puDgYE2dOtXXreFrqqqqvD79KyoqUn5+vux2u7p06aJ58+bp8ccf1w033KDu3btr4cKFcjqdmjhxou+ahseVzp/dbteSJUuUkZEhh8Oho0eP6uGHH1bPnj01duxYH3YN6cLPRNavX6+33npL7du391xHJiYmRhEREYqJidHMmTOVlZUlu92u6OhozZ07VykpKbr11lt93D3QtjCT+ifmUf/CTOq/mEf9F/Oon/L1baBbq1WrVrm7dOniDgsLcw8dOtS9Z88eX7eEazB58mR3QkKCOywszN25c2f35MmT3YWFhb5uC5exc+dOt6RLtunTp7vdbre7sbHRvXDhQnd8fLzbarW6R48e7S4oKPBt0/C40vmrqalxjxkzxt2pUyd3aGiou2vXru5Zs2a5S0pKfN023O7LnjdJ7rVr13rWnDt3zv3Tn/7U3aFDB3dkZKT77rvvdhcXF/uuaaANYyb1P8yj/oWZ1H8xj/ov5lH/ZHG73e7mjykBAAAAAAAA+COugQgAAAAAAADAEAEiAAAAAAAAAEMEiAAAAAAAAAAMESACAAAAAAAAMESACAAAAAAAAMAQASIAAAAAAAAAQwSIAAAAAAAAAAwRIAIAAAAAAAAwRIAIAAAAAAAAwBABIgAAAAAAAABDBIgAAAAAAAAADP1/A4IMEJGw7t4AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1600x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"[p for p in model.parameters if p.name == 'CMS_pf_bbenriched'][0].value = -1\n",
"print(1 + 0.5 * sfunc * ratio)\n",
"fig, axs = plt.subplots(1, 2, figsize=(16, 5))\n",
"axs[0].stairs(model['ptbin0passhighbvl']['zqq'].getExpectation(nominal=True), label='Nominal');\n",
"axs[0].stairs(model['ptbin0passhighbvl']['zqq'].getExpectation(eval=True), label='Shift Down');\n",
"axs[0].legend(title=\"Pass\")\n",
"\n",
"axs[1].stairs(model['ptbin0passlowbvl']['zqq'].getExpectation(nominal=True), label='Nominal');\n",
"axs[1].stairs(model['ptbin0passlowbvl']['zqq'].getExpectation(eval=True), label='Shift Down');\n",
"axs[1].legend(title=\"Fail\")\n",
"\n",
"a = model['ptbin0passhighbvl']['zqq'].getExpectation(nominal=True).sum() + model['ptbin0passlowbvl']['zqq'].getExpectation(nominal=True).sum()\n",
"b = model['ptbin0passhighbvl']['zqq'].getExpectation(eval=True).sum() + model['ptbin0passlowbvl']['zqq'].getExpectation(eval=True).sum()\n",
"print(a, b)"
]
},
{
"cell_type": "code",
"execution_count": 578,
"id": "054a04ed",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"999.9997133484281 1085.4996888397188\n"
]
},
{
"data": {
"image/png": "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6oknnvDYf+WVV+qhhx7SXXfdpcjISPXq1Ut//vOf9eWXX2rKlCmKjIzUkCFD9MEHH7hfc/4lI8uXL9ewYcP0n//5n7ryyisVHR2t6dOn66uvvnKv2b59u0aPHi2bzabY2FjdeuutOnz4sHn/MQAAANDumEcvTasDxGuuuUYHDhzQvn37NG/ePM2cOVMHDx5si97csrOzVVVV5X6UlZW16fsBAIC2ERQUpEceeURr1qzRP//5zwv2FxUV6cc//rGmT5+ujz/+WMuXL9eSJUu0YcMGj3VPPfWURo0apf/+7//WpEmTdOedd+quu+7ST3/6U3344Ye6+uqrddddd8nlchn2cvjwYW3dulXbtm3Ttm3bVFBQ4HE5S21trbKysvTBBx8oPz9fgYGBuu2229Tc3Gzafw8AAAC0L+bRSxPc2heEhoaqd+/ekqThw4fr/fff19NPP63bb79dDQ0Nqqys9EhUy8vLZbfbJUl2u1379+/3qHfuV5rPrWmJxWKRxWJpbasAAHQapxuadPjLmnZ/36u7R8oaGtSq19x2220aNmyYli1bpueff95j35NPPqlx48ZpyZIlkqS+ffvq4MGDeuyxxzRr1iz3ultuuUU///nPJUlLly7V2rVrNWLECP3oRz+SJN1///1KTU31mEPO19zcrA0bNqhLly6SpDvvvFP5+fl6+OGHJUkZGRke63//+9+re/fuOnjwoAYNGtSqzwwAAODvmEf9ex5tdYB4vubmZjmdTg0fPlwhISHKz893f8Di4mIdOXJEqampkqTU1FQ9/PDDqqiocF/3vWPHDkVFRWnAgAGX2woAAJ3W4S9rdOuad9r9fbctGK1BPaJb/bpHH31UY8eO1T333OOx/bPPPtOUKVM8to0aNUqrVq1SU1OTgoLODodDhgxx7z93O5TBgwdfsK2iosJwYLvyyivdw5okJSQkqKKiwv38888/19KlS7Vv3z4dP37c/ZfeI0eOECACAACch3nUv+fRVgWI2dnZmjhxonr27KmvvvpKGzdu1O7du/Xmm28qOjpas2fPVlZWlmJiYhQVFaUFCxYoNTVV119/vSRp/PjxGjBggO68806tXLlSDodDDzzwgDIzMznDEACAy3B190htWzDaK+97KW688Ualp6crOzvb4y+5FyskJMT973O/mNfStm+7vOOb68+95pvrJ0+erF69eum5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",
"text/plain": [
"<Figure size 1600x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"[p for p in model.parameters if p.name == 'CMS_pf_bbenriched'][0].value = 1\n",
"# print(1 - 0.5 * sfunc * ratio)\n",
"fig, axs = plt.subplots(1, 2, figsize=(16, 5))\n",
"axs[0].stairs(model['ptbin0passhighbvl']['zqq'].getExpectation(nominal=True), label='Nominal');\n",
"axs[0].stairs(model['ptbin0passhighbvl']['zqq'].getExpectation(eval=True), label='Shift Up');\n",
"axs[0].legend(title=\"Pass\")\n",
"\n",
"axs[1].stairs(model['ptbin0passlowbvl']['zqq'].getExpectation(nominal=True), label='Nominal');\n",
"axs[1].stairs(model['ptbin0passlowbvl']['zqq'].getExpectation(eval=True), label='Shift Up');\n",
"axs[1].legend(title='Fail')\n",
"\n",
"a = model['ptbin0passhighbvl']['zqq'].getExpectation(nominal=True).sum() + model['ptbin0passlowbvl']['zqq'].getExpectation(nominal=True).sum()\n",
"b = model['ptbin0passhighbvl']['zqq'].getExpectation(eval=True).sum() + model['ptbin0passlowbvl']['zqq'].getExpectation(eval=True).sum()\n",
"print(a, b)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6488c85e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "7cca4431",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "699795a4",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "49dc78e3",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:combine]",
"language": "python",
"name": "conda-env-combine-py"
},
"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.10.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment