Newer
Older
R_phipi / XGBoost_train.ipynb
@Davide Lancierini Davide Lancierini on 25 Jan 2019 146 KB Fixed k-folding
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import os\n",
    "import pickle\n",
    "import math\n",
    "\n",
    "from sklearn.metrics import accuracy_score, roc_auc_score\n",
    "\n",
    "from xgboost import XGBClassifier\n",
    "from tools.data_processing import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# IMPORTING THE DATASET"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    "l_index=0\n",
    "mother_ID=[\"Ds\",\"Dplus\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Bkg data amounts to 11440 while signal MC amounts to 1250 Ds and 1150 Dplus samples\n"
     ]
    }
   ],
   "source": [
    "MC_Dplus_sig_dict, MC_Ds_sig_dict, data_bkg_dict = load_datasets(l_index)\n",
    "\n",
    "m_plus=MC_Dplus_sig_dict[\"Dplus_ConsD_M\"].shape[0]\n",
    "m_s=MC_Ds_sig_dict[\"Ds_ConsD_M\"].shape[0]\n",
    "n=data_bkg_dict[\"Ds_ConsD_M\"].shape[0]\n",
    "\n",
    "print('Bkg data amounts to {0} while signal MC amounts to {1} Ds and {2} Dplus samples'.format(n,m_s,m_plus))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Normalising the Chi2 vertex fits to the NDoF\n",
    "\n",
    "MC_Ds_sig_dict[\"Ds_ENDVERTEX_CHI2\"]=MC_Ds_sig_dict[\"Ds_ENDVERTEX_CHI2\"]/MC_Ds_sig_dict[\"Ds_ENDVERTEX_NDOF\"]\n",
    "MC_Ds_sig_dict[\"Ds_IPCHI2_OWNPV\"]=MC_Ds_sig_dict[\"Ds_IPCHI2_OWNPV\"]/MC_Ds_sig_dict[\"Ds_ENDVERTEX_NDOF\"]\n",
    "\n",
    "MC_Ds_sig_dict[\"Ds_FDCHI2_OWNPV\"]=MC_Ds_sig_dict[\"Ds_FDCHI2_OWNPV\"]/MC_Ds_sig_dict[\"Ds_OWNPV_NDOF\"]\n",
    "MC_Ds_sig_dict[\"Ds_OWNPV_CHI2\"]=MC_Ds_sig_dict[\"Ds_OWNPV_CHI2\"]/MC_Ds_sig_dict[\"Ds_OWNPV_NDOF\"]\n",
    "\n",
    "del MC_Ds_sig_dict[\"Ds_OWNPV_NDOF\"]\n",
    "del MC_Ds_sig_dict[\"Ds_ENDVERTEX_NDOF\"]\n",
    "#del MC_sig_dict[\"Ds_M\"]\n",
    "\n",
    "MC_Dplus_sig_dict[\"Dplus_ENDVERTEX_CHI2\"]=MC_Dplus_sig_dict[\"Dplus_ENDVERTEX_CHI2\"]/MC_Dplus_sig_dict[\"Dplus_ENDVERTEX_NDOF\"]\n",
    "MC_Dplus_sig_dict[\"Dplus_IPCHI2_OWNPV\"]=MC_Dplus_sig_dict[\"Dplus_IPCHI2_OWNPV\"]/MC_Dplus_sig_dict[\"Dplus_ENDVERTEX_NDOF\"]\n",
    "\n",
    "MC_Dplus_sig_dict[\"Dplus_FDCHI2_OWNPV\"]=MC_Dplus_sig_dict[\"Dplus_FDCHI2_OWNPV\"]/MC_Dplus_sig_dict[\"Dplus_OWNPV_NDOF\"]\n",
    "MC_Dplus_sig_dict[\"Dplus_OWNPV_CHI2\"]=MC_Dplus_sig_dict[\"Dplus_OWNPV_CHI2\"]/MC_Dplus_sig_dict[\"Dplus_OWNPV_NDOF\"]\n",
    "\n",
    "del MC_Dplus_sig_dict[\"Dplus_OWNPV_NDOF\"]\n",
    "del MC_Dplus_sig_dict[\"Dplus_ENDVERTEX_NDOF\"]\n",
    "\n",
    "data_bkg_dict[\"Ds_ENDVERTEX_CHI2\"]=data_bkg_dict[\"Ds_ENDVERTEX_CHI2\"]/data_bkg_dict[\"Ds_ENDVERTEX_NDOF\"]\n",
    "data_bkg_dict[\"Ds_IPCHI2_OWNPV\"]=data_bkg_dict[\"Ds_IPCHI2_OWNPV\"]/data_bkg_dict[\"Ds_ENDVERTEX_NDOF\"]\n",
    "\n",
    "data_bkg_dict[\"Ds_OWNPV_CHI2\"]=data_bkg_dict[\"Ds_OWNPV_CHI2\"]/data_bkg_dict[\"Ds_OWNPV_NDOF\"]\n",
    "data_bkg_dict[\"Ds_FDCHI2_OWNPV\"]=data_bkg_dict[\"Ds_FDCHI2_OWNPV\"]/data_bkg_dict[\"Ds_OWNPV_NDOF\"]\n",
    "\n",
    "del data_bkg_dict[\"Ds_OWNPV_NDOF\"]\n",
    "del data_bkg_dict[\"Ds_ENDVERTEX_NDOF\"]\n",
    "\n",
    "data_bkg_dict[\"phi_ENDVERTEX_CHI2\"]=data_bkg_dict[\"phi_ENDVERTEX_CHI2\"]/data_bkg_dict[\"phi_ENDVERTEX_NDOF\"]\n",
    "#data_bkg_dict[\"phi_OWNPV_CHI2\"]=data_bkg_dict[\"phi_OWNPV_CHI2\"]/data_bkg_dict[\"phi_OWNPV_NDOF\"]\n",
    "data_bkg_dict[\"phi_IPCHI2_OWNPV\"]=data_bkg_dict[\"phi_IPCHI2_OWNPV\"]/data_bkg_dict[\"phi_ENDVERTEX_NDOF\"]\n",
    "\n",
    "#del data_bkg_dict[\"phi_OWNPV_NDOF\"]\n",
    "del data_bkg_dict[\"phi_ENDVERTEX_NDOF\"]\n",
    "del MC_Ds_sig_dict[\"phi_M\"]\n",
    "del MC_Dplus_sig_dict[\"phi_M\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Number of input features\n",
    "\n",
    "dim=len(['cos_thetal']+return_branches_BDT(mother_index=1, l_index=l_index, meson_index=0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtYAAAHoCAYAAABtiKiGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xm8VVX9//HXBxkEmUQmRRQFp4w0vQ6EXwMRNcoxzGtpmhVOYZkKTglpafojZ1NxIvsaVxxKNDSxL+i30hTUr1o4aygqk6IkoAzr98c5XO/Fe+EA+55z7uX1fDzOg7PXXvvszzls5X3XXWftSCkhSZIkaf00K3UBkiRJUlNgsJYkSZIyYLCWJEmSMmCwliRJkjJgsJYkSZIyYLCWJEmSMmCwliRJkjJgsJYkSZIyYLCWJEmSMtC81AWsq86dO6devXqVugxJkiQ1cdOnT5+XUuqypn6NNlj36tWLadOmlboMSZIkNXER8e9C+jkVRJIkScqAwVqSJEnKgMFakiRJyoDBWpIkScqAwVqSJEnKQKNdFUSSJDVNH330EXPmzGHp0qWlLkVNXIsWLejatSvt27fP5PUM1pIkqWx89NFHzJ49mx49etC6dWsiotQlqYlKKbF48WJmzZoFkEm4diqIJEkqG3PmzKFHjx60adPGUK0GFRG0adOGHj16MGfOnExe02AtSZLKxtKlS2ndunWpy9AGpHXr1plNOzJYS5KksuJItYopy+vNYC1JkiRlwGAtSZIkZcBgLUmSlKHRo0cTEUQEzZo1Y9NNN2WPPfbgvPPO47333svkHPfffz/9+/enY8eOtG/fnp133pmTTjqJ//znP9V9IoJrr702k/Oti6lTpxIRvPDCC/X2efPNN6s/q7/97W+f23/RRRcREfTq1etz+1577TW+//3v07NnT1q2bEmXLl0YOnQoTzzxRJZvY6243J4kSSp7V0x+uSTnPX3w9ut0XIcOHXjooYcA+PDDD3n66ae5/vrrGTt2LA899BC77777Otc0fvx4vv3tb3PiiSdy/vnnExE899xz/Pa3v2XBggW0bdsWgMcff5xtttlmnc9TTG3btmX8+PH079+/Vvudd95Z/X5q+tvf/saQIUPYbrvtuPDCC+nduzdz587l3nvvpX///rz//vt06NChWOVXM1hLkiRlrHnz5uy9997V2wceeCAnn3wy++67L0cddRQvvfQSG2200Tq99rXXXsuQIUO44YYbqtsOOuggRowYQUqpuq3m+cvdwQcfzN13381VV11V/bk8//zzzJgxg29961s8/vjj1X0XL17MUUcdxR577MGkSZNo2bJl9b5vfvOb/OAHP6BFixZFfw/gVBBJkqSi6NixI5dddhmvvfYakydPrm6/5JJL6NOnDxtvvDHdunXjoIMOWu2UkQULFtC9e/c699Vc4WLVqSApJX72s59V32nwhBNOoKqqiojgzTffBD6bmjFhwgROPPFEOnTowJZbbsmoUaNYsWJF9Wu9+OKLVFZW0rNnT9q0acPOO+/MlVdeWavP2jj00ENZuHAhU6ZMqW6rqqpin332oUePHrX63nXXXcyaNYsrrriiVqheaeDAgbRp02ad6lhfBmtJkqQiGThwIM2bN6+eB3z77bdz8cUX89Of/pQ///nPXH/99fTp04ePP/643tfYbbfdGD9+PNdeey3vvPNOwee+8sorufjiiznppJO4++67ad26NSNGjKiz74gRI2jbti133303xxxzDBdeeCF333139f5Zs2axww478Jvf/IZJkybxwx/+kFGjRnHppZcWXE9Nm2yyCd/4xjcYP358dVtVVRVHH3305/o++uijbLHFFvTt23edztWQnAoiSZJUJK1ataJz587Mnj0bgCeffJIDDjiAU045pbrPEUccsdrXuPjii3n++ecZPnw4w4cPZ5tttuGwww5jxIgR9Y5kL1++nMsuu4yTTjqJCy+8EIADDjiAN954g7feeutz/ffdd19+/etfAzB48GAeeugh7r33Xr71rW8BMGjQIAYNGgTkRsL32WcfFi1axE033cQ555yzlp9KTmVlJd///ve5/vrrefbZZ5k5cyZDhw7lV7/6Va1+s2bNYquttlqnczQ0R6wlSZKKqOY86F133ZVJkyYxatQonnzySZYvX77G43v27Mn06dN55JFHOOOMM+jUqRNXXHEFX/rSl3j77bfrPOatt97ivffe45BDDqnVvur2SgcccECt7S984Qu1XnvJkiWMGjWKPn360KpVK1q0aMF5553HG2+8wbJly9b4HuoyZMgQli9fzp///GeqqqoYNGgQnTt3rrNvud5EyGAtSarliskvVz8kZWvJkiXMnz+fbt26AXDCCSdw8cUXM2HCBPbaay+6devGz372szUG7I022ohBgwYxZswYpk2bxp///Gfef//96lHmVa2cs92lS5da7atur9SxY8da2y1btmTJkiXV2yNHjmTMmDEMGzaMSZMm8dRTT3H++edXv8d10apVKw477DB+//vfM2HCBCorK+vs16NHD2bOnLlO52hoBmtJkqQimTJlCsuWLaNfv34ANGvWjNNPP50ZM2Ywc+ZMzjzzTC6++GJuuummtXrdAw44gF122YUXX3yxzv0rp4jMnTu3Vvuq24W66667GD58OCNGjGD//fenoqKC5s3Xf4ZxZWUlEyZMYN68eRx++OF19hkwYACzZs3in//853qfL2sGa0mSpCJYsGABI0eOpE+fPuy///6f29+zZ0/OPvts+vTpw7/+9a96X2fOnDmfa1uyZAlvv/129Uh4Xa/dvXt37rvvvlrtEydOXMt3kbN48WJatWpVvb18+XKqqqrW6bVqGjx4MN/85jcZMWJEvetQDx06lB49enD66aezdOnSz+2fOnUqixYtWu9a1oVfXpQkScrYsmXLqlf+WLhwIdOnT+f6669n0aJFPPTQQ9VrNZ944ol06tSJvffemw4dOjBlyhReeeWV1a6uceCBB7Ljjjty8MEH07NnT9577z2uvfZaPvjgA0488cQ6j9loo40466yzOOuss+jSpQv9+/dn4sSJPP/880Bu5HxtDB48mOuuu44+ffrQqVMnrrvuOj755JO1eo26NG/enAkTJqy2T+vWrbnzzjv52te+Rv/+/Tn11FPZdtttmTdvHn/84x+54447mD9//nrXsi4M1pIkqeyt6x0QS+XDDz+kX79+RATt27enT58+HHPMMQwfPrzWyh39+vXjpptu4sYbb2TJkiX06dOHm266icMOO6ze1x4xYgRVVVWMHDmSOXPm0KVLF3bbbTf++te/sueee9Z73Omnn84HH3zAb37zGy6//HIOOeQQzj33XE455RTat2+/Vu/vmmuu4aSTTuLUU0+ldevWHHfccRx++OEMGzZsrV5nXfXv35+nn36aiy++mPPOO4/Zs2fTsWNH9tlnHyZPnlySuy4CRM1vpjYmFRUVadq0aaUuQ5KanJpfWmxsYUaN34wZM9hpp51KXcYG4wc/+AGTJ0/m3//+d6lLKak1XXcRMT2lVLGm13HEWpIkaQPwwgsvcOedd/KVr3yFZs2a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brihuu2uu+5iu+22o3Xr1gwcOJBnnnmGiGDcuHGrfa233nqLIUOG0Lp1a3r16sXNN9/8uT4vvvgilZWV9OzZkzZt2rDzzjtz5ZVXsmLFCiA3XeXggw8GYJtttiEi6NWrFwDvvvsuJ5xwAttuuy2tW7dm++235/zzz+fTTz9di0+laXHEWpIkqQEsW7YMgEWLFjFx4kQeffRRbr311nr7jxs3jmHDhjF27FiOP/54AKZNm0ZlZSVDhw7lmmuuYcaMGRx11FFrPHdKiUMPPZR58+Zxyy23sPHGGzNq1Cjef/99tttuu+p+s2bNYocdduA73/kO7dq149lnn2XUqFEsXryYc845h912240xY8Zw5plncu+997L55pvTqlUrAObNm0enTp24/PLL2XTTTavnYs+dO5cbb7xxPT65xstgLUmSlLH58+fTokWLWm2nnXYa3/3ud+vsf8MNN/DjH/+Y22+/ncrKyur2Sy+9lJ122omqqioigoMOOoilS5cycuTI1Z7/wQcf5JlnnuGJJ55gr732AmD33Xend+/etYL1oEGDGDRoEJAL4/vssw+LFi3ipptu4pxzzqF9+/bssMMOAHz5y1+uHq0G6Nu3L2PGjKne7t+/P5tssgknnHAC11xzDS1btizgk2paDNaSJEkZ69ChA4888ggAn3zyCdOnT+eCCy6gU6dOjBo1qlbfq6++mttvv52qqioOP/zwWvueeuopjj76aCKiuu2QQw5ZY7B+8skn6datW3WoBth6663Zfffda/VbsmQJl1xyCXfccQczZ86sNVVl2bJlNG9ef1RMKXHVVVcxduxY3njjDZYsWVK9b+bMmfTp02e1NTZFBmtJkqSMNW/enIqKiurt/v37s3TpUs4991yGDx9Op06dqvfdc8899OnTh/333/9zr/Pee+/RpUuXWm2rbtflvffeo2vXrp9r79q1KwsXLqzeHjlyJDfffDOjRo1it912o2PHjtx333384he/YMmSJbRt27bec1x55ZWceeaZnH322Xz1q19l00035amnnuLUU0+tFbI3JH55UZIkqQi+8IUv8Omnn/Laa6/Var/jjjv4+OOPOfjgg1m8eHGtfd27d2fu3Lm12lbdrkv37t2ZM2fO59pXbbvrrrsYPnw4I0aMYP/996eiomK1o9SrHnvkkUfyy1/+kgMOOIA99tiDTTbZpKBjmyqDtSRJUhGsvBFMz549a7VvueWW/OUvf+GVV15h6NChtaZj7LHHHtx///2klKrbJk6cuMZz7bHHHsyePZt//OMf1W0zZ87k6aefrtVv8eLF1V9GBFi+fDlVVVW1+qycK73qKPSqx0Luh4QNmVNBJEmSMrZs2TKeeOIJAD799FOmT5/OL37xCw499FC6d+/+uf7bbrstjzzyCPvuuy/HHHMM48ePp1mzZowcOZK99tqLyspKvve97zFjxgxuuukmAJo1q398dMiQIeyyyy4ceeSRXHrppWy88cZccMEFn5seMnjwYK677jr69OlDp06duO666/jkk09q9Vn55cUbb7yRysrK6jtJDh48mKuvvpq99tqL3r17c8cdd/Dqq6+u1+fW2BmsJUlS2VvXOyCWyocffki/fv0AaNGiBVtvvTUnnXQS559/fr3H7LTTTjz88MMMHDiQH/7wh9x8881UVFQwfvx4zj33XO677z4qKiq4/vrrGTx4MO3bt6/3tSKCiRMnMmzYME444QS6du3Kueeey+TJk5k3b151v2uuuYaTTjqJU089ldatW3Pcccdx+OGHM2zYsOo+W2+9NWPGjOHqq6/mmmuuYcstt+TNN9/kggsuYO7cudXv6YgjjuDqq6+uXvd6QxQ1f7XQmFRUVKRp06aVugxJTcWUS+puH3hOcesoA1dMfrn6+emDty9hJdoQzZgxg5122qnUZZS1//7v/+bYY4/l9ddfZ5tttil1OU3Cmq67iJieUqqot0OeI9aSJEll7OSTT2bw4MFsuummPP300/ziF7/g61//uqG6DBmsJUmSytj8+fM55ZRTmD9/PpttthlHHXUUl112WanLUh0M1pIkSWVswoQJpS5BBXK5PUmSJCkDBmtJklRWGuvCCmqcsrzeDNaSJKlstGjR4nN3H5Qa0uLFi2nRokUmr2WwliRJZaNr167MmjWLRYsWOXKtBpVSYtGiRcyaNetzN85ZV355UZIklY2VNz155513at3aW2oILVq0oFu3bqu92c7aMFhLkqSy0r59+8yCjlRMTgWRJEmSMmCwliRJkjJgsJYkSZIyYLCWJEmSMmCwliRJkjJgsJYkSZIyYLCWJEmSMmCwliRJkjJgsJYkSZIyYLCWJEmSMmCwliRJkjJQ1GAdERtHxJMR8X8R8c+I+Hm+fZuI+EdEvBIRd0ZEy2LW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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Convert data dictionaries to arrays for NN\n",
    "features=features=['cos_thetal']+return_branches_BDT(mother_index=0, l_index=l_index, meson_index=0)\n",
    "MC_Ds_sig = extract_array(MC_Ds_sig_dict, features, dim, m_s)\n",
    "\n",
    "features=features=['cos_thetal']+return_branches_BDT(mother_index=1, l_index=l_index, meson_index=0)\n",
    "MC_Dplus_sig = extract_array(MC_Dplus_sig_dict, features, dim, m_plus)\n",
    "\n",
    "features=features=['cos_thetal']+return_branches_BDT(mother_index=0, l_index=l_index, meson_index=0)\n",
    "data_bkg = extract_array(data_bkg_dict, features, dim, n)\n",
    "\n",
    "plt.hist(MC_Ds_sig[:,dim-1]/1000,alpha=0.5, label='Ds Signal MC',range=(1.5,2.4),density=True, bins=200);\n",
    "plt.hist(MC_Dplus_sig[:,dim-1]/1000,alpha=0.5, label='D+ Signal MC', range=(1.5,2.4),density=True, bins=200);\n",
    "plt.hist(data_bkg[:,dim-1]/1000,alpha=0.5, label='Bkg data',range=(1.5,2.4),density=True, bins=200);\n",
    "plt.ylabel('# events', fontsize=15)\n",
    "plt.xlabel('D reconstructed mass (GeV)', fontsize=15)\n",
    "plt.legend(fontsize=15)\n",
    "fig=plt.gcf()\n",
    "fig.set_size_inches(12,8)\n",
    "plt.savefig('/home/hep/davide/Rphipi/mu/bdt_train.png', format='png', dpi=100)\n",
    "#Cut on Ds Mass\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Cuts on mass\n",
    "\n",
    "#data_bkg_cut=data_bkg[np.where(data_bkg[:,dim-1]<1930)]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Add 0/1 label for bkg/sig\n",
    "\n",
    "MC_Dplus_sig_labelled=add_labels(MC_Dplus_sig,signal=True)\n",
    "MC_Ds_sig_labelled=add_labels(MC_Ds_sig,signal=True)\n",
    "data_bkg_labelled=add_labels(data_bkg,signal=False)\n",
    "\n",
    "#Merge MC sig and data bkg, shuffle it\n",
    "\n",
    "data=np.concatenate((data_bkg_labelled,MC_Dplus_sig_labelled), axis =0)\n",
    "data=np.concatenate((data,MC_Ds_sig_labelled), axis =0)\n",
    "np.random.seed(1)\n",
    "np.random.shuffle(data)\n",
    "\n",
    "#get train size\n",
    "train_size=data.shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Strip away the label column and convert it to a one-hot encoding\n",
    "\n",
    "X=data[:,0:dim]\n",
    "Y_labels=data[:,dim].astype(int)\n",
    "Y_labels=Y_labels.reshape(train_size,1)\n",
    "Y_labels_hot = to_one_hot(Y_labels)\n",
    "Y_labels=Y_labels_hot\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 253,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Divide the dataset k \"equi populated\" sets\n",
    "test=1\n",
    "k=10 #number of subsets\n",
    "i=0#number of subset that is train set\n",
    "\n",
    "X_train, Y_train, X_test, Y_test, X_dict, Y_dict = k_subsets(i, k, X, Y_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 254,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_mean=X_train.mean(axis=0)\n",
    "X_train_1=X_train-X_mean\n",
    "X_std=X_train_1.std(axis=0)\n",
    "X_train_2=X_train_1/X_std\n",
    "\n",
    "\n",
    "\n",
    "X_mean=X_test.mean(axis=0)\n",
    "X_test_1=X_test-X_mean\n",
    "X_std=X_test_1.std(axis=0)\n",
    "X_test_2=X_test_1/X_std\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 255,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(12456, 14)"
      ]
     },
     "execution_count": 255,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_2.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# SETTING UP THE XGBOOST"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "metadata": {},
   "outputs": [],
   "source": [
    "PATH=l_flv[l_index]+'/BDTs/test_'+str(test)\n",
    "\n",
    "if not os.path.exists(PATH):\n",
    "    os.mkdir(PATH)\n",
    "\n",
    "if not os.path.exists(PATH+'/variables_used.pickle'):\n",
    "    with open(PATH+'/variables_used.pickle', 'wb') as handle:  \n",
    "        pickle.dump(return_branches_BDT(mother_index=0, l_index=l_index, meson_index=0), handle, protocol=2)\n",
    "\n",
    "PATH=l_flv[l_index]+'/BDTs/test_'+str(test)+'/XG_'+str(i)\n",
    "\n",
    "if not os.path.exists(PATH):\n",
    "    os.mkdir(PATH)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 257,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n",
       "       colsample_bytree=1, gamma=0, learning_rate=0.1, max_delta_step=0,\n",
       "       max_depth=3, min_child_weight=1, missing=None, n_estimators=100,\n",
       "       n_jobs=1, nthread=None, objective='binary:logistic', random_state=0,\n",
       "       reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,\n",
       "       silent=True, subsample=1)"
      ]
     },
     "execution_count": 257,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model = XGBClassifier()\n",
    "model.fit(X_train_2, Y_train[:,1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 258,
   "metadata": {},
   "outputs": [],
   "source": [
    "output_XG = model.predict_proba(X_test_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 259,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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165Nsa1x48bp6quvVsmSJRUTE6O2bdvqp59+ytQxSm3+/PmKj49XeHi4YmNjlZCQEJyhc9myZTKzNO3/+uuvKly4sP71r38Fyz755BPdcMMNKlasmMqUKaO7775bv//+e3D51KlTZWb67rvv1KxZM0VERKhWrVp66623gnUaNWqkL7/8UtOmTZOZycw0depUSdKCBQtUt25dRUREqHTp0qpfv76WL19+RvsMZNbBgwcVGxubpvx0k/uc7hwhSWvWrFHr1q1VvHhxFS9eXJ06ddKuXbsy3O6pU6f05JNPqlq1asHLLqZNm5am3ty5c1WvXj0VLVpUZcqUUatWrbR582aNGDFC48aN0+bNm4PvseTnoNO9jyXpo48+0uWXX67w8HDVrVtXn332WYYxS97xev/99zV37lyZmapUqSLpf+e8efPm6dJLL1V4eLi++OILSdLXX3+tJk2aqFixYipdurS6deum3bt3B7e5adMmmZlmzpypnj17qkSJEqpQoYJef/11SdLTTz+t8uXLKyoqSoMHD9apU6fSjS+jc48kvfzyy7r00ktVpEgRVa5cWU8//XSK9deuXasWLVooMjJSERERuvjiizV+/PhMbTu1MWPGqFq1agoPD1dMTIxatGiR4nVx4MAB9e3bVzExMQoPD9c111wTPGaSVLx4cUlSz549g+1t2rQp/T8OcB4i2QWQL3Xo0EG7d+/WJ598Ikn6+OOPtXfvXrVv3z5FvRMnTuizzz5TixYtzqidQYMG6ZNPPtGzzz6rJUuWaPTo0Rn+83v48GHddNNNOnLkiGbMmKFhw4Zp4MCB2rJlS5q6W7Zs0cMPP6yhQ4dqxowZ2rNnj2677bZgAi9J27Zt07333qv58+dr8uTJSkxM1LXXXqtDhw5laT9mz56tDh06qF69elqwYIGGDx+uSZMm6ZFHHpHk9XKXK1dOs2fPTrHe3LlzJSl4XD/99FM1adJEsbGxmjNnjp577jktWrRIPXv2TNNm165ddfPNN2vu3LmqXr26unTpom3btkmSJkyYoFq1aqlVq1ZasWKFVqxYodatW+vnn3/WrbfeqsaNG+s///mPpk+frjZt2ujAgQNZ2l8gq6666ir985//1LRp07R///5Mr3e6c8RPP/2ka6+9VkePHtVrr72mqVOnau3atWrbtm2K93pq9913n5544gn16dNHCxcuVPv27dWrVy+9/fbbwTqvvfaaOnTooIsuukizZ8/WlClTVKNGDe3du1d33XWXunbtqtjY2OB77NFHH5WUuffxjh071LJlS0VGRmrOnDnq27evunXrpsOHD2d4PFasWKErr7xSN954o1asWBE8h0he0pqQkKBHHnlEixYtUtWqVbV37141atRIhw8f1r///W/985//1PLly9WsWTMdP348xbYHDx6scuXK6c0339T111+v7t2768EHH9TKlSv1yiuv6IEHHtDTTz+d5jyWXHrnHkkaO3as+vfvr1tuuUVvv/22+vfvr0cffVQvvPBCcP2bb75ZBQsW1Ouvv64FCxbovvvuC35JkNG2U3v11Vc1evRoDRo0SEuWLNHEiRNVrVo1/fnnn5KkY8eOqWnTpnr33Xc1duxYzZs3T1FRUWratGkwIf7ggw8kScOGDQu2V65cuQz/PsD5hmHMAPKlUqVKqUWLFpo5c6auv/56zZw5Uy1atFCpUqVS1Nu/f7+OHTumSpUqnVE7K1eu1IABA9S5c+dg2f/93/+lW3/KlCnav3+/Vq9erbi4OEnSRRddpPr166epe+DAAX366afBybZOnTql9u3ba8OGDapVq5Ykr1c6SWJiopo1a6bo6GjNnz9fd955Z6b2wTmnhx9+WHfeeacmTJgQLC9SpIgGDBigRx55RGXKlFGnTp00a9YsjRw5Mlhn1qxZat68uSIjIyVJQ4YM0TXXXKNZs2YF68TFxalJkyZas2aNateuHSwfOHBgsDe9bt26iomJ0dtvv61+/frpkksuUUREhKKiotSgQYPgOsuXL1fx4sU1duzYYFlGQyGB7DJ+/Hjdcsst6tGjh8xMF198sTp27KiHHnpIJUqUSHe9050jRo4cqdjYWL3zzjvBIbt16tRRrVq1tGjRopDJ0E8//aSJEydqypQp6t69uySpadOm2rlzp0aOHKk2bdro1KlTGjJkiNq3b68ZM2YE17355puDv5crV05FihRJ8R6TMvc+fu655xQeHq6FCxeqWLFikrxLSDI6/0lSgwYNVKJECUVGRqZpd//+/Xrvvfd0xRVXpIhFkpYsWRI8zjVq1FD9+vX15ptv6vbbbw/Wbdy4cXCYef369TVnzhwtWLBA69evV8GCBdWiRQvNnz9fc+fODTnKR1K6557ffvtNI0eO1LBhw4JD15s1a6bDhw/r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48aNNWjQIHXt2lUHDx5UZGTkGfUsV6xYUUOGDNGUKVP0/fffS/KGbC9dulSVKlVK87pMvh+SzqgnGzhfkOwCyNcaNWqkRo0aZVynWUvdcfcAjXj4Pn29+gv17NpJF1xwgdavX68XX3xRVapUSTfZve6669S+fXvVrl1bZqbJkycrIiJC9erVC1m/Z8+eeuKJJ9SmTRsNHz5cR44c0fDhwxUVFZWlb/2l//3D27NnT/Xu3Vtr167VM888k2bY3ukUKFBA48aN0x133KHffvtNLVu2VOHChYMTrcyZMyf4z2zdunVVrVo19enTR0WLFlUQZNs5AAAgAElEQVSbNm1SbOvpp59WkyZNVKBAAd16660qXry4tmzZooULF2rUqFGqUaNGpuOqVauWlixZoiVLlqhMmTKqWrWq5syZoxUrVqhFixYqX768fvzxR73xxhuZnowrP3LOfWRmVVIVt5PUKPD7NEkfykt220l61XnTAH9uZqXMrJxzLmvdgz502WWXqV27dmrevLmio6O1efNmPfPMMypWrFhwkqhQTneOGDFihOrVq6fWrVurV69eKlu2rLZv3653331XPXr0CHn+qlmzpvr166cuXbooISFB8fHxOnr0qNauXasffvhBL7/8sgoUKBDsRe7WrZtuv/12mZk++OAD3X777YqPj1etWrW0e/duTZ06VbVr11bZsmVVpUqVTL2PH3jgAY0fP15t2rTRoEGDtGPHDo0ZM0ZFixbN1uM+aNAgTZw4UTfddJMGDx6sP/74Q0OGDNFll12mjh07ZmtbSUKde8qUKaMRI0bor3/9qzZv3qy//OUvOnXqlH744QctW7ZMc+fO1bfffquHHnpInTt31oUXXqhff/1VTz31lC6//PJgz3B6206tb9++wUm8SpYsqWXLlunHH3/UU089JUm688479eKLL6pRo0Z66KGHdOGFF2r//v1auXKlYmNjNXDgQBUuXFhVq1bV7NmzVbt2bYWHh6tOnTrcuxi+QrILAJnw0GNP6Ir4epoxdbK6du2qI0eOqEqVKrr55pv10EMPpbtew4YNNXXqVG3atEkFCxbUlVdeqXfeeUcVKlQIWb9YsWJavHix+vfvr86dOwf/sUxISMhwRtdQLrvsMk2ZMkUjR47U3Llzdfnll+uNN95IMetrZnXu3FklSpTQ6NGj9corr6hgwYK68MIL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zz//vIYPHy5JGjBggG699VZVrlxZK1as0IoVKzR48OB09+/9999XgwYNUiSxV111lX7//Xf16NFDX3/9dbbfts45p5MnT+rkyZPavHmzhgwZoujoaF177bUp6l1zzTXaunWrNmzYkK3tAzi35eowZufcR2ZWJcSiZyUlSJqfrKydpFedd1b83MxKmVk559zOnI8UAAAge40dO1anTp3Se++9F+zpbNiwoapWrarXXntNvXv31sqVK9WmTRv17ds3uF7Hjh2Dv1evXl2Sl0TGxsam29aOHTu0fft2LVu2LLhOkyZNgssTExM1ePBg9enTR//4xz8kSc2bN1fBggWVkJCghIQEVaxYUTExMQoPD8/UkOwvv/xS3bt3T1HWunVr3XPPPZowYYJee+01lShRQs2bN9eAAQPUqFGjYD3nXLBHWfKSdUk6efJksMzMVLBgwRTbHz16dPALAEkqU6aM5s2bl+Z65ssvv1yStHLlStWsWfO0+wLAH/J8NmYzu1nSdufcN6kWxUnamuz5tkAZAADAeee9995TixYtFBEREeyNLF26tC6//HKtXr1aknTFFVdo3rx5evzxx7V69epg0pdVMTExio2N1d1336033nhDe/fuTbF8zZo12rVrlzp16hSM5eTJk2rcuLH+/PNPrVu3Lstt7t69W2XLlk1TnjQU+qmnntL111+vhQsXqnHjxpo6dWqwzksvvaSwsLDgo3Xr1jp27FiKsoiIiDTb7tWrl1atWqVVq1Zp8eLFuummm9SuXbs08YeHhysiIkK7du3K8n4BOH/labJrZsUkDZX0WKjFIcpCjn0xsz5mttrMVqc+mQMAAJwL9u3bp2nTpqVI4MLCwvTZZ58Fb9XTv39/DR8+XNOnT9fVV1+t2NhYjRw5MstJb1hYmN59912VKlVK3bt3V2xsrBo1aqTvvvsuGIvk9fYmj+Xiiy+WpBS3DsqMxMREnThxQkWKFAm5vEaNGkpISNDbb7+tjRs36tJLL9UjjzwSXN6xY8dg0rpq1So9//zzKly4cIqyzz77LM12y5Urp/j4eMXHx+umm27Sa6+9pqioqJATURUpUuS0E14B8Je8no35IklVJX0TuL6jgqT/mlk9eT25FZPVrSBpR6iNOOcmSZokSfHx8dl7MQgAAEA2iIyMVIMGDUJe95o0rDn5MOLNmzfr1Vdf1fDhw1W5cmX16NEjS+3Vrl1b8+bN0/Hjx7V8+XIlJCSobdu22rRpkyIjIyVJ06ZNC3lbpIsuuihLbRUsWFAlSpTQwYMHT1s3JiZGd955pxISEnTo0CGVLFlSUVFRioqKCtbZt2+fzEzx8fFZiqNAgQKqWbNmmp5d55wOHToU3G8A+UOeJrvOue8kRSc9N7NNkuKdc/vMbIGke81spqT6kg5xvS4AADhfNWnSRO+8847q1KmjwoULn7Z+5cqV9eijj+rll1/W999/L0nB9bLSQ1m4cGE1a9ZM999/v3r16qU///xTl112maKiorR582bdeeedGa6b2bZq1qypjRs3pijbs2ePoqOj09T98ccfFREREXJo8tk4deqU1q1blyaB37ZtmxITE1WjRo1sbQ/AuS1Xk10zmyGpkaSyZrZN0nDn3L/Sqb5IUitJP0k6LKlnrgQJIN+qMmRhXocAwMcSEhI0c+ZMNWnSRAMGDFC5cuW0a9cuffjhh2ratKk6duyonj17Ki4uTvXq1VOJEiW0dOlSbd26VTfeeKMkBW81NGHCBHXs2DF4S6HUVq5cqeHDh+u2225T1apVtW/fPo0bN07169cPJphjx47V3XffrQMHDqh58+YqVKiQfv75Z82dO1eLFi1SwYIFVatWLW3dulXTp09XzZo1FR0drUqVKoXcv2uvvVYfffRRirJJkyZp3rx5uuOOO1SnTh0dP35cixcv1ssvv6wHH3xQhQqd3b+i27dv1+effy5JOnDggKZNm6Yff/wxOOlWktWrV6tgwYL57t7HQH6X27Mx336a5VWS/e4kDcjpmAAAAHJDbGysvvjiCw0dOlT333+/fvvtN5UrV05/+ctfVLt2bUneLXJeeeUVjR8/XsePH1f16tU1depUtWzZUpJ37evo0aM1ceJEjRs3TtWrV9f69evTtBUXF6fSpUvr8ccf186dO1W6dGk1bdpUTz75ZLBO9+7dFRkZqTFjxuill15SoUKFVK1aNbVt21YFCnjTunTr1k0ff/yxHnjgAe3bt099+/bViy++GHL/OnTooH/84x/atWtXcKbodu3aafv27XrxxRe1detWhYWFqVq1anrppZfUu3fvsz6mU6dODU50VapUKV188cWaP39+8HglWbx4sZo1axa8Dy+A/MGy+35neS0+Pt4lzWgI/8tKT9ymJ1vnYCTwg8y+nngt5S9m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\n",
      "text/plain": [
       "<Figure size 1152x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.suptitle('S/B selection from XGBoost', fontsize='15')\n",
    "Ds_mass_MC =[MC_Ds_sig_dict[\"Ds_ConsD_M\"][j][0]/1000 for j in range(m_s)]\n",
    "Dplus_mass_MC =[MC_Dplus_sig_dict[\"Dplus_ConsD_M\"][j][0]/1000 for j in range(m_plus)]\n",
    "XG_selected = X_dict[i][np.argmax(output_XG,1).astype(np.bool)]\n",
    "Ds_mass_sel_XG = XG_selected[:,dim-1]/1000\n",
    "Ds_mass_train_XG =X_dict[i][:,dim-1:dim]/1000\n",
    "\n",
    "plt.subplot(1,2,1)\n",
    "plt.hist(Ds_mass_MC+Dplus_mass_MC,bins=70, label='MC signal events');\n",
    "plt.legend(fontsize='15')\n",
    "plt.ylabel('# events', fontsize=15)\n",
    "plt.xlabel('Reconstructed D_s Mass (GeV)', fontsize=15)\n",
    "plt.subplot(1,2,2)\n",
    "\n",
    "plt.hist(Ds_mass_sel_XG,alpha=0.6,bins=70, label='S selected from test set');\n",
    "plt.hist(Ds_mass_train_XG,alpha=0.2,bins=70, label='Test set (S+B)');\n",
    "plt.legend(fontsize='15')\n",
    "plt.ylabel('# events', fontsize=15)\n",
    "plt.xlabel('Reconstructed D_s Mass (GeV)', fontsize=15)\n",
    "fig=plt.gcf();\n",
    "fig.set_size_inches(16,8)\n",
    "plt.savefig('/home/hep/davide/Rphipi/'+PATH+'/D_s_XG.png', format='png', dpi=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 260,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAHoCAYAAACW1sg1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xu4XVV9N/rvjwCCohUhKG8Ro77oC8UQbQgoKDcF2qJyUS4iitqCeiiK12hP67UHxAt99ai8FKRaEaJUhVOwSil4qSAGRQRSBDFCEBVRKco1ZJw/1krcbHay1072be58Ps+znrXWnGPN+ZtrTzb57jHmmNVaCwAAAHTRBlNdAAAAAKwtoRYAAIDOEmoBAADoLKEWAACAzhJqAQAA6CyhFgAAgM4SagEAAOgsoRYAAIDOEmoBAADorA2nuoC1teWWW7Y5c+ZMdRkAAABMgCuvvPJXrbXZo7XrbKidM2dOFi9ePNVlAAAAMAGq6qeDtDP8GAAAgM4SagEAAOgsoRYAAIDO6uw1tQAAAMM98MADWbZsWe69996pLoUBbbLJJtlmm22y0UYbrdXnhVoAAGDGWLZsWR796Ednzpw5qaqpLodRtNZyxx13ZNmyZXnyk5+8Vtsw/BgAAJgx7r333myxxRYCbUdUVbbYYot16lkXagEAgBlFoO2Wdf15CbUAAAB0lmtqAQCAGeuUi340rts74QVPW+P6O+64I/vss0+S5Oc//3lmzZqV2bNnJ0muuOKKbLzxxuNaz7p61atelYULF2a77bbLySefnIULFyZJHnzwwey555755je/OcUVjk6oBQAAGCdbbLFFrrrqqiTJu9/97my22WZ5y1ve8pA2rbW01rLBBlM/cPbMM89MkixfvjwnnXTSqlA7a9asTgTaxPBjAACACXfjjTdmxx13zGtf+9o861nPyi233JLHPvaxq9afc845+cu//MskyS9+8YscfPDBmT9/fhYsWJDLL7/8Yds7/fTTc9BBB2W//fbL05/+9Lz//e9fte7kk0/OjjvumB133DEf+9jHkiR33XVX/uzP/iw77bRTdtxxx5x77rlJkt133z1XXXVVFi5cmLvuuivz5s3LK17xiixfvnxVfYcccki+9rWvrdr+y1/+8px33nlZvnx53vSmN2XBggWZO3duTj/99CTJrbfemt133z3z5s3LjjvumG9/+9vj/G0+lJ5aAACASXDdddflzDPPzKmnnprly5evtt3xxx+ft73tbdl1112zdOnSHHDAAbnmmmse1u6KK67INddck4033jg777xzDjjggNx///0566yzcsUVV+TBBx/MggULsscee2TJkiWZM2dOvvKVryRJ7rzzzods66STTsrpp5++qpd5aH2HH354Fi1alH333Tf33ntvvv71r+eMM87Iaaedlq222ipXXHFF7rvvvuy6667Zd999c/bZZ+eFL3xh3v72t+fBBx/MPffcMx5f32oJtQAAAJPgqU99anbeeedR2/37v/97rr/++lXvf/Ob3+See+7Jpptu+pB2++23XzbffPMkyYEHHphvfetbue+++3LIIYfkkY985EOW77XXXlm4cGEWLlyYF77whdltt90Grvsv/uIv8uY3vzkPPPBALrjgguy99955xCMeka997WtZsmRJzjnnnCS9oHzDDTdk5513zrHHHpt77703Bx54YHbaaaeB97U2hFoAAIBJ8KhHPWrV6w022CCttVXvh96ntbU20KRSw2+FU1UP2eZQ22+/fRYvXpwLL7wwb33rW3PAAQfkne9850B1P/KRj8xuu+2Wiy66KIsWLcqrXvWqVXV+4hOfWDUx1lCXXnppLrjgghx55JF5xzvekSOPPHKgfa0N19QCAABMsg022CCbb755brjhhqxYsSJf+tKXVq17/vOfn49//OOr3q8cEjzc1772tfz2t7/N3XffnfPOOy+77bZbnve85+VLX/pS7rnnnvzud7/Leeedl+c+97m59dZbs9lmm+Woo47Km970pnzve997yLY23LDX37m6YdGHH354zjjjjFx22WV5/vOfn6TXU/yJT3xi1Weuv/763HPPPfnpT3+aJzzhCTnmmGNy9NFH5/vf//7af1ED0FMLAADMWKPdgmcqfeADH8j++++fbbfdNjvssEPuu+++JMnHP/7xvO51r8uZZ56Z5cuXZ6+99npIyF1p9913z8te9rL8+Mc/zlFHHZV58+YlSY444ohVw5xf97rX5RnPeEYuvPDCLFy4MBtssEE23njjnHrqqQ/b3mte85rMnTs38+fPz6c+9amHrNt///3zyle+Mi996Uuz0UYbJUmOPfbY3Hzzzav2u9VWW+W8887LxRdfnI985CPZaKONstlmm+Wzn/3s+H1pI6jVdU9Pd/Pnz2+LFy+e6jIAAIBpZMmSJdl+++2nuowJd/rpp+eaa67JP/zDP0x1KeNipJ9bVV3ZWps/2mcNPwYAAKCzDD8GAADomJX3tEWonViXnDh6m73eMfF1AAAAzFCGHwMAANBZQi0AAACdJdQCAADQWa6pBQAAZq5B5rkZiwHmxJk1a1ae8YxnrHr/5S9/OXPmzBmx7dKlS3PAAQfkmmuuGa8K19rixYvzmc98Jh/96Edz6aWXZuONN85znvOcJMmpp56aRz7ykXnFK14xxVU+nFALAAAwjjbddNNcddVVU13GmM2fPz/z5/duC3vppZdms802WxVqX/va105laWtk+DEAAMAEW7p0aZ773OfmWc96Vp71rGfl29/+9sPaXHvttVmwYEHmzZuXuXPn5oYbbkiSfPazn121/Nhjj82DDz74sM/OmTMnb3/727NgwYIsWLAgN954Y5Lkpz/9afbZZ5/MnTs3++yzT26++eYkyRe+8IXsuOOO2WmnnfK85z0vSS/IHnDAAVm6dGlOPfXUnHLKKZk3b16++c1v5t3vfnc+9KEPZcmSJVmwYMFDjmvu3LlJkiuvvDJ77LFH/vRP/zT77bdfbrvttiTJRz/60eywww6ZO3duDj/88HH8VnuEWgAAgHF0zz33ZN68eZk3b14OOuigJMlWW22Viy66KN/73veyaNGiHH/88Q/73Kmnnpo3vOENueqqq7J48eJss802WbJkSRYtWpT//M//zFVXXZVZs2blrLPOGnG/j3nMY3LFFVfkuOOOyxvf+MYkyXHHHZdXvOIVufrqq3PkkUeu2u973/vefPWrX80PfvCDnH/++Q/Zzpw5c/La1742J5xwQq666qo897nPXbVu++23z/3335+bbropSbJo0aIceuiheeCBB/LXf/3XOffcc3PllVfm1a9+df7mb/4mSXLSSSfl+9//fq6++uqceuqp6/jtPpzhxwAAAONopOHHDzzwQI477rhVwfRHP/rRwz737Gc/O3//93+fZcuW5eCDD852222Xiy++OFdeeWV23nnnJL3AvNVWW4243yOOOGLV8wknnJAkueyyy/LFL34xSXLUUUflbW97W5Jkt912y9FHH51DDz00Bx988JiO79BDD83nP//5LFy4MIsWLcqiRYty/fXX55prrskLXvCCJMmDDz6YrbfeOkkyd+7cHHnkkTnwwANz4IEHjmlfgxBqAQAAJtgpp5ySxz/+8fnBD36QFStWZJNNNnlYm5e97GXZZZddcsEFF2S//fbL6aefntZaXvnKV+bEE0ef8KqqRnw9UptTTz013/nOd3LBBRdk3rx5Y7oG+LDDDstLX/rSHHzwwamqbLfddvnhD3+YP/mTP8lll132sPYXXHBBvvGNb+T888/P+973vlx77bXZcMPxi6KGHwMAAEywO++8M1tvvXU22GCD/PM///OI18XedNNNecpTnpLjjz8+L3rRi3L11Vdnn332ybnnnptf/vKXSZJf//rX+elPfzriPhYtWrTq+dnPfnaS5DnPeU7OOeecJMlZZ52V3XffPUny4x//OLvsskve+973Zsstt8wtt9zykG09+tGPzl133TXifp761Kdm1qxZed/73pfDDjssSfL0pz89t99++6pQ+8ADD+Taa6/NihUrcsstt2SvvfbKySefnN/+9rf53e9+N6bvbjR6agEAgJlrgFvwTIbXv/71OeSQQ/KFL3whe+21Vx71qEc9rM2iRYvy2c9+NhtttFGe8IQn5O/+7u/yuMc9Lu9///uz7777ZsWKFdloo43y8Y9/PE960pMe9vn77rsvu+yyS1asWJGzzz47SW+Sple/+tX54Ac/mNmzZ+fMM89Mkrz1rW/NDTfckNZa9tlnn+y00075+te/vmpbL3zhC/OSl7wk5513Xj72sY89bF+HHXZY3vrWt+YnP/lJkmTjjTfOueeem+OPPz533nlnli9fnje+8Y152tOelpe//OW5884701rLCSeckMc+9rHj8p2uVK21cd3gZJk/f35bvHjxVJexZoPcE2ua/EcGAAAzwZIlS7L99ttPdRmTbs6cOVm8eHG23HLLqS5lrYz0c6uqK1tr80f7rOHHAAAAdJbhxwAAAB23dOnSqS5hyuipBQAAZpSuXmK5vlrXn5dQCwAAzBibbLJJ7rjjDsG2I1prueOOO0a8xdGgDD8GAABmjG222SbLli3L7bffPtWlMKBNNtkk22yzzVp/XqgFAABmjI022ihPfvKTp7oMJtGkDj+uqk2q6oqq+kFVXVtV7+kvf3JVfaeqbqiqRVW18WTWBQAAQDdN9jW19yXZu7W2U5J5Sfavql2TfCDJKa217ZL8JslrJrkuAAAAOmhSQ23r+V3/7Ub9R0uyd5Jz+8s/neTAyawLAACAbpr02Y+ralZVXZXkl0kuSvLjJL9trS3vN1mW5I9X89ljqmpxVS124TcAAACTHmpbaw+21uYl2SbJgiTbj9RsNZ89rbU2v7U2f/bs2RNZJgAAAB0wZfepba39NsmlSXZN8tiqWjkT8zZJfjZVdQEAANAdkz378eyqemz/9aZJnp9kSZJLkryk3+yVSc6bzLoAAADopsm+T+3WST5dVbPSC9Sfb639a1Vdl+Scqnp/ku8nOWOS6wIAAKCDJjXUttauTvLMEZbflN71tQAAADCwKbumFgAAANaVUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnTWqoraonVtUlVbWkqq6tqjf0l7+7qm6tqqv6jz+fzLoAAADopg0neX/Lk7y5tfa9qnp0kiur6qL+ulNaax+a5HoAAADosEkNta2125Lc1n99V1UtSfLHk1kDAAAAM8eUXVNbVXOSPDPJd/qLjquqq6vqU1W1+Wo+c0xVLa6qxbfffvskVQoAAMB0NSWhtqo2S/IvSd7YWvvvJJ9M8tQk89Lryf3wSJ9rrZ3WWpvfWps/e/bsSasXAACA6WnSQ21VbZReoD2rtfbFJGmt/aK19mBrbUWSf0yyYLLrAgAAoHsme/bjSnJGkiWttY8MWb71kGYHJblmMusCAACgmyZ79uPdkhyV5IdVdVV/2TuTHFFV85K0JEuTHDvJdQEAANBBkz378beS1AirLpzMOgAAAJgZpmz2YwAAAFhXQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdNamhtqqeWFWXVNWSqrq2qt7QX/64qrqoqm7oP28+mXUBAADQTZPdU7s8yZtba9sn2TXJ/1VVOyRZmOTi1tp2SS7uvwcAAIA12nCsH6iqpyZ5QpJNkvw6yY2ttbsG+Wxr7bYkt/Vf31VVS5L8cZIXJ9mz3+zTSS5N8vax1gYAAMD6ZdRQW1UbJPmzJK9Isk+SzZNUf3VLsqKqrk1ybpLPtNZuHmTHVTUnyTOTfCfJ4/uBN62126pqq7EdBgAAAOujNQ4/rqojk1yf5Oz0Aux7k+yd5BlJnpZklyRHJPm3JC9JcmNVnVFV24yy3c2S/EuSN7bW/nvQYqvqmKpaXFWLb7/99kE/BgAAwAw1Wk/t25O8J8kXWmv3rabN4vR6aRdW1dOTvDG9oPvBkRpX1UbpBdqzWmtf7C/+RVVt3e+l3TrJL0f6bGvttCSnJcn8+fPbKLUDAAAww60x1LbW5o5lY62165O8bnXrq6qSnJFkSWvtI0NWnZ/klUlO6j+fN5b9AgAAsH4a80RR62i3JEcl+WFVXdVf9s70wuznq+o1SW5O8tJJrgsAAIAOGpdQW1VPTFKjTRLVWvtW/jDJ1HD7jEctAAAArD/Gq6f2pvQmnZo1TtsDAACAUY1XqH1NVt8DCwAAABNiXEJta+0z47EdAAAAGIs13qcWAAAAprOBe2qr6vOjtWmtHbpu5QAAAMDgxjL8ePYIyx6X5OlJ7khy/bhUBAAAAAMaONS21vYaaXn/dj5fSnLKeBUFAAAAg1jna2pba7ckOTHJyeteDgAAAAxuvCaKejDJNuO0LQAAABjIWCaK2mGExRsn2T7J+5J8d7yKAgAAgEGMZaKoa5K0EZZXeoH2L8elIgAAABjQWELtSBNF3ZtkWWvt1nGqBwAAAAY2ltmPvz6RhQAAAMBYjddEUQAAADDpxiXUVtUNVfXj8dgWAAAADGos19SuyTei1xcAAIBJNi6htrX2mvHYDgAAAIyF3lUAAAA6a0w9tVVVSXZL8rQkmwxf31r7xDjVBQAAAKMaONRW1eOTXJxkhyQtSfVXtSHNhFoAAAAmzViGH384yZ1JnpheoN0lyZwkf5vkhvR6bwEAAGDSjGX48R5J3pDktv77aq3dnOT/qaoN0uul3W+c6wMAAIDVGktP7WOT3N5aW5Hkv5NsNWTdt5M8ZzwLAwAAgNGMJdT+JMnW/dfXJjlyyLoXJvn1eBUFAAAAgxjL8OMLkuyb5PNJ3p/kvKpaluSBJNsmefv4lwcAAACrN3Coba29Y8jrr1TVc5IclGTTJBe11r4yAfUBAADAao3pPrVDtdYWJ1k8jrUAAADAmKzxmtqqmjPWDVbVBlX1xLUtCAAAAAY12kRRP6yqs6pq76qqNTWsqm2q6s1Jbkxy+LhVCAAAAKsx2vDj/5Xk/07y/yW5u6quSHJNkl8luS+92/w8OcmfJtkhydVJ3tZaO3fCKgYAAIC+NYba1tqtSV5XVW9LcliSvZMcmOQJSTZJ7zY+16cXel/VWrtyYssFAACAPxhooqjW2l1JTu8/AAAAYFoY7ZpaAAAAmLaEWgAAADpLqAUAAKCzhFoAAAA6S6gFAACgs9Yp1FbV5lU1r6oeMV4FAQAAwKAGDrVV9Z6qOmnI+72T3JzkyiQ/rqo/mYD6AAAAYLXG0lN7ZJL/GvL+w0m+lWS3JNcnOXEc6wIAAIBRjSXU/o8kNyVJVT0xyU5J3tVauzzJR5LsOv7lAQAAwOqNJdTeleSP+q/3TvKb1toV/ff3JnnkeBYGAAAAo9lwDG2/nmRhVa1I8pYk5w1Z97Qkt4xnYQAAADCasfTUnpDkviTnJPltkr8Zsu4VSb4xjnUBAADAqAbuqW2t3ZresOOR7JfknnGpCAAAAAY0llv6/EdV/a/VrH5Ckq+OT0kAAAAwmLEMP94zyWNWs+4xSZ63ztUAAADAGIwl1CZJG76gqjZOb1jyz8elIgAAABjQGq+prap3Jfm7/tuW5PKqWl3zD45jXQAAADCq0SaKujDJr5JUko8m+XCSpcPa3J/kv1pr3xz36gAAAGAN1hhqW2vfTfLdJKmqu5Jc0Fr71WQUBgAAAKMZyy19Pj2RhQAAAMBYDRxqq2qjJG9IcnCSbZJsMrxNa22r8SsNAAAA1mzgUJvklCTHJvnXJJekdy0tAAAATJmxhNqXJlnYWvvwRBUDAAAAYzGW+9RWkqsnqhAAAAAYq7GE2n9McsREFQIAAABjNZbhx79IcmRVXZLkoiS/Hba+tdY+uaYNVNWnkhyQ5JettR37y96d5K+S3N5v9s7W2oVjqAsAAID11FhC7T/0n7dNsscI61uSNYbaJP+U5P9N8plhy09prX1oDLUAAADAmO5TO5ahyqvbxjeqas66bgcAAACSsV1TO5GOq6qrq+pTVbX56hpV1TFVtbiqFt9+++2rawYAAMB6Ykyhtqq2qqoPVNXFVfWjqvqT/vI3VNWz17KGTyZ5apJ5SW5LstpbBrXWTmutzW+tzZ89e/Za7g4AAICZYuBQW1ULktyQ5JAkS9MLoo/or946yZvXpoDW2i9aaw+21lakN8PygrXZDgAAAOufsfTUnpLkkiRPS3JsevetXemKrGUYraqth7w9KMk1a7MdAAAA1j9jmf34WUle3FpbUVU1bN0dSbYabQNVdXaSPZNsWVXLkrwryZ5VNS+92ZOXpheYAQAAYFRjCbV3JlndhaxPSe8+tmvUWjtihMVnjKEGAAAAWGUsw4/PS/KeqnrKkGWtqrZM8pYkXxzXygAAAGAUYwm1C5P8d5Lrknyjv+zUJNcnuSfJ341vaQAAALBmAw8/bq39pqp2TXJUkn2S/D7Jr5OcnuQzrbX7JqZEAAAAGNlYrqlNa+3+9K6BdR0sAAAAU24s96n9elW9rqpWN1kUAAAATKqxXFN7e5IPJflZVV1UVa+uqs0nqC4AAAAY1ViuqX1JVT0qyYuSHJrk40k+WVUXJVmU5MuttbsmpswZ7JITB2u31zsmtg4AAIAOGktPbVprv2+tnd1aOyjJVkn+qr/qH5P8fLyLAwAAgDUZU6gdqt8r++MkP0nvVj+bjldRAAAAMIgxh9qqWlBVH66qm9O7X+0eSf53ku3GuzgAAABYk4Gvqa2qk9K7lvZJSW5IcmaSc1prSyaoNgAAAFijsdyn9tAkn08vyF41QfUAAADAwMYy+/FTJrIQAAAAGKs1XlNbVS+rqscNW7ZtVW04bNn/qKp3TkSBAAAAsDqjTRT1z0n+58o3VTUrvdmO5w5r98Qk7xvf0gAAAGDNRgu1NeAyAAAAmHRrfZ9aAAAAmGpCLQAAAJ01SKhtAy4DAACASTXILX2+WlXLhy27eNiysdzvFgAAAMbFaGH0PZNSBQAAAKyFNYba1ppQCwAAwLRloigAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLOEWgAAADpLqAUAAKCzhFoAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLOEWgAAADpLqAUAAKCzhFoAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLOEWgAAADpLqAUAAKCzhFoAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLOEWgAAADpLqAUAAKCzhFoAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLOEWgAAADpLqAUAAKCzhFoAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLMmNdRW1aeq6pdVdc2QZY+rqouq6ob+8+aTWRMAAADdNdk9tf+UZP9hyxYmubi1tl2Si/vvAQAAYFSTGmpba99I8uthi1+c5NP9159OcuBk1gQAAEB3TYdrah/fWrstSfrPW62uYVUdU1WLq2rx7bffPmkFAgAAMD1Nh1A7sNbaaa21+a21+bNnz57qcgAAAJhi0yHU/qKqtk6S/vMvp7geAAAAOmI6hNrzk7yy//qVSc6bwloAAADokMm+pc/ZSS5L8vSqWlZVr0lyUpIXVNUNSV7Qfw8AAACj2nAyd9ZaO2I1q/aZzDoAAACYGabD8GMAAABYK0ItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ214VQXwIAuOXGwdnu9Y2LrAAAAmEb01AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnSXUAgAA0FlCLQAAAJ0l1AIAANBZQi0AAACdJdQCAADQWUItAAAAnbXhVBfAOLvkxMHa7fWOia0DAABgEuipBQAAoLOEWgAAADpLqAUAAKCzhFoAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLOEWgAAADpLqAUAAKCzhFoAAAA6a8OpLmClqlqa5K4kDyZZ3lqbP7UVAQAAMN1Nm1Dbt1dr7VdTXQQAAADdYPgxAAAAnTWdQm1L8rWqurKqjpnqYgAAAJj+ptPw491aaz+rqq2RnQ+oAAARhElEQVSSXFRV/9Va+8bQBv2we0ySbLvttlNRIwAAANPItOmpba39rP/8yyRfSrJghDantdbmt9bmz549e7JLBAAAYJqZFqG2qh5VVY9e+TrJvkmumdqqAAAAmO6my/Djxyf5UlUlvZo+11r7t6ktCQAAgOluWoTa1tpNSXaa6joAAADolmkx/BgAAADWhlALAABAZwm1AAAAdJZQCwAAQGcJtQAAAHSWUAsAAEBnCbUAAAB0llALAABAZwm1AAAAdJZQCwAAQGdtONUFMEUuOXH0Nnu9Y+LrAAAAWAd6agEAAOgsoRYAAIDOEmoBAADoLKEWAACAzhJqAQAA6CyhFgAAgM5ySx8AABjQKRf9aKB2J7zgaRNcCbCSnloAAAA6S6gFAACgs4RaAAAAOss1tazeJScO1m6vd0xsHQAAAKuhpxYAAIDO0lMLAADrGbM4j8z30k16agEAAOgsoRYAAIDOEmoBAADoLKEWAACAzjJRFNA5JnEAGJnfj90z6M9sUOP9s50p59R4f89ML0It6879bAEAgCli+DEAAACdJdQCAADQWUItAAAAneWa2mnuspvuGKjds5+yxQRXsvZWHsPly8fnAv3pPhHB+mSmTB4x3nwvADCy8f5/pAmgHm59/HeInloAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLOEWgAAADrL7MdMml1vPm2gdpdve8wa16+PM7oBE8vvlckxnrOUjvfPwjkwsun+vUznc2qqzJTZgGfKcTA59NQCAADQWUItAAAAnSXUAgAA0FmuqWXaGa9rbwEAgJlPqIUBTffJMgY1U45jfTITfmZTdQwmGmGmmO7n8vr0ewqSwc6X6Xy+zzSGHwMAANBZQi0AAACdZfgxM9slJw7Wbq93TGwdAADAhNBTCwAAQGfpqV2PXHbTHQO1e/ZTthjX7U2VUy76UXa9efQaBz3eMRm0h3gApyw/ZNy2BcnMmNBlqoz3dzdTJtByrqy9qZqcaLrvdyacU+vbxFPr2/EOwu/aySPUAhPPMHAAACaI4ccAAAB0lp5aOmvXm0+bnvu8ZAKGM0+FgXpXDY0GAGBqCbUA01X/DwujXRt++bbHTEY1rAcG/WOhcw6A6USohWluvHuk/WMUAICZRKhlvXfZTXckN71l1Ha7TsR+p8DAIXkcZ4Ue9FgvXz7YLIGDHMPl2x4zrrMO7nrzaYPNlD2Gya5Gq2+Q2bvHsr1Brfx+Lztj9W3G+48jg+xz6H6n4wyQDzkv13QZwgDnyPBzfHXfy3T5I9VUzHo63WfvZd1M5Pc86P9DJnufYzFd/ttncvn9s3pCLTAjTdkwyktOHCiMjud+DRldO743AJgZpk2orar9k/zvJLOSnN5aO2mKSwJGMRWTdY23mXAMMJppO7Fe/NFgJOPZkzjePwc/V2A6mhahtqpmJfl4khckWZbku1V1fmvtuqmtDGBidD1MT9U/bFftd8BZxsc6hHtSDJlZfF3rm6rzaDqfv1MxtHQmGO+f6fryc5jO/w3OhO93vPmjzMw1LUJtkgVJbmyt3ZQkVXVOkhcnEWphPTKd/6E8E0zn3rrpbCYcw3Q2nb/fqerlnOxtTZXpfAzTubbxNhXHOt1D43QeLcHIqrU21TWkql6SZP/W2l/23x+VZJfW2nHD2h2TZOVP/OlJrp/UQsdmyyS/muoiYC05f+k65zBd5vyly5y/jKcntdZmj9ZouvTU1gjLHpa2W2unJenEn86qanFrbf5U1wFrw/lL1zmH6TLnL13m/GUqbDDVBfQtS/LEIe+3SfKzKaoFAACAjpguofa7SbarqidX1cZJDk9y/hTXBAAAwDQ3LYYft9aWV9VxSb6a3i19PtVau3aKy1pXnRgmDavh/KXrnMN0mfOXLnP+MummxURRAAAAsDamy/BjAAAAGDOhFgAAgM4SatdRVe1fVddX1Y1VtXCE9Y+oqkX99d+pqjmTXyWMbIDz901VdV1VXV1VF1fVk6aiThjJaOfvkHYvqapWVW4xwbQyyDlcVYf2fw9fW1Wfm+waYXUG+DfEtlV1SVV9v//viD+fijpZP7imdh1U1awkP0rygvRuS/TdJEe01q4b0ub1Sea21l5bVYcnOai1dtiUFAxDDHj+7pXkO621u6vqdUn2dP4yHQxy/vbbPTrJBUk2TnJca23xZNcKIxnwd/B2ST6fZO/W2m+qaqvW2i+npGAYYsDz97Qk32+tfbKqdkhyYWttzlTUy8ynp3bdLEhyY2vtptba/UnOSfLiYW1enOTT/dfnJtmnqmoSa4TVGfX8ba1d0lq7u//28vTuIQ3TwSC/f5PkfUlOTnLvZBYHAxjkHP6rJB9vrf0mSQRappFBzt+W5DH913+U5GeTWB/rGaF23fxxkluGvF/WXzZim9ba8iR3JtliUqqDNRvk/B3qNUm+MqEVweBGPX+r6plJntha+9fJLAwGNMjv4KcleVpV/WdVXV5V+09adbBmg5y/707y8qpaluTCJH89OaWxPpoW96ntsJF6XIeP5x6kDUyFgc/Nqnp5kvlJ9pjQimBwazx/q2qDJKckOXqyCoIxGuR38IZJtkuyZ3ojZb5ZVTu21n47wbXBaAY5f49I8k+ttQ9X1bOT/HP//F0x8eWxvtFTu26WJXnikPfb5OFDK1a1qaoN0xt+8etJqQ7WbJDzN1X1/CR/k+RFrbX7Jqk2GM1o5++jk+yY5NKqWppk1yTnmyyKaWTQf0Oc11p7oLX2kyTXpxdyYaoNcv6+Jr1rwtNauyzJJkm2nJTqWO8Itevmu0m2q6onV9XGSQ5Pcv6wNucneWX/9UuS/EczOxfTw6jnb3/45v9JL9C6lovpZI3nb2vtztbalq21Of2JSS5P7zw2URTTxSD/hvhykr2SpKq2TG848k2TWiWMbJDz9+Yk+yRJVW2fXqi9fVKrZL0h1K6D/jWyxyX5apIlST7fWru2qt5bVS/qNzsjyRZVdWOSNyVZ7W0nYDINeP5+MMlmSb5QVVdV1fD/YcGUGPD8hWlrwHP4q0nuqKrrklyS5K2ttTumpmL4gwHP3zcn+auq+kGSs5McrWOHieKWPgAAAHSWnloAAAA6S6gFAACgs4RaAAAAOkuoBQAAoLOEWgAAADpLqAVgSlTVf1TVD6pqw2HLD6mqVlUvGLZ8p6r6XFXdWlX3V9Wvq+rfq+qwoduoqn/qf37l466q+m5VHTxZxzas7o2r6t1VNW+AtnsOq/2Bqrqpqk6uqkcNa7t0SLv7qupnVXVhVR1VVRuspt3qHkdPwKEPP7ZjqurAru8DgOlnw9GbAMCEeH2Sq5Mcn+QjSVJVmyX5h/TueXjRyoZV9ZIkn0vyn0nekWRpkscl+fMkn0nvfspnDNn2fyV5Vf/1Y5Icnd79lvdorX1rwo5oZBsneVd6NV814GeOTHJTko2SPCvJ3yd5bJJjhrX7XJKPJZmVZOsk+6X3PRxZVS9qrd2f5KAkjxjymX9Lcm6S04cs+/Hgh7PWjklyTZIvd3wfAEwzQi0AU6K19l9V9eEk76mqRa21W5O8J8kfJTlhZbuq+uMk/5TkrCSvbg+9wfqX+9vYetjmf99au3zINv49yV5JXpRkskPt2ri6tXZN//U3+9/B0Xl4qL1t6HEmObeqPp/kK+mF//e01r4/9ANVtTzJsmGfA4DOMvwYgKn0viR3JDmlquam12v7rtbaz4a0+cv0/gj75mGBNknSWru+tXbpmnbSWluR5O70ej5Xqap5VXVxVd1dVb+pqrOq6vHD2mxZVZ+uqjv67S6tqvnD2ryoqq6sqt/3t/Odqtqjv/qu/vOZQ4b7zlnz1/Iwdw2vfQ3HelF6PbGvG+M+RlRVe/eP596q+kVVfaLfo75y/dH9Y9ps2OeWVtWH+q8vTfKnSV45fMjzynZV9bdV9fOq+l3/5/BH47UPAGY2oRaAKdNauzvJG5K8NMl5Sa5LbzjtUM9Lsri19uuxbLuqNuw/HldVb0kyp7+PletnJ7k0ySOTvCzJXyfZI8lFVbXxkE19Ob1hvW9Jclh6/++8pKr+Z387T00vRP5HkhemN3T4X9MbHp0ke/ef35/k2f3HbaOUP6tf+6ZVtVuSY5N8aQyHf1GSx69FeH6IqtohveHKv0pySHrDqF+W3vGOxevTGxJ+Yf7wHVwwZP0RSZ6f5K+SvCnJX+Shw6PHYx8AzFCGHwMwpVpr51XVlen1su3dWls+rMn/yAjXotZDJ5ha0e+NXelPkzwwdH2Stw3r0X1z/3m/1tp/97f5oyTfSS/AnV1V+yfZLcmerbWv99v8R3rXx741vbD5zCR3tdbeOmTbFw55/d3+84/HMOR3+PF+K73wP6hl/efH92tdW3+X5KdJXtRaezBJqurXSRZV1bNba5cNspHW2nVV9fskt6/mO9g0yV+01n7X38fvk/xzVW3fWlsyTvsAYIbSUwvAlOoP5X1mkpZkz5Ga9NcN/8wDQx6fH/aZJUl27j/2SC+c/f2w4agLknxtZaBNktbaFemFwN2HtLl9ZaDtt/l9ej2xK9v8MMkf9Yco7zt8luK1dHi/9l3S68XcMr3rhwf9/3aNQw1J7/i/tDLQ9v1LkuX5w/GPh4tWBtq+L6Z3DDuP4z4AmKH01AIwZfoh7ZNJLktvyOzCqvp0a+2mIc1uTbLNsI9elz8Env8zwqbvbq0tHvL+G1X1hCQn97ff0ptc6toRPvuL/GHo8Nb996tt01q7vqpenGRhej20D1TVl5K8obV2+0jHPYBrh0wUdUVV3ZBkcXqzPf/rAJ//4yF1rouHHX9r7cGquiN/+I7Gwy+H7eOeqvpdHj4BGAA8jJ5aAKbSa9PrpX19kpPSC7AfHdbmG0l2rqrNVy5ord3dWlvcD653ZTDXJZmdXq9n0ruudasR2j0+ya/H0CattQtaa89NskWS16R3fejwa4PXxXX95+0HbL9vkp+31pau434fdvxVNSu941x5/Pf2n4deh5wkm2dww/exaXq3aVp57fF47AOAGUqoBWBKVNVW6d1/9WOttatba/elN/vxX/R7Plc6PcmDST64jrvcMck96c22nPSund2vqh49pKad05tQ6ltD2mxVVc8b0uaR6U1k9LBbA7XW7mytfS69SZ126C++v/+8yTrWniS3jNawql6Q5CXp9YCvq+8kOagfZFc6OL2RXiuPf+X1u6sCd1Xtkt79gYe6P6v/Dl4wbGbjg9Mbcr6yt3089gHADGX4MQBT5UPphcx3rVzQWruwqs5L8g9V9bXW2j2ttVur6lVJzqqqpyQ5M73rXjdLMj/J3CTnD9v2o6pq1/7rTZM8N72ZdT8xZEKpj6R325uvVtUH+ts7Kb1rZP+lX89Xq+o/05sYaWF6gfgt/W1+MEmq6tj0Ztr9tyQ/S7JderM5f6a/jfur6idJDq2qa9Lrdby6tbYy7I5kbj/kbZDkKUn+NsnN6d1/dqit+8c5K8kT0pul+ej0hnKfuIbtD+r9Sb6f3vW8n0xvGPgHknx1yCRRV6Tfw15Vf5vesOS3JfnvYdv6r/T+iLBfet/jT1prK//AcE+SC6rqg+kNOf5getfyruyhHo99ADBTtdY8PDw8PDwm9ZHebXpakiNGWPekJL9P8r5hy+clOTu94PhAesNf/yO9GYg3GtLun/rbXvm4J73huwuTbDxsm8/sb+PuJL9N8rkkjx/WZnZ6AfU3/W19PcnOQ9avvHXMz9ILrD9JL/g9YkibfZNc3V/fksxZzfey57DaV6TXS3l2kqcOa7t0SLv70xuq+5UkRyXZYA3f/a+SvHsMP6t90uuxvTe9a18/kWSzYW12Tm+W57vTC8G79ev70JA2T0ny70nu7Nd89JDj+HCSd6d3/e7v+8f72PHah4eHh4fHzH5Uaw+7jz0AwKSoqqVJzm2tvWWqawGgm1xTCwAAQGcJtQAAAHSW4ccAAAB0lp5aAAAAOkuoBQAAoLOEWgAAADpLqAUAAKCzhFoAAAA66/8H8P+Tt/4aA7gAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1152x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "true_positives_XG=output_XG[:,1][np.where(Y_test[:,1]==1)]\n",
    "false_positives_XG=output_XG[:,1][np.where(Y_test[:,0]==1)]\n",
    "plt.hist(true_positives_XG,alpha=0.5,bins=80,density=True,label=\"True positives\");\n",
    "plt.hist(false_positives_XG,alpha=0.5,bins=80,density=True, label=\"False positives\");\n",
    "plt.legend()\n",
    "plt.xlabel(\"XGBoost BDT output\", fontsize='15')\n",
    "plt.ylabel(\"Events (a.u.)\", fontsize='15')\n",
    "fig=plt.gcf()\n",
    "fig.set_size_inches(16,8)\n",
    "plt.savefig('/home/hep/davide/Rphipi/'+PATH+'/tp_vs_fp_XG.png', format='png', dpi=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 261,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6027397260273972"
      ]
     },
     "execution_count": 261,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.float(np.where(true_positives_XG>0.5)[0].shape[0])/np.float(true_positives_XG.shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 262,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "pAUC from XG Boost 0.930797420973\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfoAAAHoCAYAAAChCy3ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XmcjWXjx/HPZSxjFyNrlorKlpiipBg7IVpIDyrFrygPCT2V1kc7IkuytVmKLE3WrKVUKsmSnYzILsvMmOX6/XEPz8TMOMM55z7L9/16zeusznwpvnPd93Vfl7HWIiIiIqEph9sBRERExHdU9CIiIiFMRS8iIhLCVPQiIiIhTEUvIiISwlT0IiIiIUxFLyIiEsJU9CIiIiFMRS8iIhLCcrodwBuioqJshQoV3I4hIiLiFz/99NNBa21xT94bEkVfoUIFVq9e7XYMERERvzDG7PL0vTp0LyIiEsJU9CIiIiFMRS8iIhLCQuIcfUaSkpKIi4sjISHB7SgSwCIjIylbtiy5cuVyO4qIiE+EbNHHxcVRsGBBKlSogDHG7TgSgKy1HDp0iLi4OCpWrOh2HBERnwjZQ/cJCQkUK1ZMJS+ZMsZQrFgxHfURkZAWskUPqOTlgvT/iIiEupAuehERkXCnoveR3bt3U7FiRQ4fPgzAkSNHqFixIrt2OWscbNmyhTvuuIOrrrqK2rVr07BhQ1asWHHe5yxbtozChQtTs2ZNatSoQePGjdm/f7/Xcu7cuZPJkydn+lrevHmpWbMmVapUoUuXLiQlJZ19/ZtvvuGmm27i2muv5dprr2Xs2LH/+PUffvgh1apVo2rVqlSpUoW33norw+/j6ftERCT7VPQ+csUVV/Doo48ycOBAAAYOHEj37t0pX748CQkJtGrViu7du7Nt2zZ++uknRowYwfbt2zP8rPr167NmzRrWrl3LjTfeyMiRI72WM6uiB7jqqqtYs2YNv/32G3FxcXz66acA7Nu3j06dOjFmzBh+//13vvnmG9577z2+/PJLAObNm8ewYcNYuHAh69ev5+eff6Zw4cLnfb6n78tMcnJyNn/HIiLhJWRn3af373/DmjXe/cyaNWHYsKzf06dPH2rXrs2wYcP45ptvGDFiBACffPIJN998M23atDn73mrVqlGtWrUsP89ay/Hjx7n66qsBOHz4MA899BDbt28nX758jB07lho1amT6/PLly+nduzfgnJtesWIFAwcOZOPGjdSsWZOuXbvSp0+fDL93REQEN910E3v27AFg5MiRPPDAA9SqVQuAqKgo3njjDV544QVatWrFq6++yltvvUXp0qUB5zK2Rx555LzPzep9DRo04K233iI6OpqDBw8SHR3Nzp07mTRpEl9++SUJCQmcPHmS4sWL07VrV1q2bAnAAw88QOvWrbnzzjsZOHAgy5YtIzExkZ49e9KjR4+s/6OJiISYsCh6t+TKlYs333yT5s2bs3DhQnLnzg3A+vXrzxakJ77++mtq1qzJoUOHyJ8/P4MHDwbg+eef54YbbmDWrFksWbKELl26sGbNmkyff+uttxg5ciT16tXjxIkTREZG8tprr/HWW28RGxubZYaEhAS+//573nnnnbO/h65du/7jPdHR0axfvx6AdevWUbt27Qv+3jx937m+++471q5dS9GiRZk5cybTpk2jZcuWnD59msWLFzN69GjGjx9P4cKF+fHHH0lMTKRevXo0bdpUl9KJSFgJi6K/0Mjbl+bNm0epUqVYt24dTZo0yfA97dq1Y8uWLVSuXJnPP//8vNfr169/tohff/11+vfvz5gxY/jmm2+YMWMGADExMRw6dIhjx45l+ny9evXo27cv999/P+3bt6ds2bIXzL9t2zZq1qzJli1buPvuu6lRowbgHF3IaMa6v2axN2nShKJFiwLQokULnnjiCRITE5k/fz633XYbefPmZeHChaxdu5bp06cDcOzYMbZs2aKiF5GwonP0PrRmzRoWLVrEqlWrGDp0KHv37gWgatWq/Pzzz2ffN3PmTCZNmnR24l5W2rRpc3bSnrX2vNeNMZk+P3DgQMaNG0d8fDx169bl999/v+D3O3OOfuvWraxatYo5c+ac/T2cu2PgTz/9RJUqVc6+/tNPP13w87N6X86cOUlNTQU471r3/Pnzn70fGRlJgwYNWLBgAdOmTaNjx46A8+czYsQI1qxZw5o1a9ixYwdNmza9YCYRkVDi16I3xkwwxuw3xqzL5HVjjBlujNlqjFlrjPH8+HaAsdby6KOPMmzYMMqVK8dTTz1Fv379AOjUqRMrV648W5oAp06d8uhzv/nmG6666ioAbrvtNj755BPAmZ0fFRVFoUKFMn1+27ZtVK9enQEDBhAdHc3vv/9OwYIF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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "threshold_range=np.linspace(0.0,1.,num=30)\n",
    "sig_eps_vals_XG=[sel_eff(true_positives_XG,threshold_range[k]) for k in range(len(threshold_range))]\n",
    "bkg_eps_vals_XG=[sel_eff(false_positives_XG,threshold_range[k]) for k in range(len(threshold_range))]\n",
    "\n",
    "\n",
    "plt.plot(threshold_range,threshold_range, 'black', linestyle='dashed')\n",
    "plt.plot(bkg_eps_vals_XG,sig_eps_vals_XG,'b',label=\"XG Boost ROC Curve\")\n",
    "plt.xlabel(\"Background selection efficiency\", fontsize='15')\n",
    "plt.ylabel(\"Signal selection efficiency\", fontsize='15')\n",
    "pAUC_XG=roc_auc_score(Y_test,output_XG)\n",
    "plt.text(0.69,0.1,\"\\n XGBoost AUC {0:.4g}\\n\".format(pAUC_XG), bbox=dict(boxstyle=\"round\", facecolor='blue', alpha=0.10), horizontalalignment='center', verticalalignment='center',fontsize='15')\n",
    "plt.legend()\n",
    "fig=plt.gcf()\n",
    "fig.set_size_inches(8,8)\n",
    "\n",
    "print(\"pAUC from XG Boost {0}\".format(pAUC_XG))\n",
    "plt.savefig('/home/hep/davide/Rphipi/'+l_flv[l_index]+'/BDTs/test_'+str(test)+'/roc_comparison_'+str(i)+'.png', format='png', dpi=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 263,
   "metadata": {},
   "outputs": [],
   "source": [
    "# save XGBOOST model to file\n",
    "pickle.dump(model, open(PATH+\"/XG_\"+str(i)+\"_.pickle.dat\", \"wb\"), protocol=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 264,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.bar(np.arange(dim-1),model.feature_importances_)\n",
    "plt.xticks(np.arange(dim-1), features[:-1], rotation=90, fontsize=12);\n",
    "fig=plt.gcf()\n",
    "fig.set_size_inches(12,6)\n",
    "plt.savefig('/home/hep/davide/Rphipi/'+l_flv[l_index]+'/BDTs/test_'+str(test)+'/significant_features_'+str(i)+'.png', format='png', dpi=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "15"
      ]
     },
     "execution_count": 204,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 284,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'mu/BDTs/test_1/XG_9'"
      ]
     },
     "execution_count": 284,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PATH"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}