|
|
{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import uproot\t\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits import mplot3d\n", "import awkward as ak\n", "from scipy.optimize import curve_fit\n", "from methods.fit_linear_regression_model import fit_linear_regression_model\n", "import sklearn\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "41978 8523\n", "92337\n" ] } ], "source": [ "file = uproot.open(\n", " \"tracking_losses_ntuple_B_EndVeloP.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\"\n", ")\n", "\n", "# selektiere nur elektronen von B->K*ee\n", "allcolumns = file.arrays()\n", "found = allcolumns[\n", " (allcolumns.isElectron) & (~allcolumns.lost) & (allcolumns.fromB)\n", "] # B: 9056\n", "lost = allcolumns[\n", " (allcolumns.isElectron) & (allcolumns.lost) & (allcolumns.fromB)\n", "] # B: 1466\n", "\n", "notelectrons = allcolumns[\n", " (~allcolumns.isElectron) & (allcolumns.fromB) & (~allcolumns.lost)\n", "]\n", "\n", "print(ak.num(found, axis=0), ak.num(lost, axis=0))\n", "print(ak.num(notelectrons, axis=0))\n", "# ak.count(found, axis=None)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "rad_length_found = ak.to_numpy(found[\"rad_length_frac\"])\n", "eta_found = ak.to_numpy(found[\"eta\"])\n", "rad_length_lost = ak.to_numpy(lost[\"rad_length_frac\"])\n", "eta_lost = ak.to_numpy(lost[\"eta\"])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABkMAAAL5CAYAAAADsVMKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACix0lEQVR4nOz9cXDk130gdn5/M7TpqSOH4MgZlrOXJdmgri7aoyx2j3QX62LdroC1fXvZ7GoAMpXLZXW3GiA8uDa3Khsw964KRJJbCCglcZxgaYDaKm75cjkRGDoXn1deA3SireU6Kw7aWnHXSZ0GTcq3kkKuNAMN6YwpDeZ3f4waGsz07wH4obvR3fP5VHWJ09/fe+/7+3U39Hv9+r2X5XmeBwAAAAAAwIA6cdwJAAAAAAAAdJLBEAAAAAAAYKAZDAEAAAAAAAaawRAAAAAAAGCgGQwBAAAAAAAGmsEQAAAAAABgoBkMAQAAAAAABprBEAAAAAAAYKAZDAEAAAAAAAaawRAAAAC6rl6vx+LiYtRqtRgdHT3udI6s186n0WjEyspKT+QCANALDIYAAAyYtbW1GB8fjyzL9jy2t7cPVc/w8PCe8rVaLWZmZjqTNPeUjY2NmJyc3PMeGx4ejtHR0VhcXIx6vR71ej2Gh4ePO9VDW1tbi4cffjgWFxePO5WeVq/X44tf/GLMzMxEvV4/cLnml/t3/n07yKOTUueztrYWtVrtrnya7/ei+u78Oz4+Ph6NRuNAuYyOjsbw8HBMTk7GxsZGW84RAKDfZXme58edBAAA7bexsbHnF8HT09OxsLBwoLLNAZWmkZGRWF9fb3uO/aw5uDQ0NHSseXTTUc+5+QVvo9GISqUSk5OTMTIyEkNDQ9FoNKJer8f8/Pyedq5evdqe5NsodR1qtVrU6/WoVCqxtbXV3cT60Pj4eKytrR36b8zMzMzuQMLIyEisrq7ueT22t7fjypUr0Wg0dgcoutH1TZ3P6Ojo7sBEtVqNzc3NfetbXFyMmZmZWFhYiOnp6UPlsrKyEpOTkxERXTl3AIBeZ2YIAMCAGhkZ2fPvw/xSfX5+fs8Xi5ZZudtBf6U9SI5yzisrK1Gr1aLRaMTY2FhsbW3F9PR0VKvVqFQqMTIyEtPT03H16tWYmJiIiDj0bKZuSV2HhYWFGBkZOfDA473uzJkzpcrd/jepWq3eNTA1NDS0+7569dVXj5LioaTOZ3V1dfe/Dzob5rvf/W4MDQ0deiAkIqJSqRy6DADAIDMYAgAw4KrV6u5/H2RApLlEUfML6Yh7a/bDQczMzNxzS88c5ZzX1tZ2f6E+MTGx50vhVpaXl2NsbKxUW52233Vozgjo1fzvRUNDQz3xegwNDe35u3qQv8crKyt7ygAAUJ7BEACAAffcc8/t/vf8/Py+x8/Pz8fY2Fh89KMf7WRafWttbe2e2w/iKOe8vb29Z8m1g86YePHFF3fL94p78bUfFPsNwHXL7e///f4eb2xsxPb29p6/4QAAlGcwBABgwFUqld1fRW9vb8fKykrhsdvb27G2tnboL98WFxdjdHQ0arXa7kbYqXaae5I0N2RvbvibZdldm083Go2YnJyMhx9+eHfT4dQX5Nvb23s2567Vai2/wG5ei9tzXVlZ2VOu1UbIFy5c2P33Jz/5yXj44Yfj4Ycf3o3fvlHy7TMIFhcX98Tu3Iy+k9ekyNraWoyOjsb4+Pju63fn67bfOe/n9i98p6enDzzL6M5f0Ufc+nJ4fHx8N8fJycnd87/dQd8DTe28Ds09Kmq1WvL8DvOZKfNePaiDnHu7cpiZmYnh4eGo1WqF7bRbo9FoOZPnuM7n9lkqzb+3RRYWFmJsbOyuvVAO894+iMP+/QYA6Fs5AAADKyLyzc3NfHNzM4+IPCLySqVSePz09HRerVbzPM/z1dXV3TLLy8stj9/c3MwrlUo+Nja2+9zVq1fzsbGxPCLykZGR/OrVq7ux9fX1fGRkZLfeiYmJ3Tanp6fziYmJPW2urq7mlUpl97hKpZJHxG6Od1pfX8+r1Wq+vr6e53meb21t7bZ3e5nmcc22FhYW8rGxsbxareYTExO77UTEnvyb59eMbW5u3pXD1tbWbryZx+2GhobyiMinp6e7ck2KNNu8/fymp6d3r8dhzjnl9mvZ6nocxMLCwp56lpeX85GRkd1rGRH51tZWnucHfw80tes6bG5u7nkdh4aGWp5Lmc9M2ffqfg567kfN4erVq3m1Wr3r3Jrn3Dzvw1hfX98t2/wstbK8vHzX63jc53P734iiv8fNY27/zBz2vX37NWrlsO9FAIB+ZzAEAGCA3f6l7e1f1K6urhYe34wdZDBkaGio8EvfZnutvhRM5dL88n9oaGjPl3R5vvdLxOaX33fG7vyS+vYvsO/80rT5ZfrQ0NCeLx2vXr26GyszMJD68r/5ReuduXTimhRpfkl652vXrOvO58sOhtxe7jD57VdXpVLZvbYLCwv5xMTEnvwP+h7oxHW4/bVqpexnpsx7NeWw536UHKrVavJ6dGIw5OrVq/n6+no+NDRUeF2O83xu/7y3+jvRHOhsKvP3bb/BkLLvRQCAfmWZLACAe8TtyzK1Wqt+ZWVlz5JaB6lve3u7cHPf5tr4Gxsbdy0F01z2ZWRk5K72mvtLbG9v7+4b0VSpVHbL3rmEzczMTAwNDe3ZML7ZVvO5O5d+qVQqEXFrU++RkZE9Zc6dOxcREVtbWy3Pr6yiZaI6cU320zz/pjNnzuy20469Oq5cuZJs7zCGhob2XKPm6zU9PR3Ly8sRUe490Cqvo1yH1PJYR/nMdOq9ephzL5PDyspK1Ov1wqX3bq+nrMXFxd3l55qPhx9+eN/l447zfG7/e9xqH52VlZWYnJzcc3yZ93aq/bLvRQCAfmUwBADgHjEyMrL7pVm9Xr9rHf2FhYW79rFIaX5BVrTRerVa3f2y8Ytf/OKeWPML11YDA81YkWa80Wjclc/29nYMDw/f9WgOEhzmy+1m7ne20ymduCZFRkZGYmtrKzY3N/c8f3v5OwcyyujU5udFAw6HfQ904jqkXqujfGZSyrxX233uRTk0v1S/80v8pv3e2wcxMTERW1tbex6bm5uxurp64D1q7tTp87n97/HGxsaegczm+/j2gYp2/33r1HsRAKCX3XfcCQAA0D3PPffc7iyDhYWF3V8xr62txZUrVwp/JdzKQb54rVQq0Wg0Sm/u3EqrLzeb9Y+MjMT6+nrb2uoXZb7wvX1GwNraWnzxi1880syN/dqIuPVlbdkvp/dT9j3QjevQdFyfmVRbTZ069+Y5d+qaRtx6/7eqv1qttn0ws53nc/vf4/n5+VhdXd3979s3Tu/E37deey8CAHSDmSEAAPeQsbGx3S/xbv818vz8fOmBkNSvx5tttWOWQUqz/m7N4hgUKysrMTw8HFeuXInV1dXCpX/Kun1pq4iIS5cutbX+2x3lPdDp63BnXr3wmWnq5Ln3wufx9r95R9Xu87k9t7W1td2BhzuX4Wr337defS8CAHSamSEAAPeYmZmZ3bXo5+fn47nnnot6vR6vvvrqgeu4/cvF1D4FzS/CO/mr8IjDLxNFxOjoaGxsbMTW1lZHX5+RkZHdJXnW19fbskdEK2XfA926Dr32mYno/LnfvmRTo9HoyjndqVKptK3dTpzP7X+Pm0twVSqVPctwtfvvWy++FwEAusHMEACAe8zExMTul1xra2tx4cKFPc8d1O0zTIo0v7xrbkbcKXcu91Nke3v7UJsMd0Kn9tE4jJmZmdjY2IiJiYmOf9F5+4bvi4uLHTv/Mu+Bbl6H23Pshc9MN8799i/0e2GppTv35jisTpzP7X97V1ZWYmVl5a69mzrx962X3osAAN1iMAQA4B50+xIs9Xq95cbp+y2N0vw1c71eL/zFcvMLw8NszF7G7XsGXLhwofAL9/Hx8bbOTNjvGrXKoxeWnGl+oTo8PHzosofNf2hoaPcX7xG3Xp+DWlxcPPCXzmXeA928DhG99Zk5yrkfRvM1mZ+f72g7B9Hcn+MoOnE+dy5NdueShZ34+9ZL70UAgG4xGAIAMKCaX5i1+qJrenp "text/plain": [ "<Figure size 2000x800 with 3 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "endVeloP_found = ak.to_numpy(found[\"p_end_velo\"])\n", "trueP_found = ak.to_numpy(found[\"p\"])\n", "\n", "endVeloP_lost = ak.to_numpy(lost[\"p_end_velo\"])\n", "trueP_lost = ak.to_numpy(lost[\"p\"])\n", "\n", "endVeloP_notelectrons = ak.to_numpy(notelectrons[\"p_end_velo\"])\n", "trueP_notelectrons = ak.to_numpy(notelectrons[\"p\"])\n", "\n", "stretch_factor = ak.num(trueP_notelectrons, axis=0) / ak.num(trueP_found, axis=0)\n", "\n", "nbins = 100\n", "vmax = 100\n", "\n", "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(20, 8))\n", "\n", "a0 = ax0.hist2d(\n", " trueP_found,\n", " endVeloP_found,\n", " density=False,\n", " bins=nbins,\n", " cmap=plt.cm.jet,\n", " cmin=1,\n", " vmax=vmax,\n", " range=[[0, 30000], [0, 30000]],\n", ")\n", "ax0.set_xlabel(f\"True $P$\")\n", "ax0.set_ylabel(f\"EndVelo $P$\")\n", "ax0.set_title(f\"found P\")\n", "\n", "a1 = ax1.hist2d(\n", " trueP_notelectrons,\n", " endVeloP_notelectrons,\n", " # trueP_lost,\n", " # endVeloP_lost,\n", " density=False,\n", " bins=nbins,\n", " cmap=plt.cm.jet,\n", " cmin=1,\n", " vmax=vmax * stretch_factor,\n", " range=[[0, 30000], [0, 30000]],\n", ")\n", "ax1.set_xlabel(f\"True $P$\")\n", "ax1.set_ylabel(f\"EndVelo $P$\")\n", "ax1.set_title(f\"lost P\")\n", "\n", "plt.suptitle(\"Momentum at Creation and EndVelo\")\n", "plt.colorbar(a0[3], ax=ax1)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<Figure size 640x480 with 2 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a0 = plt.hist2d(\n", " trueP_found,\n", " endVeloP_found,\n", " density=False,\n", " bins=nbins,\n", " cmap=plt.cm.jet,\n", " cmin=1,\n", " vmax=vmax,\n", " range=[[0, 30000], [0, 30000]],\n", ")\n", "plt.xlabel(f\"True $P$ [MeV]\")\n", "plt.ylabel(f\"EndVelo $P$ [MeV]\")\n", "plt.title(f\"found P\")\n", "plt.colorbar(a0[3])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "tuner", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 2 }
|