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.

1170 lines
548 KiB

8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 1,
  6. "metadata": {},
  7. "outputs": [],
  8. "source": [
  9. "\n",
  10. "import uproot\t\n",
  11. "import numpy as np\n",
  12. "import matplotlib.pyplot as plt\n",
  13. "from matplotlib import colormaps\n",
  14. "from mpl_toolkits import mplot3d\n",
  15. "import awkward as ak\n",
  16. "from scipy.optimize import curve_fit\n",
  17. "from scipy import stats\n",
  18. "from utils.fit_linear_regression_model import fit_linear_regression_model\n",
  19. "import sklearn\n",
  20. "import seaborn as sns\n",
  21. "import pandas as pd\n",
  22. "import mplhep\n",
  23. "mplhep.style.use([\"LHCbTex2\"])\n",
  24. "\n",
  25. "plt.rcParams[\"savefig.dpi\"] = 600\n",
  26. "%matplotlib inline"
  27. ]
  28. },
  29. {
  30. "cell_type": "code",
  31. "execution_count": 2,
  32. "metadata": {},
  33. "outputs": [],
  34. "source": [
  35. "def round(n, k):\n",
  36. " # function to round number 'n' up/down to nearest 'k'\n",
  37. " # use positive k to round up\n",
  38. " # use negative k to round down\n",
  39. "\n",
  40. " return n - n % k"
  41. ]
  42. },
  43. {
  44. "cell_type": "code",
  45. "execution_count": 3,
  46. "metadata": {},
  47. "outputs": [
  48. {
  49. "name": "stdout",
  50. "output_type": "stream",
  51. "text": [
  52. "40402 10099\n",
  53. "48290\n"
  54. ]
  55. }
  56. ],
  57. "source": [
  58. "file = uproot.open(\n",
  59. " \"/work/cetin/Projektpraktikum/tracking_losses_ntuple_B_zmag.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\"\n",
  60. " # \"/work/cetin/LHCb/lb-stack/data/tracking_losses_ntuple_test_endVelo2endT.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\"\n",
  61. ")\n",
  62. "\n",
  63. "# selektiere nur elektronen von B->K*ee\n",
  64. "allcolumns = file.arrays()\n",
  65. "found = allcolumns[(allcolumns.isElectron) & (~allcolumns.lost) &\n",
  66. " (allcolumns.fromB)] # B: 9056\n",
  67. "lost = allcolumns[(allcolumns.isElectron) & (allcolumns.lost) &\n",
  68. " (allcolumns.fromB)] # B: 1466\n",
  69. "\n",
  70. "electrons = allcolumns[(allcolumns.isElectron)\n",
  71. " & (allcolumns.fromB)\n",
  72. " & (allcolumns.eta < 5.0)\n",
  73. " & (allcolumns.eta > 2.0)\n",
  74. " # & (np.abs(allcolumns.phi) < 3.142)\n",
  75. " ]\n",
  76. "\n",
  77. "print(ak.num(found, axis=0), ak.num(lost, axis=0))\n",
  78. "print(ak.num(electrons, axis=0))\n",
  79. "# ak.count(found, axis=None)"
  80. ]
  81. },
  82. {
  83. "cell_type": "code",
  84. "execution_count": 4,
  85. "metadata": {},
  86. "outputs": [
  87. {
  88. "name": "stdout",
  89. "output_type": "stream",
  90. "text": [
  91. "stretch factor: 0.24996287312509283\n"
  92. ]
  93. }
  94. ],
  95. "source": [
  96. "rad_length_found = ak.to_numpy(found[\"rad_length_frac\"])\n",
  97. "eta_found = ak.to_numpy(found[\"eta\"])\n",
  98. "phi_found = ak.to_numpy(found[\"phi\"])\n",
  99. "rad_length_lost = ak.to_numpy(lost[\"rad_length_frac\"])\n",
  100. "eta_lost = ak.to_numpy(lost[\"eta\"])\n",
  101. "phi_lost = ak.to_numpy(lost[\"phi\"])\n",
  102. "\n",
  103. "eta_a = ak.to_numpy(electrons[\"eta\"])\n",
  104. "phi_a = ak.to_numpy(electrons[\"phi\"])\n",
  105. "rad_length_frac_a = ak.to_numpy(electrons[\"rad_length_frac\"])\n",
  106. "\n",
  107. "stretch_factor = ak.num(eta_lost, axis=0) / ak.num(eta_found, axis=0)\n",
  108. "print(\"stretch factor: \", stretch_factor)"
  109. ]
  110. },
  111. {
  112. "cell_type": "code",
  113. "execution_count": 5,
  114. "metadata": {},
  115. "outputs": [
  116. {
  117. "data": {
  118. "image/png": "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
  119. "text/plain": [
  120. "<Figure size 1200x900 with 1 Axes>"
  121. ]
  122. },
  123. "metadata": {},
  124. "output_type": "display_data"
  125. }
  126. ],
  127. "source": [
  128. "plt.hist(\n",
  129. " rad_length_lost,\n",
  130. " bins=100,\n",
  131. " density=True,\n",
  132. " alpha=0.5,\n",
  133. " color=\"#F05342\",\n",
  134. " histtype=\"bar\",\n",
  135. " label=\"lost\",\n",
  136. " range=[0, 1],\n",
  137. ")\n",
  138. "plt.hist(\n",
  139. " rad_length_found,\n",
  140. " bins=100,\n",
  141. " density=True,\n",
  142. " alpha=0.5,\n",
  143. " color=\"#107E7D\",\n",
  144. " histtype=\"bar\",\n",
  145. " label=\"found\",\n",
  146. " range=[0, 1],\n",
  147. ")\n",
  148. "plt.xlim(-0.05, 1)\n",
  149. "# plt.yscale(\"log\")\n",
  150. "# plt.title(\"radiation length fraction endVelo2endUT\")\n",
  151. "plt.xlabel(f\"$x/X_0$\")\n",
  152. "plt.ylabel(\"Number of Tracks (normalised)\")\n",
  153. "plt.legend(loc=\"best\")\n",
  154. "mplhep.lhcb.text(\"Simulation\", loc=0)\n",
  155. "plt.show()\n",
  156. "# plt.savefig(\n",
  157. "# \"/work/cetin/Projektpraktikum/thesis/rad_length_frac_lost_found_endVelo2endUT.pdf\",\n",
  158. "# format=\"PDF\")"
  159. ]
  160. },
  161. {
  162. "cell_type": "code",
  163. "execution_count": 6,
  164. "metadata": {},
  165. "outputs": [
  166. {
  167. "data": {
  168. "image/png": "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
  169. "text/plain": [
  170. "<Figure size 2000x800 with 3 Axes>"
  171. ]
  172. },
  173. "metadata": {},
  174. "output_type": "display_data"
  175. }
  176. ],
  177. "source": [
  178. "nbins = 100\n",
  179. "vmax = 80\n",
  180. "\n",
  181. "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(20, 8))\n",
  182. "\n",
  183. "a0 = ax0.hist2d(\n",
  184. " rad_length_found,\n",
  185. " eta_found,\n",
  186. " density=False,\n",
  187. " bins=nbins,\n",
  188. " cmap=plt.cm.jet,\n",
  189. " cmin=1,\n",
  190. " vmax=vmax,\n",
  191. " range=[[0, 0.6], [2, 5]],\n",
  192. ")\n",
  193. "ax0.set_xlabel(f\"$x/X_0$\")\n",
  194. "ax0.set_ylabel(f\"$\\eta$\")\n",
  195. "ax0.set_title(f\"found $\\eta$ rad_length_frac\")\n",
  196. "\n",
  197. "a1 = ax1.hist2d(\n",
  198. " rad_length_lost,\n",
  199. " eta_lost,\n",
  200. " density=False,\n",
  201. " bins=nbins,\n",
  202. " cmap=plt.cm.jet,\n",
  203. " cmin=1,\n",
  204. " vmax=vmax * stretch_factor,\n",
  205. " range=[[0, 0.6], [2, 5]],\n",
  206. ")\n",
  207. "ax1.set_xlabel(f\"$x/X_0$\")\n",
  208. "ax1.set_ylabel(f\"$\\eta$\")\n",
  209. "ax1.set_title(f\"lost $\\eta$ rad_length_frac\")\n",
  210. "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  211. "\n",
  212. "plt.suptitle(\"radiation length fraction and eta endVelo\")\n",
  213. "plt.colorbar(a0[3], ax=ax1)\n",
  214. "\n",
  215. "plt.show()"
  216. ]
  217. },
  218. {
  219. "cell_type": "code",
  220. "execution_count": 7,
  221. "metadata": {},
  222. "outputs": [
  223. {
  224. "name": "stdout",
  225. "output_type": "stream",
  226. "text": [
  227. "Parameterisation for rad_length_frac:\n",
  228. "intercept= 0.0\n",
  229. "coef= {'1': 0.19432666451166924, 'x': -0.00010136532791187516, 'y': -0.00022209404990607013, 'tx': 0.058480207541052064, 'ty': 0.18599542917589618, 'qop': -17.657405901936546, 'x^2': 1.2271024867047469e-05, 'x y': 5.376824972059055e-08, 'x tx': -0.025941371835257743, 'x ty': 0.014328015524776564, 'x qop': -0.38410998543244235, 'y^2': -1.8261507968709735e-05, 'y tx': -0.014951077113227147, 'y ty': 0.02154311538810164, 'y qop': -0.008987663050567057, 'tx^2': 9.180854607357592, 'tx ty': 0.1873064867954838, 'tx qop': -0.47120712928737807, 'ty^2': -6.787398610853974, 'ty qop': -0.05031041352613623, 'qop^2': 0.24778641944197533, 'x^3': -5.992321693190818e-09, 'x^2 y': -2.649404482539432e-07, 'x^2 tx': 5.42176741002125e-06, 'x^2 ty': 0.0020253771536145383, 'x^2 qop': 0.003955288970107154, 'x y^2': 2.8906882704270233e-09, 'x y tx': -0.0016493773782229844, 'x y ty': 0.0005067592007986898, 'x y qop': -0.0031813438496783404, 'x tx^2': 0.0022653308811514867, 'x tx ty': -1.5366360302916284, 'x tx qop': -0.47946313010450653, 'x ty^2': -0.16776305178984158, 'x ty qop': 2.1889500302073115, 'x qop^2': 0.008745243979922932, 'y^3': 1.4363120470761714e-08, 'y^2 tx': -0.0005062978553841023, 'y^2 ty': 1.4165440283044409e-05, 'y^2 qop': -0.005787147937546765, 'y tx^2': 1.404047645962725, 'y tx ty': 0.1643910546131908, 'y tx qop': 2.0452379823825813, 'y ty^2': -0.02140660574730952, 'y ty qop': 4.596387657867597, 'y qop^2': -0.00994088354226498, 'tx^3': -0.1303976515212055, 'tx^2 ty': -0.01339610187978276, 'tx^2 qop': -0.0009383144690666937, 'tx ty^2': 0.010330807276347866, 'tx ty qop': 0.00564141621903312, 'tx qop^2': 1.1663926820802422e-05, 'ty^3': 0.00629773549670367, 'ty^2 qop': 0.012052455601588194, 'ty qop^2': -1.60166284721317e-05, 'qop^3': -1.5639205966369518e-06, 'x^4': 1.4244960766518489e-09, 'x^3 y': -3.1096076824610464e-09, 'x^3 tx': -3.587531603760352e-06, 'x^3 ty': 2.4713133050052738e-05, 'x^3 qop': 2.5845963699160437e-05, 'x^2 y^2': -2.0323240867980985e-09, 'x^2 y tx': -1.781414931473213e-05, 'x^2 y ty': -1.0125741814137612e-05, 'x^2 y qop': 0.00010504795400130865, 'x^2 tx^2': 0.00318540624554603, 'x^2 tx ty': -0.019979832566411563, 'x^2 tx qop': 0.006687084675785277, 'x^2 ty^2': 0.01525871952521068, 'x^2 ty qop': 0.5999059816243137, 'x^2 qop^2': 8.117293800523118, 'x y^3': 7.45386197209541e-10, 'x y^2 tx': 1.539536253053475e-05, 'x y^2 ty': -1.089334137566178e-05, 'x y^2 qop': -1.95550966909791e-05, 'x y tx^2': 0.015033712066153922, 'x y tx ty': -0.02448056876178019, 'x y tx qop': -0.6716914089728931, 'x y ty^2': 0.007182752502229531, 'x y ty qop': -0.18936713869537714, 'x y qop^2': 3.611377836849899, 'x tx^3': -0.9115227647899486, 'x tx^2 ty': 0.8829467327098821, 'x tx^2 qop': 0.2695607767961495, 'x tx ty^2': 0.6012451073716732, 'x tx ty qop': -0.00930712726835479, 'x tx qop^2': 0.009680202136377838, 'x ty^3': -0.06079594416933904, 'x ty^2 qop': 0.04029084967629493, 'x ty qop^2': 0.004774793771381167, 'x qop^3': -4.554461348017879e-05, 'y^4': 4.04032363121587e-12, 'y^3 tx': 8.925743423537913e-06, 'y^3 ty': -1.0182095510069544e-06, 'y^3 qop': -2.928516988854517e-05, 'y^2 tx^2': 0.004743417924369025, 'y^2 tx ty': -0.0055290127765494496, 'y^2 tx qop': 0.2133121554871387, 'y^2 ty^2': 0.0017685009285896116, 'y^2 ty qop': 0.020383665461783013, 'y^2 qop^2': -0.90657292007639, 'y tx^3': 0.27175992018246475, 'y tx^2 ty': 0.6761073293647273, 'y tx^2 qop': -0.01248506771745212, 'y tx ty^2': -0.39076013367696105, 'y tx ty qop': 0.04349449144257623, 'y tx qop^2': 0.004752914013263597, 'y ty^3': -0.729116504589348, 'y ty^2 qop': -0.015043560943011547, 'y ty qop^2': -0.001547809754472937, 'y qop^3': -1.316621299355546e-05, 'tx^4': -0.003228436324482351, 'tx^3 ty': 0.0044775047770867545, 'tx^3 qop': 0.001098230908109032, 'tx^2 ty^2': 0.0029303145639830285, 'tx^2 ty qop': -4.337425914757845e-05, 'tx^2 qop^2': 1.134299372765626e-05, 'tx ty^3': -0.0014086661449565522, 'tx ty^2 qop': 0.0001660768862220596, 'tx ty qop^2': 6.3521706353330705e-06, 'tx qop^3': -5.1281203369915226e-08, 'ty^4': -0.0071021220988862245, 'ty^3 qop': -6.7134108016768
  230. "r2 score= 0.04993524171391073\n",
  231. "RMSE = 0.12351226258714283\n",
  232. "\n"
  233. ]
  234. },
  235. {
  236. "data": {
  237. "image/png": "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
  238. "text/plain": [
  239. "<Figure size 1200x900 with 2 Axes>"
  240. ]
  241. },
  242. "metadata": {},
  243. "output_type": "display_data"
  244. }
  245. ],
  246. "source": [
  247. "rad_length_frac = found[\"rad_length_frac\"]\n",
  248. "# @ z = 9400.mm or 770.mm\n",
  249. "state = 1\n",
  250. "\n",
  251. "if state == 1:\n",
  252. " slopex = found[\"ideal_state_770_tx\"]\n",
  253. " slopey = found[\"ideal_state_770_ty\"]\n",
  254. " x = found[\"ideal_state_770_x\"]\n",
  255. " y = found[\"ideal_state_770_y\"]\n",
  256. " qop = found[\"ideal_state_770_qop\"]\n",
  257. "elif state == 2:\n",
  258. " slopex = found[\"ideal_state_9410_tx\"]\n",
  259. " slopey = found[\"ideal_state_9410_ty\"]\n",
  260. " x = found[\"ideal_state_9410_x\"]\n",
  261. " y = found[\"ideal_state_9410_y\"]\n",
  262. " qop = found[\"ideal_state_9410_qop\"]\n",
  263. "\n",
  264. "data = ak.zip({\n",
  265. " \"rad_length_frac\": rad_length_frac,\n",
  266. " \"x\": x,\n",
  267. " \"y\": y,\n",
  268. " \"tx\": slopex,\n",
  269. " \"ty\": slopey,\n",
  270. " \"qop\": qop,\n",
  271. "})\n",
  272. "lin_reg, features, xx0_test, xx0_predicted = fit_linear_regression_model(\n",
  273. " data,\n",
  274. " \"rad_length_frac\",\n",
  275. " [\"x\", \"y\", \"tx\", \"ty\", \"qop\"],\n",
  276. " 5,\n",
  277. " include_bias=True,\n",
  278. ")\n",
  279. "\n",
  280. "nbins = 100\n",
  281. "vmax = 100\n",
  282. "\n",
  283. "a0 = plt.hist2d(\n",
  284. " xx0_test,\n",
  285. " xx0_predicted,\n",
  286. " density=False,\n",
  287. " bins=nbins,\n",
  288. " cmap=plt.cm.jet,\n",
  289. " cmin=1,\n",
  290. " vmax=vmax,\n",
  291. " range=[[0, 0.5], [0, 0.5]],\n",
  292. ")\n",
  293. "plt.plot([0, 0.5], [0, 0.5], marker=\"\", alpha=0.8)\n",
  294. "plt.xlabel(f\"True $x/X_0$\")\n",
  295. "plt.ylabel(f\"Predicted $x/X_0$\")\n",
  296. "plt.title(f\"found rad_length_frac\")\n",
  297. "\n",
  298. "plt.colorbar(a0[3])\n",
  299. "plt.show()"
  300. ]
  301. },
  302. {
  303. "cell_type": "code",
  304. "execution_count": 8,
  305. "metadata": {},
  306. "outputs": [
  307. {
  308. "data": {
  309. "image/png": "iVBORw0KGgoAAAANSUhEUgAABWYAAAJpCAYAAAAuQevcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADFN0lEQVR4nOz9f5Dj933feb4wQ9mWJXajm7ZTnektsb8g4/hyOXGAHrk22dpEbECSk81VJAI9rKvbq7tIDYj27m1V0wTY3q2I8uY4BEh2beUqMoERsz+zp26A9Do/HGWAprznbPbiaYDM7jrJRsR3xrszaUc2u7/TkmzJFvt7f7QA4gug8fML4Avg+ahCTX+B7/fzfQMDfPH5vvH5vj8+27ZtAQAAAAAAAADG5tKkAwAAAAAAAACAeUNiFgAAAAAAAADGjMQsAAAAAAAAAIwZiVkAAAAAAAAAGDMSswAAAAAAAAAwZiRmAQAAAAAAAGDMSMwCAAAAAAAAwJiRmAUAAAAAAACAMSMxCwAAAAAAAABjRmIWAAAAAAAAAMaMxCwAAAAAAAAAjBmJWQAAAAAAAAAYMxKzAAAAAAAAADBmJGYBAAAAAAAAYMxIzAIAAAAAAADAmJGYBQAAAAAAAIAxIzELAAAAAAAAAGNGYhYAAAAAAAAAxozELAAAAAAAAACMGYlZAAAAAAAAABgzErMAAAAAAAAAMGYkZgEAAAAAAABgzEjMAgAAAAAAAMCYkZgFAAAAAAAAgDEjMQsAAAAAAAAAY0ZiFgAAAAAAAADGjMQsAAAAAAAAAIwZiVkAAAAAAAAAGDMSswDgEaVSadIhAAAAYAzo9wFAf2b1uEliFpBUqVSUSCQUCATk8/m0tLSkUCikQqEw6dA8y7Is5XI5VSqVSYcyFqN4vqZpKpfLKRKJyOfzKRKJuNb2rDNNU5lMZtJhOHAcAQBMSrd+SqlU0tLSkgKBgOdObL0cm5vo9w3OC/0++nkfmJfP7LRr971Q+7/z+XwX3paWlno6PoVCoQvbCIVCrjyHuTlu2sCcSyaTtiQ7n8/b1WrVjsfjtqT6LZ1OTzpEz6hWq3Y6nbbD4XD99clms5MOa2RG9Xyr1aodDAZtv9/veK9xSO6sWCzayWTSNgzDc68XxxEAwLj1009p7HMYhjHmSDvzcmxuoN83GC/1++jnOc36Z3aa9fq9kM1mW45Hkuxisdj3Pmufj9r7oVqtuvI85um4OZvPCuhR7YCUTCYd90ej0foHPxwOTyg6b8nn83Y0GnV0jmY5MTuu59v4RTarXzRuyGazjg6Gl14vjiMAgHHrt5/SuJ7XEilejs1t9Pt646V+H/28VvP0mZ0m/X4vNB+PJNknJyd977dcLg+V2O1mHo6bs/msgB7VfoFpdwAJh8O2YRgjObhMu3lIzDYa5fMtFosz/0Xjpnw+77nXi+MIAGCSeumnFItF2zAM2zAMu1wujznCzrwcm9vo9/XHC/0++nmt5ukzO616PX9tHpE6yLlu7XMaDAaHCflC83DcpMYs5lahUJBlWZKk5eXllseLxaKq1arC4fCYI/M+wzAmHcJYjfL5tnvvzbNEItHxca+99ziOAAAmrZfvxnA4rGq1qmq1qmAwOIaoznX7XpcmF9sk0O9z8nq/bx77eXxmZ0Ovn510Ou1Yzmazfe9rb29PkrSzs9P3tr2Yh+MmiVnMrcaDjt/vn1wgACRJuVxOuVyu4zpe+6xyHAEAoL1evtcxv6ah3zdv/Tw+s/MnHo873tuVSqXvya4LhYL8fr+i0ajL0c0PErOYW6ZpTjoEAD9kmmZPv9B7DccRAABaTev3OsZjWt4f89TPm5b/E7gvHo87lm/cuNHztrVEfnMb6A+JWcytefqiBbzMsixFIpFJhzEQjiMAADhN8/c6Rm+a3h/z0s+bpv8TuK+5BEGhUOj5vV8bVU5SfzgkZgEAE2NZljY2Nuam4wsAwCzjex2d8P7wHv5P4Pf7W0a8NteebadW9iAcDk+8HvS0IzGLuWGapnw+X/3WKBAIOB5rfryRZVnKZDKKRCJaWlqSz+fT0tKSQqGQUqnUhV9quVxOoVCo634ikUjbeGqF59s9r0wmo0Ag4KgH07i/QCCgWCx2YRsXPcdQKKSlpSUtLS0pEokok8n0tH2/LMuqx1t7/UzTVCQSqcdfKpXabpvL5RyvWe3/op9Yx/18h2VZllKplON9EggElEqlum47ivdL4/a1z0QgEFAikbjw/006/zJfW1trqWPU+L4PBAI97d80TcdrUnsObncyhz2OTPq9Lp3/Ct54/AoEAopEIioUCn21AwDzYtLHbrf6KZVKRYlEoufv1n5jH+Z7vd/YBu2PNxpVn8ht9PvaP69R9PvmrZ/HZ7Z3Xvscun3+2vw8crlc11j6GS07zOs3CDfeb2NlA3OkXC7b5XLZLhaLtqT6LZvN1h+r3drJZrP1bdLptF0ul+1qtWrn83k7GAzWH4tGoxfGEI/HHfu+SDqddqx3cnJSf+zk5MROJpO2YRiOdcrlsn1ycuKIpfHm9/vtarXa8TXK5/O23++3JdnJZNIuFov152gYhm0YRv3x2ms3iJOTEzufz9vhcNgRY7VatcvlsmMfkmzDMFrirD2nfD5fv79cLtdfF8MwHK/bJJ/vRcrlck/vh5psNmv7/X47Go3a6XTaTqfTjtfQMIyW9+8o3y/VarW+fTqdtqvVql0sFh1t+v1+Ox6P28lksh7zycmJfXJyYpfL5Zb3eqfPYrVabXm9au+Fi24XfZ4H1e9xxCvv9XK5bAeDQdvv99vpdLr+Xm88rhmG0fX/HADmgVeO3cP2U8rlsh2Pxx3r+P3+rvscJPZ+v9cHic22h+uPj7JP1Av6fd7v981TP4/PbG+89jkc1flr83s4nU53XL+f//9+X79Ggxw3B32/TQqJWcytfr/Ak8lk14NlNBp1HGDafYE2f8lfpLkj0thWrRPUnORtPOg1fhk3HpjD4fCF+6wdxPx+/4WvSfOXyKCJymw2ayeTyZb2isWibRiGnUwmHa9nMBisb9v4Grb7wmg8eHc64I7z+V6kny+a2v93sVhseay5Q9X4Hh3V+8W27Xpno/n/4eTkpKUjclF8vX4mas+lcd1aZzaZTDq+dBufQ+N7x229HEe89F4PBoNtj0uN+++lgwUAs85Lx+5B+ynVarWeHOs1keJG7L18rw8Sm20P3x8fZZ+oF/T7pqvfNy/9PD6zF/Pa53CU56/N74NO/7e1OJLJZMc2B339GvVz3HQrZzNuJGYxt3r5oq1p/NWl24GtsVPS7qDaa2fk5OTEsd5FB4zmg2e7g17zL8vt2mo84HV6js0dpGETlc0H2uZfcvP5vB2Pxx33NR5ML/olr9trPKnn2ymOTu+HXr78ur33bNu994ttO0d/t9P8Xr/oy3GYDvpFIzyb23R71GxNP/uY1Hu98f/zov/L5ter3fsCAObRrPRTGk+AO51suxF7P9/r/cTmZn+8+XkM2yfqFf2+6er3zUs/j89s5/i98jkcx/lr8w8sjaO4G9WSv51G97r1+vV73HTr/TZOJGYxt/r5oq39gtXvpRrDfPH1mpht/HXtogOnbdsdY7LtDw6uvTxHNy/tb36e3S6ZsG1nJ+ai/TfG2O4LY1LPt1mvXzS1GDp9+TX/IttuXbfeL43/b51ew8YvvYu+lIfpoHd6PXp9rsPo5zgyqfd67fFu+6tdUuTmpV8AMO1mpZ/SeNLfa2J20Nj7TfL0Gpub/fHm5zFMn6gf9Pumq983L/08PrOd4/fK53Ac56/N/w/NpTds+4PjWLfR6W69fv0eN916v40Tk38BXTQWvu5ltsF4PC6/319f7mVGw3FojL252HWpVKoXIg+Hw13bWl5edi2uxteq1/3fvHlT6XRa+Xy+ZQbJdpoLl0/y+Q6i8T1oWVZ9BszmW/Nr2WkChm46vV8k6fDwsP53p8Lw0Wi0YzvD6vSZ7PYcxm0S7/XG9063/RWLRVWrVZ2cnDCzKgD80Lz1U4aNfVQm2R8fd3+Cft/FvNzvo5/nNO2fWa99Dsf1vdD8/2CaZstzqk36tbOzc2E
  310. "text/plain": [
  311. "<Figure size 1500x600 with 3 Axes>"
  312. ]
  313. },
  314. "metadata": {},
  315. "output_type": "display_data"
  316. }
  317. ],
  318. "source": [
  319. "nbins = 100\n",
  320. "vmax = 80\n",
  321. "\n",
  322. "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(15, 6))\n",
  323. "\n",
  324. "# ax0.set_aspect(\"equal\")\n",
  325. "\n",
  326. "a0 = ax0.hist2d(\n",
  327. " xx0_test,\n",
  328. " xx0_predicted,\n",
  329. " density=False,\n",
  330. " bins=nbins,\n",
  331. " cmap=plt.cm.jet,\n",
  332. " cmin=1,\n",
  333. " vmax=vmax,\n",
  334. " range=[[0, 0.5], [0, 0.5]],\n",
  335. ")\n",
  336. "ax0.plot([0, 0.5], [0, 0.5], marker=\"\", alpha=0.8)\n",
  337. "ax0.set_box_aspect(1)\n",
  338. "ax0.set_xlabel(f\"True $x/X_0$\")\n",
  339. "ax0.set_ylabel(f\"Predicted $x/X_0$\")\n",
  340. "ax0.set_title(f\"found rad_length_frac\")\n",
  341. "plt.colorbar(a0[3], ax=ax0)\n",
  342. "\n",
  343. "ax1.hist(\n",
  344. " xx0_test,\n",
  345. " bins=100,\n",
  346. " density=True,\n",
  347. " alpha=0.5,\n",
  348. " color=\"darkorange\",\n",
  349. " histtype=\"bar\",\n",
  350. " label=\"test\",\n",
  351. " range=[0, 0.5],\n",
  352. ")\n",
  353. "ax1.hist(\n",
  354. " xx0_predicted,\n",
  355. " bins=100,\n",
  356. " density=True,\n",
  357. " alpha=0.5,\n",
  358. " color=\"blue\",\n",
  359. " histtype=\"bar\",\n",
  360. " label=\"predicted\",\n",
  361. " range=[0, 0.5],\n",
  362. ")\n",
  363. "ax1.set_xlim(0, 0.5)\n",
  364. "ax1.set_title(\"radiation length fraction endVelo\")\n",
  365. "ax1.set_xlabel(f\"$x/X_0$\")\n",
  366. "ax1.set_ylabel(\"a.u.\")\n",
  367. "ax1.set_box_aspect(1)\n",
  368. "\n",
  369. "ax1.legend()\n",
  370. "\n",
  371. "# plt.gca().set_aspect(\"equal\")\n",
  372. "plt.show()"
  373. ]
  374. },
  375. {
  376. "cell_type": "code",
  377. "execution_count": 9,
  378. "metadata": {},
  379. "outputs": [
  380. {
  381. "data": {
  382. "image/png": "iVBORw0KGgoAAAANSUhEUgAABMIAAAOWCAYAAAANzz7PAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4V0lEQVR4nOz9TWxjaZsfdl/S04gzsUdDVb8JIEgG3KS9exc2WT2AZ/UgIvcBQlZnHzS1VxJyOqteuUwZo90bmOyZ/VRT+VgGQ7YxqzGQKjETILuE7AdwCQSSPCU+mhk7NjDiuyiLQ+qDoiSKHzq/HyAUWbrPORfJc5M8f93nPhvD4XAYAAAAAPDCbS67AAAAAABYBEEYAAAAAIkgCAMAAAAgEQRhAAAAACSCIAwAAACARBCEAQAAAJAIgjAAAAAAEkEQBgAAAEAiCMIAAAAASARBGAAAAACJIAgDAAAAIBEEYQAAAAAkgiAMAAAAgEQQhAEAAACQCIIwAAAAABJBEAYAAABAIgjCAAAAAEgEQRgAAAAAiSAIAwAAACARBGEAAAAAJIIgDAAAAIBEEIQBAAAAkAiCMAAAAAASQRAGAAAAQCIIwgAAAABIBEEYAAAAAIkgCAMAAAAgEQRhAAAAACSCIAwAWLh2u73sEgDWivdNgPkQhAGw9gaDQTQajeh0Orf+vt1ux/b2dmQymZU7kFjl2uap1+tFo9GIQqEQGxsbUSgUll3S2uj1enF0dLTUGjqdThwcHEQmk4mNjY3Y3t6OXC4XJycnS61rGZLSZ9fdbZ8LV6/dxsbGnT/b29szvT/lcrk715HL5ebyGLxvAjyPjeFwOFx2EQDwUL1eL05OTqLVao0ORuv1epTL5Rttt7e3YzAYREREOp2Obre7yFKnWuXa5qHX60WpVIperzd6nFd8Bblbu92OVqsVJycn0ev1ImJ5z1e1Wo2jo6NoNpuRzWajVqtFo9EY/b5Wq0WlUllKbcvw0vvsOpv1c6HRaMTBwcGN5VutVuTz+Qdt86p/RHzeH1qtVqTT6Uc+gs+8bwI8LyPCAFg7JycnUa1Wo16vzzQi49WrVwuo6nFWubZ5SKfTcXp6Gufn54kKS56i0WhErVaLo6OjUQi2zFqOjo6iUqlEsViMdDod9Xo9isXiqE2r1VpihYv30vvsunrI50K5XL71/ej169cP3u4333wzul2v158cgkV43wR4boIwANZOsViMZrM580iMq4OTdDodzWbzmat7mFWubd6c1jObcrkcrVZrJfaHarUaETdfu2azGfl8PtLp9KhNUiSpz66Th34u1Gq1SKVSE//3448/Pni7V2F1Npt98GiyWXjfBJg/QRgAa22Wv77n8/nodrvR7XYjm80uoKrPbjv15rpl1bYMRtJMum//mMfIkqc4OTkZnZZ122vXarWi2+0+y8H/suizL8OsfadWq03cr9frD97Wu3fvIiLiu+++e/Cys/C+CTB/gjAAeAaNRmNiHiUYN8v+cX20yqKNhwLLrmUR9NnkKZfLE/t2p9O586Irdzk5OYlUKjVxujAAq00QBgBz1uv1ZhpZQjKty/6x7PnJFmldXhPm7/pE+m/fvp152avg9LaLtACwugRhADBHg8HAnC7caZ32j6QEYev0mjB/109pHL9S632uRk0KUQHWiyAMAOZkMBjE/v5+YgIEHsb+sXq8JqRSqRsjuq7PHXabq9Mory4aAcD6EIQBMNVgMIhGoxG5XG50sNjr9aJQKMTGxkZkMpk7L1XfaDSiUChEJpOJjY2N2N7ejlwuF0dHRw/a/tHRUeRyudje3o7t7e0oFAoPWkfE54OWg4ODyGQyM7V/aO2dTie++uqrG/PLbGxsjH7u2vZDa7t6TgqFQmxvb0/UV61WZzqo7/V6cXR0FJlMZqLmq9f6qt5SqTSaMH0ZBoNBVKvV0etwVdcsVyp8rsd4tfzVc5/JZOLg4ODOfhDxtP3jtsc1/pxcPYanhjm9Xm+innHjz/9tv49Y/ntFxOfRPOP9IpPJRKFQiJOTkxtt9dnZrVo/nNfnwpXrj6PRaNxby0NGgz3l+XuMeexvAC/aEACuOT8/HzabzWE+nx9GxOin2+0OT09Ph6lUauL/0+n0xPLNZnMYEcNUKjVsNpuj/z89PR2m0+nRMufn51PraDabo21VKpVhq9UadrvdYbPZHKbT6WE6nZ6opV6vTyx/eno6LJfLE21SqdS923xM7efn58PT09NhrVabeG5OT08nfp5S23A4HNbr9VH7Wq02PD09HT0n2Wx29LtisXhj2fPz82GlUhk9jvEaz8/PJ5Yf/0mlUsNut3tvbfc5PT2dWO8sjzWVSg2LxeKwVqsNa7XaxD6ZTqcnntPnfozdbne0fK1WG3a73WGr1ZpYZyqVGpbL5WGlUhnVfH5+/uD942p715+vq/3zrp/r63ioqzpardbEeuv1+q21rsp7xenp6TCbzQ5TqdSwVquN3ivG+0s6nZ54jfXZ2axaP3zq58Jdru/DtVptavuHvP4Pff7GPeZ987H7G0BSCMIAuKFerw8rlcqNg5VWqzVMp9PDSqUyLBaLo//PZrOjZccPoG87kBj/Uj/ti/jVl/lUKnXnQcL1+sYPeLrd7iiMmPXAdR61Xw8QbvOY2obD4bBSqdx7sDj+ulwPEK6Cm3K5fON5uzpQGw8QxmvL5/NTa5vFQw7ormpstVo3fnc9uBh/Lp7zMV4d1F/fN87Pz28c8N9V3yz7x/hjGW97FRpVKpWJg9vxxzDeF59qloBtld4rstnsrYHZ+PZv62P67N1WrR8+9XNhmuv7wbTX9qqOSqUydZ2Pff7GPeR986n7G0BSCMIAuNP1L+DXR1Q0m81huVye+L/xL9l3/UX9vi/149uddhBzPSi4q+34Ace0g5t51P6QoOMhtY3/lf++A7vxUOaug8rrB3y3HahdH3301AOmWQ/oZjnIXPRjHD+gv8311/2ug9CnBGHX+99d63zqqLArD1nnst4rxl+/u16768/P9f1An51e/6r0w3l/Ltz3eCJiYpTiuKuwbdrotXk9fw9935zX/gbwkgnCALjT+fn5xBfw+04VGQ4nD27v+jI+/tf/2w4krg4yZjntZJZTYMYPsmYNwh5b+0MPqmet7Wq7Dz0V67YD/+uP466DveFweO96HmLWA7qr2qYdZF4faXJb23k9xvF+MO35Hz+4vOvg9ylB2LTnY9bH+hAPCcKW9V5x9fv7tnd1KtptI2X02en1r0o/nPfnwm2uvw7XT+UdDv/mfey+0Zfzev4e+r45r/0N4CUzWT4Ad0qlUhP38/n8vcv88MMPUavVotls3rgS122uT0jcbrdHEyrPsr1Xr17d22ZWT639uYxP3DzL1cnK5fLEazfLFdDuMr69RUywPP5YB4PB6Mps13+u75vTJqq/z32P8cOHD6Pb017zYrE4dT1PNe21X/TrdN0y3ivG95X7ttdqtaLb7cb5+flCrvC37n121frhoj4Xrr8OvV7vxmO6miT/u+++u3M9i37+lrm/AayjL5ZdAADr4/qX9rvaVCqVW393/epst2k2m6Pbi74k/VNrfy6tVmt0e9bnJJ/Pj66U95SD00Ubf/1zudzMy52enj5HObcaDAa39oWvv/56dHvR++74gf+vf/3rhW77Not+r8hms/e2X+Rrsu59dtX64SI/F7777ruJqznWarWJ8K3RaETEZPB93aKfv3Xf3wAWTRAGwLO6+ot6Op2e6S/541/IM5nMc5Z2r4fW/px1PNT1g6G7wptVczX6KpvNLjTcmub169cT9xuNxp0BzpXxUIzZPLS/jY/UWzXr3mdXrR8u8nOhXC5PBGHtdjt6vV6k0+lRCHbfCMZFP3/rvr8BLJpTIwF4Fp1OJwqFQtTr9SiXyzMHSZ8+fRrdXtSph9c9tvbnMv48zHrAc/1gcfx5XWXjpxOtilQqNXHq0Nu3b2+t7927dxHx+eB32mgRJj22v42/Bqu0v0Ssf59dtX64yM+FVCp1I+i66v9X/44HZbdZ9PO37vsbwKIJwgCYu4ODg8jlcpFOpx8898j4F/putzvnyu73lNq
  383. "text/plain": [
  384. "<Figure size 1200x900 with 1 Axes>"
  385. ]
  386. },
  387. "metadata": {},
  388. "output_type": "display_data"
  389. }
  390. ],
  391. "source": [
  392. "plt.hist(\n",
  393. " xx0_test,\n",
  394. " bins=100,\n",
  395. " density=True,\n",
  396. " alpha=0.5,\n",
  397. " color=\"darkorange\",\n",
  398. " histtype=\"bar\",\n",
  399. " label=\"test\",\n",
  400. " range=[0, 0.5],\n",
  401. ")\n",
  402. "plt.hist(\n",
  403. " xx0_predicted,\n",
  404. " bins=100,\n",
  405. " density=True,\n",
  406. " alpha=0.5,\n",
  407. " color=\"blue\",\n",
  408. " histtype=\"bar\",\n",
  409. " label=\"predicted\",\n",
  410. " range=[0, 0.5],\n",
  411. ")\n",
  412. "plt.xlim(0, 0.5)\n",
  413. "# plt.yscale(\"log\")\n",
  414. "plt.title(\"radiation length fraction endVelo\")\n",
  415. "plt.xlabel(f\"$x/X_0$\")\n",
  416. "plt.ylabel(\"a.u.\")\n",
  417. "\n",
  418. "plt.legend()\n",
  419. "plt.show()"
  420. ]
  421. },
  422. {
  423. "cell_type": "code",
  424. "execution_count": 10,
  425. "metadata": {},
  426. "outputs": [
  427. {
  428. "name": "stdout",
  429. "output_type": "stream",
  430. "text": [
  431. "Parameterisation for rad_length_frac:\n",
  432. "intercept= 0.0\n",
  433. "coef= {'1': 0.24562140630345797, 'x': -0.0006147519300623754, 'y': 0.00013149294035773212, 'tx': 0.40993139584024857, 'ty': -0.17613130993997955, 'qop': -2.431621847221756, 'x^2': -2.537929422256502e-05, 'x y': 1.6503609236837168e-05, 'x tx': 0.014114349319941343, 'x ty': -0.015914217992780068, 'x qop': -0.3138750804691517, 'y^2': 8.004082295422125e-06, 'y tx': -0.0007103518977325451, 'y ty': -0.012102735170731998, 'y qop': -0.01613366131755978, 'tx^2': -1.1805199392607937, 'tx ty': 2.630285174738731, 'tx qop': 0.2259863956524285, 'ty^2': -0.9000770143303645, 'ty qop': 0.035317808178541486, 'qop^2': 0.506257028947111, 'x^3': -1.054613771280784e-06, 'x^2 y': -7.542919321773425e-07, 'x^2 tx': 0.0016046817739745617, 'x^2 ty': 0.0041420285105903745, 'x^2 qop': 0.021289920901612722, 'x y^2': 1.6630958165414549e-06, 'x y tx': -0.0029322410866066016, 'x y ty': 0.00026646565396820643, 'x y qop': 0.008117926325135527, 'x tx^2': -0.6007987905052633, 'x tx ty': -2.98887506065023, 'x tx qop': -13.962516223136573, 'x ty^2': -0.8388571705095013, 'x ty qop': -3.036359977877559, 'x qop^2': 0.055324587199241985, 'y^3': -8.030979246897996e-08, 'y^2 tx': -0.002767856037518542, 'y^2 ty': 0.00010106006074174414, 'y^2 qop': 0.0087584836303898, 'y tx^2': 2.52086358169213, 'y tx ty': 1.771954217213756, 'y tx qop': -3.4960101511969945, 'y ty^2': -0.02778479572722497, 'y ty qop': -8.306825049361231, 'y qop^2': 0.011633837171348742, 'tx^3': -0.1376005395953692, 'tx^2 ty': 0.08788148993360365, 'tx^2 qop': -0.03627295634145932, 'tx ty^2': 0.03876102551307681, 'tx ty qop': -0.008986008881728739, 'tx qop^2': 9.888031370307247e-05, 'ty^3': -0.3359335900376418, 'ty^2 qop': -0.02333508540052829, 'ty qop^2': 9.573184641700597e-06, 'qop^3': -4.597612275351735e-06, 'x^4': -6.108581640518196e-09, 'x^3 y': -6.564809273967853e-08, 'x^3 tx': 1.5150502404637223e-05, 'x^3 ty': 3.104184179880676e-05, 'x^3 qop': 8.671096332828199e-05, 'x^2 y^2': -7.650740829062697e-09, 'x^2 y tx': 0.00011735105575993998, 'x^2 y ty': -3.2175113096499786e-05, 'x^2 y qop': 6.774919445144169e-05, 'x^2 tx^2': -0.011724689654149013, 'x^2 tx ty': -0.043137944250594654, 'x^2 tx qop': -0.0234816944437721, 'x^2 ty^2': -0.015910369617829878, 'x^2 ty qop': 0.47749147066068204, 'x^2 qop^2': 10.59413029512916, 'x y^3': 3.234245482541809e-08, 'x y^2 tx': 5.3043264426122505e-05, 'x y^2 ty': -5.8168920071072217e-05, 'x y^2 qop': -0.00018640913107006996, 'x y tx^2': -0.06797789037420698, 'x y tx ty': 0.044976962291121, 'x y tx qop': -0.5074481714386293, 'x y ty^2': 0.03709689469083238, 'x y ty qop': 0.42061549746065124, 'x y qop^2': 5.878761197856953, 'x tx^3': 2.928172660629093, 'x tx^2 ty': 15.518053547545511, 'x tx^2 qop': -0.4179045108625407, 'x tx ty^2': 2.863496001226073, 'x tx ty qop': 0.03316794782068423, 'x tx qop^2': 0.011365298564370092, 'x ty^3': -8.111988620415804, 'x ty^2 qop': -0.21644263264392571, 'x ty qop^2': 0.00843273298050687, 'x qop^3': -0.00016877332507871679, 'y^4': 6.023639254060242e-09, 'y^3 tx': -1.594750695611824e-05, 'y^3 ty': -1.437326358022517e-05, 'y^3 qop': -2.1442523502287515e-05, 'y^2 tx^2': -0.04753636763140216, 'y^2 tx ty': 0.018902432682699272, 'y^2 tx qop': -0.31014755455483073, 'y^2 ty^2': 0.011363729381750311, 'y^2 ty qop': 0.01681916414935703, 'y^2 qop^2': -5.242995516210874, 'y tx^3': 12.07113658017565, 'y tx^2 ty': 2.5063182953688687, 'y tx^2 qop': 0.05008258889078114, 'y tx ty^2': -5.840846904263012, 'y tx ty qop': -0.2222888950764648, 'y tx qop^2': 0.008403354774191822, 'y ty^3': -2.8576703684113554, 'y ty^2 qop': 0.156828601288708, 'y ty qop^2': -0.010489395507591974, 'y qop^3': 1.6753570524717795e-05, 'tx^4': -0.01910867380555672, 'tx^3 ty': 0.0837123623190646, 'tx^3 qop': -0.0014826028602247271, 'tx^2 ty^2': 0.0015368291104171875, 'tx^2 ty qop': 8.478961198550636e-05, 'tx^2 qop^2': 1.2316906385746789e-05, 'tx ty^3': -0.0271004544137963, 'tx ty^2 qop': -0.0008124467158542836, 'tx ty qop^2': 1.1953538675306295e-05, 'tx qop^3': -1.6561432689863052e-07, 'ty^4': -0.051346978654440316, 'ty^3 qop': 0.0005598437003601672, 'ty^2 qop^2': -1.806470433082
  434. "r2 score= 0.013501590753704495\n",
  435. "RMSE = 0.2590497099709809\n",
  436. "\n"
  437. ]
  438. },
  439. {
  440. "data": {
  441. "image/png": "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
  442. "text/plain": [
  443. "<Figure size 1200x900 with 2 Axes>"
  444. ]
  445. },
  446. "metadata": {},
  447. "output_type": "display_data"
  448. }
  449. ],
  450. "source": [
  451. "rad_length_frac = lost[\"rad_length_frac\"]\n",
  452. "# @ z = 9400.mm or 770.mm\n",
  453. "state = 1\n",
  454. "\n",
  455. "if state == 1:\n",
  456. " slopex = lost[\"ideal_state_770_tx\"]\n",
  457. " slopey = lost[\"ideal_state_770_ty\"]\n",
  458. " x = lost[\"ideal_state_770_x\"]\n",
  459. " y = lost[\"ideal_state_770_y\"]\n",
  460. " qop = lost[\"ideal_state_770_qop\"]\n",
  461. "elif state == 2:\n",
  462. " slopex = lost[\"ideal_state_9410_tx\"]\n",
  463. " slopey = lost[\"ideal_state_9410_ty\"]\n",
  464. " x = lost[\"ideal_state_9410_x\"]\n",
  465. " y = lost[\"ideal_state_9410_y\"]\n",
  466. " qop = lost[\"ideal_state_9410_qop\"]\n",
  467. "\n",
  468. "data = ak.zip({\n",
  469. " \"rad_length_frac\": rad_length_frac,\n",
  470. " \"x\": x,\n",
  471. " \"y\": y,\n",
  472. " \"tx\": slopex,\n",
  473. " \"ty\": slopey,\n",
  474. " \"qop\": qop,\n",
  475. "})\n",
  476. "lin_reg, features, xx0_test, xx0_predicted = fit_linear_regression_model(\n",
  477. " data,\n",
  478. " \"rad_length_frac\",\n",
  479. " [\"x\", \"y\", \"tx\", \"ty\", \"qop\"],\n",
  480. " 5,\n",
  481. " include_bias=True,\n",
  482. ")\n",
  483. "\n",
  484. "nbins = 100\n",
  485. "vmax = 50\n",
  486. "\n",
  487. "a0 = plt.hist2d(\n",
  488. " xx0_test,\n",
  489. " xx0_predicted,\n",
  490. " density=False,\n",
  491. " bins=nbins,\n",
  492. " cmap=plt.cm.jet,\n",
  493. " cmin=1,\n",
  494. " vmax=vmax * stretch_factor,\n",
  495. " range=[[-0.1, 1.0], [-0.1, 1.0]],\n",
  496. ")\n",
  497. "plt.plot([-0.1, 1.0], [-0.1, 1.0], marker=\"\", alpha=0.8)\n",
  498. "plt.xlabel(f\"True $x/X_0$\")\n",
  499. "plt.ylabel(f\"Predicted $x/X_0$\")\n",
  500. "plt.title(f\"lost rad_length_frac\")\n",
  501. "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  502. "\n",
  503. "plt.colorbar(a0[3])\n",
  504. "plt.show()"
  505. ]
  506. },
  507. {
  508. "cell_type": "code",
  509. "execution_count": null,
  510. "metadata": {},
  511. "outputs": [],
  512. "source": []
  513. },
  514. {
  515. "cell_type": "code",
  516. "execution_count": 11,
  517. "metadata": {},
  518. "outputs": [
  519. {
  520. "data": {
  521. "text/html": [
  522. "<div>\n",
  523. "<style scoped>\n",
  524. " .dataframe tbody tr th:only-of-type {\n",
  525. " vertical-align: middle;\n",
  526. " }\n",
  527. "\n",
  528. " .dataframe tbody tr th {\n",
  529. " vertical-align: top;\n",
  530. " }\n",
  531. "\n",
  532. " .dataframe thead th {\n",
  533. " text-align: right;\n",
  534. " }\n",
  535. "</style>\n",
  536. "<table border=\"1\" class=\"dataframe\">\n",
  537. " <thead>\n",
  538. " <tr style=\"text-align: right;\">\n",
  539. " <th></th>\n",
  540. " <th>phi</th>\n",
  541. " <th>eta</th>\n",
  542. " <th>rad_length_frac</th>\n",
  543. " </tr>\n",
  544. " </thead>\n",
  545. " <tbody>\n",
  546. " <tr>\n",
  547. " <th>0</th>\n",
  548. " <td>-87.0</td>\n",
  549. " <td>7.0</td>\n",
  550. " <td>0.1286</td>\n",
  551. " </tr>\n",
  552. " <tr>\n",
  553. " <th>1</th>\n",
  554. " <td>72.0</td>\n",
  555. " <td>5.6</td>\n",
  556. " <td>0.1478</td>\n",
  557. " </tr>\n",
  558. " <tr>\n",
  559. " <th>2</th>\n",
  560. " <td>55.0</td>\n",
  561. " <td>5.0</td>\n",
  562. " <td>0.1660</td>\n",
  563. " </tr>\n",
  564. " <tr>\n",
  565. " <th>3</th>\n",
  566. " <td>55.0</td>\n",
  567. " <td>5.0</td>\n",
  568. " <td>0.1660</td>\n",
  569. " </tr>\n",
  570. " <tr>\n",
  571. " <th>4</th>\n",
  572. " <td>11.0</td>\n",
  573. " <td>8.4</td>\n",
  574. " <td>0.1065</td>\n",
  575. " </tr>\n",
  576. " <tr>\n",
  577. " <th>...</th>\n",
  578. " <td>...</td>\n",
  579. " <td>...</td>\n",
  580. " <td>...</td>\n",
  581. " </tr>\n",
  582. " <tr>\n",
  583. " <th>48285</th>\n",
  584. " <td>-81.0</td>\n",
  585. " <td>7.7</td>\n",
  586. " <td>0.1921</td>\n",
  587. " </tr>\n",
  588. " <tr>\n",
  589. " <th>48286</th>\n",
  590. " <td>35.0</td>\n",
  591. " <td>7.6</td>\n",
  592. " <td>0.2407</td>\n",
  593. " </tr>\n",
  594. " <tr>\n",
  595. " <th>48287</th>\n",
  596. " <td>63.0</td>\n",
  597. " <td>7.2</td>\n",
  598. " <td>0.2418</td>\n",
  599. " </tr>\n",
  600. " <tr>\n",
  601. " <th>48288</th>\n",
  602. " <td>13.0</td>\n",
  603. " <td>6.2</td>\n",
  604. " <td>0.1719</td>\n",
  605. " </tr>\n",
  606. " <tr>\n",
  607. " <th>48289</th>\n",
  608. " <td>0.0</td>\n",
  609. " <td>4.8</td>\n",
  610. " <td>0.1334</td>\n",
  611. " </tr>\n",
  612. " </tbody>\n",
  613. "</table>\n",
  614. "<p>48290 rows × 3 columns</p>\n",
  615. "</div>"
  616. ],
  617. "text/plain": [
  618. " phi eta rad_length_frac\n",
  619. "0 -87.0 7.0 0.1286\n",
  620. "1 72.0 5.6 0.1478\n",
  621. "2 55.0 5.0 0.1660\n",
  622. "3 55.0 5.0 0.1660\n",
  623. "4 11.0 8.4 0.1065\n",
  624. "... ... ... ...\n",
  625. "48285 -81.0 7.7 0.1921\n",
  626. "48286 35.0 7.6 0.2407\n",
  627. "48287 63.0 7.2 0.2418\n",
  628. "48288 13.0 6.2 0.1719\n",
  629. "48289 0.0 4.8 0.1334\n",
  630. "\n",
  631. "[48290 rows x 3 columns]"
  632. ]
  633. },
  634. "execution_count": 11,
  635. "metadata": {},
  636. "output_type": "execute_result"
  637. }
  638. ],
  639. "source": [
  640. "df = pd.DataFrame({\n",
  641. " \"phi\": phi_a * 90.0 / np.pi,\n",
  642. " \"eta\": eta_a * 2.0,\n",
  643. " \"rad_length_frac\": rad_length_frac_a,\n",
  644. "})\n",
  645. "df = df.round({\"phi\": 0, \"eta\": 1, \"rad_length_frac\": 4})\n",
  646. "df"
  647. ]
  648. },
  649. {
  650. "cell_type": "code",
  651. "execution_count": 12,
  652. "metadata": {},
  653. "outputs": [],
  654. "source": [
  655. "df_pivoted = df.pivot_table(\n",
  656. " index=\"eta\",\n",
  657. " columns=\"phi\",\n",
  658. " values=\"rad_length_frac\",\n",
  659. " margins=False,\n",
  660. " # fill_value=0,\n",
  661. ")"
  662. ]
  663. },
  664. {
  665. "cell_type": "code",
  666. "execution_count": 13,
  667. "metadata": {},
  668. "outputs": [
  669. {
  670. "data": {
  671. "text/html": [
  672. "<div>\n",
  673. "<style scoped>\n",
  674. " .dataframe tbody tr th:only-of-type {\n",
  675. " vertical-align: middle;\n",
  676. " }\n",
  677. "\n",
  678. " .dataframe tbody tr th {\n",
  679. " vertical-align: top;\n",
  680. " }\n",
  681. "\n",
  682. " .dataframe thead th {\n",
  683. " text-align: right;\n",
  684. " }\n",
  685. "</style>\n",
  686. "<table border=\"1\" class=\"dataframe\">\n",
  687. " <thead>\n",
  688. " <tr style=\"text-align: right;\">\n",
  689. " <th>phi</th>\n",
  690. " <th>-90.0</th>\n",
  691. " <th>-89.0</th>\n",
  692. " <th>-88.0</th>\n",
  693. " <th>-87.0</th>\n",
  694. " <th>-86.0</th>\n",
  695. " <th>-85.0</th>\n",
  696. " <th>-84.0</th>\n",
  697. " <th>-83.0</th>\n",
  698. " <th>-82.0</th>\n",
  699. " <th>-81.0</th>\n",
  700. " <th>...</th>\n",
  701. " <th>81.0</th>\n",
  702. " <th>82.0</th>\n",
  703. " <th>83.0</th>\n",
  704. " <th>84.0</th>\n",
  705. " <th>85.0</th>\n",
  706. " <th>86.0</th>\n",
  707. " <th>87.0</th>\n",
  708. " <th>88.0</th>\n",
  709. " <th>89.0</th>\n",
  710. " <th>90.0</th>\n",
  711. " </tr>\n",
  712. " <tr>\n",
  713. " <th>eta</th>\n",
  714. " <th></th>\n",
  715. " <th></th>\n",
  716. " <th></th>\n",
  717. " <th></th>\n",
  718. " <th></th>\n",
  719. " <th></th>\n",
  720. " <th></th>\n",
  721. " <th></th>\n",
  722. " <th></th>\n",
  723. " <th></th>\n",
  724. " <th></th>\n",
  725. " <th></th>\n",
  726. " <th></th>\n",
  727. " <th></th>\n",
  728. " <th></th>\n",
  729. " <th></th>\n",
  730. " <th></th>\n",
  731. " <th></th>\n",
  732. " <th></th>\n",
  733. " <th></th>\n",
  734. " <th></th>\n",
  735. " </tr>\n",
  736. " </thead>\n",
  737. " <tbody>\n",
  738. " <tr>\n",
  739. " <th>4.0</th>\n",
  740. " <td>NaN</td>\n",
  741. " <td>0.137133</td>\n",
  742. " <td>0.140800</td>\n",
  743. " <td>0.137350</td>\n",
  744. " <td>0.155200</td>\n",
  745. " <td>0.160000</td>\n",
  746. " <td>0.146800</td>\n",
  747. " <td>0.146500</td>\n",
  748. " <td>0.164300</td>\n",
  749. " <td>0.177060</td>\n",
  750. " <td>...</td>\n",
  751. " <td>0.18345</td>\n",
  752. " <td>0.176550</td>\n",
  753. " <td>0.149900</td>\n",
  754. " <td>0.152733</td>\n",
  755. " <td>0.161000</td>\n",
  756. " <td>0.160900</td>\n",
  757. " <td>0.13870</td>\n",
  758. " <td>0.137400</td>\n",
  759. " <td>0.137200</td>\n",
  760. " <td>0.13425</td>\n",
  761. " </tr>\n",
  762. " <tr>\n",
  763. " <th>4.1</th>\n",
  764. " <td>0.1510</td>\n",
  765. " <td>0.137575</td>\n",
  766. " <td>0.141467</td>\n",
  767. " <td>0.137575</td>\n",
  768. " <td>0.152850</td>\n",
  769. " <td>0.160033</td>\n",
  770. " <td>0.176100</td>\n",
  771. " <td>0.149350</td>\n",
  772. " <td>0.173250</td>\n",
  773. " <td>0.173386</td>\n",
  774. " <td>...</td>\n",
  775. " <td>0.16720</td>\n",
  776. " <td>0.169650</td>\n",
  777. " <td>0.163200</td>\n",
  778. " <td>0.153900</td>\n",
  779. " <td>0.157467</td>\n",
  780. " <td>0.151300</td>\n",
  781. " <td>NaN</td>\n",
  782. " <td>0.136850</td>\n",
  783. " <td>0.138880</td>\n",
  784. " <td>0.13610</td>\n",
  785. " </tr>\n",
  786. " <tr>\n",
  787. " <th>4.2</th>\n",
  788. " <td>0.1322</td>\n",
  789. " <td>0.137800</td>\n",
  790. " <td>NaN</td>\n",
  791. " <td>0.135900</td>\n",
  792. " <td>0.141100</td>\n",
  793. " <td>0.165500</td>\n",
  794. " <td>0.149975</td>\n",
  795. " <td>0.149429</td>\n",
  796. " <td>0.152883</td>\n",
  797. " <td>0.174633</td>\n",
  798. " <td>...</td>\n",
  799. " <td>0.16582</td>\n",
  800. " <td>0.155200</td>\n",
  801. " <td>0.153533</td>\n",
  802. " <td>0.147900</td>\n",
  803. " <td>0.164650</td>\n",
  804. " <td>0.140775</td>\n",
  805. " <td>0.14170</td>\n",
  806. " <td>0.137314</td>\n",
  807. " <td>0.137133</td>\n",
  808. " <td>0.13620</td>\n",
  809. " </tr>\n",
  810. " <tr>\n",
  811. " <th>4.3</th>\n",
  812. " <td>NaN</td>\n",
  813. " <td>0.135900</td>\n",
  814. " <td>0.136300</td>\n",
  815. " <td>0.135900</td>\n",
  816. " <td>0.137788</td>\n",
  817. " <td>NaN</td>\n",
  818. " <td>0.153367</td>\n",
  819. " <td>0.145900</td>\n",
  820. " <td>0.146350</td>\n",
  821. " <td>0.158700</td>\n",
  822. " <td>...</td>\n",
  823. " <td>0.16390</td>\n",
  824. " <td>0.148220</td>\n",
  825. " <td>0.146367</td>\n",
  826. " <td>0.147600</td>\n",
  827. " <td>0.156067</td>\n",
  828. " <td>0.141640</td>\n",
  829. " <td>0.14135</td>\n",
  830. " <td>0.136250</td>\n",
  831. " <td>0.135740</td>\n",
  832. " <td>0.13870</td>\n",
  833. " </tr>\n",
  834. " <tr>\n",
  835. " <th>4.4</th>\n",
  836. " <td>0.1356</td>\n",
  837. " <td>0.136075</td>\n",
  838. " <td>0.139525</td>\n",
  839. " <td>0.137800</td>\n",
  840. " <td>0.138975</td>\n",
  841. " <td>0.163250</td>\n",
  842. " <td>0.153900</td>\n",
  843. " <td>0.149725</td>\n",
  844. " <td>0.147800</td>\n",
  845. " <td>0.156467</td>\n",
  846. " <td>...</td>\n",
  847. " <td>0.15555</td>\n",
  848. " <td>0.149933</td>\n",
  849. " <td>0.150256</td>\n",
  850. " <td>0.158500</td>\n",
  851. " <td>0.157440</td>\n",
  852. " <td>0.137333</td>\n",
  853. " <td>0.13620</td>\n",
  854. " <td>0.136820</td>\n",
  855. " <td>0.136467</td>\n",
  856. " <td>0.14150</td>\n",
  857. " </tr>\n",
  858. " <tr>\n",
  859. " <th>...</th>\n",
  860. " <td>...</td>\n",
  861. " <td>...</td>\n",
  862. " <td>...</td>\n",
  863. " <td>...</td>\n",
  864. " <td>...</td>\n",
  865. " <td>...</td>\n",
  866. " <td>...</td>\n",
  867. " <td>...</td>\n",
  868. " <td>...</td>\n",
  869. " <td>...</td>\n",
  870. " <td>...</td>\n",
  871. " <td>...</td>\n",
  872. " <td>...</td>\n",
  873. " <td>...</td>\n",
  874. " <td>...</td>\n",
  875. " <td>...</td>\n",
  876. " <td>...</td>\n",
  877. " <td>...</td>\n",
  878. " <td>...</td>\n",
  879. " <td>...</td>\n",
  880. " <td>...</td>\n",
  881. " </tr>\n",
  882. " <tr>\n",
  883. " <th>9.6</th>\n",
  884. " <td>NaN</td>\n",
  885. " <td>0.092700</td>\n",
  886. " <td>0.097750</td>\n",
  887. " <td>0.099525</td>\n",
  888. " <td>0.098250</td>\n",
  889. " <td>NaN</td>\n",
  890. " <td>0.092600</td>\n",
  891. " <td>0.097100</td>\n",
  892. " <td>NaN</td>\n",
  893. " <td>0.093400</td>\n",
  894. " <td>...</td>\n",
  895. " <td>NaN</td>\n",
  896. " <td>0.090000</td>\n",
  897. " <td>0.100500</td>\n",
  898. " <td>0.095100</td>\n",
  899. " <td>0.100500</td>\n",
  900. " <td>NaN</td>\n",
  901. " <td>0.09600</td>\n",
  902. " <td>0.091850</td>\n",
  903. " <td>0.094067</td>\n",
  904. " <td>NaN</td>\n",
  905. " </tr>\n",
  906. " <tr>\n",
  907. " <th>9.7</th>\n",
  908. " <td>NaN</td>\n",
  909. " <td>NaN</td>\n",
  910. " <td>NaN</td>\n",
  911. " <td>0.098700</td>\n",
  912. " <td>0.093400</td>\n",
  913. " <td>0.090750</td>\n",
  914. " <td>0.090000</td>\n",
  915. " <td>0.088100</td>\n",
  916. " <td>NaN</td>\n",
  917. " <td>NaN</td>\n",
  918. " <td>...</td>\n",
  919. " <td>0.09120</td>\n",
  920. " <td>NaN</td>\n",
  921. " <td>NaN</td>\n",
  922. " <td>0.093500</td>\n",
  923. " <td>0.096200</td>\n",
  924. " <td>0.097100</td>\n",
  925. " <td>NaN</td>\n",
  926. " <td>0.095400</td>\n",
  927. " <td>NaN</td>\n",
  928. " <td>NaN</td>\n",
  929. " </tr>\n",
  930. " <tr>\n",
  931. " <th>9.8</th>\n",
  932. " <td>0.0922</td>\n",
  933. " <td>0.092300</td>\n",
  934. " <td>0.096600</td>\n",
  935. " <td>0.089067</td>\n",
  936. " <td>0.092600</td>\n",
  937. " <td>NaN</td>\n",
  938. " <td>0.080200</td>\n",
  939. " <td>0.091950</td>\n",
  940. " <td>0.090867</td>\n",
  941. " <td>NaN</td>\n",
  942. " <td>...</td>\n",
  943. " <td>NaN</td>\n",
  944. " <td>0.076700</td>\n",
  945. " <td>NaN</td>\n",
  946. " <td>0.087750</td>\n",
  947. " <td>NaN</td>\n",
  948. " <td>NaN</td>\n",
  949. " <td>0.09200</td>\n",
  950. " <td>0.080300</td>\n",
  951. " <td>0.100300</td>\n",
  952. " <td>NaN</td>\n",
  953. " </tr>\n",
  954. " <tr>\n",
  955. " <th>9.9</th>\n",
  956. " <td>NaN</td>\n",
  957. " <td>0.090800</td>\n",
  958. " <td>0.084900</td>\n",
  959. " <td>0.076200</td>\n",
  960. " <td>NaN</td>\n",
  961. " <td>0.085500</td>\n",
  962. " <td>0.090000</td>\n",
  963. " <td>0.098400</td>\n",
  964. " <td>0.090000</td>\n",
  965. " <td>NaN</td>\n",
  966. " <td>...</td>\n",
  967. " <td>0.30180</td>\n",
  968. " <td>0.089000</td>\n",
  969. " <td>0.088900</td>\n",
  970. " <td>NaN</td>\n",
  971. " <td>0.090000</td>\n",
  972. " <td>NaN</td>\n",
  973. " <td>NaN</td>\n",
  974. " <td>0.081600</td>\n",
  975. " <td>0.088767</td>\n",
  976. " <td>NaN</td>\n",
  977. " </tr>\n",
  978. " <tr>\n",
  979. " <th>10.0</th>\n",
  980. " <td>NaN</td>\n",
  981. " <td>0.191400</td>\n",
  982. " <td>NaN</td>\n",
  983. " <td>0.119100</td>\n",
  984. " <td>NaN</td>\n",
  985. " <td>0.178500</td>\n",
  986. " <td>NaN</td>\n",
  987. " <td>NaN</td>\n",
  988. " <td>NaN</td>\n",
  989. " <td>NaN</td>\n",
  990. " <td>...</td>\n",
  991. " <td>NaN</td>\n",
  992. " <td>0.104250</td>\n",
  993. " <td>0.110900</td>\n",
  994. " <td>0.085500</td>\n",
  995. " <td>NaN</td>\n",
  996. " <td>NaN</td>\n",
  997. " <td>NaN</td>\n",
  998. " <td>NaN</td>\n",
  999. " <td>0.081500</td>\n",
  1000. " <td>NaN</td>\n",
  1001. " </tr>\n",
  1002. " </tbody>\n",
  1003. "</table>\n",
  1004. "<p>61 rows × 181 columns</p>\n",
  1005. "</div>"
  1006. ],
  1007. "text/plain": [
  1008. "phi -90.0 -89.0 -88.0 -87.0 -86.0 -85.0 -84.0 \\\n",
  1009. "eta \n",
  1010. "4.0 NaN 0.137133 0.140800 0.137350 0.155200 0.160000 0.146800 \n",
  1011. "4.1 0.1510 0.137575 0.141467 0.137575 0.152850 0.160033 0.176100 \n",
  1012. "4.2 0.1322 0.137800 NaN 0.135900 0.141100 0.165500 0.149975 \n",
  1013. "4.3 NaN 0.135900 0.136300 0.135900 0.137788 NaN 0.153367 \n",
  1014. "4.4 0.1356 0.136075 0.139525 0.137800 0.138975 0.163250 0.153900 \n",
  1015. "... ... ... ... ... ... ... ... \n",
  1016. "9.6 NaN 0.092700 0.097750 0.099525 0.098250 NaN 0.092600 \n",
  1017. "9.7 NaN NaN NaN 0.098700 0.093400 0.090750 0.090000 \n",
  1018. "9.8 0.0922 0.092300 0.096600 0.089067 0.092600 NaN 0.080200 \n",
  1019. "9.9 NaN 0.090800 0.084900 0.076200 NaN 0.085500 0.090000 \n",
  1020. "10.0 NaN 0.191400 NaN 0.119100 NaN 0.178500 NaN \n",
  1021. "\n",
  1022. "phi -83.0 -82.0 -81.0 ... 81.0 82.0 83.0 \\\n",
  1023. "eta ... \n",
  1024. "4.0 0.146500 0.164300 0.177060 ... 0.18345 0.176550 0.149900 \n",
  1025. "4.1 0.149350 0.173250 0.173386 ... 0.16720 0.169650 0.163200 \n",
  1026. "4.2 0.149429 0.152883 0.174633 ... 0.16582 0.155200 0.153533 \n",
  1027. "4.3 0.145900 0.146350 0.158700 ... 0.16390 0.148220 0.146367 \n",
  1028. "4.4 0.149725 0.147800 0.156467 ... 0.15555 0.149933 0.150256 \n",
  1029. "... ... ... ... ... ... ... ... \n",
  1030. "9.6 0.097100 NaN 0.093400 ... NaN 0.090000 0.100500 \n",
  1031. "9.7 0.088100 NaN NaN ... 0.09120 NaN NaN \n",
  1032. "9.8 0.091950 0.090867 NaN ... NaN 0.076700 NaN \n",
  1033. "9.9 0.098400 0.090000 NaN ... 0.30180 0.089000 0.088900 \n",
  1034. "10.0 NaN NaN NaN ... NaN 0.104250 0.110900 \n",
  1035. "\n",
  1036. "phi 84.0 85.0 86.0 87.0 88.0 89.0 90.0 \n",
  1037. "eta \n",
  1038. "4.0 0.152733 0.161000 0.160900 0.13870 0.137400 0.137200 0.13425 \n",
  1039. "4.1 0.153900 0.157467 0.151300 NaN 0.136850 0.138880 0.13610 \n",
  1040. "4.2 0.147900 0.164650 0.140775 0.14170 0.137314 0.137133 0.13620 \n",
  1041. "4.3 0.147600 0.156067 0.141640 0.14135 0.136250 0.135740 0.13870 \n",
  1042. "4.4 0.158500 0.157440 0.137333 0.13620 0.136820 0.136467 0.14150 \n",
  1043. "... ... ... ... ... ... ... ... \n",
  1044. "9.6 0.095100 0.100500 NaN 0.09600 0.091850 0.094067 NaN \n",
  1045. "9.7 0.093500 0.096200 0.097100 NaN 0.095400 NaN NaN \n",
  1046. "9.8 0.087750 NaN NaN 0.09200 0.080300 0.100300 NaN \n",
  1047. "9.9 NaN 0.090000 NaN NaN 0.081600 0.088767 NaN \n",
  1048. "10.0 0.085500 NaN NaN NaN NaN 0.081500 NaN \n",
  1049. "\n",
  1050. "[61 rows x 181 columns]"
  1051. ]
  1052. },
  1053. "execution_count": 13,
  1054. "metadata": {},
  1055. "output_type": "execute_result"
  1056. }
  1057. ],
  1058. "source": [
  1059. "df_pivoted"
  1060. ]
  1061. },
  1062. {
  1063. "cell_type": "code",
  1064. "execution_count": 30,
  1065. "metadata": {},
  1066. "outputs": [
  1067. {
  1068. "data": {
  1069. "image/png": "iVBORw0KGgoAAAANSUhEUgAABbAAAALOCAYAAAB4VzWEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXhbxbk/8K+X2E7i2LKzxyYkMmHfIiVQulDAMtDlttBYSfeNWi7t7YIp8k17ewPtpUZuCd2LnNL1dknk0r0UJKCFFgqxxL4mUjZnTyzZSZzEcazfH/lJleX3PZZk2Zad7+d5/EBeaebMOWfOnNFoNCcvGo1GQURERERERERERESUY/LHuwBERERERERERERERBIOYBMRERERERERERFRTuIANhERERERERERERHlJA5gExEREREREREREVFO4gA2EREREREREREREeUkDmATERERERERERERUU7iADYRERERERERERER5SQOYBMRERERERERERFRTuIANhERERERERERERHlJA5gExEREREREREREVFO4gA2EREREREREREREeUkDmATERERERERERERUU7iADYRERERERERERER5SQOYBMRERERERERERFRTuIANhERERERERERERHlJA5gExEREREREREREVFO4gA2EREREREREREREeUkDmATERERERERERERUU7iADYRERERERERERER5SQOYBMRERERERERERFRTuIANhERERERERERERHlJA5gExEREREREREREVFO4gA2EREREREREREREeUkDmATERERERERERERUU7iADYRERERERERERER5SQOYBMRERERERERERFRTuIANhERERERERERERHlJA5gE42RSCQy3kUgIiIiIiIiIiKaUDiATTSKAoEAmpubUVFRgYaGhvEuDhERERERERER0YRSON4FIBovgUAA69evRyAQQCgUQldXFyKRCEwmE8xmMyorK2GxWFBXVwebzTYkvd1uRygUgt/vj8cikQh8Ph/Wr18Pn8/HWddEREREREREREQjkBeNRqPjXQjKTFtbGxobG9NOZ7FYBg26ZiovLy/tNCaTCeFwWHzNbrejvb097Ty9Xq84wCyJRCJoaWlBa2tr2tuxWCyw2WyoqamB1+tFe3v7kGMZG9QOBAJD0tfX18Pj8aS9XSIiIiIiIiIi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
  1070. "text/plain": [
  1071. "<Figure size 1500x700 with 2 Axes>"
  1072. ]
  1073. },
  1074. "metadata": {},
  1075. "output_type": "display_data"
  1076. }
  1077. ],
  1078. "source": [
  1079. "fig = plt.figure(figsize=(15, 7))\n",
  1080. "ax = sns.heatmap(\n",
  1081. " df_pivoted,\n",
  1082. " robust=True,\n",
  1083. " square=False,\n",
  1084. " cmap=colormaps[\"rainbow\"],\n",
  1085. " xticklabels=False,\n",
  1086. " yticklabels=False,\n",
  1087. " vmax=0.7,\n",
  1088. " cbar_kws={\n",
  1089. " \"label\": r\"$x/X_0$\",\n",
  1090. " \"pad\": 0.005,\n",
  1091. " \"shrink\": 1,\n",
  1092. " \"ticks\": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7],\n",
  1093. " \"aspect\": 15,\n",
  1094. " },\n",
  1095. ")\n",
  1096. "# ax.set_yticks([5, 15, 25, 35], [2, 3, 4, 5])\n",
  1097. "ax.set_yticks([0, 20, 40, 60], [2, 3, 4, 5])\n",
  1098. "ax.set_xticks([39, 89, 139], [-100, 0, 100]) # ([79, 179, 279], [-100, 0, 100])\n",
  1099. "ax.set_xlabel(f\"$\\phi$ [deg]\")\n",
  1100. "ax.set_ylabel(f\"$\\eta$\")\n",
  1101. "ax.patch.set_edgecolor(\"black\")\n",
  1102. "\n",
  1103. "ax.patch.set_linewidth(2)\n",
  1104. "# ax.set_yticklabels([])\n",
  1105. "ax.invert_yaxis()\n",
  1106. "# ax.set_title(\"EndVELO to EndUT $x/X_0$\", size=35)\n",
  1107. "mplhep.lhcb.text(\n",
  1108. " \"Simulation \\qquad \\qquad \\qquad EndVELO to EndUT $x/X_0$\", loc=0\n",
  1109. ")\n",
  1110. "# plt.show()\n",
  1111. "plt.savefig(\n",
  1112. " \"/work/cetin/Projektpraktikum/thesis/rad_length_frac_eta_phi_2.pdf\", format=\"PDF\"\n",
  1113. ")"
  1114. ]
  1115. },
  1116. {
  1117. "cell_type": "code",
  1118. "execution_count": null,
  1119. "metadata": {},
  1120. "outputs": [],
  1121. "source": []
  1122. },
  1123. {
  1124. "cell_type": "code",
  1125. "execution_count": 19,
  1126. "metadata": {},
  1127. "outputs": [],
  1128. "source": [
  1129. "# # make these smaller to increase the resolution\n",
  1130. "# dy, dx = 0.1, 1.0\n",
  1131. "\n",
  1132. "# # generate 2 2d grids for the x & y bounds\n",
  1133. "# y, x = np.mgrid[slice(1.5, 5 + dy, dy), slice(-180, 180 + dx, dx)]\n",
  1134. "\n",
  1135. "# plt.pcolormesh(x, y, df_pivoted, cmap=colormaps[\"jet\"], vmax=0.7)\n",
  1136. "\n",
  1137. "# plt.colorbar()\n",
  1138. "# plt.show()"
  1139. ]
  1140. },
  1141. {
  1142. "cell_type": "code",
  1143. "execution_count": null,
  1144. "metadata": {},
  1145. "outputs": [],
  1146. "source": []
  1147. }
  1148. ],
  1149. "metadata": {
  1150. "kernelspec": {
  1151. "display_name": "tuner",
  1152. "language": "python",
  1153. "name": "python3"
  1154. },
  1155. "language_info": {
  1156. "codemirror_mode": {
  1157. "name": "ipython",
  1158. "version": 3
  1159. },
  1160. "file_extension": ".py",
  1161. "mimetype": "text/x-python",
  1162. "name": "python",
  1163. "nbconvert_exporter": "python",
  1164. "pygments_lexer": "ipython3",
  1165. "version": "3.10.12"
  1166. }
  1167. },
  1168. "nbformat": 4,
  1169. "nbformat_minor": 2
  1170. }