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.

1339 lines
451 KiB

9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 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
8 months ago
9 months ago
8 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
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 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
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 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
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 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
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 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
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 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": 27,
  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. "from mpl_toolkits import mplot3d\n",
  13. "import awkward as ak\n",
  14. "from scipy.optimize import curve_fit\n",
  15. "import mplhep\n",
  16. "mplhep.style.use([\"LHCbTex2\"])\n",
  17. "plt.rcParams[\"savefig.dpi\"] = 600\n",
  18. "%matplotlib inline"
  19. ]
  20. },
  21. {
  22. "cell_type": "code",
  23. "execution_count": 28,
  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(\"tracking_losses_ntuple_Bd2KstEE.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\")\n",
  37. "file = uproot.open(\n",
  38. " \"/work/cetin/Projektpraktikum/tracking_losses_ntuple_B_zmag.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\"\n",
  39. ")\n",
  40. "\n",
  41. "# selektiere nur elektronen von B->K*ee\n",
  42. "allcolumns = file.arrays()\n",
  43. "found = allcolumns[(allcolumns.isElectron) & (~allcolumns.lost) &\n",
  44. " (allcolumns.fromB)] # B: 9056\n",
  45. "lost = allcolumns[(allcolumns.isElectron) & (allcolumns.lost) &\n",
  46. " (allcolumns.fromB)] # B: 1466\n",
  47. "\n",
  48. "electrons = allcolumns[(allcolumns.isElectron) & (allcolumns.fromB)]\n",
  49. "\n",
  50. "print(ak.num(found, axis=0), ak.num(lost, axis=0))\n",
  51. "print(ak.num(electrons, axis=0))\n",
  52. "# ak.count(found, axis=None)"
  53. ]
  54. },
  55. {
  56. "cell_type": "code",
  57. "execution_count": 29,
  58. "metadata": {},
  59. "outputs": [
  60. {
  61. "data": {
  62. "text/html": [
  63. "<pre>{all_endvtx_types_length: 7,\n",
  64. " all_endvtx_types: [101, 101, 101, 101, 101, 101, 0],\n",
  65. " all_endvtx_x_length: 7,\n",
  66. " all_endvtx_x: [-6.97, -52.9, -52.9, ..., -1.71e+03, -2.14e+03, -3.57e+03],\n",
  67. " all_endvtx_y_length: 7,\n",
  68. " all_endvtx_y: [-0.89, -6.75, -6.75, -7.08, -66.1, -72.6, -39.5],\n",
  69. " all_endvtx_z_length: 7,\n",
  70. " all_endvtx_z: [112, 859, 859, 895, 8.7e+03, 9.68e+03, 1.26e+04],\n",
  71. " brem_photons_pe_length: 6,\n",
  72. " brem_photons_pe: [2.62e+03, 812, 2.54e+03, 1.86e+03, 3.12e+03, 241],\n",
  73. " brem_photons_px_length: 6,\n",
  74. " brem_photons_px: [-161, -49.7, -156, -114, -1.18e+03, -101],\n",
  75. " brem_photons_py_length: 6,\n",
  76. " brem_photons_py: [-18.9, -6.92, -21.6, -16.8, -20.9, -0.26],\n",
  77. " brem_photons_pz_length: 6,\n",
  78. " brem_photons_pz: [2.61e+03, 810, 2.54e+03, 1.86e+03, 2.89e+03, 219],\n",
  79. " brem_vtx_x_length: 6,\n",
  80. " brem_vtx_x: [-6.97, -52.9, -52.9, -55.2, -1.71e+03, -2.14e+03],\n",
  81. " brem_vtx_y_length: 6,\n",
  82. " ...}\n",
  83. "---------------------------------------------------------------------------\n",
  84. "type: {\n",
  85. " all_endvtx_types_length: int32,\n",
  86. " all_endvtx_types: var * float32,\n",
  87. " all_endvtx_x_length: int32,\n",
  88. " all_endvtx_x: var * float32,\n",
  89. " all_endvtx_y_length: int32,\n",
  90. " all_endvtx_y: var * float32,\n",
  91. " all_endvtx_z_length: int32,\n",
  92. " all_endvtx_z: var * float32,\n",
  93. " brem_photons_pe_length: int32,\n",
  94. " brem_photons_pe: var * float32,\n",
  95. " brem_photons_px_length: int32,\n",
  96. " brem_photons_px: var * float32,\n",
  97. " brem_photons_py_length: int32,\n",
  98. " brem_photons_py: var * float32,\n",
  99. " brem_photons_pz_length: int32,\n",
  100. " brem_photons_pz: var * float32,\n",
  101. " brem_vtx_x_length: int32,\n",
  102. " brem_vtx_x: var * float32,\n",
  103. " brem_vtx_y_length: int32,\n",
  104. " brem_vtx_y: var * float32,\n",
  105. " brem_vtx_z_length: int32,\n",
  106. " brem_vtx_z: var * float32,\n",
  107. " endvtx_type: int32,\n",
  108. " endvtx_x: float64,\n",
  109. " endvtx_y: float64,\n",
  110. " endvtx_z: float64,\n",
  111. " energy: float64,\n",
  112. " eta: float64,\n",
  113. " event_count: int32,\n",
  114. " fromB: bool,\n",
  115. " fromD: bool,\n",
  116. " fromDecay: bool,\n",
  117. " fromHadInt: bool,\n",
  118. " fromPV: bool,\n",
  119. " fromPairProd: bool,\n",
  120. " fromSignal: bool,\n",
  121. " fromStrange: bool,\n",
  122. " ideal_state_770_qop: float64,\n",
  123. " ideal_state_770_tx: float64,\n",
  124. " ideal_state_770_ty: float64,\n",
  125. " ideal_state_770_x: float64,\n",
  126. " ideal_state_770_y: float64,\n",
  127. " ideal_state_770_z: float64,\n",
  128. " ideal_state_9410_qop: float64,\n",
  129. " ideal_state_9410_tx: float64,\n",
  130. " ideal_state_9410_ty: float64,\n",
  131. " ideal_state_9410_x: float64,\n",
  132. " ideal_state_9410_y: float64,\n",
  133. " ideal_state_9410_z: float64,\n",
  134. " isElectron: bool,\n",
  135. " isKaon: bool,\n",
  136. " isMuon: bool,\n",
  137. " isPion: bool,\n",
  138. " isProton: bool,\n",
  139. " lost: bool,\n",
  140. " lost_in_track_fit: bool,\n",
  141. " match_chi2: float32,\n",
  142. " match_dSlope: float32,\n",
  143. " match_dSlopeY: float32,\n",
  144. " match_distX: float32,\n",
  145. " match_distY: float32,\n",
  146. " match_fraction: float32,\n",
  147. " match_teta2: float32,\n",
  148. " match_zmag: float32,\n",
  149. " mcp_idx: int32,\n",
  150. " mother_id: int32,\n",
  151. " mother_key: int32,\n",
  152. " originvtx_type: int32,\n",
  153. " originvtx_x: float64,\n",
  154. " originvtx_y: float64,\n",
  155. " originvtx_z: float64,\n",
  156. " p: float64,\n",
  157. " p_end_scifi: float64,\n",
  158. " p_end_ut: float64,\n",
  159. " p_end_velo: float64,\n",
  160. " phi: float64,\n",
  161. " pid: int32,\n",
  162. " pt: float64,\n",
  163. " px: float64,\n",
  164. " py: float64,\n",
  165. " pz: float64,\n",
  166. " rad_length_frac: float64,\n",
  167. " scifi_hit_pos_x_length: int32,\n",
  168. " scifi_hit_pos_x: var * float32,\n",
  169. " scifi_hit_pos_y_length: int32,\n",
  170. " scifi_hit_pos_y: var * float32,\n",
  171. " scifi_hit_pos_z_length: int32,\n",
  172. " scifi_hit_pos_z: var * float32,\n",
  173. " track_p: float64,\n",
  174. " track_pt: float64,\n",
  175. " tx: float64,\n",
  176. " ty: float64,\n",
  177. " ut_hit_pos_x_length: int32,\n",
  178. " ut_hit_pos_x: var * float32,\n",
  179. " ut_hit_pos_y_length: int32,\n",
  180. " ut_hit_pos_y: var * float32,\n",
  181. " ut_hit_pos_z_length: int32,\n",
  182. " ut_hit_pos_z: var * float32,\n",
  183. " velo_hit_pos_x_length: int32,\n",
  184. " velo_hit_pos_x: var * float32,\n",
  185. " velo_hit_pos_y_length: int32,\n",
  186. " velo_hit_pos_y: var * float32,\n",
  187. " velo_hit_pos_z_length: int32,\n",
  188. " velo_hit_pos_z: var * float32,\n",
  189. " velo_track_idx: int32,\n",
  190. " velo_track_tx: float64,\n",
  191. " velo_track_ty: float64,\n",
  192. " velo_track_x: float64,\n",
  193. " velo_track_y: float64,\n",
  194. " velo_track_z: float64\n",
  195. "}</pre>"
  196. ],
  197. "text/plain": [
  198. "<Record {all_endvtx_types_length: 7, ...} type='{all_endvtx_types_length: i...'>"
  199. ]
  200. },
  201. "execution_count": 29,
  202. "metadata": {},
  203. "output_type": "execute_result"
  204. }
  205. ],
  206. "source": [
  207. "electrons[0]"
  208. ]
  209. },
  210. {
  211. "cell_type": "code",
  212. "execution_count": 30,
  213. "metadata": {},
  214. "outputs": [
  215. {
  216. "data": {
  217. "text/html": [
  218. "<pre>{lost: True,\n",
  219. " rad_length_frac: 0.129,\n",
  220. " energy: 1.17e+04,\n",
  221. " photon_length: 6,\n",
  222. " brem_photons_pe: [2.62e+03, 812, 2.54e+03, 1.86e+03, 3.12e+03, 241],\n",
  223. " brem_vtx_x: [-6.97, -52.9, -52.9, -55.2, -1.71e+03, -2.14e+03],\n",
  224. " brem_vtx_z: [112, 859, 859, 895, 8.7e+03, 9.68e+03]}\n",
  225. "---------------------------------------------------------------------\n",
  226. "type: {\n",
  227. " lost: bool,\n",
  228. " rad_length_frac: float64,\n",
  229. " energy: float64,\n",
  230. " photon_length: int64,\n",
  231. " brem_photons_pe: var * float64,\n",
  232. " brem_vtx_x: var * float64,\n",
  233. " brem_vtx_z: var * float64\n",
  234. "}</pre>"
  235. ],
  236. "text/plain": [
  237. "<Record {lost: True, rad_length_frac: ..., ...} type='{lost: bool, rad_leng...'>"
  238. ]
  239. },
  240. "execution_count": 30,
  241. "metadata": {},
  242. "output_type": "execute_result"
  243. }
  244. ],
  245. "source": [
  246. "lost_e = electrons[\"lost\"]\n",
  247. "e = electrons[\"energy\"]\n",
  248. "brem_pe = electrons[\"brem_photons_pe\"]\n",
  249. "brem_z = electrons[\"brem_vtx_z\"]\n",
  250. "brem_x = electrons[\"brem_vtx_x\"]\n",
  251. "length = electrons[\"brem_vtx_z_length\"]\n",
  252. "rad_length = electrons[\"rad_length_frac\"]\n",
  253. "\n",
  254. "brem = ak.ArrayBuilder()\n",
  255. "\n",
  256. "for itr in range(ak.num(electrons, axis=0)):\n",
  257. " brem.begin_record()\n",
  258. " brem.field(\"lost\").boolean(lost_e[itr])\n",
  259. " brem.field(\"rad_length_frac\").append(rad_length[itr])\n",
  260. " # [:,\"energy\"] energy\n",
  261. " brem.field(\"energy\").append(e[itr])\n",
  262. " # [:,\"photon_length\"] number of vertices\n",
  263. " brem.field(\"photon_length\").integer(length[itr])\n",
  264. " # [:,\"brem_photons_pe\",:] photon energy\n",
  265. " brem.field(\"brem_photons_pe\").append(brem_pe[itr])\n",
  266. " # [:,\"brem_vtx_z\",:] brem vtx z\n",
  267. " brem.field(\"brem_vtx_x\").append(brem_x[itr])\n",
  268. " brem.field(\"brem_vtx_z\").append(brem_z[itr])\n",
  269. " brem.end_record()\n",
  270. "\n",
  271. "brem = ak.Array(brem)\n",
  272. "brem[0]"
  273. ]
  274. },
  275. {
  276. "cell_type": "code",
  277. "execution_count": 31,
  278. "metadata": {},
  279. "outputs": [],
  280. "source": [
  281. "photon_cut = 0\n",
  282. "photon_cut_ratio = 0.1\n",
  283. "\n",
  284. "cut_brem = ak.ArrayBuilder()\n",
  285. "\n",
  286. "for itr in range(ak.num(brem, axis=0)):\n",
  287. " cut_brem.begin_record()\n",
  288. " cut_brem.field(\"event_id\").integer(itr)\n",
  289. " cut_brem.field(\"lost\").boolean(brem[itr, \"lost\"])\n",
  290. " cut_brem.field(\"rad_length_frac\").real(brem[itr, \"rad_length_frac\"])\n",
  291. " cut_brem.field(\"energy\").real(brem[itr, \"energy\"])\n",
  292. "\n",
  293. " ph_length = brem[itr, \"photon_length\"]\n",
  294. "\n",
  295. " tmp_energy = brem[itr, \"energy\"]\n",
  296. "\n",
  297. " cut_brem.field(\"brem_photons_pe\")\n",
  298. " cut_brem.begin_list()\n",
  299. " for jentry in range(brem[itr, \"photon_length\"]):\n",
  300. " if (brem[itr, \"brem_vtx_z\", jentry] > 9410\n",
  301. " or brem[itr, \"brem_photons_pe\", jentry] < photon_cut\n",
  302. " or brem[itr, \"brem_photons_pe\",\n",
  303. " jentry] < photon_cut_ratio * tmp_energy):\n",
  304. " ph_length -= 1\n",
  305. " continue\n",
  306. " else:\n",
  307. " cut_brem.real(brem[itr, \"brem_photons_pe\", jentry])\n",
  308. " tmp_energy -= brem[itr, \"brem_photons_pe\", jentry]\n",
  309. " cut_brem.end_list()\n",
  310. "\n",
  311. " tmp_energy = brem[itr, \"energy\"]\n",
  312. "\n",
  313. " cut_brem.field(\"brem_vtx_x\")\n",
  314. " cut_brem.begin_list()\n",
  315. " for jentry in range(brem[itr, \"photon_length\"]):\n",
  316. " if (brem[itr, \"brem_vtx_z\", jentry] > 9410\n",
  317. " or brem[itr, \"brem_photons_pe\", jentry] < photon_cut\n",
  318. " or brem[itr, \"brem_photons_pe\",\n",
  319. " jentry] < photon_cut_ratio * tmp_energy):\n",
  320. " continue\n",
  321. " else:\n",
  322. " cut_brem.real(brem[itr, \"brem_vtx_x\", jentry])\n",
  323. " tmp_energy -= brem[itr, \"brem_photons_pe\", jentry]\n",
  324. " cut_brem.end_list()\n",
  325. "\n",
  326. " tmp_energy = brem[itr, \"energy\"]\n",
  327. "\n",
  328. " cut_brem.field(\"brem_vtx_z\")\n",
  329. " cut_brem.begin_list()\n",
  330. " for jentry in range(brem[itr, \"photon_length\"]):\n",
  331. " if (brem[itr, \"brem_vtx_z\", jentry] > 9410\n",
  332. " or brem[itr, \"brem_photons_pe\", jentry] < photon_cut\n",
  333. " or brem[itr, \"brem_photons_pe\",\n",
  334. " jentry] < photon_cut_ratio * tmp_energy):\n",
  335. " continue\n",
  336. " else:\n",
  337. " cut_brem.real(brem[itr, \"brem_vtx_z\", jentry])\n",
  338. " tmp_energy -= brem[itr, \"brem_photons_pe\", jentry]\n",
  339. " cut_brem.end_list()\n",
  340. "\n",
  341. " cut_brem.field(\"photon_length\").integer(ph_length)\n",
  342. "\n",
  343. " cut_brem.end_record()\n",
  344. "\n",
  345. "ntuple = ak.Array(cut_brem)"
  346. ]
  347. },
  348. {
  349. "cell_type": "code",
  350. "execution_count": 32,
  351. "metadata": {},
  352. "outputs": [
  353. {
  354. "name": "stdout",
  355. "output_type": "stream",
  356. "text": [
  357. "63793\n",
  358. "50501\n"
  359. ]
  360. },
  361. {
  362. "data": {
  363. "text/html": [
  364. "<pre>{event_id: 0,\n",
  365. " lost: True,\n",
  366. " rad_length_frac: 0.129,\n",
  367. " energy: 1.17e+04,\n",
  368. " brem_photons_pe: [2.62e+03, 2.54e+03, 1.86e+03, 3.12e+03],\n",
  369. " brem_vtx_x: [-6.97, -52.9, -55.2, -1.71e+03],\n",
  370. " brem_vtx_z: [112, 859, 895, 8.7e+03],\n",
  371. " photon_length: 4}\n",
  372. "-----------------------------------------------------------\n",
  373. "type: {\n",
  374. " event_id: int64,\n",
  375. " lost: bool,\n",
  376. " rad_length_frac: float64,\n",
  377. " energy: float64,\n",
  378. " brem_photons_pe: var * float64,\n",
  379. " brem_vtx_x: var * float64,\n",
  380. " brem_vtx_z: var * float64,\n",
  381. " photon_length: int64\n",
  382. "}</pre>"
  383. ],
  384. "text/plain": [
  385. "<Record {event_id: 0, lost: True, ...} type='{event_id: int64, lost: bool, ...'>"
  386. ]
  387. },
  388. "execution_count": 32,
  389. "metadata": {},
  390. "output_type": "execute_result"
  391. }
  392. ],
  393. "source": [
  394. "print(ak.sum(ak.num(ntuple[\"brem_photons_pe\"], axis=1)))\n",
  395. "print(ak.num(ntuple, axis=0))\n",
  396. "ntuple[0]"
  397. ]
  398. },
  399. {
  400. "cell_type": "code",
  401. "execution_count": null,
  402. "metadata": {},
  403. "outputs": [],
  404. "source": []
  405. },
  406. {
  407. "cell_type": "code",
  408. "execution_count": 33,
  409. "metadata": {},
  410. "outputs": [],
  411. "source": [
  412. "# nulltuple = ntuple[:7000]\n",
  413. "# onetuple = ntuple[7000:14000]\n",
  414. "# twotuple = ntuple[14000:21000]\n",
  415. "# threetuple = ntuple[21000:28000]\n",
  416. "# fourtuple = ntuple[28000:35000]\n",
  417. "# fivetuple = ntuple[35000:42000]\n",
  418. "# sixtuple = ntuple[42000:49000]\n",
  419. "# seventuple = ntuple[49000:]\n",
  420. "\n",
  421. "# ntuple.nbytes"
  422. ]
  423. },
  424. {
  425. "cell_type": "code",
  426. "execution_count": 34,
  427. "metadata": {},
  428. "outputs": [],
  429. "source": [
  430. "# cut = \"tenCut\"\n",
  431. "# tree = \"Tree10\"\n",
  432. "# with uproot.update(\"trackinglosses_B_photon_cuts.root\") as outFile:\n",
  433. "# #outFile[\"README\"] = \"The Cuts are placed on the photons. noCut: 0*E, first: 0.05*E, second: 0.1*E, etc.\"\n",
  434. "# outFile.mktree(tree, {cut + \"_event_id\": ntuple[\"event_id\"].type, cut + \"_lost\": ntuple[\"lost\"].type, cut + \"_rad_length_frac\": ntuple[\"rad_length_frac\"].type, cut + \"_energy\": ntuple[\"energy\"].type, cut + \"_brem_photons_pe\": ntuple[\"brem_photons_pe\"].type, cut + \"_brem_vtx_x\": ntuple[\"brem_vtx_x\"].type, cut + \"_brem_vtx_z\": ntuple[\"brem_vtx_z\"].type, cut + \"_photon_length\": ntuple[\"photon_length\"].type} )\n",
  435. "# outFile[tree].extend( {cut + \"_event_id\": nulltuple[\"event_id\"], cut + \"_lost\": nulltuple[\"lost\"], cut + \"_rad_length_frac\": nulltuple[\"rad_length_frac\"], cut + \"_energy\": nulltuple[\"energy\"], cut + \"_brem_photons_pe\": nulltuple[\"brem_photons_pe\"], cut + \"_brem_vtx_x\": nulltuple[\"brem_vtx_x\"], cut + \"_brem_vtx_z\": nulltuple[\"brem_vtx_z\"], cut + \"_photon_length\": nulltuple[\"photon_length\"]} )\n",
  436. "# outFile[tree].extend( {cut + \"_event_id\": onetuple[\"event_id\"], cut + \"_lost\": onetuple[\"lost\"], cut + \"_rad_length_frac\": onetuple[\"rad_length_frac\"], cut + \"_energy\": onetuple[\"energy\"], cut + \"_brem_photons_pe\": onetuple[\"brem_photons_pe\"], cut + \"_brem_vtx_x\": onetuple[\"brem_vtx_x\"], cut + \"_brem_vtx_z\": onetuple[\"brem_vtx_z\"], cut + \"_photon_length\": onetuple[\"photon_length\"]} )\n",
  437. "# outFile[tree].extend( {cut + \"_event_id\": twotuple[\"event_id\"], cut + \"_lost\": twotuple[\"lost\"], cut + \"_rad_length_frac\": twotuple[\"rad_length_frac\"], cut + \"_energy\": twotuple[\"energy\"], cut + \"_brem_photons_pe\": twotuple[\"brem_photons_pe\"], cut + \"_brem_vtx_x\": twotuple[\"brem_vtx_x\"], cut + \"_brem_vtx_z\": twotuple[\"brem_vtx_z\"], cut + \"_photon_length\": twotuple[\"photon_length\"]} )\n",
  438. "# outFile[tree].extend( {cut + \"_event_id\": threetuple[\"event_id\"], cut + \"_lost\": threetuple[\"lost\"], cut + \"_rad_length_frac\": threetuple[\"rad_length_frac\"], cut + \"_energy\": threetuple[\"energy\"], cut + \"_brem_photons_pe\": threetuple[\"brem_photons_pe\"], cut + \"_brem_vtx_x\": threetuple[\"brem_vtx_x\"], cut + \"_brem_vtx_z\": threetuple[\"brem_vtx_z\"], cut + \"_photon_length\": threetuple[\"photon_length\"]} )\n",
  439. "# outFile[tree].extend( {cut + \"_event_id\": fourtuple[\"event_id\"], cut + \"_lost\": fourtuple[\"lost\"], cut + \"_rad_length_frac\": fourtuple[\"rad_length_frac\"], cut + \"_energy\": fourtuple[\"energy\"], cut + \"_brem_photons_pe\": fourtuple[\"brem_photons_pe\"], cut + \"_brem_vtx_x\": fourtuple[\"brem_vtx_x\"], cut + \"_brem_vtx_z\": fourtuple[\"brem_vtx_z\"], cut + \"_photon_length\": fourtuple[\"photon_length\"]} )\n",
  440. "# outFile[tree].extend( {cut + \"_event_id\": fivetuple[\"event_id\"], cut + \"_lost\": fivetuple[\"lost\"], cut + \"_rad_length_frac\": fivetuple[\"rad_length_frac\"], cut + \"_energy\": fivetuple[\"energy\"], cut + \"_brem_photons_pe\": fivetuple[\"brem_photons_pe\"], cut + \"_brem_vtx_x\": fivetuple[\"brem_vtx_x\"], cut + \"_brem_vtx_z\": fivetuple[\"brem_vtx_z\"], cut + \"_photon_length\": fivetuple[\"photon_length\"]} )\n",
  441. "# outFile[tree].extend( {cut + \"_event_id\": sixtuple[\"event_id\"], cut + \"_lost\": sixtuple[\"lost\"], cut + \"_rad_length_frac\": sixtuple[\"rad_length_frac\"], cut + \"_energy\": sixtuple[\"energy\"], cut + \"_brem_photons_pe\": sixtuple[\"brem_photons_pe\"], cut + \"_brem_vtx_x\": sixtuple[\"brem_vtx_x\"], cut + \"_brem_vtx_z\": sixtuple[\"brem_vtx_z\"], cut + \"_photon_length\": sixtuple[\"photon_length\"]} )\n",
  442. "# outFile[tree].extend( {cut + \"_event_id\": seventuple[\"event_id\"], cut + \"_lost\": seventuple[\"lost\"], cut + \"_rad_length_frac\": seventuple[\"rad_length_frac\"], cut + \"_energy\": seventuple[\"energy\"], cut + \"_brem_photons_pe\": seventuple[\"brem_photons_pe\"], cut + \"_brem_vtx_x\": seventuple[\"brem_vtx_x\"], cut + \"_brem_vtx_z\": seventuple[\"brem_vtx_z\"], cut + \"_photon_length\": seventuple[\"photon_length\"]} )"
  443. ]
  444. },
  445. {
  446. "cell_type": "code",
  447. "execution_count": null,
  448. "metadata": {},
  449. "outputs": [],
  450. "source": []
  451. },
  452. {
  453. "cell_type": "code",
  454. "execution_count": null,
  455. "metadata": {},
  456. "outputs": [],
  457. "source": []
  458. },
  459. {
  460. "cell_type": "code",
  461. "execution_count": 35,
  462. "metadata": {},
  463. "outputs": [
  464. {
  465. "name": "stdout",
  466. "output_type": "stream",
  467. "text": [
  468. "50501\n"
  469. ]
  470. },
  471. {
  472. "data": {
  473. "text/html": [
  474. "<pre>{event_id: 1,\n",
  475. " lost: False,\n",
  476. " rad_length_frac: 0.148,\n",
  477. " energy: 1.28e+04,\n",
  478. " brem_photons_pe: [7.42e+03, 1.88e+03],\n",
  479. " brem_vtx_x: [-3.61, -61.5],\n",
  480. " brem_vtx_z: [35.6, 8.49e+03],\n",
  481. " photon_length: 2}\n",
  482. "---------------------------------------\n",
  483. "type: {\n",
  484. " event_id: int64,\n",
  485. " lost: bool,\n",
  486. " rad_length_frac: float64,\n",
  487. " energy: float64,\n",
  488. " brem_photons_pe: var * float64,\n",
  489. " brem_vtx_x: var * float64,\n",
  490. " brem_vtx_z: var * float64,\n",
  491. " photon_length: int64\n",
  492. "}</pre>"
  493. ],
  494. "text/plain": [
  495. "<Record {event_id: 1, lost: False, ...} type='{event_id: int64, lost: bool,...'>"
  496. ]
  497. },
  498. "execution_count": 35,
  499. "metadata": {},
  500. "output_type": "execute_result"
  501. }
  502. ],
  503. "source": [
  504. "# data in cut_brem_found and cut_brem_lost\n",
  505. "\n",
  506. "length_found = ak.num(ntuple[~ntuple.lost][\"brem_photons_pe\"], axis=0)\n",
  507. "length_lost = ak.num(ntuple[ntuple.lost][\"brem_photons_pe\"], axis=0)\n",
  508. "print(length_found + length_lost)\n",
  509. "ntuple[1]"
  510. ]
  511. },
  512. {
  513. "cell_type": "code",
  514. "execution_count": 36,
  515. "metadata": {},
  516. "outputs": [],
  517. "source": [
  518. "Z_found = ak.to_numpy(\n",
  519. " ak.sum(ntuple[~ntuple.lost][\"brem_photons_pe\"], axis=-1,\n",
  520. " keepdims=False)) / ak.to_numpy(ntuple[~ntuple.lost][\"energy\"])\n",
  521. "Z_lost = ak.to_numpy(\n",
  522. " ak.sum(ntuple[ntuple.lost][\"brem_photons_pe\"], axis=-1,\n",
  523. " keepdims=False)) / ak.to_numpy(ntuple[ntuple.lost][\"energy\"])"
  524. ]
  525. },
  526. {
  527. "cell_type": "code",
  528. "execution_count": 37,
  529. "metadata": {},
  530. "outputs": [
  531. {
  532. "data": {
  533. "image/png": "iVBORw0KGgoAAAANSUhEUgAABMIAAAOWCAYAAAANzz7PAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABnG0lEQVR4nO39z29jeXof+j/SNO6NEw9NVV8EIMQAbsrZ3YVNVRu4sxqkyPsPRKr6AwYt7ZVEdGdVK3ckw1wGEcuzT5WUZBtYbKNWMZAuMc6Fd4k4A7QEAkG6xOE4ie8FTH0X9SVN6gdFShQPqfN6AUKJxQ/PeXRwROm89Xw+Z+ny8vIyAAAAAOCJW066AAAAAACYBUEYAAAAAKkgCAMAAAAgFQRhAAAAAKSCIAwAAACAVBCEAQAAAJAKgjAAAAAAUkEQBgAAAEAqCMIAAAAASAVBGAAAAACpIAgDAAAAIBUEYQAAAACkgiAMAAAAgFQQhAEAAACQCoIwAAAAAFJBEAYAAABAKgjCAAAAAEgFQRgAAAAAqSAIAwAAACAVBGEAAAAApIIgDAAAAIBUEIQBAAAAkAqCMAAAAABSQRAGAAAAQCoIwgAAAABIBUEYAAAAAKkgCAMAAAAgFQRhAAAAAKSCIAwAgIXQbrej0WhEs9lMuhQAYEEJwgAAWAiVSiXW19ejXq8nXQoAsKAEYQAAC2h/fz/W19djaWnpwR+1Wi3pL2cs7969i4iIly9f3jk2jccHALjb0uXl5WXSRQAAcD/tdju++OKLaLfb/f8rFApRqVSiUCgMjfv48WO02+347rvv4ujoqP/cyclJFIvFWZY9sUajEevr61EsFuPk5GTs16Xl+AAA4/ks6QIAALi/bDYbhUIhGo1G//8ODg6iVCqNfF273Y719fVoNpsLEfK8ffs2IiJevXo10evScnwAgPGYGgkAsOCuLh5/V8gT8Skg2tjYWJiQp9ehtbGxMfFr03B8AIDx6AgDAFhgzWZzaNrfOCFPz9ra2tBr51Wz2YxmsxmFQmFoOuO4r33qxwcAGJ+OMACABXb1Doqbm5sTvb5cLk+znEfxkG6wNBwfAGB8OsIAABbY8fHx0ONJOp62tramXc6juO/6YBHpOD4AwPjcNRIAYIEtLS31Py8UCnF6enrr2KOjo3t1VSWp3W7HyspKZLPZuLi4mPj1T/34AACTMTUSAGBBDd4JMWL01MF6vX6tO2oRvHv3LiIiXr58OfFr03B8AIDJCMIAABZUb8pgz6j1rLa3txdyvavDw8OImHxtr4h0HB8AYDKmRgIALKj19fWhrqebfq2r1+tRqVSi0Wjc+Pw8e+i0yKd+fACAyVksHwBgAbXb7WtT/9bW1iIi4uPHj/0xPZMsEj8vetMi71N7Go4PADA5QRgAwAKq1+tDjzc2NqJQKETEp4Dn48eP0Ww2+2HQfaYWPlSj0YgPHz5EqVTq1zaJ3rTI+9wtchGODwAwe6ZGAgAsoM3NzTg6Ouo/Pj09vTFsqtVqsb29fevzj2F/fz/evn3bD5nuu+/eHR/v8+vqYx+fWq3WD+o+fvwYhUIhvv766ygWixPXCgDMjo4wAIAFNNjxlM1mbw1xCoVC/2NWdnd3o1Qqxfr6+r333QuxRt3pcZTHPD7lcjk+fPgQJycn/ddVKpVYX1+Pw8PDe9cMADw+d40EAFgwjUZjaH2rly9f3jq22WwmEsx8+PAhIu6/9lbvjo/3mRb5mMdne3s76vV6vHnzZig829vbi2KxGJubm9FsNieuGQCYDUEYAMCCubr+1aj1rZ4/fx7b29uPXdI1x8fHEfGpe+o+el/jfYK0xzo+zWYzarVaZLPZG8Oz3nYqlcoE1QIAs2SNMACABbO+vj50R8R5/HVuZWUl2u12XFxcRDabnei19Xo9yuVylEqlfqA2icc6Ptvb21Gr1WJjY6O/PtigZrPZvzPlfb5uAODx6QgDAFgg7XZ7KOS579TDwYXkp603NbFYLN4rDOqFTPe5k+NjHp93795FRMSXX35542sGp0rWarV77RcAeFyCMACABXJ12t99ph7WarU4ODi48blGoxGVSiU2NzdjbW2tH0bVarVYW1uLpaWlWFtbGxmk3TSt8ejoKNbX12NpaSn29/dH1tcLnEat7XXXvnumdXyazWZ/3bFR4V4vDDs9PZ14vwDA4xOEAQAskKtTBSfteKrX67G9vX3rOlbFYjG+/vrrqNfr0Ww2o1wu99e+Ojw8jN3d3Wg2m7G5uTnUeXVTjb0QqlKpxNu3b/u1jlpD66HdZI91fAYX33/27Nmtr+/VbMF8AJhPgjAAgAXS65bqKRaLY7+2VqtFuVyObDY7MiAaDKBOTk6iUqnE1tZWFIvF2Nvb63c93dZVNtgRtr+/H19++WUcHh7G119/fWeND7lbZMTjHZ/BYGtUQNcLyQRhADCfPku6AAAAxtPrluoZXJNqlGazGdvb2/2Aamtr687xvf1sbm5e208vCPr48eO11w6GYEdHR1EoFPp3WOw9N6ru3pTLm+7KeJdZHR8AYHEJwgAAFkC73Y6vvvpq6P96UxRfvXrVD6fa7XY0m8344YcfotlsRqPRuNad1JvqeJteIFQsFm/sHOuFTTcFTb2picViMZrNZuzu7l577raQq9lsRrPZjEKhMHaINVjTYx6fwXoGw7areuGgO0YCwHwShAEAzLlyuXxtEfieo6Ojie4AWSwW7wyZeoHVTdMTe0FSxM13T+zVUq/X4+TkZOi53tdw2wL29+0Gm8XxGfy/mzrhekaFhABA8gRhAABz7uoC8I+tFyrdFEj11uDKZrPXnh8Mya6uB9br9oq4fQH7+64PNovjk81mI5vNRrvdHqsj7D53qwQAHp/F8gEA6Outs3Xb9MS9vb2hfwcNrgF2NSQbFa5FfArRGo1GZLPZiRa4n6WXL19GRMR333134/ODIdmkd6sEAGZDEAYAQN+owKpWq0Wz2YxSqXTjgvK9jq6b1ti6Ot3y6rpcvU6zXtg0j3pf123TMAdvFGBqJADMJ0EYAAB9vcDq6vpf7XY7KpVKFIvFW6cijgrRBkOiZrN5bd2uw8PDiPh0l8p5VSwWY2NjI9rt9o1h2DfffBMRN3fLAQDzYeny8vIy6SIAAJgPS0tLERFxcnLSn6LYbDajXC5HqVSKg4ODG1/XbDZjbW0tstlsXFxc3PhcRMTBwUGcnJwMbafdbsfKysqNr5037XY7Njc3o9lsxsnJSf/ukPv7+1GpVOLw8HDixf4BgNmxWD4AABHxt11b2Ww2vvnmmygUCv01rw4PD0eu3dVsNqNYLN640H1vvbGPHz/G6enptTCtNy1yEdbVymazcXx8HLVaLTY3N/sL6Gez2Tg9PTUlEgDmnI4wAAAiIqJSqcT+/n7s7u7OdHpfs9nsL9Df67ACAHgMOsIAAIiIv+0IK5fLM92vLioAYFZ0hAEAEBF/uz7YxcWFziwA4Ely10gAAPrdYKYnAgBPmSAMACDl6vV6VCqViPi0Xle9Xu8vkg8A8JSYGkni/t7f+3vxv/7X/4rLy8tYXh6dzf74xz+O3/zN35xRZQCQDn/913997f8+++yz+Owzy8kCAJP5q7/6q/j1r389cky3242lpaX4jd/4jfgf/+N/zKiyTwRhJG55eTmchgAAAJAuS0tL0e12Z7pPf+YjcYMh2CJ1hLVareh2u7G8vBy5XC7pciai9tlb1LojFrf2Ra07Qu1JWNS6I9SehEWtO0LtSVjUuiPUnoRFrTtC7UmY17rH7QiLiESaYgRhJG55ebn/zfs3f/M3SZcztnw+H+fn55HL5eLs7Czpciai9tlb1LojFrf2Ra07Qu1JWNS6I9SehEWtO0LtSVjUuiPUnoRFrTtC7UlY1LojIn70ox/1c4BZs1g+AAAAAKnwpIOwX/3qV/Hq1av40Y9+FL//+78fnU4n6ZIAAAAASMiTDsIqlUocHh7G5eVlnJycxMuXL5MuCQAAAICEPOk1wur1eiwtLUXEpwXYjo+PE64IAAAAgKQ86Y6wFy9eDN2BoFQqJVgNAAAAAEl60h1hBwcHERHx7bffRrFYjDd
  534. "text/plain": [
  535. "<Figure size 1200x900 with 1 Axes>"
  536. ]
  537. },
  538. "metadata": {},
  539. "output_type": "display_data"
  540. }
  541. ],
  542. "source": [
  543. "xlim = 0\n",
  544. "\n",
  545. "plt.hist(\n",
  546. " Z_lost,\n",
  547. " bins=100,\n",
  548. " density=True,\n",
  549. " alpha=0.5,\n",
  550. " histtype=\"bar\",\n",
  551. " color=\"darkorange\",\n",
  552. " label=\"lost\",\n",
  553. " range=[xlim, 1],\n",
  554. ")\n",
  555. "plt.hist(\n",
  556. " Z_found,\n",
  557. " bins=100,\n",
  558. " density=True,\n",
  559. " alpha=0.5,\n",
  560. " histtype=\"bar\",\n",
  561. " color=\"blue\",\n",
  562. " label=\"found\",\n",
  563. " range=[xlim, 1],\n",
  564. ")\n",
  565. "plt.yscale(\"log\")\n",
  566. "plt.xlabel(r\"$E_\\gamma/E_0$\")\n",
  567. "plt.ylabel(\"a.u.\")\n",
  568. "plt.title(r\"$E_{ph}/E_0$\")\n",
  569. "plt.legend()\n",
  570. "plt.show()"
  571. ]
  572. },
  573. {
  574. "cell_type": "code",
  575. "execution_count": 38,
  576. "metadata": {},
  577. "outputs": [
  578. {
  579. "name": "stdout",
  580. "output_type": "stream",
  581. "text": [
  582. "found: 44660 , lost: 19133\n",
  583. "0.4284146887595163\n"
  584. ]
  585. },
  586. {
  587. "data": {
  588. "text/html": [
  589. "<pre>[-3.61,\n",
  590. " -61.5,\n",
  591. " -33.8,\n",
  592. " -133,\n",
  593. " -799,\n",
  594. " 65.2,\n",
  595. " -5.73,\n",
  596. " -26.6,\n",
  597. " -4.26,\n",
  598. " -396,\n",
  599. " ...,\n",
  600. " -13.1,\n",
  601. " -25.6,\n",
  602. " -140,\n",
  603. " -4.27,\n",
  604. " -4.27,\n",
  605. " -103,\n",
  606. " 8.82,\n",
  607. " 12.8,\n",
  608. " -17.8]\n",
  609. "---------------------\n",
  610. "type: 44660 * float64</pre>"
  611. ],
  612. "text/plain": [
  613. "<Array [-3.61, -61.5, -33.8, ..., 8.82, 12.8, -17.8] type='44660 * float64'>"
  614. ]
  615. },
  616. "execution_count": 38,
  617. "metadata": {},
  618. "output_type": "execute_result"
  619. }
  620. ],
  621. "source": [
  622. "tuple_found = ntuple[~ntuple.lost]\n",
  623. "tuple_lost = ntuple[ntuple.lost]\n",
  624. "\n",
  625. "brem_x = ak.to_numpy(ak.flatten(ntuple[\"brem_vtx_x\"]))\n",
  626. "brem_z = ak.to_numpy(ak.flatten(ntuple[\"brem_vtx_z\"]))\n",
  627. "\n",
  628. "brem_x_found = ak.to_numpy(ak.flatten(tuple_found[\"brem_vtx_x\"]))\n",
  629. "brem_z_found = ak.to_numpy(ak.flatten(tuple_found[\"brem_vtx_z\"]))\n",
  630. "\n",
  631. "brem_x_lost = ak.to_numpy(ak.flatten(tuple_lost[\"brem_vtx_x\"]))\n",
  632. "brem_z_lost = ak.to_numpy(ak.flatten(tuple_lost[\"brem_vtx_z\"]))\n",
  633. "\n",
  634. "n_found = len(brem_x_found)\n",
  635. "n_lost = len(brem_x_lost)\n",
  636. "print(\"found: \", n_found, \", lost: \", n_lost)\n",
  637. "stretch_factor = n_lost / n_found\n",
  638. "print(stretch_factor)\n",
  639. "ak.flatten(tuple_found[\"brem_vtx_x\"])"
  640. ]
  641. },
  642. {
  643. "cell_type": "code",
  644. "execution_count": 57,
  645. "metadata": {},
  646. "outputs": [
  647. {
  648. "data": {
  649. "image/png": "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
  650. "text/plain": [
  651. "<Figure size 2000x800 with 3 Axes>"
  652. ]
  653. },
  654. "metadata": {},
  655. "output_type": "display_data"
  656. }
  657. ],
  658. "source": [
  659. "vmax = 350\n",
  660. "nbins = 200\n",
  661. "\n",
  662. "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(20, 8))\n",
  663. "\n",
  664. "a0 = ax0.hist2d(\n",
  665. " brem_z_found,\n",
  666. " brem_x_found,\n",
  667. " density=False,\n",
  668. " bins=nbins,\n",
  669. " cmin=1,\n",
  670. " vmax=vmax,\n",
  671. " range=[[-200, 9500], [-3200, 3200]],\n",
  672. ")\n",
  673. "ax0.vlines([770, 990, 2700, 7500], -3200, 3200, colors=\"red\", lw=1.5)\n",
  674. "ax0.set_ylim(-3200, 3200)\n",
  675. "ax0.set_xlim(-200, 9500)\n",
  676. "ax0.set_xlabel(\"z [mm]\")\n",
  677. "ax0.set_ylabel(\"x [mm]\")\n",
  678. "ax0.set_title(\"found\")\n",
  679. "\n",
  680. "a1 = ax1.hist2d(\n",
  681. " brem_z_lost,\n",
  682. " brem_x_lost,\n",
  683. " density=False,\n",
  684. " bins=nbins,\n",
  685. " cmin=1,\n",
  686. " vmax=vmax * stretch_factor,\n",
  687. " range=[[-200, 9500], [-3200, 3200]],\n",
  688. ")\n",
  689. "ax1.vlines([770, 990, 2700, 7500], -3200, 3200, colors=\"red\", lw=1.5)\n",
  690. "ax1.set_ylim(-3200, 3200)\n",
  691. "ax1.set_xlim(-200, 9500)\n",
  692. "ax1.set_xlabel(\"z [mm]\")\n",
  693. "ax1.set_ylabel(\"x [mm]\")\n",
  694. "ax1.set_title(\"lost\")\n",
  695. "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  696. "\n",
  697. "# plt.suptitle(\"brem vtx of photons w/ $E>0.1E_0$\")\n",
  698. "plt.colorbar(a0[3], ax=ax1)\n",
  699. "\n",
  700. "# plt.show()\n",
  701. "plt.savefig(\n",
  702. " \"/work/cetin/Projektpraktikum/thesis/brem_vtx_found_lost_hist2d.pdf\",\n",
  703. " format=\"PDF\",\n",
  704. ")"
  705. ]
  706. },
  707. {
  708. "cell_type": "code",
  709. "execution_count": 58,
  710. "metadata": {},
  711. "outputs": [
  712. {
  713. "data": {
  714. "image/png": "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
  715. "text/plain": [
  716. "<Figure size 1200x900 with 2 Axes>"
  717. ]
  718. },
  719. "metadata": {},
  720. "output_type": "display_data"
  721. }
  722. ],
  723. "source": [
  724. "nbins = 200\n",
  725. "vmax = 400\n",
  726. "\n",
  727. "a1 = plt.hist2d(\n",
  728. " brem_z_found,\n",
  729. " brem_x_found,\n",
  730. " density=False,\n",
  731. " bins=nbins,\n",
  732. " cmin=1,\n",
  733. " vmax=vmax,\n",
  734. " range=[[-200, 9500], [-3200, 3200]],\n",
  735. ")\n",
  736. "plt.vlines([770, 990, 2700, 7500], -3200, 3200, colors=\"red\", lw=1.5)\n",
  737. "plt.ylim(-3200, 3200)\n",
  738. "plt.xlim(-200, 9500)\n",
  739. "plt.xlabel(\"z [mm]\")\n",
  740. "plt.ylabel(\"x [mm]\")\n",
  741. "# plt.title(r\"$e^\\pm$ lost brem vertices\")\n",
  742. "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  743. "\n",
  744. "# plt.suptitle(\"brem vtx of photons w/ $E>0.1E_0$\")\n",
  745. "plt.colorbar(a1[3])\n",
  746. "mplhep.lhcb.text(\"Simulation\", loc=0)\n",
  747. "# plt.show()\n",
  748. "plt.savefig(\n",
  749. " \"/work/cetin/Projektpraktikum/thesis/brem_vtx_hist2d_found.pdf\",\n",
  750. " format=\"PDF\",\n",
  751. ")"
  752. ]
  753. },
  754. {
  755. "cell_type": "code",
  756. "execution_count": 91,
  757. "metadata": {},
  758. "outputs": [
  759. {
  760. "data": {
  761. "image/png": "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
  762. "text/plain": [
  763. "<Figure size 1200x900 with 2 Axes>"
  764. ]
  765. },
  766. "metadata": {},
  767. "output_type": "display_data"
  768. }
  769. ],
  770. "source": [
  771. "import matplotlib\n",
  772. "\n",
  773. "nbins = 200\n",
  774. "vmax = 400\n",
  775. "\n",
  776. "a1 = plt.hist2d(\n",
  777. " brem_z_lost,\n",
  778. " brem_x_lost,\n",
  779. " density=False,\n",
  780. " bins=nbins,\n",
  781. " cmin=1,\n",
  782. " vmax=vmax * stretch_factor,\n",
  783. " # norm=matplotlib.colors.Normalize(vmin=1, vmax=vmax * stretch_factor),\n",
  784. " range=[[-200, 9500], [-3200, 3200]],\n",
  785. ")\n",
  786. "plt.vlines([770, 990, 2700, 7500], -3200, 3200, colors=\"red\", lw=1.5)\n",
  787. "plt.ylim(-3200, 3200)\n",
  788. "plt.xlim(-200, 9500)\n",
  789. "plt.xlabel(\"z [mm]\")\n",
  790. "plt.ylabel(\"x [mm]\")\n",
  791. "\n",
  792. "plt.colorbar(a1[3])\n",
  793. "mplhep.lhcb.text(\"Simulation\", loc=0)\n",
  794. "plt.show()\n",
  795. "# plt.savefig(\n",
  796. "# \"/work/cetin/Projektpraktikum/thesis/brem_vtx_hist2d_lost.pdf\",\n",
  797. "# format=\"PDF\",\n",
  798. "# )"
  799. ]
  800. },
  801. {
  802. "cell_type": "code",
  803. "execution_count": 55,
  804. "metadata": {},
  805. "outputs": [
  806. {
  807. "data": {
  808. "image/png": "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
  809. "text/plain": [
  810. "<Figure size 1200x900 with 2 Axes>"
  811. ]
  812. },
  813. "metadata": {},
  814. "output_type": "display_data"
  815. }
  816. ],
  817. "source": [
  818. "nbins = 200\n",
  819. "vmax = 400\n",
  820. "\n",
  821. "a1 = plt.hist2d(\n",
  822. " brem_z,\n",
  823. " brem_x,\n",
  824. " density=False,\n",
  825. " bins=nbins,\n",
  826. " cmin=1,\n",
  827. " vmax=vmax,\n",
  828. " range=[[-200, 9500], [-3200, 3200]],\n",
  829. ")\n",
  830. "plt.vlines([770, 990, 2700, 7500], -3200, 3200, colors=\"red\", lw=1.5)\n",
  831. "plt.ylim(-3200, 3200)\n",
  832. "plt.xlim(-200, 9500)\n",
  833. "plt.xlabel(\"z [mm]\")\n",
  834. "plt.ylabel(\"x [mm]\")\n",
  835. "# plt.title(r\"$e^\\pm$ lost brem vertices\")\n",
  836. "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n",
  837. "\n",
  838. "# plt.suptitle(\"brem vtx of photons w/ $E>0.1E_0$\")\n",
  839. "plt.colorbar(a1[3])\n",
  840. "mplhep.lhcb.text(\"Simulation\", loc=0)\n",
  841. "# plt.show()\n",
  842. "plt.savefig(\n",
  843. " \"/work/cetin/Projektpraktikum/thesis/brem_vtx_hist2d.pdf\",\n",
  844. " format=\"PDF\",\n",
  845. ")"
  846. ]
  847. },
  848. {
  849. "cell_type": "code",
  850. "execution_count": 133,
  851. "metadata": {},
  852. "outputs": [
  853. {
  854. "name": "stdout",
  855. "output_type": "stream",
  856. "text": [
  857. "50501\n"
  858. ]
  859. }
  860. ],
  861. "source": [
  862. "energy_emissions = ak.ArrayBuilder()\n",
  863. "\n",
  864. "for jelec in range(ak.num(ntuple, axis=0)):\n",
  865. " energy_emissions.begin_record()\n",
  866. " energy_emissions.field(\"lost\").boolean(ntuple[jelec, \"lost\"])\n",
  867. " energy_emissions.field(\"energy\").real(ntuple[jelec, \"energy\"])\n",
  868. "\n",
  869. " tmp_velo = 0\n",
  870. " tmp_richut = 0\n",
  871. " tmp_neither = 0\n",
  872. " tmp_velo_length = 0\n",
  873. " tmp_richut_length = 0\n",
  874. " tmp_neither_length = 0\n",
  875. "\n",
  876. " for jphoton in range(ak.num(ntuple[jelec][\"brem_photons_pe\"], axis=0)):\n",
  877. " if ntuple[jelec, \"brem_vtx_z\", jphoton] <= 770:\n",
  878. " tmp_velo += ntuple[jelec, \"brem_photons_pe\", jphoton]\n",
  879. " tmp_velo_length += 1\n",
  880. " elif (ntuple[jelec, \"brem_vtx_z\", jphoton]\n",
  881. " > 770) and (ntuple[jelec, \"brem_vtx_z\", jphoton] <= 2700):\n",
  882. " tmp_richut += ntuple[jelec, \"brem_photons_pe\", jphoton]\n",
  883. " tmp_richut_length += 1\n",
  884. " else:\n",
  885. " tmp_neither += ntuple[jelec, \"brem_photons_pe\", jphoton]\n",
  886. " tmp_neither_length += 1\n",
  887. "\n",
  888. " energy_emissions.field(\"velo_length\").integer(tmp_velo_length)\n",
  889. " energy_emissions.field(\"velo\").real(tmp_velo)\n",
  890. "\n",
  891. " energy_emissions.field(\"rich_length\").integer(tmp_richut_length)\n",
  892. " energy_emissions.field(\"rich\").real(tmp_richut)\n",
  893. "\n",
  894. " energy_emissions.field(\"neither_length\").integer(tmp_neither_length)\n",
  895. " energy_emissions.field(\"downstream\").real(tmp_neither)\n",
  896. "\n",
  897. " energy_emissions.field(\"photon_length\").integer(tmp_neither_length +\n",
  898. " tmp_richut_length +\n",
  899. " tmp_velo_length)\n",
  900. "\n",
  901. " # if (tmp_velo == 0) and (tmp_richut == 0):\n",
  902. " if (False # (tmp_velo >= 0.5 * ntuple[jelec, \"energy\"])\n",
  903. " or ((tmp_velo == 0) and (tmp_richut == 0)) or\n",
  904. " (ntuple[jelec, \"energy\"] - tmp_velo < 3000)):\n",
  905. " energy_emissions.field(\"quality\").integer(0)\n",
  906. " else:\n",
  907. " energy_emissions.field(\"quality\").integer(1)\n",
  908. "\n",
  909. " energy_emissions.end_record()\n",
  910. "\n",
  911. "energy_emissions = ak.Array(energy_emissions)\n",
  912. "\n",
  913. "print(ak.num(energy_emissions, axis=0))"
  914. ]
  915. },
  916. {
  917. "cell_type": "code",
  918. "execution_count": 134,
  919. "metadata": {},
  920. "outputs": [
  921. {
  922. "data": {
  923. "text/html": [
  924. "<pre>{lost: False,\n",
  925. " energy: 5.09e+04,\n",
  926. " velo_length: 0,\n",
  927. " velo: 0,\n",
  928. " rich_length: 0,\n",
  929. " rich: 0,\n",
  930. " neither_length: 0,\n",
  931. " downstream: 0,\n",
  932. " photon_length: 0,\n",
  933. " quality: 0}\n",
  934. "--------------------------\n",
  935. "type: {\n",
  936. " lost: bool,\n",
  937. " energy: float64,\n",
  938. " velo_length: int64,\n",
  939. " velo: float64,\n",
  940. " rich_length: int64,\n",
  941. " rich: float64,\n",
  942. " neither_length: int64,\n",
  943. " downstream: float64,\n",
  944. " photon_length: int64,\n",
  945. " quality: int64\n",
  946. "}</pre>"
  947. ],
  948. "text/plain": [
  949. "<Record {lost: False, energy: 5.09e+04, ...} type='{lost: bool, energy: flo...'>"
  950. ]
  951. },
  952. "execution_count": 134,
  953. "metadata": {},
  954. "output_type": "execute_result"
  955. }
  956. ],
  957. "source": [
  958. "energy_emissions[3]"
  959. ]
  960. },
  961. {
  962. "cell_type": "code",
  963. "execution_count": 135,
  964. "metadata": {},
  965. "outputs": [
  966. {
  967. "name": "stdout",
  968. "output_type": "stream",
  969. "text": [
  970. "found: 41978\n",
  971. "lost: 8523\n",
  972. "50501\n",
  973. "VELO energy emission, eff: 0.18201619769905547\n",
  974. "RICH1+UT energy emission, eff: 0.12653214787825984\n",
  975. "Neither, eff: 0.5226827191540762\n",
  976. "total efficiency: 0.8312310647313914\n",
  977. "efficiency: 0.8312310647313914\n",
  978. "\n",
  979. "found in velo/(found + lost in velo)\n",
  980. "VELO energy emission, eff: 0.848831840428479\n",
  981. "RICH1+UT energy emission, eff: 0.794479671764267\n",
  982. "eff von e die nicht strahlen: 0.8345505706788074\n"
  983. ]
  984. }
  985. ],
  986. "source": [
  987. "# efficiency berechnen als found in velo oder rich über alle elektronen\n",
  988. "# dann kann man zusammenrechnen mit velo, rich, und allen anderen elektronen\n",
  989. "# expected eff = 81.19%\n",
  990. "\n",
  991. "electrons_found = energy_emissions[~energy_emissions.lost]\n",
  992. "electrons_lost = energy_emissions[energy_emissions.lost]\n",
  993. "\n",
  994. "anz_found = ak.num(electrons[~electrons.lost], axis=0)\n",
  995. "anz_lost = ak.num(electrons[electrons.lost], axis=0)\n",
  996. "print(\"found: \", anz_found)\n",
  997. "print(\"lost: \", anz_lost)\n",
  998. "\n",
  999. "num_velo_found = 0\n",
  1000. "num_rich_found = 0\n",
  1001. "num_no_up_rad_found = 0\n",
  1002. "for itr in range(ak.num(electrons_found, axis=0)):\n",
  1003. " if electrons_found[itr, \"quality\"] == 1:\n",
  1004. " if electrons_found[itr, \"velo\"] >= electrons_found[itr, \"rich\"]:\n",
  1005. " num_velo_found += 1\n",
  1006. " else:\n",
  1007. " num_rich_found += 1\n",
  1008. " else:\n",
  1009. " num_no_up_rad_found += 1\n",
  1010. "\n",
  1011. "num_velo_lost = 0\n",
  1012. "num_rich_lost = 0\n",
  1013. "num_no_up_rad_lost = 0\n",
  1014. "for itr in range(ak.num(electrons_lost, axis=0)):\n",
  1015. " if electrons_lost[itr, \"quality\"] == 1:\n",
  1016. " if electrons_lost[itr, \"velo\"] >= electrons_lost[itr, \"rich\"]:\n",
  1017. " num_velo_lost += 1\n",
  1018. " else:\n",
  1019. " num_rich_lost += 1\n",
  1020. " else:\n",
  1021. " num_no_up_rad_lost += 1\n",
  1022. "\n",
  1023. "denom = ak.num(electrons, axis=0)\n",
  1024. "print(denom)\n",
  1025. "\n",
  1026. "eff_velo = num_velo_found / denom\n",
  1027. "\n",
  1028. "eff_rich = num_rich_found / denom\n",
  1029. "\n",
  1030. "eff_other = ak.num(electrons_found[electrons_found.quality == 0],\n",
  1031. " axis=0) / denom\n",
  1032. "\n",
  1033. "print(\"VELO energy emission, eff: \", eff_velo)\n",
  1034. "\n",
  1035. "print(\"RICH1+UT energy emission, eff: \", eff_rich)\n",
  1036. "\n",
  1037. "print(\"Neither, eff: \", eff_other)\n",
  1038. "\n",
  1039. "print(\"total efficiency: \", eff_velo + eff_rich + eff_other)\n",
  1040. "\n",
  1041. "print(\"efficiency: \", anz_found / (anz_found + anz_lost))\n",
  1042. "\n",
  1043. "print(\"\\nfound in velo/(found + lost in velo)\")\n",
  1044. "\n",
  1045. "eff_velo = num_velo_found / (num_velo_found + num_velo_lost)\n",
  1046. "eff_rich = num_rich_found / (num_rich_found + num_rich_lost)\n",
  1047. "\n",
  1048. "eff_no_rad = num_no_up_rad_found / (num_no_up_rad_found + num_no_up_rad_lost)\n",
  1049. "\n",
  1050. "print(\"VELO energy emission, eff: \", eff_velo)\n",
  1051. "\n",
  1052. "print(\"RICH1+UT energy emission, eff: \", eff_rich)\n",
  1053. "\n",
  1054. "print(\"eff von e die nicht strahlen: \", eff_no_rad)"
  1055. ]
  1056. },
  1057. {
  1058. "cell_type": "code",
  1059. "execution_count": 136,
  1060. "metadata": {},
  1061. "outputs": [
  1062. {
  1063. "name": "stdout",
  1064. "output_type": "stream",
  1065. "text": [
  1066. "41978\n",
  1067. "8523\n",
  1068. "50501\n"
  1069. ]
  1070. }
  1071. ],
  1072. "source": [
  1073. "print(ak.num(electrons[~electrons.lost], axis=0))\n",
  1074. "print(ak.num(electrons[electrons.lost], axis=0))\n",
  1075. "print(ak.num(electrons, axis=0))"
  1076. ]
  1077. },
  1078. {
  1079. "cell_type": "code",
  1080. "execution_count": 137,
  1081. "metadata": {},
  1082. "outputs": [],
  1083. "source": [
  1084. "# energy_emissions = energy_emissions[energy_emissions.energy >= 5e3]"
  1085. ]
  1086. },
  1087. {
  1088. "cell_type": "code",
  1089. "execution_count": 138,
  1090. "metadata": {},
  1091. "outputs": [
  1092. {
  1093. "data": {
  1094. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAisAAAHLCAYAAAAJAtg3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0JUlEQVR4nO3dz4sbeZ7n/1d+p7c9CaYqMt2XOTS0Q6c+rQllwVIsVIGlrT8gJRt2GuZQWKLRrWAkPBe7LpOEmKugJTMwC8WCLSXLHnukGrJgtw5bVoy/l+8sw2Z4IA/zPXRlRheGHPdMd+zBFVFSKqSUlJLiI+n5AGFnxEef+OgTkuKtz6/YCcMwFAAAgKH+n7QLAAAAMAnBCgAAMBrBCgAAMBrBCgAAMBrBCgAAMBrBCgAAMBrBCgAAMBrBCgAAMBrBCrDhPM9Tq9VKuxhrg/oCzEOwAiyR7/va29tL5eLn+76KxaKy2ayazebKj79uxtXXdefQ8zzVajUVi0VlMhnV6/Wp9gGY3o/SLgCwyYIgUBAEOj09Hdnn+7729/dlWdZU22dl27ba7bZ2dnZulM+2GFdfk86h53m6f/++Li4uJEm1Wi1ON2kfgNnscG8gIB3ZbFbtdlu2bU+1fV47OztyHEf9fn8h+W26WeqrWCzK87zEIGTSPgCzoRsoRUEQpF0EpCS6kE27HWaadK44j8DiEKysWCaT0c7OjnZ2dlQsFtMuztbzPE/FYlH5fF6ZTEa1Wi3eFwSBWq2W8vm8Wq2WfN9XPp/X3t6e8vl8HGzW63VlMhnt7e0NPV+SOp2OisXi0LnudDrxhaxcLscByrjt05R1sMzlcjl+zDJGYpq6yGaz6nQ66vV6ymazY9/H15W10+kon8+r1+up1Wppb29P5XJ5JJ/odWQymZH66PV62tvb087OjvL5/NC+VqulnZ2da1//NPWVdA5brZaKxaJ834/HuhSLxfj1jNu3iLpZ5Hm6Wgf5fH6kLqcpM7B0IVam2+2G7XY7vLi4CC8uLtIuztbr9/thLpeL/26326GksFQqhWEYhqenp2GpVAolhblcLqxWq2G/3w+73W68rVQqhd1uNzw9PQ0LhUIoKez3+/HzXdeN0w6qVquhpPD09HSq7deVNTqeZVlht9uNt0XHdxznxnURvb7Buojqx3XdqfNqt9uhbdvxtmq1GjqOM1JGx3HCarUaH19SKCm0bTvOK3p9g8eP0l/3mqepr0nnMAzD0Lbt0LbtxPyT9t20bhZ5nqL0tm0Pvd8sywoty5q6zMAqEKysUKFQCF3XjS9mSJfjOCPnwrKsUFIcTPb7/cQvZsdxRoKKKO3VC8IigpVpylooFBIvqNMEK9PkH12krnt90+QVBQBRMHJVdKzBfKIL7tW6iQKYQa7rhs1mc+JrnqW+FhWs3LRuFnmeovyupouOH+U3zTGBZdv62UBBEOjo6EiS5LruyH7P83R0dCTbthUEgfL5vAqFwtzHippPS6US00lT5Pt+fG6TvHz5UrlcLv776swc27bleZ729/eHtkla+IDKacpq27Y6nU7ie3gR+U+qC0k6Pz+fKa8ojw8++CAx3TfffDOyrVgsqtVqyfO8ocHHpVJJrVZLvV4vLufz58/15ZdfJuYdlXPe+prXTetmkedpML9nz54NpalWq6pWq3MdE1iWrQ5Wer2ems2mOp2OSqXSyH7f95XNZtXv9+U4jqR3Y07Oz88T01+n2+1KetffHfXDR18KWK2oT77dbqdckutNU9ZoPMQ8M4gWWRez5jVuenZ0oe71evFnL3L171qtplarJdd1lcvlFATBtVO/fd+XNF99zeumdbPo92yU36R6WqfPCTbbVg+wzeVyEz+E5XJZuVxu6MuxVqslDgScRalUkuu6ev78+Y3ywfyii1X0r8mmKWu0b/CX8yLzX3VehUJBuVxOR0dH6vV6CoJAruuqWq2OBBi2bSuXy6nX68n3/XiA6zTlnKe+5nXTuln0e3aW99U6fE6w2bY6WJkkCAL1ej3l8/mh7QcHB5IUr2bZarVUq9XGPqJfvFcVCgWmLqcouuB1Op3E/ePOWxqmKWuUZp61VBZZF4vMq91uK5fLxcvfu647ttsm6l5tNpvqdrvXtnzepL7mddO6WfR7NvoRNu4Hm+/7a/U5wYZLe9DMTV1cXISFQmHs/m63O3YQX0QJAyijGR/tdjsx/aRjTiMatY90XFxcxLNLrg4ebDab8QyRaNDs1fdQNONicIBhlOfV95ImDLC9euyk7dOUdTDN1UGPShiAOk9dRAM3rw5c1cCA1GnzajaboaShmThXJQ1onSSaRTPN52rW+ko6h2E4OnNm0r6b1s0iz9PV/K4eq1qtxrMWpzkmsGxr37JiWVa8PsBVvV5v4q+xSaJmz3H9ubM2i/q+P/QrpNls6vHjxzOXC4thWVY8XiibzapYLKperyufz+v09DQeNDiumyBqFRvcH/1/cFtSOund2Cfp3fsgGuw5bvs0Zb2aJuoSiVocfN8fu+bITetinryiehnXuhgNmI2e32q1htahSRK91ocPH85czkn1Ne4czuqmdbPI8xTlF3035vN5FYtF1Wo1ZbNZZTIZWZY19TGBpUs7WlqUbrc79Mvn6t+TKOHX8LhfvlH6Sb9Ux5XPsqywUCiEzWaT6cuGcF03/kVu2/bQr9FofQlJoWVZcStb9MtX3/+K7/f7Q+tbWJYVn+Nom76fSjr4K95xnNCyrMRp0UnbJ5U10mw24zSO48TraFSr1ZEpv7PWRTRd27btuDUnmk4cvb5p8hpcS2Tc64jKHeU9+LBtO3HKbNQKMIvr6mvcORxcuyT6/hhsjRu3bxF1s8jzFB0zeo7jOImtJdO894Bl2qh7A0UtKeVyOe67nsbOzs7IVOJoxk632x359bCzs6NcLjd1/gBm43menj9/rsePH+v8/FxBEMQtBu12O3EmXa/XU7vdZkkAYANt1NTlKIAoFovxnU7nFQ0sG9dMvcopj8A2iZYMuLi4iLsiBtm2nTiwk65VYHOt/ZiVQb1eT57nqd1u3/i+O9Gsn6tjU6K/s9nsjfIHkCz6jD169GhojEo0LbnZbMazfaKxJtG/V9dgAbAZNqZlJeoCGuyayefzc3fVWJYlx3HU7XaHmpujX3QPHjy4WYEBJMrlcnJdV0dHR0NTZh3Hkeu6Q4HK4MD6Ra8cDMAcGzFmJSlQkd6tDXDd2JUgCLS3t5e4/L3necpmszo9PY27fTKZjMrlMivPAisQjVUZ1+1aq9Xk+74eP35MqwqwwdY+WAmCQI8ePRq7sFGn09E333wz9r4/zWZTrVZLlmXp2bNnQ/fmiNJE9wbyfV/5fH6upfYBAMB81j5YAQAAm22tx6z85je/0a9//Wv97Gc/0+7ubtrFAQAAU7i8vNQ//dM/6ZNPPtFPfvKTa9OvdbDy61//Wr/4xS/SLgYAAJjDF198oT/90z+9Nt1aBys/+9nPJL17sT//+c8XmvebN2/00Ucf6auvvtLt27cXmvfh4aGOj48Xmuc6572sfDmHq8l3WXkv8/xJ1PMq8uYcri7vdfse/Yd/+Af94he/iK/j11lasPLLX/5SBwcH+vTTT5d1iLjr5+c///nCZwJ89913kqR79+7pvffeW2jeu7u7S5u5sI55LytfzuFq8l1W3ss8fxL1vIq8OYery3sdv0clTT2EYymLwr1+/VrNZpPpvQAA4MaW0rJy9+5dNZtNlqQHAAA3trRuoEePHi0rawAAsEWWdm+gTz75RK9evVpW9gAAYEvM3bLy8OHDsfuCIFCv19OLFy907969eQ8BAAAwf7Aybnn7q2n+8i//ct5DbKxKpULeK8h3majn1eW9LNTz6vJeFs7h8vM1xdzL7T948ECu62p/f39k3+npqVqtln71q1/duICTRDca7Pf7S5ly9/777+u3v/3tUqZrYfk4h+uN87f+OIfrb1nncNbr99xjVsrlsu7evav3339/5OE4jrLZrP7iL/5i3uwBAAAk3SBYuX///sT9tm2r2WzOmz0AAICkG4xZmTTTx/d91Wq1ebMGAACIzR2sOI6jnZ2dsfv
  1095. "text/plain": [
  1096. "<Figure size 640x480 with 1 Axes>"
  1097. ]
  1098. },
  1099. "metadata": {},
  1100. "output_type": "display_data"
  1101. }
  1102. ],
  1103. "source": [
  1104. "# energyspektren angucken von velo und rich\n",
  1105. "\n",
  1106. "velo_found = ak.to_numpy(\n",
  1107. " energy_emissions[(~energy_emissions.lost)\n",
  1108. " & (energy_emissions.quality == 1)][\"velo\"])\n",
  1109. "rich_found = ak.to_numpy(\n",
  1110. " energy_emissions[(~energy_emissions.lost)\n",
  1111. " & (energy_emissions.quality == 1)][\"rich\"])\n",
  1112. "energy_found = ak.to_numpy(\n",
  1113. " energy_emissions[(~energy_emissions.lost)\n",
  1114. " & (energy_emissions.quality == 1)][\"energy\"])\n",
  1115. "\n",
  1116. "velo_lost = ak.to_numpy(\n",
  1117. " energy_emissions[(energy_emissions.lost)\n",
  1118. " & (energy_emissions.quality == 1)][\"velo\"])\n",
  1119. "rich_lost = ak.to_numpy(\n",
  1120. " energy_emissions[(energy_emissions.lost)\n",
  1121. " & (energy_emissions.quality == 1)][\"rich\"])\n",
  1122. "energy_lost = ak.to_numpy(\n",
  1123. " energy_emissions[(energy_emissions.lost)\n",
  1124. " & (energy_emissions.quality == 1)][\"energy\"])\n",
  1125. "\n",
  1126. "diff_found = velo_found - rich_found # / energy_found\n",
  1127. "diff_lost = velo_lost - rich_lost # / energy_lost\n",
  1128. "\n",
  1129. "xlim = 20000\n",
  1130. "nbins = 80\n",
  1131. "\n",
  1132. "plt.hist(\n",
  1133. " diff_lost,\n",
  1134. " bins=nbins,\n",
  1135. " density=True,\n",
  1136. " alpha=0.5,\n",
  1137. " histtype=\"bar\",\n",
  1138. " color=\"darkorange\",\n",
  1139. " label=\"lost\",\n",
  1140. " range=[-xlim, xlim],\n",
  1141. ")\n",
  1142. "plt.hist(\n",
  1143. " diff_found,\n",
  1144. " bins=nbins,\n",
  1145. " density=True,\n",
  1146. " alpha=0.5,\n",
  1147. " histtype=\"bar\",\n",
  1148. " color=\"blue\",\n",
  1149. " label=\"found\",\n",
  1150. " range=[-xlim, xlim],\n",
  1151. ")\n",
  1152. "# plt.xlim(-20000, 20000)\n",
  1153. "# plt.yscale(\"log\")\n",
  1154. "plt.title(\"emitted energy difference\")\n",
  1155. "plt.xlabel(r\"$(E_{VELO} - E_{RICH1+UT})$ [MeV]\")\n",
  1156. "plt.ylabel(\"a.u.\")\n",
  1157. "plt.legend()\n",
  1158. "plt.show()"
  1159. ]
  1160. },
  1161. {
  1162. "cell_type": "code",
  1163. "execution_count": null,
  1164. "metadata": {},
  1165. "outputs": [],
  1166. "source": []
  1167. },
  1168. {
  1169. "cell_type": "code",
  1170. "execution_count": null,
  1171. "metadata": {},
  1172. "outputs": [],
  1173. "source": []
  1174. },
  1175. {
  1176. "cell_type": "code",
  1177. "execution_count": null,
  1178. "metadata": {},
  1179. "outputs": [],
  1180. "source": []
  1181. },
  1182. {
  1183. "cell_type": "code",
  1184. "execution_count": 139,
  1185. "metadata": {},
  1186. "outputs": [
  1187. {
  1188. "data": {
  1189. "image/png": "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
  1190. "text/plain": [
  1191. "<Figure size 640x480 with 1 Axes>"
  1192. ]
  1193. },
  1194. "metadata": {},
  1195. "output_type": "display_data"
  1196. }
  1197. ],
  1198. "source": [
  1199. "# number of brem vtx with E>x*E_0\n",
  1200. "\n",
  1201. "number_velo = ak.to_numpy(\n",
  1202. " energy_emissions[energy_emissions.quality == 1][\"velo_length\"])\n",
  1203. "number_rich = ak.to_numpy(\n",
  1204. " energy_emissions[energy_emissions.quality == 1][\"rich_length\"])\n",
  1205. "\n",
  1206. "plt.hist(\n",
  1207. " number_velo,\n",
  1208. " bins=10,\n",
  1209. " density=True,\n",
  1210. " alpha=0.5,\n",
  1211. " histtype=\"bar\",\n",
  1212. " color=\"darkorange\",\n",
  1213. " label=\"velo\",\n",
  1214. " range=[0, 10],\n",
  1215. ")\n",
  1216. "plt.hist(\n",
  1217. " number_rich,\n",
  1218. " bins=10,\n",
  1219. " density=True,\n",
  1220. " alpha=0.5,\n",
  1221. " histtype=\"bar\",\n",
  1222. " color=\"blue\",\n",
  1223. " label=\"rich\",\n",
  1224. " range=[0, 10],\n",
  1225. ")\n",
  1226. "plt.xlim(0, 10)\n",
  1227. "plt.title(\"number of photons emitted\")\n",
  1228. "plt.xlabel(\"number of photons\")\n",
  1229. "plt.ylabel(\"a.u.\")\n",
  1230. "plt.legend()\n",
  1231. "plt.show()"
  1232. ]
  1233. },
  1234. {
  1235. "cell_type": "code",
  1236. "execution_count": null,
  1237. "metadata": {},
  1238. "outputs": [],
  1239. "source": []
  1240. },
  1241. {
  1242. "cell_type": "code",
  1243. "execution_count": 140,
  1244. "metadata": {},
  1245. "outputs": [
  1246. {
  1247. "data": {
  1248. "text/plain": [
  1249. "' \\nphoton cut = x*E_0\\neffs, all photons included: x=0\\nfound in velo/(found + lost in velo)\\nVELO energy emission, eff: 0.8446167611094543\\nRICH1+UT energy emission, eff: 0.7961586121437423\\neff von e die nicht strahlen: 0.7954674220963173\\n'"
  1250. ]
  1251. },
  1252. "execution_count": 140,
  1253. "metadata": {},
  1254. "output_type": "execute_result"
  1255. }
  1256. ],
  1257. "source": [
  1258. "\"\"\" \n",
  1259. "photon cut = x*E_0\n",
  1260. "effs, all photons included: x=0\n",
  1261. "found in velo/(found + lost in velo)\n",
  1262. "VELO energy emission, eff: 0.8446167611094543\n",
  1263. "RICH1+UT energy emission, eff: 0.7961586121437423\n",
  1264. "eff von e die nicht strahlen: 0.7954674220963173\n",
  1265. "\"\"\""
  1266. ]
  1267. },
  1268. {
  1269. "cell_type": "code",
  1270. "execution_count": null,
  1271. "metadata": {},
  1272. "outputs": [],
  1273. "source": []
  1274. },
  1275. {
  1276. "cell_type": "code",
  1277. "execution_count": null,
  1278. "metadata": {},
  1279. "outputs": [],
  1280. "source": []
  1281. },
  1282. {
  1283. "cell_type": "code",
  1284. "execution_count": null,
  1285. "metadata": {},
  1286. "outputs": [],
  1287. "source": []
  1288. },
  1289. {
  1290. "cell_type": "code",
  1291. "execution_count": null,
  1292. "metadata": {},
  1293. "outputs": [],
  1294. "source": []
  1295. },
  1296. {
  1297. "cell_type": "code",
  1298. "execution_count": null,
  1299. "metadata": {},
  1300. "outputs": [],
  1301. "source": []
  1302. },
  1303. {
  1304. "cell_type": "code",
  1305. "execution_count": null,
  1306. "metadata": {},
  1307. "outputs": [],
  1308. "source": []
  1309. },
  1310. {
  1311. "cell_type": "code",
  1312. "execution_count": null,
  1313. "metadata": {},
  1314. "outputs": [],
  1315. "source": []
  1316. }
  1317. ],
  1318. "metadata": {
  1319. "kernelspec": {
  1320. "display_name": "tuner",
  1321. "language": "python",
  1322. "name": "python3"
  1323. },
  1324. "language_info": {
  1325. "codemirror_mode": {
  1326. "name": "ipython",
  1327. "version": 3
  1328. },
  1329. "file_extension": ".py",
  1330. "mimetype": "text/x-python",
  1331. "name": "python",
  1332. "nbconvert_exporter": "python",
  1333. "pygments_lexer": "ipython3",
  1334. "version": "3.10.12"
  1335. }
  1336. },
  1337. "nbformat": 4,
  1338. "nbformat_minor": 2
  1339. }