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.

1272 lines
404 KiB

1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
1 year ago
1 year ago
11 months ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 1,
  6. "metadata": {},
  7. "outputs": [],
  8. "source": [
  9. "import uproot\t\n",
  10. "import numpy as np\n",
  11. "import sys\n",
  12. "import os\n",
  13. "import matplotlib\n",
  14. "import matplotlib.pyplot as plt\n",
  15. "from mpl_toolkits import mplot3d\n",
  16. "import itertools\n",
  17. "import awkward as ak\n",
  18. "from scipy.optimize import curve_fit\n",
  19. "from mpl_toolkits.axes_grid1 import ImageGrid\n",
  20. "%matplotlib inline"
  21. ]
  22. },
  23. {
  24. "cell_type": "code",
  25. "execution_count": 2,
  26. "metadata": {},
  27. "outputs": [
  28. {
  29. "data": {
  30. "text/plain": [
  31. "'/home/lhcb/cetin/.config/matplotlib/matplotlibrc'"
  32. ]
  33. },
  34. "execution_count": 2,
  35. "metadata": {},
  36. "output_type": "execute_result"
  37. }
  38. ],
  39. "source": [
  40. "matplotlib.matplotlib_fname()"
  41. ]
  42. },
  43. {
  44. "cell_type": "code",
  45. "execution_count": 3,
  46. "metadata": {},
  47. "outputs": [
  48. {
  49. "data": {
  50. "text/plain": [
  51. "10522"
  52. ]
  53. },
  54. "execution_count": 3,
  55. "metadata": {},
  56. "output_type": "execute_result"
  57. }
  58. ],
  59. "source": [
  60. "file = uproot.open(\"tracking_losses_ntuple_Bd2KstEE.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\")\n",
  61. "\n",
  62. "#selektiere nur elektronen von B->K*ee und nur solche mit einem momentum von ueber 5 GeV \n",
  63. "allcolumns = file.arrays()\n",
  64. "found = allcolumns[(allcolumns.isElectron) & (~allcolumns.lost) & (allcolumns.fromSignal) & (allcolumns.p > 5e3)] #B: 9056\n",
  65. "lost = allcolumns[(allcolumns.isElectron) & (allcolumns.lost) & (allcolumns.fromSignal) & (allcolumns.p > 5e3)] #B: 1466\n",
  66. "\n",
  67. "ak.num(found, axis=0) + ak.num(lost, axis=0)\n",
  68. "#ak.count(found, axis=None)"
  69. ]
  70. },
  71. {
  72. "cell_type": "code",
  73. "execution_count": 4,
  74. "metadata": {},
  75. "outputs": [
  76. {
  77. "name": "stdout",
  78. "output_type": "stream",
  79. "text": [
  80. "10 10\n",
  81. "10 10\n",
  82. "10 10\n",
  83. "15 15\n",
  84. "7 7\n",
  85. "7 7\n",
  86. "8 8\n",
  87. "3 3\n",
  88. "5 5\n",
  89. "15 15\n"
  90. ]
  91. }
  92. ],
  93. "source": [
  94. "for i in range(10):\n",
  95. "\tprint(found[\"brem_vtx_x_length\"][i], found[\"brem_vtx_z_length\"][i])"
  96. ]
  97. },
  98. {
  99. "cell_type": "code",
  100. "execution_count": null,
  101. "metadata": {},
  102. "outputs": [],
  103. "source": []
  104. },
  105. {
  106. "cell_type": "code",
  107. "execution_count": 5,
  108. "metadata": {},
  109. "outputs": [
  110. {
  111. "name": "stdout",
  112. "output_type": "stream",
  113. "text": [
  114. "eff all = 0.8606728758791105 +/- 0.003375885792719708\n"
  115. ]
  116. }
  117. ],
  118. "source": [
  119. "def t_eff(found, lost, axis = 0):\n",
  120. " sel = ak.num(found, axis=axis)\n",
  121. " des = ak.num(lost, axis=axis)\n",
  122. " return sel/(sel + des)\n",
  123. "\n",
  124. "def eff_err(found, lost):\n",
  125. " n_f = ak.num(found, axis=0)\n",
  126. " n_all = ak.num(found, axis=0) + ak.num(lost,axis=0)\n",
  127. " return 1/n_all * np.sqrt(np.abs(n_f*(1-n_f/n_all)))\n",
  128. "\n",
  129. "\n",
  130. "print(\"eff all = \", t_eff(found, lost), \"+/-\", eff_err(found, lost))"
  131. ]
  132. },
  133. {
  134. "cell_type": "code",
  135. "execution_count": 6,
  136. "metadata": {},
  137. "outputs": [
  138. {
  139. "data": {
  140. "text/html": [
  141. "<pre>{energy: 4.62e+04,\n",
  142. " photon_length: 10,\n",
  143. " brem_photons_pe: [3.26e+03, 4.45e+03, 178, ..., 825, 8.99e+03, 3.48e+03],\n",
  144. " brem_vtx_z: [162, 187, 387, 487, ..., 9.49e+03, 1.21e+04, 1.21e+04, 1.21e+04],\n",
  145. " brem_vtx_x: [-5.37, -7, -20, -26.5, ..., -1.24e+03, -1.24e+03, -1.25e+03]}\n",
  146. "-------------------------------------------------------------------------------\n",
  147. "type: {\n",
  148. " energy: float64,\n",
  149. " photon_length: int64,\n",
  150. " brem_photons_pe: var * float64,\n",
  151. " brem_vtx_z: var * float64,\n",
  152. " brem_vtx_x: var * float64\n",
  153. "}</pre>"
  154. ],
  155. "text/plain": [
  156. "<Record {energy: 4.62e+04, ...} type='{energy: float64, photon_length: int6...'>"
  157. ]
  158. },
  159. "execution_count": 6,
  160. "metadata": {},
  161. "output_type": "execute_result"
  162. }
  163. ],
  164. "source": [
  165. "#try excluding all photons that originate from a vtx @ z>9500mm\n",
  166. "#ignore all brem vertices @ z>9500mm \n",
  167. "\n",
  168. "#found\n",
  169. "\n",
  170. "brem_e_f = found[\"brem_photons_pe\"]\n",
  171. "brem_z_f = found[\"brem_vtx_z\"]\n",
  172. "brem_x_f = found[\"brem_vtx_x\"]\n",
  173. "e_f = found[\"energy\"]\n",
  174. "length_f = found[\"brem_vtx_z_length\"]\n",
  175. "\n",
  176. "brem_f = ak.ArrayBuilder()\n",
  177. "\n",
  178. "for itr in range(ak.num(found,axis=0)):\n",
  179. " brem_f.begin_record()\n",
  180. " #[:,\"energy\"] energy\n",
  181. " brem_f.field(\"energy\").append(e_f[itr])\n",
  182. " #[:,\"photon_length\"] number of vertices\n",
  183. " brem_f.field(\"photon_length\").integer(length_f[itr])\n",
  184. " #[:,\"brem_photons_pe\",:] photon energy \n",
  185. " brem_f.field(\"brem_photons_pe\").append(brem_e_f[itr])\n",
  186. " #[:,\"brem_vtx_z\",:] brem vtx z\n",
  187. " brem_f.field(\"brem_vtx_z\").append(brem_z_f[itr])\n",
  188. " brem_f.field(\"brem_vtx_x\").append(brem_x_f[itr])\n",
  189. " brem_f.end_record()\n",
  190. "\n",
  191. "brem_f = ak.Array(brem_f)\n",
  192. "\n",
  193. "#lost\n",
  194. "\n",
  195. "brem_e_l = lost[\"brem_photons_pe\"]\n",
  196. "brem_z_l = lost[\"brem_vtx_z\"]\n",
  197. "brem_x_l = lost[\"brem_vtx_x\"]\n",
  198. "e_l = lost[\"energy\"]\n",
  199. "length_l = lost[\"brem_vtx_z_length\"]\n",
  200. "\n",
  201. "brem_l = ak.ArrayBuilder()\n",
  202. "\n",
  203. "for itr in range(ak.num(lost,axis=0)):\n",
  204. " brem_l.begin_record()\n",
  205. " #[:,\"energy\"] energy\n",
  206. " brem_l.field(\"energy\").append(e_l[itr])\n",
  207. " #[:,\"photon_length\"] number of vertices\n",
  208. " brem_l.field(\"photon_length\").integer(length_l[itr])\n",
  209. " #[:,\"brem_photons_pe\",:] photon energy \n",
  210. " brem_l.field(\"brem_photons_pe\").append(brem_e_l[itr])\n",
  211. " #[:,\"brem_vtx_z\",:] brem vtx z\n",
  212. " brem_l.field(\"brem_vtx_z\").append(brem_z_l[itr])\n",
  213. " brem_l.field(\"brem_vtx_x\").append(brem_x_l[itr])\n",
  214. " brem_l.end_record()\n",
  215. "\n",
  216. "brem_l = ak.Array(brem_l)\n",
  217. "\n",
  218. "\n",
  219. "\n",
  220. "\n",
  221. "brem_f[0]"
  222. ]
  223. },
  224. {
  225. "cell_type": "code",
  226. "execution_count": 7,
  227. "metadata": {},
  228. "outputs": [],
  229. "source": [
  230. "acc_brem_found = ak.ArrayBuilder()\n",
  231. "\n",
  232. "for itr in range(ak.num(brem_f, axis=0)):\n",
  233. " acc_brem_found.begin_record()\n",
  234. " acc_brem_found.field(\"energy\").real(brem_f[itr,\"energy\"])\n",
  235. " \n",
  236. " acc_brem_found.field(\"brem_photons_pe\")\n",
  237. " acc_brem_found.begin_list()\n",
  238. " for jentry in range(brem_f[itr, \"photon_length\"]):\n",
  239. " if brem_f[itr, \"brem_vtx_z\", jentry]>9500:\n",
  240. " continue\n",
  241. " else:\n",
  242. " acc_brem_found.real(brem_f[itr,\"brem_photons_pe\", jentry])\n",
  243. " \n",
  244. " #acc_brem_found.field(\"brem_vtx_z\").real(brem_f[itr, \"brem_vtx_z\",jentry])\n",
  245. " acc_brem_found.end_list()\n",
  246. " \n",
  247. " acc_brem_found.field(\"brem_vtx_z\")\n",
  248. " acc_brem_found.begin_list()\n",
  249. " for jentry in range(brem_f[itr, \"photon_length\"]):\n",
  250. " if brem_f[itr, \"brem_vtx_z\", jentry]>9500:\n",
  251. " continue\n",
  252. " else:\n",
  253. " acc_brem_found.real(brem_f[itr, \"brem_vtx_z\",jentry])\n",
  254. " acc_brem_found.end_list()\n",
  255. " \n",
  256. " acc_brem_found.field(\"brem_vtx_x\")\n",
  257. " acc_brem_found.begin_list()\n",
  258. " for jentry in range(brem_f[itr, \"photon_length\"]):\n",
  259. " if brem_f[itr, \"brem_vtx_z\", jentry]>9500:\n",
  260. " continue\n",
  261. " else:\n",
  262. " acc_brem_found.real(brem_f[itr, \"brem_vtx_x\",jentry])\n",
  263. " acc_brem_found.end_list()\n",
  264. " \n",
  265. "\n",
  266. " \n",
  267. " acc_brem_found.end_record()\n",
  268. "\n",
  269. "acc_brem_found = ak.Array(acc_brem_found)\n",
  270. "\n",
  271. "\n",
  272. "\n",
  273. "acc_brem_lost = ak.ArrayBuilder()\n",
  274. "\n",
  275. "for itr in range(ak.num(brem_l, axis=0)):\n",
  276. " acc_brem_lost.begin_record()\n",
  277. " acc_brem_lost.field(\"energy\").real(brem_l[itr,\"energy\"])\n",
  278. " \n",
  279. " acc_brem_lost.field(\"brem_photons_pe\")\n",
  280. " acc_brem_lost.begin_list()\n",
  281. " for jentry in range(brem_l[itr, \"photon_length\"]):\n",
  282. " if brem_l[itr, \"brem_vtx_z\", jentry]>9500:\n",
  283. " continue\n",
  284. " else:\n",
  285. " acc_brem_lost.real(brem_l[itr,\"brem_photons_pe\", jentry])\n",
  286. " \n",
  287. " #acc_brem_found.field(\"brem_vtx_z\").real(brem_f[itr, \"brem_vtx_z\",jentry])\n",
  288. " acc_brem_lost.end_list()\n",
  289. " \n",
  290. " acc_brem_lost.field(\"brem_vtx_z\")\n",
  291. " acc_brem_lost.begin_list()\n",
  292. " for jentry in range(brem_l[itr, \"photon_length\"]):\n",
  293. " if brem_l[itr, \"brem_vtx_z\", jentry]>9500:\n",
  294. " continue\n",
  295. " else:\n",
  296. " acc_brem_lost.real(brem_l[itr, \"brem_vtx_z\",jentry])\n",
  297. " acc_brem_lost.end_list()\n",
  298. " \n",
  299. " acc_brem_lost.field(\"brem_vtx_x\")\n",
  300. " acc_brem_lost.begin_list()\n",
  301. " for jentry in range(brem_l[itr, \"photon_length\"]):\n",
  302. " if brem_l[itr, \"brem_vtx_z\", jentry]>9500:\n",
  303. " continue\n",
  304. " else:\n",
  305. " acc_brem_lost.real(brem_l[itr, \"brem_vtx_x\",jentry])\n",
  306. " acc_brem_lost.end_list()\n",
  307. " \n",
  308. " acc_brem_lost.end_record()\n",
  309. "\n",
  310. "acc_brem_lost = ak.Array(acc_brem_lost)\n"
  311. ]
  312. },
  313. {
  314. "cell_type": "code",
  315. "execution_count": 8,
  316. "metadata": {},
  317. "outputs": [
  318. {
  319. "data": {
  320. "text/plain": [
  321. "9056"
  322. ]
  323. },
  324. "execution_count": 8,
  325. "metadata": {},
  326. "output_type": "execute_result"
  327. }
  328. ],
  329. "source": [
  330. "ak.num(acc_brem_found,axis=0)"
  331. ]
  332. },
  333. {
  334. "cell_type": "code",
  335. "execution_count": 9,
  336. "metadata": {},
  337. "outputs": [
  338. {
  339. "data": {
  340. "text/plain": [
  341. "'\\nph_e = found[\"brem_photons_pe\"]\\nevent_cut = ak.all(ph_e<cutoff_energy,axis=1)\\nph_e = ph_e[event_cut]\\n'"
  342. ]
  343. },
  344. "execution_count": 9,
  345. "metadata": {},
  346. "output_type": "execute_result"
  347. }
  348. ],
  349. "source": [
  350. "\n",
  351. "\"\"\"\n",
  352. "ph_e = found[\"brem_photons_pe\"]\n",
  353. "event_cut = ak.all(ph_e<cutoff_energy,axis=1)\n",
  354. "ph_e = ph_e[event_cut]\n",
  355. "\"\"\"\n",
  356. "\n"
  357. ]
  358. },
  359. {
  360. "cell_type": "code",
  361. "execution_count": 10,
  362. "metadata": {},
  363. "outputs": [
  364. {
  365. "name": "stdout",
  366. "output_type": "stream",
  367. "text": [
  368. "\n",
  369. "cutoff energy = 350MeV, sample size: 693\n",
  370. "eff = 0.9481 +/- 0.0084\n"
  371. ]
  372. }
  373. ],
  374. "source": [
  375. "#finden wir die elektronen die keine bremsstrahlung gemacht haben mit hoher effizienz?\n",
  376. "#von energie der photonen abmachen\n",
  377. "#scan ab welcher energie der photonen die effizienz abfällt\n",
  378. "\n",
  379. "#abhängigkeit vom ort der emission untersuchen <- noch nicht gemacht\n",
  380. "\n",
  381. "\n",
  382. "\n",
  383. "#idea: we make an event cut st all events that contain a photon of energy > cutoff_energy are not included\n",
  384. "\"\"\"\n",
  385. "ph_e = acc_brem_found[\"brem_photons_pe\"]\n",
  386. "event_cut = ak.all(ph_e<cutoff_energy,axis=1)\n",
  387. "ph_e = ph_e[event_cut]\n",
  388. "\"\"\"\n",
  389. "\n",
  390. "efficiencies_found = []\n",
  391. "deff_found = []\n",
  392. "\n",
  393. "\n",
  394. "for cutoff_energy in range(0,30050,1000):\n",
  395. "\tnobrem_f = acc_brem_found[ak.sum(acc_brem_found[\"brem_photons_pe\"],axis=-1,keepdims=False)<cutoff_energy]\n",
  396. "\tnobrem_l = acc_brem_lost[ak.sum(acc_brem_lost[\"brem_photons_pe\"],axis=-1,keepdims=False)<cutoff_energy]\n",
  397. "\n",
  398. "\tif ak.num(nobrem_f,axis=0)+ak.num(nobrem_l,axis=0)==0:\n",
  399. "\t\tefficiencies_found.append(0)\n",
  400. "\t\tdeff_found.append(0)\n",
  401. "\t\tcontinue\n",
  402. "\t\n",
  403. "\teff = t_eff(nobrem_f, nobrem_l)\n",
  404. "\tdeff = eff_err(nobrem_f,nobrem_l)\n",
  405. "\tefficiencies_found.append(eff)\n",
  406. "\tdeff_found.append(deff)\n",
  407. "\t#print(\"cutoff = \",str(cutoff_energy) ,\"MeV, sample size: \",ak.num(nobrem_f,axis=0)+ak.num(nobrem_l,axis=0))\n",
  408. "\t#print(\"eff = \",np.round(t_eff(nobrem_f,nobrem_l),4), \"+/-\", np.round(eff_err(nobrem_f, nobrem_l),4))\n",
  409. "\n",
  410. "\"\"\"\n",
  411. "we see that a cutoff energy of xxxMeV is ideal because the efficiency drops significantly for higher values\n",
  412. "\"\"\"\n",
  413. "cutoff_energy = 350.0 #MeV\n",
  414. "\n",
  415. "\"\"\"\n",
  416. "better statistics: cutoff=xxxMeV - sample size: xxx events and efficiency=xxxx\n",
  417. "\"\"\"\n",
  418. "nobrem_found = acc_brem_found[ak.sum(acc_brem_found[\"brem_photons_pe\"],axis=-1,keepdims=False)<cutoff_energy]\n",
  419. "nobrem_lost = acc_brem_lost[ak.sum(acc_brem_lost[\"brem_photons_pe\"],axis=-1,keepdims=False)<cutoff_energy]\n",
  420. "\n",
  421. "print(\"\\ncutoff energy = 350MeV, sample size:\",ak.num(nobrem_found,axis=0)+ak.num(nobrem_lost,axis=0))\n",
  422. "print(\"eff = \",np.round(t_eff(nobrem_found, nobrem_lost),4), \"+/-\", np.round(eff_err(nobrem_found, nobrem_lost),4))"
  423. ]
  424. },
  425. {
  426. "cell_type": "code",
  427. "execution_count": 11,
  428. "metadata": {},
  429. "outputs": [
  430. {
  431. "data": {
  432. "image/png": "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
  433. "text/plain": [
  434. "<Figure size 640x480 with 1 Axes>"
  435. ]
  436. },
  437. "metadata": {},
  438. "output_type": "display_data"
  439. }
  440. ],
  441. "source": [
  442. "x_ = np.arange(0,30050,step=1000)\n",
  443. "\n",
  444. "plt.errorbar(x_,efficiencies_found, yerr=deff_found, ls=\"\", fmt=\".\", label=\"$\\epsilon(E_{\\gamma,tot})$ \") #, capsize=1)\t\n",
  445. "plt.xlabel(\"cutoff energy [MeV]\")\n",
  446. "plt.ylabel(r\"$\\epsilon$\")\n",
  447. "plt.title(r'$B\\rightarrow K^\\ast ee$, $p>5$GeV, photons w/ brem_vtx_z$<9500$mm')\n",
  448. "plt.ylim([0,1.1])\n",
  449. "plt.xlim([-1000,31000])\n",
  450. "\"\"\"\n",
  451. "plt.yticks(np.arange(0,1.04,step=0.02),minor=True)\n",
  452. "plt.xticks(np.arange(-200,10400,step=200),minor=True)\n",
  453. "\n",
  454. "plt.tick_params(left=True, bottom=True, top=True, right=True,\n",
  455. "\t\t\t\tlabelleft=True, labelbottom=True, labeltop=False, labelright=False,\n",
  456. "\t\t\t\twhich=\"major\",direction=\"in\", length=12, labelsize=\"large\")\n",
  457. "plt.tick_params(left=True, bottom=True, top=True, right=True,\n",
  458. "\t\t\t\tlabelleft=True, labelbottom=True, labeltop=False, labelright=False,\n",
  459. "\t\t\t\twhich=\"minor\",direction=\"in\", length=6)\n",
  460. "\"\"\"\n",
  461. "plt.legend()\n",
  462. "plt.show()"
  463. ]
  464. },
  465. {
  466. "cell_type": "code",
  467. "execution_count": null,
  468. "metadata": {},
  469. "outputs": [],
  470. "source": []
  471. },
  472. {
  473. "cell_type": "code",
  474. "execution_count": 12,
  475. "metadata": {},
  476. "outputs": [
  477. {
  478. "name": "stdout",
  479. "output_type": "stream",
  480. "text": [
  481. "eff = 0.8545 +/- 0.0036\n"
  482. ]
  483. },
  484. {
  485. "data": {
  486. "text/html": [
  487. "<pre>[{energy: 2.58e+04, brem_photons_pe: [9.97e+03, ...], brem_vtx_z: [...], ...},\n",
  488. " {energy: 8.03e+04, brem_photons_pe: [4.91e+03, ...], brem_vtx_z: [...], ...},\n",
  489. " {energy: 5.6e+03, brem_photons_pe: [320, ..., 392], brem_vtx_z: [...], ...},\n",
  490. " {energy: 6.36e+03, brem_photons_pe: [273, ...], brem_vtx_z: [...], ...},\n",
  491. " {energy: 4.67e+04, brem_photons_pe: [8.96e+03, ...], brem_vtx_z: [...], ...},\n",
  492. " {energy: 7.16e+04, brem_photons_pe: [544, ..., 142], brem_vtx_z: [...], ...},\n",
  493. " {energy: 5.15e+04, brem_photons_pe: [384, ...], brem_vtx_z: [...], ...},\n",
  494. " {energy: 4.07e+04, brem_photons_pe: [2.7e+04, ...], brem_vtx_z: [...], ...},\n",
  495. " {energy: 2.77e+04, brem_photons_pe: [2.24e+03, ...], brem_vtx_z: [...], ...},\n",
  496. " {energy: 6.4e+04, brem_photons_pe: [686, ..., 796], brem_vtx_z: [...], ...},\n",
  497. " ...,\n",
  498. " {energy: 5.59e+03, brem_photons_pe: [901, ...], brem_vtx_z: [...], ...},\n",
  499. " {energy: 2.13e+04, brem_photons_pe: [787, ...], brem_vtx_z: [...], ...},\n",
  500. " {energy: 9.34e+03, brem_photons_pe: [762, ...], brem_vtx_z: [...], ...},\n",
  501. " {energy: 5.08e+04, brem_photons_pe: [711, ...], brem_vtx_z: [...], ...},\n",
  502. " {energy: 6.41e+04, brem_photons_pe: [4.17e+03, ...], brem_vtx_z: [...], ...},\n",
  503. " {energy: 1.01e+04, brem_photons_pe: [220, ..., 156], brem_vtx_z: [...], ...},\n",
  504. " {energy: 1.96e+04, brem_photons_pe: [1.66e+03, ...], brem_vtx_z: [...], ...},\n",
  505. " {energy: 2.98e+04, brem_photons_pe: [8.32e+03, ...], brem_vtx_z: [...], ...},\n",
  506. " {energy: 3.97e+04, brem_photons_pe: [9.36e+03, ...], brem_vtx_z: [...], ...}]\n",
  507. "------------------------------------------------------------------------------\n",
  508. "type: 1430 * {\n",
  509. " energy: float64,\n",
  510. " brem_photons_pe: var * float64,\n",
  511. " brem_vtx_z: var * float64,\n",
  512. " brem_vtx_x: var * float64\n",
  513. "}</pre>"
  514. ],
  515. "text/plain": [
  516. "<Array [{energy: 2.58e+04, ...}, ..., {...}] type='1430 * {energy: float64,...'>"
  517. ]
  518. },
  519. "execution_count": 12,
  520. "metadata": {},
  521. "output_type": "execute_result"
  522. }
  523. ],
  524. "source": [
  525. "#wie viel energie relativ zur anfangsenergie verlieren die elektronen durch bremstrahlung und hat das einen einfluss darauf ob wir sie finden oder nicht?\n",
  526. "#if any photon of an electron has an energy higher the cutoff then it is included\n",
  527. "cutoff_energy=350\n",
  528. "\n",
  529. "brem_found = acc_brem_found[ak.sum(acc_brem_found[\"brem_photons_pe\"],axis=-1,keepdims=False)>=cutoff_energy]\n",
  530. "energy_found = ak.to_numpy(brem_found[\"energy\"])\n",
  531. "eph_found = ak.to_numpy(ak.sum(brem_found[\"brem_photons_pe\"], axis=-1, keepdims=False))\n",
  532. "residual_found = energy_found - eph_found\n",
  533. "energyloss_found = eph_found/energy_found\n",
  534. "\n",
  535. "brem_lost = acc_brem_lost[ak.sum(acc_brem_lost[\"brem_photons_pe\"],axis=-1,keepdims=False)>=cutoff_energy]\n",
  536. "energy_lost = ak.to_numpy(brem_lost[\"energy\"])\n",
  537. "eph_lost = ak.to_numpy(ak.sum(brem_lost[\"brem_photons_pe\"], axis=-1, keepdims=False))\n",
  538. "residual_lost = energy_lost - eph_lost\n",
  539. "energyloss_lost = eph_lost/energy_lost\n",
  540. "\n",
  541. "print(\"eff = \", np.round(t_eff(brem_found,brem_lost),4), \"+/-\", np.round(eff_err(brem_found, brem_lost),4))\n",
  542. "brem_lost"
  543. ]
  544. },
  545. {
  546. "cell_type": "code",
  547. "execution_count": 13,
  548. "metadata": {},
  549. "outputs": [
  550. {
  551. "name": "stdout",
  552. "output_type": "stream",
  553. "text": [
  554. "mean energyloss relative to initial energy (found): 0.40459562244424735\n",
  555. "mean energyloss relative to initial energy (lost): 0.7244570697471976\n"
  556. ]
  557. }
  558. ],
  559. "source": [
  560. "mean_energyloss_found = ak.mean(energyloss_found)\n",
  561. "mean_energyloss_lost = ak.mean(energyloss_lost)\n",
  562. "print(\"mean energyloss relative to initial energy (found): \", mean_energyloss_found)\n",
  563. "print(\"mean energyloss relative to initial energy (lost): \", mean_energyloss_lost)"
  564. ]
  565. },
  566. {
  567. "cell_type": "code",
  568. "execution_count": 14,
  569. "metadata": {},
  570. "outputs": [
  571. {
  572. "data": {
  573. "image/png": "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
  574. "text/plain": [
  575. "<Figure size 640x480 with 1 Axes>"
  576. ]
  577. },
  578. "metadata": {},
  579. "output_type": "display_data"
  580. }
  581. ],
  582. "source": [
  583. "#in abhängigkeit von der energie der elektronen\n",
  584. "plt.hist(energyloss_lost, bins=100, density=True, alpha=0.5, histtype='bar', color=\"darkorange\", label=\"lost\")\n",
  585. "plt.hist(energyloss_found, bins=100, density=True, alpha=0.5, histtype='bar', color=\"blue\", label=\"found\")\n",
  586. "#plt.xticks(np.arange(0,1.1,0.1), minor=True,)\n",
  587. "#plt.yticks(np.arange(0,5.5,0.5), minor=True)\n",
  588. "plt.xlabel(r\"$E_\\gamma/E_0$\")\n",
  589. "plt.ylabel(\"counts (normed)\")\n",
  590. "plt.title(r'$B\\rightarrow K^\\ast ee$, $p>5$GeV, photons w/ brem_vtx_z$<9500$mm')\n",
  591. "plt.legend(title=\"LHCb Simulation\", title_fontsize=15)\n",
  592. "#plt.grid()\n",
  593. "\n",
  594. "\"\"\"\n",
  595. "\n",
  596. "\"\"\"\n",
  597. "\n",
  598. "plt.show()"
  599. ]
  600. },
  601. {
  602. "cell_type": "code",
  603. "execution_count": 15,
  604. "metadata": {},
  605. "outputs": [
  606. {
  607. "data": {
  608. "image/png": "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
  609. "text/plain": [
  610. "<Figure size 640x480 with 1 Axes>"
  611. ]
  612. },
  613. "metadata": {},
  614. "output_type": "display_data"
  615. }
  616. ],
  617. "source": [
  618. "both_eloss = np.append(energyloss_found,energyloss_lost)\n",
  619. "plt.hist(both_eloss, bins=100, density=True, histtype='bar', color=\"cornflowerblue\", label=\"all\")\n",
  620. "plt.vlines(ak.mean(both_eloss),0,1.75,colors=\"red\", label=\"mean\")\n",
  621. "plt.xlabel(r\"Energyloss Ratio $E_\\gamma/E_0$\")\n",
  622. "plt.ylabel(\"counts (normed)\")\n",
  623. "plt.title(r'$B^0\\rightarrow K^{\\ast 0} e^+e^-$, $p>5$GeV, photons w/ brem_vtx_z$<9500$mm')\n",
  624. "plt.legend(title=\"LHCb Simulation\", title_fontsize=15)\n",
  625. "plt.show()"
  626. ]
  627. },
  628. {
  629. "cell_type": "code",
  630. "execution_count": 16,
  631. "metadata": {},
  632. "outputs": [],
  633. "source": [
  634. "brem_z_found = ak.to_numpy(ak.flatten(acc_brem_found[\"brem_vtx_z\"]))\n",
  635. "brem_x_found = ak.to_numpy(ak.flatten(acc_brem_found[\"brem_vtx_x\"]))\n",
  636. "\n",
  637. "brem_z_lost = ak.to_numpy(ak.flatten(acc_brem_lost[\"brem_vtx_z\"]))\n",
  638. "brem_x_lost = ak.to_numpy(ak.flatten(acc_brem_lost[\"brem_vtx_x\"]))"
  639. ]
  640. },
  641. {
  642. "cell_type": "code",
  643. "execution_count": 55,
  644. "metadata": {},
  645. "outputs": [
  646. {
  647. "data": {
  648. "text/plain": [
  649. "7935"
  650. ]
  651. },
  652. "execution_count": 55,
  653. "metadata": {},
  654. "output_type": "execute_result"
  655. }
  656. ],
  657. "source": [
  658. "x_lost=np.array([])\n",
  659. "z_lost=np.array([])\n",
  660. "\n",
  661. "for i in range(4):\n",
  662. " x_lost = np.append(x_lost, brem_x_lost)\n",
  663. " z_lost = np.append(z_lost, brem_z_lost)\n",
  664. "\n",
  665. "len(brem_z_lost)"
  666. ]
  667. },
  668. {
  669. "cell_type": "code",
  670. "execution_count": 65,
  671. "metadata": {},
  672. "outputs": [
  673. {
  674. "data": {
  675. "image/png": "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
  676. "text/plain": [
  677. "<Figure size 2000x600 with 3 Axes>"
  678. ]
  679. },
  680. "metadata": {},
  681. "output_type": "display_data"
  682. }
  683. ],
  684. "source": [
  685. "nbins = 150\n",
  686. "nmax = 30\n",
  687. "\n",
  688. "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(20,6))\n",
  689. "\n",
  690. "a0 = ax0.hist2d(brem_z_found[:20000], brem_x_found[:20000], bins=nbins, density=False, cmap=plt.cm.jet, cmin=2, vmax=nmax)\n",
  691. "ax0.set_xlabel(\"z [mm]\")\n",
  692. "ax0.set_ylabel(\"x [mm]\")\n",
  693. "ax0.set_title(r\"\\bf{}found\")\n",
  694. "\n",
  695. "#a1 = ax1.hist2d(z_lost, x_lost, bins=nbins, density=False, cmap=plt.cm.jet, cmin=2, vmax=nmax)\n",
  696. "a1 = ax1.hist2d(brem_z_lost, brem_x_lost, bins=nbins, density=False, cmap=plt.cm.jet, cmin=1, vmax=nmax)\n",
  697. "ax1.set_xlabel(\"z [mm]\")\n",
  698. "ax1.set_ylabel(\"x [mm]\")\n",
  699. "ax1.set_title(r\"\\bf{}lost\")\n",
  700. "#ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  701. "\n",
  702. "plt.suptitle(r\"$B^0\\rightarrow K^{\\ast 0}e^+e^-$, $p>5$GeV, Bremsstrahlung Vertices\")\n",
  703. "plt.colorbar(a1[3], ax=ax1)\n",
  704. "plt.show()"
  705. ]
  706. },
  707. {
  708. "cell_type": "code",
  709. "execution_count": null,
  710. "metadata": {},
  711. "outputs": [],
  712. "source": []
  713. },
  714. {
  715. "cell_type": "code",
  716. "execution_count": null,
  717. "metadata": {},
  718. "outputs": [],
  719. "source": []
  720. },
  721. {
  722. "cell_type": "code",
  723. "execution_count": 14,
  724. "metadata": {},
  725. "outputs": [
  726. {
  727. "data": {
  728. "image/png": "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
  729. "text/plain": [
  730. "<Figure size 1280x550 with 3 Axes>"
  731. ]
  732. },
  733. "metadata": {},
  734. "output_type": "display_data"
  735. }
  736. ],
  737. "source": [
  738. "#energyloss in abh von der energie der elektronen\n",
  739. "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(12.8,5.5))\n",
  740. "\n",
  741. "a0=ax0.hist2d(energyloss_found, energy_found, bins=(np.linspace(0,1,70), np.linspace(0,5e4,70)), cmap=plt.cm.jet, cmin=1, vmax=10)\n",
  742. "ax0.set_ylim(0,5e4)\n",
  743. "ax0.set_xlim(0,1)\n",
  744. "ax0.set_xlabel(r\"energyloss $E_\\gamma/E_0$\")\n",
  745. "ax0.set_ylabel(r\"$E_0$\")\n",
  746. "ax0.set_title(\"found energyloss wrt electron energy\")\n",
  747. "\n",
  748. "a1=ax1.hist2d(energyloss_lost, energy_lost, bins=(np.linspace(0,1,70), np.linspace(0,5e4,70)), cmap=plt.cm.jet, cmin=1, vmax=10) \n",
  749. "ax1.set_ylim(0,5e4)\n",
  750. "ax1.set_xlim(0,1)\n",
  751. "ax1.set_xlabel(r\"energyloss $E_\\gamma/E_0$\")\n",
  752. "ax1.set_ylabel(r\"$E_0$\")\n",
  753. "ax1.set_title(\"lost energyloss wrt electron energy\")\n",
  754. "\n",
  755. "fig.colorbar(a1[3],ax=ax1)\n",
  756. "fig.suptitle(r\"$e^\\pm$ from $B\\rightarrow K^\\ast ee$, $p>5$GeV, only photons w/ brem_vtx_z$<9500$mm\")\n",
  757. "\n",
  758. "\"\"\"\n",
  759. "we can see that high energy electrons are often found even though they emit a lot of their energy through bremsstrahlung\n",
  760. "\"\"\"\n",
  761. "plt.show()"
  762. ]
  763. },
  764. {
  765. "cell_type": "code",
  766. "execution_count": 15,
  767. "metadata": {},
  768. "outputs": [
  769. {
  770. "data": {
  771. "image/png": "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
  772. "text/plain": [
  773. "<Figure size 1280x550 with 3 Axes>"
  774. ]
  775. },
  776. "metadata": {},
  777. "output_type": "display_data"
  778. }
  779. ],
  780. "source": [
  781. "#plot residual energy against energyloss and try to find a good split (eg energyloss before and after the magnet)\n",
  782. "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(12.8,5.5))\n",
  783. "\n",
  784. "a0=ax0.hist2d(energyloss_found, residual_found, bins=(np.linspace(0,1,80), np.linspace(0,6e4,80)), cmap=plt.cm.jet, cmin=1, vmax=15)\n",
  785. "ax0.set_ylim(0,6e4)\n",
  786. "ax0.set_xlim(0,1)\n",
  787. "ax0.set_xlabel(r\"energyloss $E_\\gamma/E_0$\")\n",
  788. "ax0.set_ylabel(r\"$E_0-E_\\gamma$\")\n",
  789. "ax0.set_title(\"found energyloss wrt residual electron energy\")\n",
  790. "\n",
  791. "a1=ax1.hist2d(energyloss_lost, residual_lost, bins=(np.linspace(0,1,80), np.linspace(0,6e4,80)), cmap=plt.cm.jet, cmin=1, vmax=15) \n",
  792. "ax1.set_ylim(0,6e4)\n",
  793. "ax1.set_xlim(0,1)\n",
  794. "ax1.set_xlabel(r\"energyloss $E_\\gamma/E_0$\")\n",
  795. "ax1.set_ylabel(r\"$E_0-E_\\gamma$\")\n",
  796. "ax1.set_title(\"lost energyloss wrt residual electron energy\")\n",
  797. "\n",
  798. "fig.colorbar(a1[3],ax=ax1)\n",
  799. "fig.suptitle(r\"$e^\\pm$ from $B\\rightarrow K^\\ast ee$, $p>5$GeV, only photons w/ brem_vtx_z$<9500$mm\")\n",
  800. "\n",
  801. "\"\"\"\n",
  802. "\"\"\"\n",
  803. "plt.show()"
  804. ]
  805. },
  806. {
  807. "cell_type": "code",
  808. "execution_count": null,
  809. "metadata": {},
  810. "outputs": [],
  811. "source": []
  812. },
  813. {
  814. "cell_type": "code",
  815. "execution_count": 16,
  816. "metadata": {},
  817. "outputs": [],
  818. "source": [
  819. "#ist die shape der teilspur im scifi anders? (koenntest du zum beispiel durch vergleich der verteilungen der fit parameter studieren,\n",
  820. "#in meiner thesis findest du das fitmodell -- ist einfach ein polynom dritten grades)\n",
  821. "z_ref=8520 #mm\n",
  822. "\n",
  823. "def scifi_track(z, a, b, c, d):\n",
  824. " return a + b*(z-z_ref) + c*(z-z_ref)**2 + d*(z-z_ref)**3\n",
  825. "\n",
  826. "def z_mag(xv, zv, tx, a, b):\n",
  827. " \"\"\" optical centre of the magnet is defined as the intersection between the trajectory tangents before and after the magnet\n",
  828. "\n",
  829. " Args:\n",
  830. " xv (double): velo x track\n",
  831. " zv (double): velo z track\n",
  832. " tx (double): velo x slope\n",
  833. " a (double): ax parameter of track fit\n",
  834. " b (double): bx parameter of track fit\n",
  835. "\n",
  836. " Returns:\n",
  837. " double: z_mag\n",
  838. " \"\"\"\n",
  839. " return (xv-tx*zv-a+b*z_ref)/(b-tx)"
  840. ]
  841. },
  842. {
  843. "cell_type": "code",
  844. "execution_count": 17,
  845. "metadata": {},
  846. "outputs": [],
  847. "source": [
  848. "scifi_found = found[found[\"scifi_hit_pos_x_length\"]>3]\n",
  849. "scifi_lost = lost[lost[\"scifi_hit_pos_x_length\"]>3]\n",
  850. "#should be fulfilled by all candidates\n",
  851. "\n",
  852. "scifi_x_found = scifi_found[\"scifi_hit_pos_x\"]\n",
  853. "scifi_z_found = scifi_found[\"scifi_hit_pos_z\"]\n",
  854. "\n",
  855. "tx_found = scifi_found[\"velo_track_tx\"]\n",
  856. "\n",
  857. "scifi_x_lost = scifi_lost[\"scifi_hit_pos_x\"]\n",
  858. "scifi_z_lost = scifi_lost[\"scifi_hit_pos_z\"]\n",
  859. "\n",
  860. "tx_lost = scifi_lost[\"velo_track_tx\"]\n",
  861. "\n",
  862. "xv_found = scifi_found[\"velo_track_x\"]\n",
  863. "zv_found = scifi_found[\"velo_track_z\"]\n",
  864. "\n",
  865. "xv_lost = scifi_lost[\"velo_track_x\"]\n",
  866. "zv_lost = scifi_lost[\"velo_track_z\"]\n",
  867. "\n",
  868. "\n",
  869. "\n",
  870. "sf_energy_found = ak.to_numpy(scifi_found[\"energy\"])\n",
  871. "sf_eph_found = ak.to_numpy(ak.sum(scifi_found[\"brem_photons_pe\"], axis=-1, keepdims=False))\n",
  872. "sf_vtx_type_found = scifi_found[\"all_endvtx_types\"]\n",
  873. "\n",
  874. "\n",
  875. "sf_energy_lost = ak.to_numpy(scifi_lost[\"energy\"])\n",
  876. "sf_eph_lost = ak.to_numpy(ak.sum(scifi_lost[\"brem_photons_pe\"], axis=-1, keepdims=False))\n",
  877. "sf_vtx_type_lost = scifi_lost[\"all_endvtx_types\"]\n",
  878. "\n",
  879. "\n",
  880. "\n",
  881. "#ak.num(scifi_found[\"energy\"], axis=0)\n",
  882. "#scifi_found.snapshot()"
  883. ]
  884. },
  885. {
  886. "cell_type": "code",
  887. "execution_count": 18,
  888. "metadata": {},
  889. "outputs": [
  890. {
  891. "data": {
  892. "text/html": [
  893. "<pre>[101,\n",
  894. " 101,\n",
  895. " 101,\n",
  896. " 101,\n",
  897. " 101,\n",
  898. " 101,\n",
  899. " 101,\n",
  900. " 101,\n",
  901. " 101,\n",
  902. " 101,\n",
  903. " 0]\n",
  904. "------------------\n",
  905. "type: 11 * float32</pre>"
  906. ],
  907. "text/plain": [
  908. "<Array [101, 101, 101, 101, 101, ..., 101, 101, 101, 0] type='11 * float32'>"
  909. ]
  910. },
  911. "execution_count": 18,
  912. "metadata": {},
  913. "output_type": "execute_result"
  914. }
  915. ],
  916. "source": [
  917. "ak.num(scifi_found[\"energy\"], axis=0)\n",
  918. "scifi_found[\"all_endvtx_types\"][1,:]"
  919. ]
  920. },
  921. {
  922. "cell_type": "code",
  923. "execution_count": 19,
  924. "metadata": {},
  925. "outputs": [],
  926. "source": [
  927. "scifi_fitpars_found = ak.ArrayBuilder()\n",
  928. "vtx_types_found = ak.ArrayBuilder()\n",
  929. "\n",
  930. "for i in range(0,ak.num(scifi_found, axis=0)):\n",
  931. " popt, pcov = curve_fit(scifi_track,ak.to_numpy(scifi_z_found[i,:]),ak.to_numpy(scifi_x_found[i,:]))\n",
  932. " scifi_fitpars_found.begin_list()\n",
  933. " scifi_fitpars_found.real(popt[0])\n",
  934. " scifi_fitpars_found.real(popt[1])\n",
  935. " scifi_fitpars_found.real(popt[2])\n",
  936. " scifi_fitpars_found.real(popt[3])\n",
  937. " #[:,4] -> energy \n",
  938. " scifi_fitpars_found.real(sf_energy_found[i])\n",
  939. " #[:,5] -> photon energy\n",
  940. " scifi_fitpars_found.real(sf_eph_found[i])\n",
  941. " scifi_fitpars_found.end_list()\n",
  942. " \n",
  943. " vtx_types_found.begin_list()\n",
  944. " #[:,0] -> endvtx_type\n",
  945. " vtx_types_found.extend(sf_vtx_type_found[i,:])\n",
  946. " vtx_types_found.end_list()\n",
  947. " \n",
  948. "\n",
  949. "scifi_fitpars_lost = ak.ArrayBuilder()\n",
  950. "vtx_types_lost = ak.ArrayBuilder()\n",
  951. "\n",
  952. "for i in range(0,ak.num(scifi_lost, axis=0)):\n",
  953. " popt, pcov = curve_fit(scifi_track,ak.to_numpy(scifi_z_lost[i,:]),ak.to_numpy(scifi_x_lost[i,:]))\n",
  954. " scifi_fitpars_lost.begin_list()\n",
  955. " scifi_fitpars_lost.real(popt[0])\n",
  956. " scifi_fitpars_lost.real(popt[1])\n",
  957. " scifi_fitpars_lost.real(popt[2])\n",
  958. " scifi_fitpars_lost.real(popt[3])\n",
  959. " #[:,4] -> energy \n",
  960. " scifi_fitpars_lost.real(sf_energy_lost[i])\n",
  961. " #[:,5] -> photon energy\n",
  962. " scifi_fitpars_lost.real(sf_eph_lost[i])\n",
  963. " scifi_fitpars_lost.end_list()\n",
  964. " \n",
  965. " vtx_types_lost.begin_list()\n",
  966. " #endvtx_type\n",
  967. " vtx_types_lost.extend(sf_vtx_type_lost[i,:])\n",
  968. " vtx_types_lost.end_list()\n",
  969. " \n",
  970. "\n",
  971. "\n",
  972. "scifi_fitpars_lost = ak.to_numpy(scifi_fitpars_lost)\n",
  973. "scifi_fitpars_found = ak.to_numpy(scifi_fitpars_found)\n",
  974. "\n",
  975. "vtx_types_lost = ak.Array(vtx_types_lost)\n",
  976. "vtx_types_found = ak.Array(vtx_types_found)\n",
  977. "\n"
  978. ]
  979. },
  980. {
  981. "cell_type": "code",
  982. "execution_count": 20,
  983. "metadata": {},
  984. "outputs": [
  985. {
  986. "data": {
  987. "text/html": [
  988. "<pre>[101,\n",
  989. " 101,\n",
  990. " 101,\n",
  991. " 101,\n",
  992. " 101,\n",
  993. " 101,\n",
  994. " 101,\n",
  995. " 101,\n",
  996. " 101,\n",
  997. " 101,\n",
  998. " 0]\n",
  999. "------------------\n",
  1000. "type: 11 * float64</pre>"
  1001. ],
  1002. "text/plain": [
  1003. "<Array [101, 101, 101, 101, 101, ..., 101, 101, 101, 0] type='11 * float64'>"
  1004. ]
  1005. },
  1006. "execution_count": 20,
  1007. "metadata": {},
  1008. "output_type": "execute_result"
  1009. }
  1010. ],
  1011. "source": [
  1012. "vtx_types_found[0]"
  1013. ]
  1014. },
  1015. {
  1016. "cell_type": "code",
  1017. "execution_count": null,
  1018. "metadata": {},
  1019. "outputs": [],
  1020. "source": [
  1021. "\n",
  1022. "\n"
  1023. ]
  1024. },
  1025. {
  1026. "cell_type": "code",
  1027. "execution_count": 21,
  1028. "metadata": {},
  1029. "outputs": [
  1030. {
  1031. "data": {
  1032. "image/png": "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
  1033. "text/plain": [
  1034. "<Figure size 1280x550 with 3 Axes>"
  1035. ]
  1036. },
  1037. "metadata": {},
  1038. "output_type": "display_data"
  1039. }
  1040. ],
  1041. "source": [
  1042. "#b parameter des fits [:,1] hat für lost eine breitere Verteilung. Warum?\n",
  1043. "#evtl multiple scattering candidates (lost); findet man einen gewissen endvtx_type (mult scattering)\n",
  1044. "#steiler velo winkel (eta)? vertex type? evtl bremsstrahlung?\n",
  1045. "\n",
  1046. "#isolate b parameters for analysis\n",
  1047. "b_found = scifi_fitpars_found[:,1]\n",
  1048. "b_lost = scifi_fitpars_lost[:,1]\n",
  1049. "\n",
  1050. "brem_energy_found = scifi_fitpars_found[:,5]\n",
  1051. "brem_energy_lost = scifi_fitpars_lost[:,5]\n",
  1052. "\n",
  1053. "\n",
  1054. "bs_found, vtxs_types_found = ak.broadcast_arrays(b_found, vtx_types_found)\n",
  1055. "bs_found = ak.to_numpy(ak.ravel(bs_found))\n",
  1056. "vtxs_types_found = ak.to_numpy(ak.ravel(vtxs_types_found))\n",
  1057. "\n",
  1058. "bs_lost, vtxs_types_lost = ak.broadcast_arrays(b_lost, vtx_types_lost)\n",
  1059. "bs_lost = ak.to_numpy(ak.ravel(bs_lost))\n",
  1060. "vtxs_types_lost = ak.to_numpy(ak.ravel(vtxs_types_lost))\n",
  1061. "\n",
  1062. "\n",
  1063. "\n",
  1064. "\n",
  1065. "#Erste Annahme ist Bremsstrahlung\n",
  1066. "\n",
  1067. "fig, axes = plt.subplots(nrows=1,ncols=2,figsize=(12.8,5.5))\n",
  1068. "\n",
  1069. "\n",
  1070. "n_bins = (np.linspace(-1,1,100), np.linspace(0,1e5,100))\n",
  1071. "\n",
  1072. "h0 = axes[0].hist2d(b_found, brem_energy_found, bins=n_bins, cmap=plt.cm.jet, cmin=1,vmax=15)\n",
  1073. "axes[0].set_xlim(-1,1)\n",
  1074. "axes[0].set_ylim(0,1e5)\n",
  1075. "axes[0].set_xlabel(\"b parameter [mm]\")\n",
  1076. "axes[0].set_ylabel(r\"$E_{ph}$\")\n",
  1077. "axes[0].set_title(\"found photon energy wrt b parameter\")\n",
  1078. "\n",
  1079. "h1 = axes[1].hist2d(b_lost, brem_energy_lost, bins=n_bins, cmap=plt.cm.jet, cmin=1,vmax=15)\n",
  1080. "axes[1].set_xlim(-1,1)\n",
  1081. "axes[1].set_ylim(0,1e5)\n",
  1082. "axes[1].set_xlabel(\"b parameter [mm]\")\n",
  1083. "axes[1].set_ylabel(r\"$E_{ph}$\")\n",
  1084. "axes[1].set_title(\"lost photon energy wrt b parameter\")\n",
  1085. "\n",
  1086. "fig.colorbar(h1[3], ax=axes[1])\n",
  1087. "\n",
  1088. "\"\"\"\n",
  1089. "\"\"\"\n",
  1090. "\n",
  1091. "plt.show()"
  1092. ]
  1093. },
  1094. {
  1095. "cell_type": "code",
  1096. "execution_count": null,
  1097. "metadata": {},
  1098. "outputs": [],
  1099. "source": []
  1100. },
  1101. {
  1102. "cell_type": "code",
  1103. "execution_count": 22,
  1104. "metadata": {},
  1105. "outputs": [
  1106. {
  1107. "data": {
  1108. "image/png": "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
  1109. "text/plain": [
  1110. "<Figure size 1280x550 with 3 Axes>"
  1111. ]
  1112. },
  1113. "metadata": {},
  1114. "output_type": "display_data"
  1115. }
  1116. ],
  1117. "source": [
  1118. "fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(12.8,5.5))\n",
  1119. "\n",
  1120. "a0=ax[0].hist2d(bs_found, vtxs_types_found, bins=110, density=True, cmap=plt.cm.jet, cmin=1e-20,vmax=2)\n",
  1121. "ax[0].set_ylim(0,110)\n",
  1122. "ax[0].set_xlim(-1,1)\n",
  1123. "ax[0].set_xlabel(\"b\")\n",
  1124. "ax[0].set_ylabel(\"endvtx id\")\n",
  1125. "ax[0].set_title(\"found endvtx id wrt b parameter\")\n",
  1126. "#ax[0].set_yticks(np.arange(0,110,1),minor=True)\n",
  1127. "\n",
  1128. "a1=ax[1].hist2d(bs_lost, vtxs_types_lost, bins=110, density=True, cmap=plt.cm.jet, cmin=1e-20,vmax=2)\n",
  1129. "ax[1].set_ylim(0,110)\n",
  1130. "ax[1].set_xlim(-1,1)\n",
  1131. "ax[1].set_xlabel(\"b\")\n",
  1132. "ax[1].set_ylabel(\"endvtx id\")\n",
  1133. "ax[1].set_title(\"lost endvtx id wrt b paraneter\")\n",
  1134. "#ax[1].set_yticks(np.arange(0,110,1), minor=True)\n",
  1135. "\n",
  1136. "\"\"\"\n",
  1137. "vtx_id: 101 - Bremsstrahlung\n",
  1138. "B:\n",
  1139. "wir können nicht wirklich sagen dass bei den lost teilchen jegliche endvertex types überwiegen, im gegensatz zu den found \n",
  1140. "\"\"\"\n",
  1141. "fig.colorbar(a0[3], ax=ax, orientation='vertical',)\n",
  1142. "plt.show()"
  1143. ]
  1144. },
  1145. {
  1146. "cell_type": "code",
  1147. "execution_count": null,
  1148. "metadata": {},
  1149. "outputs": [],
  1150. "source": []
  1151. },
  1152. {
  1153. "cell_type": "code",
  1154. "execution_count": 23,
  1155. "metadata": {},
  1156. "outputs": [
  1157. {
  1158. "data": {
  1159. "image/png": "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
  1160. "text/plain": [
  1161. "<Figure size 1280x800 with 4 Axes>"
  1162. ]
  1163. },
  1164. "metadata": {},
  1165. "output_type": "display_data"
  1166. }
  1167. ],
  1168. "source": [
  1169. "fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(nrows=2, ncols=2, figsize=(12.8,8))\n",
  1170. "\n",
  1171. "ax0.hist(scifi_fitpars_found[:,0], bins=100, density=True, alpha=0.5, histtype='bar', color=\"blue\", label=r\"$a_x$ found\")\n",
  1172. "ax0.hist(scifi_fitpars_lost[:,0], bins=100, density=True, alpha=0.5, histtype='bar', color=\"darkorange\", label=r\"$a_x$ lost\")\n",
  1173. "ax0.set_xlabel(\"a\")\n",
  1174. "ax0.set_ylabel(\"normed\")\n",
  1175. "ax0.set_title(\"fitparameter a der scifi track\")\n",
  1176. "ax0.legend()\n",
  1177. "\n",
  1178. "ax1.hist(scifi_fitpars_found[:,1], bins=100, density=True, alpha=0.5, histtype='bar', color=\"blue\", label=r\"$b_x$ found\")\n",
  1179. "ax1.hist(scifi_fitpars_lost[:,1], bins=100, density=True, alpha=0.5, histtype='bar', color=\"darkorange\", label=r\"$b_x$ lost\")\n",
  1180. "ax1.set_xticks(np.arange(-1,1,0.1),minor=True)\n",
  1181. "ax1.set_xlabel(\"b\")\n",
  1182. "ax1.set_ylabel(\"normed\")\n",
  1183. "ax1.set_title(\"fitparameter b der scifi track\")\n",
  1184. "ax1.legend()\n",
  1185. "#evtl multiple scattering candidates (lost); findet man einen gewissen endvtx_type (mult scattering)\n",
  1186. "#steiler velo winkel (eta)? vertex type? evtl bremsstrahlung?\n",
  1187. "\n",
  1188. "\n",
  1189. "ax2.hist(scifi_fitpars_found[:,2], bins=500, density=True, alpha=0.5, histtype='bar', color=\"blue\", label=r\"$c_x$ found\")\n",
  1190. "ax2.hist(scifi_fitpars_lost[:,2], bins=500, density=True, alpha=0.5, histtype='bar', color=\"darkorange\", label=r\"$c_x$ lost\")\n",
  1191. "ax2.set_xlim([-3e-5,3e-5])\n",
  1192. "ax2.set_xticks(np.arange(-3e-5,3.5e-5,1e-5),minor=False)\n",
  1193. "ax2.set_xlabel(\"c\")\n",
  1194. "ax2.set_ylabel(\"normed\")\n",
  1195. "ax2.set_title(\"fitparameter c der scifi track\")\n",
  1196. "ax2.legend()\n",
  1197. "\n",
  1198. "ax3.hist(scifi_fitpars_found[:,3], bins=500, density=True, alpha=0.5, histtype='bar', color=\"blue\", label=r\"$d_x$ found\")\n",
  1199. "ax3.hist(scifi_fitpars_lost[:,3], bins=500, density=True, alpha=0.5, histtype='bar', color=\"darkorange\", label=r\"$d_x$ lost\")\n",
  1200. "ax3.set(xlim=(-5e-8,5e-8))\n",
  1201. "ax3.text(-4e-8,3e8,\"d negligible <1e-7\")\n",
  1202. "ax3.set_xlabel(\"d\")\n",
  1203. "ax3.set_ylabel(\"normed\")\n",
  1204. "ax3.set_title(\"fitparameter d der scifi track\")\n",
  1205. "ax3.legend()\n",
  1206. "\n",
  1207. "\"\"\"\n",
  1208. "a_x: virtual hit on the reference plane\n",
  1209. "\"\"\"\n",
  1210. "\n",
  1211. "plt.show()"
  1212. ]
  1213. },
  1214. {
  1215. "cell_type": "code",
  1216. "execution_count": null,
  1217. "metadata": {},
  1218. "outputs": [],
  1219. "source": []
  1220. },
  1221. {
  1222. "cell_type": "code",
  1223. "execution_count": null,
  1224. "metadata": {},
  1225. "outputs": [],
  1226. "source": []
  1227. },
  1228. {
  1229. "cell_type": "code",
  1230. "execution_count": null,
  1231. "metadata": {},
  1232. "outputs": [],
  1233. "source": []
  1234. },
  1235. {
  1236. "cell_type": "code",
  1237. "execution_count": null,
  1238. "metadata": {},
  1239. "outputs": [],
  1240. "source": []
  1241. },
  1242. {
  1243. "cell_type": "code",
  1244. "execution_count": null,
  1245. "metadata": {},
  1246. "outputs": [],
  1247. "source": []
  1248. }
  1249. ],
  1250. "metadata": {
  1251. "kernelspec": {
  1252. "display_name": "env1",
  1253. "language": "python",
  1254. "name": "python3"
  1255. },
  1256. "language_info": {
  1257. "codemirror_mode": {
  1258. "name": "ipython",
  1259. "version": 3
  1260. },
  1261. "file_extension": ".py",
  1262. "mimetype": "text/x-python",
  1263. "name": "python",
  1264. "nbconvert_exporter": "python",
  1265. "pygments_lexer": "ipython3",
  1266. "version": "3.10.12"
  1267. },
  1268. "orig_nbformat": 4
  1269. },
  1270. "nbformat": 4,
  1271. "nbformat_minor": 2
  1272. }