{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "530dd069-3d39-4cb0-a123-c5d2d3863992",
   "metadata": {},
   "outputs": [],
   "source": [
    "# simpleMC.py -- simple Monte Carlo program to make histogram of uniformly\n",
    "# distributed random values and plot\n",
    "# G. Cowan, RHUL Physics, October 2025\n",
    "\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1875dbf9-0b05-473e-ae0f-c7a757b15b58",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Generate data and store in numpy array, put into histogram\n",
    "numVal = 10000\n",
    "nBins = 100\n",
    "xMin = 0.\n",
    "xMax = 1.\n",
    "xData = np.random.uniform(xMin, xMax, numVal)\n",
    "xHist, bin_edges = np.histogram(xData, bins=nBins, range=(xMin,xMax))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "238095d2-1387-406e-b49b-6eb0b9ec916b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define a function for plotting histograms\n",
    "def plot_histogram(hist, bin_edges, xlabel, ylabel, filename=None):\n",
    "    xMin = bin_edges[0]\n",
    "    xMax = bin_edges[-1]\n",
    "    x_step = bin_edges                          \n",
    "    y_step = np.r_[hist, hist[-1]]              # r_ does row-wise merge\n",
    "    fig, ax = plt.subplots()\n",
    "    ax.step(x_step, y_step, where='post', linewidth=1.5)\n",
    "    ax.set_xlim(xMin, xMax)\n",
    "    ax.set_ylim(0, 1.2 * hist.max())\n",
    "    ax.set_xlabel(xlabel)\n",
    "    ax.set_ylabel(ylabel)\n",
    "    fig.subplots_adjust(bottom=0.15, left=0.15)\n",
    "    if filename != None:\n",
    "        fig.savefig(filename, format='pdf')        \n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "fabe9a83-4101-439a-a540-4146b133aa38",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAG1CAYAAAAoSvpaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQ8NJREFUeJzt3Xl4FFW+//FPZ99DQAXZQlQWGdAfAqMIURkYUAauMyKCgqAgOOo4IxdwwAWQARGIOouiMmx6UREX1MsVRKMoIKhEHAUzuEBYEkBDIPue+v2RSZuQdNJJd1d3db9fz9PP09116tSpU91d3z516hybYRiGAAAA4HFB3i4AAABAoCDwAgAAMAmBFwAAgEkIvAAAAExC4AUAAGASAi8AAACTEHgBAACYhMALAADAJAReAAAAJiHwAgAAMIllAq+ioiJt3rxZCxcu1A033KDExETZbDbZbDbNnz+/0XXnz59vT9vY4/vvv280nx9++EF33nmnkpKSFBERofPOO0/Dhw/X66+/7sY9BQAA/irE2wVw1meffaYRI0a4lEdoaKhat27tcHlIiOPqeOeddzRmzBgVFRVJkuLi4nTq1Clt3bpVW7du1e23365Vq1bJZrM1q0xVVVXKyspSbGxss9cFAAAtYxiG8vPz1b59ewUFmdcOZZnAS5ISEhJ02WWX2R/Tp0/XiRMnnF7/yiuv1LZt25q93UOHDummm25SUVGRBg4cqNWrV6tbt24qKCjQsmXLtGDBAq1Zs0Y9evTQ/fff36y8s7Ky1KlTp2aXCQAAuO7o0aPq2LGjaduzTOCVnJysnJycOu/Nnj3blG3PnTtXhYWFateunTZt2qRWrVpJkmJiYvTII4/oxIkTWrFihRYtWqSpU6cqISHB6bxjY2MlVR/4uLg4TxQfAACcJS8vT506dbKfh81imcArODjYK9stLCy09+G666677EFXbXPmzNGKFSuUl5enN998U7fffrvT+ddcXoyLiyPwAgDAZGZ387FM53pv2bFjh4qLiyVJ1113XYNpunTpoosvvliStHXrVtPKBgAArCWgAq/9+/erV69eioyMVExMjLp3766pU6dq7969DtfZt2+f/fkvfvELh+l69epl3wYAAEBDAirwys7OVnp6uqKiolRaWqpvv/1WK1euVN++ffXQQw81uE5WVpak6o79UVFRDvPu0KFDnfSOlJaWKi8vr84DAAAEhoAIvLp27aqlS5fqwIEDKikp0alTp1RYWKh3331Xffv2lWEYWrRokR5//PF66+bn50tSo0FX7eU16R1ZvHix4uPj7Q/uaAQAIHAEROA1fvx4zZo1S926dVNoaKgkKSwsTMOGDdOOHTvUv39/SdUDrebm5nq0LHPmzFFubq79cfToUY9uDwAA+I6ACLwaExERoUcffVSSVFBQoNTU1DrLa24zrRk41ZGa5U3dlhoeHm6/g5E7GQEACCwBH3hJ0oABA+zPDx48WGdZ+/btJUmnT59uNPjKzMyskx4AAOBsBF5NqLlbUWr8jsWaux8bu/MRAAAENgIvSbt377Y/T0pKqrNs0KBBioyMlCRt2bKlwfUPHz6s9PR0SdKwYcM8VEoAAGB1fh94GYbR6PLS0lI9+OCDkqTo6GgNGTKkzvLo6GiNHj1akvTMM8802Pl+yZIlkqr7d/32t791Q6kBAIA/slTgdfr0aWVnZ9sfVVVVkqo7ttd+v6CgwL7Oxx9/rKFDh2rdunU6duyY/f3y8nKlpqYqOTlZn376qaTqORkbmhJowYIFio6O1vHjxzVq1Ch99913kqqnE1qwYIGeffZZSdJDDz3UrHkaAQBAYLEZTTUJ+ZAuXbro8OHDTaabNGmS1q5dK0natm2bBg8ebF8WGRmp6Oho5ebmqry8XJIUFBSk2bNna9GiRQ7zfOeddzRmzBh7B/v4+HgVFBSosrJSknTbbbdp9erVzZ7zKS8vT/Hx8crNzeUORwAATOKt869lJsluqd69eyslJUW7du3S119/rezsbJ05c0ZRUVHq2bOnkpOTNW3aNPXu3bvRfEaMGKGvvvpKS5Ys0XvvvaesrCy1atVKl112me6880775UgAAABHLNXi5Y9o8QIAwHzeOv9aqo8XAACAlRF4AQAAmITACwAAwCQEXgAAACYh8AIAADAJgRcAAIBJCLwAAABMQuAFAABgEgIvAAAAkxB4AQAAmITACwAAwCQEXgAAACYh8AIAADAJgRcAAIBJCLwAAABMQuAFAABgEgIvAAAAkxB4AQAAmITACwAAwCQEXgAAACYh8AIAADAJgRcAAIBJCLwAAABMQuAFAABgEgIvAAAAkxB4AQAAmITACwAAwCQEXgAAACYh8AIAADAJgRcAAIBJCLwAAABMQuAFAABgEgIvAAAAkxB4AQAAmITACwAAwCQEXgAAACYh8AIAADAJgRcAAIBJLBN4FRUVafPmzVq4cKFuuOEGJSYmymazyWazaf78+Y2um5mZqeXLl2vMmDG66KKLFBkZqcjISCUlJenmm2/WBx980Oj6t912m31bjT0qKircuMcAAMDfhHi7AM767LPPNGLEiGavd/ToUSUmJsowDPt7UVFRMgxDGRkZysjI0Pr16zV58mStWLFCwcHBDvOKiIhQfHy8w+U2m63Z5QMAAIHDMi1ekpSQkKAhQ4Zo1qxZevnll9WuXbsm16msrJRhGBoyZIief/55ZWZmqrCwUAUFBdq/f7+uv/56SdLq1aubbDkbO3asTpw44fDRWNAGAICZDMNQUVlFvUfthgiYzzItXsnJycrJyanz3uzZs5tcLyEhQWlpabrsssvqvB8UFKSePXtq48aNGjFihLZs2aK//vWvevDBBxUREeHWsgMAYCbDMHTjs7uUdvh0vWX9EhP06u8HcJXGSyzT4tXS1qT4+Ph6QVdtNptNkydPliQVFBQoPT29RdsBAKuhRcR/FZdXNhh0SdKew6dVXF5pcolQwzItXp5Uu4WrspIPIwD/R4tI4Njz0FBFhQWrqKxS/Ra+7+3iBDzLtHh50rZt2yRJYWFh6tatm8N0qamp6tatmyIiIhQXF6fevXvrvvvu03fffWdSSQHAPWgRCRxRYcGKCgtRVBj9kH1BwLd4HTp0SM8++6yk6s7zcXFxDtMeO3ZMwcHBiouLU15envbt26d9+/bpmWee0V//+lfdddddTW6vtLRUpaWl9td5eXmu7wQAuIAWEcA8Ad3iVVxcrDFjxqioqEht2rTR4sWLG0x32WWX6amnnlJGRoZKS0uVk5OjvLw8vf7667rwwgtVVlamu+++W6+99lqT21y8eLHi4+Ptj06dOrl7twCgWWgRAcwTsIFXRUWFbrnlFqWlpSk0NFQvvfSSOnTo0GDaP/7xj7rnnnuUmJho7+QfFRWlG264QZ9++qm6dOkiSZo5c2aTnVLnzJmj3Nxc++Po0aNu3S8AAOC7AjLwqqys1IQJE/Tmm28qJCREL730koYNG9aivNq0aaMHH3xQknT48GHt3bu30fTh4eGKi4ur8wAAAIEh4AKvmqDrlVdeUXBwsNatW6cbb7zRpTwHDBhgf37w4EFXiwhYHsMUAKjR0O9BIP8WBFTn+srKSo0fP75O0DV27FhvFwvwKwxTAKCGo9+DQP4tCJgWr4aCrnHjxrkl7927d9ufJyUluSVPwKoYpgBADUe/B4H8WxAQLV6VlZW65ZZbtGHDBoWEhDSrpcswjEYj8pycHD366KOSpI4dO6pPnz5uKTPgDximAECNPQ8NlaSA/y2wVIvX6dOnlZ2dbX9UVVVJkoqKiuq8X1BQYF+nsrJSt956qz3oeumll5p1eXHdunW64YYb9Prrr+vHH3+0v19cXKw333xTV1xxhb1fV0pKioKCLFWlgEcxTAGAGtW/B/wWWKrFq0+fPjp8+HC995ctW6Zly5bZX0+aNElr166VJO3cuVMvv/yypOp5Ge+9917de++9Drfxt7/9rU5gVllZqY0bN2rjxo2SpOjoaEVEROjMmTP26YXCw8P1xBNP0F8MAAA0ylKBV0vUtIpJUnl5uU6ePNlo+uLi4jqvBw8erEWLFmnXrl1KT0/XqVOnlJubq7i4OF100UX61a9+pTvvvJO+XQAAoEmWCrwyMjKavc4111zj0m2riYmJeuCBB1q8PgAAQA06JAEAAJiEwAsAAMAkBF4AAAAmsVQfL/gPwzAaHDwvMjQ4IEcyBgAEBgIvmI4pZQAAgYpLjTAdU8oAAAIVLV7wKqaUAQAEEgIveFXNlDIAAAQCLjUCAACYhMALAADAJFzjgSlqDx9RVEbneQBAYCLwgsc1NnwEAACBhEuN8DhHw0f0S0xQZGiwF0oEAIB30OIFU9UMHyExSj0AeMvZXT74PTYPgRdMxfARAOB9Z4+byKwh5uEMCCCgME+odzlT/xwjz4gMDVa/xATtaaDrR82sIfwx9jxqGEDAYJ5Q73Km/iVxjDzEZrPp1d8PqBPUMmuI+Qi8AAQMZ+YJ5R+/5zg7TyvHyHNsNhv152XUPoCAxDyh3uVM/XOM4I8IvAAEJG708C5n6p9jBH/EJxoAAIs7+4YEZgjxXQReAABYGLODWAuBFwAAFtbYTQuenCHE08N++OuwIgReAAD4idqzg0ieC1I8PTSLPw/9QuAFp/nKvw9fKYcv8JW6qF0Ob/Ut8ZW68EcN1S316pvMuiHB00Oz+PPQL9YsNUznK/8+fKUcvsBX6sIX+pf4Sl34I0d1S72ihqeH/fC3YUUIvOCUpv59nCosM6V525//BTVXc+rCmRaLlrYYOSqHJ/uWOFsGydqfC19oxXNUt1auV2f5Qv1bgadb2fxtWBH/2ROYpqF/H96YcNXf/gW5orG6cKbFwl0tRrX7l3jr5OQvnwtfbMXb89DQ6u1buF6d5Yv1D/8Q5O0CwHpq/n20iQ5Tv8SEBtPUnv7D0+Wo3dIWqBqri6ZaLBpLc3Y658sR4rWTkr98Ltx1TNypum6tXa/O8sX6h3+gxQstxoSrnuOpSxzOtFg01GJ0dod5LrWYyxvHpCZ/BuL0XCuqr17K9NVy+QsCL7iECVfdz5OXOJxprWioP4U3LiXjZ944JvyB+pkn+hj56qVMXy2XP+FSI+BjfOUSR2RosFcvJfsTwzBUVFZR52EYRrPz8fQxaSx/M2+WCAS+8j0/m6+Wy1UNfQeLyiq8UhaaKgAf5s2O4lxKdg93Dsfg6WPSUP41uMzkOb56Q4ivlqu5HH0Hq0qLvFIeAi/Ah3n7NmouJbvO3cMxePqYcMxd19w+Ut7+njviq+VqrsZa8bzB+jUKABYRSMMxBCr6SPm22kPe5OXl6fy/ml8GAi8AMEmgDMUQyPx1MF9/UbsVr8JLx4GjbxHMlWYebqUG4A6u9JFiCBf/ReBlAcyVZh4uEwBwF1f6SDGEi/8i8LIAM+ZKo0WtGpcJfFMgfD7P3seWDFxaex0r1k+gD9ZaM5zHngCdGzNQWOYIFhUV6aOPPlJaWpq++OILpaWl6ciRI5KkefPmaf78+U3mcfLkSS1dulSbNm3SkSNHFBkZqV/84heaNGmSpkyZ0uSP1A8//KClS5dq69atOn78uOLi4tSnTx9NmzZNo0ePdsduNskTnXNpUWuYv9xKbXWB8PlsrKW1OWp/Tq1YP4H+PWMIl8BgmcDrs88+04gRI1q8flpamoYPH65Tp05JkmJiYpSfn68dO3Zox44devXVV/X2228rPDy8wfXfeecdjRkzRkVF1eN+xMXF6dSpU9q6dau2bt2q22+/XatWrfL4j5wnOuea0aLWUs1tBXDnP35/uZXaaho65r76+XSXxlpamxq41FEriVXqx1H5PTlgqy/342Q4D/9nqaObkJCgyy67zP6YPn26Tpw40eR6ubm5GjlypE6dOqUePXrof/7nf9SvXz+VlZXpn//8p6ZPn66tW7dq+vTpWr58eb31Dx06pJtuuklFRUUaOHCgVq9erW7duqmgoEDLli3TggULtGbNGvXo0UP333+/J3bdNL50u3tLWgGs/o8/0DV1zH3p8+kptW93l5oOBs5uJbFaC4mjQVs9FQTRjxPeZpkpg5KTk5WTk6P3339fS5cu1bhx4xy2Tp0tJSVFJ06cUGRkpN555x3169dPkhQWFqZ77rlHjzzyiCRpxYoV+vbbb+utP3fuXBUWFqpdu3batGmTunXrJqm61eyRRx7RtGnTJEmLFi3S6dO+M0hbS1S38vjGLe/OtgI4mubEytNbBKqmjnmb6DCf+Xx6Sk1La83DmSCgppWk+mG9+qlbfuf3uyX8dUocWIdlWryCg1v+Y/LCCy9IksaNG6ekpKR6y++99149+uijKigo0IsvvmgPxCSpsLBQr7/+uiTprrvuUqtWreqtP2fOHK1YsUJ5eXl68803dfvtt7e4rP6k5rKfOzrMNtYKYPV//FblzuPbEGdafjxdBvg3+nHCGywTeLXUgQMH7J3wr7vuugbTxMTEKDk5WZs3b9bWrVvrBF47duxQcXFxo+t36dJFF198sdLT0+39veDey0FN9beiX4T5PH2icqaPHSdLuIJ+nPAGy1xqbKl9+/bZn/fq1cthuppl33zzjcP1f/GLXzS5/v79+1tUTndwNPu6YRimlcHRZT/Js51lzVJUVumVevUVvnB8faEMNXzhOwfAWvw+1M/KyrI/79Chg8N0Ncvy8vJUUFCgmJiYOusnJCQoKiqqyfVrb68hpaWlKi0ttb/Oy8trYg+c4ysdRh11lJV8444hVwV6531fOL6+UAbJd75zAKzF71u88vPz7c8bC5xqL6u9Ts3zxtatvbz2ug1ZvHix4uPj7Y9OnTo1mt5ZvtRhtKGOsp7sLOuK+i0WDZ/M6bz/M184vt4ow9mflVOFZT7znQNgHX7f4uVr5syZo//+7/+2v87Ly3Nb8FWDDqPOcXa4Cjrvw5lhLvjOAXCG3wdesbGx9udFRUWKi4trMF3NwKhnr1PzvPbyxtavvW5DwsPDmxwGw9WpQ5rqMOqOqUn8QXMGraTzfmBzZpgLX2zRRfNxp6x7eLoerTyJuN+fSdq3b29/npmZ6TDwyszMlFQ9In1N/67a658+fVpFRUUOLznWrF97ey3hrqlDvJW/VTV30EoELj4r/o0WS/fwdD1aeRJxv+/jVftOxtp3KJ6tZlnPnj0drt/YHYs16zd256MzXJk6xBfyt6qWDFqJwMRnxf/40p2yVubpemwsfyv1q/T7Fq/u3burc+fOOnLkiLZs2aIxY8bUS1NYWKjt27dLkoYNG1Zn2aBBgxQZGani4mJt2bJF/fv3r7f+4cOHlZ6e3uD6rvD0P2v+uXuHL88TB/fhkpV1tORO2ZZe6nLH58JT3UVczae59djY9hpa5i+TiPt94CVJEydO1MKFC7V+/Xo9/PDD6tKlS53lTz/9tAoKChQcHKzx48fXWRYdHa3Ro0dr3bp1euaZZ/THP/5R8fHxddIsWbJEUnX/rt/+9rduK7enB/dj8EDzOTMEAfyD1U4Gga65/TgdXepq7nrN5cnuIu74zDanHluyPX/ob2upS42nT59Wdna2/VFVVSWpumN77fcLCgrqrDdz5ky1a9dORUVF+s1vfqO0tDRJUllZmZ555hk9/PDDkqRp06bZ52GsbcGCBYqOjtbx48c1atQofffdd5KqW8oWLFigZ599VpL00EMPKSGh4WZQ+D9nBtN0x7AfPw/iSkuKr2nupRaOpft5clDbll7qcuclOHd3F3FUNk9dYm2sLhrij5d6LRU29unTR4cPH673/rJly7Rs2TL760mTJmnt2rX21/Hx8dq0aZOGDx+ub775Rv369VNsbKxKSkpUXl4uqfoS4ZNPPtngdpOSkrRhwwaNGTNG27dvV7du3RQfH6+CggJVVlZ/0W677TbNmjXLjXsLK2nJYJotHYKAlhTf1dxLLRxL9/J0i3JLL3V5atBfd3QXcVQ2T3V9aKwuGuKPXTAsFXi5om/fvtq/f7+WLFmiTZs26ejRo4qOjlavXr00adIkTZ48WUFBjhsAR4wYoa+++kpLlizRe++9p6ysLLVq1UqXXXaZ7rzzTo0ePdrEvTEP/VSc40xL1tnN48251FvzL3GPgxOKv/0jtLKmLoWYeSytfMt9S5gxkHRLL3V54hKZu7qLmH35zlPbq/159+XPuqUCr4yMDJfWb9u2rZ544gk98cQTLVr/wgsv1IoVK1wqg9Xwj7z5PDGYpq9MkwPXmXksrXzLvasY1DbwWGVKN0v18YI5uLXaNT8PN+DeevKFqXrgHp48lv5yy72rPPU9hG+x4pRulmrxgjloXXE/LtnCLP5yyz3gDCtO6UbghQb5wy27vsTXfwjgX/j+IpBY7fPOpcYAwW3r5vP2JVuOOTzt58+Y+4ZsAPyddUJEuIQWF/N5+5ItxxyeFsid94GWosXL4hpr1fB2iwua34m6+ni2vIWKYw5Ps3LnfVe/X4A7eLTF66efftKOHTsUHBysq666Sq1atfLk5gJSY60a3m5xQfO52krFMYenWbnzvhXKCP/nUovXnj17NHnyZD3++OP1lq1fv15dunTRjTfeqN/97nfq3LmzNm7c6Mrm8B/NadWw4hAEgdY3yd1TdljxmMNa6n/Gfv6c+lq/L7OnxAGa4lKL10svvaTnn39eKSkpdd7PysrSlClTVFxcbH+voKBAt9xyi/bt26cLL7zQlc0GPH9v1Qi0f6VmT9kBeJKv9fvi+wVf41KL18cffyxJ+q//+q86769YsULFxcW65JJL9N133+no0aO6+uqrVVZWpr///e+ubBL/4W+tGoHeN6mh42nVY4nA4+v9vvh+wZe41OJ1/Phx2Ww2JSYm1nn///7v/2Sz2bRw4UJ769bf/vY3/b//9//0wQcfuLJJ+Cl/b8VDwwzDqNdXCNZj5X5fgNlcCrxOnTqlVq1aKSTk52yKi4v15ZdfKjw8XMOGDbO/f8kllygsLMzl+Rbhv6w2CB5cYxiGbnx2l8NJjWEtfH8B57j0LQkJCVFeXl6d9z7//HNVVlZqwIABCgsLq7MsJiZGhYWFrmwSgJ8oLq90GHR56/KyoxY3WuJ8x9nHghZxc1lp+jNfLatLgVeXLl2Unp6uzz//XP3795ckvf3227LZbBo4cGCdtJWVlcrNzVX79u1d2SQAP7TnoaF17ozz1smUS2O+z9c67wcaK31HfLWsLnWu//Wvfy3DMHTPPffo008/1ZtvvqkVK1ZIkkaNGlUn7ddff63Kykp17NjRlU0CLWYYRp3b3H3tX1AgiwoL9lrH58Y6hp8tEG708EW+3nnf31np5icrlNWlFq+ZM2fq+eefV1pamq688kpJ1Se3X/3qV/bXNWo63A8YMMCVTQItQn8iONLYjR1n47KWd9B537usdPOTFcrqUuDVoUMHffjhh5oxY4Z27dqlVq1aaeTIkVq6dGmddIZhaM2aNTIMQ4MHD3apwEBL+GJ/IvgOOob7Po6Rd1mp/n29rC6X7NJLL9X77zf+r6OqqkqpqamSqoM1wCwNda70lf5EANzDVzpRe3v7sAZTQsLg4OB6Y30BZmjoUkRNfyIA/sFXLjn6Sjng21zqXH/BBRfoiiuucDp9cnIy0wXB46zQuRKAa3zle85ckGgul/72Z2RkqKSkxOn0x44d05EjR1zZJNAkK3SuBOAaX/meMxckmsvU6y0VFRUKCnKpkc1vFZVVKIQhDtzG1ztXBjJf6Y8D6/OV77lZ5eA74x9M+8QWFxfrxx9/VGxsrFmbtJRfLkpVUHiUt4sBeBz9YICW4bvjH5oVeB05cqTeXItlZWXavn27DMNocB3DMHTmzBm9+OKLKi8vV+/evVtc2EBC/wD4k5p+MHsaGNKDzzrgmKPvDt8b62pW4LVmzRotWLCgznunT5/WNddc0+S6hmHIZrPpzjvvbFYBA8VnDw5RXFyc/TX9A+BPfKU/DmA19CHzP82+1Fi7Zctmszls6aqdJi4uTr169dLvf/973XLLLc0vZQComSoF8Fe+0h8HsBq+O/6lWUdy3rx5mjdvnv11UFCQ2rVrp6ysLLcXDLACOooDAJrDpRB64sSJatWqlZuKAlgPnV0BAM3hUuC1du1aNxUDsA46igMAWoqLxkAz0VEcANBSbgm88vPztWnTJn311VfKyclReXm5w7Q2m02rVq1yx2YBr6GzK6yKfomAd7l85li7dq3+9Kc/qaCgwP5eQ3c61twBSeAFAN5Dv0TAu1wKvN59911NmTJFhmEoIiJCAwYMUPv27RUSQksAAPgK+iUCvsOlCGnp0qUyDEMDBgzQW2+9pXPOOcdd5QIAuAn9EgHf4VLglZaWJpvNprVr1xJ0AYAPo18i4BuCXFm5oqJCMTEx6tq1q7vKAwAA4LdcCrwuvPBClZaWqrKSu2MAAACa4lLgNWHCBJWXl2vz5s3uKg8AAIDfcinwuu+++9S/f3/dfffd+u6779xVJrez2WxOPwYPHlxv/fnz5zu17vfff++FvQMAAFbhUk/Ll19+Wbfeeqvmzp2rSy+9VDfeeKMuv/xyxcbGNrrexIkTXdlss7Vt27bR5eXl5crJyZEk9e/f32G60NBQtW7d2uFyhtEAAACNcSlSuO222+y3IRuGoRdffFEvvvhio+vYbDbTA68TJ040uvzxxx/XzJkzJUlTpkxxmO7KK6/Utm3b3Fk0AAAQQFwKvDp37uwX47/UjKQ/aNAgde/e3culAQAA/sqlwCsjI8NNxfCeTz75ROnp6ZKkO+64w8ulAQD/w/yQwM8CvlNSTWtXXFycxowZ4+XSAID/YX5I4Gcu3dVodQUFBdqwYYMk6ZZbblFUVFSj6ffv369evXopMjJSMTEx6t69u6ZOnaq9e/eaUVzA7YrKKlVUVuH3LRGBsp++pGZ+yIYwPyQCWUC3eK1fv14FBQWSnLvMmJ2drZycHLVq1Up5eXn69ttv9e2332rVqlV64IEHtHDhwibzKC0tVWlpqf11Xl5ey3cAcFGgtEQEyn76EuaHBBrmUuA1efLkZq9js9nsl/e8beXKlZKkSy+9VH379nWYrmvXrlq6dKmuv/56JSUlKTQ0VGVlZdq2bZseeOABpaWladGiRUpISNCMGTMa3ebixYv1yCOPuHU/gOaoaYnYc/h0vWX+1BIRKPvpy5gfEqjPZhiG0dKVg4KCZLPZ5CiLs//RGIYhm83mE1MM1Vw2lKR//OMf+sMf/tCifEpKSnTVVVfp888/V0xMjI4dO6b4+HiH6Rtq8erUqZNyc3MVFxfXojIAzWUYRkC0RATKfgJovry8PMXHx5t+/nXpr8jEiRMb/fHKzc3Vnj17dOzYMbVp00YjR450ZXNuVdPaFRERofHjx7c4n4iICD366KP69a9/rYKCAqWmpuqGG25wmD48PFzh4eEt3h7gDoHSEhEo+wnAOlz6RVq7dm2TaQzD0Nq1a3XXXXcpLi5Of/vb31zZpFuUlZVp3bp1kqTRo0crIaHhDqDOGjBggP35wYMHXcoLAAD4L4//FbTZbLr99tt15swZzZw5U1dddZVGjx7t6c026q233lJ2drYkxu4CAADmMW04iTvuuEM2m01PPfWUWZt0qOYy40UXXaSrr77a5fx2795tf56UlORyfgAAwD+ZFnjFxsYqLi5OX375pVmbbNCRI0f0/vvVt5ZPnjy5yQ62Td17UFpaqgcffFCSFB0drSFDhrinoAAAwO+YFnjl5OTozJkzKi8vN2uTDVq9erWqqqoUEhKi2267rcn0H3/8sYYOHap169bp2LFj9vfLy8uVmpqq5ORkffrpp5KkuXPnqlWrVh4qOQAAsDrTbveZPXu2JHl1Euqqqir7DQEjRozQ+eef3+Q6hmEoNTVVqampkqTIyEhFR0crNzfXHkQGBQVp9uzZuv/++z1WdgAAYH0uBV4vvPBCo8tLSkp09OhRbdy4Uenp6faO9t7y/vvv6/Dhw5Kc71Tfu3dvpaSkaNeuXfr666+VnZ2tM2fOKCoqSj179lRycrKmTZum3r17e7LoAADAD7hlANWm1Gxi4sSJWrNmDQMX1uKtAdwAAAhklhxAtXPnzo0GUSEhIUpISNCll16qm2++Wb/61a9c2RwAAICluRR4ZWRkuKkYAAAA/s+0uxoBAAACHYEXAACASdw2nERZWZnee+897dmzRz/++KNsNpvOPfdc9e/fX0OHDlVYWJi7NgUAAGBJbgm8VqxYoYcfftg+/+HZzjnnHC1cuFBTp051x+YAAAAsyeXA689//rNSUlLsQ0Z06NBBHTt2lCQdO3ZMmZmZ+umnn/T73/9eP/zwgx577DFXNwkAAGBJLvXx+uijj7Rs2TIZhqHRo0frm2++0dGjR7Vr1y7t2rVLR48eVXp6um688UYZhqFly5Zp+/bt7io7AACApbgUeD399NOSpClTpujVV19Vjx496qXp3r27NmzYoClTpsgwDD311FOubBIAAMCyXBq5vmPHjjpx4oSysrJ03nnnNZr25MmTat++vc4///w6k00HOkauBwDAfN46/7rU4pWdna34+Pgmgy5Jatu2rVq1auWwAz4AAIC/cynwio2NVX5+vkpKSppMW1xcrPz8fMXExLiySQAAAMtyKfC65JJLVFlZqdWrVzeZdvXq1aqoqNCll17qyiYBAAAsy6XAa/z48TIMQzNmzNCqVascplu5cqVmzJghm82mW2+91ZVNAgAAWJZLneurqqo0ZMgQffTRR7LZbOrYsaMGDx6sDh06yGaz6ejRo/rwww+VmZkpwzB0zTXXKDU1VTabzZ37YGl0rgcAwHzeOv+6FHhJ1QWfPHmy3njjjeoMzwqqarIfPXq0Vq1aRXBxFgIvAADM563zr8sj18fFxem1117T559/rvXr19vnapSk8847T/369dO4cePUv39/lwsLAABgZW6bJLt///4EVwAAAI1wqXN9WVmZvvrqK/373/9uMu2///1vffXVVyovL3dlkwAAAJblUuD1yiuvqE+fPvrrX//aZNpFixapT58+eu2111zZJAAAgGW5FHi9/vrrkuTUEBE1czUSeAEAgEDlUuC1b98+SXJqUNS+fftKkr7++mtXNgkAAGBZLgVeWVlZio+Pd2oaoNjYWLVq1UrHjx93ZZMAAACW5VLgFRYWpuLiYqfSGoah4uJiBk8FAAABy6XAKykpSWVlZdq1a1eTaT/55BOVlpYqMTHRlU0CAABYlkuB169//WsZhqHZs2eroqLCYbqKigrNmTNHNptNw4YNc2WTAAAAluVS4PXHP/5RERER2rFjh4YOHaq9e/fWS/PFF19oyJAh2rFjh8LDw/WnP/3JlU0CAABYlksj13fs2FHPPfecbrvtNm3fvl39+vVTu3btlJiYKJvNpkOHDunkyZMyDEM2m00rVqxQ586d3VV2AAAAS3F5yqBbb71Vbdq00R/+8AdlZGTo+PHj9e5cvOCCC/TUU0/p2muvdXVzAAAAluWWuRpHjBih7777Th9++KE++eQTnThxQpJ0/vnn68orr9TgwYMVFOTSVU0AAADLsxmGYXi7EIEsLy9P8fHxys3NVVxcnLeLAwBAQPDW+ZdmKAAAAJMQeAEAAJiEwAsAAMAkBF4AAAAmIfACAAAwCYEXAACASQi8AAAATELgBQAAYJKACbzWrl0rm83W5OP99993mMfJkyc1Y8YMde/eXZGRkWrdurWSk5O1cuVKMQ4tAABoilumDLKSoKAgnXvuuQ6Xh4eHN/h+Wlqahg8frlOnTkmSYmJilJ+frx07dmjHjh169dVX9fbbbztcHwAAIGBavGp06tRJJ06ccPhITk6ut05ubq5GjhypU6dOqUePHvr888+Vn5+vwsJCPfXUUwoNDdXWrVs1ffp0L+wRAACwioALvFoiJSVFJ06cUGRkpN555x3169dPkhQWFqZ77rlHjzzyiCRpxYoV+vbbb71ZVAAA4MMIvJzwwgsvSJLGjRunpKSkesvvvfdexcTEqLKyUi+++KLZxQMAABZB4NWEAwcO6MiRI5Kk6667rsE0MTEx9kuUW7duNa1sAADAWgIu8Prpp5/Ut29fxcTEKDIyUhdccIEmTJigbdu2NZh+37599ue9evVymG/Nsm+++cat5QUAAP4j4AKvoqIiffHFFwoLC1NVVZUOHTqkF198UYMHD9bkyZNVUVFRJ31WVpb9eYcOHRzmW7MsLy9PBQUFDtOVlpYqLy+vzgMAAASGgAm82rdvr3nz5ulf//qXSkpKlJOTo6KiIu3cuVNDhw6VJK1Zs6benYn5+fn251FRUQ7zr72s9jpnW7x4seLj4+2PTp06tXSXAACAxQRM4DVs2DDNnz9fl1xyiX2sreDgYF155ZV69913df3110uSli9fru+++85j5ZgzZ45yc3Ptj6NHj3psWwAAwLcETODVmKCgIKWkpEiSqqqq9L//+7/2ZbGxsfbnRUVFDvOovaz2OmcLDw9XXFxcnQcAAAgMBF7/cdFFF+mcc86RJB08eND+fvv27e3PMzMzHa5fsywuLk4xMTEeKiUAALAyAq8m1L6TsfYdjmerWdazZ0+PlwkAAFgTgdd//PDDD8rOzpakOoOkdu/eXZ07d5YkbdmypcF1CwsLtX37dknVfckAAAAaEhCBl2EYTS6fNWuWpOr+XiNHjqyzfOLEiZKk9evXKyMjo976Tz/9tAoKChQcHKzx48e7p9AAAMDvBETgdfjwYf3yl7/Uc889p4MHD9oDsaqqKu3evVvXXXedNm7cKEm688471b179zrrz5w5U+3atVNRUZF+85vfKC0tTZJUVlamZ555Rg8//LAkadq0aerWrZuJewYAAKzEZjTVHOQHMjIy6lw+DA8PV2xsrPLz81VaWmp///bbb9eKFSsUEhJSL4+0tDQNHz5cp06dklR952JJSYnKy8slVV9ifPvtt+1DVTgrLy9P8fHxys3N5Q5HAABM4q3zb/0Iww+1bdtW//jHP7Rr1y59+eWX+umnn3T69GlFREQoKSlJV155pSZPnqyBAwc6zKNv377av3+/lixZok2bNuno0aOKjo5Wr169NGnSJE2ePFlBQQHRgAgAAFooIFq8fBktXgAAmM9b51+aaAAAAExC4AUAAGASAi8AAACTEHgBAACYhMALAADAJAReAAAAJiHwAgAAMAmBFwAAgEkIvAAAAExC4AUAAGASAi8AAACTEHgBAACYhMALAADAJAReAAAAJiHwAgAAMAmBFwAAgEkIvAAAAExC4AUAAGASAi8AAACTEHgBAACYhMALAADAJAReAAAAJiHwAgAAMAmBFwAAgEkIvAAAAExC4AUAAGASAi8AAACTEHgBAACYhMALAADAJAReAAAAJiHwAgAAMAmBFwAAgEkIvAAAAExC4AUAAGASAi8AAACTEHgBAACYhMALAADAJAReAAAAJgmYwOvUqVNas2aNJkyYoJ49eyo6Olrh4eHq2LGjfvvb32rjxo0O150/f75sNluTj++//97EPQIAAFYT4u0CmKVdu3aqqKiwv46IiFBoaKgyMzOVmZmpt956S9ddd51ee+01RUVFNZhHaGioWrdu7XAbISEBU50AAKAFAqbFq6KiQr/85S+1fPly/fDDDyouLlZBQYEOHTqkKVOmSJI2b96sO++802EeV155pU6cOOHw0aVLF5P2BgAAWFHANNF88MEHGjx4cL33u3TpopUrVyokJETPPfec1q1bp0cffVSdOnXyQikBAIA/C5gWr4aCrtpqWr0kac+ePZ4uDgAACEABE3g1JSIiwv68srLSiyUBAAD+isDrP7Zt22Z/3rt37wbT7N+/X7169VJkZKRiYmLUvXt3TZ06VXv37jWplAAAwMoIvCSdOXNGixcvliQlJyere/fuDabLzs5Wenq6oqKiVFpaqm+//VYrV65U37599dBDDzm1rdLSUuXl5dV5AACAwBDwgVdVVZVuvfVWHT9+XOHh4frHP/5RL03Xrl21dOlSHThwQCUlJTp16pQKCwv17rvvqm/fvjIMQ4sWLdLjjz/e5PYWL16s+Ph4+4NO/AAABA6bYRiGtwvhTffee6+eeuopSdKqVas0efLkZq1fUlKiq666Sp9//rliYmJ07NgxxcfHO0xfWlqq0tJS++u8vDx16tRJubm5iouLa9lOAACAZsnLy1N8fLzp59+AbvGaOXOmPeh68sknmx10SdWd8h999FFJUkFBgVJTUxtNHx4erri4uDoPAAAQGAI28Lr//vvtlwaXLVum++67r8V5DRgwwP784MGDrhYNAAD4qYAZQLW2WbNmKSUlRZK0dOlSzZw508slAgAAgSDgAq+ZM2faW7qWLl2qWbNmuZzn7t277c+TkpJczg8AAPingAq8agddKSkpmjFjRpPrGIYhm83mcHlpaakefPBBSVJ0dLSGDBninsICAAC/EzB9vP785z/bg64nnnjCqaBLkj7++GMNHTpU69at07Fjx+zvl5eXKzU1VcnJyfr0008lSXPnzlWrVq3cXnYAAOAfAmI4iSNHjigxMVGSFBQUpHPPPbfR9DNnzrT3+9q2bVudeR4jIyMVHR2t3NxclZeX2/OcPXu2Fi1a1Oyyeet2VgAAApm3zr8BcamxqqqqzvOTJ082mr6goMD+vHfv3kpJSdGuXbv09ddfKzs7W2fOnFFUVJR69uyp5ORkTZs2zeE0QwAAADUCosXLl9HiBQCA+RhAFQAAwM8ReAEAAJiEwAsAAMAkBF4AAAAmIfACAAAwCYEXAACASQi8AAAATELgBQAAYBICLwAAAJMQeAEAAJiEwAsAAMAkBF4AAAAmIfACAAAwCYEXAACASQi8AAAATELgBQAAYBICLwAAAJMQeAEAAJiEwAsAAMAkBF4AAAAmIfACAAAwCYEXAACASQi8AAAATELgBQAAYBICLwAAAJMQeAEAAJiEwAsAAMAkBF4AAAAmIfACAAAwCYEXAACASQi8AAAATELgBQAAYBICLwAAAJMQeAEAAJiEwAsAAMAkBF4AAAAmIfACAAAwCYEXAACASQi8AAAATELg1Uz5+fmaP3++evfurZiYGMXHx6t///56/PHHVVZW5u3iAQAAH2YzDMPwdiGs4vDhw7rmmmuUkZEhSYqKilJlZaVKS0slSX369FFqaqoSEhKczjMvL0/x8fHKzc1VXFycJ4oNAADO4q3zLy1eTqqsrNSoUaOUkZGh888/X++9954KCwtVVFSk9evXKzY2Vnv37tX48eO9XVQAAOCjCLyctHbtWn399deSpNdff11Dhw6VJAUFBWns2LF67rnnJEmbN29Wamqq18oJAAB8F4GXk55//nlJ0uDBgzVgwIB6y8eNG6ekpCRJ0gsvvGBq2QAAgDUQeDmhqKhIO3fulCRdd911Daax2Wy69tprJUlbt241rWwAAMA6CLyckJ6erqqqKklSr169HKarWXbixAnl5OSYUjYAAGAdId4ugBVkZWXZn3fo0MFhutrLsrKy1Lp163ppSktL7XdBSlJubq6k6rsrAACAOWrOu2YP7kDg5YT8/Hz786ioKIfpai+rvU5tixcv1iOPPFLv/U6dOrlQQgAA0BKnTp1SfHy8adsj8DLZnDlz9N///d/212fOnFFiYqKOHDli6oFHtby8PHXq1ElHjx5lHDUvoP69i/r3Lurfu3Jzc9W5c+cGr055EoGXE2JjY+3Pi4qKHKarvaz2OrWFh4crPDy83vvx8fF88bwoLi6O+vci6t+7qH/vov69KyjI3O7udK53Qvv27e3PMzMzHaarvaz2OgAAABKBl1Muvvhie0S8b98+h+lqlrVr1870pksAAOD7CLycEBUVpYEDB0qStmzZ0mAawzD07rvvSpKGDRvmdN7h4eGaN29eg5cf4XnUv3dR/95F/XsX9e9d3qp/Jsl20qpVq3THHXfIZrNp165duvzyy+ss37Bhg8aOHStJev/99zVkyBBvFBMAAPgwWrycNGnSJPXu3VuGYWj06NH2+Rirqqr06quvaurUqZKqR7Yn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G8zYHcvx5Oe/MQRe1TxZ/5WVlcYvf/lLQ5LRqVMnY8uWLUZlZaVhGIaRnp5uDBkyxJBkBAUFGampqR7dT1/lyfofNWqUffmECROM77//3qiqqjLKysqMnTt32ieKl2Q8//zznt5Vn5WTk2P89NNP9kenTp0MScasWbPqvJ+fn19nPW+efwm83ODQoUP2CU1rIuSIiAj76z59+hg5OTn11nPmxLNnzx6jTZs29nSxsbH2WdElGcOGDTNKSko8vIe+zRP1/9FHH9mXhYaGGm3btm30EcitYZ78/DtC4PUzT9b/8ePHjZ49e9rTRUZGGvHx8XW+GytWrPDwHvo2T9X/Tz/9ZPTt29eepibvkJCQOu/NnDnThL30XTUtXE09Jk2aVGc9b55/6ePlBl26dNFXX32luXPnqlevXrLZbAoNDVXfvn2VkpKi3bt3t3jwx759+2r//v2aPn26unbtqvLyckVHR2vQoEH65z//qc2bNys8PNzNe2Qtnqj/2uMYlZeX6+TJk40+iouL3b1bluHJzz+a5sn6b9eunb744gulpKSof//+CgsLU3Fxsbp06aLJkyfriy++0NSpU928R9biqfo/55xztHv3bq1cuVLDhw9X27ZtVV5erpCQEF1wwQWaMGGCtm/frmXLlnlgryB57vxrMwzuQQUAADADLV4AAAAmIfACAAAwCYEXAACASQi8AAAATELgBQAAYBICLwAAAJMQeAEAAJiEwAsAAMAkBF4AAAAmIfACAAAwCYEXAACASQi8AAAATELgBQAAYBICLwAAAJMQeAEAAJiEwAsAnLBz507ZbDbZbDa9+uqrDab59NNPFRMTI5vNpvvvv9/kEgKwApthGIa3CwEAVnD99dfr7bffVo8ePbRv3z4FBwfblx04cECDBg1Sdna2Jk2apDVr1shms3mxtAB8ES1eAOCkxx57TMHBwfr3v/+tdevW2d/PysrS8OHDlZ2drZEjR2rlypUEXQAaRIsXADTDHXfcoVWrVikpKUkHDhxQYWGhrrrqKn399dcaNGiQtm7dqsjISG8XE4CPIvACgGbIzMxU165dVVxcrCeffFIbN27Uxx9/rN69e+vjjz9Wq1atvF1EAD6MwAsAmmn27NlasmSJ/XWXLl20c+dOtW/f3oulAmAFBF4A0EzHjx9Xx44dVVVVpdatW2v37t3q2rWrt4sFwALoXA8AzVBRUaFp06apqqpKklRUVESfLgBOI/ACACcZhqE77rhDmzZt0rnnnqukpCSVlJRo3rx53i4aAIvgUiMAOGnWrFlKSUlRTEyMPvjgA33//fe65ZZbFBwcrK+++ko9e/b0dhEB+DhavADACSkpKUpJSVFoaKhef/119e/fX+PGjdMll1yiyspKzZkzx9tFBGABBF4A0IQXXnhB999/v2w2m9auXathw4ZJkmw2m/7yl79Ikt5++23t3LnTm8UEYAFcagSARrzzzju6/vrrVVFRoSeffFL33XdfvTRXXHGFPv30Uw0cOFA7duwwv5AALIMWLwBwYNeuXRozZowqKir05z//ucGgS5IWLVokqXoi7bfeesvEEgKwGlq8AAAATEKLFwAAgEkIvAAAAExC4AUAAGASAi8AAACTEHgBAACYhMALAADAJAReAAAAJiHwAgAAMAmBFwAAgEkIvAAAAExC4AUAAGASAi8AAACTEHgBAACY5P8DaQ3El3T6sC8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_histogram(xHist, bin_edges, r'$x$', 'counts')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "029182a4-48f6-47f6-9bb7-a40506c66675",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.12.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
