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.

628 lines
128 KiB

8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 1,
  6. "metadata": {},
  7. "outputs": [
  8. {
  9. "name": "stdout",
  10. "output_type": "stream",
  11. "text": [
  12. "/auto/work/cetin/Projektpraktikum\n"
  13. ]
  14. }
  15. ],
  16. "source": [
  17. "%cd ..\n",
  18. "import uproot\t\n",
  19. "import numpy as np\n",
  20. "import matplotlib.pyplot as plt\n",
  21. "from matplotlib import colormaps\n",
  22. "from mpl_toolkits import mplot3d\n",
  23. "import awkward as ak\n",
  24. "from scipy.optimize import curve_fit\n",
  25. "from scipy import stats\n",
  26. "from methods.fit_linear_regression_model import fit_linear_regression_model\n",
  27. "import sklearn\n",
  28. "import seaborn as sns\n",
  29. "import pandas as pd\n",
  30. "%matplotlib inline"
  31. ]
  32. },
  33. {
  34. "cell_type": "code",
  35. "execution_count": 2,
  36. "metadata": {},
  37. "outputs": [],
  38. "source": [
  39. "def round(n, k):\n",
  40. " # function to round number 'n' up/down to nearest 'k'\n",
  41. " # use positive k to round up\n",
  42. " # use negative k to round down\n",
  43. "\n",
  44. " return n - n % k"
  45. ]
  46. },
  47. {
  48. "cell_type": "code",
  49. "execution_count": 3,
  50. "metadata": {},
  51. "outputs": [
  52. {
  53. "name": "stdout",
  54. "output_type": "stream",
  55. "text": [
  56. "40402 10099\n",
  57. "49865\n"
  58. ]
  59. }
  60. ],
  61. "source": [
  62. "file = uproot.open(\n",
  63. " \"/work/cetin/Projektpraktikum/tracking_losses_ntuple_B_rad_length_beginVelo2endUT.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\"\n",
  64. ")\n",
  65. "\n",
  66. "# selektiere nur elektronen von B->K*ee\n",
  67. "allcolumns = file.arrays()\n",
  68. "found = allcolumns[(allcolumns.isElectron) & (~allcolumns.lost) &\n",
  69. " (allcolumns.fromB)]\n",
  70. "lost = allcolumns[(allcolumns.isElectron) & (allcolumns.lost) &\n",
  71. " (allcolumns.fromB)]\n",
  72. "\n",
  73. "electrons = allcolumns[(allcolumns.isElectron)\n",
  74. " & (allcolumns.fromB)\n",
  75. " & (allcolumns.eta <= 5.0)\n",
  76. " & (allcolumns.eta >= 1.5)\n",
  77. " & (np.abs(allcolumns.phi) < 3.142)]\n",
  78. "\n",
  79. "print(ak.num(found, axis=0), ak.num(lost, axis=0))\n",
  80. "print(ak.num(electrons, axis=0))\n",
  81. "# ak.count(found, axis=None)"
  82. ]
  83. },
  84. {
  85. "cell_type": "code",
  86. "execution_count": 4,
  87. "metadata": {},
  88. "outputs": [],
  89. "source": [
  90. "# variables\n",
  91. "\n",
  92. "eta_a = ak.to_numpy(electrons[\"eta\"])\n",
  93. "phi_a = ak.to_numpy(electrons[\"phi\"])\n",
  94. "rad_length_frac_a = ak.to_numpy(electrons[\"rad_length_frac\"])"
  95. ]
  96. },
  97. {
  98. "cell_type": "code",
  99. "execution_count": 5,
  100. "metadata": {},
  101. "outputs": [
  102. {
  103. "data": {
  104. "image/png": "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
  105. "text/plain": [
  106. "<Figure size 640x480 with 1 Axes>"
  107. ]
  108. },
  109. "metadata": {},
  110. "output_type": "display_data"
  111. }
  112. ],
  113. "source": [
  114. "plt.hist(\n",
  115. " rad_length_frac_a,\n",
  116. " bins=100,\n",
  117. " density=True,\n",
  118. " alpha=0.5,\n",
  119. " color=\"blue\",\n",
  120. " histtype=\"bar\",\n",
  121. " range=[0, 1],\n",
  122. ")\n",
  123. "plt.xlim(0, 1)\n",
  124. "# plt.yscale(\"log\")\n",
  125. "plt.title(\"radiation length fraction beginVelo2endUT\")\n",
  126. "plt.xlabel(f\"$x/X_0$\")\n",
  127. "plt.ylabel(\"a.u.\")\n",
  128. "plt.show()"
  129. ]
  130. },
  131. {
  132. "cell_type": "code",
  133. "execution_count": 6,
  134. "metadata": {},
  135. "outputs": [],
  136. "source": [
  137. "df = pd.DataFrame({\n",
  138. " \"phi\": phi_a * 90.0 / np.pi,\n",
  139. " \"eta\": eta_a * 2.0,\n",
  140. " \"rad_length_frac\": rad_length_frac_a,\n",
  141. "})\n",
  142. "df = df.round({\"phi\": 0, \"eta\": 1, \"rad_length_frac\": 4})"
  143. ]
  144. },
  145. {
  146. "cell_type": "code",
  147. "execution_count": 7,
  148. "metadata": {},
  149. "outputs": [],
  150. "source": [
  151. "df_pivoted = df.pivot_table(\n",
  152. " index=\"eta\",\n",
  153. " columns=\"phi\",\n",
  154. " values=\"rad_length_frac\",\n",
  155. " margins=False,\n",
  156. " # fill_value=0,\n",
  157. ")"
  158. ]
  159. },
  160. {
  161. "cell_type": "code",
  162. "execution_count": 8,
  163. "metadata": {},
  164. "outputs": [
  165. {
  166. "data": {
  167. "text/html": [
  168. "<div>\n",
  169. "<style scoped>\n",
  170. " .dataframe tbody tr th:only-of-type {\n",
  171. " vertical-align: middle;\n",
  172. " }\n",
  173. "\n",
  174. " .dataframe tbody tr th {\n",
  175. " vertical-align: top;\n",
  176. " }\n",
  177. "\n",
  178. " .dataframe thead th {\n",
  179. " text-align: right;\n",
  180. " }\n",
  181. "</style>\n",
  182. "<table border=\"1\" class=\"dataframe\">\n",
  183. " <thead>\n",
  184. " <tr style=\"text-align: right;\">\n",
  185. " <th>phi</th>\n",
  186. " <th>-90.0</th>\n",
  187. " <th>-89.0</th>\n",
  188. " <th>-88.0</th>\n",
  189. " <th>-87.0</th>\n",
  190. " <th>-86.0</th>\n",
  191. " <th>-85.0</th>\n",
  192. " <th>-84.0</th>\n",
  193. " <th>-83.0</th>\n",
  194. " <th>-82.0</th>\n",
  195. " <th>-81.0</th>\n",
  196. " <th>...</th>\n",
  197. " <th>81.0</th>\n",
  198. " <th>82.0</th>\n",
  199. " <th>83.0</th>\n",
  200. " <th>84.0</th>\n",
  201. " <th>85.0</th>\n",
  202. " <th>86.0</th>\n",
  203. " <th>87.0</th>\n",
  204. " <th>88.0</th>\n",
  205. " <th>89.0</th>\n",
  206. " <th>90.0</th>\n",
  207. " </tr>\n",
  208. " <tr>\n",
  209. " <th>eta</th>\n",
  210. " <th></th>\n",
  211. " <th></th>\n",
  212. " <th></th>\n",
  213. " <th></th>\n",
  214. " <th></th>\n",
  215. " <th></th>\n",
  216. " <th></th>\n",
  217. " <th></th>\n",
  218. " <th></th>\n",
  219. " <th></th>\n",
  220. " <th></th>\n",
  221. " <th></th>\n",
  222. " <th></th>\n",
  223. " <th></th>\n",
  224. " <th></th>\n",
  225. " <th></th>\n",
  226. " <th></th>\n",
  227. " <th></th>\n",
  228. " <th></th>\n",
  229. " <th></th>\n",
  230. " <th></th>\n",
  231. " </tr>\n",
  232. " </thead>\n",
  233. " <tbody>\n",
  234. " <tr>\n",
  235. " <th>3.1</th>\n",
  236. " <td>NaN</td>\n",
  237. " <td>NaN</td>\n",
  238. " <td>NaN</td>\n",
  239. " <td>NaN</td>\n",
  240. " <td>NaN</td>\n",
  241. " <td>NaN</td>\n",
  242. " <td>NaN</td>\n",
  243. " <td>NaN</td>\n",
  244. " <td>NaN</td>\n",
  245. " <td>NaN</td>\n",
  246. " <td>...</td>\n",
  247. " <td>NaN</td>\n",
  248. " <td>NaN</td>\n",
  249. " <td>NaN</td>\n",
  250. " <td>NaN</td>\n",
  251. " <td>NaN</td>\n",
  252. " <td>NaN</td>\n",
  253. " <td>NaN</td>\n",
  254. " <td>NaN</td>\n",
  255. " <td>NaN</td>\n",
  256. " <td>NaN</td>\n",
  257. " </tr>\n",
  258. " <tr>\n",
  259. " <th>3.2</th>\n",
  260. " <td>NaN</td>\n",
  261. " <td>NaN</td>\n",
  262. " <td>NaN</td>\n",
  263. " <td>NaN</td>\n",
  264. " <td>NaN</td>\n",
  265. " <td>NaN</td>\n",
  266. " <td>NaN</td>\n",
  267. " <td>NaN</td>\n",
  268. " <td>NaN</td>\n",
  269. " <td>NaN</td>\n",
  270. " <td>...</td>\n",
  271. " <td>NaN</td>\n",
  272. " <td>NaN</td>\n",
  273. " <td>NaN</td>\n",
  274. " <td>NaN</td>\n",
  275. " <td>NaN</td>\n",
  276. " <td>NaN</td>\n",
  277. " <td>NaN</td>\n",
  278. " <td>NaN</td>\n",
  279. " <td>NaN</td>\n",
  280. " <td>NaN</td>\n",
  281. " </tr>\n",
  282. " <tr>\n",
  283. " <th>3.3</th>\n",
  284. " <td>NaN</td>\n",
  285. " <td>1.2679</td>\n",
  286. " <td>NaN</td>\n",
  287. " <td>1.2759</td>\n",
  288. " <td>NaN</td>\n",
  289. " <td>NaN</td>\n",
  290. " <td>1.87600</td>\n",
  291. " <td>NaN</td>\n",
  292. " <td>0.516900</td>\n",
  293. " <td>NaN</td>\n",
  294. " <td>...</td>\n",
  295. " <td>0.5076</td>\n",
  296. " <td>NaN</td>\n",
  297. " <td>NaN</td>\n",
  298. " <td>NaN</td>\n",
  299. " <td>NaN</td>\n",
  300. " <td>NaN</td>\n",
  301. " <td>NaN</td>\n",
  302. " <td>NaN</td>\n",
  303. " <td>NaN</td>\n",
  304. " <td>NaN</td>\n",
  305. " </tr>\n",
  306. " <tr>\n",
  307. " <th>3.4</th>\n",
  308. " <td>NaN</td>\n",
  309. " <td>NaN</td>\n",
  310. " <td>NaN</td>\n",
  311. " <td>1.2055</td>\n",
  312. " <td>0.5502</td>\n",
  313. " <td>0.28410</td>\n",
  314. " <td>1.89590</td>\n",
  315. " <td>NaN</td>\n",
  316. " <td>0.673400</td>\n",
  317. " <td>0.2915</td>\n",
  318. " <td>...</td>\n",
  319. " <td>NaN</td>\n",
  320. " <td>NaN</td>\n",
  321. " <td>NaN</td>\n",
  322. " <td>0.52245</td>\n",
  323. " <td>1.2931</td>\n",
  324. " <td>1.2685</td>\n",
  325. " <td>0.26290</td>\n",
  326. " <td>NaN</td>\n",
  327. " <td>0.5286</td>\n",
  328. " <td>NaN</td>\n",
  329. " </tr>\n",
  330. " <tr>\n",
  331. " <th>3.5</th>\n",
  332. " <td>NaN</td>\n",
  333. " <td>0.8370</td>\n",
  334. " <td>0.6883</td>\n",
  335. " <td>0.5597</td>\n",
  336. " <td>NaN</td>\n",
  337. " <td>1.30930</td>\n",
  338. " <td>NaN</td>\n",
  339. " <td>0.40660</td>\n",
  340. " <td>1.724750</td>\n",
  341. " <td>NaN</td>\n",
  342. " <td>...</td>\n",
  343. " <td>0.3628</td>\n",
  344. " <td>0.5306</td>\n",
  345. " <td>NaN</td>\n",
  346. " <td>0.56120</td>\n",
  347. " <td>NaN</td>\n",
  348. " <td>1.1481</td>\n",
  349. " <td>1.13330</td>\n",
  350. " <td>NaN</td>\n",
  351. " <td>0.4898</td>\n",
  352. " <td>NaN</td>\n",
  353. " </tr>\n",
  354. " <tr>\n",
  355. " <th>...</th>\n",
  356. " <td>...</td>\n",
  357. " <td>...</td>\n",
  358. " <td>...</td>\n",
  359. " <td>...</td>\n",
  360. " <td>...</td>\n",
  361. " <td>...</td>\n",
  362. " <td>...</td>\n",
  363. " <td>...</td>\n",
  364. " <td>...</td>\n",
  365. " <td>...</td>\n",
  366. " <td>...</td>\n",
  367. " <td>...</td>\n",
  368. " <td>...</td>\n",
  369. " <td>...</td>\n",
  370. " <td>...</td>\n",
  371. " <td>...</td>\n",
  372. " <td>...</td>\n",
  373. " <td>...</td>\n",
  374. " <td>...</td>\n",
  375. " <td>...</td>\n",
  376. " <td>...</td>\n",
  377. " </tr>\n",
  378. " <tr>\n",
  379. " <th>9.6</th>\n",
  380. " <td>NaN</td>\n",
  381. " <td>0.1595</td>\n",
  382. " <td>0.1948</td>\n",
  383. " <td>0.2811</td>\n",
  384. " <td>0.2285</td>\n",
  385. " <td>NaN</td>\n",
  386. " <td>0.34385</td>\n",
  387. " <td>0.16810</td>\n",
  388. " <td>NaN</td>\n",
  389. " <td>0.3408</td>\n",
  390. " <td>...</td>\n",
  391. " <td>NaN</td>\n",
  392. " <td>0.1605</td>\n",
  393. " <td>0.3835</td>\n",
  394. " <td>0.35830</td>\n",
  395. " <td>0.2229</td>\n",
  396. " <td>NaN</td>\n",
  397. " <td>0.20530</td>\n",
  398. " <td>0.25955</td>\n",
  399. " <td>0.1618</td>\n",
  400. " <td>NaN</td>\n",
  401. " </tr>\n",
  402. " <tr>\n",
  403. " <th>9.7</th>\n",
  404. " <td>NaN</td>\n",
  405. " <td>NaN</td>\n",
  406. " <td>NaN</td>\n",
  407. " <td>0.1688</td>\n",
  408. " <td>0.1762</td>\n",
  409. " <td>0.17905</td>\n",
  410. " <td>0.16470</td>\n",
  411. " <td>0.17470</td>\n",
  412. " <td>NaN</td>\n",
  413. " <td>NaN</td>\n",
  414. " <td>...</td>\n",
  415. " <td>0.2906</td>\n",
  416. " <td>NaN</td>\n",
  417. " <td>NaN</td>\n",
  418. " <td>0.23890</td>\n",
  419. " <td>0.1618</td>\n",
  420. " <td>0.1730</td>\n",
  421. " <td>NaN</td>\n",
  422. " <td>0.17520</td>\n",
  423. " <td>NaN</td>\n",
  424. " <td>NaN</td>\n",
  425. " </tr>\n",
  426. " <tr>\n",
  427. " <th>9.8</th>\n",
  428. " <td>0.1703</td>\n",
  429. " <td>0.1920</td>\n",
  430. " <td>0.1787</td>\n",
  431. " <td>0.1725</td>\n",
  432. " <td>0.1707</td>\n",
  433. " <td>NaN</td>\n",
  434. " <td>0.16860</td>\n",
  435. " <td>0.26055</td>\n",
  436. " <td>0.231933</td>\n",
  437. " <td>NaN</td>\n",
  438. " <td>...</td>\n",
  439. " <td>NaN</td>\n",
  440. " <td>0.1747</td>\n",
  441. " <td>NaN</td>\n",
  442. " <td>0.21850</td>\n",
  443. " <td>NaN</td>\n",
  444. " <td>NaN</td>\n",
  445. " <td>0.17465</td>\n",
  446. " <td>0.14510</td>\n",
  447. " <td>0.1860</td>\n",
  448. " <td>NaN</td>\n",
  449. " </tr>\n",
  450. " <tr>\n",
  451. " <th>9.9</th>\n",
  452. " <td>NaN</td>\n",
  453. " <td>0.1831</td>\n",
  454. " <td>0.1671</td>\n",
  455. " <td>0.1485</td>\n",
  456. " <td>NaN</td>\n",
  457. " <td>0.17920</td>\n",
  458. " <td>0.41690</td>\n",
  459. " <td>0.17350</td>\n",
  460. " <td>0.284200</td>\n",
  461. " <td>NaN</td>\n",
  462. " <td>...</td>\n",
  463. " <td>0.3746</td>\n",
  464. " <td>0.2385</td>\n",
  465. " <td>0.1257</td>\n",
  466. " <td>NaN</td>\n",
  467. " <td>0.4171</td>\n",
  468. " <td>NaN</td>\n",
  469. " <td>NaN</td>\n",
  470. " <td>0.16620</td>\n",
  471. " <td>0.1656</td>\n",
  472. " <td>NaN</td>\n",
  473. " </tr>\n",
  474. " <tr>\n",
  475. " <th>10.0</th>\n",
  476. " <td>NaN</td>\n",
  477. " <td>0.2501</td>\n",
  478. " <td>NaN</td>\n",
  479. " <td>0.1900</td>\n",
  480. " <td>NaN</td>\n",
  481. " <td>0.23640</td>\n",
  482. " <td>NaN</td>\n",
  483. " <td>NaN</td>\n",
  484. " <td>NaN</td>\n",
  485. " <td>NaN</td>\n",
  486. " <td>...</td>\n",
  487. " <td>NaN</td>\n",
  488. " <td>0.1828</td>\n",
  489. " <td>0.2026</td>\n",
  490. " <td>0.11630</td>\n",
  491. " <td>NaN</td>\n",
  492. " <td>NaN</td>\n",
  493. " <td>NaN</td>\n",
  494. " <td>NaN</td>\n",
  495. " <td>0.1526</td>\n",
  496. " <td>NaN</td>\n",
  497. " </tr>\n",
  498. " </tbody>\n",
  499. "</table>\n",
  500. "<p>70 rows × 181 columns</p>\n",
  501. "</div>"
  502. ],
  503. "text/plain": [
  504. "phi -90.0 -89.0 -88.0 -87.0 -86.0 -85.0 -84.0 -83.0 \\\n",
  505. "eta \n",
  506. "3.1 NaN NaN NaN NaN NaN NaN NaN NaN \n",
  507. "3.2 NaN NaN NaN NaN NaN NaN NaN NaN \n",
  508. "3.3 NaN 1.2679 NaN 1.2759 NaN NaN 1.87600 NaN \n",
  509. "3.4 NaN NaN NaN 1.2055 0.5502 0.28410 1.89590 NaN \n",
  510. "3.5 NaN 0.8370 0.6883 0.5597 NaN 1.30930 NaN 0.40660 \n",
  511. "... ... ... ... ... ... ... ... ... \n",
  512. "9.6 NaN 0.1595 0.1948 0.2811 0.2285 NaN 0.34385 0.16810 \n",
  513. "9.7 NaN NaN NaN 0.1688 0.1762 0.17905 0.16470 0.17470 \n",
  514. "9.8 0.1703 0.1920 0.1787 0.1725 0.1707 NaN 0.16860 0.26055 \n",
  515. "9.9 NaN 0.1831 0.1671 0.1485 NaN 0.17920 0.41690 0.17350 \n",
  516. "10.0 NaN 0.2501 NaN 0.1900 NaN 0.23640 NaN NaN \n",
  517. "\n",
  518. "phi -82.0 -81.0 ... 81.0 82.0 83.0 84.0 85.0 86.0 \\\n",
  519. "eta ... \n",
  520. "3.1 NaN NaN ... NaN NaN NaN NaN NaN NaN \n",
  521. "3.2 NaN NaN ... NaN NaN NaN NaN NaN NaN \n",
  522. "3.3 0.516900 NaN ... 0.5076 NaN NaN NaN NaN NaN \n",
  523. "3.4 0.673400 0.2915 ... NaN NaN NaN 0.52245 1.2931 1.2685 \n",
  524. "3.5 1.724750 NaN ... 0.3628 0.5306 NaN 0.56120 NaN 1.1481 \n",
  525. "... ... ... ... ... ... ... ... ... ... \n",
  526. "9.6 NaN 0.3408 ... NaN 0.1605 0.3835 0.35830 0.2229 NaN \n",
  527. "9.7 NaN NaN ... 0.2906 NaN NaN 0.23890 0.1618 0.1730 \n",
  528. "9.8 0.231933 NaN ... NaN 0.1747 NaN 0.21850 NaN NaN \n",
  529. "9.9 0.284200 NaN ... 0.3746 0.2385 0.1257 NaN 0.4171 NaN \n",
  530. "10.0 NaN NaN ... NaN 0.1828 0.2026 0.11630 NaN NaN \n",
  531. "\n",
  532. "phi 87.0 88.0 89.0 90.0 \n",
  533. "eta \n",
  534. "3.1 NaN NaN NaN NaN \n",
  535. "3.2 NaN NaN NaN NaN \n",
  536. "3.3 NaN NaN NaN NaN \n",
  537. "3.4 0.26290 NaN 0.5286 NaN \n",
  538. "3.5 1.13330 NaN 0.4898 NaN \n",
  539. "... ... ... ... ... \n",
  540. "9.6 0.20530 0.25955 0.1618 NaN \n",
  541. "9.7 NaN 0.17520 NaN NaN \n",
  542. "9.8 0.17465 0.14510 0.1860 NaN \n",
  543. "9.9 NaN 0.16620 0.1656 NaN \n",
  544. "10.0 NaN NaN 0.1526 NaN \n",
  545. "\n",
  546. "[70 rows x 181 columns]"
  547. ]
  548. },
  549. "execution_count": 8,
  550. "metadata": {},
  551. "output_type": "execute_result"
  552. }
  553. ],
  554. "source": [
  555. "df_pivoted"
  556. ]
  557. },
  558. {
  559. "cell_type": "code",
  560. "execution_count": null,
  561. "metadata": {},
  562. "outputs": [],
  563. "source": []
  564. },
  565. {
  566. "cell_type": "code",
  567. "execution_count": 18,
  568. "metadata": {},
  569. "outputs": [
  570. {
  571. "data": {
  572. "image/png": "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
  573. "text/plain": [
  574. "<Figure size 2100x700 with 2 Axes>"
  575. ]
  576. },
  577. "metadata": {},
  578. "output_type": "display_data"
  579. }
  580. ],
  581. "source": [
  582. "fig = plt.figure(figsize=(21, 7))\n",
  583. "ax = sns.heatmap(\n",
  584. " df_pivoted,\n",
  585. " robust=True,\n",
  586. " square=True,\n",
  587. " cmap=colormaps[\"rainbow\"],\n",
  588. " xticklabels=False,\n",
  589. " yticklabels=False,\n",
  590. " vmax=1,\n",
  591. " vmin=0.1,\n",
  592. ")\n",
  593. "# ax.set_yticks([5, 15, 25, 35], [2, 3, 4, 5])\n",
  594. "ax.set_yticks([10, 30, 50, 70], [2, 3, 4, 5])\n",
  595. "ax.set_xticks([39, 89, 139],\n",
  596. " [-100, 0, 100]) # ([79, 179, 279], [-100, 0, 100])\n",
  597. "ax.set_xlabel(f\"$\\phi$ [deg]\")\n",
  598. "ax.set_ylabel(f\"$\\eta$\")\n",
  599. "\n",
  600. "# ax.set_yticklabels([])\n",
  601. "ax.invert_yaxis()\n",
  602. "ax.set_title(\"LHCb VELO+RICH1+UT $x/X_0$\")\n",
  603. "plt.show()"
  604. ]
  605. }
  606. ],
  607. "metadata": {
  608. "kernelspec": {
  609. "display_name": "tuner",
  610. "language": "python",
  611. "name": "python3"
  612. },
  613. "language_info": {
  614. "codemirror_mode": {
  615. "name": "ipython",
  616. "version": 3
  617. },
  618. "file_extension": ".py",
  619. "mimetype": "text/x-python",
  620. "name": "python",
  621. "nbconvert_exporter": "python",
  622. "pygments_lexer": "ipython3",
  623. "version": "3.10.12"
  624. }
  625. },
  626. "nbformat": 4,
  627. "nbformat_minor": 2
  628. }