{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Template fits\n", "\n", "In applications we are interested in separating a signal component from background components, we often fit parameteric models to data. Sometimes constructing a parametric model for some component is difficult. In that case, one fits a template instead which may be obtained from simulation or from a calibration sample in which a pure component can be isolated.\n", "\n", "The challenge then is to propagate the uncertainty of the template into the result. The template is now also estimated from a sample (be it simulated or a calibration sample), and the uncertainty associated to that can be substantial. We investigate different approaches for template fits, including the Barlow-Beeston and Barlow-Beeston-lite methods.\n", "\n", "**Note:** This work has been published: [H. Dembinski, A. Abdelmotteleb, Eur.Phys.J.C 82 (2022) 11, 1043](https://doi.org/10.1140/epjc/s10052-022-11019-z)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from iminuit import Minuit\n", "from iminuit.cost import poisson_chi2, Template, ExtendedBinnedNLL\n", "import numpy as np\n", "from scipy.stats import norm, truncexpon\n", "from scipy.optimize import root_scalar, minimize\n", "import matplotlib.pyplot as plt\n", "from IPython.display import display\n", "from collections import defaultdict\n", "from joblib import Parallel, delayed" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a toy example, we generate a mixture of two components: a normally distributed signal and exponentially distributed background." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def generate(rng, nmc, truth, bins):\n", " xe = np.linspace(0, 2, bins + 1)\n", " b = np.diff(truncexpon(1, 0, 2).cdf(xe))\n", " s = np.diff(norm(1, 0.1).cdf(xe))\n", " n = rng.poisson(b * truth[0]) + rng.poisson(s * truth[1])\n", " t = np.array([rng.poisson(b * nmc), rng.poisson(s * nmc)])\n", " return xe, n, t\n", "\n", "rng = np.random.default_rng(1)\n", "truth = 750, 250\n", "xe, n, t = generate(rng, 100, truth, 15)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Data is visualized on the left-hand side. The templates are shown on the right-hand side. To show the effect of uncertainties in the template, this example intentially uses templates with poor statistical resolution." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAFfCAYAAABgPnIwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAr10lEQVR4nO3df1RU953/8dcg8mPVGTK0zsAREtoasRp/RCOOuq1REqKu1SO7qTmssSmrbRZMkN0YOScqsUlJslm1WtQkx2KyK2vjaSXVbPEYVFwTMAq6a9QlmlClNTOc1sIIKSOR+/2j38x2IiRBZhjgPh/n3HM6n/uZD++5mfDpK597P1gMwzAEAAAAAANcRLgLAAAAAIDeQPgBAAAAYAqEHwAAAACmQPgBAAAAYAqEHwAAAACmQPgBAAAAYAqEHwAAAACmEBnuAm5FR0eHrly5omHDhslisYS7HAAwDcMwdO3aNSUmJioigv9+9peYmwAgPLozN/XL8HPlyhUlJSWFuwwAMK2GhgaNGDEi3GX0KcxNABBeX2Zu6pfhZ9iwYZL+/AGtVmuYqwEA8/B6vUpKSvL/Hsb/YW4CgPDoztzUL8PPp7cTWK1WJhgACANu67oZcxMAhNeXmZu4YRsAAACAKRB+AAAAAJgC4QcAAACAKRB+AAAAAJgC4QcAAACAKRB+AAAAAJgC4QcAAACAKRB+AAAAAJgC4QcAAACAKRB+AAAAAJgC4QcAAACAKRB+AAAAAJhCZLgLAAaSwsLCfjEmAMAkDheFZtx7C0IzLhBirPwAAAAAMAXCDwAAAABTIPwAAAAAMIVuh5+jR49q/vz5SkxMlMViUVlZWZd9f/jDH8pisWjTpk0B7VevXlVWVpasVqvi4uKUnZ2tlpaW7pYCAAAAAF9at8NPa2urxo8fr+Li4s/tt3fvXlVXVysxMfGmc1lZWTp79qwOHjyo/fv36+jRo1q+fHl3SwEAAACAL63bu73NmTNHc+bM+dw+v/vd77RixQodOHBA8+bNCzh3/vx5lZeX68SJE5o8ebIkacuWLZo7d65efPHFTsMSAAAAAPRU0J/56ejo0JIlS/TEE09ozJgxN52vqqpSXFycP/hIUnp6uiIiInT8+PFOx/T5fPJ6vQEHAABfVmFhoSwWS8CRmprqP9/W1qacnBzFx8dr6NChyszMlMfjCWPFAIBQCHr4ef755xUZGanHHnus0/Nut1vDhw8PaIuMjJTdbpfb7e70PUVFRbLZbP4jKSkp2GUDAAa4MWPG6KOPPvIfx44d859buXKl9u3bpz179qiyslJXrlzRokWLwlgtACAUgvpHTmtqavSTn/xEtbW1slgsQRu3oKBA+fn5/tder5cABADolsjISDmdzpvam5ubtWPHDpWWlmrWrFmSpJKSEo0ePVrV1dWaOnVqb5cKAAiRoK78/Nd//ZcaGxuVnJysyMhIRUZG6tKlS/qnf/on3XHHHZIkp9OpxsbGgPd98sknunr1aqeTkiRFR0fLarUGHAAAdMeFCxeUmJior33ta8rKytLly5cl/fk/3LW3tys9Pd3fNzU1VcnJyaqqqupyPG7JBoD+J6jhZ8mSJfqf//kfnT592n8kJibqiSee0IEDByRJLpdLTU1Nqqmp8b/v0KFD6ujoUFpaWjDLAQBAkpSWlqadO3eqvLxc27ZtU319vf76r/9a165dk9vtVlRUlOLi4gLe43A4urwdW+KWbADoj7p921tLS4suXrzof11fX6/Tp0/LbrcrOTlZ8fHxAf0HDx4sp9OpUaNGSZJGjx6tBx54QMuWLdP27dvV3t6u3NxcLV68mJ3eAAAh8Ze7lI4bN05paWm6/fbb9frrrys2NvaWxuSWbADof7q98nPy5ElNnDhREydOlCTl5+dr4sSJWrt27ZceY9euXUpNTdXs2bM1d+5czZgxQy+//HJ3SwEA4JbExcXpzjvv1MWLF+V0OnX9+nU1NTUF9PF4PF3eji1xSzYA9EfdXvmZOXOmDMP40v1/85vf3NRmt9tVWlra3R8NAEBQtLS06IMPPtCSJUs0adIkDR48WBUVFcrMzJQk1dXV6fLly3K5XGGuFAAQTEHd7Q0AgL7on//5nzV//nzdfvvtunLlitatW6dBgwbpoYceks1mU3Z2tvLz82W322W1WrVixQq5XC52egOAAYbwAwAY8H7729/qoYce0h/+8Ad99atf1YwZM1RdXa2vfvWrkqSNGzcqIiJCmZmZ8vl8ysjI0NatW8NcNQAg2Ag/AIABb/fu3Z97PiYmRsXFxSouLu6ligAA4RDUra4BAAAAoK8i/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFMg/AAAAAAwBcIPAAAAAFPodvg5evSo5s+fr8TERFksFpWVlfnPtbe368knn9Rdd92lIUOGKDExUQ8//LCuXLkSMMbVq1eVlZUlq9WquLg4ZWdnq6WlpccfBgAAAAC60u3w09raqvHjx6u4uPimcx9//LFqa2u1Zs0a1dbW6pe//KXq6ur0ne98J6BfVlaWzp49q4MHD2r//v06evSoli9ffuufAgAAAAC+QGR33zBnzhzNmTOn03M2m00HDx4MaPvpT3+qKVOm6PLly0pOTtb58+dVXl6uEydOaPLkyZKkLVu2aO7cuXrxxReVmJh4Cx8DAAAAAD5fyJ/5aW5ulsViUVxcnCSpqqpKcXFx/uAjSenp6YqIiNDx48c7HcPn88nr9QYcAAAAANAdIQ0/bW1tevLJJ/XQQw/JarVKktxut4YPHx7QLzIyUna7XW63u9NxioqKZLPZ/EdSUlIoywYAAAAwAIUs/LS3t+vBBx+UYRjatm1bj8YqKChQc3Oz/2hoaAhSlQAAAADMotvP/HwZnwafS5cu6dChQ/5VH0lyOp1qbGwM6P/JJ5/o6tWrcjqdnY4XHR2t6OjoUJQKAAAAwCSCvvLzafC5cOGC3nrrLcXHxwecd7lcampqUk1Njb/t0KFD6ujoUFpaWrDLAQAAAABJt7Dy09LSoosXL/pf19fX6/Tp07Lb7UpISNDf/u3fqra2Vvv379eNGzf8z/HY7XZFRUVp9OjReuCBB7Rs2TJt375d7e3tys3N1eLFi9npDQAAAEDIdDv8nDx5Uvfee6//dX5+viRp6dKlKiws1K9+9StJ0oQJEwLed/jwYc2cOVOStGvXLuXm5mr27NmKiIhQZmamNm/efIsfAQAAAAC+WLfDz8yZM2UYRpfnP+/cp+x2u0pLS7v7owEAAADgloX87/wAAAAAQF9A+AEAAABgCoQfAAAAAKZA+AEAAABgCoQfAAAAAKZA+AEAAABgCoQfAAAAAKZA+AEAAABgCoQfAICpPPfcc7JYLMrLy/O3tbW1KScnR/Hx8Ro6dKgyMzPl8XjCVyQAICQiw10AEA6FhYXhLgFAGJw4cUIvvfSSxo0bF9C+cuVKvfnmm9qzZ49sNptyc3O1aNEivf3222GqFAAQCqz8AABMoaWlRVlZWXrllVd02223+dubm5u1Y8cObdiwQbNmzdKkSZNUUlKid955R9XV1WGsGAAQbIQfAIAp5OTkaN68eUpPTw9or6mpUXt7e0B7amqqkpOTVVVV1eV4Pp9PXq834AAA9G3c9gYAGPB2796t2tpanThx4qZzbrdbUVFRiouLC2h3OBxyu91djllUVKSnn3462KUCAEKIlR8AwIDW0NCgxx9/XLt27VJMTEzQxi0oKFBzc7P/aGhoCNrYAIDQIPwAAAa0mpoaNTY26u6771ZkZKQiIyNVWVmpzZs3KzIyUg6HQ9evX1dTU1PA+zwej5xOZ5fjRkdHy2q1BhwAgL6N294AAAPa7NmzdebMmYC2Rx55RKmpqXryySeVlJSkwYMHq6KiQpmZmZKkuro6Xb58WS6XKxwlAwBChPADABjQhg0bprFjxwa0DRkyRPHx8f727Oxs5efny263y2q1asWKFXK5XJo6dWo4SgYAhAjhBwBgehs3blRERIQyMzPl8/mUkZGhrVu3hrssAECQEX4AAKZz5MiRgNcxMTEqLi5WcXFxeAoCAPQKNjwAAAAAYAqEHwAAAACmQPgBAAAAYAqEHwAAAACmQPgBAAAAYAqEHwAAAACmQPgBAAAAYAqEHwAAAACmQPgBAAAAYAqEHwAAAACmQPgBAAAAYArdDj9Hjx7V/PnzlZiYKIvForKysoDzhmFo7dq1SkhIUGxsrNLT03XhwoWAPlevXlVWVpasVqvi4uKUnZ2tlpaWHn0QAAAAAPg83Q4/ra2tGj9+vIqLizs9/8ILL2jz5s3avn27jh8/riFDhigjI0NtbW3+PllZWTp79qwOHjyo/fv36+jRo1q+fPmtfwoAAAAA+AKR3X3DnDlzNGfOnE7PGYahTZs26amnntKCBQskSa+99pocDofKysq0ePFinT9/XuXl5Tpx4oQmT54sSdqyZYvmzp2rF198UYmJiT34OAAAAADQuaA+81NfXy+326309HR/m81mU1pamqqqqiRJVVVViouL8wcfSUpPT1dERISOHz/e6bg+n09erzfgAAAAAIDuCGr4cbvdkiSHwxHQ7nA4/OfcbreGDx8ecD4yMlJ2u93f57OKiopks9n8R1JSUjDLBgAAAGAC/WK3t4KCAjU3N/uPhoaGcJcEAAAAoJ8JavhxOp2SJI/HE9Du8Xj855xOpxobGwPOf/LJJ7p69aq/z2dFR0fLarUGHAAAAADQHUENPykpKXI6naqoqPC3eb1eHT9+XC6XS5LkcrnU1NSkmpoaf59Dhw6po6NDaWlpwSwHAAAAAPy6vdtbS0uLLl686H9dX1+v06dPy263Kzk5WXl5eXrmmWc0cuRIpaSkaM2aNUpMTNTChQslSaNHj9YDDzygZcuWafv27Wpvb1dubq4WL17MTm8AAAAAQqbb4efkyZO69957/a/z8/MlSUuXLtXOnTu1atUqtba2avny5WpqatKMGTNUXl6umJgY/3t27dql3NxczZ49WxEREcrMzNTmzZuD8HEAAAAAoHPdDj8zZ86UYRhdnrdYLFq/fr3Wr1/fZR+73a7S0tLu/mgAAAAAuGX9Yrc3AAAAAOgpwg8AAAAAUyD8AAAAADCFbj/zA6B3FRYW9osxAQAA+jpWfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYAuEHADDgbdu2TePGjZPVapXVapXL5dKvf/1r//m2tjbl5OQoPj5eQ4cOVWZmpjweTxgrBgCEAuEHADDgjRgxQs8995xqamp08uRJzZo1SwsWLNDZs2clSStXrtS+ffu0Z88eVVZW6sqVK1q0aFGYqwYABFtkuAsAACDU5s+fH/D62Wef1bZt21RdXa0RI0Zox44dKi0t1axZsyRJJSUlGj16tKqrqzV16tRwlAwACAFWfgAApnLjxg3t3r1bra2tcrlcqqmpUXt7u9LT0/19UlNTlZycrKqqqi7H8fl88nq9AQcAoG8j/AAATOHMmTMaOnSooqOj9cMf/lB79+7VN7/5TbndbkVFRSkuLi6gv8PhkNvt7nK8oqIi2Ww2/5GUlBTiTwAA6CnCDwDAFEaNGqXTp0/r+PHjevTRR7V06VKdO3fulscrKChQc3Oz/2hoaAhitQCAUOCZHwCAKURFRekb3/iGJGnSpEk6ceKEfvKTn+i73/2url+/rqampoDVH4/HI6fT2eV40dHRio6ODnXZAIAgCvrKz40bN7RmzRqlpKQoNjZWX//61/WjH/1IhmH4+xiGobVr1yohIUGxsbFKT0/XhQsXgl0KAABd6ujokM/n06RJkzR48GBVVFT4z9XV1eny5ctyuVxhrBAAEGxBX/l5/vnntW3bNr366qsaM2aMTp48qUceeUQ2m02PPfaYJOmFF17Q5s2b9eqrryolJUVr1qxRRkaGzp07p5iYmGCXBAAwuYKCAs2ZM0fJycm6du2aSktLdeTIER04cEA2m03Z2dnKz8+X3W6X1WrVihUr5HK52OkNAAaYoIefd955RwsWLNC8efMkSXfccYf+4z/+Q++++66kP6/6bNq0SU899ZQWLFggSXrttdfkcDhUVlamxYsX3zSmz+eTz+fzv2ZHHQBAdzQ2Nurhhx/WRx99JJvNpnHjxunAgQO67777JEkbN25URESEMjMz5fP5lJGRoa1bt4a5agBAsAX9trdp06apoqJC77//viTpv//7v3Xs2DHNmTNHklRfXy+32x2wpajNZlNaWlqXW4qyow4AoCd27Nih3/zmN/L5fGpsbNRbb73lDz6SFBMTo+LiYl29elWtra365S9/+bnP+wAA+qegr/ysXr1aXq9XqampGjRokG7cuKFnn31WWVlZkuTfNtThcAS87/O2FC0oKFB+fr7/tdfrJQABAAAA6Jagh5/XX39du3btUmlpqcaMGaPTp08rLy9PiYmJWrp06S2NyY46AAAAAHoq6OHniSee0OrVq/3P7tx11126dOmSioqKtHTpUv9tBB6PRwkJCf73eTweTZgwIdjlAAAAAICkEDzz8/HHHysiInDYQYMGqaOjQ5KUkpIip9MZsKWo1+vV8ePH2VIUAAAAQMgEfeVn/vz5evbZZ5WcnKwxY8bo1KlT2rBhg77//e9LkiwWi/Ly8vTMM89o5MiR/q2uExMTtXDhwmCXAwAAAACSQhB+tmzZojVr1ugf//Ef1djYqMTERP3gBz/Q2rVr/X1WrVql1tZWLV++XE1NTZoxY4bKy8t79W/8FBYW9osxAQAAAARH0MPPsGHDtGnTJm3atKnLPhaLRevXr9f69euD/eMBAAAAoFNBDz8IPlapAAAAgJ4L+oYHAAAAANAXEX4AAAAAmALhBwAAAIApEH4AAAAAmALhBwAAAIApEH4AAAAAmALhBwAAAIApEH4AAAAAmALhBwAAAIApEH4AAAAAmALhBwAAAIApEH4AAAAAmALhBwAAAIApRIa7AAAAAPQzh4uCP+a9BcEfE/gMVn4AAAAAmALhBwAAAIApEH4AAAAAmALhBwAAAIApsOFBEBUWFoa7BAAAAABdYOUHAAAAgCkQfgAAAACYAuEHAAAAgCnwzA+CKhTPPfEsFQAAAIKBlR8AAAAApsDKj0mxmgIAAACzYeUHAAAAgCkQfgAAAACYAuEHAAAAgCmEJPz87ne/09///d8rPj5esbGxuuuuu3Ty5En/ecMwtHbtWiUkJCg2Nlbp6em6cOFCKEoBAAAAAEkhCD9//OMfNX36dA0ePFi//vWvde7cOf3rv/6rbrvtNn+fF154QZs3b9b27dt1/PhxDRkyRBkZGWprawt2OQAAAAAgKQS7vT3//PNKSkpSSUmJvy0lJcX/vw3D0KZNm/TUU09pwYIFkqTXXntNDodDZWVlWrx4cbBLAgAAAIDgr/z86le/0uTJk/V3f/d3Gj58uCZOnKhXXnnFf76+vl5ut1vp6en+NpvNprS0NFVVVXU6ps/nk9frDTgAAAAAoDuCHn4+/PBDbdu2TSNHjtSBAwf06KOP6rHHHtOrr74qSXK73ZIkh8MR8D6Hw+E/91lFRUWy2Wz+IykpKdhlAwAAABjggh5+Ojo6dPfdd+vHP/6xJk6cqOXLl2vZsmXavn37LY9ZUFCg5uZm/9HQ0BDEigEAAACYQdDDT0JCgr75zW8GtI0ePVqXL1+WJDmdTkmSx+MJ6OPxePznPis6OlpWqzXgAAAAAIDuCHr4mT59uurq6gLa3n//fd1+++2S/rz5gdPpVEVFhf+81+vV8ePH5XK5gl0OAAAAAEgKwW5vK1eu1LRp0/TjH/9YDz74oN599129/PLLevnllyVJFotFeXl5euaZZzRy5EilpKRozZo1SkxM1MKFC4NdDgaAwsLCcJcAAACAASDo4eeee+7R3r17VVBQoPXr1yslJUWbNm1SVlaWv8+qVavU2tqq5cuXq6mpSTNmzFB5ebliYmKCXQ4AAAAASArBbW+S9Dd/8zc6c+aM2tradP78eS1btizgvMVi0fr16+V2u9XW1qa33npLd955ZyhKAQBARUVFuueeezRs2DANHz5cCxcuvOkW7ba2NuXk5Cg+Pl5Dhw5VZmbmTc+nAgD6t5CEHwAA+pLKykrl5OSourpaBw8eVHt7u+6//361trb6+6xcuVL79u3Tnj17VFlZqStXrmjRokVhrBoAEGxBv+0NAIC+pry8POD1zp07NXz4cNXU1Ohb3/qWmpubtWPHDpWWlmrWrFmSpJKSEo0ePVrV1dWaOnXqTWP6fD75fD7/a/4ANwD0faz8AABMp7m5WZJkt9slSTU1NWpvb1d6erq/T2pqqpKTk1VVVdXpGPwBbgDofwg/AABT6ejoUF5enqZPn66xY8dKktxut6KiohQXFxfQ1+FwyO12dzoOf4AbAPofbnsDAJhKTk6O3nvvPR07dqxH40RHRys6OjpIVQEAegMrPwAA08jNzdX+/ft1+PBhjRgxwt/udDp1/fp1NTU1BfT3eDxyOp29XCUAIFQIPwCAAc8wDOXm5mrv3r06dOiQUlJSAs5PmjRJgwcPVkVFhb+trq5Oly9flsvl6u1yAQAhwm1vAIABLycnR6WlpXrjjTc0bNgw/3M8NptNsbGxstlsys7OVn5+vux2u6xWq1asWCGXy9XpTm8AgP6J8AMAGPC2bdsmSZo5c2ZAe0lJib73ve9JkjZu3KiIiAhlZmbK5/MpIyNDW7du7eVKYWqHi8JdATDgEX4AAAOeYRhf2CcmJkbFxcUqLi7uhYoAAOHAMz8AAAAATIHwAwAAAMAUCD8AAAAATIHwAwAAAMAUCD8AAAAATIHd3gATKiws7FfjAgAABAMrPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBRCHn6ee+45WSwW5eXl+dva2tqUk5Oj+Ph4DR06VJmZmfJ4PKEuBQAAAICJhTT8nDhxQi+99JLGjRsX0L5y5Urt27dPe/bsUWVlpa5cuaJFixaFshQAAAAAJhey8NPS0qKsrCy98soruu222/ztzc3N2rFjhzZs2KBZs2Zp0qRJKikp0TvvvKPq6upQlQMAAADA5EIWfnJycjRv3jylp6cHtNfU1Ki9vT2gPTU1VcnJyaqqqup0LJ/PJ6/XG3AAAAAAQHdEhmLQ3bt3q7a2VidOnLjpnNvtVlRUlOLi4gLaHQ6H3G53p+MVFRXp6aefDkWpAIKosLCwX4wJAADMKegrPw0NDXr88ce1a9cuxcTEBGXMgoICNTc3+4+GhoagjAsAAADAPIIefmpqatTY2Ki7775bkZGRioyMVGVlpTZv3qzIyEg5HA5dv35dTU1NAe/zeDxyOp2djhkdHS2r1RpwAAAAAEB3BP22t9mzZ+vMmTMBbY888ohSU1P15JNPKikpSYMHD1ZFRYUyMzMlSXV1dbp8+bJcLlewywEAAAAASSEIP8OGDdPYsWMD2oYMGaL4+Hh/e3Z2tvLz82W322W1WrVixQq5XC5NnTo12OUAAAAAgKQQbXjwRTZu3KiIiAhlZmbK5/MpIyNDW7duDUcpAAAAAEyiV8LPkSNHAl7HxMSouLhYxcXFvfHjAfRj7CAHAACCJWR/5wcAAAAA+pKw3PYGAOEUqpUfVpQAAOjbWPkBAAAAYAqEHwAAAACmQPgBAAAAYAo88wMAQcLOdAAA9G2s/AAAAAAwBVZ+AADAgLXx4PshGXflfXeGZFwAocXKDwAAAABTIPwAAAAAMAXCDwAAAABTIPwAAAAAMAU2PAAAYADjgX8A+D+s/AAAAAAwBcIPAGDAO3r0qObPn6/ExERZLBaVlZUFnDcMQ2vXrlVCQoJiY2OVnp6uCxcuhKdYAEDIcNsbAPRhhYWF/WLMvq61tVXjx4/X97//fS1atOim8y+88II2b96sV199VSkpKVqzZo0yMjJ07tw5xcTEhKFiAEAoEH4AAAPenDlzNGfOnE7PGYahTZs26amnntKCBQskSa+99pocDofKysq0ePHi3iwVABBC3PYGADC1+vp6ud1upaen+9tsNpvS0tJUVVXV5ft8Pp+8Xm/AAQDo21j5AQCYmtvtliQ5HI6AdofD4T/XmaKiIj399NMhrQ3oq6o+/EPQx3TdG/QhgZuw8gMAwC0oKChQc3Oz/2hoaAh3SQCAL0D4AQCYmtPplCR5PJ6Ado/H4z/XmejoaFmt1oADANC3EX4AAKaWkpIip9OpiooKf5vX69Xx48flcrnCWBkAINh45gcAMOC1tLTo4sWL/tf19fU6ffq07Ha7kpOTlZeXp2eeeUYjR470b3WdmJiohQsXhq9oAEDQEX4AAAPeyZMnde+9//c0dX5+viRp6dKl2rlzp1atWqXW1lYtX75cTU1NmjFjhsrLy/kbPwAwwBB+AAAD3syZM2UYRpfnLRaL1q9fr/Xr1/diVUCgkOyg9rX4oI8J9Gc88wMAAADAFAg/AAAAAEyB8AMAAADAFAg/AAAAAEyB8AMAAADAFIIefoqKinTPPfdo2LBhGj58uBYuXKi6urqAPm1tbcrJyVF8fLyGDh2qzMzMm/6yNgAAAAAEU9DDT2VlpXJyclRdXa2DBw+qvb1d999/v1pbW/19Vq5cqX379mnPnj2qrKzUlStXtGjRomCXAgAAAAB+Qf87P+Xl5QGvd+7cqeHDh6umpkbf+ta31NzcrB07dqi0tFSzZs2SJJWUlGj06NGqrq7W1KlTg10SAAAAAIT+mZ/m5mZJkt1ulyTV1NSovb1d6enp/j6pqalKTk5WVVVVp2P4fD55vd6AAwAAAAC6I6Thp6OjQ3l5eZo+fbrGjh0rSXK73YqKilJcXFxAX4fDIbfb3ek4RUVFstls/iMpKSmUZQMAAAAYgIJ+29tfysnJ0Xvvvadjx471aJyCggLl5+f7X3u9XgIQAABhtPHg+0Efc+V9dwZ9TJhbKL6nUmi+q/w71TtCFn5yc3O1f/9+HT16VCNGjPC3O51OXb9+XU1NTQGrPx6PR06ns9OxoqOjFR0dHapSAQAAAJhA0G97MwxDubm52rt3rw4dOqSUlJSA85MmTdLgwYNVUVHhb6urq9Ply5flcrmCXQ4AAAAASArByk9OTo5KS0v1xhtvaNiwYf7neGw2m2JjY2Wz2ZSdna38/HzZ7XZZrVatWLFCLpeLnd4AAAAAhEzQw8+2bdskSTNnzgxoLykp0fe+9z1J0saNGxUREaHMzEz5fD5lZGRo69atwS4FAAAAAPyCHn4Mw/jCPjExMSouLlZxcXGwfzwAAP1WqB7OBmBO/WnDh94S8r/zAwAAAAB9AeEHAAAAgCkQfgAAAACYAuEHAAAAgCkQfgAAAACYQtB3ewMAABjoQrGLFn/tsP9gZ8b+i5UfAAAAAKZA+AEAAABgCoQfAAAAAKZA+AEAAABgCoQfAAAAAKbAbm8AAKBPYAet4Kv68A/hLuFL458/egMrPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQIPwAAAABMgfADAAAAwBQiw10AAABAfzP18svhLgHALWDlBwAAAIApEH4AAAAAmALhBwAAAIApEH4AAAAAmALhBwAAAIApsNsbAAAAwi4UO+hVJy8P+pjo31j5AQAAAGAKYQ0/xcXFuuOOOxQTE6O0tDS9++674SwHAGByzEsAMLCFLfz8/Oc/V35+vtatW6fa2lqNHz9eGRkZamxsDFdJAAATY14CgIEvbM/8bNiwQcuWLdMjjzwiSdq+fbvefPNN/exnP9Pq1asD+vp8Pvl8Pv/r5uZmSZLX673ln/+X4wGAmfTkd+en7zUMI1jl9BndmZek0MxNba0tt/xe9K7WP/H/I/oD/p0KjZ78nguFbs1NRhj4fD5j0KBBxt69ewPaH374YeM73/nOTf3XrVtnSOLg4ODg6CNHQ0NDL80YvaO785JhMDdxcHBw9LXjy8xNYVn5+f3vf68bN27I4XAEtDscDv3v//7vTf0LCgqUn5/vf93R0aGrV68qPj5eFoul2z/f6/UqKSlJDQ0Nslqt3f8AJsf16xmuX89w/Xqmp9fPMAxdu3ZNiYmJIagufLo7L0nMTX0N169nuH49w/Xrmd6cm/rFVtfR0dGKjo4OaIuLi+vxuFarlS9oD3D9eobr1zNcv57pyfWz2WxBrqZ/Ym7qm7h+PcP16xmuX8/0xtwUlg0PvvKVr2jQoEHyeDwB7R6PR06nMxwlAQBMjHkJAMwhLOEnKipKkyZNUkVFhb+to6NDFRUVcrlc4SgJAGBizEsAYA5hu+0tPz9fS5cu1eTJkzVlyhRt2rRJra2t/l12Qik6Olrr1q276XYFfDlcv57h+vUM169nuH5dC+e8JPHPpqe4fj3D9esZrl/P9Ob1sxhG+PYr/elPf6p/+Zd/kdvt1oQJE7R582alpaWFqxwAgMkxLwHAwBbW8AMAAAAAvSUsz/wAAAAAQG8j/AAAAAAwBcIPAAAAAFMg/AAAAAAwhQEbfoqLi3XHHXcoJiZGaWlpevfddz+3/549e5SamqqYmBjddddd+s///M9eqrRv6s7127lzpywWS8ARExPTi9X2LUePHtX8+fOVmJgoi8WisrKyL3zPkSNHdPfddys6Olrf+MY3tHPnzpDX2Vd19/odOXLkpu+fxWKR2+3unYL7kKKiIt1zzz0aNmyYhg8froULF6quru4L38fvv97D3NQzzE23jrmpZ5ibbl1fm5sGZPj5+c9/rvz8fK1bt061tbUaP368MjIy1NjY2Gn/d955Rw899JCys7N16tQpLVy4UAsXLtR7773Xy5X3Dd29fpJktVr10Ucf+Y9Lly71YsV9S2trq8aPH6/i4uIv1b++vl7z5s3Tvffeq9OnTysvL0//8A//oAMHDoS40r6pu9fvU3V1dQHfweHDh4eowr6rsrJSOTk5qq6u1sGDB9Xe3q77779fra2tXb6H33+9h7mpZ5ibeoa5qWeYm25dn5ubjAFoypQpRk5Ojv/1jRs3jMTERKOoqKjT/g8++KAxb968gLa0tDTjBz/4QUjr7Ku6e/1KSkoMm83WS9X1L5KMvXv3fm6fVatWGWPGjAlo++53v2tkZGSEsLL+4ctcv8OHDxuSjD/+8Y+9UlN/0tjYaEgyKisru+zD77/ew9zUM8xNwcPc1DPMTT0T7rlpwK38XL9+XTU1NUpPT/e3RUREKD09XVVVVZ2+p6qqKqC/JGVkZHTZfyC7lesnSS0tLbr99tuVlJSkBQsW6OzZs71R7oDA9y84JkyYoISEBN133316++23w11On9Dc3CxJstvtXfbh+9c7mJt6hrmp9/H9Cw7mppuFe24acOHn97//vW7cuCGHwxHQ7nA4urzP0u12d6v/QHYr12/UqFH62c9+pjfeeEP//u//ro6ODk2bNk2//e1ve6Pkfq+r75/X69Wf/vSnMFXVfyQkJGj79u36xS9+oV/84hdKSkrSzJkzVVtbG+7Swqqjo0N5eXmaPn26xo4d22U/fv/1DuamnmFu6n3MTT3D3NS5vjA3RfZ4BJiey+WSy+Xyv542bZpGjx6tl156ST/60Y/CWBnMYNSoURo1apT/9bRp0/TBBx9o48aN+rd/+7cwVhZeOTk5eu+993Ts2LFwlwKEBXMTwom5qXN9YW4acCs/X/nKVzRo0CB5PJ6Ado/HI6fT2el7nE5nt/oPZLdy/T5r8ODBmjhxoi5evBiKEgecrr5/VqtVsbGxYaqqf5syZYqpv3+5ubnav3+/Dh8+rBEjRnxuX37/9Q7mpp5hbup9zE3Bx9zUN+amARd+oqKiNGnSJFVUVPjbOjo6VFFREfBfgP6Sy+UK6C9JBw8e7LL/QHYr1++zbty4oTNnzighISFUZQ4ofP+C7/Tp06b8/hmGodzcXO3du1eHDh1SSkrKF76H71/vYG7qGeam3sf3L/iYm/rI3NTjLRP6oN27dxvR0dHGzp07jXPnzhnLly834uLiDLfbbRiGYSxZssRYvXq1v//bb79tREZGGi+++KJx/vx5Y926dcbgwYONM2fOhOsjhFV3r9/TTz9tHDhwwPjggw+MmpoaY/HixUZMTIxx9uzZcH2EsLp27Zpx6tQp49SpU4YkY8OGDcapU6eMS5cuGYZhGKtXrzaWLFni7//hhx8af/VXf2U88cQTxvnz543i4mJj0KBBRnl5ebg+Qlh19/pt3LjRKCsrMy5cuGCcOXPGePzxx42IiAjjrbfeCtdHCJtHH33UsNlsxpEjR4yPPvrIf3z88cf+Pvz+Cx/mpp5hbuoZ5qaeYW66dX1tbhqQ4ccwDGPLli1GcnKyERUVZUyZMsWorq72n/v2t79tLF26NKD/66+/btx5551GVFSUMWbMGOPNN9/s5Yr7lu5cv7y8PH9fh8NhzJ0716itrQ1D1X3Dp9tbfvb49JotXbrU+Pa3v33TeyZMmGBERUUZX/va14ySkpJer7uv6O71e/75542vf/3rRkxMjGG3242ZM2cahw4dCk/xYdbZdZMU8H3i9194MTf1DHPTrWNu6hnmplvX1+Ymy/8vCgAAAAAGtAH3zA8AAAAAdIbwAwAAAMAUCD8AAAAATIHwAwAAAMAUCD8AAAAATIHwAwAAAMAUCD8AAAAATIHwAwAAAMAUCD8AAAAATIHwAwAAAMAUCD8AAAAATOH/AYXYoPWXUg0JAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 2, figsize=(10, 4), sharex=True)\n", "ax[0].stairs(n, xe, fill=True, color=\"k\", alpha=0.5, label=\"data\")\n", "for i, ti in enumerate(t):\n", " ax[1].stairs(ti, xe, fill=True, alpha=0.5, label=f\"template {i}\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Bootstrapping template uncertainties\n", "\n", "Bootstrapping is a general purpose technique to include uncertainties backed up by bootstrap theory, so it can be applied to this problem.\n", "We perform a standard fit and pretend that the templates have no uncertainties. Then, we repeat this fit many times with templates that are fluctuated around the actual values assuming a Poisson distribution.\n", "\n", "Here is the cost function." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 4.338e+04 (chi2/ndof = 3336.6) Nfcn = 110
EDM = 3.77e-06 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 761 30 0
1 x1 193 19 0
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1
x0 933 -172 (-0.294)
x1 -172 (-0.294) 365
" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 4.338e+04 (chi2/ndof = 3336.6)│ Nfcn = 110 │\n", "│ EDM = 3.77e-06 (Goal: 0.0002) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ No Parameters at limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Below EDM threshold (goal x 10) │ Below call limit │\n", "├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n", "│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n", "└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ x0 │ 761 │ 30 │ │ │ 0 │ │ │\n", "│ 1 │ x1 │ 193 │ 19 │ │ │ 0 │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌────┬───────────┐\n", "│ │ x0 x1 │\n", "├────┼───────────┤\n", "│ x0 │ 933 -172 │\n", "│ x1 │ -172 365 │\n", "└────┴───────────┘" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def cost(yields):\n", " mu = 0\n", " for y, c in zip(yields, t):\n", " mu += y * c / np.sum(c)\n", " r = poisson_chi2(n, mu)\n", " return r\n", "\n", "cost.errordef = Minuit.LEAST_SQUARES\n", "cost.ndata = np.prod(n.shape)\n", "\n", "starts = np.ones(2)\n", "m = Minuit(cost, starts)\n", "m.limits = (0, None)\n", "m.migrad()\n", "m.hesse()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The uncertainties reported by the fit correspond to the uncertainty in the data, but not the uncertainty in the templates. The chi2/ndof is also very large, since the uncertainties in the template are not considered in the fit.\n", "\n", "We bootstrap the templates 1000 times and compute the covariance of the fitted results." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "b = 100\n", "rng = np.random.default_rng(1)\n", "pars = []\n", "for ib in range(b):\n", " ti = rng.poisson(t)\n", "\n", " def cost(yields):\n", " mu = 0\n", " for y, c in zip(yields, ti):\n", " mu += y * c / np.sum(c)\n", " r = poisson_chi2(n, mu)\n", " return r\n", " \n", " mi = Minuit(cost, m.values[:])\n", " mi.errordef = Minuit.LEAST_SQUARES\n", " mi.limits = (0, None)\n", " mi.strategy = 0\n", " mi.migrad()\n", " assert mi.valid\n", " pars.append(mi.values[:])\n", "\n", "cov2 = np.cov(np.transpose(pars), ddof=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We print the uncertainties from the different stages and the correlation between the two yields.\n", "\n", "To obtain the full error, we add the independent covariance matrices from the original fit and the bootstrap." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fit\n", " b 761 +- 31\n", " s 193 +- 19\n", " correlation -0.29\n", "bootstrap\n", " b 761 +- 36\n", " s 193 +- 36\n", " correlation -0.98\n", "fit+bootstrap\n", " b 761 +- 47\n", " s 193 +- 40\n", " correlation -0.75\n" ] } ], "source": [ "cov1 = m.covariance\n", "\n", "for title, cov in zip((\"fit\", \"bootstrap\", \"fit+bootstrap\"), \n", " (cov1, cov2, cov1 + cov2)):\n", " print(title)\n", " for label, p, e in zip((\"b\", \"s\"), m.values, np.diag(cov) ** 0.5):\n", " print(f\" {label} {p:.0f} +- {e:.0f}\")\n", " print(f\" correlation {cov[0, 1] / np.prod(np.diag(cov)) ** 0.5:.2f}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The bootstrapped template errors are much larger than the fit errors in this case, since the sample used to generate the templates is much smaller than the data sample.\n", "\n", "The bootstrapped errors for both yields are nearly equal (they become exactly equal if the template sample is large) and the correlation is close to -1 (and becomes exactly -1 in large samples). This is expected, since the data sample is fixed in each iteration. Under these conditions, a change in the templates can only increase the yield of one component at an equal loss for the other component." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Template fit with nuisance parameters\n", "\n", "As described in [Barlow and Beeston, Comput.Phys.Commun. 77 (1993) 219-228](https://doi.org/10.1016/0010-4655(93)90005-W), the correct treatment from first principles is to write down the likelihood function for this case, in which the observed values and unknown parameters are clearly stated. The insight is that the true contents of the bins for the templates are unknown and we need to introduce a nuisance parameter for each bin entry in the template. The combined likelihood for the problem is then combines the estimation of the template yields with the estimation of unknown templates.\n", "\n", "This problem can be handled straight-forwardly with Minuit, but it leads to the introduction of a large number of nuisance parameters, one for each entry in each template. We again write a cost function for this case (here a class for convenience).\n", "\n", "As a technical detail, it is necessary to increase the call limit in Migrad for the fit to fully converge, since the limit set by Minuit's default heuristic is too tight for this application." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 18.27 (chi2/ndof = 1.4) Nfcn = 3464
EDM = 6.02e-05 (Goal: 0.0002)
Valid Minimum SOME Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 800 50 0
1 x1 190 40 0
2 x2 9.0 1.4 0
3 x3 8.5 1.3 0
4 x4 9.0 1.4 0
5 x5 7.4 1.2 0
6 x6 8.4 1.3 0
7 x7 6.4 1.1 0
8 x8 9.2 1.7 0
9 x9 4.8 2.3 0
10 x10 7.0 1.5 0
11 x11 5.5 1.0 0
12 x12 5.1 0.9 0
13 x13 4.6 0.9 0
14 x14 4.7 0.9 0
15 x15 4.3 0.8 0
16 x16 3.2 0.7 0
17 x17 0.0 0.4 0
18 x18 0.0 0.4 0
19 x19 0.0 0.4 0
20 x20 0.0 0.5 0
21 x21 0.0 0.4 0
22 x22 2.1 1.5 0
23 x23 19 4 0
24 x24 54 7 0
25 x25 23 4 0
26 x26 1.1 1.0 0
27 x27 0.0 0.4 0
28 x28 0.0 0.4 0
29 x29 0.0 0.4 0
30 x30 0.0 0.4 0
31 x31 0.0 0.5 0
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31
x0 2.24e+03 -1.45e+03 (-0.756) -14.6 (-0.226) -13.8 (-0.222) -14.6 (-0.226) -12 (-0.214) -13.6 (-0.221) -5.25 (-0.100) 23.6 (0.289) 68.9 (0.644) 23.2 (0.320) -6.29 (-0.134) -8.3 (-0.191) -7.42 (-0.184) -7.59 (-0.185) -7.06 (-0.181) -5.12 (-0.161) 2.82e-08 -0 -1.04e-06 -2.67e-06 -0 -5.71 (-0.081) -26.2 (-0.131) 29.8 (0.089) 5.32 (0.026) -3.16 (-0.062) -0 -0 -0 -0 -2.52e-05
x1 -1.45e+03 (-0.756) 1.64e+03 14.6 (0.264) 13.8 (0.260) 14.6 (0.264) 12 (0.250) 13.6 (0.259) 5.25 (0.117) -23.6 (-0.338) -68.9 (-0.754) -23.2 (-0.375) 6.29 (0.157) 8.3 (0.223) 7.42 (0.215) 7.59 (0.217) 7.06 (0.212) 5.12 (0.188) -2.72e-08 0 1.03e-06 2.66e-06 0 5.71 (0.095) 26.2 (0.153) -29.8 (-0.104) -5.32 (-0.030) 3.16 (0.073) 0 0 0 0 2.52e-05
x2 -14.6 (-0.226) 14.6 (0.264) 1.88 0.842 (0.470) 0.895 (0.477) 0.734 (0.452) 0.831 (0.468) 0.584 (0.384) 0.525 (0.222) -0.302 (-0.098) 0.345 (0.165) 0.522 (0.384) 0.507 (0.403) 0.453 (0.389) 0.464 (0.392) 0.432 (0.382) 0.313 (0.340) 2.37e-09 0 9.87e-09 2.43e-08 0 0.0578 (0.028) 0.264 (0.046) -0.3 (-0.031) -0.0538 (-0.009) 0.0319 (0.022) 0 0 0 0 2.62e-07
x3 -13.8 (-0.222) 13.8 (0.260) 0.842 (0.470) 1.71 0.842 (0.470) 0.69 (0.445) 0.781 (0.460) 0.549 (0.378) 0.494 (0.218) -0.284 (-0.096) 0.324 (0.162) 0.491 (0.378) 0.477 (0.397) 0.426 (0.382) 0.436 (0.385) 0.406 (0.376) 0.294 (0.334) -1.08e-10 -0 8.99e-09 2.28e-08 0 0.0543 (0.028) 0.248 (0.045) -0.282 (-0.031) -0.0505 (-0.009) 0.03 (0.021) 0 0 0 0 2.48e-07
x4 -14.6 (-0.226) 14.6 (0.264) 0.895 (0.477) 0.842 (0.470) 1.88 0.734 (0.452) 0.831 (0.468) 0.584 (0.384) 0.525 (0.222) -0.302 (-0.098) 0.345 (0.165) 0.522 (0.384) 0.507 (0.403) 0.453 (0.389) 0.464 (0.392) 0.432 (0.382) 0.313 (0.340) -1.07e-10 0 -7.03e-08 2.45e-08 0 0.0578 (0.028) 0.264 (0.046) -0.3 (-0.031) -0.0537 (-0.009) 0.0319 (0.022) 0 0 0 0 2.62e-07
x5 -12 (-0.214) 12 (0.250) 0.734 (0.452) 0.69 (0.445) 0.734 (0.452) 1.4 0.681 (0.443) 0.478 (0.364) 0.431 (0.210) -0.248 (-0.092) 0.283 (0.156) 0.428 (0.364) 0.416 (0.382) 0.372 (0.368) 0.38 (0.371) 0.354 (0.362) 0.256 (0.322) -9.87e-11 0 7.25e-09 -1.65e-07 0 0.0473 (0.027) 0.216 (0.043) -0.246 (-0.029) -0.0441 (-0.009) 0.0262 (0.021) 0 0 0 0 2.16e-07
x6 -13.6 (-0.221) 13.6 (0.259) 0.831 (0.468) 0.781 (0.460) 0.831 (0.468) 0.681 (0.443) 1.68 0.541 (0.376) 0.487 (0.218) -0.28 (-0.096) 0.32 (0.162) 0.484 (0.377) 0.471 (0.396) 0.421 (0.381) 0.431 (0.384) 0.401 (0.375) 0.29 (0.333) -1.17e-10 0 8.8e-09 2.29e-08 -0 0.0536 (0.028) 0.245 (0.045) -0.278 (-0.030) -0.0499 (-0.009) 0.0296 (0.021) 0 0 0 0 2.43e-07
x7 -5.25 (-0.100) 5.25 (0.117) 0.584 (0.384) 0.549 (0.378) 0.584 (0.384) 0.478 (0.364) 0.541 (0.376) 1.23 0.421 (0.220) -0.0401 (-0.016) 0.295 (0.174) 0.346 (0.314) 0.331 (0.325) 0.295 (0.313) 0.302 (0.315) 0.281 (0.307) 0.204 (0.273) -1.31e-11 0 5.87e-09 1.39e-08 0 -0.424 (-0.258) 0.207 (0.044) 0.116 (0.015) 0.0813 (0.017) 0.0193 (0.016) 0 0 0 0 1.4e-07
x8 23.6 (0.289) -23.6 (-0.338) 0.525 (0.222) 0.494 (0.218) 0.525 (0.222) 0.431 (0.210) 0.487 (0.218) 0.421 (0.220) 2.99 0.999 (0.256) 0.732 (0.277) 0.348 (0.203) 0.298 (0.188) 0.266 (0.181) 0.272 (0.182) 0.253 (0.178) 0.184 (0.158) 4.8e-11 0 1.44e-09 -1.43e-09 0 0.0195 (0.008) -3.03 (-0.416) 2.16 (0.177) 0.842 (0.112) 0.00754 (0.004) 0 0 0 0 -7.48e-08
x9 68.9 (0.644) -68.9 (-0.754) -0.302 (-0.098) -0.284 (-0.096) -0.302 (-0.098) -0.248 (-0.092) -0.28 (-0.096) -0.0401 (-0.016) 0.999 (0.256) 5.1 0.934 (0.271) -0.0941 (-0.042) -0.171 (-0.083) -0.153 (-0.079) -0.157 (-0.080) -0.146 (-0.078) -0.106 (-0.070) 1.73e-10 0 -1.09e-08 -3.64e-08 0 -0.048 (-0.014) 0.432 (0.045) -2.1 (-0.132) 1.75 (0.178) -0.0329 (-0.014) 0 0 0 0 -5.36e-07
x10 23.2 (0.320) -23.2 (-0.375) 0.345 (0.165) 0.324 (0.162) 0.345 (0.165) 0.283 (0.156) 0.32 (0.162) 0.295 (0.174) 0.732 (0.277) 0.934 (0.271) 2.33 0.238 (0.157) 0.195 (0.139) 0.175 (0.134) 0.179 (0.135) 0.166 (0.132) 0.12 (0.117) 1.13e-12 0 4.71e-11 -4.1e-09 0 0.00938 (0.004) 0.336 (0.052) 1.97 (0.183) -2.32 (-0.349) 0.0023 0 0 0 0 -1.01e-07
x11 -6.29 (-0.134) 6.29 (0.157) 0.522 (0.384) 0.491 (0.378) 0.522 (0.384) 0.428 (0.364) 0.484 (0.377) 0.346 (0.314) 0.348 (0.203) -0.0941 (-0.042) 0.238 (0.157) 0.984 0.296 (0.325) 0.264 (0.313) 0.271 (0.315) 0.252 (0.307) 0.182 (0.273) -9.79e-11 0 5.47e-09 1.33e-08 0 0.0327 (0.022) 0.172 (0.041) -0.0118 (-0.002) 0.0295 (0.007) -0.223 (-0.211) 0 0 0 0 1.37e-07
x12 -8.3 (-0.191) 8.3 (0.223) 0.507 (0.403) 0.477 (0.397) 0.507 (0.403) 0.416 (0.382) 0.471 (0.396) 0.331 (0.325) 0.298 (0.188) -0.171 (-0.083) 0.195 (0.139) 0.296 (0.325) 0.843 0.257 (0.328) 0.263 (0.331) 0.245 (0.323) 0.177 (0.287) -7.11e-11 0 4.86e-09 1.39e-08 0 0.0327 (0.024) 0.149 (0.039) -0.17 (-0.026) -0.0305 (-0.008) 0.0181 -0 0 0 0 1.5e-07
x13 -7.42 (-0.184) 7.42 (0.215) 0.453 (0.389) 0.426 (0.382) 0.453 (0.389) 0.372 (0.368) 0.421 (0.381) 0.295 (0.313) 0.266 (0.181) -0.153 (-0.079) 0.175 (0.134) 0.264 (0.313) 0.257 (0.328) 0.726 0.235 (0.319) 0.219 (0.311) 0.158 (0.277) -6.73e-11 0 4.78e-09 1.24e-08 0 0.0292 (0.023) 0.133 (0.037) -0.152 (-0.025) -0.0272 (-0.007) 0.0162 (0.018) 0 -0 0 0 1.34e-07
x14 -7.59 (-0.185) 7.59 (0.217) 0.464 (0.392) 0.436 (0.385) 0.464 (0.392) 0.38 (0.371) 0.431 (0.384) 0.302 (0.315) 0.272 (0.182) -0.157 (-0.080) 0.179 (0.135) 0.271 (0.315) 0.263 (0.331) 0.235 (0.319) 0.749 0.224 (0.313) 0.162 (0.279) -5.43e-11 0 4.48e-09 1.29e-08 0 0.0299 (0.023) 0.137 (0.037) -0.155 (-0.025) -0.0279 (-0.007) 0.0165 (0.018) 0 0 -0 0 1.37e-07
x15 -7.06 (-0.181) 7.06 (0.212) 0.432 (0.382) 0.406 (0.376) 0.432 (0.382) 0.354 (0.362) 0.401 (0.375) 0.281 (0.307) 0.253 (0.178) -0.146 (-0.078) 0.166 (0.132) 0.252 (0.307) 0.245 (0.323) 0.219 (0.311) 0.224 (0.313) 0.681 0.151 (0.272) -5.74e-11 0 4.48e-09 1.21e-08 0 0.0278 (0.023) 0.127 (0.037) -0.145 (-0.025) -0.0259 (-0.007) 0.0154 (0.017) 0 0 0 -0 1.27e-07
x16 -5.12 (-0.161) 5.12 (0.188) 0.313 (0.340) 0.294 (0.334) 0.313 (0.340) 0.256 (0.322) 0.29 (0.333) 0.204 (0.273) 0.184 (0.158) -0.106 (-0.070) 0.12 (0.117) 0.182 (0.273) 0.177 (0.287) 0.158 (0.277) 0.162 (0.279) 0.151 (0.272) 0.452 -7.57e-11 0 3.32e-09 9.14e-09 0 0.0202 0.0921 (0.033) -0.105 (-0.022) -0.0188 (-0.006) 0.0111 (0.016) 0 0 0 0 -1.25e-06
x17 2.82e-08 -2.72e-08 2.37e-09 -1.08e-10 -1.07e-10 -9.87e-11 -1.17e-10 -1.31e-11 4.8e-11 1.73e-10 1.13e-12 -9.79e-11 -7.11e-11 -6.73e-11 -5.43e-11 -5.74e-11 -7.57e-11 4.96e-09 0 -1.06e-15 4.24e-14 -0 -6.61e-11 3.35e-10 8.66e-10 4.04e-10 6.92e-12 0 0 -0 -0 -1.87e-13
x18 -0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 -0 0 0 0 0 0 -0 -0 0 -0 0
x19 -1.04e-06 1.03e-06 9.87e-09 8.99e-09 -7.03e-08 7.25e-09 8.8e-09 5.87e-09 1.44e-09 -1.09e-08 4.71e-11 5.47e-09 4.86e-09 4.78e-09 4.48e-09 4.48e-09 3.32e-09 -1.06e-15 0 5.45e-07 -1.29e-13 0 6.39e-10 2.48e-09 -1.99e-08 -6.18e-09 -2.06e-10 0 0 0 0 -8.77e-13
x20 -2.67e-06 2.66e-06 2.43e-08 2.28e-08 2.45e-08 -1.65e-07 2.29e-08 1.39e-08 -1.43e-09 -3.64e-08 -4.1e-09 1.33e-08 1.39e-08 1.24e-08 1.29e-08 1.21e-08 9.14e-09 4.24e-14 -0 -1.29e-13 6.59e-07 -0 1.99e-09 5.74e-10 -7.53e-08 -2.41e-08 1.21e-09 -0 -0 -0 -0 6.71e-13
x21 -0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 -0 -0 0 -0 0 0 0 0 0 0 -0 -0 -0 -0 0
x22 -5.71 (-0.081) 5.71 (0.095) 0.0578 (0.028) 0.0543 (0.028) 0.0578 (0.028) 0.0473 (0.027) 0.0536 (0.028) -0.424 (-0.258) 0.0195 (0.008) -0.048 (-0.014) 0.00938 (0.004) 0.0327 (0.022) 0.0327 (0.024) 0.0292 (0.023) 0.0299 (0.023) 0.0278 (0.023) 0.0202 -6.61e-11 0 6.39e-10 1.99e-09 0 2.19 0.0106 (0.002) -0.0762 (-0.007) -0.0247 (-0.004) 0.00233 0 0 0 0 2.55e-08
x23 -26.2 (-0.131) 26.2 (0.153) 0.264 (0.046) 0.248 (0.045) 0.264 (0.046) 0.216 (0.043) 0.245 (0.045) 0.207 (0.044) -3.03 (-0.416) 0.432 (0.045) 0.336 (0.052) 0.172 (0.041) 0.149 (0.039) 0.133 (0.037) 0.137 (0.037) 0.127 (0.037) 0.0921 (0.033) 3.35e-10 0 2.48e-09 5.74e-10 0 0.0106 (0.002) 17.8 0.947 (0.032) 0.371 (0.020) 0.00444 (0.001) 0 0 0 0 -1.79e-08
x24 29.8 (0.089) -29.8 (-0.104) -0.3 (-0.031) -0.282 (-0.031) -0.3 (-0.031) -0.246 (-0.029) -0.278 (-0.030) 0.116 (0.015) 2.16 (0.177) -2.1 (-0.132) 1.97 (0.183) -0.0118 (-0.002) -0.17 (-0.026) -0.152 (-0.025) -0.155 (-0.025) -0.145 (-0.025) -0.105 (-0.022) 8.66e-10 0 -1.99e-08 -7.53e-08 0 -0.0762 (-0.007) 0.947 (0.032) 49.8 3.46 (0.113) -0.0548 (-0.007) 0 0 0 0 -9.96e-07
x25 5.32 (0.026) -5.32 (-0.030) -0.0538 (-0.009) -0.0505 (-0.009) -0.0537 (-0.009) -0.0441 (-0.009) -0.0499 (-0.009) 0.0813 (0.017) 0.842 (0.112) 1.75 (0.178) -2.32 (-0.349) 0.0295 (0.007) -0.0305 (-0.008) -0.0272 (-0.007) -0.0279 (-0.007) -0.0259 (-0.007) -0.0188 (-0.006) 4.04e-10 0 -6.18e-09 -2.41e-08 0 -0.0247 (-0.004) 0.371 (0.020) 3.46 (0.113) 18.9 -0.0184 (-0.004) 0 0 0 0 -3.5e-07
x26 -3.16 (-0.062) 3.16 (0.073) 0.0319 (0.022) 0.03 (0.021) 0.0319 (0.022) 0.0262 (0.021) 0.0296 (0.021) 0.0193 (0.016) 0.00754 (0.004) -0.0329 (-0.014) 0.0023 -0.223 (-0.211) 0.0181 0.0162 (0.018) 0.0165 (0.018) 0.0154 (0.017) 0.0111 (0.016) 6.92e-12 0 -2.06e-10 1.21e-09 0 0.00233 0.00444 (0.001) -0.0548 (-0.007) -0.0184 (-0.004) 1.14 0 0 0 0 1.54e-08
x27 -0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 -0 0 -0 -0 0 0 0 0 0 0 -0 -0 -0 0
x28 -0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 -0 0 -0 -0 0 0 0 0 0 -0 0 -0 -0 0
x29 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 -0 0 0 -0 -0 0 0 0 0 0 -0 -0 0 -0 0
x30 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 -0 -0 0 -0 -0 0 0 0 0 0 -0 -0 -0 0 0
x31 -2.52e-05 2.52e-05 2.62e-07 2.48e-07 2.62e-07 2.16e-07 2.43e-07 1.4e-07 -7.48e-08 -5.36e-07 -1.01e-07 1.37e-07 1.5e-07 1.34e-07 1.37e-07 1.27e-07 -1.25e-06 -1.87e-13 0 -8.77e-13 6.71e-13 0 2.55e-08 -1.79e-08 -9.96e-07 -3.5e-07 1.54e-08 0 0 0 0 5.19e-06
" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 18.27 (chi2/ndof = 1.4) │ Nfcn = 3464 │\n", "│ EDM = 6.02e-05 (Goal: 0.0002) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ SOME Parameters at limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Below EDM threshold (goal x 10) │ Below call limit │\n", "├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n", "│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n", "└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ x0 │ 800 │ 50 │ │ │ 0 │ │ │\n", "│ 1 │ x1 │ 190 │ 40 │ │ │ 0 │ │ │\n", "│ 2 │ x2 │ 9.0 │ 1.4 │ │ │ 0 │ │ │\n", "│ 3 │ x3 │ 8.5 │ 1.3 │ │ │ 0 │ │ │\n", "│ 4 │ x4 │ 9.0 │ 1.4 │ │ │ 0 │ │ │\n", "│ 5 │ x5 │ 7.4 │ 1.2 │ │ │ 0 │ │ │\n", "│ 6 │ x6 │ 8.4 │ 1.3 │ │ │ 0 │ │ │\n", "│ 7 │ x7 │ 6.4 │ 1.1 │ │ │ 0 │ │ │\n", "│ 8 │ x8 │ 9.2 │ 1.7 │ │ │ 0 │ │ │\n", "│ 9 │ x9 │ 4.8 │ 2.3 │ │ │ 0 │ │ │\n", "│ 10│ x10 │ 7.0 │ 1.5 │ │ │ 0 │ │ │\n", "│ 11│ x11 │ 5.5 │ 1.0 │ │ │ 0 │ │ │\n", "│ 12│ x12 │ 5.1 │ 0.9 │ │ │ 0 │ │ │\n", "│ 13│ x13 │ 4.6 │ 0.9 │ │ │ 0 │ │ │\n", "│ 14│ x14 │ 4.7 │ 0.9 │ │ │ 0 │ │ │\n", "│ 15│ x15 │ 4.3 │ 0.8 │ │ │ 0 │ │ │\n", "│ 16│ x16 │ 3.2 │ 0.7 │ │ │ 0 │ │ │\n", "│ 17│ x17 │ 0.0 │ 0.4 │ │ │ 0 │ │ │\n", "│ 18│ x18 │ 0.0 │ 0.4 │ │ │ 0 │ │ │\n", "│ 19│ x19 │ 0.0 │ 0.4 │ │ │ 0 │ │ │\n", "│ 20│ x20 │ 0.0 │ 0.5 │ │ │ 0 │ │ │\n", "│ 21│ x21 │ 0.0 │ 0.4 │ │ │ 0 │ │ │\n", "│ 22│ x22 │ 2.1 │ 1.5 │ │ │ 0 │ │ │\n", "│ 23│ x23 │ 19 │ 4 │ │ │ 0 │ │ │\n", "│ 24│ x24 │ 54 │ 7 │ │ │ 0 │ │ │\n", "│ 25│ x25 │ 23 │ 4 │ │ │ 0 │ │ │\n", "│ 26│ x26 │ 1.1 │ 1.0 │ │ │ 0 │ │ │\n", "│ 27│ x27 │ 0.0 │ 0.4 │ │ │ 0 │ │ │\n", "│ 28│ x28 │ 0.0 │ 0.4 │ │ │ 0 │ │ │\n", "│ 29│ x29 │ 0.0 │ 0.4 │ │ │ 0 │ │ │\n", "│ 30│ x30 │ 0.0 │ 0.4 │ │ │ 0 │ │ │\n", "│ 31│ x31 │ 0.0 │ 0.5 │ │ │ 0 │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌─────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n", "│ │ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 │\n", "├─────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n", "│ x0 │ 2.24e+03 -1.45e+03 -14.6 -13.8 -14.6 -12 -13.6 -5.25 23.6 68.9 23.2 -6.29 -8.3 -7.42 -7.59 -7.06 -5.12 2.82e-08 -0 -1.04e-06 -2.67e-06 -0 -5.71 -26.2 29.8 5.32 -3.16 -0 -0 -0 -0 -2.52e-05 │\n", "│ x1 │ -1.45e+03 1.64e+03 14.6 13.8 14.6 12 13.6 5.25 -23.6 -68.9 -23.2 6.29 8.3 7.42 7.59 7.06 5.12 -2.72e-08 0 1.03e-06 2.66e-06 0 5.71 26.2 -29.8 -5.32 3.16 0 0 0 0 2.52e-05 │\n", "│ x2 │ -14.6 14.6 1.88 0.842 0.895 0.734 0.831 0.584 0.525 -0.302 0.345 0.522 0.507 0.453 0.464 0.432 0.313 2.37e-09 0 9.87e-09 2.43e-08 0 0.0578 0.264 -0.3 -0.0538 0.0319 0 0 0 0 2.62e-07 │\n", "│ x3 │ -13.8 13.8 0.842 1.71 0.842 0.69 0.781 0.549 0.494 -0.284 0.324 0.491 0.477 0.426 0.436 0.406 0.294 -1.08e-10 -0 8.99e-09 2.28e-08 0 0.0543 0.248 -0.282 -0.0505 0.03 0 0 0 0 2.48e-07 │\n", "│ x4 │ -14.6 14.6 0.895 0.842 1.88 0.734 0.831 0.584 0.525 -0.302 0.345 0.522 0.507 0.453 0.464 0.432 0.313 -1.07e-10 0 -7.03e-08 2.45e-08 0 0.0578 0.264 -0.3 -0.0537 0.0319 0 0 0 0 2.62e-07 │\n", "│ x5 │ -12 12 0.734 0.69 0.734 1.4 0.681 0.478 0.431 -0.248 0.283 0.428 0.416 0.372 0.38 0.354 0.256 -9.87e-11 0 7.25e-09 -1.65e-07 0 0.0473 0.216 -0.246 -0.0441 0.0262 0 0 0 0 2.16e-07 │\n", "│ x6 │ -13.6 13.6 0.831 0.781 0.831 0.681 1.68 0.541 0.487 -0.28 0.32 0.484 0.471 0.421 0.431 0.401 0.29 -1.17e-10 0 8.8e-09 2.29e-08 -0 0.0536 0.245 -0.278 -0.0499 0.0296 0 0 0 0 2.43e-07 │\n", "│ x7 │ -5.25 5.25 0.584 0.549 0.584 0.478 0.541 1.23 0.421 -0.0401 0.295 0.346 0.331 0.295 0.302 0.281 0.204 -1.31e-11 0 5.87e-09 1.39e-08 0 -0.424 0.207 0.116 0.0813 0.0193 0 0 0 0 1.4e-07 │\n", "│ x8 │ 23.6 -23.6 0.525 0.494 0.525 0.431 0.487 0.421 2.99 0.999 0.732 0.348 0.298 0.266 0.272 0.253 0.184 4.8e-11 0 1.44e-09 -1.43e-09 0 0.0195 -3.03 2.16 0.842 0.00754 0 0 0 0 -7.48e-08 │\n", "│ x9 │ 68.9 -68.9 -0.302 -0.284 -0.302 -0.248 -0.28 -0.0401 0.999 5.1 0.934 -0.0941 -0.171 -0.153 -0.157 -0.146 -0.106 1.73e-10 0 -1.09e-08 -3.64e-08 0 -0.048 0.432 -2.1 1.75 -0.0329 0 0 0 0 -5.36e-07 │\n", "│ x10 │ 23.2 -23.2 0.345 0.324 0.345 0.283 0.32 0.295 0.732 0.934 2.33 0.238 0.195 0.175 0.179 0.166 0.12 1.13e-12 0 4.71e-11 -4.1e-09 0 0.00938 0.336 1.97 -2.32 0.0023 0 0 0 0 -1.01e-07 │\n", "│ x11 │ -6.29 6.29 0.522 0.491 0.522 0.428 0.484 0.346 0.348 -0.0941 0.238 0.984 0.296 0.264 0.271 0.252 0.182 -9.79e-11 0 5.47e-09 1.33e-08 0 0.0327 0.172 -0.0118 0.0295 -0.223 0 0 0 0 1.37e-07 │\n", "│ x12 │ -8.3 8.3 0.507 0.477 0.507 0.416 0.471 0.331 0.298 -0.171 0.195 0.296 0.843 0.257 0.263 0.245 0.177 -7.11e-11 0 4.86e-09 1.39e-08 0 0.0327 0.149 -0.17 -0.0305 0.0181 -0 0 0 0 1.5e-07 │\n", "│ x13 │ -7.42 7.42 0.453 0.426 0.453 0.372 0.421 0.295 0.266 -0.153 0.175 0.264 0.257 0.726 0.235 0.219 0.158 -6.73e-11 0 4.78e-09 1.24e-08 0 0.0292 0.133 -0.152 -0.0272 0.0162 0 -0 0 0 1.34e-07 │\n", "│ x14 │ -7.59 7.59 0.464 0.436 0.464 0.38 0.431 0.302 0.272 -0.157 0.179 0.271 0.263 0.235 0.749 0.224 0.162 -5.43e-11 0 4.48e-09 1.29e-08 0 0.0299 0.137 -0.155 -0.0279 0.0165 0 0 -0 0 1.37e-07 │\n", "│ x15 │ -7.06 7.06 0.432 0.406 0.432 0.354 0.401 0.281 0.253 -0.146 0.166 0.252 0.245 0.219 0.224 0.681 0.151 -5.74e-11 0 4.48e-09 1.21e-08 0 0.0278 0.127 -0.145 -0.0259 0.0154 0 0 0 -0 1.27e-07 │\n", "│ x16 │ -5.12 5.12 0.313 0.294 0.313 0.256 0.29 0.204 0.184 -0.106 0.12 0.182 0.177 0.158 0.162 0.151 0.452 -7.57e-11 0 3.32e-09 9.14e-09 0 0.0202 0.0921 -0.105 -0.0188 0.0111 0 0 0 0 -1.25e-06 │\n", "│ x17 │ 2.82e-08 -2.72e-08 2.37e-09 -1.08e-10 -1.07e-10 -9.87e-11 -1.17e-10 -1.31e-11 4.8e-11 1.73e-10 1.13e-12 -9.79e-11 -7.11e-11 -6.73e-11 -5.43e-11 -5.74e-11 -7.57e-11 4.96e-09 0 -1.06e-15 4.24e-14 -0 -6.61e-11 3.35e-10 8.66e-10 4.04e-10 6.92e-12 0 0 -0 -0 -1.87e-13 │\n", "│ x18 │ -0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 -0 0 0 0 0 0 -0 -0 0 -0 0 │\n", "│ x19 │ -1.04e-06 1.03e-06 9.87e-09 8.99e-09 -7.03e-08 7.25e-09 8.8e-09 5.87e-09 1.44e-09 -1.09e-08 4.71e-11 5.47e-09 4.86e-09 4.78e-09 4.48e-09 4.48e-09 3.32e-09 -1.06e-15 0 5.45e-07 -1.29e-13 0 6.39e-10 2.48e-09 -1.99e-08 -6.18e-09 -2.06e-10 0 0 0 0 -8.77e-13 │\n", "│ x20 │ -2.67e-06 2.66e-06 2.43e-08 2.28e-08 2.45e-08 -1.65e-07 2.29e-08 1.39e-08 -1.43e-09 -3.64e-08 -4.1e-09 1.33e-08 1.39e-08 1.24e-08 1.29e-08 1.21e-08 9.14e-09 4.24e-14 -0 -1.29e-13 6.59e-07 -0 1.99e-09 5.74e-10 -7.53e-08 -2.41e-08 1.21e-09 -0 -0 -0 -0 6.71e-13 │\n", "│ x21 │ -0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 -0 -0 0 -0 0 0 0 0 0 0 -0 -0 -0 -0 0 │\n", "│ x22 │ -5.71 5.71 0.0578 0.0543 0.0578 0.0473 0.0536 -0.424 0.0195 -0.048 0.00938 0.0327 0.0327 0.0292 0.0299 0.0278 0.0202 -6.61e-11 0 6.39e-10 1.99e-09 0 2.19 0.0106 -0.0762 -0.0247 0.00233 0 0 0 0 2.55e-08 │\n", "│ x23 │ -26.2 26.2 0.264 0.248 0.264 0.216 0.245 0.207 -3.03 0.432 0.336 0.172 0.149 0.133 0.137 0.127 0.0921 3.35e-10 0 2.48e-09 5.74e-10 0 0.0106 17.8 0.947 0.371 0.00444 0 0 0 0 -1.79e-08 │\n", "│ x24 │ 29.8 -29.8 -0.3 -0.282 -0.3 -0.246 -0.278 0.116 2.16 -2.1 1.97 -0.0118 -0.17 -0.152 -0.155 -0.145 -0.105 8.66e-10 0 -1.99e-08 -7.53e-08 0 -0.0762 0.947 49.8 3.46 -0.0548 0 0 0 0 -9.96e-07 │\n", "│ x25 │ 5.32 -5.32 -0.0538 -0.0505 -0.0537 -0.0441 -0.0499 0.0813 0.842 1.75 -2.32 0.0295 -0.0305 -0.0272 -0.0279 -0.0259 -0.0188 4.04e-10 0 -6.18e-09 -2.41e-08 0 -0.0247 0.371 3.46 18.9 -0.0184 0 0 0 0 -3.5e-07 │\n", "│ x26 │ -3.16 3.16 0.0319 0.03 0.0319 0.0262 0.0296 0.0193 0.00754 -0.0329 0.0023 -0.223 0.0181 0.0162 0.0165 0.0154 0.0111 6.92e-12 0 -2.06e-10 1.21e-09 0 0.00233 0.00444 -0.0548 -0.0184 1.14 0 0 0 0 1.54e-08 │\n", "│ x27 │ -0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 -0 0 -0 -0 0 0 0 0 0 0 -0 -0 -0 0 │\n", "│ x28 │ -0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 -0 0 -0 -0 0 0 0 0 0 -0 0 -0 -0 0 │\n", "│ x29 │ -0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 -0 0 0 -0 -0 0 0 0 0 0 -0 -0 0 -0 0 │\n", "│ x30 │ -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 -0 -0 0 -0 -0 0 0 0 0 0 -0 -0 -0 0 0 │\n", "│ x31 │ -2.52e-05 2.52e-05 2.62e-07 2.48e-07 2.62e-07 2.16e-07 2.43e-07 1.4e-07 -7.48e-08 -5.36e-07 -1.01e-07 1.37e-07 1.5e-07 1.34e-07 1.37e-07 1.27e-07 -1.25e-06 -1.87e-13 0 -8.77e-13 6.71e-13 0 2.55e-08 -1.79e-08 -9.96e-07 -3.5e-07 1.54e-08 0 0 0 0 5.19e-06 │\n", "└─────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class BB:\n", " def __init__(self, xe, n, t):\n", " self.xe = xe\n", " self.data = n, t\n", "\n", " def _pred(self, par):\n", " bins = len(self.xe) - 1\n", " yields = par[:2]\n", " nuisances = np.array(par[2:])\n", " b = nuisances[:bins]\n", " s = nuisances[bins:]\n", " mu = 0\n", " for y, c in zip(yields, (b, s)):\n", " mu += y * np.array(c) / np.sum(c)\n", " return mu, b, s\n", "\n", " def __call__(self, par):\n", " n, t = self.data\n", " mu, b, s = self._pred(par)\n", " r = poisson_chi2(n, mu) + poisson_chi2(t[0], b) + poisson_chi2(t[1], s)\n", " return r\n", "\n", " @property\n", " def ndata(self):\n", " n, t = self.data\n", " return np.prod(n.shape) + np.prod(t.shape)\n", "\n", " def visualize(self, args):\n", " n, t = self.data\n", " ne = n ** 0.5\n", " xe = self.xe\n", " cx = 0.5 * (xe[1:] + xe[:-1])\n", " plt.errorbar(cx, n, ne, fmt=\"ok\")\n", " mu = 0\n", " mu_var = 0\n", " for y, c in zip(args[:2], t):\n", " f = 1 / np.sum(c)\n", " mu += c * y * f\n", " mu_var += c * (f * y) ** 2\n", " mu_err = mu_var ** 0.5\n", " plt.stairs(mu + mu_err, xe, baseline=mu - mu_err, fill=True, color=\"C0\")\n", " # plt.stairs(mu, xe, color=\"C0\")\n", "\n", "m1 = Minuit(BB(xe, n, t), np.concatenate([truth, t[0], t[1]]))\n", "m1.limits = (0, None)\n", "m1.migrad(ncall=100000)\n", "m1.hesse()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result of this fit is comparable to the bootstrap method for this example, but the chi2/ndof is now reasonable and the uncertainties are correct without further work. This method should perform better than the bootstrap method, if the count per bin in the templates is small.\n", "\n", "Another advantage is of this technique is that one can profile over the likelihood to obtain a 2D confidence regions, which is not possible with the bootstrap technique." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGwCAYAAABPSaTdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB180lEQVR4nO3ddVxV9x/H8de9lxCREBUQuxO7sLtbZ7fOqdjdrejsdtbUGTNm50wsLEwM7CTUKSnN+f3Bdvdj0wkKHLh8no/HfWy799zD+36n8ObE96tRFEVBCCGEEMJAadUOIIQQQgiRmKTsCCGEEMKgSdkRQgghhEGTsiOEEEIIgyZlRwghhBAGTcqOEEIIIQyalB0hhBBCGDQjtQMkB9HR0Xh5eWFhYYFGo1E7jhBCCCHiQFEUAgMDcXBwQKv9/PEbKTuAl5cX2bJlUzuGEEIIIb7Cy5cvyZo162dfl7IDWFhYADGDZWlpqXKaL3vv+4HbZ+7z0P0JD6494cnNZ0SERvxru4xZbchXOjf5SuUhX6lcWNikIyoiksjIaKIioogIjyQqIpKoyCgiI6KJiogkIiKSqIgo/eshQaGEBIYQEhjCx8BQQoL+/GfgR4IDQv98PuSTX/9LLGzS4ZDXHoc8dmTOY0+WPPZkzmOHQx47zNKZJcRQCSGEMGABAQFky5ZN/3P8czSyXETMYFlZWeHv758sy05kRCR3Lnhy9cgNrhy9weMbz/61jblVWgqUy0vBsnkpUC4vBcrmJUPm9EmWMSI8gpDAUIIDPvIxIOTPx0eCA2KKUuD7ILyf+PL6kQ+vHnjxh9eH/9yfTeb0ZM2fmSx5M8f8M1/MwyGPHSZpTJLoUwkhhEjO4vrzW8oOybPs+Dx7w9WjN7l69DrXT3jwMTAk1uv5SuWiSMWCMQWnXF4c8tr/5/nK5CYkKITXj3x4/TCm/Lx+5M3rB968fuiN/7vAz75Po9Fgmz0jWQs4kK2AA9kKZCFbwZh/z+BgI9dcCSFEKiJlJx6SQ9kJCwnj1pl7+qM3L++/jvW6dSZLStcrTtl6JSlVpxjpba1UyZkUAj8E8fqhN6/+LD+vH/397x8DQj77PrN0aWKXoAIOZCuYhSz57DE1M03CTyCEECIpSNmJBzXLzquH3mybvYeTW84S/n/XvWh1Wgo75adMvRKUrV+CvCVzpagjN4lBURT83vjz6oE3Lz29eHn/Na8eePHS0wvvJ75ER0V/8n1/HQ3KVtCBrPkdyF4wi74UydEgIYRIuVJE2XFxcWHXrl3cv38fMzMzKlasyOzZsylQoMC/tlUUhYYNG3LkyBF2795N8+bN9a+9ePGCvn37curUKdKlS0fXrl1xcXHByChu11+rUXae3HrO1lm7ObP9AtHRMf8LMmaxoWz9kpStX4KStRxJZ22eJFkMQUR4BF6PfWMKkKcXLzxj/vnyvhdBfsGffV86a3OcmpWhVocqlKhZFJ1Ol4SphRBCfIu4/vxW9W4sV1dXnJ2dKVu2LJGRkYwdO5a6dety9+5dzM1j/6BfuHDhJ38Dj4qKolGjRtjb23PhwgW8vb3p0qULxsbGzJw5M6k+SpzdvfiArS67uLjfXf9cuYYlaT+6BUUqFZSjDF/J2MSYHIWykqNQ7FsPFUXB723An8XndcwRIc+Yf/o88SXIL5hjG1w5tsEVG3trqretRM2OVchfOrf8vxBCCAORrE5jvX37FltbW1xdXalatar++Rs3btC4cWOuXr1K5syZYx3ZOXz4MI0bN8bLyws7OzsAVq5cyahRo3j79i0mJl++cyexj+woisL1kx5sddnFjZMeQMyplarfVaDd6BbkLZErwb+m+LLwsAg8Lz/i5JazuO5wI/B9kP61rPkzU7NDFWp2qEyWvJlVTCmEEOJzUsSRnX/y9/cHwMbGRv/cx48f6dChA8uWLcPe3v5f73Fzc8PR0VFfdADq1atH3759uXPnDiVLlvzXe8LCwggLC9P/d0BAQEJ+DL3o6GguHnBn68xd3L/8CACdkY7anarSdlQzshXIkihfV8SNiakxjlUK4VilEP0Wdefq0Zuc3HIWt31XefXAm42Tt7Nx8nYKlstLzQ5VqN62IuntrNWOLYQQIp6STdmJjo5m8ODBVKpUiaJFi+qfHzJkCBUrVqRZs2affJ+Pj0+sogPo/9vHx+eT73FxcWHKlCkJlPzTrp+8zfLBP/PM4yUAJmmMadCzFm1GNMU2e6ZE/doi/oxNjHFqUganJmX4GBjC+d2XObHlLNeP3+L+5Ufcv/yIlcM2UKq2IzU7VKFS83KktZCJD4UQIiVINmXH2dkZDw8Pzp07p39u3759nDx5kuvXryfo1xozZgxDhw7V//dfMzAmBEVR2DF3H2vHbCY6WiGthRlN+9Wj5eBGclQghUhrYUadLtWo06UaH3z9OL3tAie3nOX+5Ud/zn10E1MzE5yalaVm+8qUqVccYxNjtWMLIYT4jGRRdvr378+BAwc4c+ZMrLUtTp48yePHj7G2to61fatWrahSpQqnT5/G3t6ey5cvx3rd19cX4JOnvQBMTU0xNU34eVdCgkOZ13M5rtvdAKjbrTp95nXFIn26BP9aImmkt7OmxcCGtBjYkFcPvTm15Rwntpzl9UNvTv96ntO/nscygwWVW5SjbIOSlKxZFHMruYtOCCGSE1UvUFYUhQEDBrB7925Onz5Nvnz5Yr3u4+PDu3fvYj3n6OjIokWLaNKkCbly5dJfoOzt7Y2trS0Aq1atYsSIEbx58yZOpSYhLlB+/cibyS3n8MzjJTojHc6LutO4T125o8cAKYrCA/cnnNx8ltPbzvPex0//mlanpVCFfJSuU5wy9UqQv0xuuZ1dCCESSYqYZ6dfv35s2bKFvXv3xppbx8rKCjOzT18PodFoYt2NFRUVRYkSJXBwcODHH3/Ex8eHzp0706tXrzjfev6tZefy4eu4dFxEkF8wNvbWTNg+lKKVC8V7PyLliYqM4sYpDy7ud+fq7zd49cA71usW6c0pUcuRMnVLUKZuMbleSwghElCKKDufO+rx888/061bt8++55+TCj5//py+ffty+vRpzM3N6dq1K7NmzUr0SQUVRWHLzF1smLgNRVEo7JSfCTuGkdHB5stvFgbJ59kb3H+/ifuxm1w7fptg/4+xXs9WMAul6xSjTN3iFKteBDPzNColFUKIlC9FlJ3k4mvKzsfAEH7stpTzu2OuF2rUuw79FnXHxFQuVBUxoiKj8LzyCPffb3H12E3uX3ygny0bwMhYR9HKBSldtwRl6hYnd/EcqX5JECGEiA8pO/EQ37Lz0vM1k1vO4cW91xibGNF/aS8a9qqVBElFShbkF8z1kx64H73B1d9v4vv8bazXrW2tKF23GI1/qEvRSgVVSimEECmHlJ14iE/Zeen5mgEVxhLs/5GMWWyYuHM4hcrn+8/3CPFPiqLw+pEPV4/ewP3YTW6c9CA0+O+JLgs75ee74U1xalpGLnAWQojPkLITD3EdrPCwCAY6jeXxjWcULJeXKXtGYmOfPgmTCkMVER7BXbcHnNh0luO/uBIRHglAlnyZaTWkMXW7VsPULOGnSxBCiJRMyk48xHWwVgxZz65FB7HKaMHKG3PlQmSRKN77fGDPksMcWPk7gR9iVmy3zmRJU+f6NO1XD6uMCb9+mxBCpERSduIhLoN1+fB1xjWKuZV92r7RVGhcOikjilQoJCiEI+tO8duCA/rre0zNTKjXvQathzYhc267L+xBCCEMm5SdePjSYL33+cAPxYfj9zaA5v0b4Ly4hwopRWoVFRnFmZ0X2TF3Lw+vPQVAq9VQqWV52gxvSsFycs2YECJ1krITD/81WNHR0YxtOBP332+Su1gOllyciUkaE5WSitRMURRunPJgx7z9XDn893pxjlUL0WZ4M8o1LCm3rgshUhUpO/HwX4O1Y95+Vo3YiKmZCcuuzCJH4YRZMFSIb/HU4wU75u3j1JZzREZEAZC9UBa+G9aUmh2ryHxPQohUQcpOPHxusB64P2ZQxXFERkQxeGVvGvWuo2JKIf7t7as/2LP4EAdWHeNjQAgA6e2sqNO5GnW6VidnESnnQgjDJWUnHj41WCFBIfQtPYrXD72p3LI8E3cMk0U9RbIV7B/ModUn2LXoIO9ev9c/n690bup2qU6N9pXkLi4hhMGRshMPnxqsuT2Wc3T9KTJlzcDKG3OwtLFQOaUQXxYRHsHlQ9c5tvE0Fw9cIyoy5hSXkbGO8o1KUadLdco1LImxiZzmEkKkfFJ24uGfg/XqgRfdCw5Co9Ew99RkilUtrHZEIeLN/10Ap7ae5/eNp3no/kT/vFVGC2q0q0ydrtXIVyq3HLEUQqRYUnbi4Z+DtX7ir2ye/htlG5Rk5sGxascT4ps99XjBsQ2nObH5LO99/PTP5yySjTpdqlGrU1UyZJbZwIUQKYuUnXj4/8GysLCgS97++Dx9w5jNg6jZvrLa8YRIMFGRUbgfu8Wxjac5v+cKEWERQMy8PaXrFqdOl+pUbFZGlqYQQqQIUnbi4f8H68Wt1wypOhGzdGnY7rOGNGnlm74wTEF+wbhuv8DvG125e8FT/7y5VVqqfedEk371yFsil4oJhRDiv8W17MgMZP9wfNNZACq3Ki9FRxi0dNbmNOpdh0XnpvOz52I6jmuFbfaMBPt/5NCaE/QtNRKXTovwfuqrdlQhhPgmcmSHv5vh2zfv6F1wGIEfgpl9bCKlajmqHU2IJBUdHc0t17scXHWM09suAGBsYkTTfvXoMK4VlhnkrkQhRPIhR3a+wtWjNwn8EEzGLDYUry53YInUR6vVUqJGUcZtHcIK9x8pVacYEeGR/LbwIF3y9ufXWbsJCwlTO6YQQsSLlJ3/47rtHAA121dGp9OpnEYIdeUtmYvZRyfgcmQ8eUrkJNj/I2vHbqFb/oEc+fkUUVFRakcUQog4kdNY/H0YrLZxS4jUsurmXHI55lA7lhDJRnR0NCe3nGP9hF/xff4WgJxFs9HLpSPlGpaSuXqEEKqQ01hfITIiitzFc0jREeIftFottTtVZd29hfSe0wWL9OY883jJ+CazGFFrCp5XHqkdUQghPkvKzj/U7lhV7QhCJFsmaUz4blgTNjxaSpsRzTA2Nebm6Tv0Lz+G6e3m4/XYR+2IQgjxL1J2/qF849JqRxAi2bNIn47vZ3diveci6nSthkajwXW7Gz0KDWbZwHX4vfVXO6IQQuhJ2fkH2+wZ1Y4gRIphmz0TI3/uz8rrcyjboCRRkVHsWXqYrnkH8MuUHQT8Eah2RCGEkAuU4e8LnBpZt+fAhy1qxxEixbp+8jarR23SLzxqamZCve41aDWkMQ557FVOJ4QwNHKB8leQhRCF+DYlazqy9JIL438dQt6SuQgLCWff8qN0LzCQqW3mce/SQ7UjCiFSISk7/yd9Zmu1IwiR4mm1Wqq1qcjyq7OZc2ISZRuUJDpa4ezOiwx0GsuQqhO4sPcK0dHRakcVQqQSRmoHSE7kyI4QCUej0VCiRlFK1CjKU48X/Db/ACc2n8Hj3H08zt0na/7MtB7ahNqdq8oq60KIRCVHdv6PlB0hEkeuotkZvq4fvzxdTrvRLUhnbc6rB94s7LOKTjn78cvUHfi/C1A7phDCQEnZ+T829lJ2hEhMGR1s6DmzA5ufr6Dvgm7Y5ciE39sANk7eTsccfVnsvIbXj7zVjimEMDByNxZ/X839+5aT1GlfQ+04QqQaUZFRnNl5kR1z9/Lw2lMg5vRXpRbl+G5YEwo7FVA5oRAiOYvr3VhSdvh7sK6euk7p6iXUjiNEqqMoCrdc77Jj3j4uHbymf75UnWIMWNqLrPkyq5hOCJFcSdmJh78G68n9p+QqkFPtOEKkas/vvmTnvP2c2HyWiPBIjE2N6TiuFW1GNsXYxFjteEKIZETKTjz8NVjv3r4jQ8YMascRQgCvH3mz2HkN147dAiB7oSwMXvkDjlUKqZxMCJFcSNmJh78Gy8/PDysrK7XjCCH+pCgKp7aeY8XQDfi9iVlvq36Pmnz/YycsbSxUTieEUJvMoPwVNBqN2hGEEP9Ho9FQs0MV1t5dQMNetQA4su4kPQsN5sTms8jvakKIuJAjO8S9GQoh1OVx7h4L+6zi+d1XAJSq7cjA5d+TJa9cwCxEaiRHdoQQBqdo5UKsuPYj3ae3x9jUmGvHb/O94zA2z/iNiPAIteMJIZIpKTtCiBTF2MSYDmNbsvr2PErVKUZEWATrJ/xKn5Ij8Dh3T+14QohkSE5jIaexhEip9BcwD1mP39uY5SYa9KxFr9kd5QJmIVIBOY0lhDB4+guY7y3UX8B8eO0JehYazPFNZ2RldSEEIEd2ADmyI4Sh+OcFzHlL5qLHjPaUqVdC7rYUwgDJPDvx8NdgPfJ4TJ4iudWOI4T4BhHhEeyYu59ts/fwMTAEgGLVCtNzZgdZa0sIAyOnsb6C+58ztQohUq6/LmDe8GgJrQY3wtjUmFuudxlUaTwTm8/mqccLtSMKIZKYlJ3/437sptoRhBAJxDqTFX3md2P9g8XU71ETrVaD276r/FB8OLO7LsH7qa/aEYUQSUROY/H3YbB6aduw7/0mTExlsUEhDM2L+69ZP/FXzu68CICRsY5GvevQcXwr0ttZqxtOCPFV5DTWVwj7GMbtM3fVjiGESATZC2Zh4vZhLLsyi9J1ixMZEcXeZUfokqc/P4/fSpBfsNoRhRCJRNWy4+LiQtmyZbGwsMDW1pbmzZvj6empf/39+/cMGDCAAgUKYGZmRvbs2Rk4cCD+/v6x9vPixQsaNWpE2rRpsbW1ZcSIEURGRn5VpsuHrn/TZxJCJG/5S+dh1pHxzDkxiYLl8xH6MYwtM3fRJY8z237cS+jHMLUjCiESmKplx9XVFWdnZy5evMixY8eIiIigbt26BAfH/Ibl5eWFl5cXc+fOxcPDg/Xr13PkyBF69uyp30dUVBSNGjUiPDycCxcusGHDBtavX8/EiRO/KtPlw9cS5LMJIZK3EjWKsvjCDCbvGkGOwlkJ/BDMmtGb6JZ/AAd+OkZkxNf9wiSESH6S1TU7b9++xdbWFldXV6pWrfrJbXbs2EGnTp0IDg7GyMiIw4cP07hxY7y8vLCzswNg5cqVjBo1irdv32JiYvLFr/vXOb9aRi3RRGnZ+HgpmXPZJehnE0IkX1FRUZzcfI4Nk7bh+/wtAA557Rm6ug/FqxVROZ0Q4nNS5DU7f52esrGx+c9tLC0tMTIyAsDNzQ1HR0d90QGoV68eAQEB3Llz55P7CAsLIyAgINYDIE+JnADcc3uQEB9HCJFC6HQ66nSpxrr7i3Be1APrTJZ4PfJhRM0prB2zWRYZFSKFSzZlJzo6msGDB1OpUiWKFi36yW3evXvHtGnT6N27t/45Hx+fWEUH0P+3j4/PJ/fj4uKClZWV/pEtWzYA8pbKBYDnlcff/HmEECmPiakxzQc0YMOjpdTvURNFUfh19h4GVRzHi/uv1Y4nhPhKyabsODs74+Hhwa+//vrJ1wMCAmjUqBGFCxdm8uTJ3/S1xowZg7+/v/7x8uVLAPKVipk92fPqo2/avxAiZUtrYcawNX2ZuHM4FjbpeHjtKf1Kj2Tf8qMkozP/Qog4ShZlp3///hw4cIBTp06RNWvWf70eGBhI/fr1sbCwYPfu3Rgb/z0Pjr29Pb6+sScH++u/7e3tP/n1TE1NsbS0jPWAv4/sPLr2lKjIqAT5bEKIlKtKy/KsujWP0nWLExYSzpL+axjfxIUPvn5qRxNCxIOqZUdRFPr378/u3bs5efIkuXLl+tc2AQEB1K1bFxMTE/bt20eaNGlive7k5MTt27d58+aN/rljx45haWlJ4cKF45Una77MpLUwIywkXL+QoBAidcvoYMPMQ2Ppt7A7xqbGXD50nd7FhuG2/6ra0YQQcaRq2XF2dmbTpk1s2bIFCwsLfHx88PHxISQkZvG+v4pOcHAwa9euJSAgQL9NVFTMkZe6detSuHBhOnfuzM2bNzl69Cjjx4/H2dkZU1PTeOXRarXkK/3nqawrcipLCBFDq9XSYmBDll+dTe5iOfB7G8DEZrNZ2GcVIcGhascTQnyBqmVnxYoV+Pv7U716dTJnzqx/bNu2DYBr165x6dIlbt++Td68eWNt89d1NjqdjgMHDqDT6XBycqJTp0506dKFqVOnflWmAmXyAHKRshDi33IWycaSSy58N6wJAAdXHaNf6ZF4XpXvF0IkZ8lqnh21/P99+teP3mF62/nkLZmLFe4/qh1NCJFMXT95mx+7LuXd6/fojHR0nvQd7UY3R6fTqR1NiFQjRc6zkxwUqZgfrVbDo+tPeXTjqdpxhBDJVMmajvx0cy7V2jgRFRnF+gm/Mqz6JFlNXYhkSMrOP2TMkoGqbSoC8Ous3SqnEUIkZ5Y2FozbOoSRG/qT1sKMO+c96VNiBEfXn5Jb1IVIRqTsfEL70S0AOLPjIq8eeKmcRgiRnGk0Gup0rsZPN+dStHJBPgaGMLfHcobVmMRTjxdqxxNCIGXnk3IXy0GFJqVjZk+dtUftOEKIFMA+py1zT02mp0tHTM1MuH3mHn1KjmDl0PUEB3xUO54QqZqUnc9oP6YlAMc3ndEvDCiEEP9Fp9PRblRz1t1bSOWW5YmOiua3hQfpUXAQJzaflVNbQqhEys5nFK6QnxI1ixIVGcWOufvUjiOESEFss2di0s7hzDw8jiz5MvPex49ZnRfLqS0hVCJl5z90GBtzdOfw2hMyPbwQIt7K1ivBqlvz6D69vZzaEkJFUnb+Q4kaRSlYPh/hoRHsWnhQ7ThCiBTIxNSYDmNbsvbuv09tndwip7aESApSdv6DRqOh7chmABxdf4rIiEiVEwkhUiq7HH+e2jo0Foe89rz38cOl02KG15wsp7aESGRSdr6gQuPSWNta8cHXn8uHr6sdRwiRwpWtX5LVt+fTbVo7TM1MuOV6N+bU1rANcmpLiEQiZecLjIyNqNWxCgC/rz+lchohhCEwMTWm47hWrL27kEotysWc2lpwgB6FBsupLSESgZSdOKjXvQYAFw9c48Mbf5XTCCEMhV2OTEz+bQQzDv55asv7Ay6dFjOl1RyC/YPVjieEwZCyEwe5imanQNk8REVGcXLzWbXjCCEMTLkGJVl9ax7dprbD2MSI83uu0L/8GJ7deal2NCEMgpSdOKrXLebojqx5I4RIDCZpTOg4vhXzz0wlU7YMvHrgzYAKYzi97bza0YRI8aTsxFH1dpUwNjXm6e0XPHB/onYcIYSBKlguH8uvzqZkLUdCg8OY0X4hK4eul7tBhfgGUnbiyCJ9Oiq3LAfAwZ+OqZxGCGHIrDNZ4XJ4nH7qi98WHmRU3WkyuakQX0nKTjw06VMPgCPrTuJ55ZHKaYQQhkxnpKPXrE5M3Dkcs3RpuOV6l76lR3LXzVPtaEKkOFJ24sGxSiFqdayCoigs+OEnoiKj1I4khDBwVVqWZ+nlWWQvlIU/vD4wrPok9i0/KtcOChEPUnbi6Yd5XbFIb87jG8/YvfiQ2nGEEKlA9oJZWHLRhSqtKxAZEcWS/muY030ZYSFhakcTIkWQshNP6W2t6DW7MwAbJm7D9/lblRMJIVKDtBZmTNg2lN4/dkar1XBsoyuDKo3H+4mv2tGESPak7HyF+j1q4FilEKEfw1jSf40cThZCJAmNRsN3w5sy+9hErDNZ8vjGM5zLjpKlbIT4Aik7X0Gr1TJoZW+MjHVcOniNs79dVDuSECIVKVGjKMuuzqZgubwEfghmfGMXfpm6g+joaLWjCZEsSdn5SjkKZaXtqOYALBv0s0ztLoRIUrbZMjLPdSqNetdBURQ2Tt7O6HrT5dS6EJ8gZecbdBjbkiz5MvPe+wPb5+xTO44QIpUxMTVm8MreDFvbD1MzE66fuE3vYsM4tOaEnF4X4v9I2fkGJmlM+H52JwB2LTooi4QKIVRRv3sNVt6YS+GKBfgYGMKC3isZ23AGb1/9oXY0IZIFKTvfqGKzsuQrnZvQ4DC2zd6jdhwhRCqVNV9m5rtO4Ye5XTA2Nebq0Zt87zhU1vMTAik730yj0dB9WjsA9q84yrvX8puUEEIdOp2O1kObsPL6HAqWy0uw/0fm9ljOxGazeef1Xu14QqhGyk4CKFOvBEUqFSA8NIItM3erHUcIkcplL5iFheem09OlI8YmRlw84E5vx6Gc2HxWjvKIVEnKTgLQaDR0n94egMNrjuPz7I3KiYQQqZ3OSEe7Uc1Z7v4j+UrnJvBDMLM6L2ZKqzmyoKhIdaTsJJDi1YpQqrYjkRFRbJ62U+04QggBQM4i2Vh8YQbdprbDyFjH+T1X6FV0KKe3nVc7mhBJRspOAuo6Neband83uvLszkuV0wghRAwjYyM6jm/F0suzyFMiJwF/BDKj/UKmtZ2P31u5i1QYPik7CahwhfxUbFaW6KhoZrRbQOhHWaRPCJF85CmekyUXZ9J54nfojHSc2eHG90WHcnbXJbWjCZGopOwksEErvie9nRXP7rxk2YC1ascRQohYjE2M6TK5DUsuziSXY3b83gYwtfVcFvdbTVRklNrxhEgUUnYSmI19esZuGYxWq+HIz6c4ttFV7UhCCPEv+UrlZunlWbQf0wKNRsP+lb8zodlsPgaGqB1NiAQnZScRlKhRlE4TvwNgcb/VPL8r1+8IIZIfE1NjeszowMSdwzA1M+HK4esMqTpB5gsTBkfKTiLpMK4lpWo7EvoxjGlt5hMSHKp2JCGE+KTKLcoz99RkrG2teHLzOQMqjOXxzWdqxxIiwUjZSSQ6nY7RvwzExt6a53dfsWzAOrUjCSHEZxUsl4/FbjPIXigL716/Z0iVCVw+fF3tWEIkCCk7iSi9nbX++p2j6+X6HSFE8pY5lx0Lz02nRI0ihASFMqHpLA78dEztWEJ8Myk7iax49SJ0mdwWgMXOq3n9yFvlREII8XkW6dMx8/A46nSpRnRUNIv6rmL1qE1ER0erHU2IryZlJwm0G9OcYtUKExochkvHRURGRKodSQghPsvYxJgRPzvTZXIbALbP2cuM9gsJC5G5w0TKJGUnCeh0OkZtHEA6a3M8rzxm4+TtakcSQoj/pNFo6DzxO0Zu6I+RccwEhCNrT5UZl0WKJGUnidhmy8jgn34A4NdZe7jpekflREII8WV1Oldj1tEJpLM2567bAwY6jeOl52u1YwkRL1J2klC175yo160GiqIwu/MSAj8EqR1JCCG+qHj1Iiw8Px37XLb4PnvD64c+akcSIl40iqIoaodQW0BAAFZWVvj7+2NpaZmoXyskKIQ+pUbi9ciHqt85Mf7XIWg0mkT9mkIIkRA+vPHn1uk7VGtT8YvbRoRH8N7bjz+8P5DWwoycRbIlQUKR2sT157eUHZK27AB4XnnEoErjiYqMYvi6ftTrViPRv6YQQiSVqMgoZnZcxDOPFwT5fUSr1dDw+9p0/nNmeSESSlx/fstpLBUUKJuXrlNibkdfN3YL4WERKicSQoiE8TEwhIEVx/H8zku+G96MuScnMWJ9f/YsOcyJzWfVjidSKSk7Kmk9rDEZs9jw3sePk/INQAhhIKa3nU+w/0fGbhlMvW7VyVYgC6VqOeJYtRBej+RaH6EOVcuOi4sLZcuWxcLCAltbW5o3b46np2esbUJDQ3F2diZDhgykS5eOVq1a4evrG2ubFy9e0KhRI9KmTYutrS0jRowgMjJ5z2VjbGJMy0GNANgxb59M2CWESPHWT/iVOxc8GbnemdzFcsS6HvGZx0uC/YNVTCdSM1XLjqurK87Ozly8eJFjx44RERFB3bp1CQ7++y/EkCFD2L9/Pzt27MDV1RUvLy9atmypfz0qKopGjRoRHh7OhQsX2LBhA+vXr2fixIlqfKR4adi7NmktzXhx7zWXD8kaNEKIlMv3+VsuHnSn47hW5CudO9Zrh9eewMhYR+l6JdQJJ4SSjLx580YBFFdXV0VRFMXPz08xNjZWduzYod/m3r17CqC4ubkpiqIohw4dUrRareLj46PfZsWKFYqlpaUSFhYWp6/r7++vAIq/v38Cfpq4WTVio1Jb01oZUm1Ckn9tIYRIKM/uvFCaWXdRLh+5Hut59+O3lDENpiuTW81R/P8IUCecMFhx/fmdrK7Z8fePmZnTxsYGAHd3dyIiIqhdu7Z+m4IFC5I9e3bc3NwAcHNzw9HRETs7O/029erVIyAggDt3Pj1xX1hYGAEBAbEeamkxqCFGxjpun7nH/csPVcshhBDfQqvTYpcjE+ntrPTPXTt+iwMrj+L3NoBOE1pjaWMR65T9//+7IjcGi0SUbMpOdHQ0gwcPplKlShQtWhQAHx8fTExMsLa2jrWtnZ0dPj4++m3+v+j89fpfr32Ki4sLVlZW+ke2bOrN/5AxSwZqdKgMwPa5+1TLIYQQ3yJbgSzY5sjI7C5LOLLuJGtGb2LpgLUE+3+k16xO5CmeE0VR0Gq1+pKj1cb8CIoIjyA8NFzN+MLAGakd4C/Ozs54eHhw7ty5RP9aY8aMYejQofr/DggIULXwfDe0Ccc2uHJ+1yU8rzyiQNm8qmURQoivNW3vaBb+8BMnNp/B9/k7GvaqRak6xchfOg9RUVHodDr9PyPCIzi78yJndrrh/fQNmbJmIG/JXHSb2k7tjyEMULIoO/379+fAgQOcOXOGrFmz6p+3t7cnPDwcPz+/WEd3fH19sbe3129z+fLlWPv7626tv7b5J1NTU0xNTRP4U3y9XI45qNCkNBf3uzOs+iSGrulLzfaV1Y4lhBDxNvinHwj9GEZkeCTprM0J/RizUrpOpyMqMgqdkQ6AZQPW8eqhN+ntrBiwtBevPL3YOms3D689YcaBsWp+BGGAVD2NpSgK/fv3Z/fu3Zw8eZJcuXLFer106dIYGxtz4sQJ/XOenp68ePECJycnAJycnLh9+zZv3rzRb3Ps2DEsLS0pXLhw0nyQBDBqwwDKNihJWEg4Lh0XsXrUJqKiotSOJYQQ8ZYmrSnprM0J8gvGpeMi9q/8HUBfdNaO3cKhNSd47+OHhY0FxiZG1O9Rk/muUwn6EMyhNSf+a/dCxJuqZcfZ2ZlNmzaxZcsWLCws8PHxwcfHh5CQEACsrKzo2bMnQ4cO5dSpU7i7u9O9e3ecnJyoUKECAHXr1qVw4cJ07tyZmzdvcvToUcaPH4+zs3OyOnrzJemszZm2bxTtRrcAYPucvYxr5ELA+0CVkwkhxNd57+PHu9fvCfrw93Qip7ed5/cNp8lW0IGa7StjmSEdYxrM4NDq42TInJ6By7+nSMX8KqYWhkjVtbE+twDmzz//TLdu3YCYSQWHDRvG1q1bCQsLo169eixfvjzWKarnz5/Tt29fTp8+jbm5OV27dmXWrFkYGcXtLF1Sr431Ja7bLzC3x3JCP4bhkMeOybtHkqtodrVjCSFEvPm99ccifTr9UZ2FfVbx8NoThq/tSy7HHADsX3EUt/1XmbBjGCamxvpthfgSWQg0HpJb2QF4fPMZk1v8iM+zt6QxN2XkhgFUaVle7VhCCPFVFEUh9GMY3fINoPmAhrQf00L/2p6lh9m96CBLLrpgmcECgKe3n/PA/QnBfh/JUzInxasVUSu6SMZkIdAULk/xnCy7MpsSNYsSGhzG1NZz2b/iqNqxhBDiq2g0GkxMjclXOjdpLc30z38MDMH7sS/mVmnhz4P9b16+Y/XozWyZuYuLB92Z3mY+W112q5RcGIJkcTeW+DTLDBbMOjKelcM2sGfJYZYOWIttjkyUb1hK7WhCCBFvOiMdOYtk49dZu8lbMhf+7wJ4fOMZuxcfYszmQVjaxBzV+RgQwjOPF/Rd0J0qLctz45QHs7ssIb2dFfV71FT5U4iUSMpOMqcz0tFvYXdCAkM5uv4UM9otYP6ZqeQtkevLbxZCiGSm16xOKAosG7QOP19/Mjikp9/C7tRoV4mQoBBePfDG59lbshXMQvmGJQEoUaMoZeoW584FTyk74qtI2UkBNBoNg1Z+j++Lt9w46cGEJrNYcnEmGbNkUDuaEELE2/ezO+H9xBedsQ6tVqP/Xjak6kR0RjoiwiLwfxvAyDpTmXdqCt5PfPF59gb7XDGz4yuK8tkbXIT4FLlmJ4UwNjFm0s7hZC+UhXev3zOh6WxCgkLUjiWEEF8lc247bLNlJINDzFqIGydvJyQolEErvme+61SWXHIhIiySHoUHM6bBDABK1nIEPn8nrxCfI2UnBUlnbc70A2OwzmTJo+tPmdlhkUw8KIRI0f4qLpERkZhbmpElrz3prM2xzZaRzhO/I4NDeqbvH82ojQNkZnnx1aTspDCZc9kxZe8oTNIYc/GAOyuHblA7khBCfDO7HJnQGemIivx7JfSPAR8J9vtIBgcb/akumS1FfA0pOylQ4Qr5GbVxAAB7lhxm5/z9KicSQohv06BXLdKYmzK6/nRunPJg3/KjnN5+ATOLNJiYmei3k1NY4mtI2UmhqrZ24vvZnQD4afhGTmw+q3IiIYT4elqtljknJpOneE5WjfyFX2fvJjw0gmFr+mJiaixHdMQ3kRmUSZ4zKMeFoiisGLKe3YsPoTPSMf3AGMrULa52LCGE+CZej30wS5cGnbEOSxsLoqOj0Wrld3PxbzKDciqg0WjoM78r1dtVIioyiimt5uB59bHasYQQ4ps45LEnvZ21fpLBv4qO31t/htWYxKMbT9WMJ1IgKTspnFarZcTPzpSq7UhocBjjG83k1UNvtWMJIUSCWz1qE7dc7zKk8gTO7HRTO45IQaTsGAATU2Mm/TaCfKVy4fc2gDH1p/Pe54PasYQQIkH1mdeV0nWLE/oxjGlt5rNh0jaio6O//EaR6knZMRBpLcyYcXAsDnns8Hn6hrENZ8qkg0IIg2KRPh0zDoyh1ZDGAGyatpOp382T73Xii6TsGJD0dta4HBmPta0Vj288Y+2YLWpHEkKIBKUz0tFnXldG/OyMsYkR53dfZlCl8Xg/9VU7mkjGpOwYGIc89ozZNBCAfcuPcueCp8qJhBAi4dXtWp25p6dgY2/N09sv6F9uDDdOeagdSyRTUnYMUKnaxajXrQaKojD/+xWEh0WoHUkIIRJc4Qr5WXZlFvnL5CHgj0BG1Z3GvuVHZU4e8S9SdgxU77mdSW9nxYt7r9ky4ze14wghRKLImCUD812nUKtjFaKjolnSfw2L+qwiIlx+yRN/k7JjoCxtLHBe3BOAX2ft4ent5yonEkKIxGFqZsqojQPoNasTGo2Gg6uPM6rOND688Vc7mkgmpOwYsKqtK1CxWVmiIqOY//1KWSFdCGGwNBoNbUc2Y9q+UaS1NOP22Xv0Lzeapx4v1I4mkgEpOwZMo9EwYGlP0lqacf/yI/YuOaJ2JCGESFTlG5VmsdtMHPLa8+bFO2a0W0BUpPyil9pJ2TFwGbNkoPePnQFYPeoXts/ZK5NwCSEMWo5CWVl8YQaWGSx4fvcVh1YfVzuSUJmUnVSgQa9a1OxQmciIKFaP2sToetN59/oPtWMJIUSiscpoSedJ3wGwYdI2gv2DVU4k1CRlJxXQarWM/mUgQ1b1IU1aU66fuE3v4sM5v+ey2tGEECLRNP6hDtkKZsH/XSBbZuxSO45QkZSdVEKj0dCwVy2Wu88mX6lcBL4PYnLLOSz84SdCgkPVjieEEAnOyNiIH+bEnMbfvfgQ3k9kluXUSspOKpOtQBYWXZhBmxHN9LdoOpcZxcNrT9SOJoQQCa5cw1KUqu1IRHgka8ZsVjuOUImUnVTI2MSY72d3YvaxCWRwSM9LTy8GOo3l6PpTakcTQogEpdFo6DOvK1qthjM73PA4d0/tSEIFUnZSsZI1HVl1cx6VWpQjMiKKuT2Wc3DVMbVjCSFEgsrlmIP6PWoCMP/7lTy5JZOspjZSdlI5ywwWTNo5nOYDGgCwsM8q9i6T+XiEEIal27R2WNta8dLTC+eyo/hlyg5ZUiIVkbIj0Gg09FvYndZDmwCwdMBadi06qHIqIYRIOOntrFl5fQ4Vm5UlMiKKjVO207/cGB64P1Y7mkgCUnYEEFN4es/pTLtRzQFYMWQ9O+buUzeUEEIkoAyZ0zN51wjGbR2MVUYLntx6zoAKY1k7dgvhoeFqxxOJSMqO0NNoNPSY2YGO41sBsGrkL2yZKXNTCCEMh0ajoXrbSqy5s4DqbSsSHRXNr7N206fUSO66eaodTyQSKTsiFo1GQ7ep7egyuQ0AP4/fyi9TdqAoisrJhBAi4VhnsmLc1iFM+m046e2seHn/NYMrT2DTtJ3y/c4ASdkRn9R54nf0mNEBgI1TtrNm1Cb5BiCEMDiVW5RnzZ0F1OlSDUVR2DBpG4v6rCIqShYPNSRSdsRntR/Tgj7zugKwfe4+FvdbLYuICiEMjqWNBSPX92fgsl76yVanfTePsJAwtaOJBCJlR/ynVkMaM+SnH9BoNBz46Rg/dl1KVKT8xiOEMDxN+tZjwo5hGJsac37PFUbVnUbA+0C1Y4kEIGVHfFHD72szZvMgdEY6Tmw+y7Q28wgPk/kphBCGp0rL8sw6Oh5zq7TcOe/J0KoTefPyndqxxDeSsiPipEa7Skz6bbj+N54JTWfJAqJCCINUrGphFpyZSsYsNjy/+4rBlcbz7M5LtWOJbyBlR8SZU5MyTD8whjTmplw7dosx9acT7B+sdiwhhEhwuRxzsOj8dLIVzMLbV38wpMoEPM7fVzuW+EpSdkS8lKrlyOzfJ5DO2pw75z2Z3m6B3LUghDBIttkzsfDsNAo75SfIL5hRdaZyYe8VtWOJryBlR8RbYacCzPp9AqZmJlw9epM1ozarHUkIIRKFZQYLZh+bSIUmpQkPjWBKqzmyYHIKJGVHfJUCZfIw4mdnAHbO38+xja4qJxJCiMSRJq0pk38bQf0eNYmOVljYZ5VMtprCSNkRX61am4p0HBeztMSC3iu5e/GByomEECJx6Ix0DF3dR7+czsYp21nUd7Wcxk8hpOyIb9JlShsqNitLRHgkU1rO4d3rP9SOJIQQieKv5XT0kw+uOiaTD6YQUnbEN9FqtYzaOICcRbPx3sePSS3myF98IYRB++fkg3O6L1M7kvgCKTvim6W1MGPq3lFYZrDgwdXH/NhtGeGh4WrHEkKIRFOlZXlcDo9Dq9Xgut0NzyuP1I4k/oOUHZEgMueyY8L2oeiMdJzZ4cbgyuPxfuKrdiwhhEg0xasXoVbnqgCsG79V5TTivyRY2bl37x65c+eO13vOnDlDkyZNcHBwQKPRsGfPnlivBwUF0b9/f7JmzYqZmRmFCxdm5cqVsbYJDQ3F2dmZDBkykC5dOlq1aoWvr/yQVUOJGkWZtn80lhkseHjtKX1Lj5Q5KYQQBq3zxO8wMtZx7dgtbp6+o3Yc8RkJVnbCw8N5/vx5vN4THBxM8eLFWbbs0+c7hw4dypEjR9i0aRP37t1j8ODB9O/fn3379um3GTJkCPv372fHjh24urri5eVFy5Ytv+mziK9Xtl4JVlz7kcJO+Qn2/8ikFj+yasRGIiMi1Y4mhBAJLnMuOxr0qg3EHN2R29GTJ40Sx/8zQ4cO/c/X3759y5YtW776NjyNRsPu3btp3ry5/rmiRYvStm1bJkyYoH+udOnSNGjQgOnTp+Pv70+mTJnYsmULrVu3BuD+/fsUKlQINzc3KlSoEKevHRAQgJWVFf7+/lhaWn5VfhFbRHgEa0dv5reFBwEoWrkg47YOJmOWDConE0KIhPXO6z1d8/YnPDSC6ftHU75RabUjpRpx/fkd5yM7ixYtwtXVlevXr3/ycf9+wq8ZUrFiRfbt28fr169RFIVTp07x4MED6tatC4C7uzsRERHUrl1b/56CBQuSPXt23NzcPrvfsLAwAgICYj1EwjI2MabP/G5M3DGMtJZmeJy7T99SI7l2/Jba0YQQIkFldLChef8GAPw84Veio6NVTiT+Kc5lJ2/evAwZMoRTp0598rF69eoED7dkyRIKFy5M1qxZMTExoX79+ixbtoyqVWMuCPPx8cHExARra+tY77Ozs8PHx+ez+3VxccHKykr/yJYtW4JnFzGqtKrA8quzyV08B35vAxhdbzq/TNkhE3EJIQxK21HNSWthxuMbzzj963m144h/iHPZKVOmDO7u7p99XaPRJPi5yiVLlnDx4kX27duHu7s78+bNw9nZmePHj3/TfseMGYO/v7/+8fLlywRKLD4lS97MLL4wgwY9a6EoChunbGdcIxf83vqrHU0IIRKEZQYLWg9tAsCc7svYs+SwXL+TjMT5mh0fHx/CwsLIkSNH4gT5xzU7ISEhWFlZsXv3bho1aqTfrlevXrx69YojR45w8uRJatWqxYcPH2Id3cmRIweDBw9myJAhcfracs1O0jm20ZVFfVcRFhJOxiw2jPt1CEUrFVQ7lhBCfLOwkDBmdV7CuV2XAKjSugLDVvfB3Mpc5WSGK8Gv2bG3tydHjhycOnXqs9v89NNP8Uv5HyIiIoiIiECrjR1Rp9Ppz4eWLl0aY2NjTpw4oX/d09OTFy9e4OTklGBZRMKp06UaSy65kK2AA+9ev2d4jcnsnL9ffgMSQqR4pmamTNwxjL4LuqEz0nF250X6lR3NoxtP1Y6W6sX71vP69eszYsQIIiIi9M+9e/eOJk2aMHr06HjtKygoiBs3bnDjxg0Anj59yo0bN3jx4gWWlpZUq1aNESNGcPr0aZ4+fcr69evZuHEjLVq0AMDKyoqePXsydOhQTp06hbu7O927d8fJySnOd2KJpJeraHaWXp5F9XaViIqM4qfhG5nSei5BfsFqRxNCiG+i0WhoOagR889MxTZ7Rrwe+TDQaRyHVh+XX+rUpMTT+fPnlTx58ijFixdX7ty5oxw4cECxs7NTqlatqjx79ixe+zp16pQC/OvRtWtXRVEUxdvbW+nWrZvi4OCgpEmTRilQoIAyb948JTo6Wr+PkJAQpV+/fkr69OmVtGnTKi1atFC8vb3jlcPf318BFH9//3i9T3yb6OhoZd/yI0oD03ZKbU1rpXMeZ+X8nsux/v8KIURK5f8uQBnXeKZSW9Naqa1prbh0XqR8DPyodiyDEtef33G+Zuf/BQUF0adPH3bu3El0dDTTpk1j5MiRaDSaBC1iSUWu2VGX59XHTG8zD59nbwEoVCEfPWZ0oESNoionE0KIbxMdHc32Ofv4efxWoqOiyVcqFwvPz8DE1FjtaAYhwa/Z+X8PHjzg6tWrZM2aFSMjIzw9Pfn48eNXhxWpW4EyeVh5fQ7tRrcgTVpT7l18yIhaUxhVd6osrieESNG0Wi3tRjVnzolJ+qV0ts3ao3asVCfeZWfWrFk4OTlRp04dPDw8uHz5MtevX6dYsWL/OZGfEP/F3MqcnjM7sOHREpo5149Za+b4bfqXH8PkVnN4flemBxBCpFzFqhZmwNKeAGx12cXze69UTpS6xPs0VubMmVm3bh0NGjTQPxcREcHYsWNZvHgxYWFhCR4ysclprOTH+6kvv0zdwYlfzhAdraDVaqjVqSrdp7cnU1ZZckIIkfIoisL4Ji5cPnSdopULMu/0lH/dcSziJ64/v+Nddt69e0fGjBk/+ZqrqyvVqlWLX9JkQMpO8vX87kvWT9ymn7fCIY8dq27Nw9TMVOVkQggRf29evKVnkSGEBocxaEVvGv9QR+1IKVqiXbPzuaIDpMiiI5K3HIWzMWnncJZeciFjFhu8Hvuy/cd9X36jEEIkQ7bZM9F9ensAVo/6hXde71VOlDrI8TORIhQom5c+87oCsHXWbryf+KqcSAghvk6z/vUpUDYPHwNCWD5ondpxUgUpOyLFqPqdEyVqFiUiLILlQ35WO44QQnwVnU7HkFV90Oq0nP3tEofWnPjym8Q3kbIjUgyNRkP/JT3RGem4uN+dSwc/vzCtEEIkZ3mK56TN8KYALOi9kimt5/Le54PKqQyXlB2RouQolJWWgxoCsGzQz4SHhqucSAghvk63ae3oOK4VOiMd53ZdoleRIRzb6CrLSiQCKTsixek08TsyOKTH+4kv2+fIxcpCiJRJZ6Sj27R2LLsyi7wlcxH4IZgfuy1lXGMX3rx8p3Y8gyJlR6Q4aS3M6D2nCxAzOZesKCyESMnyFM/Jkosz6TGjA8YmRlw5fJ3viw7l4KpjcpQngUjZESlSjXaVKFGjCOGhEQysMJbfFhwgOjpa7VhCCPFVjIyNaD+mBSuuz6GwU34+BoawsM8qRtaZSrB/sNrxUjwpOyJF0mg0jN82lAqNSxMRHsnKYRsY02CGzFkhhEjRchTKyvwzU+k7vxumZibcOOnBr7KW1jeTsiNSLKuMlkzdO4qBy7/H1MyEa8du0bvYMM7+OduyEEKkRDqdjpaDGzF2y2AA9i47QsAfgeqGSuGk7IgUTaPR0KRPXZa7/0i+UrkIfB/E1NZzmddzOSFBIWrHE0KIr+bUtAy5i+cgJCiUXQsPqh0nRZOyIwxC9oJZWHRhBu1GNUej0XDk51P0KTmCe5ceqh1NCCG+ikajodOE7wDYveQQgR+CVE6UcknZEQbD2MSYni4dmXNyEpmyZcDrsS+DK49n07SdREVGqR1PCCHirVLzsuQsmo2PASHsWXxY7TgplpQdYXCKVyvCqpvzqNG+EtFR0WyYtI2h1Sfh/VTW0xJCpCxarZZO41sDsGvRQbkz6ytJ2REGKZ21OWM3D2b0LwNJa2nG3Que9CkxQmYnFUKkOJVblSd7oSwE+QWzZ+kRteOkSFJ2hEGr1bEKP92YS9HKBfkYGMKP3ZYyo/0COfcthEgxdDodHce1AmDnvP08vf1c5UQpj5QdYfDsc9oy99Rkuk9vj85Ih+t2N34oPpzrJ2+rHU0IIeKkWtuK5CuViyC/YIZUncjN03fUjpSiSNkRqYJOp6PD2JYsOj+dLPky8/bVH4ysPZXJLX/kqccLteMJIcR/0ul0zPp9AkUrFyTY/yNj6k/HdYeb2rFSDI0iFzAQEBCAlZUV/v7+WFpaqh1HJLKQ4FBWj/iFg6uOER2toNFoqNmhMl0mt8Ehj73a8YQQ4rPCQ8Nx6bSYc7suodFo6LugGy0GNlQ7lmri+vNbyg5SdlKr5/desWHSNs7uvAjErEBcv0dNOo5vRaasGVROJ4QQnxYVFcXyQT+zb/lRANoMb0rPWR3RalPfyRopO/EgZSd1e3jtCT9P+JUrh68DYGxqTNN+9Wg3ujnWmaxUTieEEP+mKArbZu9h7dgtQMzNGMPW9sXYxFjlZElLyk48SNkRALfP3mPduC14nLsPgFm6NIzc0J/KLcqrnEwIIT7t2EZX5vVaQVRkFDU7VGbMpkFqR0pScf35nfqOeQnxGY5VCjHfdSozD40lX6lchASFMrvLEp7ffal2NCGE+KQ6Xaoxbd8otDotJ7ec49oJucv0U6TsCPF/NBoNZeuXZMklF0rULEpocBhTWs/jY6AsKiqESJ7K1i9J0371AFg2cC2REZEqJ0p+pOwI8Qk6nY6xWwaTwSE9L++/ZkHvlTLzshAi2eo6pS3WmSx5ce81e5bIGlr/JGVHiM9Ib2vF+G1D0RnpOL3tAntlmnYhRDKVztqcni4dAfhlyg7+8P6gcqLkRcqOEP+haKWC9P6xMwA/Dd/A3YsPVE4khBCfVrdbdQqWy8vHwBDWjtmsdpxkRcqOEF/QYlBDqn7nRGREFNPbzMfvrb/akYQQ4l+0Wi39l/REo9FwbKMrHufvqx0p2ZCyI8QXaDQahq7uQ9b8MctMTG09Tw4RCyGSpQJl81K/R00Alg5YS0hwqMqJkgcpO0LEgbllWibuHE4ac1Nun71HryJD+H3DabloWQiR7PSY2Z501uY8vvGMgU5jefXAS+1IqpOyI0Qc5SqancVuM8lfJg9BfsHM6b6McY1dePvqD7WjCSGEnnUmK6btH42NvTXPPF7iXG4053ZfUjuWqqTsCBEPuYpmZ/GFGfR06YixqTFXDl+nV9EhHFp9XI7yCCGSjaKVCrLc/UccqxTiY0AIU1rNZc3oTURFRqkdTRWyXASyXIT4Os/vvWJez+Xcu/gQgFK1HRmyqg/2OW1VTiaEEDEiIyJZM2oTvy08CECJGkUYu3UI6W0NY90/WRsrHqTsiK8VFRXF7kWH+Hn8VsJDIzBLl4ZeszrRuE+dVLkCsRAieXLdfoG5PZcTGhxGxiw2TNg+lMJOBdSO9c2k7MSDlB3xrV499GZ+rxXcPnsPgGLVCjNsTV8c8tirnEwIIWI8v/eKKa3m8vL+a4yMdcw/M41C5fOpHeubyEKgQiShrPkyM/fUZJwX9SBNWlNuud6ld7Fh7Fp4kKio1HmOXAiRvOQolJWll1woW78EkRFRbHXZpXakJCNlR4gEotVqaT6gAatuzaNEjSKEhYSzYuh6hlabxEvP12rHE0II0lqY0W9hdwAu7ndPNbelS9kRIoFlzm3H7GMTGbj8e8zSpeHuBU/6lBzB9jl75SiPEEJ1WfM7UKFJaRRFYdeiQ2rHSRJSdoRIBFqtliZ96rLGYz6l6xYnPDSC1aM2MbjyBLyf+KodTwiRyrUe0gSA39efIuB9oMppEp+UHSESkW32TLgcHsewNX0xt0rL/UsP6Vt6JGd3pe4JvoQQ6ipWrTB5SuQkLCScgz8dVztOopOyI0Qi02g01O9Rk1U351LYKT/B/h+Z2nouywatIyI8Qu14QohUSKPR0GpIYwD2LD1s8N+LpOwIkURss2di3ukptBneFIA9Sw4zpMoEfJ69UTmZECI1qt62IjaZ0/Pe+wOnt11QO06ikrIjRBIyMjbi+x87M3XvKCzSm+N55TF9S43kwt4rakcTQqQyxibGNO/fAIANE7fx7rXhrvOnatk5c+YMTZo0wcHBAY1Gw549e/61zb1792jatClWVlaYm5tTtmxZXrx4oX89NDQUZ2dnMmTIQLp06WjVqhW+vnIBqEjenJqUYcW1ORQsn48gv2AmtfiRlUPXG/yhZCFE8tK0X10c8trj+/wto+tNJ+APw7xYWdWyExwcTPHixVm2bNknX3/8+DGVK1emYMGCnD59mlu3bjFhwgTSpEmj32bIkCHs37+fHTt24OrqipeXFy1btkyqjyDEV7PLkYn5rlP0581/W3iQodUm4fv8rcrJhBCphbmVObN/n0DGLDY8v/uKsQ1n8DEwRO1YCS7ZLBeh0WjYvXs3zZs31z/Xrl07jI2N+eWXXz75Hn9/fzJlysSWLVto3bo1APfv36dQoUK4ublRoUKFOH1tWS5CqO3C3ivM6b6MIL9gLNKbM2J9f5yalFE7lhAilXh+7xXDqk3E/10gJWoUYcbBsZikMVE71hel+OUioqOjOXjwIPnz56devXrY2tpSvnz5WKe63N3diYiIoHbt2vrnChYsSPbs2XFzc/vsvsPCwggICIj1EEJNFZuVZcW1HylYLi+BH4KZ2Gw2q0ZsJDIiUu1oQohUIEehrMw8PI60FmbcOHWH6e0WGNT3n2Rbdt68eUNQUBCzZs2ifv36/P7777Ro0YKWLVvi6uoKgI+PDyYmJlhbW8d6r52dHT4+Pp/dt4uLC1ZWVvpHtmzZEvOjCBEn9jltmX9mKi0HNQJgx7z9DKs+iTcv36mcTAiRGuQvnYep+0ZhksYYt31XmdtzOdHR0WrHShDJtuz8NcDNmjVjyJAhlChRgtGjR9O4cWNWrlz5TfseM2YM/v7++sfLly8TIrIQ38zYxJi+C7ox6bfhmFul5a7bA/qUHMGlg+5qRxNCpALFqxVhwvZh6Ix0nNh0ltUjN6kdKUEk27KTMWNGjIyMKFy4cKznCxUqpL8by97envDwcPz8/GJt4+vri729/Wf3bWpqiqWlZayHEMlJ5RblWXHtR/KXyUPg+yDGN5nF4n6rCfILVjuaEMLAVWhcmpHrnQHYtfAAz++m/AMCybbsmJiYULZsWTw9PWM9/+DBA3LkyAFA6dKlMTY25sSJE/rXPT09efHiBU5OTkmaV4iEljmXHQvOTtPPg7F/5e/0KDSIk1vPkUzuKxBCGKiaHapQqUU5oqMVfp7wq9pxvpmqZScoKIgbN25w48YNAJ4+fcqNGzf0R25GjBjBtm3bWL16NY8ePWLp0qXs37+ffv36AWBlZUXPnj0ZOnQop06dwt3dne7du+Pk5BTnO7GESM5MTI1xXtyDOScmka2AAx98/XHpuIjR9abx6qG32vGEEAas+7R2aLUazu++zL1LD9WO801UvfX89OnT1KhR41/Pd+3alfXr1wOwbt06XFxcePXqFQUKFGDKlCk0a9ZMv21oaCjDhg1j69athIWFUa9ePZYvX/6fp7H+SW49FylBeFgEO+buY8uM3wgPjcDY1Jj2o1vQdlSzFHGLqBAi5fmx+1KObXClRM2izDk+Se04/xLXn9/JZp4dNUnZESmJ12MflvRfw9WjNwHIki8zA5f1olTtYionE0IYGp9nb+heYCCREVHM/n1Csvs+k+Ln2RFCfJpDHntmHhrH+G1DscmcntcPvRlVdxounRbx3ueD2vGEEAbEPqctjX+oC8C6cVtS7PWCUnaESIE0Gg3VvnNi3b2FNO/fAK1Ww8kt5+hRaDD7VxwlKipK7YhCCAPRYVxL0pib4nnlMed2X1Y7zleRsiNECmZumRbnxT1YfNGFfKVzE+z/kcXOaxhcaTyPrj9VO54QwgCkt7Om1eCYNfyWDVzLi/uvVU4Uf1J2hDAABcrkYcnFmfRf0pO0lmbcv/wI57KjWDFkvUEu6ieESFrfjWhK9kJZ+MPrA0OrTsDz6mO1I8WLlB0hDIROp6OZc33W3l1I9bYViY5W2LXoID0LD+bsrktqxxNCpGDmlmmZ7zqV/GXy4P8ukBE1J3PjlIfaseJM7sZC7sYShunK0Rss7b8Gr8e+ANRoX4kBS3thkT6dysmEECnVx8AQJrX4kRsnPTA2NWbc1sFUal5OtTxyN5YQqVzZeiVYdWse7ce0QKvTcmrreXoXG4b7sZtqRxNCpFBpLcyYcWAMlZqXJSIsgqmt53J0/Sm1Y32RlB0hDJipmSk9ZnRg4bnpZMmXmXev3zO63nSWDlhL6McwteMJIVIgkzQmTNg+jLrdqhMdrTC3x3J2zt+vdqz/JGVHiFSgUPl8rLj2I0361gNg77Ij9Cs9Es8rj1ROJoRIiXRGOoat6UurITF3af00fCNndrqpnOrzpOwIkUqYmadh4LJezDw8DpvM6Xnp6cXAiuPYOHk7kRGRascTQqQwWq2WH+Z2ofmAvxcrTq6k7AiRypStV4LVt+fF3LEVFc0vU3cwuPJ4XnqmvLkzhBDq0mg0+qM7N0/d4c2Ltyon+jQpO0KkQpY2FozbOoQxmweRztoczyuP6VtqJHuWHiY6OlrteEKIFMQ+py3FqhVGURSObzqrdpxPkrIjRCpWs31lVt2aR6k6xQgLCWfZwHWMaTCDd6//UDuaECIFqdOlOgDHf3FNlutnSdkRIpXLlDUDLofH4byoByZpjLl27BbfOw7j5NZzakcTQqQQVVqVx9TMhJeeXsnyxgcpO0IItFotzQc0YMW1OeQvk4cgv2BcOi5iRvsFBLwPVDueECKZM7dMS6UWMZML/r7BVeU0/yZlRwihl71gFhadn07nid+h1Wk5ve0CPQsN5tCaE7KSuhDiP9XuXA2A09vOEx4WoXKa2KTsCCFiMTI2osvkNiw6P51sBbPg9zaABb1X0r/cGG6fvad2PCFEMlWqtiM2mdMT+D6Iw2tOqB0nFik7QohPKlguH6tuzqXv/G6YW6Xl0fWnDK02kRntFyTb20uFEOrR6XS0HdEMgFUjNvLk1nOVE/1Nyo4Q4rOMjI1oObgR6x8splHvOmg0Gk5vu0D3goPYOHm7LDkhhIil+cAGlG1QkvDQCKa3nU9IUIjakQApO0KIOLDOZMXglb1Z7j6bYtUKEx4awS9Td9Cj4CBO/Xo+Wd5qKoRIelqtllEb+pPBIWaW9iX916odCZCyI4SIh7wlcjH35GQmbB+KXY5MvH31BzM7LGRI1Qk8cH+sdjwhRDJgldGSsVsGo9VqOLbRld83nFY7kpQdIUT8aDQaqrZ2Yu3dBXSb2o40aU25c96T/uXGMK/nct77fFA7ohBCZcWqFqbL5LYALHFew/N7r1TNI2VHCPFVTM1M6Ti+FevuL6JWxyooisKRn0/RvcAgts/Zm+xuPRVCJK12Y5pTqrYjoR/DmN52PmEh6l3jJ2VHCPFNMmXNwOhfBrLw3HTyl8nDx8AQVo/axPeOQ3Hbf1Wu5xEildLpdIzaOID0dlY883jJVpfdqmWRsiOESBBFKhZgycWZDF/Xj/R2Vng98mFis9lMaDpLblUXIpWysU+P8+KeAOxf8btqR3ek7AghEoxWq6Vetxr87LmYtiObYWSs49LBa/QqOpQ9Sw/LLMxCpEKVW5bDPmcmAv4I5IRKq6JL2RFCJDhzy7T0mtWJldfnUNgpPyFBoSwbuI6hVSfy7M5LteMJIZKQTqej+YCGAOxadFCVU9tSdoQQiSZH4WwsODuNAUt7YZYuDXfdHtC31Ag2TNomFzALkYrU71EDs3RpeH73FdeO30ryry9lRwiRqLRaLU371WPNnQVUaFKayIgoNk3bSd9SI/A4f1/teEKIJGBuZU697jWAmKM7SU3KjhAiSdhmy8jUPaMYv20o1rZWvLj3miFVJrDYeQ3BAR/VjieESGQtBjZEo9Fw+dB1Xnq+TtKvLWVHCJFkNBoN1b6LmZCw/p+/5e1fcZReRYZwYd8VldMJIRKTQx57nJqWAWD3okNJ+rWl7AghkpyljQXD1vZj9rGJOOSx493r90xq/iPT2s6XGZiFMGAtBzUC4NCaE1w/eTvJvq6UHSGEakrVcuSnm/NoM6IZWp2WMzvc6Fl4CEfWnZTJCIUwQMWqFaZG+0pERUYxtfW8JFtGQqPIdxQCAgKwsrLC398fS0tLteMIkSo9uv6U+d+v4OG1pwCUqFmUQSt6kzVfZpWTCSESUnhoOCNqT+XuBU/sc9my2G0m6W2tvmpfcf35LUd2hBDJQt6SuVhy0YXeP3bG1MyEGyc96FVkCEv6r+GDr5/a8YQQCcQkjQlTdo/AIY8dPk/fMKn57ESfWVnKjhAi2dAZ6fhueFNW3ZpH2QYliYqMYt/yo3TJ25+Nk7fzMTBE7YhCiARgncmK6QfGYJHenHsXH/Jjt2VER0cn2teTsiOESHYc8tgz8+BY5pyYRIGyeQgNDuOXqTvomm8Ae5cdISJcJiQUIqXLViALk3aNwMhYx5kdbvw8bmuifS25Zge5ZkeI5ExRFM7svMi6cVvweuQDgEMeO7pPb0/V75zQauV3NiFSsmMbXfmx21IARm7oT53O1eL8XrlmRwhhEPRz89xZwMBlvWJWVH/sy4z2C+lffgzXTiTd7atCiIRXp0s12o1uAcBvCw4kyteQIzvIkR0hUpKQoBB+W3CQ7XP2EhIUCkDpusXp5dKRvCVzqZxOCPE13nm9p33WH9BoNOx+/zPmVuZxep8c2RFCGCSzdGZ0mtCaDY+W0nxAA4yMdbj/fpO+pUfi0mkR3k991Y4ohIinjA42OOS1R1EUPM57Jvj+pewIIVKk9LZWOC/qwbp7i6jZoTIAJ7eco0fBQSwf/DN+b/1VTiiEiI9iVQoBcPvM3QTft5QdIUSKljm3HWM2DWKF+4+UrlucyIgodi8+RNe8A9gycxfhoeFqRxRCxIFj1cIA3D57L8H3LWVHCGEQ8pbMxawj45n9+wTylcrFx8AQfh6/le8dh3LpoLva8YQQX+BYNebIjueVx4R+TNhJBqXsCCEMSqnaxVh6eRajfxlIBof0eD32ZXyTWUxoOguvxz5qxxNCfIZ9TlsyZc1AVGQU9y4+SNB9S9kRQhgcrVZLrY5VWHdvEW1GNENnpOPiAXd6FRnC+gm/JvhvjUKIb6fRaPRHd26fSdhTWVJ2hBAGK62FGd/P7sSqW/MoVacYEeGRbJ7xGz0LD+bsbxdlZXUhkpni1YoAcOrXc0RFRiXYflUtO2fOnKFJkyY4ODig0WjYs2fPZ7ft06cPGo2GhQsXxnr+/fv3dOzYEUtLS6ytrenZsydBQUGJG1wIkaJkL5iFWUfGM+m34dhmz8ibF++Y+t08RtebxvN7r9SOJ4T4U/V2lbDMYMGrB96c3HouwfaratkJDg6mePHiLFu27D+32717NxcvXsTBweFfr3Xs2JE7d+5w7NgxDhw4wJkzZ+jdu3diRRZCpFAajYbKLcqz9u5COk1ojbGpMdeO3+aH4sP5afhGggM+qh1RiFQvrYUZ3w1vCsCmaTsT7OiOqmWnQYMGTJ8+nRYtWnx2m9evXzNgwAA2b96MsbFxrNfu3bvHkSNHWLNmDeXLl6dy5cosWbKEX3/9FS8vr8SOL4RIgdKkNaXrlLasvbMAp6ZliIqMYuf8/fQoNJgTm8/KqS0hVNbMuR5WGS3weuTD8U1nEmSfyfqanejoaDp37syIESMoUqTIv153c3PD2tqaMmXK6J+rXbs2Wq2WS5cufXa/YWFhBAQExHoIIVKXzLntmLpnFNMPjMEhrz3vvT8wq/NihlabyKMbT9WOJ0SqZZbOjDYjmgGwefpvREZEfvM+k3XZmT17NkZGRgwcOPCTr/v4+GBraxvrOSMjI2xsbPDx+fwtpi4uLlhZWekf2bJlS9DcQoiUo3zDUqy+PZ8eMzqQJq0pHufu41xmFEv6r5FZmIVQSZN+9bC2tcL7iS/Hf/n2ozvJtuy4u7uzaNEi1q9fj0ajSdB9jxkzBn9/f/3j5cuXCbp/IUTKYmJqTPsxLVh7byHV2jgRHa2wb/lROud2ZvWoTVJ6hEhiZuZpaDvyr6M7O7/56E6yLTtnz57lzZs3ZM+eHSMjI4yMjHj+/DnDhg0jZ86cANjb2/PmzZtY74uMjOT9+/fY29t/dt+mpqZYWlrGegghhG22jIz/dSizj00kX6lchAaHsX3OXjrncmb1yF/48EZKjxBJpXGfuqS3s8Ln2VuObXT9pn0l27LTuXNnbt26xY0bN/QPBwcHRowYwdGjRwFwcnLCz88Pd/e/p4I/efIk0dHRlC9fXq3oQogUrlQtR5Zdmc20faPJVzo3oR/D2D53H11yO/PT8I188PVTO6IQBi9NWlO+GxZzZ9beZUe+6eYBjaLirQdBQUE8evQIgJIlSzJ//nxq1KiBjY0N2bNn/9f2OXPmZPDgwQwePFj/XIMGDfD19WXlypVERETQvXt3ypQpw5YtW+KcIyAgACsrK/z9/eUojxAiFkVRuHzoGr9M3YHnlccAmJqZ0LhPXdqMaIqNfXqVEwphuALeB9Iuyw9EhEWw5OJMCpbLF/v1OP78VvXIztWrVylZsiQlS5YEYOjQoZQsWZKJEyfGeR+bN2+mYMGC1KpVi4YNG1K5cmVWrVqVWJGFEKmMRqOhfKPSLLnowvQDYyhYLi9hIeH8tuAAnXM7s3Loet77fFA7phAGydLGgmptnAA4+NOxr96Pqkd2kgs5siOEiCtFUbh69AYbp+zg/qWHAJikMaZR7zq0HdWcDJnlSI8QCcnj/H2GVJmAqZkJv75eRTprc/1rKeLIjhBCpDQajYay9Uuy+MIMZh4eR2Gn/ISHRrB78SG65HFm2aB1vPN6r3ZMIQxGkYoFyFkkG2Eh4V89yaCUHSGE+AoajYay9Uqw8Nx0Zh0dT+GKBQgPjWDPksN0ydOfZQOl9AiREDQaDY161wHg4KpjX3WhspQdIYT4BhqNhtJ1irPw7DRm/z6BIpUKEBEWwZ6lh+mWbwDrxm0h2D9Y7ZhCpGi1O1fF1MyEZx4vuev2IN7vl7IjhBAJQKPRUKp2MRacmcbsYxMpUqkAYSHhbHXZTdd8A9iz5DAR4RFqxxQiRUpnbU71tpUAOLL2RLzfL2VHCCESkEajoVQtRxacmcaU3SPJVsAB/3eBLBu0jl5FhuC6w00WGxXiK1RvF1N2rp/0iPd7pewIIUQi0Gg0VGxWltW35zNoRW/S21nh9diX6W3nM7DiOG6fvad2RCFSlCIV86PVafF9/hbf52/j9V4pO0IIkYh0Rjoa/1CHDQ+X0GVSG9KYm3L/0kOGVpvIpBY/8uL+a7UjCpEimKUzI3/p3ADx/mVByo4QQiQBs3RmdJ70HRseLqHxD3XQ6rRc2HuF7x2HsrDPKpmYUIg4cKxSCIDbZ+7G631SdoQQIgnZ2Kdn0IrerL49n0rNyxIdFc3BVcfomm8AGydvJyQoRO2IQiRbjlULA/E/siMzKCMzKAsh1ONx7h6rRv7CvYsxszGnt7Oi86Q2NOhZEyNjI5XTCZG8BH4IolXGHiiKwnbv1ejMtDKDshBCJHdFKxdi0fkZTNwxDIe89nzw9Wdxv9X0LjYM1x1uREVFqR1RiGTDIn06cjnGLBQen6M7UnaEEEJlGo2GKq0qsPbOAvov6Yl1Jkteenoxve18uhcYxJ6lhwkJDlU7phDJwl/X7dxyjft1O1J2hBAimTAyNqKZc33WP1xC54nfYWGTDu8nviwbuI6O2fuwbtwW/vCWC5lF6qa/SPlc3I/syDU7yDU7QojkKfRjGMc2nGbnggN4PfIBwNjEiJodqtB6WBNyFsmmckIhkt4f3h9ol6U3Go2G9U8XkSWHg1yzI4QQKVWatKY06VuPdfcWMum34THrboVHcnT9Kb53HMrYhjO4duK2zMgsUpUMmdPjkMcORVG4f/lhnN4jZUcIIZI5nU5H5RblWXh2OovOT6dKq/JotRquHLnBqDpT6Vt6JMc3nSEyIlLtqEIkiaJ/nsqK66KgUnaEECIFKexUgIk7hvOz52KaOdcnTVpTHt94xuwuS+iSpz/b5+yVVdaFwXOsHL+yI9fsINfsCCFSroD3gRxYeYw9Sw7xwdcfgLQWZjToWZMWgxphlyOTygmFSHivHnrTvcBAMFY4Hv7bF39+S9lByo4QIuULD4vg5JZz7Jy3j+d3XwGg1Wmp0b4SHce1IluBLConFCLhKIpCW4fveevzjtPslQuUhRAiNTAxNaZ+9xqsvj2fmYfGUrKWI9FR0ZzYdJZeRYYwq/NiXnrKoqPCMGg0Gv11O3EhZUcIIQyIRqOhbP2S/HhsIksvz6JCk9JERyuc2BxTelw6LZKV1oVByFUke5y3lbIjhBAGqkCZPEzbO5plV2bh1LQM0dEKJ7eco1eRIczsuJDn916pHVGIr2acxjjO20rZEUIIA5e/dB6m7hnF8quzqdisLIqicGrreb4vOpQZHRby/O5LtSMKEW8mplJ2hBBC/EO+UrmZsnskK679SKUW5VAUhdO/nud7x2FMbzefZ3ek9IiUQ47sCCGE+Ky8JXIx+bcRrLw+h8oty6MoCq7b3ehdbBjT2s7nqccLtSMK8UXGcmRHCCHEl+QpnpNJO4fz0425VGkVU3rO7IgpPVPbzOPp7edqRxTis0zkyI4QQoi4yl0sBxN3DGfVzblUaV0BgLM7L9K7+HAmt5rDteO3iI6OVjmlELHJkR0hhBDxlssxBxO3D2PVrXlUa+OERqPh/O7LjKo7jW75B7LVZTfvfT6oHVMIQI7sCCGE+Aa5imZn/K9DWXVrHk361iOtpRneT3xZN24LHbL3ZUrruVw5cp2oqCi1o4pULCIsIs7bynIRyHIRQgjxX0KCQzmzw41Dq4/HWnjRLkcm6veoSf0eNciYJYOKCUVqtHnGb6wZ/0uclouQsoOUHSGEiKunHi84tPo4x385Q5BfzOrqWq2Gco1K0ej7OpStXwKdkU7llCI1mNFhIce3npayE1dSdoQQIn7CQsI4+9slDq0+zu2z9/TPZ8xiQ/0eNWnQsya22WXFdZF4vi82lEe3n0jZiSspO0II8fVe3H/NodXHObbRlYA/AoGYNbrK1C9Bo+9rU75RKYyMjVROKQxJRHgETdJ1JiwiVMpOXEnZEUKIbxceFsH53Zc5tOY4N0566J+3yZyexr3r0LhvXdLbWqmYUBiKZ3de8r3jUIzT6TgcuO2LP7/lbiwhhBAJwsTUmBrtKjHn+CTWP1hM25HNsLa14r33BzZO2U7H7H2Y22M5T27JZIXi2zz7c5bv7IWyxml7KTtCCCESXJa8mek1qxNbXqxg7JbBFCyfj4jwSI6uP8UPJYYzovYU3PZflckKxVd55hGzjluOQlnitL2cRBVCCJFojE1ijvbUaFeJuxcfsHvRQc7svMiNkx7cOOmBQ157WgxsSL1u1TFLZ6Z2XJFCPLvz55GdwtnitL0c2RFCCJEkClfIz7itQ/jl8VLajGhGOmtzvB75sGzgOtpn68OqERvxff5W7ZgiBXj615GdwnE7jSUXKCMXKAshhBpCgkI4tvEMuxcf5NUDbyBmzp5KLcvTanBjCjvlR6PRqJxSJDehH8NoatEZRVFY+2g+OfJkl7ux4kLKjhBCqCc6Oporh6+za9FBrh2/rX++QNk8tBzcmKqtK8it60LvgftjnMuOxtrWirUP5sfp57ecxhJCCKEqrVZL+Ualmf37RFbdmkf9HjUxNjXG88pjXDouonNuZ7a67Obtqz/UjiqSgb8uTs5ZNG7X64CUHSGEEMlIrqLZGbamL1terKDb1HbY2Fvz7vX7Pxch7cPAimPZMXcf3k991Y4qVPLXbec5i8S97MhpLOQ0lhBCJFfhYRG4br/AodXHuXPek///kZW3ZC4qtyxP1dYVyFYgbrcgi5Ttvc8H+pQcwQdff4at7UfFVqXj9PNbyg5SdoQQIiX4w/sD53df5uyui9w6fYfo6L9/fOUsko3KLctTpVUFcjlmlwubDVBUVBSj607jxqk75CyajSUXXQiPDJOyE1dSdoQQImXxe+vPhb1XObfrItdP3CYyIkr/mkNee6q2qkDlVhXIXzq3FB8DsWHSNjZN20kac1OWXZlN9oJZ4vzzW8oOUnaEECIlC/wQxMX97pzddZGrR28SERahf80uRyYqtyhHldZOFKqQD61WLlVNidyP3WRM/RkoisLoXwZSq2MVIO4/v6XsIGVHCCEMxcfAEC4fusbZXZe4fPAaoR/D9K9lcEhP5RblqdmhMoUqyBw+KcU7r/f0LTkCv7cBNOxViyGr+uhfi+vPb1Ur7pkzZ2jSpAkODg5oNBr27Nmjfy0iIoJRo0bh6OiIubk5Dg4OdOnSBS8vr1j7eP/+PR07dsTS0hJra2t69uxJUFBQEn8SIYQQyUFaCzOqt63EhG1D2fFmLZN+G06tjlVIa2nGH14f2LvsCIMqjadrvgFsmLSNVw+91Y4s/kNUZBQuHRfh9zaA3MVz0G9R96/aj6pHdg4fPsz58+cpXbo0LVu2ZPfu3TRv3hwAf39/Wrduzffff0/x4sX58OEDgwYNIioqiqtXr+r30aBBA7y9vfnpp5+IiIige/fulC1bli1btsQ5hxzZEUIIwxYeFsH147c4te0853dfJjT47yM+Bcvno1bHKlRvWxHrTFYqphT/9PP4rWyZuQuzdGlYfnU2WfM7xHo9xZ3G0mg0scrOp1y5coVy5crx/PlzsmfPzr179yhcuDBXrlyhTJkyABw5coSGDRvy6tUrHBwcPruv/ydlRwghUo+Q4FAu7LnCic1ncP/9pv6uLp2RjrL1S1C7U1UqNCmNqZmpyklTtytHbzCu4UwURWHc1sFUb1vpX9vE9ed3ipp/29/fH41Gg7W1NQBubm5YW1vriw5A7dq10Wq1XLp0iRYtWnxyP2FhYYSF/d3qAwICEjW3EEKI5MPMPA21OlahVscqvPf5wOlfL3B88xkeuj/h4gF3Lh5wJ62FGVVaVaBWpyoUr15ELmxOYm9f/cHszotRFIUmfep+sujER4opO6GhoYwaNYr27dvr25uPjw+2traxtjMyMsLGxgYfH5/P7svFxYUpU6Ykal4hhBDJn419eloObkTLwY14fu8VJzad4eSWc/g+f8vR9ac4uv4UmbJmoEb7ytTuVIVcjjnUjmzwoiKjmNlhIf7vAslbMhd95nf95n2miKoaERFBmzZtUBSFFStWfPP+xowZg7+/v/7x8uXLBEgphBAiJctRKCs9ZnRg4+OlzHedSsNetTC3SsvbV3+wfc5eehcfzg8lh7Nj7j58nr0hmVwFYnB+Hr8Vj3P3SWtpxoTtQzFJY/LN+0z2R3b+KjrPnz/n5MmTsc7J2dvb8+bNm1jbR0ZG8v79e+zt7T+7T1NTU0xN5VysEEKIf9NqtThWKYRjlUI4L+7BpUPXObHJlUsHr/Hk5nNW3fyFVSN/wSZzegpVyEfhCvkpVCE/+cvklut8vkFkRCRH1p1i2497ARi+th8OeT7/szw+knXZ+avoPHz4kFOnTpEhQ4ZYrzs5OeHn54e7uzulS5cG4OTJk0RHR1O+fHk1IgshhDAgJmlMqNKyPFValifgfSBndlzk5Jaz3HV7wPs/l684v/syEHOBc+7iOfTlp7BTfuxz2cp8Pl8Q+CGIQ6tPsGfJId69fg9A8/4NqNKqQoJ9DVXvxgoKCuLRo0cAlCxZkvnz51OjRg1sbGzInDkzrVu35tq1axw4cAA7Ozv9+2xsbDAxiTms1aBBA3x9fVm5cqX+1vMyZcrIredCCCESTejHMB5de8Jdtwfcu/RQX37+ydrWikIV8lGofEz5yV8mN2bpzFRInPy8fuTN7kWHOLr+lH4qABt7a5oPaMh3w5tgZPzl4zEp4tbz06dPU6NGjX8937VrVyZPnkyuXLk++b5Tp05RvXp1IGZSwf79+7N//360Wi2tWrVi8eLFpEuXLs45pOwIIYT4Foqi8Pblu5jyc/Ehdy8+4NG1J7HW7ALQajXkKpaDQuXzUdipAIUq5MMhr32qudtLURQ8zt3ntwX7ubD3qv66p9zFctBqSGOqt6uEialxnPeXIspOciFlRwghREILDw3n0fWn+qM/99we8PbVH//azixdGnIVy0GeYjnIXTwnuYvnIJdjdszM06iQOnFERkRyZudFfltwgAdXH+ufL9ewJK2GNKFkzaJfdbpPyk48SNkRQgiRFN6++oN7F/8++vPQ/UmshUv/otFocMhrT+7iOchTLKYA5Smeg0zZMqaoa4CC/II5tPo4e5Yc1hc9kzTG1OlcjRaDG5GjUNZv2r+UnXiQsiOEEEINUZFRvPT04snNZzy++Zwnt57x5OZz3vv4fXJ7i/Tm5CqWg9zFcpDnz6NAOYtkS5DbsxNKVFQUrx/6sH/FUY6sO6m/Hie9nRVN+9WncZ86CbYsh5SdeJCyI4QQIjn58MafJzdjis/jPwvQi3uviYqM+te2Wp2WbAUcyFEkG1YZLbG0SYfFJx6WNulIl94cY5O4XxPzT1GRUfzh/YF3r/7g7av3f/7zD969/oO3L2P+/Q+vD0RHRevfk8sxO62GNKZG+8rxuh4nLqTsxIOUHSGEEMldeFgEL+694snN5zFHgm4958nN5wT8ERiv/ZilS/PvIpQ+9n+bmpnwh7cfb1++iykyfxab994f9GuJ/RetTkvpusVpPaQxJWs5JtqpNyk78eDv74+1tTUvX76UsiOEECLFUBSF994feOrxAq/HvgR9CCLwQzBBfsEEvQ8i6EMwAR+CCfoQRLDfxwSZ9VlnpCODQ3psHNKTMYsNGTLbkDFLzCNDFhsyOqTH2tYKnZEuAT7hfwsICCBbtmz4+flhZfX5U2PJelLBpBIYGNOKs2XLpnISIYQQIpmLBF78+UgmAgMD/7PsyJEdIDo6Gi8vLywsLFS9yv2vhipHmGLIePxNxiI2GY+/yVjEJuPxt9QwFoqiEBgYiIODw3/OVSRHdohZByVr1m+7/S0hWVpaGuwfzK8h4/E3GYvYZDz+JmMRm4zH3wx9LP7riM5fUseUjUIIIYRItaTsCCGEEMKgSdlJRkxNTZk0aRKmpqZqR0kWZDz+JmMRm4zH32QsYpPx+JuMxd/kAmUhhBBCGDQ5siOEEEIIgyZlRwghhBAGTcqOEEIIIQyalB0hhBBCGDQpO4ksZ86caDSafz2cnZ1jbacoCg0aNECj0bBnz55Yr7148YJGjRqRNm1abG1tGTFiBJGRkUn4KRJOXMbDzc2NmjVrYm5ujqWlJVWrViUkJET/+vv37+nYsSOWlpZYW1vTs2dPgoKC1Pg43+RLY+Hj40Pnzp2xt7fH3NycUqVK8dtvv8Xah6GMBUBUVBQTJkwgV65cmJmZkSdPHqZNmxZrLR9FUZg4cSKZM2fGzMyM2rVr8/Dhw1j7MYQx+dJYREREMGrUKBwdHTE3N8fBwYEuXbrg5eUVaz+GMBYQtz8b/69Pnz5oNBoWLlwY63lDGI+4jsW9e/do2rQpVlZWmJubU7ZsWV68+Ht9h9DQUJydncmQIQPp0qWjVatW+Pr6JvXHSTqKSFRv3rxRvL299Y9jx44pgHLq1KlY282fP19p0KCBAii7d+/WPx8ZGakULVpUqV27tnL9+nXl0KFDSsaMGZUxY8Yk7QdJIF8ajwsXLiiWlpaKi4uL4uHhody/f1/Ztm2bEhoaqt9H/fr1leLFiysXL15Uzp49q+TNm1dp3769Sp/o631pLOrUqaOULVtWuXTpkvL48WNl2rRpilarVa5du6bfh6GMhaIoyowZM5QMGTIoBw4cUJ4+fars2LFDSZcunbJo0SL9NrNmzVKsrKyUPXv2KDdv3lSaNm2q5MqVSwkJCdFvYwhj8qWx8PPzU2rXrq1s27ZNuX//vuLm5qaUK1dOKV26dKz9GMJYKErc/mz8ZdeuXUrx4sUVBwcHZcGCBbFeM4TxiMtYPHr0SLGxsVFGjBihXLt2TXn06JGyd+9exdfXV79Nnz59lGzZsiknTpxQrl69qlSoUEGpWLGiGh8pSUjZSWKDBg1S8uTJo0RHR+ufu379upIlSxbF29v7X2Xn0KFDilarVXx8fPTPrVixQrG0tFTCwsKSMnqi+Od4lC9fXhk/fvxnt797964CKFeuXNE/d/jwYUWj0SivX79O9LyJ6Z9jYW5urmzcuDHWNjY2Nsrq1asVRTG8sWjUqJHSo0ePWM+1bNlS6dixo6IoihIdHa3Y29src+bM0b/u5+enmJqaKlu3blUUxXDG5Etj8SmXL19WAOX58+eKohjOWChK3Mfj1atXSpYsWRQPDw8lR44cscqOoYxHXMaibdu2SqdOnT67Dz8/P8XY2FjZsWOH/rl79+4pgOLm5pbwoZMBOY2VhMLDw9m0aRM9evTQLzj68eNHOnTowLJly7C3t//Xe9zc3HB0dMTOzk7/XL169QgICODOnTtJlj0x/HM83rx5w6VLl7C1taVixYrY2dlRrVo1zp07p3+Pm5sb1tbWlClTRv9c7dq10Wq1XLp0SY2PkSA+9WejYsWKbNu2jffv3xMdHc2vv/5KaGgo1atXBwxvLCpWrMiJEyd48OABADdv3uTcuXM0aNAAgKdPn+Lj40Pt2rX177GysqJ8+fK4ubkBhjMmXxqLT/H390ej0WBtbQ0YzlhA3MYjOjqazp07M2LECIoUKfKvfRjKeHxpLKKjozl48CD58+enXr162NraUr58+ViXR7i7uxMRERHr71LBggXJnj27/u+SoZGFQJPQnj178PPzo1u3bvrnhgwZQsWKFWnWrNkn3+Pj4xOr6AD6//bx8Um0rEnhn+Px5MkTACZPnszcuXMpUaIEGzdupFatWnh4eJAvXz58fHywtbWNtR8jIyNsbGxS9Hh86s/G9u3badu2LRkyZMDIyIi0adOye/du8ubNC2BwYzF69GgCAgIoWLAgOp2OqKgoZsyYQceOHYG//7x/6u/DX68Zyph8aSz+KTQ0lFGjRtG+fXv9go+GMhYQt/GYPXs2RkZGDBw48JP7MJTx+NJYvHnzhqCgIGbNmsX06dOZPXs2R44coWXLlpw6dYpq1arh4+ODiYmJvhj/5f//LhkaKTtJaO3atTRo0AAHBwcA9u3bx8mTJ7l+/brKydTxz/GIjo4G4IcffqB79+4AlCxZkhMnTrBu3TpcXFxUy5rY/jkWABMmTMDPz4/jx4+TMWNG9uzZQ5s2bTh79iyOjo4qpk0c27dvZ/PmzWzZsoUiRYpw48YNBg8ejIODA127dlU7XpKKz1hERETQpk0bFEVhxYoVKiVOXF8aD3d3dxYtWsS1a9f0R0YN1ZfG4q/vo82aNWPIkCEAlChRggsXLrBy5UqqVaumZnz1qH0eLbV49uyZotVqlT179uifGzRokKLRaBSdTqd/AIpWq1WqVaumKIqiTJgwQSlevHisfT158kQBYl2omtJ8ajz++ly//PJLrG3btGmjdOjQQVEURVm7dq1ibW0d6/WIiAhFp9Mpu3btSvzgieBTY/Ho0SMFUDw8PGJtW6tWLeWHH35QFMXwxiJr1qzK0qVLYz03bdo0pUCBAoqiKMrjx48VQLl+/XqsbapWraoMHDhQURTDGZMvjcVfwsPDlebNmyvFihVT3r17F+s1QxkLRfnyeCxYsOCz30tz5MihKIrhjMeXxiIsLEwxMjJSpk2bFmubkSNH6i9APnHihAIoHz58iLVN9uzZlfnz5ydeeBXJNTtJ5Oeff8bW1pZGjRrpnxs9ejS3bt3ixo0b+gfAggUL+PnnnwFwcnLi9u3bvHnzRv++Y8eOYWlpSeHChZP0MySkT41Hzpw5cXBwwNPTM9a2Dx48IEeOHEDMePj5+eHu7q5//eTJk0RHR1O+fPmkCZ/APjUWHz9+BECrjf1XVKfT6X9zM7Sx+Pjx439+3ly5cmFvb8+JEyf0rwcEBHDp0iWcnJwAwxmTL40F/H1E5+HDhxw/fpwMGTLE2t5QxgK+PB6dO3f+1/dSBwcHRowYwdGjRwHDGY8vjYWJiQlly5b9z++jpUuXxtjYONbfJU9PT168eKH/u2Rw1G5bqUFUVJSSPXt2ZdSoUV/cls/cel63bl3lxo0bypEjR5RMmTKl2FvPFeW/x2PBggWKpaWlsmPHDuXhw4fK+PHjlTRp0iiPHj3Sb1O/fn2lZMmSyqVLl5Rz584p+fLlS3G3j/7lc2MRHh6u5M2bV6lSpYpy6dIl5dGjR8rcuXMVjUajHDx4UL+dIY1F165dlSxZsuhvqd21a5eSMWNGZeTIkfptZs2apVhbWyt79+5Vbt26pTRr1uyTt56n9DH50liEh4crTZs2VbJmzarcuHEj1hQG/3+XpiGMhaLE7c/GP/3zbixFMYzxiMtY7Nq1SzE2NlZWrVqlPHz4UFmyZImi0+mUs2fP6rfp06ePkj17duXkyZPK1atXFScnJ8XJyUmNj5QkpOwkgaNHjyqA4unp+cVt/1l2FCXmNEeDBg0UMzMzJWPGjMqwYcOUiIiIREqb+L40Hi4uLkrWrFmVtGnTKk5OTrH+giqKovzxxx9K+/btlXTp0imWlpZK9+7dlcDAwKSInuD+aywePHigtGzZUrG1tVXSpk2rFCtW7F+3ohvSWAQEBCiDBg1SsmfPrqRJk0bJnTu3Mm7cuFg/vKOjo5UJEyYodnZ2iqmpqVKrVq1/jZ0hjMmXxuLp06cK8MnH/8/hZQhjoShx+7PxT58qO4YwHnEdi7Vr1yp58+ZV0qRJoxQvXjzWaXJFUZSQkBClX79+Svr06ZW0adMqLVq0ULy9vZPyoyQpjaJ8ZgpKIYQQQggDINfsCCGEEMKgSdkRQgghhEGTsiOEEEIIgyZlRwghhBAGTcqOEEIIIQyalB0hhBBCGDQpO0IIIYQwaFJ2hBBCCGHQpOwIIYQQwqBJ2RFCpAqnT5+mVKlSmJqakjdvXtavX692JCFEEpGyI4QweE+fPqVRo0bUqFGDGzduMHjwYHr16qVfEVsIYdhkbSwhRIr39u1bHB0dGThwIGPHjgXgwoULVK9encOHD/P7779z8OBBPDw89O9p164dfn5+HDlyRK3YQogkIkd2hBApXqZMmVi3bh2TJ0/m6tWrBAYG0rlzZ/r370+tWrVwc3Ojdu3asd5Tr1493NzcVEoshEhKRmoHEEKIhNCwYUO+//57OnbsSJkyZTA3N8fFxQUAHx8f7OzsYm1vZ2dHQEAAISEhmJmZqRFZCJFE5MiOEMJgzJ07l8jISHbs2MHmzZsxNTVVO5IQIhmQsiOEMBiPHz/Gy8uL6Ohonj17pn/e3t4eX1/fWNv6+vpiaWkpR3WESAXkNJYQwiCEh4fTqVMn2rZtS4ECBejVqxe3b9/G1tYWJycnDh06FGv7Y8eO4eTkpFJaIURSkruxhBAGYcSIEezcuZObN2+SLl06qlWrhpWVFQcOHODp06cULVoUZ2dnevTowcmTJxk4cCAHDx6kXr16akcXQiQyKTtCiBTv9OnT1KlTh1OnTlG5cmUAnj17RvHixZk1axZ9+/bl9OnTDBkyhLt375I1a1YmTJhAt27d1A0uhEgSUnaEEEIIYdDkAmUhhBBCGDQpO0IIIYQwaFJ2hBBCCGHQpOwIIYQQwqBJ2RFCCCGEQZOyI4QQQgiDJmVHCCGEEAZNyo4QQgghDJqUHSGEEEIYNCk7QgghhDBoUnaEEEIIYdD+B1IppdUBrRo/AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "m1.draw_mncontour(\"x0\", \"x1\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before moving on, we briefly explore a possible refinement of the previous method, which is to hide the nuisance parameters from Minuit with a nested fit. It turns out that this technique is not an improvement, but it is useful to show that explicitly.\n", "\n", "The idea is to construct an outer cost function, which only has the yields as parameters. Inside the outer cost function, the best nuisance parameters are found for the current yields with an inner cost function. Technically, this is achieved by calling a minimizer on the inner cost function at every call to the outer cost function.\n", "\n", "Technical detail: It is important here to adjust Minuit's expectation of how accurate the cost function is computed. Usually, Minuit performs its internal calculations under the assumption that the cost function is accurate to machine precision. This is usually not the case when a minimizer is used internally to optimize the inner function. We perform the internal minimization with SciPy, which allows us to set the tolerance. We set it here to 1e-8, which is sufficient for this problem and saves a bit of time on the internal minimisation. We then instruct Minuit to expect only this precision." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 18.27 (chi2/ndof = 1.4) Nfcn = 60
EDM = 2.94e-08 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 800 50 0
1 x1 190 40 0
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1
x0 2.24e+03 -1.45e+03 (-0.756)
x1 -1.45e+03 (-0.756) 1.64e+03
" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 18.27 (chi2/ndof = 1.4) │ Nfcn = 60 │\n", "│ EDM = 2.94e-08 (Goal: 0.0002) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ No Parameters at limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Below EDM threshold (goal x 10) │ Below call limit │\n", "├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n", "│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n", "└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ x0 │ 800 │ 50 │ │ │ 0 │ │ │\n", "│ 1 │ x1 │ 190 │ 40 │ │ │ 0 │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌────┬─────────────────────┐\n", "│ │ x0 x1 │\n", "├────┼─────────────────────┤\n", "│ x0 │ 2.24e+03 -1.45e+03 │\n", "│ x1 │ -1.45e+03 1.64e+03 │\n", "└────┴─────────────────────┘" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "precision = 1e-8\n", "\n", "def cost(yields):\n", " bins = len(n)\n", "\n", " def inner(nuisance):\n", " b = nuisance[:bins]\n", " s = nuisance[bins:]\n", " mu = 0\n", " for y, c in zip(yields, (b, s)):\n", " mu += y * c / np.sum(c)\n", " r = poisson_chi2(n, mu) + poisson_chi2(t[0], b) + poisson_chi2(t[1], s)\n", " return r\n", "\n", " bounds = np.zeros((2 * bins, 2))\n", " bounds[:, 1] = np.inf\n", " r = minimize(inner, np.ravel(t), bounds=bounds, tol=precision)\n", " assert r.success\n", " return r.fun\n", "\n", "cost.errordef = Minuit.LEAST_SQUARES\n", "cost.ndata = np.prod(n.shape)\n", "\n", "m2 = Minuit(cost, truth)\n", "m2.precision = precision\n", "m2.limits = (0, None)\n", "m2.migrad()\n", "m2.hesse()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We obtain the exact same result as expected, but the runtime is much longer (more than a factor 10), which disfavors this technique compared to the straight-forward fit. The minimization is not as efficient, because Minuit cannot exploit correlations between the internal and the external parameters that allow it to converge it faster when it sees all parameters at once." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Template fits\n", "\n", "The implementation described by [Barlow and Beeston, Comput.Phys.Commun. 77 (1993) 219-228](https://doi.org/10.1016/0010-4655(93)90005-W) solves the problem similarly to the nested fit described above, but the solution to the inner problem is found with an efficient algorithm.\n", "\n", "The Barlow-Beeston approach still requires numerically solving a non-linear equation per bin. Several authors tried to replace the stop with approximations.\n", "- [Conway, PHYSTAT 2011, https://arxiv.org/abs/1103.0354](https://doi.org/10.48550/arXiv.1103.0354) uses an approximation in which the optimal nuisance parameters can be found by bin-by-bin by solving a quadratic equation which has only one allowed solution.\n", "- [C.A. Argüelles, A. Schneider, T. Yuan, JHEP 06 (2019) 030](https://doi.org/10.48550/arXiv.1103.0354) use a Bayesian treatment in which the uncertainty from the finite size of the simulation sample is modeled with a prior (which is itself a posterior conditioned on the simulation result). A closed formula for the likelihood can be derived.\n", "- [H. Dembinski, A. Abdelmotteleb, Eur.Phys.J.C 82 (2022) 11, 1043](https://doi.org/10.1140/epjc/s10052-022-11019-z) derived an approximation similar to Conway, but which treats data and simulation symmetrically.\n", "\n", "All three methods are implemented in the built-in `Template` cost function (see documentation for details)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 11.52 (chi2/ndof = 0.9) Nfcn = 48
EDM = 6.05e-05 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 0.86e3 0.11e3 0
1 x1 190 40 0
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1
x0 1.16e+04 -1.56e+03 (-0.330)
x1 -1.56e+03 (-0.330) 1.94e+03
" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 11.52 (chi2/ndof = 0.9) │ Nfcn = 48 │\n", "│ EDM = 6.05e-05 (Goal: 0.0002) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ No Parameters at limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Below EDM threshold (goal x 10) │ Below call limit │\n", "├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n", "│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n", "└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ x0 │ 0.86e3 │ 0.11e3 │ │ │ 0 │ │ │\n", "│ 1 │ x1 │ 190 │ 40 │ │ │ 0 │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌────┬─────────────────────┐\n", "│ │ x0 x1 │\n", "├────┼─────────────────────┤\n", "│ x0 │ 1.16e+04 -1.56e+03 │\n", "│ x1 │ -1.56e+03 1.94e+03 │\n", "└────┴─────────────────────┘" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c = Template(n, xe, t, method=\"jsc\") # Conway\n", "m3 = Minuit(c, *truth)\n", "m3.limits = (0, None)\n", "m3.migrad()\n", "m3.hesse()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 61.24 Nfcn = 43
EDM = 1.03e-05 (Goal: 0.0001)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 660 70 0
1 x1 210 40 0
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1
x0 5.25e+03 -838 (-0.290)
x1 -838 (-0.290) 1.59e+03
" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 61.24 │ Nfcn = 43 │\n", "│ EDM = 1.03e-05 (Goal: 0.0001) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ No Parameters at limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Below EDM threshold (goal x 10) │ Below call limit │\n", "├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n", "│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n", "└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ x0 │ 660 │ 70 │ │ │ 0 │ │ │\n", "│ 1 │ x1 │ 210 │ 40 │ │ │ 0 │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌────┬───────────────────┐\n", "│ │ x0 x1 │\n", "├────┼───────────────────┤\n", "│ x0 │ 5.25e+03 -838 │\n", "│ x1 │ -838 1.59e+03 │\n", "└────┴───────────────────┘" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c = Template(n, xe, t, method=\"asy\") # Argüelles, Schneider, Yuan\n", "m4 = Minuit(c, *truth)\n", "m4.limits = (0, None)\n", "m4.migrad()\n", "m4.hesse()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 11.42 (chi2/ndof = 0.9) Nfcn = 47
EDM = 1.85e-06 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 760 90 0
1 x1 190 40 0
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1
x0 8.08e+03 -1.26e+03 (-0.329)
x1 -1.26e+03 (-0.329) 1.81e+03
" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 11.42 (chi2/ndof = 0.9) │ Nfcn = 47 │\n", "│ EDM = 1.85e-06 (Goal: 0.0002) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ No Parameters at limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Below EDM threshold (goal x 10) │ Below call limit │\n", "├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n", "│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n", "└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ x0 │ 760 │ 90 │ │ │ 0 │ │ │\n", "│ 1 │ x1 │ 190 │ 40 │ │ │ 0 │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌────┬─────────────────────┐\n", "│ │ x0 x1 │\n", "├────┼─────────────────────┤\n", "│ x0 │ 8.08e+03 -1.26e+03 │\n", "│ x1 │ -1.26e+03 1.81e+03 │\n", "└────┴─────────────────────┘" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c = Template(n, xe, t, method=\"da\") # Dembinski, Abdelmotteleb\n", "m5 = Minuit(c, *truth)\n", "m5.limits = (0, None)\n", "m5.migrad()\n", "m5.hesse()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "full fit\n", " x0 796 +- 47\n", " x1 187 +- 40\n", " correlation -0.76\n", "T(JSC)\n", " x0 858 +- 108\n", " x1 185 +- 44\n", " correlation -0.33\n", "T(ASY)\n", " x0 660 +- 72\n", " x1 205 +- 40\n", " correlation -0.29\n", "T(DA)\n", " x0 762 +- 90\n", " x1 194 +- 43\n", " correlation -0.33\n" ] } ], "source": [ "for title, m in zip((\"full fit\", \"T(JSC)\", \"T(ASY)\", \"T(DA)\"), (m1, m3, m4, m5)):\n", " print(title)\n", " cov = m.covariance\n", " for label, p, e in zip((\"x0\", \"x1\"), m.values, np.diag(cov) ** 0.5):\n", " print(f\" {label} {p:.0f} +- {e:.0f}\")\n", " print(f\" correlation {cov[0, 1] / (cov[0, 0] * cov[1, 1]) ** 0.5:.2f}\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "The yields found by the approximate Template methods (T) differ from those found with the exact Barlow-Beeston likelihood (BB) method, because the likelihoods are different. In this particular case, the uncertainty for the signal estimated by the Template methods is larger, but this not the case in general.\n", "\n", "The difference shows up in particular in the 68 % confidence regions." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c1 = m1.mncontour(\"x0\", \"x1\")\n", "c3 = m3.mncontour(\"x0\", \"x1\")\n", "c4 = m4.mncontour(\"x0\", \"x1\")\n", "c5 = m5.mncontour(\"x0\", \"x1\")\n", "plt.plot(c1[:,0], c1[:, 1], label=\"BB\")\n", "plt.plot(c3[:,0], c3[:, 1], label=\"T(JSC)\")\n", "plt.plot(c4[:,0], c4[:, 1], label=\"T(ASY)\")\n", "plt.plot(c5[:,0], c4[:, 1], label=\"T(DA)\")\n", "plt.xlabel(\"background yield\")\n", "plt.ylabel(\"signal yield\")\n", "plt.legend();" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "In this particular example, the BB method produces the smallest uncertainty for the background yield. The uncertainty for the signal yield is similar for all methods.\n", "\n", "In general, the approximate methods perform well, the `T(DA)` method in particular is very close to the performance of the exact BB likelihood. The `T(DA)` method also has the advantage that it can be used with weighted data and/or weighted simulated samples.\n", "\n", "For an in-depth comparison of the four methods, see [H. Dembinski, A. Abdelmotteleb, Eur.Phys.J.C 82 (2022) 11, 1043](https://doi.org/10.1140/epjc/s10052-022-11019-z)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.8.12 ('venv': venv)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)]" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "bdbf20ff2e92a3ae3002db8b02bd1dd1b287e934c884beb29a73dced9dbd0fa3" } } }, "nbformat": 4, "nbformat_minor": 2 }