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.

407 lines
186 KiB

9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 9,
  6. "metadata": {},
  7. "outputs": [],
  8. "source": [
  9. "import uproot\t\n",
  10. "import numpy as np\n",
  11. "import matplotlib.pyplot as plt\n",
  12. "import pylab\n",
  13. "from mpl_toolkits import mplot3d\n",
  14. "import awkward as ak\n",
  15. "from scipy.optimize import curve_fit\n",
  16. "from methods.fit_linear_regression_model import fit_linear_regression_model\n",
  17. "import sklearn\n",
  18. "%matplotlib inline"
  19. ]
  20. },
  21. {
  22. "cell_type": "code",
  23. "execution_count": 10,
  24. "metadata": {},
  25. "outputs": [
  26. {
  27. "name": "stdout",
  28. "output_type": "stream",
  29. "text": [
  30. "40402 10099\n",
  31. "50501\n"
  32. ]
  33. }
  34. ],
  35. "source": [
  36. "file = uproot.open(\n",
  37. " \"tracking_losses_ntuple_B_default_radlength_beginVelo.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\"\n",
  38. ")\n",
  39. "\n",
  40. "# selektiere nur elektronen von B->K*ee\n",
  41. "allcolumns = file.arrays()\n",
  42. "found = allcolumns[\n",
  43. " (allcolumns.isElectron) & (~allcolumns.lost) & (allcolumns.fromB)\n",
  44. "] # B: 9056\n",
  45. "lost = allcolumns[\n",
  46. " (allcolumns.isElectron) & (allcolumns.lost) & (allcolumns.fromB)\n",
  47. "] # B: 1466\n",
  48. "\n",
  49. "electrons = allcolumns[(allcolumns.isElectron) & (allcolumns.fromB)]\n",
  50. "\n",
  51. "print(ak.num(found, axis=0), ak.num(lost, axis=0))\n",
  52. "print(ak.num(electrons, axis=0))\n",
  53. "# ak.count(found, axis=None)"
  54. ]
  55. },
  56. {
  57. "cell_type": "code",
  58. "execution_count": 11,
  59. "metadata": {},
  60. "outputs": [
  61. {
  62. "name": "stdout",
  63. "output_type": "stream",
  64. "text": [
  65. "stretch factor: 0.24996287312509283\n"
  66. ]
  67. }
  68. ],
  69. "source": [
  70. "rad_length_found = ak.to_numpy(found[\"rad_length_frac\"])\n",
  71. "eta_found = ak.to_numpy(found[\"eta\"])\n",
  72. "phi_found = ak.to_numpy(found[\"phi\"])\n",
  73. "\n",
  74. "rad_length_lost = ak.to_numpy(lost[\"rad_length_frac\"])\n",
  75. "eta_lost = ak.to_numpy(lost[\"eta\"])\n",
  76. "phi_lost = ak.to_numpy(lost[\"phi\"])\n",
  77. "\n",
  78. "stretch_factor = ak.num(eta_lost, axis=0) / ak.num(eta_found, axis=0)\n",
  79. "print(\"stretch factor: \", stretch_factor)"
  80. ]
  81. },
  82. {
  83. "cell_type": "code",
  84. "execution_count": 12,
  85. "metadata": {},
  86. "outputs": [
  87. {
  88. "data": {
  89. "image/png": "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
  90. "text/plain": [
  91. "<Figure size 640x480 with 1 Axes>"
  92. ]
  93. },
  94. "metadata": {},
  95. "output_type": "display_data"
  96. }
  97. ],
  98. "source": [
  99. "plt.hist(\n",
  100. " rad_length_lost,\n",
  101. " bins=100,\n",
  102. " density=True,\n",
  103. " alpha=0.5,\n",
  104. " color=\"darkorange\",\n",
  105. " histtype=\"bar\",\n",
  106. " label=\"lost\",\n",
  107. " range=[0, 1],\n",
  108. ")\n",
  109. "plt.hist(\n",
  110. " rad_length_found,\n",
  111. " bins=100,\n",
  112. " density=True,\n",
  113. " alpha=0.5,\n",
  114. " color=\"blue\",\n",
  115. " histtype=\"bar\",\n",
  116. " label=\"found\",\n",
  117. " range=[0, 1],\n",
  118. ")\n",
  119. "plt.xlim(0, 1)\n",
  120. "# plt.yscale(\"log\")\n",
  121. "plt.title(\"radiation length fraction beginVelo\")\n",
  122. "plt.xlabel(f\"$x/X_0$\")\n",
  123. "plt.ylabel(\"a.u.\")\n",
  124. "\n",
  125. "plt.legend()\n",
  126. "plt.show()"
  127. ]
  128. },
  129. {
  130. "cell_type": "code",
  131. "execution_count": 13,
  132. "metadata": {},
  133. "outputs": [
  134. {
  135. "data": {
  136. "image/png": "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
  137. "text/plain": [
  138. "<Figure size 2000x800 with 3 Axes>"
  139. ]
  140. },
  141. "metadata": {},
  142. "output_type": "display_data"
  143. }
  144. ],
  145. "source": [
  146. "nbins = 100\n",
  147. "vmax = 60\n",
  148. "\n",
  149. "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(20, 8))\n",
  150. "\n",
  151. "a0 = ax0.hist2d(\n",
  152. " rad_length_found,\n",
  153. " eta_found,\n",
  154. " density=False,\n",
  155. " bins=nbins,\n",
  156. " cmap=plt.cm.jet,\n",
  157. " cmin=1,\n",
  158. " vmax=vmax,\n",
  159. " range=[[0, 0.6], [2, 5]],\n",
  160. ")\n",
  161. "ax0.set_xlabel(f\"$x/X_0$\")\n",
  162. "ax0.set_ylabel(f\"$\\eta$\")\n",
  163. "ax0.set_title(f\"found $\\eta$ rad_length_frac\")\n",
  164. "\n",
  165. "a1 = ax1.hist2d(\n",
  166. " rad_length_lost,\n",
  167. " eta_lost,\n",
  168. " density=False,\n",
  169. " bins=nbins,\n",
  170. " cmap=plt.cm.jet,\n",
  171. " cmin=1,\n",
  172. " vmax=vmax * stretch_factor,\n",
  173. " range=[[0, 0.6], [2, 5]],\n",
  174. ")\n",
  175. "ax1.set_xlabel(f\"$x/X_0$\")\n",
  176. "ax1.set_ylabel(f\"$\\eta$\")\n",
  177. "ax1.set_title(f\"lost $\\eta$ rad_length_frac\")\n",
  178. "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  179. "\n",
  180. "plt.suptitle(\"radiation length fraction and eta beginVelo\")\n",
  181. "plt.colorbar(a0[3], ax=ax1)\n",
  182. "\n",
  183. "plt.show()"
  184. ]
  185. },
  186. {
  187. "cell_type": "code",
  188. "execution_count": 14,
  189. "metadata": {},
  190. "outputs": [
  191. {
  192. "name": "stdout",
  193. "output_type": "stream",
  194. "text": [
  195. "Parameterisation for rad_length_frac:\n",
  196. "intercept= 0.0\n",
  197. "coef= {'1': 0.4397780582886272, 'x': -0.00033503537608265674, 'y': -4.789321464958182e-05, 'tx': 0.29235639572920724, 'ty': 0.04582618208302177, 'qop': -6.415064049320476, 'x^2': -1.7148780985188313e-05, 'x y': 6.213092137729638e-05, 'x tx': 0.0357792373581695, 'x ty': -0.03383507316198001, 'x qop': 5.411983741236269, 'y^2': -0.0001816058133305051, 'y tx': -0.060157737422332554, 'y ty': 0.3005860193729231, 'y qop': -0.5258168180545822, 'tx^2': -20.581151289333324, 'tx ty': 33.044369657406456, 'tx qop': -4029.9409136973454, 'ty^2': -125.62371943789807, 'ty qop': 353.08874965548245, 'qop^2': -3.455196781164501, 'x^3': 1.5371780097645036e-07, 'x^2 y': -1.2426481494632311e-06, 'x^2 tx': -0.0003102207951011151, 'x^2 ty': 0.0008294673378711963, 'x^2 qop': -0.0013130710648701907, 'x y^2': 1.3249247615395102e-07, 'x y tx': 0.0018733641082853674, 'x y ty': 0.0011459295349262105, 'x y qop': 0.0019703515773188207, 'x tx^2': 0.20678893428535178, 'x tx ty': -1.2036256002683805, 'x tx qop': 0.5976253324202965, 'x ty^2': -1.0782570211818505, 'x ty qop': 102.9459912574048, 'x qop^2': -399.16918894718305, 'y^3': 6.233244675968308e-07, 'y^2 tx': -0.0013994133271424403, 'y^2 ty': -0.001494031769823323, 'y^2 qop': 0.000739172959467016, 'y tx^2': -0.7290175680182052, 'y tx ty': 1.243439836769458, 'y tx qop': -105.55527881418587, 'y ty^2': 1.1837378224511292, 'y ty qop': -0.7657500120637686, 'y qop^2': 337.9089334089693, 'tx^3': -46.002810282557306, 'tx^2 ty': 453.57769058127064, 'tx^2 qop': -38.01772137810428, 'tx ty^2': -37.626648454968965, 'tx ty qop': 1.8221207378503694, 'tx qop^2': -0.40208255096589585, 'ty^3': -309.9803925733283, 'ty^2 qop': 15.736234283455065, 'ty qop^2': 0.6119680938280082, 'qop^3': -0.0011848472786331894, 'x^4': 1.4258219493967772e-08, 'x^3 y': -2.866883619390137e-09, 'x^3 tx': -4.622450717306492e-05, 'x^3 ty': -9.82760022623097e-05, 'x^3 qop': -0.0003703064328215433, 'x^2 y^2': -2.5736142106325133e-09, 'x^2 y tx': 0.00010255319807583874, 'x^2 y ty': 4.727919866809316e-05, 'x^2 y qop': -0.0006108544453127251, 'x^2 tx^2': 0.0554175462089006, 'x^2 tx ty': 0.16472559466997527, 'x^2 tx qop': 0.4783758545936343, 'x^2 ty^2': -0.029491297111002623, 'x^2 ty qop': 0.4072459238308874, 'x^2 qop^2': 1.274082272606741, 'x y^3': 1.019856199491187e-08, 'x y^2 tx': -4.0220230914655986e-05, 'x y^2 ty': -7.807169754414645e-05, 'x y^2 qop': 0.0009660222713137046, 'x y tx^2': -0.1655492341343554, 'x y tx ty': -0.026431127204681104, 'x y tx qop': 0.6220634937641649, 'x y ty^2': 0.09539033507193473, 'x y ty qop': -1.5617368820840163, 'x y qop^2': 9.235370076473936, 'x tx^3': -29.04572443637665, 'x tx^2 ty': -68.28508620169197, 'x tx^2 qop': -138.17259913877646, 'x tx ty^2': 35.45859347871301, 'x tx ty qop': -273.5835489656032, 'x tx qop^2': -13.43661305575325, 'x ty^3': -32.63704432223729, 'x ty^2 qop': 266.4268072225656, 'x ty qop^2': -19.06231959583929, 'x qop^3': 1.7675392248918753, 'y^4': -5.9619367220875574e-09, 'y^3 tx': 5.3697276143793715e-05, 'y^3 ty': 1.6576491020714457e-05, 'y^3 qop': -0.00017261869555795784, 'y^2 tx^2': 0.05014539344681879, 'y^2 tx ty': -0.07584181301500559, 'y^2 tx qop': -0.11650839062004614, 'y^2 ty^2': -0.015097852966895253, 'y^2 ty qop': 0.30517451156427916, 'y^2 qop^2': -6.650919392954738, 'y tx^3': 67.30430825382783, 'y tx^2 ty': -34.801544500318485, 'y tx^2 qop': -142.686910608299, 'y tx ty^2': 27.185653317937266, 'y tx ty qop': 439.1032304393983, 'y tx qop^2': -18.23933135674488, 'y ty^3': 4.265555264813383, 'y ty^2 qop': -131.08781810964697, 'y ty qop^2': 34.20534645433437, 'y qop^3': 0.11852127731033578, 'tx^4': 5649.699838454551, 'tx^3 ty': 329.9615549901753, 'tx^3 qop': -5.54031835759426, 'tx^2 ty^2': 584.460443200635, 'tx^2 ty qop': -0.7411483064667538, 'tx^2 qop^2': -0.03588219456135393, 'tx ty^3': 173.96226240131907, 'tx ty^2 qop': 1.0493642752682577, 'tx ty qop^2': -0.052660249222163585, 'tx qop^3': 0.001973073444663188, 'ty^4': 215.62061929608907, 'ty^3 qop': -0.5416245412488983, 'ty^2 qop^2': 0.09234573370962393, 'ty qop^3': 0.0002451739001199065, 'qop^4': 2.303474287996047e-05}\n",
  198. "r2 score= 0.07032743800675567\n",
  199. "RMSE = 0.1530771991719649\n",
  200. "\n"
  201. ]
  202. },
  203. {
  204. "data": {
  205. "image/png": "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
  206. "text/plain": [
  207. "<Figure size 640x480 with 2 Axes>"
  208. ]
  209. },
  210. "metadata": {},
  211. "output_type": "display_data"
  212. }
  213. ],
  214. "source": [
  215. "rad_length_frac = found[\"rad_length_frac\"]\n",
  216. "# @ z = 9400.mm or 770.mm\n",
  217. "state = 1\n",
  218. "\n",
  219. "if state == 1:\n",
  220. " slopex = found[\"ideal_state_770_tx\"]\n",
  221. " slopey = found[\"ideal_state_770_ty\"]\n",
  222. " x = found[\"ideal_state_770_x\"]\n",
  223. " y = found[\"ideal_state_770_y\"]\n",
  224. " qop = found[\"ideal_state_770_qop\"]\n",
  225. "elif state == 2:\n",
  226. " slopex = found[\"ideal_state_9410_tx\"]\n",
  227. " slopey = found[\"ideal_state_9410_ty\"]\n",
  228. " x = found[\"ideal_state_9410_x\"]\n",
  229. " y = found[\"ideal_state_9410_y\"]\n",
  230. " qop = found[\"ideal_state_9410_qop\"]\n",
  231. "\n",
  232. "data = ak.zip({\n",
  233. " \"rad_length_frac\": rad_length_frac,\n",
  234. " \"x\": x,\n",
  235. " \"y\": y,\n",
  236. " \"tx\": slopex,\n",
  237. " \"ty\": slopey,\n",
  238. " \"qop\": qop,\n",
  239. "})\n",
  240. "lin_reg, features, xx0_test, xx0_predicted = fit_linear_regression_model(\n",
  241. " data,\n",
  242. " \"rad_length_frac\",\n",
  243. " [\"x\", \"y\", \"tx\", \"ty\", \"qop\"],\n",
  244. " 4,\n",
  245. " include_bias=True,\n",
  246. ")\n",
  247. "nbins = 100\n",
  248. "vmax = 50\n",
  249. "\n",
  250. "a0 = plt.hist2d(\n",
  251. " xx0_test,\n",
  252. " xx0_predicted,\n",
  253. " density=False,\n",
  254. " bins=nbins,\n",
  255. " cmap=plt.cm.jet,\n",
  256. " cmin=1,\n",
  257. " vmax=vmax,\n",
  258. " range=[[-0.2, 1.0], [-0.2, 1.0]],\n",
  259. ")\n",
  260. "plt.plot([-0.2, 1], [-0.2, 1], marker=\"\", alpha=0.8)\n",
  261. "plt.xlabel(f\"True $x/X_0$\")\n",
  262. "plt.ylabel(f\"Predicted $x/X_0$\")\n",
  263. "plt.title(f\"found rad_length_frac\")\n",
  264. "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  265. "\n",
  266. "plt.colorbar(a0[3])\n",
  267. "plt.show()"
  268. ]
  269. },
  270. {
  271. "cell_type": "code",
  272. "execution_count": 17,
  273. "metadata": {},
  274. "outputs": [
  275. {
  276. "name": "stdout",
  277. "output_type": "stream",
  278. "text": [
  279. "Parameterisation for rad_length_frac:\n",
  280. "intercept= 0.0\n",
  281. "coef= {'1': 0.4479234646536249, 'x': -0.0004084072172278079, 'y': -0.0004337281522268355, 'tx': 0.36162738714391346, 'ty': 0.3074416852772706, 'qop': 8.6879246998874, 'x^2': 6.870638463563449e-05, 'x y': -0.00012148333505099224, 'x tx': -0.08753632946361847, 'x ty': -0.008841630356866574, 'x qop': 2.3636302084612413, 'y^2': -0.00010231235440107948, 'y tx': 0.18497450621593262, 'y ty': 0.1675559125761048, 'y qop': -4.153708925054445, 'tx^2': 23.782917176875543, 'tx ty': -66.05577891519296, 'tx qop': -1451.879997584788, 'ty^2': -72.70407315466386, 'ty qop': 2811.440565472475, 'qop^2': 25.48376520289995, 'x^3': 3.312211575601438e-06, 'x^2 y': 4.1376174463449524e-06, 'x^2 tx': -0.007073302591271084, 'x^2 ty': -0.007343778680981201, 'x^2 qop': -0.010800896868279859, 'x y^2': -1.888730589918227e-06, 'x y tx': -0.0015500723141160817, 'x y ty': 0.003351080332733322, 'x y qop': -0.01735357445380728, 'x tx^2': 4.990549905339206, 'x tx ty': 7.558985701868668, 'x tx qop': 4.476707229937508, 'x ty^2': -1.104445169997775, 'x ty qop': -9.151537967253478, 'x qop^2': -910.3882764082207, 'y^3': -1.052533550094381e-06, 'y^2 tx': 0.0005507301794551722, 'y^2 ty': 0.002357501338451584, 'y^2 qop': 0.007420585610647734, 'y tx^2': -1.250712090046683, 'y tx ty': -1.5531355410763075, 'y tx qop': 19.84686939382025, 'y ty^2': -1.7462277992951187, 'y ty qop': -5.356037569819987, 'y qop^2': -279.7638120237527, 'tx^3': -1165.212129591651, 'tx^2 ty': -1478.3661751151212, 'tx^2 qop': 11.51188378893173, 'tx ty^2': 595.4188893174843, 'tx ty qop': 230.63755941369075, 'tx qop^2': -0.10882234534500138, 'ty^3': 429.2917082507941, 'ty^2 qop': -82.0662171571117, 'ty qop^2': -1.9459565902791414, 'qop^3': 0.024415724018080082, 'x^4': -1.475717681387323e-08, 'x^3 y': -8.159629061310625e-08, 'x^3 tx': 1.8736542919839394e-05, 'x^3 ty': 0.00021665972144546686, 'x^3 qop': 0.0006989376250565726, 'x^2 y^2': 2.718623193231906e-08, 'x^2 y tx': -2.4239682488769176e-05, 'x^2 y ty': -8.084108489470054e-05, 'x^2 y qop': -0.003167100608976625, 'x^2 tx^2': 0.008320473005383633, 'x^2 tx ty': -0.31099673106925607, 'x^2 tx qop': -0.9590579633902261, 'x^2 ty^2': -0.06873651193829033, 'x^2 ty qop': 5.972868443095723, 'x^2 qop^2': 8.034990024240143, 'x y^3': 4.6192553782020696e-08, 'x y^2 tx': 1.2378456318629105e-05, 'x y^2 ty': -5.5412774827345856e-05, 'x y^2 qop': -0.0013019927555433242, 'x y tx^2': 0.15448353292862294, 'x y tx ty': 0.2778324639753933, 'x y tx qop': -1.204014224641027, 'x y ty^2': 0.016434784323337226, 'x y ty qop': 2.818541810627377, 'x y qop^2': 8.034350363325663, 'x tx^3': -18.77883071123092, 'x tx^2 ty': 117.5404832475735, 'x tx^2 qop': 350.73626782625695, 'x tx ty^2': -43.39398761296841, 'x tx ty qop': -3601.6230380405145, 'x tx qop^2': -33.190862612375746, 'x ty^3': 0.3797357610145699, 'x ty^2 qop': -1234.3747950404918, 'x ty qop^2': 83.83558397109758, 'x qop^3': -5.702215445849627, 'y^4': -2.336150828341488e-09, 'y^3 tx': -4.0570866303824005e-05, 'y^3 ty': -2.348613449498771e-06, 'y^3 qop': 0.001158537918854563, 'y^2 tx^2': -0.1482288223321575, 'y^2 tx ty': 0.04527719555944287, 'y^2 tx qop': -1.0009453937475368, 'y^2 ty^2': 0.013540534251312408, 'y^2 ty qop': -1.6075747378736662, 'y^2 qop^2': -9.84256818846896, 'y tx^3': -69.10849756704471, 'y tx^2 ty': 21.121054597115727, 'y tx^2 qop': 1848.9215712994694, 'y tx ty^2': -9.234237076693203, 'y tx ty qop': 564.3519892221238, 'y tx qop^2': 68.38095505038116, 'y ty^3': -12.464249025545804, 'y ty^2 qop': 551.51219619504, 'y ty qop^2': 39.825100090236965, 'y qop^3': -1.0176409285192534, 'tx^4': 6221.962679980016, 'tx^3 ty': -3592.5750251228064, 'tx^3 qop': -27.664174751180994, 'tx^2 ty^2': 2731.878418172401, 'tx^2 ty qop': 13.736715296965578, 'tx^2 qop^2': -0.04199811775300766, 'tx ty^3': -2185.0268615440154, 'tx ty^2 qop': -15.049641135727613, 'tx ty qop^2': 0.13949642224427028, 'tx qop^3': -0.008320294336365015, 'ty^4': 3532.7413364811573, 'ty^3 qop': 24.266869324033923, 'ty^2 qop^2': 0.13092733573127732, 'ty qop^3': -0.0016184008383619774, 'qop^4': -0.00044028977350282306}\n",
  282. "r2 score= 0.005485148161997189\n",
  283. "RMSE = 0.27783626532276307\n",
  284. "\n"
  285. ]
  286. },
  287. {
  288. "data": {
  289. "image/png": "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
  290. "text/plain": [
  291. "<Figure size 640x480 with 2 Axes>"
  292. ]
  293. },
  294. "metadata": {},
  295. "output_type": "display_data"
  296. }
  297. ],
  298. "source": [
  299. "rad_length_frac = lost[\"rad_length_frac\"]\n",
  300. "# @ z = 9400.mm or 770.mm\n",
  301. "state = 1\n",
  302. "\n",
  303. "if state == 1:\n",
  304. " slopex = lost[\"ideal_state_770_tx\"]\n",
  305. " slopey = lost[\"ideal_state_770_ty\"]\n",
  306. " x = lost[\"ideal_state_770_x\"]\n",
  307. " y = lost[\"ideal_state_770_y\"]\n",
  308. " qop = lost[\"ideal_state_770_qop\"]\n",
  309. "elif state == 2:\n",
  310. " slopex = lost[\"ideal_state_9410_tx\"]\n",
  311. " slopey = lost[\"ideal_state_9410_ty\"]\n",
  312. " x = lost[\"ideal_state_9410_x\"]\n",
  313. " y = lost[\"ideal_state_9410_y\"]\n",
  314. " qop = lost[\"ideal_state_9410_qop\"]\n",
  315. "\n",
  316. "data = ak.zip({\n",
  317. " \"rad_length_frac\": rad_length_frac,\n",
  318. " \"x\": x,\n",
  319. " \"y\": y,\n",
  320. " \"tx\": slopex,\n",
  321. " \"ty\": slopey,\n",
  322. " \"qop\": qop,\n",
  323. "})\n",
  324. "lin_reg, features, xx0_test, xx0_predicted = fit_linear_regression_model(\n",
  325. " data,\n",
  326. " \"rad_length_frac\",\n",
  327. " [\"x\", \"y\", \"tx\", \"ty\", \"qop\"],\n",
  328. " 4,\n",
  329. " include_bias=True,\n",
  330. ")\n",
  331. "\n",
  332. "nbins = 100\n",
  333. "vmax = 50\n",
  334. "\n",
  335. "a0 = plt.hist2d(\n",
  336. " xx0_test,\n",
  337. " xx0_predicted,\n",
  338. " density=False,\n",
  339. " bins=nbins,\n",
  340. " cmap=plt.cm.jet,\n",
  341. " cmin=1,\n",
  342. " vmax=vmax * stretch_factor,\n",
  343. " range=[[-0.1, 1.0], [-0.1, 1.0]],\n",
  344. ")\n",
  345. "plt.plot([-0.1, 1], [-0.1, 1], marker=\"\", alpha=0.8)\n",
  346. "plt.xlabel(f\"True $x/X_0$\")\n",
  347. "plt.ylabel(f\"Predicted $x/X_0$\")\n",
  348. "plt.title(f\"lost rad_length_frac\")\n",
  349. "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  350. "\n",
  351. "plt.colorbar(a0[3])\n",
  352. "plt.show()"
  353. ]
  354. },
  355. {
  356. "cell_type": "code",
  357. "execution_count": null,
  358. "metadata": {},
  359. "outputs": [],
  360. "source": []
  361. },
  362. {
  363. "cell_type": "code",
  364. "execution_count": null,
  365. "metadata": {},
  366. "outputs": [],
  367. "source": []
  368. },
  369. {
  370. "cell_type": "code",
  371. "execution_count": null,
  372. "metadata": {},
  373. "outputs": [],
  374. "source": [
  375. "test = ak.zip({\n",
  376. " \"tx\": slopex,\n",
  377. " \"ty\": slopey,\n",
  378. " \"x\": x,\n",
  379. " \"y\": y,\n",
  380. " \"qop\": qop,\n",
  381. "})\n",
  382. "test = np.column_stack([ak.to_numpy(test[feat]) for feat in features])"
  383. ]
  384. }
  385. ],
  386. "metadata": {
  387. "kernelspec": {
  388. "display_name": "tuner",
  389. "language": "python",
  390. "name": "python3"
  391. },
  392. "language_info": {
  393. "codemirror_mode": {
  394. "name": "ipython",
  395. "version": 3
  396. },
  397. "file_extension": ".py",
  398. "mimetype": "text/x-python",
  399. "name": "python",
  400. "nbconvert_exporter": "python",
  401. "pygments_lexer": "ipython3",
  402. "version": "3.10.12"
  403. }
  404. },
  405. "nbformat": 4,
  406. "nbformat_minor": 2
  407. }