You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

201 lines
104 KiB

7 months ago
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 25,
  6. "metadata": {},
  7. "outputs": [],
  8. "source": [
  9. "import uproot\n",
  10. "import matplotlib.pyplot as plt\n",
  11. "import numpy as np\n",
  12. "import mplhep\n",
  13. "import awkward as ak\n",
  14. "import pandas as pd\n",
  15. "import seaborn as sns\n",
  16. "\n",
  17. "mplhep.style.use([\"LHCbTex2\"])\n",
  18. "plt.rcParams[\"savefig.dpi\"] = 600\n",
  19. "# %matplotlib inline"
  20. ]
  21. },
  22. {
  23. "cell_type": "code",
  24. "execution_count": 26,
  25. "metadata": {},
  26. "outputs": [],
  27. "source": [
  28. "tree = uproot.open({\n",
  29. " \"/work/cetin/LHCb/reco_tuner/data_matching/parameterisations/sample4/param_data_B_default_thesis_selected.root\":\n",
  30. " \"Selected\"\n",
  31. "})\n",
  32. "allcols = tree.arrays()\n",
  33. "allcols = allcols[allcols.isElectron == 1]"
  34. ]
  35. },
  36. {
  37. "cell_type": "code",
  38. "execution_count": 27,
  39. "metadata": {},
  40. "outputs": [],
  41. "source": [
  42. "zMagnetParamsEndT = [\n",
  43. " 5283.043384741342,\n",
  44. " 28.45437483916609,\n",
  45. " 0.016308934185688337,\n",
  46. " -1668.3602223088105,\n",
  47. " 301.07580662497,\n",
  48. "]\n",
  49. "dSlope_xEndT = allcols.tx_l11 - allcols.tx\n",
  50. "dSlope_xEndT_abs = abs(dSlope_xEndT)\n",
  51. "x_EndT_abs = abs(allcols.x_l11 + allcols.tx_l11 * (9410.0 - allcols.z_l11))\n",
  52. "\n",
  53. "zMagTerm = zMagnetParamsEndT[0] + zMagnetParamsEndT[3] * allcols.tx * allcols.tx\n",
  54. "\n",
  55. "z_mag_xEndT = (\n",
  56. " zMagTerm + dSlope_xEndT_abs *\n",
  57. " (zMagnetParamsEndT[1] + zMagnetParamsEndT[4] * dSlope_xEndT_abs) +\n",
  58. " zMagnetParamsEndT[2] * x_EndT_abs)"
  59. ]
  60. },
  61. {
  62. "cell_type": "code",
  63. "execution_count": 28,
  64. "metadata": {},
  65. "outputs": [],
  66. "source": [
  67. "zmag = (allcols[\"x\"] - allcols[\"x_l11\"] - allcols[\"tx\"] * allcols[\"z\"] +\n",
  68. " allcols[\"tx_l11\"] * allcols[\"z_l11\"]) / dSlope_xEndT"
  69. ]
  70. },
  71. {
  72. "cell_type": "code",
  73. "execution_count": 29,
  74. "metadata": {},
  75. "outputs": [
  76. {
  77. "data": {
  78. "image/png": "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
  79. "text/plain": [
  80. "<Figure size 1200x900 with 1 Axes>"
  81. ]
  82. },
  83. "metadata": {},
  84. "output_type": "display_data"
  85. }
  86. ],
  87. "source": [
  88. "plt.hist(\n",
  89. " zmag,\n",
  90. " bins=50,\n",
  91. " alpha=0.5,\n",
  92. " density=True,\n",
  93. " color=\"#107E7D\",\n",
  94. " label=\"True\",\n",
  95. ")\n",
  96. "plt.hist(\n",
  97. " z_mag_xEndT,\n",
  98. " bins=50,\n",
  99. " alpha=0.5,\n",
  100. " density=True,\n",
  101. " color=\"#F05342\",\n",
  102. " label=\"Predicted\",\n",
  103. ")\n",
  104. "plt.xlabel(r\"$z_{mag}$\")\n",
  105. "plt.ylabel(\"Number of tracks (normalised)\")\n",
  106. "mplhep.lhcb.text(\"Simulation\", loc=0)\n",
  107. "plt.legend(loc=\"upper right\")\n",
  108. "# plt.savefig(\n",
  109. "# \"/work/cetin/LHCb/reco_tuner/thesis/zmag_new_parameterisation.pdf\", format=\"PDF\"\n",
  110. "# )\n",
  111. "plt.show()"
  112. ]
  113. },
  114. {
  115. "cell_type": "code",
  116. "execution_count": 35,
  117. "metadata": {},
  118. "outputs": [
  119. {
  120. "data": {
  121. "text/plain": [
  122. "True"
  123. ]
  124. },
  125. "execution_count": 35,
  126. "metadata": {},
  127. "output_type": "execute_result"
  128. }
  129. ],
  130. "source": [
  131. "weird = zmag < 5200\n",
  132. "True in weird"
  133. ]
  134. },
  135. {
  136. "cell_type": "code",
  137. "execution_count": 32,
  138. "metadata": {},
  139. "outputs": [
  140. {
  141. "data": {
  142. "image/png": "iVBORw0KGgoAAAANSUhEUgAABMAAAAOWCAYAAAAJOu7yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB2sUlEQVR4nOz9UWyjaXofej5U10zaGYND1QAGBHKBDJWDnQDnYpqsWSx8ruKiYuwez7GRkaqz9s4M9iQljQ0jCzCB5IZxkAQLuyLB4c0C4xE7ydkzPrNAW0p2fDwHMEZsXy/QJbZzscAAjti+EEEgC1exCTvutafJvahIllQSRUkUP/Lj7wcII5Yevnw43W+zvr/e9/0yg8FgEAAAAACQUgtJNwAAAAAA90kABgAAAECqCcAAAAAASDUBGAAAAACpJgADAAAAINUEYAAAAACkmgAMAAAAgFQTgAEAAACQagIwAAAAAFJNAAYAAABAqgnAAAAAAEg1ARgAAAAAqSYAAwAAACDVBGAAAAAApJoADAAAAIBUE4ABAAAAkGoCMAAAAABSTQAGAAAAQKoJwAAAAABINQEYAAAAAKkmAAMAAAAg1QRgAAAAAKSaAAwAAACAVBOAAQAAAJBqAjAAAAAAUk0ABgAAAECqCcAAAAAASDUBGAAAAACp9iCpF/7DP/zD2N3djb/39/5e/MN/+A+TaoMJ+9znPheffPJJvPHGG/FTP/VTSbcDAAAAXPCf/tN/ik8//TTefPPN+PM///Ok2xmLzGAwGEz6RT/88MMol8uRyWQiIuLo6Cj+1t/6W5NugwS88cYb0e/3k24DAAAAuMbCwkJ8+umnSbcxFomsANva2oqIiMFgEJlMJlqtlgBsTpwEYAsLC7G0tHSnsTqdztjGSsKs9x8x++9h1vuPmP33MOv9R8z+e5j1/iNm/z3oP3mz/h5mvf+I2X8Ps95/xOy/h1nvP2L238Os9x8x++9hnP2fjPXGG2+MqbvkJRKANRqNyGQyMRgMYn19PX7mZ37m0rrf+q3fikqlEl/+8pcn2yD35qd+6qei3W7H0tJSHB8f32msQqEwtrGSMOv9R8z+e5j1/iNm/z3Mev8Rs/8eZr3/iNl/D/pP3qy/h1nvP2L238Os9x8x++9h1vuPmP33MOv9R8z+exhn/ydjpenookQPwd/d3Y3f/u3fvvLnm5ub8fz58wl2BAAAAEDaJBaA7e7uxtOnTyf2er1eb2KvBQAAAMD0SCQAKxaL8ejRo4m+5tra2kRfDwAAAIDpkMgZYKVSKd5///2Jnu1lK+V06XQ6USgUhtZUq9WoVqsT6ggAAADSr1arRa1WG1rT6XQm1M3kJBKAra+vx9/7e38v/vRP/zTW19eH3gHy448/vtP2xVarFZubm9Htdm89BuPX7/ej3W4PrbFtFQAAAMar1+tdez2eRokEYJVKJVZXV2N7ezu2t7eH1m5ubsbm5uadXm8wGEQmk7nTGIzXKLdlzWazE+oGAAAA5kM2m418Pj+0ptPpRL/fn1BHk5FIAPbxxx9Hs9mMwWBwbe0oNcyeWb2tLAAAAMyyUY4bKhQKqVsllkgA9uzZs2i1Wqersj7/+c/f2xbFTCYjRGMqVavV6PV6M73Sbdbfw6z3H5GO9zDrZv2fwaz3HzH772HW+0+DWf9nMOv9R8z+e5j1/tMgDf8MZv09zHr/Eel4D1wtM0ggHXr06FF8+OGHMRgMolwuxwcffBAff/xxNBqN+OCDDyIiotvtRr1ej1KpFMVi8dav1Wq1otlsRiaTiU8//XRcb4FbOkmR8/n8nVeAjXMsIBnmMcw+8xjSwVyG2ed6e7hEVoC1Wq2IiNjY2Ijf/u3fjohXq8C+9rWvxde+9rXTunq9Ht/61rfiH/2jf3Sn12s0GvGzP/uzdxoDAAAAgNm0kMSLdrvdWF9fPw2/7lulUom33nprIq8FAAAAwHRJJACLeLX6K82vBwAAAMB0SCwA+/KXvzzR13v69OlEXw8AAACA6ZBIAFYsFuM//If/MNHX7PV6E309AAAAAKZDIgHY6upq/OZv/uZEX3NtbW2irwcAAADAdEgkAFtfX4+9vb34N//m30zsNZ8/fz6x1wIAAABgejxI4kWLxWJ87WtfOw3CVldXo1KpxMOHDyObzZ6r/fjjj2+9ffHFixfR7XZjc3Mzut3uGDpnmlSr1ej1eq/9OwPMDvMYZp95DOlgLsPsM4+HywwGg0FSL14ul+PDDz+MTCZz6c8Hg8GVP7uJk3E+/fTTO4/F3RQKhWi325HP5+P4+DjpdgAAAIAL0njtnthdICMi/vAP/zC+9rWvxWAwuPQrIq782U2+AAAAAJhfiQZgn//852Nvby9++MMfxuPHj+/lNcaxggwAAACA2ZXIGWAXVSqVqFQq8fHHH0ej0YhWqxVHR0dRr9ejVCrFo0ePbjzmixcvIiKi1WpFs9kcd8sAAAAAzIhEzwC7zsLCQtTr9fhH/+gf3WmcZrMZX/nKV5wBNgVO9hEvLCzE0tLS0NpqtRrVanVCnQEAAED61Wq1qNVqQ2s6nU70+/1UnQE2FSvA7lupVIq33nor6TY4o9/vR7vdHlpz27t/AgAAAJfr9XrXXo+n0VQHYKurq1EsFscy1sbGxljGYTxGWQHm1q0AAAAwXtlsNvL5/NCakxVgaTLVWyBJnzTeShUAAADSJI3X7oneBXKS/uRP/iTpFgAAAABIwNwEYGtra0m3MLNarVasrKwk3QYAAADArcxNANZqtZJuYep0u93IZDLXfi0vL4/tLDYAAIBRDAYRn/aHfznQBxjVVB+CPw69Xi82Nzej2+0m3crUqdfrI9dubW3dYyfAfRsMIvrX/AVxIRORyUymHwCA6/QHEQ9+fXjNj38j4g1/fwFGkEgA9tFHH8WTJ0+i1WrFxsZG/OZv/uZrNY8ePYqPPvroTq9zEnoNBoPIuKp7zbNnz0aqq1QqVoDBjPMXSAAAYJ4lEoCtra1Fs9mMiIjt7e149OhR/P2///fP1ZTL5dMaxq9er0e3243Nzc1rz/d69OjRhLoCkvS9DyO+UU66CwAAgPFLJABrNpuRyWRi8F82bF92Pte3vvWtePfdd19buTUYcZP32eeN+px5sr29HcViMba3t5NuBZiA7314fc039yPeWIj4pbfuvx8AAIBJSiQAe/r0abz77runj1dXV1+reeuttyKXy8XHH38cg8EgcrlcPHz4MHK53Eiv0e1248WLF87+usT+/n60Wq3Y3d1NuhVgAj7+JOJXfm+02m99P+Krfyci++a9tgQAMBZWsAOjSiQA293djZWVlXj+/HlsbGzE3/pbf+vSuqdPn8Zv/dZvRbPZjC9/+cu3fr2tra34rd/6rVs/P22ePXsWuVwunjx5knQrwAT8TjPiz/9qtNo/+8uI7zYjfvWn77cnAIDrWMEOjFNmMMX7Az/88MN48uRJ/PEf//Gdx3r48GG8ePFiDF3NtmazGeXyX/+KpFgsRqVSiZWVlUtX4o1boVCIdrsd+Xw+jo+P7/31gIif/bcRP7zBf0Z/9r+K+IP//v76AQC4zsefROR/c7Rf4v3kZyPa71jBDuOUxmv3haQbGOatt96Kz3/+82MZy10MX9na2jr3uNVqRb1ej7W1tchkMuduUACkw8u/uN96AIBxu80KdoBhpjoAi4h4//33xzLO2TPH5lWr1YpGozG0Zn9/P8rlcmxsbEyoK+C+Lf7E/dYDAIzb7//oZvU/uGE9MH+mPgAbxwqwX/7lX4633rIpvFgsxu7ubmxvb8f6+vrQVXH1ev3cVklgdn31Szer/7kb1gMAjJsV7MC4TX0ANg71ej3+5E/+JOk2psL6+npsbm7G7u5uHB0dxcuXL2N7e/vSu2s2m81YWVmZfJPAWH29FPG5z4xW+5OfjfhG6X77AQC4jhXswLglchfISXr//fdjMBjEv/t3/y7+yT/5J0m3M3VyuVxsbm7G5uZm7O/vx9OnT6Pb7Z7+vNFoxM7OTmxubo71dTudThQKhTuPU61Wo1qtjqEjSK/Pvxnx7Z9/dZek63znFxwgCwAk76tfutlNfKx
  143. "text/plain": [
  144. "<Figure size 1200x900 with 1 Axes>"
  145. ]
  146. },
  147. "metadata": {},
  148. "output_type": "display_data"
  149. }
  150. ],
  151. "source": [
  152. "array = {\"z_mag\": zmag, \"z_mag_pred\": z_mag_xEndT, \"diff\": zmag - z_mag_xEndT}\n",
  153. "df = pd.DataFrame(array)\n",
  154. "sns.regplot(data=df, x=\"z_mag\", y=\"diff\", x_bins=30, fit_reg=False)\n",
  155. "plt.show()"
  156. ]
  157. },
  158. {
  159. "cell_type": "code",
  160. "execution_count": null,
  161. "metadata": {},
  162. "outputs": [],
  163. "source": []
  164. },
  165. {
  166. "cell_type": "code",
  167. "execution_count": null,
  168. "metadata": {},
  169. "outputs": [],
  170. "source": []
  171. },
  172. {
  173. "cell_type": "code",
  174. "execution_count": null,
  175. "metadata": {},
  176. "outputs": [],
  177. "source": []
  178. }
  179. ],
  180. "metadata": {
  181. "kernelspec": {
  182. "display_name": "tuner",
  183. "language": "python",
  184. "name": "python3"
  185. },
  186. "language_info": {
  187. "codemirror_mode": {
  188. "name": "ipython",
  189. "version": 3
  190. },
  191. "file_extension": ".py",
  192. "mimetype": "text/x-python",
  193. "name": "python",
  194. "nbconvert_exporter": "python",
  195. "pygments_lexer": "ipython3",
  196. "version": "3.10.12"
  197. }
  198. },
  199. "nbformat": 4,
  200. "nbformat_minor": 2
  201. }