Newer
Older
btos_qed_MonteCarlo / example_BtoKll.ipynb
@Davide Lancierini Davide Lancierini on 29 Jun 2019 125 KB First commit
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/davide/miniconda3/envs/zfit_env/lib/python3.6/site-packages/zfit/util/execution.py:57: UserWarning: Not running on Linux. Determining available cpus for thread can failand be overestimated. Workaround (only if too many cpus are used):`zfit.run.set_n_cpu(your_cpu_number)`\n",
      "  warnings.warn(\"Not running on Linux. Determining available cpus for thread can fail\"\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
      "For more information, please see:\n",
      "  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
      "  * https://github.com/tensorflow/addons\n",
      "If you depend on functionality not listed there, please file an issue.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from math import pi\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import tensorflow as tf\n",
    "import zfit\n",
    "\n",
    "#from utils.kin_utils_2 import *\n",
    "from utils.BtoKll_utils import *\n",
    "\n",
    "ztf = zfit.ztf\n",
    "ztyping = zfit.util.ztyping\n",
    "ztypes = zfit.settings.ztypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "zfit.run.check_numerics = False\n",
    "zfit.settings.set_verbosity(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "mmu_mass = 0.5\n",
    "mB_mass=5280\n",
    "mKst_mass=892\n",
    "\n",
    "lower_q2= 4*mmu_mass*mmu_mass\n",
    "upper_q2=(mB_mass-mKst_mass)*(mB_mass-mKst_mass)\n",
    "\n",
    "#lower_q= 2*mmu_mass\n",
    "#upper_q=(mB_mass-mKst_mass)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "class dGamma(zfit.pdf.ZPDF):\n",
    "    \n",
    "    _PARAMS = ['mB','mKst','ml']\n",
    "    _N_OBS = 2\n",
    "    VALID_LIMITS={\n",
    "                  'cos_theta_l':(-1.,1.),\n",
    "                  'q2': (lower_q2, upper_q2),\n",
    "                  #'Eg': (cutoff, 10)\n",
    "                 }\n",
    "    \n",
    "    def _unnormalized_pdf(self, x):\n",
    "        \n",
    "        ml = self.params['ml']\n",
    "        mB = self.params['mB']\n",
    "        mKst = self.params['mKst']\n",
    "        \n",
    "        q2, cos_theta_l = x.unstack_x()\n",
    "        #pdf = matrix_elt(q2, ml, mB, mKst, cos_theta_l)*dphi2(mB,mKst,ztf.sqrt(q2))*dphi2(ztf.sqrt(q2),ml,ml)\n",
    "        pdf = dphi2(mB,mKst,ztf.sqrt(q2))*dphi2(ztf.sqrt(q2),ml,ml)\n",
    "        #pdf= phase_space(q2, ml, mB, mKst)\n",
    "        #pdf = beta_l(q2, ml)\n",
    "        \n",
    "        return pdf\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameAlreadyTakenError",
     "evalue": "Another parameter is already named ml. Use a different, unique one.",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameAlreadyTakenError\u001b[0m                     Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-33-ed8b43963c30>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmlepton_par\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mzfit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mParameter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ml'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmmu_mass\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0mmB_par\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mzfit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mParameter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'mB'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmB_mass\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mmKst_par\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mzfit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mParameter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'mKst'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmKst_mass\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/zfit_env/lib/python3.6/site-packages/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m    215\u001b[0m       \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_variable_v2_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    216\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 217\u001b[0;31m       \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mVariableMetaclass\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    218\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    219\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/zfit_env/lib/python3.6/site-packages/zfit/core/parameter.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, value, lower_limit, upper_limit, step_size, floating, dtype, **kwargs)\u001b[0m\n\u001b[1;32m    326\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    327\u001b[0m         super().__init__(initial_value=value, dtype=dtype, name=name, constraint=constraint,\n\u001b[0;32m--> 328\u001b[0;31m                          params={}, **kwargs)\n\u001b[0m\u001b[1;32m    329\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlower_limit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcast\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlower_limit\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mztypes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    330\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupper_limit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcast\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mupper_limit\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mztypes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/zfit_env/lib/python3.6/site-packages/zfit/util/execution.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m    132\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    133\u001b[0m         \u001b[0;34m\"\"\"Creates a `self.sess` attribute, a setter `set_sess` (with a fallback to the zfit default session).\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 134\u001b[0;31m         \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    135\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sess\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    136\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/zfit_env/lib/python3.6/site-packages/zfit/core/parameter.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, initial_value, **kwargs)\u001b[0m\n\u001b[1;32m    235\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_existing_names\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    236\u001b[0m             raise NameAlreadyTakenError(\"Another parameter is already named {}. \"\n\u001b[0;32m--> 237\u001b[0;31m                                         \"Use a different, unique one.\".format(name))\n\u001b[0m\u001b[1;32m    238\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_existing_names\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    239\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameAlreadyTakenError\u001b[0m: Another parameter is already named ml. Use a different, unique one."
     ]
    }
   ],
   "source": [
    "mlepton_par = zfit.Parameter('ml', mmu_mass)\n",
    "mB_par = zfit.Parameter('mB', mB_mass)\n",
    "mKst_par = zfit.Parameter('mKst', mKst_mass)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "lower = ((lower_q2,  -1.),)\n",
    "upper = ((upper_q2,   1.),)\n",
    "\n",
    "obs = zfit.Space([\"q2\",\"cos_theta_l\"], limits=(lower,upper))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "pdf = dGamma(obs=obs, ml = mlepton_par, mB = mB_par, mKst = mKst_par)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_events=1000000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "sampler = pdf.create_sampler(n=n_events)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(1):\n",
    "    sampler.resample()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "sample=sampler.to_pandas()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "q2vals_MC = np.array([sample['q2'][i] for i in range(n_events)])\n",
    "q2vals2 = q2vals_MC.reshape(n_events,1)\n",
    "\n",
    "cos_theta_vals_MC = np.array([sample['cos_theta_l'][i] for i in range(n_events)])\n",
    "cos_theta_vals = cos_theta_vals_MC.reshape(n_events,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x720 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "plt.subplot(2,1,1)\n",
    "a=plt.hist(q2vals2,bins=100);\n",
    "plt.subplot(2,1,2)\n",
    "b=plt.hist(cos_theta_vals,bins=100);\n",
    "fig = plt.gcf()\n",
    "fig.set_size_inches(15,10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x720 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "vals=np.arange(lower_q2,upper_q2,1000)\n",
    "f=dphi2_np(np.sqrt(vals),mmu_mass,mmu_mass)*dphi2_np(mB_mass,mKst_mass,np.sqrt(vals))\n",
    "plt.subplot(2,1,1)\n",
    "a=plt.hist(q2vals2,bins=100);\n",
    "\n",
    "plt.subplot(2,1,2)\n",
    "plt.plot(vals/1e6,f) \n",
    "fig = plt.gcf()\n",
    "fig.set_size_inches(15,10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "def momenta_map(q2, cos_theta_l, m_l):\n",
    "    \n",
    "    n_events = q2.shape[0]\n",
    "    \n",
    "    sin_theta_l = np.sqrt(1-np.square(cos_theta_l))\n",
    "\n",
    "    beta = dphi2_np(np.sqrt(q2), mmu_mass, mmu_mass)\n",
    "    lambd = lambda_function_np(mB_mass,mKst_mass,np.sqrt(q2))\n",
    "    \n",
    "    phi_l = np.random.uniform(low=-pi,high=pi, size=(n_events,1))\n",
    "    cos_phi_l = np.cos(phi_l)\n",
    "    sin_phi_l = np.sin(phi_l)\n",
    "\n",
    "    p1_1 = 0.5*np.sqrt(q2)*beta*sin_theta_l*cos_phi_l\n",
    "    p1_2 = 0.5*np.sqrt(q2)*beta*sin_theta_l*sin_phi_l\n",
    "    p1_3 = 0.5*np.sqrt(q2)*beta*cos_theta_l\n",
    "    p1_0 = 0.5*np.sqrt(q2)\n",
    "    \n",
    "    p1 = np.concatenate([      p1_1,\n",
    "                               p1_2,\n",
    "                               p1_3,\n",
    "                               p1_0], axis =1)\n",
    "    \n",
    "    p2 = np.concatenate([      -p1_1,\n",
    "                               -p1_2,\n",
    "                               -p1_3,\n",
    "                                p1_0], axis =1)\n",
    "    \n",
    "\n",
    "    \n",
    "    EKst_B = (np.square(mB_mass)+np.square(mKst_mass)-q2)/(2*mB_mass)\n",
    "    modKst_B = np.sqrt(lambd)/(2*mB_mass)\n",
    "    \n",
    "    phi_Kst = np.random.uniform(low=-pi,high=pi, size=(n_events,1))\n",
    "    theta_Kst = np.random.uniform(low=0,high=pi, size=(n_events,1))\n",
    "    \n",
    "    cos_phi_Kst = np.cos(phi_Kst)\n",
    "    sin_phi_Kst = np.sin(phi_Kst)\n",
    "        \n",
    "    cos_theta_Kst = np.cos(theta_Kst)\n",
    "    sin_theta_Kst = np.sin(theta_Kst)\n",
    "        \n",
    "    pKst_B_0 = EKst_B\n",
    "    pKst_B_1 = modKst_B*sin_theta_Kst*cos_phi_Kst\n",
    "    pKst_B_2 = modKst_B*sin_theta_Kst*sin_phi_Kst\n",
    "    pKst_B_3 = modKst_B*cos_theta_Kst\n",
    "    \n",
    "    q_B_0 =  mB_mass - EKst_B\n",
    "    q_B_1 = - pKst_B_1\n",
    "    q_B_2 = - pKst_B_2\n",
    "    q_B_3 = - pKst_B_3\n",
    "    \n",
    "    pKst_B = np.concatenate([    pKst_B_1,\n",
    "                                 pKst_B_2,\n",
    "                                 pKst_B_3,\n",
    "                                 pKst_B_0], axis =1)\n",
    "    \n",
    "    q_B = np.concatenate([       q_B_1,\n",
    "                                 q_B_2,\n",
    "                                 q_B_3,\n",
    "                                 q_B_0,], axis =1)\n",
    "    q_B_vec = np.concatenate([\n",
    "                            q_B_1,\n",
    "                            q_B_2,\n",
    "                            q_B_3,\n",
    "                            ], axis=1)\n",
    "    \n",
    "    beta_B = q_B_vec/q_B_0\n",
    "    \n",
    "    p1_B = lorentz_boost_np(p1, beta_B)\n",
    "    p2_B = lorentz_boost_np(p2, beta_B)\n",
    "    \n",
    "    \n",
    "    return  pKst_B, q_B, p1_B, p2_B, p1, p2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "pKst_B, q_B, p1_B, p2_B, p1, p2 = momenta_map(q2vals2, cos_theta_vals, mmu_mass)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5000000000058044"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sqrt(scalar_product_4_np(p2_B,p2_B)).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "892.0"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sqrt(scalar_product_4_np(pKst_B,pKst_B)).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5280.0"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(pKst_B+p1_B+p2_B)[:,3].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8.941619977775872e-14"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(pKst_B+p1_B+p2_B)[:,0].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-2.012661423633766e-14"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(pKst_B+p1_B+p2_B)[:,1].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-2.0537912082119192e-13"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(pKst_B+p1_B+p2_B)[:,2].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(p1_B[:,3],bins=100);\n",
    "fig = plt.gcf()\n",
    "fig.set_size_inches(15,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(p1_B[:,0],bins=100);\n",
    "fig = plt.gcf()\n",
    "fig.set_size_inches(15,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAEvCAYAAAD4uAgWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAdRUlEQVR4nO3dfYxmZ3kf4N+dNRDUfNiGhTpe03WTrRqDWkOmtiX6BzUJXgPKOhVEdtuwIVadRFglUtRik0okfERGbSAhBbdO2GBHhMUipF4FU2fDh2ik2HgMDmAc4i24eGMLL11DQEhGNnf/eB+HYT27M7M7uzNz5rqkV/O+93nOmfNKR+P9+X7Oc6q7AwAAwDR831qfAAAAAKtHyAMAAJgQIQ8AAGBChDwAAIAJEfIAAAAmRMgDAACYkNPW+gSO1zOf+czevn37Wp8GAADAmrjrrru+2t1bj6xv2JC3ffv2zM/Pr/VpAAAArImq+r+L1U3XBAAAmBAhDwAAYEKWHfKqaktVfbqq/nR8Preq7qiq+6rq/VX11FF/2vh8YGzfvuAY1476F6rqkgX1naN2oKquWb2vBwAAsLmspJP32iT3Lvj81iRv7+4dSR5JcuWoX5nkke7+sSRvH+NSVecluTzJc5PsTPKuERy3JHlnkkuTnJfkijEWAACAFVpWyKuqbUleluT3x+dKcnGSD4whNya5bLzfNT5nbH/xGL8ryd7ufrS7v5TkQJILxutAd3+xu7+dZO8YCwAAwAott5P320n+U5LvjM/PSPK17n5sfD6Y5Ozx/uwkDyTJ2P71Mf7v60fsc7Q6AAAAK7RkyKuqlyd5uLvvWlheZGgvsW2l9cXO5aqqmq+q+UOHDh3jrAEAADan5XTyXpjkp6vq/symUl6cWWfv9Kp64jl725I8ON4fTHJOkoztP5zk8ML6Efscrf4k3X1Dd89199zWrU965h8AAMCmt2TI6+5ru3tbd2/PbOGUj3b3v03ysSSvGMN2J7llvN83Pmds/2h396hfPlbfPDfJjiSfTHJnkh1jtc6njt+xb1W+HQAAwCZz2tJDjup1SfZW1ZuTfDrJu0f93Un+sKoOZNbBuzxJuvueqro5yeeTPJbkNd39eJJU1dVJbkuyJcme7r7nBM4LAABg06pZk23jmZub6/n5+bU+DQAAgDVRVXd199yR9RPp5AHAprX9mg8dc/v9173sFJ0JAHyvlTwMHQAAgHVOyAMAAJgQIQ8AAGBChDwAAIAJEfIAAAAmRMgDAACYECEPAABgQjwnDwCOYqln4QHAeqSTBwAAMCFCHgAAwIQIeQAAABMi5AEAAEyIkAcAADAhQh4AAMCECHkAAAATIuQBAABMiJAHAAAwIUIeAADAhAh5AAAAEyLkAQAATIiQBwAAMCFCHgAAwIQIeQAAABOyZMirqu+vqk9W1V9V1T1V9Ruj/p6q+lJV3T1e5496VdU7qupAVX2mql6w4Fi7q+q+8dq9oP4TVfXZsc87qqpOxpcFAACYutOWMebRJBd39zer6ilJ/qKqPjy2/cfu/sAR4y9NsmO8LkxyfZILq+rMJG9IMpekk9xVVfu6+5Ex5qoktye5NcnOJB8OAAAAK7JkJ69nvjk+PmW8+hi77Epy09jv9iSnV9VZSS5Jsr+7D49gtz/JzrHth7r7L7u7k9yU5LIT+E4AAACb1rLuyauqLVV1d5KHMwtqd4xNbxlTMt9eVU8btbOTPLBg94Ojdqz6wUXqAAAArNCyQl53P97d5yfZluSCqnpekmuT/NMk/yLJmUleN4Yvdj9dH0f9Sarqqqqar6r5Q4cOLefUAQAANpUVra7Z3V9L8vEkO7v7oTEl89Ekf5DkgjHsYJJzFuy2LcmDS9S3LVJf7Pff0N1z3T23devWlZw6AADAprCc1TW3VtXp4/3Tk/xkkr8e99JlrIR5WZLPjV32JXnVWGXzoiRf7+6HktyW5CVVdUZVnZHkJUluG9u+UVUXjWO9Ksktq/s1AQAANoflrK55VpIbq2pLZqHw5u7+06r6aFVtzWy65d1JfmmMvzXJS5McSPKtJK9Oku4+XFVvSnLnGPfG7j483v9ykvckeXpmq2paWRMAAOA4LBnyuvszSZ6/SP3io4zvJK85yrY9SfYsUp9P8rylzgUAAIBjW9E9eQAAAKxvQh4AAMCECHkAAAATIuQBAABMiJAHAAAwIUIeAADAhAh5AAAAEyLkAQAATIiQBwAAMCFCHgAAwIQIeQAAABMi5AEAAEyIkAcAADAhQh4AAMCECHkAAAATIuQBAABMiJAHAAAwIUIeAADAhAh5AAAAEyLkAQAATIiQBwAAMCFCHgAAwIQIeQAAABMi5AEAAEzIkiGvqr6/qj5ZVX9VVfdU1W+M+rlVdUdV3VdV76+qp47608bnA2P79gXHunbUv1BVlyyo7xy1A1V1zep/TQAAgM1hOZ28R5Nc3N3/PMn5SXZW1UVJ3prk7d29I8kjSa4c469M8kh3/1iSt49xqarzklye5LlJdiZ5V1VtqaotSd6Z5NIk5yW5YowFAABghZYMeT3zzfHxKePVSS5O8oFRvzHJZeP9rvE5Y/uLq6pGfW93P9rdX0pyIMkF43Wgu7/Y3d9OsneMBQAAYIWWdU/e6LjdneThJPuT/J8kX+vux8aQg0nOHu/PTvJAkoztX0/yjIX1I/Y5Wh0AAIAVWlbI6+7Hu/v8JNsy67z9+GLDxs86yraV1p+kqq6qqvmqmj906NDSJw4AALDJrGh1ze7+WpKPJ7koyelVddrYtC3Jg+P9wSTnJMnY/sNJDi+sH7HP0eqL/f4bunuuu+e2bt26klMHAADYFJazuubWqjp9vH96kp9Mcm+SjyV5xRi2O8kt4/2+8Tlj+0e7u0f98rH65rlJdiT5ZJI7k+wYq3U+NbPFWfatxpcDAADYbE5bekjOSnLjWAXz+5Lc3N1/WlWfT7K3qt6c5NNJ3j3GvzvJH1bVgcw6eJcnSXffU1U3J/l8kseSvKa7H0+Sqro6yW1JtiTZ0933rNo3BAAA2ERq1mTbeObm5np+fn6tTwOACdt+zYdOynHvv+5lJ+W4AGwuVXVXd88dWV/RPXkAAACsb0IeAADAhCznnjwAmKSTNR0TANaSTh4AAMCECHkAAAATIuQBAABMiJAHAAAwIUIeAADAhAh5AAAAEyLkAQAATIiQBwAAMCFCHgAAwIQIeQAAABMi5AEAAEyIkAcAADAhQh4AAMCECHkAAAATIuQBAABMiJAHAAAwIUIeAADAhAh5AAAAEyLkAQAATIiQBwAAMCFCHgAAwIQsGfKq6pyq+lhV3VtV91TVa0f916vqb6vq7vF66YJ9rq2qA1X1haq6ZEF956gdqKprFtTPrao7quq+qnp/VT11tb8oAADAZlDdfewBVWclOau7P1VVP5jkriSXJfnZJN/s7v96xPjzkrwvyQVJfiTJnyf5J2Pz3yT5qSQHk9yZ5Iru/nxV3Zzkg929t6r+e5K/6u7rj3Vec3NzPT8/v7JvC8Cmsv2aD631KRyX+6972VqfAgAbQFXd1d1zR9aX7OR190Pd/anx/htJ7k1y9jF22ZVkb3c/2t1fSnIgs8B3QZID3f3F7v52kr1JdlVVJbk4yQfG/jdmFiIBAABYoRXdk1dV25M8P8kdo3R1VX2mqvZU1RmjdnaSBxbsdnDUjlZ/RpKvdfdjR9QBAABYoWWHvKr6gSR/nORXuvvvklyf5EeTnJ/koSS/9cTQRXbv46gvdg5XVdV8Vc0fOnRouacOAACwaSwr5FXVUzILeO/t7g8mSXd/pbsf7+7vJPm9zKZjJrNO3DkLdt+W5MFj1L+a5PSqOu2I+pN09w3dPdfdc1u3bl3OqQMAAGwqy1lds5K8O8m93f22BfWzFgz7mSSfG+/3Jbm8qp5WVecm2ZHkk5kttLJjrKT51CSXJ9nXs5VfPpbkFWP/3UluObGvBQAAsDmdtvSQvDDJzyX5bFXdPWqvT3JFVZ2f2dTK+5P8YpJ09z1jtczPJ3ksyWu6+/Ekqaqrk9yWZEuSPd19zzje65Lsrao3J/l0ZqESAACAFVoy5HX3X2Tx++ZuPcY+b0nylkXqty62X3d/Md+d7gkAAMBxWtHqmgAAAKxvQh4AAMCECHkAAAATIuQBAABMiJAHAAAwIUIeAADAhAh5AAAAE7Kch6EDAKfQ9ms+dMzt91/3slN0JgBsREIeABvaUoEIADYb0zUBAAAmRMgDAACYECEPAABgQoQ8AACACRHyAAAAJkTIAwAAmBAhDwAAYEKEPAAAgAnxMHQA2GCO9QD4+6972Sk8EwDWI508AACACRHyAAAAJsR0TQDWtWNNTQQAnkwnDwAAYEKEPAAAgAkR8gAAACZkyZBXVedU1ceq6t6quqeqXjvqZ1bV/qq6b/w8Y9Srqt5RVQeq6jNV9YIFx9o9xt9XVbsX1H+iqj479nlHVdXJ+LIAAABTt5yFVx5L8qvd/amq+sEkd1XV/iQ/n+Qj3X1dVV2T5Jokr0tyaZId43VhkuuTXFhVZyZ5Q5K5JD2Os6+7Hxljrkpye5Jbk+xM8uHV+5oAsDkstVCN5+gBTN+Snbzufqi7PzXefyPJvUnOTrIryY1j2I1JLhvvdyW5qWduT3J6VZ2V5JIk+7v78Ah2+5PsHNt+qLv/srs7yU0LjgUAAMAKrOgRClW1Pcnzk9yR5Nnd/VAyC4JV9awx7OwkDyzY7eCoHat+cJE6AJuExyQAwOpZ9sIrVfUDSf44ya90998da+gitT6O+mLncFVVzVfV/KFDh5Y6ZQAAgE1nWSGvqp6SWcB7b3d/cJS/MqZaZvx8eNQPJjlnwe7bkjy4RH3bIvUn6e4bunuuu+e2bt26nFMHAADYVJazumYleXeSe7v7bQs27UvyxAqZu5PcsqD+qrHK5kVJvj6mdd6W5CVVdcZYifMlSW4b275RVReN3/WqBccCAABgBZZzT94Lk/xcks9W1d2j9vok1yW5uaquTPLlJK8c225N8tIkB5J8K8mrk6S7D1fVm5LcOca9sbsPj/e/nOQ9SZ6e2aqaVtYEAAA4DkuGvO7+iyx+31ySvHiR8Z3kNUc51p4kexapzyd53lLnAgAAwLEte+EVAAAA1r8VPUIBAI6HRyQAwKmjkwcAADAhOnkAsIkcq6t6/3UvO4VnAsDJopMHAAAwIUIeAADAhAh5AAAAEyLkAQAATIiFVwCAJEs/6sLCLAAbg5AHwAnzHDwAWD9M1wQAAJgQIQ8AAGBChDwAAIAJEfIAAAAmxMIrAMCyWH0TYGPQyQMAAJgQnTwAlsVjEgBgY9DJAwAAmBCdPABgVRyr2+t+PYBTR8gDIInpmAAwFaZrAgAATIiQBwAAMCFCHgAAwIS4Jw9gE3HfHQBM35Ihr6r2JHl5koe7+3mj9utJ/n2SQ2PY67v71rHt2iRXJnk8yX/o7ttGfWeS30myJcnvd/d1o35ukr1JzkzyqSQ/193fXq0vCACsvaX+B4PVNwFWz3Kma74nyc5F6m/v7vPH64mAd16Sy5M8d+zzrqraUlVbkrwzyaVJzktyxRibJG8dx9qR5JHMAiIAAADHYcmQ192fSHJ4mcfblWRvdz/a3V9KciDJBeN1oLu/OLp0e5PsqqpKcnGSD4z9b0xy2Qq/AwAAAMOJLLxydVV9pqr2VNUZo3Z2kgcWjDk4akerPyPJ17r7sSPqAAAAHIfjDXnXJ/nRJOcneSjJb416LTK2j6O+qKq6qqrmq2r+0KFDRxsGAACwaR1XyOvur3T34939nSS/l9l0zGTWiTtnwdBtSR48Rv2rSU6vqtOOqB/t997Q3XPdPbd169bjOXUAAIBJO65HKFTVWd390Pj4M0k+N97vS/JHVfW2JD+SZEeST2bWsdsxVtL828wWZ/k33d1V9bEkr8jsPr3dSW453i8DAGxMVt8EWD3LeYTC+5K8KMkzq+pgkjckeVFVnZ/Z1Mr7k/xiknT3PVV1c5LPJ3ksyWu6+/FxnKuT3JbZIxT2dPc941e8Lsneqnpzkk8nefeqfTuATcZz8ACAJUNed1+xSPmoQay735LkLYvUb01y6yL1L+a70z0BAAA4Acc1XROAtaFTx2Z1rGvfVE6A73Uij1AAAABgnRHyAAAAJkTIAwAAmBD35AGsM+67g5Xx+AWA76WTBwAAMCFCHgAAwIQIeQAAABMi5AEAAEyIhVcATjELq8Cp5UHqwGajkwcAADAhOnkAwKbl8QvAFAl5AKvMdEwAYC2ZrgkAADAhQh4AAMCEmK4JcBxMyYTNwT17wEakkwcAADAhOnkAAMfJM/iA9UgnDwAAYEJ08gAW4Z47AGCj0skDAACYEJ08YNPSrQNOJitzAmtFJw8AAGBChDwAAIAJWXK6ZlXtSfLyJA939/NG7cwk70+yPcn9SX62ux+pqkryO0lemuRbSX6+uz819tmd5D+Pw765u28c9Z9I8p4kT09ya5LXdnev0vcDNjHTMYH1zOMXgJNlOZ289yTZeUTtmiQf6e4dST4yPifJpUl2jNdVSa5P/j4UviHJhUkuSPKGqjpj7HP9GPvEfkf+LgAAAJZpyZDX3Z9IcviI8q4kN473Nya5bEH9pp65PcnpVXVWkkuS7O/uw939SJL9SXaObT/U3X85unc3LTgWAAAAK3S8q2s+u7sfSpLufqiqnjXqZyd5YMG4g6N2rPrBReoASzIdEwDgyVb7EQq1SK2Po774wauuymxqZ57znOccz/kBAKx7Hr8AnIjjXV3zK2OqZcbPh0f9YJJzFozbluTBJerbFqkvqrtv6O657p7bunXrcZ46AADAdB1vJ29fkt1Jrhs/b1lQv7qq9ma2yMrXx3TO25L85oLFVl6S5NruPlxV36iqi5LckeRVSX73OM8JmCBTMgGeTKcPOJblPELhfUlelOSZVXUws1Uyr0tyc1VdmeTLSV45ht+a2eMTDmT2CIVXJ8kIc29KcucY98bufmIxl1/Odx+h8OHxAgAA4DgsGfK6+4qjbHrxImM7yWuOcpw9SfYsUp9P8rylzgMAAIClrfbCKwArYjomAMDqOt6FVwAAAFiHdPKAk063DuDUOpG/uxZtgY1PJw8AAGBCdPIAAPh7x+oC6vLBxqCTBwAAMCFCHgAAwISYrgksycIpAAAbh5AHAMCyLPU//dyzB+uD6ZoAAAATopMHJDElEwBgKoQ8AABWhemcsD4IeQAAnBKewQenhpAHm4TpmAAAm4OFVwAAACZEJw8AgDXnfj5YPTp5AAAAE6KTBxPivjsAAIQ82ECEOAAAliLkAQCw7nn8AiyfkAcAwIZm0Rb4XkIerCOmYwIAcKKEPDjFBDkAOLV0+thsPEIBAABgQk4o5FXV/VX12aq6u6rmR+3MqtpfVfeNn2eMelXVO6rqQFV9pqpesOA4u8f4+6pq94l9JQAAgM1rNaZr/qvu/uqCz9ck+Uh3X1dV14zPr0tyaZId43VhkuuTXFhVZyZ5Q5K5JJ3krqra192PrMK5wSlnOiYAbCxW7mRqTsZ0zV1Jbhzvb0xy2YL6TT1ze5LTq+qsJJck2d/dh0ew259k50k4LwAAgMk70U5eJ/mzquok/6O7b0jy7O5+KEm6+6GqetYYe3aSBxbse3DUjlaHdUmnDgA2D4u2sBGdaMh7YXc/OILc/qr662OMrUVqfYz6kw9QdVWSq5LkOc95zkrPFQAAYPJOKOR194Pj58NV9SdJLkjylao6a3Txzkry8Bh+MMk5C3bfluTBUX/REfWPH+X33ZDkhiSZm5tbNAjCatCtAwBgozrukFdV/yDJ93X3N8b7lyR5Y5J9SXYnuW78vGXssi/J1VW1N7OFV74+guBtSX7ziVU4x3GuPd7zAgCAU8V0TtajE+nkPTvJn1TVE8f5o+7+X1V1Z5Kbq+rKJF9O8sox/tYkL01yIMm3krw6Sbr7cFW9KcmdY9wbu/vwCZwXLEmnDgCAqarujTnrcW5urufn59f6NNighDwAYK3p8nGiququ7p47sn4yHqEAAADAGlmNh6HDuqRbBwCsZ+7n42TRyQMAAJgQnTw2LJ06AGDKjvVvHV0+jkUnDwAAYEJ08li3dOoAABbnfj6ORScPAABgQnTyWFO6dQAAq0+nb3PTyQMAAJgQnTxOKp06AID1x8qd06aTBwAAMCFCHgAAwISYrskJMyUTAGA6LNqy8Ql5LEmIAwDgCe7nW/9M1wQAAJgQnTx06gAAYEKEPAAAYFW4n299EPI2Cd06AADWmhB4argnDwAAYEJ08iZCpw4AAEiEPAAAYJ3weIbVIeRtILp1AABsVu7nWz735AEAAEyITt46olMHAADHx1TP71o3nbyq2llVX6iqA1V1zVqfDwAAwEa0Ljp5VbUlyTuT/FSSg0nurKp93f35tT2z1aVTBwAAp95mu59vvXTyLkhyoLu/2N3fTrI3ya41PicAAIANZ1108pKcneSBBZ8PJrlwjc7lhOjWAQDAxjK1Tt96CXm1SK2fNKjqqiRXjY/frKovnNSzYj14ZpKvrvVJMBmuJ1aT64nV5ppiNbmeVlG9da3P4Kj+0WLF9RLyDiY5Z8HnbUkePHJQd9+Q5IZTdVKsvaqa7+65tT4PpsH1xGpyPbHaXFOsJtfT5rZe7sm7M8mOqjq3qp6a5PIk+9b4nAAAADacddHJ6+7HqurqJLcl2ZJkT3ffs8anBQAAsOGsi5CXJN19a5Jb1/o8WHdMz2U1uZ5YTa4nVptritXketrEqvtJ65sAAACwQa2Xe/IAAABYBUIea6aq/ktV/XVVfaaq/qSqTl+w7dqqOlBVX6iqSxbUd47agaq6ZkH93Kq6o6ruq6r3jwV82ESq6pVVdU9Vfaeq5o7Y5npiVR3t2oGFqmpPVT1cVZ9bUDuzqvaPvy/7q+qMUa+qese4pj5TVS9YsM/uMf6+qtq9Ft+FtVdV51TVx6rq3vHfu9eOumuKJxHyWEv7kzyvu/9Zkr9Jcm2SVNV5ma2w+twkO5O8q6q2VNWWJO9McmmS85JcMcYmyVuTvL27dyR5JMmVp/SbsB58Lsm/TvKJhUXXE6ttiWsHFnpPZn93FromyUfG35ePjM/J7HraMV5XJbk+mf0DPskbklyY5IIkb3jiH/FsOo8l+dXu/vEkFyV5zfjb45riSYQ81kx3/1l3PzY+3p7Z8xGTZFeSvd39aHd/KcmBzP4IXZDkQHd/sbu/nWRvkl1VVUkuTvKBsf+NSS47Vd+D9aG77+3uLyyyyfXEalv02lnjc2Id6u5PJDl8RHlXZn9Xku/9+7IryU09c3uS06vqrCSXJNnf3Ye7+5HM/gfpkcGRTaC7H+ruT43330hyb5Kz45piEUIe68UvJPnweH92kgcWbDs4akerPyPJ1xYExifqkLieWH1Hu3ZgOZ7d3Q8ls3+0J3nWqK/0bxWbWFVtT/L8JHfENcUi1s0jFJimqvrzJP9wkU2/1t23jDG/ltkUhPc+sdsi4zuL/0+JPsZ4JmY519Niuy1Scz1xIlwjnAxHu65cb3yPqvqBJH+c5Fe6++9mE1AWH7pIzTW1SQh5nFTd/ZPH2j5u9n15khf3d5/ncTDJOQuGbUvy4Hi/WP2rmU1BOG10XxaOZ0KWup6OwvXEajvWNQVL+UpVndXdD42pcw+P+tGuq4NJXnRE/eOn4DxZh6rqKZkFvPd29wdH2TXFk5iuyZqpqp1JXpfkp7v7Wws27UtyeVU9rarOzeyG4U8muTPJjrHy4VMzW0xj3wiHH0vyirH/7iRH6+qw+bieWG2LXjtrfE5sHPsy+7uSfO/fl31JXjVWRLwoydfH1Lvbkrykqs4Yi2O8ZNTYZMY94+9Ocm93v23BJtcUT+Jh6KyZqjqQ5GlJ/t8o3d7dvzS2/Vpm9+k9ltl0hA+P+kuT/HaSLUn2dPdbRv0fZ7b4wZlJPp3k33X3o6fw67DGqupnkvxukq1Jvpbk7u6+ZGxzPbGqjnbtwEJV9b7MOibPTPKVzFY0/J9Jbk7ynCRfTvLK7j48/gH/3zJbAONbSV7d3fPjOL+Q5PXjsG/p7j84ld+D9aGq/mWS/53ks0m+M8qvz+y+PNcU30PIAwAAmBDTNQEAACZEyAMAAJgQIQ8AAGBChDwAAIAJEfIAAAAmRMgDAACYECEPAABgQoQ8AACACfn/01nJK6Kio6UAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(pKst_B[:,0],bins=100);\n",
    "fig = plt.gcf()\n",
    "fig.set_size_inches(15,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "p1_B_to_boost=p1_B\n",
    "p2_B_to_boost=p2_B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "p1_q = lorentz_boost_np(p1_B_to_boost, -q_B[:,0:3]/q_B[:,3:4])\n",
    "p2_q = lorentz_boost_np(p2_B_to_boost, -q_B[:,0:3]/q_B[:,3:4])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(p1_B[:,0],alpha=0.3,bins=100);\n",
    "plt.hist(p1[:,0],histtype=\"step\",bins=100);\n",
    "plt.hist(p1_q[:,0],alpha=0.3,bins=100);\n",
    "fig = plt.gcf()\n",
    "fig.set_size_inches(15,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(scalar_product_4_np((p1_B+p2_B),(p1_B+p2_B)),histtype=\"step\",bins=100);\n",
    "plt.hist(scalar_product_4_np((p1_q+p2_q),(p1_q+p2_q)),alpha=0.5,bins=100);\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "z=np.array([[0.,0.,1.,0] for i in range(n_events)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cos_theta_l_np=get_costheta_l_np(p1_B,z)\n",
    "cos_theta_l_np_2=get_costheta_l_np(p1_q,z)\n",
    "plt.hist(cos_theta_l_np,bins=100, histtype=\"step\", density=True);\n",
    "plt.hist(cos_theta_l_np_2,bins=100, alpha=0.5,density=True);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}