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.

1368 lines
412 KiB

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