{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c6cbf212",
   "metadata": {},
   "source": [
    "#  Prob and Stats Tutorial 1\n",
    "Good refernce for this topic can be found here \\\\\n",
    "\n",
    "1. \"https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/pages/classes-reading-and-in-class-materials/\" \\\\\n",
    "\n",
    " and a nice animations of the distributions (Discrete and Continuous ) cna be found here;\n",
    "\n",
    " 2. \"https://mathlets.org/mathlets/probability-distributions/\"\n",
    "\n",
    " In this tutorial we will be mainly discussing the idea of the discrete probability distributions and work out problems related to Bayes theorem.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6886ac51",
   "metadata": {},
   "source": [
    "# 1. Binomial Distribution → Poisson Distribution (Limit)\n",
    "\n",
    "A Binomial random variable is defined as:\n",
    "\n",
    "$$\n",
    "X \\sim \\mathrm{Binomial}(n, p)\n",
    "$$\n",
    "\n",
    "with probability mass function:\n",
    "\n",
    "$$\n",
    "P(X = k) = \\binom{n}{k} p^k (1 - p)^{n-k}\n",
    "$$\n",
    "\n",
    "A Poisson random variable is:\n",
    "\n",
    "$$\n",
    "X \\sim \\mathrm{Poisson}(\\lambda)\n",
    "$$\n",
    "\n",
    "with PMF:\n",
    "\n",
    "$$\n",
    "P(X = k) = \\frac{\\lambda^k e^{-\\lambda}}{k!}\n",
    "$$\n",
    "\n",
    "\n",
    "We take the limit:\n",
    "\n",
    "$$\n",
    "n \\to \\infty, \\quad p \\to 0, \\quad \\text{with } \\lambda = np \\text{ fixed}\n",
    "$$\n",
    "\n",
    "\n",
    "Under this limit:\n",
    "\n",
    "$$\n",
    "\\mathrm{Binomial}(n, p) \\;\\longrightarrow\\; \\mathrm{Poisson}(\\lambda)\n",
    "$$\n",
    "\n",
    "\n",
    "- Many trials: $n \\gg 1$\n",
    "- Rare success: $p \\ll 1$\n",
    "- Finite mean: $\\lambda = np$\n",
    "\n",
    "So we move from:\n",
    "- discrete trial-based counting → event-rate process\n",
    "\n",
    "\n",
    "\n",
    "- Binomial: number of successes in fixed trials\n",
    "- Poisson: number of rare events in a fixed interval\n",
    "\n",
    "Examples:\n",
    "- radioactive decay counts\n",
    "- photon detection events\n",
    "- neutrino event counts in detectors\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0604964e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2 3 3 3 2 0 1 2 3 3]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "# Set parameters for the binomial distribution\n",
    "n=5   # numnber  of trials or throws \n",
    "p=0.5  # the probability of success on an individual trial\n",
    "s=10  # number of samples to generate\n",
    "\n",
    "X_bionomial= np.random.binomial(5,0.5,10)  # this will generate 10 samples from a binomial distribution with n=5 and p=0.5\n",
    "print(X_bionomial)# each value in the output array represents the number of successes in 5 trials, with a success probability of 0.5 for each trial."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "35d8adfe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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gGvXrgGAziuzPD09tQJM3bp1tdrZ2tpqLbe1tQUA3Lt3r9SxSZKE8PBwXL16FdOnT0dgYCBq1KgBSZIQEhKiHqMp3b59G9euXUNgYGCpbRo3bow9e/Zg3rx5GD9+PG7fvo1GjRphwoQJmDhxot6vZcjVbiqVqtRlJfvIXK5du1bq/tf1+uV9pkpz9+5d2NjYaIQcQ/utW7euxlVcFdGuXTs0bdq0wvOMHt131tbWqFevnsb71rBhQ70mvz8cakreD137//r16zp/FvUxZMgQLFmyBIcOHdIKQPb29hBC4N69e6hZs6ZR/VPlwTlAVO20aNECd+/exV9//VXhvkr+J5uRkaG17urVq2a9YubkyZP4/fff8cknn+Ctt95C586d0bZtW61fhKa0fft2FBcXl3vpeseOHbF161bk5ubi0KFDCA0NRWRkpEETRA25t1BmZmapy0rej5J71hQUFGi0q+iE8Xr16pW6/wGY7DPg4uKCwsLCCt1r5quvvoKNjY1eD30IISp8Kfyj+66oqAjXrl3T+By/9tpreo25a9eu6m2aN28OADhx4oTWa544cUK93lAlR0B11X39+nXY2dkx/FQTPAJE1U5KSgoAmOSS8meeeQYAsG7dOrRt21a9/MiRI0hNTcW0adMq/BqlKQkIj97L5OErtEwpPT0d77zzDpydnTFmzBi9trGyskL79u3h5+eHb775BsePH8dLL72k91EPfZ06dQq///67xmmw9evXo1atWmjTpg2ABze1A4A//vgDzZo1U7f74YcftPqzs7PTe2xdu3ZFfHw8rl69qnEac+3atXB0dDTZZfN+fn4AHkx81zWxVx/GngLT5dChQzh79iwmTJhQoX6++eYbjdPC//vf/1BUVKQRso05BVa/fn20a9cO69atwzvvvKM+cnbo0CGcOXNG5z2e9LF27VoAum+HcP78eQQEBBjVL1U+DEBUpZ08eVJ9Rcu1a9cQFxeHhIQEPPfcc/D19a1w/82aNcPo0aOxePFiKJVK9OzZExcuXMD06dPh5eWFSZMmVfg1SuPn54fGjRtjypQpEEKgbt262Lp1KxISEircd8n7VlRUhKysLBw4cABr1qyBlZUV4uPjywyPK1aswM8//4zevXujYcOGuHfvHlavXg0A6hso1qpVC97e3tiyZQu6du2KunXrwsXFRR1SDOXp6Yl+/foh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Ht544w1kZWVh5cqVJh0gERERkakZdQQoODhY/W9XV1fs2LHDZAMiIiIiMjej7wMEAFlZWThz5gwUCgWaNWsGV1dXU42LiIiIyGyMOgWWl5eHiIgI1K9fH506dcLTTz8NT09PDBkyBLm5uaYeIxEREZFJGRWARo0ahcOHD2Pbtm24efMmcnNzsW3bNhw9ehSvv/66qcdIREREZFJGnQLbvn07du3ahaeeekq9rHv37vjyyy/Ro0cPkw2OiB6vjAygQQN9WiogSa5QKhUG9a9SAUePGjU0IiKTMioA1atXD87OzlrLnZ2dUadOnQoPiogsQ5KAK1f0aakAYGXm0RARmY9RAej9999HVFQU1q5dq74cPjMzE++++y6mT59u0gESkfmpVIZuISBJEpRKJR6EobJlZDwIV0RElYXeAah169bquz8DwNmzZ+Ht7Y2GDRsCANLT02FnZ4fs7GyMGTPG9CMlIrMx9LSUJAlkZWXDzc1Nr9NgDRroe2SJiOjx0DsADRgwwIzDICIiInp89A5AM2fONOc4iIiIiB6bCt0I8dixY0hNTYVCoUBAQABat25tqnERERERmY1RASgrKwsvvfQSEhMTUbt2bQghkJubiy5duuDbb7/lHaGJiIioUjPqRohvvfUW8vLycOrUKVy/fh03btzAyZMnkZeXhwkTJph6jEREREQmZdQRoJ07d2LPnj3w9/dXLwsICMDSpUsRHh5ussERERERmYNRR4AkSYKNjY3WchsbG0i82QcRERFVckYFoGeeeQYTJ07E1atX1cuuXLmCSZMmoWvXriYbHBEREZE5GBWAlixZgvz8fPj4+KBx48Zo0qQJfH19kZ+fj8WLF5t6jEREREQmZdQcIC8vLxw/fhwJCQn4888/IYRAQEAAnn32WVOPj4iIiMjkDA5ARUVFsLe3R0pKCrp164Zu3bqZY1xEREREZmPwKTBra2t4e3ujuLjYHOMhIiIiMjuj5gC9//77iI6OxvXr1009HiIiIiKzM2oO0KJFi/D333/D09MT3t7eqFGjhsb648ePm2RwREREROZgVAAaMGAAFAoFhBCmHg8RERGR2RkUgO7cuYN3330Xmzdvxv3799G1a1csXrwYLi4u5hofERERkckZNAdo5syZiI2NRe/evfHyyy9jz549eOONN8w1NiIiIiKzMCgAxcXFYdWqVVi5ciUW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ERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkexYW3oARESmkJEBNGhgjp4VkCRXeHoqcPSoOfonIktgAKpmgoOBzEzz9J2RYZ5+iUxBkoArV8zRswKAFZRKYY7OichCGICqmcxMc/0SIKqcVCrz9p+RISBJCvO+CBE9dgxA1ZRSCXh4mKdvc//CITKEuU9LNWjAPyqIqiMGoGrKwwO4fNnSoyAiIqqcLH4V2LJly+Dr6wt7e3sEBQXhwIEDZbbft28fgoKCYG9vj0aNGmHFihVabTZt2oSAgADY2dkhICAA8fHx5ho+ERERVUEWDUAbN25EZGQkpk2bhuTkZHTs2BE9e/ZEenq6zvZpaWno1asXOnbsiOTkZEydOhUTJkzApk2b1G2SkpIwePBgRERE4Pfff0dERAQGDRqEw4cPP66yiIiIqJJTCCEsdmlD+/bt0aZNGyxfvly9zN/fHwMGDMCcOXO02k+ePBk//PADUlNT1cvGjh2L33//HUlJSQCAwYMHIy8vDz/++KO6TY8ePVCnTh1s2LBBr3Hl5eXB2dkZubm5cHJyMrY8nSRJQlZWFtzc3KBUmj5/lsxXqF/f8qfAzF1rZSKnWgF51duggcCVKwoolQIeHuabDK1SmX8+U3nktF8BedUrl1oN+f1tsTlAhYWFOHbsGKZMmaKxPDw8HAcPHtS5TVJSEsLDwzWWde/eHatWrcL9+/dhY2ODpKQkTJo0SavNggULTDp+IpIXSVJwMjRRNWKxAJSTk4Pi4mK4u7trLHd3d0dmKTeyyczM1Nm+qKgIOTk58PDwKLVNaX0CQEFBAQoKCtTPc3NzAQA3b96EJEkG1VUeSZKwcGERvvoq36T9lnhQ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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean of Binomial samples: 4.939 Expected mean (np): 5.0\n",
      "Standard deviation of Binomial samples: 1.5777449096732967 Expected std (sqrt(np(1-p))): 1.5811388300841898\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(42)  # For reproducibility\n",
    "# Parameters (fair coin case)\n",
    "n = 10\n",
    "p = 0.5\n",
    "\n",
    "num_samples = 1000\n",
    "\n",
    "# Generate samples\n",
    "bin_samples = np.random.binomial(n, p, num_samples)\n",
    "\n",
    "# Plot range (0 to n)\n",
    "bins = np.arange(0, 20)\n",
    "\n",
    "\n",
    "\n",
    "plt.hist(bin_samples,\n",
    "         bins=bins,\n",
    "         histtype=\"step\",\n",
    "         lw=2,\n",
    "         density=True,\n",
    "         label=\"Binomial (n=5, p=0.5)\",\n",
    "         color=\"blue\")\n",
    "\n",
    "\n",
    "plt.title(\"Binomial Distribution (n=5, p=0.5)\")\n",
    "plt.xlabel(\"k (number of successes)\")\n",
    "plt.ylabel(\"Probability\")\n",
    "plt.legend()\n",
    "plt.grid(alpha=0.3)\n",
    "\n",
    "plt.show()\n",
    "\n",
    "print(\"Mean of Binomial samples:\", np.mean(bin_samples), \"Expected mean (np):\", n*p)\n",
    "print(\"Standard deviation of Binomial samples:\", np.std(bin_samples), \"Expected std (sqrt(np(1-p))):\", np.sqrt(n*p*(1-p)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "789c8e0c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[5 4 2 5 8 1 2 2 1 3]\n"
     ]
    }
   ],
   "source": [
    "# set parameters for the poisson distribution\n",
    "lam=3  # the average number of events in a given time interval\n",
    "s=10  # number of samples to generate   \n",
    "X_poisson= np.random.poisson(lam,s)  # this will generate 10 samples from a Poisson distribution with an average rate of 3 events per interval\n",
    "print(X_poisson) # each value in the output array represents the number of events that occurred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "76d1dbb5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAHFCAYAAADmGm0KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgDElEQVR4nO3deVxUVf8H8M8MOyiIMjAgi2juUiKkgKGWhmGalpVZkVbaQ1aGtChZoeajZVbulj4o+pRLPS5tbliCmliJUKZkZiguQ4ALgyKLzPn9YczPcS7LDDPMwHzer9e8Xsy5555zvnMG+XrvuffKhBACRERERKRDbukBEBEREVkjJklEREREEpgkEREREUlgkkREREQkgUkSERERkQQmSUREREQSmCQRERERSWCSRERERCSBSRIRERGRBCZJRE0kNTUVMplM+7K3t4e/vz+efvppnDt3zuD2Bg0ahEGDBpl+oE1k/PjxOp+Hm5sbOnTogAceeACrV69GRUWF3j7GxHzs2DHMmDEDp06dMmi/W/s6deoUZDIZ5s+fb1A79ZkzZw62bt2qV56eng6ZTIb09HST9meIwYMHIz4+XqdMJpOhTZs2iI+PR3V1tUn7u/V35OZXQUGBtl5VVRU6deqEBQsWmLR/olvZW3oARLZm9erV6NatG65du4a9e/di7ty5yMjIwJEjR+Dm5tbgdpYtW2bGUTYNFxcXfP/99wCAa9eu4cyZM9i+fTsmTpyIDz74ADt27IC/v7+2vjExHzt2DDNnzsSgQYPQoUOHBu/XVJ/vnDlz8PDDD2PUqFE65X369EFmZiZ69OjRJOO41ZdffokffvgBa9eu1Sn/4YcfsGHDBixevBgREREYP368yfuu+R25Wbt27bQ/Ozg44O2338aUKVMQFxens43IlJgkETWxXr16ITw8HABw9913o7q6Gu+88w62bt2KJ554osHtWOqPpynJ5XJERETolD311FN4+umnMXz4cDz88MM4ePCgdltTxFxWVgZXV1eLf77u7u56n01TmjNnDh588EG0b99epzwqKgoRERHYtWsXPvnkE7MkSTf/jtRm7NixSExMxCeffII33njD5GMgAni6jcjiav4Qnj59GgBQXl6OpKQkBAcHw9HREe3bt8cLL7yAy5cv6+wndepp+fLluOOOO9CqVSu0bt0a3bp10/kDUlZWhldf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M888Azs7O6SkpGjrGXu6TUpeXh5++OEHydsh1IzR0rdroJaLp9uIrMi9996LoUOHYurUqVCr1ejfvz9+/fVXJCcnIzQ0tNZLsgFg4sSJcHFxQf/+/eHr64uCggLMnTsXHh4euPPOOwEA/fr1w/Dhw3H77bfD09MTubm5+O9//6vzB3bevHl44oknMHz4cPzrX/9CRUUF3n//fVy+fBnvvvuuSePVaDTa0ygVFRXIz8/H9u3b8fnnn6N79+74/PPP69y/ITH36tULALBixQq0bt0azs7OCA4ONvoGhHZ2drj33nuRmJgIjUaD9957D2q1GjNnztTWGTNmDN5++2089thjeO2111BeXo5FixZJrlkKCQlBeno6vv76a/j6+qJ169bo2rWrXj25XN5kczNo0CCsWrUKf/zxB7p06aItnzNnDjw9PXWuAFQqlRgxYgRSU1PxzjvvwN7eHq1bt673PkdShgwZggEDBuD222+Hu7s7jhw5gnnz5kEmk+Gdd97Rq3/w4MF6r8IjahQLLhonsik1V7f9/PPPdda7du2amDp1qggKChIODg7C19dXPP/88+LSpUs69W69+mrNmjXi7rvvFj4+PsLR0VH4+fmJRx99VPz666/aOtOmTRPh4eHC09NTODk5iY4dO4opU6aI4uJinba3bt0q+vXrJ5ydnYWbm5sYPHiw+OGHH3Tq1FxBVVRUJBnnzVctSRk3bpzOVU4uLi4iMDBQjBgxQqxatUpUVFTo7WNMzEIIsWDBAhEcHCzs7OwEALF69Wptez179pQcX21Xt7333nti5syZwt/fXzg6OorQ0FCxc+dOvf23bdsmevfuLVxcXETHjh3FkiVLJK9uy8nJEf379xeurq4CgLbPW69uq9EUc1NSUiJatWqlc3XcyZMnhZ2dnfj3v/+tV7/mqszNmzfX2W59EhISRI8ePUTr1q2Fvb298PPzE08++aQ4fvy4ZP3o6GgxYsSIRvVJVBeZELwLFxER6XrppZfw3Xff4ejRowav22oKJ0+eROfOnbFz584GL9InMhSTJCIi0vP333+jS5cuSElJwcMPP2zp4eh5+umncfbsWaSlpVl6KNSCceE2ERHp8fHxwWeffWaVl9dfv34dnTp1wtKlSy09FGrheCSJiIiISAKPJBERERFJYJJEREREJIFJEhEREZEE3kzSSBqNBufPn0fr1q2t8vJYIiIi0ieEQGlpKfz8/CQfd3MzJklGOn/+PAICAiw9DCIiIjLCmTNn4O/vX2cdJklGat26NYAbH7K7u7tJ29ZoNCgqKoJCoag3y23uGGvLZUvxMtaWy5bitZVY1Wo1AgICtH/H68IkyUg1p9jc3d3NkiSVl5fD3d29RX9RAcbaktlSvIy15bKleG0pVgANWirT8j8FIiIiIiMwSSIiIiKSwCSJiIiISALXJBERkVWqrq5GVVWVRceg0WhQVVWF8vLyFr9Op6XE6uDgADs7O5O0xSSJiIisihACBQUFuHz5sqWHAiEENBoNSktLW/w98VpSrG3atIFSqWx0HEySiIjIqtQkSN7e3nB1dbXoH2whBK5fvw57e/tmnzjUpyXEKoRAWVkZCgsLAQC+vr6Nao9JEhERWY3q6mptgtSuXTtLD6dFJA4N1VJidXFxAQAUFhbC29u7Uafemu9JRyIianFq1iC5urpaeCTUnNV8fxq7po1JEhERWZ3mfCSDLM9U3x8mSUREREQSuCaJiIisX3g4UFDQ9P0qlUBmZpN0lZ6ejrvvvhuXLl1CmzZtmqRPYwwYMADx8fF4/PHHAQCDBg1CTk4OkpKSMHXqVLP3X1hYiJ49eyInJwft27c3a19MkoiIyPoVFADnzll6FHUaP3481qxZAwCwt7dHQEAAHnroIcycORNubm717h8VFQWVSgUPDw9zD9Vo33zzDQoKCvDYY49pyzZv3oy1a9filVdeweOPP46AgIBG9TFo0CBkZGTolI0ZMwYbNmwAAHh7eyMuLg7Jycn4z3/+06i+6sMkiYiImg+5HGjkZd0NolIBGo3Bu913331YvXo1qqqqsG/fPkyYMAFXr17F8uXL693X0dERSqXSmNE2mUWLFuHpp5/Wudlk27ZtkZCQgCVLlmDdunUmOZo0ceJEzJo1S/u+5oq1Gk8//TT69u2L999/H56eno3urzZck0RERM2Hry9w9qz5X0YmYk5OTlAqlQgICMDjjz+OJ554Alu3bgUAVFRUYPLkyfD29oazszPuuusu/Pzzz9p909PTIZPJtDfRPH36NEaMGAFPT0+4ubmhZ8+e2LZtGwDg0qVLeOKJJ6BQKODi4oLOnTtj9erV2raOHDmCe+65By4uLmjXrh2ee+45XLlyRbt9/PjxGDVqFObPnw9fX1+0a9cOL7zwQp1XgxUXF2P37t144IEHJLeHh4fjs88+M+pzu5WrqyuUSqX2devRtZCQECiVSmzZssUk/dWGR5KImoisb18ozp+HzNy3+1cqgUOHzNsHETWIi4uLNvF4/fXXsWnTJqxZswZBQUGYN28ehg4dij///BNt27bV2/eFF15AZWUl9u7dCzc3Nxw7dgytWrUCALz11ls4duwYtm/fDi8vL/z555+4du0aAKCsrAz33XcfIiIi8PPPP6OwsBATJkzAiy++iNTUVG37e/bsga+vL/bs2YM///wTY8aMwe23345//etfkrHs378frq6u6N69u962ixcv4uuvv0ZZWRl+/fVX3H777dptc+bMwZw5c+r8nLZv347o6Gjt+88++wyffvopfHx8EBsbi+TkZLRu3Vpnn759+2Lfvn145pln6my7MZgkETWVggLYqVSWHgURNZGffvoJ69atw+DBg7Wn3FJTUxEbGwsAWLlyJdLS0pCSkoLXXntNb//8/HyMHj0aISEhAICOHTvqbAsNDUV4eDgAoEOHDtptn332Ga5du4a1a9dq10ItWbIEI0aMwHvvvQcfHx8AgKenJ5YsWQI7Ozt069YN999/P77//vtak6RTp07Bx8dH8rlun3zyCRQKBTw9PfHpp59i3rx52m3x8fF49NFH6/ysbl6A/cQTTyA4OBhKpRK//fYbkpKS8MsvvyAtLU1vn+zs7DrbbSwmSURNTMjlkJljTYWRayiIyHS++eYbtGrVCtevX0dVVRVGjhyJxYsX4+TJk6iqqkL//v21dR0cHNC3b1/k5uZKtjV58mQ8//zz2LVrF4YMGYLRo0drj9A8//zzGD16NA4fPoyYmBiMGjUKUVFRAIDc3FzccccdOovF+/fvD41Gg+PHj2uTpJ49e+rcjVqpVOLIkSO1xnbt2jU4OzvrlV+/fh3Lli3DlClTIJPJ8MEHH+Ddd9/VJlNt27aVPFJWm4kTJ2p/7tWrFzp37ozw8HAcPnwYffr00W5zcXFBWVlZg9s1BtckETU1c62paIrFrERUp7vvvhs5OTk4fvw4ysvLsXnzZnh7e0MIAUD/JodCiFpvfDhhwgT89ddfiIuLw5EjRxAeHo7FixcDAGJjY3H69GkkJCTg/PnzGDx4MF599dV627y53MHBQW+bpo7/aHl5eeHSpUt65V988QXUajUmTJiAsWPHoqCgAOnp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idWQ+CyWJBUXF6O6uho+Pj465T4+PigoKDC63W7duiE1NRUhISFQq9VYuHAh+vfvj19++QWdO3c2ut+5c+di5syZeuVFRUV6650aS6PRoKSkBEIIyOUWXzZmVtYWq0Kjgd0/4yoqLDRp2+aO1ZxjN4a1za05MdaWy5bitZVYS0tLG1zXYklSDZlMpvNeCKFXZoiIiAhERERo3/fv3x99+vTB4sWLsWjRIqP7TUpKQmJiova9Wq1GQEAAFAoF3N3djR6vFI1GA5lMBoVC0aK/qID1xSr7ZwxyuRze3t4mbdvcsZpz7Mawtrk1J8bactlSvLYS681rlOtjsSTJy8sLdnZ2ekdvCgsL9Y7yNIZcLsedd96JEydONKpfJycnODk5SbZvlj94MpnZ2rY21hirDP+fdJi03SaI1VxjN4Y1zq25MNaWy5bitYVYDYnNYp+Co6MjwsLCkJaWplOelpaGqKgok/UjhEBOTg58fX2btF8iIiJq3ix6ui0xMRFxcXEIDw9HZGQkVqxYgfz8fMTHxwO4cYrr3LlzWLt2rXafnJwcADcWZxcVFSEnJweOjo7o0aMHAGDmzJmIiIhA586doVarsWjRIuTk5GDp0qUN7peIiIjIoknSmDFjcOHCBcyaNQsqlQq9evXCtm3bEBQUBODGzSNvvXdRzVVqAJCVlYV169YhKCgIp06dAgBcvnwZzz33HAoKCuDh4YHQ0FDs3bsXffv2bXC/RERERDIhhLD0IJojtVoNDw8PlJSUmGXhdmFhIby9vVv0eWHACmP19wfOnQPatwfOnjVp02aP1YxjN4bVza0ZMdaWy5bitZVYDfn73XI/BSIiIqJGYJJEREREJIFJEhEREZEEJklEREREEpgkEREREUlgkkREREQkgUkSERERkQSLP+CWiExMpbpxzyRzUSqBQ4fM1z4RkZVgkkTU0mg0N24qSUREjcIkiailUCrN275KdSMBIyKyEUySiFoKc58Cq3nsCRGRjWCSRM1LeDhQUGC+9lUq87VNRETNCpMkal4KCng0g4iImgSTJGqe5HLA19d87Zt7fQ8REVk9JknUPPn6AmfPWnoURETUgvFmkkREREQSmCQRERERSWCSRERERCSBSRIRERGRBCZJRERERBKYJBERERFJYJJEREREJIFJEhEREZEEJklEREREEpgkEREREUlgkkREREQkgUkSERERkQQmSUREREQSmCQRERERSWCSRERERCSBSRIRERGRBCZJRERERBKYJBERERFJYJJEREREJIFJEhEREZEEJklEREREEiyeJC1btgzBwcFwdnZGWFgY9u3bV2tdlUqFxx9/HF27doVcLkdCQoJenZUrVyI6Ohqenp7w9PTEkCFD8NNPP+nUmTFjBmQymc5LqVSaOjQiIiJqxiyaJG3cuBEJCQmYPn06srOzER0djdjYWOTn50vWr6iogEKhwPTp03HHHXdI1klPT8fYsWOxZ88eZGZmIjAwEDExMTh37pxOvZ49e0KlUmlfR44cMXl8RERE1HxZNEn68MMP8eyzz2LChAno3r07FixYgICAACxfvlyyfocOHbBw4UI89dRT8PDwkKzz2WefYdKkSejduze6deuGlStXQqPR4LvvvtOpZ29vD6VSqX0pFAqTx0dERETNl72lOq6srERWVhamTZumUx4TE4MDBw6YrJ+ysjJUVVWhbdu2OuUnTpyAn58fnJyc0K9fP8yZMwcdO3astZ2KigpUVFRo36vVagCARqOBRqMx2Xhr2hRCmLxda2RorLJ/XgKAaGafT3OfV0M/++YeryEYa8tlS/HaSqyGxGexJKm4uBjV1dXw8fHRKffx8UFBQYHJ+pk2bRrat2+PIUOGaMv69euHtWvXokuXLvj7778xe/ZsREVF4ejRo2jXrp1kO3PnzsXMmTP1youKilBeXm6y8QI3JrCkpARCCMjlFl82ZlaGxqrQaGD3z35FhYXmH6AJNfd5NfSzb+7xGoKxtly2FK+txFpaWtrguhZLkmrIZDKd90IIvTJjzZs3D+vXr0d6ejqcnZ215bGxsdqfQ0JCEBkZiU6dOmHNmjVITEyUbCspKUlnm1qtRkBAABQKBdzd3U0y3hoajQYymQwKhaJFf1EBw2OV/VNHLpfD29vb3MMzqeY+r4Z+9s09XkMw1pbLluK1lVhvzgfqY7EkycvLC3Z2dnpHjQoLC/WOLhlj/vz5mDNnDnbv3o3bb7+9zrpubm4ICQnBiRMnaq3j5OQEJycnvXK5XG6WL5NMJjNb29bGmFhl+P8/2s1JS5hXQz77lhBvQzHWlsuW4rWFWA2JzWKfgqOjI8LCwpCWlqZTnpaWhqioqEa1/f777+Odd97Bjh07EB4eXm/9iooK5ObmwtfXt1H9EhERUcth0dNtiYmJiIuLQ3h4OCIjI7FixQrk5+cjPj4ewI1TXOfOncPatWu1++Tk5AAArly5gqKiIuTk5MDR0RE9evQAcOMU21tvvYV169ahQ4cO2iNVrVq1QqtWrQAAr776KkaMGIHAwEAUFhZi9uzZUKvVGDduXBNGT0RERNbMoknSmDFjcOHCBcyaNQsqlQq9evXCtm3bEBQUBODGzSNvvWdSaGio9uesrCysW7cOQUFBOHXqFIAbN6esrKzEww8/rLNfcnIyZsyYAQA4e/Ysxo4di+LiYigUCkRERODgwYPafomIiIgsvnB70qRJmDRpkuS21NRUvTIhRJ3t1SRLddmwYUNDhkZEREQ2rOWuzCIiIiJqBCZJRERERBKYJBERERFJYJJEREREJIFJEhEREZEEJklEREREEpgkEREREUlgkkREREQkgUkSERERkQQmSUREREQSmCQRERERSTAqSUpNTUVZWZmpx0JERERkNYxKkpKSkqBUKvHss8/iwIEDph4TERERkcUZlSSdPXsWn376KS5duoS7774b3bp1w3vvvYeCggJTj4+IiIjIIoxKkuzs7PDAAw9g8+bNOHPmDJ577jl89tlnCAwMxAMPPIAvv/wSGo3G1GMlIiIiajKNXrjt7e2N/v37IzIyEnK5HEeOHMH48ePRqVMnpKenm2CIRERERE3P6CTp77//xvz589GzZ08MGjQIarUa33zzDfLy8nD+/Hk89NBDGDdunCnHSkRERNRk7I3ZacSIEdi5cye6dOmCiRMn4qmnnkLbtm21211cXPDKK6/go48+MtlAiYiIiJqSUUmSt7c3MjIyEBkZWWsdX19f5OXlGT0wIiIiIksy6nTbwIED0adPH73yyspKrF27FgAgk8kQFBTUuNERERERWYhRSdLTTz+NkpISvfLS0lI8/fTTjR4UERERkaUZlSQJISCTyfTKz549Cw8Pj0YPioiIiMjSDFqTFBoaCplMBplMhsGDB8Pe/v93r66uRl5eHu677z6TD5KIiIioqRmUJI0aNQoAkJOTg6FDh6JVq1babY6OjujQoQNGjx5t0gESERERWYJBSVJycjIAoEOHDhgzZgycnZ3NMigiIiIiSzPqFgC8SSQRERG1dA1Oktq2bYs//vgDXl5e8PT0lFy4XePixYsmGRwRERGRpTQ4Sfroo4/QunVr7c91JUlERERE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RERElmLUkaR27drBw8NDr9zDwwOenp6NHhQRERGRpRmVJL355ptITEyESqXSlhUUFOC1117DW2+9ZbLBEREREVlKg0+3hYaGau+yDQAnTpxAUFAQAgMDAQD5+flwcnJCUVER/vWvf5l+pERERERNqMFJ0qhRo8w4DCIiIiLr0uAkKTk52ZzjICIiIrIqjbqZZFZWFnJzcyGTydCjRw+EhoaaalxEREREFmVUklRYWIjHHnsM6enpaNOmDYQQKCkpwd13340NGzbwzttERETU7Bl1ddtLL70EtVqNo0eP4uLFi7h06RJ+++03qNVqTJ482dRjJCIiImpyRh1J2rFjB3bv3o3u3btry3r06IGlS5ciJibGZIMjIiIishSjjiRpNBo4ODjolTs4OECj0TR6UERERESWZlSSdM899+Dll1/G+fPntWXnzp3DlClTMHjwYJMNjoiIiMhSjEqSlixZgtLSUnTo0AGdOnXCbbfdhuDgYJSWlmLx4sWmHiMRERFRkzNqTVJAQAAOHz6MtLQ0/P777xBCoEePHhgyZIipx0dERERkEQYnSdevX4ezszNycnJw77334t577zXHuIiIiIgsyuDTbfb29ggKCkJ1dbU5xkNERERkFYxak/Tmm28iKSkJFy9eNPV4iIiIiKyCUWuSFi1ahD///BN+fn4ICgqCm5ubzvbDhw+bZHBERERElmJUkjRq1CjIZDIIIUw9HiIiIiKrYFCSVFZWhtdeew1bt25FVVUVBg8ejMWLF8PLy8tc4yMiIiKyCIPWJCUnJyM1NRX3338/xo4di927d+P5558319iIiIiILMagI0mbN29GSkoKHnvsMQDAE088gf79+6O6uhp2dnZmGSARERGRJRh0JOnMmTOIjo7Wvu/bty/s7e11Hk9CRERE1BIYlCRVV1fD0dFRp8ze3h7Xr1836aCIiIiILM2g021CCIwfPx5OTk7asvLycsTHx+vcBmDz5s2mGyERERGRBRiUJI0bN06v7MknnzTZYIiIiIishUFJ0urVq00+gGXLluH999+HSqVCz549sWDBAp11T7fKyMhAYmIijh49Cj8/P7z++uuIj4/Xbh80aBAyMjL09hs2bBi+/fZbAMCMGTMwc+ZMne0+Pj4oKCgwUVRERETU3Bn1WBJT2bhxIxISEjB9+nRkZ2cjOjoasbGxyM/Pl6yfl5eHYcOGITo6GtnZ2XjjjTcwefJkbNq0SVtn8+bNUKlU2tdvv/0GOzs7PPLIIzpt9ezZU6fekSNHzBorERERNS9G3XHbVD788EM8++yzmDBhAgBgwYIF2LlzJ5YvX465c+fq1f/4448RGBiIBQsWAAC6d++OQ4cOYf78+Rg9ejQAoG3btjr7bNiwAa6urnpJkr29PZRKpRmisnHh4YABR+RkABQaDWTyBubrKpVx4yIiIjKQxZKkyspKZGVlYdq0aTrlMTExOHDggOQ+mZmZiImJ0SkbOnQoUlJSUFVVBQcHB719au7rdOvz5U6cOAE/Pz84OTmhX79+mDNnDjp27NjIqAgFBcC5cw2uLgPAO2wREZE1sliSVFxcjOrqavj4+OiU17U2qKCgQLL+9evXUVxcDF9fX51tP/30E3777TekpKTolPfr1w9r165Fly5d8Pfff2P27NmIiorC0aNH0a5dO8m+KyoqUFFRoX2vVqsBABqNBhqNpmFBN5BGo4EQwuTtNgXZPy8hlwO3zEdtNBoN5A09klRDqYRoZp9Pc55XYxgar/a7A3BurZgtxQrYVry2Eqsh8Vn0dBsAyGQynfdCCL2y+upLlQM3jiL16tULffv21SmPjY3V/hwSEoLIyEh06tQJa9asQWJiomS/c+fO1VvsDQBFRUUoLy+vdbzG0Gg0KCkpgRDC8OTBwhQaDewAaHx8UHToUL31a2L18PAwPNbCQuMGaSHNeV6NYWi82u+ORoMizq3VsqVYAduK11ZiLS0tbXBdiyVJXl5esLOz0ztqVFhYqHe0qIZSqZSsb29vr3cEqKysDBs2bMCsWbPqHYubmxtCQkJw4sSJWuskJSXpJFBqtRoBAQFQKBRwd3evtw9DaDQayGQyKBSKZvdFrVlbJJfL4e3tXW/95hyroWwpVsDweA397lgTW5pbW4oVsK14bSVWZ2fnBte1WJLk6OiIsLAwpKWl4cEHH9SWp6WlYeTIkZL7REZG4uuvv9Yp27VrF8LDw/XWI33++eeoqKho0H2cKioqkJubW+etB5ycnHRuollDLpeb5cskk8nM1nZTkAENXozd3GM1hC3FChgXryHfHWtiS3NrS7ECthWvLcRqSGwW/RQSExPxn//8B6tWrUJubi6mTJmC/Px87X2PkpKS8NRTT2nrx8fH4/Tp00hMTERubi5WrVqFlJQUvPrqq3ptp6SkYNSoUZJrjF599VVkZGQgLy8PP/74Ix5++GGo1WrJm2USERGRbbLomqQxY8bgwoULmDVrFlQqFXr16oVt27YhKCgIAKBSqXTumRQcHIxt27ZhypQpWLp0Kfz8/LBo0SLt5f81/vjjD+zfvx+7du2S7Pfs2bMYO3YsiouLoVAoEBERgYMHD2r7JSIiIrL4wu1JkyZh0qRJkttSU1P1ygYOHIjDhw/X2WaXLl20C7qlbNiwwaAxEhERke1puScdiYiIiBqBSRIRERGRBCZJRERERBKYJBERERFJsPjCbSIiHSoV4O9vnraVSqABd4InIgKYJBGRtdFoDHpIMhGRuTBJIiLroFSar22V6kbyRURkACZJRGQdzHkazN+fR6eIyGBcuE1EREQkgUkSERERkQQmSUREREQSmCQRERERSWCSRERERCSBSRIRERGRBCZJRERERBKYJBERERFJYJJEREREJIFJEhEREZEEJklEREREEpgkEREREUlgkkREREQkgUkSERERkQQmSUREREQSmCQRERERSWCSRERERCSBSRIRERGRBCZJRERERBKYJBERERFJYJJEREREJIFJEhEREZEEJklEREREEpgkEREREUlgkkREREQkgUkSERERkQQmSUREREQSmCQRERERSWCSRERERCTB4knSsmXLEBwcDGdnZ4SFhWHfvn111s/IyEBYWBicnZ3RsWNHfPzxxzrbU1NTIZPJ9F7l5eWN6peIiIhsi0WTpI0bNyIhIQHTp09HdnY2oqOjERsbi/z8fMn6eXl5GDZsGKKjo5GdnY033ngDkydPxqZNm3Tqubu7Q6VS6bycnZ2N7peIiIhsj0WTpA8//BDPPvssJkyYgO7du2PBggUICAjA8uXLJet//PHHCAwMxIIFC9C9e3dMmDABzzzzDObPn69TTyaTQalU6rwa0y8RERHZHntLdVxZWYmsrCxMmzZNpzwmJgYHDhyQ3CczMxMxMTE6ZUOHDkVKSgqqqqrg4OAAALhy5QqCgoJQXV2N3r1745133kFoaKjR/QJARUUFKioqtO/VajUAQKPRQKPRNDDqhtFoNBBCmLzdpiD75yUAiAaMvznHaihbihWwrngN/V4ayppiNTdbihWwrXhtJVZD4rNYklRcXIzq6mr4+PjolPv4+KCgoEByn4KCAsn6169fR3FxMXx9fdGt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Q6lUSta3t7fXOwI0f/58zJkzB7t378btt99e51jc3NwQEhKCEydO1FrHyckJTk5OeuVyudwsXyaZTGa2toF/TrtZyS+BuWO1JrYUK2A78Yqbfm7psQK2M681bCleW4jVkNgs9ik4OjoiLCwMaWlpOuVpaWmIioqS3CcyMlKv/q5duxAeHq6zHun999/HO++8gx07diA8PLzesVRUVCA3N1fydB0RERHZJoumiomJifjPf/6DVatWITc3F1OmTEF+fj7i4+MB3DjFdfMVafHx8Th9+jQSExORm5uLVatWISUlBa+++qq2zrx58/Dmm29i1apV6NChAwoKClBQUIArV65o67z66qvIyMhAXl4efvzxRzz88MNQq9UYN25c0wVPREREVs2ia5LGjBmDCxcuYNasWVCpVOjVqxe2bduGoKAgAIBKpdK5Z1JwcDC2bduGKVOmYOnSpfDz88OiRYu0l/8DN25OWVlZiYcfflinr+TkZMyYMQMAcPbsWYwdOxbFxcVQKBSIiIjAwYMHtf0SERERWXzh9qRJkzBp0iTJbampqXplAwcOxOHDh2tt79SpU/X2uWHDhoYOj4iIiGxUy12ZRURERNQITJKIiIiIJDBJIiIiIpLAJImIiIhIgsUXbhMRtRgqFeDvb772lUrg0CHztU9EOpgkERGZiEyjAc6ds/QwiMhEmCQRETWWUolqjQZyuRy1P3myEVQqoIU/mZ3IGjFJIiJqJPHTTygqLIS3t7d5nono788jVEQWwIXbRERERBKYJBERERFJYJJEREREJIFJEhEREZEEJklEREREEpgkEREREUlgkkREREQkgUkSERERkQQmSUREREQSmCQRERERSWCSRERERCSBSRIRERGRBCZJRERERBKYJBERERFJYJJEREREJMHe0gMgIqIGUqkAf3/ztK1UAocOmadtomaKSRIRUXOh0QDnzll6FEQ2g0kSEZG1UyrN17ZKdSP5IiI9TJKskKxvXyjOn4dMboYlYyqV6dskIvMy52kwf38enSKqBZMka1RQADsmM0RERBbFJMmKCbkcMl9f8zRuzsP3RERELQCTJGvm6wucPWvpURAREdkk3ieJiIiISAKTJCIiIiIJTJKIiIiIJDBJIiIiIpLAJImIiIhIApMkIiIiIgkWT5KWLVuG4OBgODs7IywsDPv27auzfkZGBsLCwuDs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kZGRevV37dqF8PBwODg4mG2sjSWEwIsvvojNmzfj+++/R3BwsFHtZGdnw9fX18SjM6+Kigrk5ubWOu7mOqe3Wr16Nby9vXH//fcbvG9znNfg4GAolUqduausrERGRkatv79A7fNd1z7WoCZBOnHiBHbv3m1UAi+EQE5OTrObawC4cOECzpw5U+fYm+vc1khJSUFYWBjuuOMOg/dtznPbYJZaMW7LNmzYIBwcHERKSoo4duyYSEhIEG5ubuLUqVNCCCGmTZsm4uLitPX/+usv4erqKqZMmSKOHTsmUlJShIODg/jf//5nqRAa5PnnnxceHh4iPT1dqFQq7ausrExb59ZYP/roI7Flyxbxxx9/iN9++01MmzZNABCbNm2yRAgN9sorr4j09HTx119/iYMHD4rhw4eL1q1bt7g5vVl1dbUIDAwUU6dO1dvWnOe1tLRUZGdni+zsbAFAfPjhhyI7O1t7Rde7774rPDw8xObNm8WRI0fE2LFjha+vr1Cr1do24uLidK5W/eGHH4SdnZ149913RW5urnj33XeFvb29OHjwYJPHd7O6Yq2qqhIPPPCA8Pf3Fzk5OTq/wxUVFdo2bo11xowZYseOHeLkyZMiOztbPP3008Le3l78+OOPlghRR13xlpaWildeeUUcOHBA5OXliT179ojIyEjRvn37Fje3NUpKSoSrq6tYvny5ZBvNaW7NhUmShSxdulQEBQUJR0dH0adPH53L4seNGycGDhyoUz89PV2EhoYKR0dH0aFDh1q/1NYEgORr9erV2jq3xvree++JTp06CWdnZ+Hp6Snuuusu8e233zb94A00ZswY4evrKxwcHISfn5946KGHxNGjR7XbW8qc3mznzp0CgDh+/LjetuY8rzW3K7j1NW7cOCHEjdsAJCcnC6VSKZycnMSAAQPEkSNHdNoYOHCgtn6NL774QnTt2lU4ODiIbt26WUWCWFeseXl5tf4O79mzR9vGrbEmJCSIwMBA4ejoKBQKhYiJiREHDhxo+uAk1BVvWVmZiImJEQqFQjg4OIjAwEAxbtw4kZ+fr9NGS5jbGp988olwcXERly9flmyjOc2tuciE+Ge1KBERERFpcU0SERERkQQmSUREREQSmCQRERERSWCSRERERCSBSRIRERGRBCZJRERERBKYJBERERFJYJJEREREJIFJElELMmjQICQkJBi831tvvYXnnnvO9AMygrExmIsQAs899xzatm0LmUyGnJwcSw+p2bjzzjuxefNmSw+DyGj2lh4AEVnW33//jYULF+LXX3+19FCs0o4dO5Camor09HR07NgRXl5elh5Ss/HWW2/h1VdfxahRoyCX8//k1PzwW0tk41JSUhAZGYkOHTpYeihmU11dDY1GY9S+J0+ehK+vL6KioqBUKmFvz/9bNtT999+PkpIS7Ny509JDITIKkySiFmzHjh3w8PDA2rVra62zYcMGPPDAAzplgwYNwuTJk/H666+jbdu2UCqVmDFjhnb7qVOn9E49Xb58GTKZDOnp6QCA9PR0yGQy7Ny5E6GhoXBxccE999yDwsJCbN++Hd27d4e7uzvGjh2LsrIynf6vX7+OF198EW3atEG7du3w5ptv4ubHTFZWVuL1119H+/bt4ebmhn79+mn7BYDU1FS0adMG33zzDXr06AEnJyecPn1aMv6MjAz07dsXTk5O8PX1xbRp03D9+nUAwPjx4/HSSy8hPz8fMpms1kTy9OnTGDFiBDw9PeHm5oaePXti27ZtOmO52datWyGTyXTKvvrqK4SHh8PZ2RleXl546KGHtNsqKirw+uuvIyAgAE5OTujcuTNSUlK0248dO4Zhw4ahVatW8PHxQVxcHIqLi7Xb//e//yEkJAQuLi5o164dhgwZgqtXr2rnqW/fvnBzc0ObNm3Qv39/nc/q66+/RlhYGJydndGxY0fMnDlT+/kAwIwZMxAYGAgnJyf4+flh8uTJ2m12dnYYNmwY1q9fL/m5EVk9yz5fl4hMaeDAgeLll18WQgixfv160bp1a7F169Za61+8eFHIZDJx8OBBvXbc3d3FjBkzxB9//CHWrFkjZDKZ2LVrlxBCaJ8Qn52drd3n0qVLOk+Ir3kKeUREhNi/f784fPiwuO2228TAgQNFTEyMOHz4sNi7d69o166dePfdd3X6btWqlXj55ZfF77//Lj799FPh6uoqVqxYoa3z+OOPi6ioKLF3717x559/ivfff184OTmJP/74QwghxOrVq4WDg4OIiooSP/zwg/j999/FlStX9OI/e/ascHV1FZMmTRK5ubliy5YtwsvLSyQnJwshhLh8+bKYNWuW8Pf3FyqVShQWFkp+jvfff7+49957xa+//ipOnjwpvv76a5GRkaEdi4eHh079LVu2iJv/+f3m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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean of Poisson samples: 4.965 Expected mean (λ): 5\n",
      "Standard deviation of Poisson samples: 2.183065505201344 Expected std (sqrt(λ)): 2.23606797749979\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Parameters (fair coin case)\n",
    "lam = 5\n",
    "num_samples = 1000\n",
    "\n",
    "# Generate samples\n",
    "bin_samples = np.random.poisson(lam, num_samples)\n",
    "\n",
    "# Plot range (0 to n)\n",
    "bins = np.arange(0, 20)\n",
    "\n",
    "\n",
    "plt.hist(bin_samples,\n",
    "         bins=bins,\n",
    "         histtype=\"step\",\n",
    "         lw=2,\n",
    "         density=True,\n",
    "         label=\"Poisson (λ=5)\",\n",
    "         color=\"red\")\n",
    "\n",
    "plt.title(\"Poisson Distribution (λ=5)\")\n",
    "plt.xlabel(\"k (number of successes)\")\n",
    "plt.ylabel(\"Probability\")\n",
    "plt.legend()\n",
    "plt.grid(alpha=0.3)\n",
    "\n",
    "plt.show()\n",
    "\n",
    "print(\"Mean of Poisson samples:\", np.mean(bin_samples), \"Expected mean (λ):\", lam)\n",
    "print(\"Standard deviation of Poisson samples:\", np.std(bin_samples), \"Expected std (sqrt(λ)):\", np.sqrt(lam))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a64b5ae2",
   "metadata": {},
   "source": [
    "### Binomial to Poission at large n and small p limit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "bf30c15b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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IF577TVTWefOnQUAcerUKVPZjRs3hEajES4uLiI9Pd1UnpycLACIJUuWWMRU3CEzSZJEfn6+uHTpkgAgtm/fXub3FomLixMuLi7ir7/+MpX99NNPAoB4//33hRB3DpUAEIsWLSqxLTlFh9syMjJEfn6++PPPP8W6deuEi4uLCAwMFH///bdYvny5ACD+97//mb33nXfeEQDEvn37TGVBQUFixIgRpuePPfaYaN26dYkx1KxZU8TGxhb7+p9//ilcXFxEnz59zMrT0tKEs7OzGDp0qKlsxIgRsrH26dNHNG3atMQ4hBCiefPmolevXhblRfM0b948s/Lx48cLrVZrdu5W0XZV2uPuebpXSYfbGjduLHr27GlRfvXqVQFAzJkzRwjx/4eCNm7caFF3zpw5AoC4evWqEEKIZ599Vjg7O8v216RJE4vDPGUFQLi4uIiMjAxTWUFBgWjWrJlo1KiRqazoEFVZHomJieWei+I4OjqK//znPxblx44dMzuMV3Q4KikpyaLuuHHjhJOTk1nfzz77rPjf//4njhw5ItavXy86dOggAIiVK1ea6qWnpwsAYu7cuRZtbtiwweww4Ntvv232e+5uUVFRokmTJiWOszRRUVGiTp06stu4ENZv0+PHjxcff/yxOHz4sNi2bZt45plnBAAxbNgw2TieeeYZ4evrW6Gx3I/MU3yya2vXrkXz5s0BAJmZmfjiiy8wYcIEFBYW4vnnny/1/Y8//rjZ86L/rC5dugSdTofExEQAsLjCql27dmjevDkOHDiAt99+21Tu5+eHsLAw03MPDw/4+Pigfv368Pf3N5UXxVx0+Kk4BoMBb775Jnbt2oWrV6+a/WeVkpJiEX9pRo8ejYULF2Lz5s0YN24cAGD16tVwdnY27X3z8PBAw4YNMX/+fBQWFqJr16544IEHynz4BrjzX9zdOnXqhBUrVkCr1eLgwYNwdXXFk08+aVZn5MiRePXVV3HgwAH06NFDtt127dph165dGD9+PPr164eIiAizQz9FddasWQNPT090794dYWFhZodfk5KS8Pfff1v8TAMDA/HII49YHI5UqVTo27evWVmrVq1w8ODBUufh6tWraNu2bbGvy21/OTk5MBgM8PX1BQB8+OGHyM7OLrUvLy+vUusUR6VSlfm1stYtT5vl0a1bN9PcAIBGo8GgQYMwc+ZMXLlyBQEB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0WjEiBEjbDh6IiIiqs4UTZIGDRqEGzduYNasWdDr9QgJCcHu3bsRFBQE4M7ikfeumdSmTRvT96dPn8aGDRsQFBSEixcvArizOGVeXh6efPJJs/dNnz4dM2bMAABcuXIFQ4YMQWZmJry9vdGhQwccP37c1C8RERGR4idujx8/HuPHj5d9bc2aNRZlQgjLincpSpZKsmnTprKERkRERHbMfg90EhEREZWASRIRERGRDCZJRERERDKYJBERERHJYJJEREREJINJEhEREZEMJklEREREMpgkEREREclgkkREREQkg0kSERERkQwmSUREREQymCQRERERyWCSRERERCSDSRIRERGRDCZJRERERDKYJBERERHJYJJEREREJINJEhEREZEMJklEREREMpgkEREREcmwKklas2YNbt++XdmxEBEREVUbViVJU6dOhU6nw5gxY3Ds2LHKjomIiIhIcVYlSVeuXMG6devw559/omvXrmjWrBneeecdZGRkVHZ8RERERIqwKknSaDR4/PHHsXXrVly+fBnjxo3D+vXrUa9ePTz++OPYvn07JEmq7FiJiIiIbKbCJ277+PigU6dOiIiIgFqtxg8//ICRI0eiYcOGOHToUCWESERERGR7VidJ165dw4IFC9CyZUt06dIFRqMRO3fuRGpqKq5evYonnngCI0aMqMxYiYiIiGzGwZo39e3bF3v37kWTJk3w7LPPYvjw4fDw8DC97uLigpdeegnvvfdepQVKREREZEtWJUk+Pj44fPgwIiIiiq3j5+eH1NRUqwMjIiIiUpJVh9s6d+6MBx980KI8Ly8Pa9euBQCoVCoEBQVVLDoiIiIihViVJI0aNQpZWVkW5dnZ2Rg1alSFgyIiIiJSmlVJkhACKpXKovzKlStwd3evcFBERERESivXOUlt2rSBSqWCSqVCt27d4ODw/28vLCxEamoqevXqVelBEhEREdlauZKk/v37AwCSk5PRs2dP1KxZ0/Sak5MT6tevj4EDB1ZqgERERERKKFeSNH36dABA/fr1MWjQIGi12ioJioioOvCR9NBrAhTpWwD4WatDi1unFOmfiKxcAoCLRBKRPdBAgp+Urlj/qhzFuiYilCNJ8vDwwK+//govLy/UqVNH9sTtIn/88UelBEdEpIQ/tTpAwQTFR9JDA97/kkhpZU6S3nvvPdSqVcv0fUlJEhHR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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Fix lambda\n",
    "lam = 5\n",
    "\n",
    "# Choose n and p such that n*p = lambda\n",
    "n = 1000\n",
    "p = lam / n\n",
    "\n",
    "# Number of samples\n",
    "num_samples = 20000\n",
    "\n",
    "# Generate samples\n",
    "bin_samples = np.random.binomial(n, p, num_samples)\n",
    "pois_samples = np.random.poisson(lam, num_samples)\n",
    "\n",
    "\n",
    "# Proper bin range (important fix)\n",
    "bins = np.arange(0, 15)\n",
    "\n",
    "# Plot\n",
    "plt.hist(bin_samples,\n",
    "         bins=bins,\n",
    "         histtype=\"step\",\n",
    "         lw=2,\n",
    "         density=True,\n",
    "         label=\"Binomial\",\n",
    "         color=\"blue\")\n",
    "\n",
    "plt.hist(pois_samples,\n",
    "         bins=bins,\n",
    "         histtype=\"step\",\n",
    "         lw=2,\n",
    "         density=True,\n",
    "         label=\"Poisson\",\n",
    "         color=\"red\")\n",
    "\n",
    "plt.title(f\"Binomial vs Poisson (n={n}, p={p:.5f}, λ={lam})\")\n",
    "plt.xlabel(\"k\")\n",
    "plt.ylabel(\"Probability\")\n",
    "plt.legend()\n",
    "plt.grid(alpha=0.3)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "09e9a108",
   "metadata": {},
   "source": [
    "##  Exercise 1: Binomial and Poisson Distribution\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "1. Derive the value of \\(k\\) (number of successes in \\(n\\) trials) for which the Binomial distribution is maximum.\n",
    "\n",
    "\n",
    "2. Find the value of \\(k\\) at which the Poisson distribution attains its maximum.\n",
    "\n",
    "3. Find mean and variance for both Binomial distribution and Poisson distribution.\n",
    "\n",
    "\n",
    "Starting from the Binomial distribution,\n",
    "\n",
    "$$\n",
    "P(X = k) = \\binom{n}{k} p^k (1-p)^{n-k}\n",
    "$$\n",
    "\n",
    "show analytically that in the limit\n",
    "\n",
    "$$\n",
    "n \\to \\infty,\\quad p \\to 0,\\quad \\text{with } np = \\lambda \\text{ fixed},\n",
    "$$\n",
    "\n",
    "the Binomial distribution reduces to the Poisson distribution:\n",
    "\n",
    "$$\n",
    "P(X = k) = \\frac{\\lambda^k e^{-\\lambda}}{k!}\n",
    "$$\n",
    "\n",
    "\n",
    "##  Exercise 2: Probability of 3 consecutive heads\n",
    "1. Given N=5 number of tosses where the probability of getting an head is p what is the probability  that you will get atleast 3 consecutive heads in a row. What about if its N coin tosses and you are to find the probabiltiy of atleast n consecutive heads in a row.\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8a332765",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "43cb63a9",
   "metadata": {},
   "source": [
    "# 1. N-fold Coincidences\n",
    "\n",
    " ### In detector systems, n-fold coincidences are often used to suppress random triggers caused by noise or stray light. Consider an N×N array of pixels. During a fixed time window, each pixel independently produces a random trigger with probability ‘p’. What is the probability that three nearest-neighbour pixels trigger within the same time window purely due to random noise?\n",
    "\n",
    "### 1.What are the assumptions here?\n",
    "\n",
    "### 2.As a first approach, simply this in 1D as a coin flip problem\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a7ecc93-d65f-413c-b403-4c4faeec0a44",
   "metadata": {},
   "source": [
    "Coin flipping:\n",
    "\n",
    "Lets say we start with 10 coins all tails (switched off state) `TTTTTTTTTT`.\n",
    "The probability of a random flip is `p`\n",
    "What is the probability 3 coins in a streak will flip?\n",
    "\n",
    "\n",
    "a) What are the ways to choose 3 consecutive coins from N coins? \n",
    "Ans: N-2\n",
    "\n",
    "b) What are the ways to choose 3 coins from N coins? \n",
    "Ans: NC3\n",
    "\n",
    "Chance = `a/b`\n",
    "\n",
    "If each flip has `p`, probability = $\\frac{6 p^3}{N(N-1)}$\n",
    "\n",
    "For $N=10$, $p=1/2$; chance=`1/15 * 1/8 = 1/120`\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ecaa22d7-80a5-4ab3-ab8c-8823ff6ad500",
   "metadata": {},
   "source": [
    "Now, generalise to 2D how many ways can you choose k nearest neighbours from N*N pixels.\n",
    "There are many ways to choose neighbours \n",
    "- L shaped (non collinear)\n",
    "- in a line\n",
    "\n",
    "We take the simplest case, in a line\n",
    "hun                                       \n",
    "no of ways to choose k in a line from 1 row = (N-k)\n",
    "Total no of row wise choosing: N(N-k)\n",
    "Multiply by cols : 2N(N-k)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8ecd4833",
   "metadata": {},
   "source": [
    "# 2. Uniform Distribution and value of Pi\n",
    "##### Simulate N =1000 random points uniformly a unit square. What’s the number of points satisfying\n",
    "\n",
    "#### . From this, estimate:\n",
    "\n",
    "#### i. the probability of a point lying inside the circle,\n",
    "\n",
    "#### ii. the area of the circle,\n",
    "\n",
    "#### iii. and the value of π\n",
    "\n",
    "#### iv. Try for different values of N and compare the convergence in (iii)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5ff964ab",
   "metadata": {},
   "outputs": [],
   "source": [
    "## Unifrom distribution\n",
    "\n",
    "import numpy as np\n",
    "\n",
    "x_uniform = np.random.uniform(0, 1, 10) # Generate 10 samples from a uniform distribution between 0 and 1\n",
    "y_uniform = np.random.uniform(0, 1, 10) # Generate 10 samples from a uniform distribution between 0 and 1\n",
    "print(x_uniform)  # Each value in the output array is a random number between 0\n",
    "print(y_uniform)  # Each value in the output array is a random number between 0 and 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5de2f61c",
   "metadata": {},
   "outputs": [],
   "source": [
    "## Rescaling this to generat ehe random numebr between -1 and 1\n",
    "N=1000\n",
    "\n",
    "x_uniform_rescaled = np.random.uniform(0, 1, N) * 2 - 1  # Rescale to [-1, 1]\n",
    "y_uniform_rescaled = np.random.uniform(0, 1, N) * 2 - 1  # Rescale to [-1, 1]\n",
    "\n",
    "plt.scatter(x_uniform_rescaled, y_uniform_rescaled, alpha=0.5)\n",
    "\n",
    "plt.title(\"Uniform Distribution Rescaled to [-1, 1]\")\n",
    "plt.xlabel(\"x\")\n",
    "plt.ylabel(\"y\")\n",
    "plt.axis('equal')\n",
    "plt.grid(alpha=0.3)\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "##Visulaization of the unit circle\n",
    "\n",
    "def y(x):\n",
    "    return np.sqrt(1 - x**2)\n",
    "x_circle = np.linspace(-1, 1, 100)\n",
    "y_circle = y(x_circle)\n",
    "plt.plot(x_circle, y_circle, color=\"red\", label=\"Unit Circle\")\n",
    "plt.plot(x_circle, -y_circle, color=\"red\")  # Plot the lower half\n",
    "plt.legend()\n",
    "plt.axis('equal')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "77b79c25",
   "metadata": {},
   "outputs": [],
   "source": [
    "inside_circle = x_uniform_rescaled**2 + y_uniform_rescaled**2 <= 1\n",
    "print(\"Number of points inside the unit circle:\", np.sum(inside_circle))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c225eb05",
   "metadata": {},
   "source": [
    "## Estimating the Area of a Circle using Monte Carlo Method\n",
    "\n",
    "Werandomly generate points uniformly inside a square of side length \\(2\\), covering the region\n",
    "\n",
    "$$\n",
    "-1 \\le x \\le 1,\n",
    "\\qquad\n",
    "-1 \\le y \\le 1\n",
    "$$\n",
    "\n",
    "The total area of this square is\n",
    "\n",
    "$$\n",
    "A_{\\text{square}} = 2 \\times 2 = 4\n",
    "$$\n",
    "\n",
    "Now consider the unit circle centered at the origin:\n",
    "\n",
    "$$\n",
    "x^2 + y^2 \\le 1\n",
    "$$\n",
    "\n",
    "A randomly generated point lies inside the circle if\n",
    "\n",
    "$$\n",
    "x^2 + y^2 \\le 1\n",
    "$$\n",
    "Let\n",
    "\n",
    "- $N_{\\text{inside}} $= number of points inside the circle\n",
    "- $N_{\\text{total}}$ = total number of generated points\n",
    "\n",
    "Then the fraction of points inside the circle approximates the ratio of areas:\n",
    "\n",
    "$$\n",
    "\\frac{N_{\\text{inside}}}{N_{\\text{total}}}\n",
    "\\approx\n",
    "\\frac{A_{\\text{circle}}}{A_{\\text{square}}}\n",
    "$$\n",
    "\n",
    "Therefore,\n",
    "\n",
    "$$\n",
    "A_{\\text{circle}}\n",
    "\\approx\n",
    "A_{\\text{square}}\n",
    "\\times\n",
    "\\frac{N_{\\text{inside}}}{N_{\\text{total}}}\n",
    "$$\n",
    "\n",
    "Since the square has area \\(4\\),\n",
    "\n",
    "$$\n",
    "A_{\\text{circle}}\n",
    "\\approx\n",
    "4\n",
    "\\times\n",
    "\\frac{N_{\\text{inside}}}{N_{\\text{total}}}\n",
    "$$\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5ddde410",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Area of the circle \n",
    "Area_circle =4* np.sum(inside_circle) / N  # Multiply by 4 to account for the area of the square\n",
    "print(\"Estimated area of the unit circle:\", Area_circle)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "66347577",
   "metadata": {},
   "source": [
    "\n",
    "For a unit circle,\n",
    "\n",
    "$$\n",
    "A_{\\text{circle}} = \\pi\n",
    "$$\n",
    "\n",
    "Hence,\n",
    "\n",
    "$$\n",
    "\\pi\n",
    "\\approx\n",
    "4\n",
    "\\times\n",
    "\\frac{N_{\\text{inside}}}{N_{\\text{total}}}\n",
    "$$\n",
    "\n",
    "This is the Monte Carlo estimation of $\\pi$.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "90c565f1",
   "metadata": {},
   "outputs": [],
   "source": [
    "#value of pi\n",
    "pi_estimate = Area_circle\n",
    "print(\"Estimated value of π:\", pi_estimate) "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "012e5d1d",
   "metadata": {},
   "source": [
    "## Exercise 2\n",
    "\n",
    "Using the Monte Carlo method, we estimated the value of $\\pi$ for a single choice of the number of random points \\(N\\).\n",
    "\n",
    "1. Now repeat the calculation for multiple values of N_values = [10, 100, 1000, 10000, 100000, 1000000] plot the absolute erro $|\\pi - \\pi_{estimated}|$  \n",
    "as a function of N.\n",
    "\n",
    "2. Using this same formalism try to estiamte the are under the curve $y=x^2$ fro $0\\le x \\le 2$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "abf08965",
   "metadata": {},
   "outputs": [],
   "source": [
    "# import numpy as np\n",
    "# import matplotlib.pyplot as plt\n",
    "\n",
    "# def run_monte_carlo(N):\n",
    "#     # Generate N random coordinates uniformly between 0 and 1\n",
    "#     x = np.random.uniform(0, 1, N)\n",
    "#     y = np.random.uniform(0, 1, N)\n",
    "    \n",
    "#     # Check condition: distance from origin squared <= 1\n",
    "#     inside_circle = (x**2 + y**2) <= 1\n",
    "#     M = np.sum(inside_circle) # Count how many are True\n",
    "\n",
    "#     #  Area of full circle (4 * area of quarter circle)\n",
    "#     area = 4 * M/N\n",
    "#     #  Value of pi\n",
    "#     pi_est = 4 * (M / N)\n",
    "    \n",
    "#     return M, area, pi_est, x, y, inside_circle\n",
    "\n",
    "\n",
    "\n",
    "# # --- iv. Convergence for different values of N ---\n",
    "# N_values = [10, 100, 1000, 10000, 100000, 1000000]\n",
    "# print(\"\\n--- iv. Convergence Comparison ---\")\n",
    "# print(f\"{'N':<12} | {'Estimated pi':<15} | {'Absolute Error':<15}\")\n",
    "# print(\"-\" * 48)\n",
    "\n",
    "# for n in N_values:\n",
    "#     _, _,  pi_val, _, _, _ = run_monte_carlo(n)\n",
    "#     error = abs(pi_val - np.pi)\n",
    "#     print(f\"{n:<12,} | {pi_val:<15.6f} | {error:<15.6f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d5d2bf2",
   "metadata": {},
   "source": [
    "# 3. Probability Mass function \n",
    "#### Suppose X is a random variable with the following pmf:\n",
    "\n",
    "#### $$ X: 1, 2, 3; \\quad \\text{pmf}: 1/4, 1/2, 1/4$$\n",
    "\n",
    " #### Find $E[X]$, $E[1/X]$, $E[X^2]$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f66052e6",
   "metadata": {},
   "source": [
    "<!-- # Probability Mass Function\n",
    "\n",
    "Suppose X is a random variable with the following pmf:\n",
    "\n",
    "✤ X: 1, 2, 3; pmf: 1/4, 1/2, 1/4\n",
    "\n",
    "✤ Find E[X], E[1/X], E[X*X] -->"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4312dffd",
   "metadata": {},
   "outputs": [],
   "source": [
    "X=np.array([1,2,3])\n",
    "pmf=np.array([1/4,1/2,1/4])\n",
    "\n",
    "plt.scatter(X, pmf, color=\"green\", label=\"PMF\") \n",
    "plt.title(\"PMF of a Discrete Random Variable\")\n",
    "plt.xlabel(\"X\")\n",
    "plt.ylabel(\"P(X)\")\n",
    "\n",
    "plt.grid(alpha=0.3)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dd8dfff3",
   "metadata": {},
   "outputs": [],
   "source": [
    "## Finding expectation value of a discrete random variable\n",
    "expected_value = np.sum(X * pmf)\n",
    "print(\"Expected value of X:\", expected_value)\n",
    "\n",
    "## FInding Expectation value of X^2 of a discrete random variable\n",
    "expected_value_squared = np.sum(X**2 * pmf)\n",
    "print(\"Expected value of X^2:\", expected_value_squared)\n",
    "\n",
    "## Finding Expectation value of 1/X\n",
    "expected_value_inverse = np.sum((1/X) * pmf)\n",
    "print(\"Expected value of 1/X:\", expected_value_inverse)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acc82a11",
   "metadata": {},
   "source": [
    "#  4. Social Evil\n",
    "#### Families keep having kids until they have a male child. How many children are expected per family?\n",
    "\n",
    "Now let us assume the probability of getting a femal and male child is equal 0.5 and are independent events.\n",
    "Now ## Families continue having children until the first male child is born\n",
    "\n",
    "Assume:\n",
    "- \\(B\\) = Boy\n",
    "- \\(G\\) = Girl\n",
    "- P(B)=P(G)=$\\frac{1}{2}$\n",
    "\n",
    "The possible outcomes can be represented using the following probability tree:\n",
    "\n",
    "```text\n",
    "Start\n",
    "  \n",
    "├── B                           (1 child)\n",
    "│\n",
    "└── G\n",
    "    ├── B                       (2 children)\n",
    "    │\n",
    "    └── G\n",
    "        ├── B                   (3 children)\n",
    "        │\n",
    "        └── G\n",
    "            ├── B               (4 children)\n",
    "            │\n",
    "            └── G\n",
    "                ├── B           (5 children)\n",
    "                │\n",
    "                └── ...\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7961143",
   "metadata": {},
   "source": [
    "Thus, for the sequence GGGGGGG....B where the B is at the kth postion we have\n",
    "\n",
    "$$\n",
    "P(X=k)=\\left(\\frac12\\right)^{k-1}\\frac{1}{2}\n",
    "$$\n",
    "\n",
    "where \\(X\\) is the number of children until the first boy is born.\n",
    "\n",
    "The expectation value is\n",
    "\n",
    "$$\n",
    "E[X]\n",
    "=\n",
    "\\sum_{k=1}^{\\infty}\n",
    "k\\left(\\frac12\\right)^k\n",
    "$$\n",
    "\n",
    "Comptute this value. Does the number surprise you?\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7f6a07b2-357c-44fa-9d28-14791f2e9a78",
   "metadata": {},
   "source": [
    "- What is the expected B/G ratio?\n",
    "- Does a 2 child norm help in reducing the population?\n",
    "- What if the no of families is not $\\infty$ but a finite value?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f51a07e0-fff1-42d7-9efd-ab19374101fd",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "2834b81e",
   "metadata": {},
   "source": [
    "# 5. Photon Hadron Seperation \n",
    "### A common challenge in gamma ray astronomy is to separate photons from hadrons. \n",
    "#### (Similar particle identification scenarios occur in other cases of particlephysics). Lets say you developed a fancy classifier which correctly reconstructs gammas 95% of the time, and same for protons. 1 in 10,000 triggers corresponds to  a gamma, rest are protons. If your classifier reconstructs an event as a gamma-ray, what's the prob it is a gamma-ray? Use Bayes theorem and draw the prob tree\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4df705d",
   "metadata": {},
   "source": [
    "\n",
    "Suppose:\n",
    "\n",
    "- Only 1 in 10,000 events is truly a gamma ray\n",
    "- The remaining events are protons (background hadrons)\n",
    "\n",
    "Thus,\n",
    "\n",
    "$$\n",
    "P(\\gamma)=\\frac{1}{10000}=10^{-4}\n",
    "$$\n",
    "\n",
    "and\n",
    "\n",
    "$$\n",
    "P(p)=1-P(\\gamma)=0.9999\n",
    "$$\n",
    "\n",
    "Your classifier correctly identifies:\n",
    "- gammas 95% of the time\n",
    "- protons 95% of the time\n",
    "\n",
    "Hence,\n",
    "\n",
    "$$\n",
    "P(\\text{classified as }\\gamma \\mid \\gamma)=0.95\n",
    "$$\n",
    "\n",
    "and since 5% of protons are misidentified as gammas,\n",
    "\n",
    "$$\n",
    "P(\\text{classified as }\\gamma \\mid p)=0.05\n",
    "$$\n",
    "\n",
    "We want to compute:\n",
    "\n",
    "$$\n",
    "P(\\gamma \\mid \\text{classified as }\\gamma)\n",
    "$$\n",
    "\n",
    "which is the probability that an event is truly a gamma ray given that the classifier labels it as a gamma.\n",
    "\n",
    "Using Bayes theorem,\n",
    "\n",
    "$$\n",
    "P(\\gamma \\mid G)\n",
    "=\n",
    "\\frac{P(G \\mid \\gamma)P(\\gamma)}\n",
    "{\n",
    "P(G \\mid \\gamma)P(\\gamma)\n",
    "+\n",
    "P(G \\mid p)P(p)\n",
    "}\n",
    "$$\n",
    "\n",
    "where:\n",
    "- \\(G\\) means “classified as gamma”\n",
    "\n",
    "Substituting the numbers,\n",
    "\n",
    "$$\n",
    "P(\\gamma \\mid G)\n",
    "=\n",
    "\\frac{\n",
    "0.95 \\times 10^{-4}\n",
    "}\n",
    "{\n",
    "0.95\\times10^{-4}\n",
    "+\n",
    "0.05\\times0.9999\n",
    "}\n",
    "$$\n",
    "\n",
    "Compute numerator:\n",
    "\n",
    "$$\n",
    "0.95\\times10^{-4}=9.5\\times10^{-5}\n",
    "$$\n",
    "\n",
    "Compute denominator:\n",
    "\n",
    "$$\n",
    "9.5\\times10^{-5}+0.049995\n",
    "\\approx\n",
    "0.05009\n",
    "$$\n",
    "\n",
    "Therefore,\n",
    "\n",
    "$$\n",
    "P(\\gamma \\mid G)\n",
    "\\approx\n",
    "\\frac{9.5\\times10^{-5}}{0.05009}\n",
    "\\approx\n",
    "0.0019\n",
    "$$\n",
    "\n",
    "Hence,\n",
    "\n",
    "$$\n",
    "P(\\gamma \\mid G)\\approx0.19\\%\n",
    "$$\n",
    "\n",
    "So even after classification as a gamma-ray, the probability that the event is truly a gamma-ray is only about\n",
    "\n",
    "$$\n",
    "\\boxed{0.19\\%}\n",
    "$$\n",
    "\n",
    "because the proton background is overwhelmingly large.\n",
    "\n",
    "\n",
    "#### Exericese: Solve this using the probability tree diagram"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b3ac12c",
   "metadata": {},
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "gammapy_env",
   "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.13.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
