{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import uproot\t\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits import mplot3d\n", "import awkward as ak\n", "from scipy.optimize import curve_fit\n", "import mplhep\n", "mplhep.style.use([\"LHCbTex2\"])\n", "\n", "plt.rcParams[\"savefig.dpi\"] = 600\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "file = uproot.open(\n", " \"/work/cetin/Projektpraktikum/trackinglosses_B_photon_cuts.root\")\n", "\n", "# selektiere nur elektronen von B->K*ee\n", "allcolumns = []\n", "for i in range(11):\n", " allcolumns.append(file[\"Tree\" + str(i)].arrays())" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
{oneCut_event_id: 1,\n",
       " oneCut_lost: False,\n",
       " oneCut_rad_length_frac: 0.148,\n",
       " oneCut_energy: 1.28e+04,\n",
       " noneCut_brem_photons_pe: 1,\n",
       " oneCut_brem_photons_pe: [7.42e+03],\n",
       " noneCut_brem_vtx_x: 1,\n",
       " oneCut_brem_vtx_x: [-3.61],\n",
       " noneCut_brem_vtx_z: 1,\n",
       " oneCut_brem_vtx_z: [35.6],\n",
       " oneCut_photon_length: 1}\n",
       "------------------------------------------\n",
       "type: {\n",
       "    oneCut_event_id: int64,\n",
       "    oneCut_lost: bool,\n",
       "    oneCut_rad_length_frac: float64,\n",
       "    oneCut_energy: float64,\n",
       "    noneCut_brem_photons_pe: int32,\n",
       "    oneCut_brem_photons_pe: var * float64,\n",
       "    noneCut_brem_vtx_x: int32,\n",
       "    oneCut_brem_vtx_x: var * float64,\n",
       "    noneCut_brem_vtx_z: int32,\n",
       "    oneCut_brem_vtx_z: var * float64,\n",
       "    oneCut_photon_length: int64\n",
       "}
" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "allcolumns[1][1]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def cutdict():\n", " basedict = {\n", " \"0\": {},\n", " \"1\": {},\n", " \"2\": {},\n", " \"3\": {},\n", " \"4\": {},\n", " \"5\": {},\n", " \"6\": {},\n", " \"7\": {},\n", " \"8\": {},\n", " \"9\": {},\n", " \"10\": {},\n", " }\n", "\n", " basedict[\"0\"] = \"no\"\n", " basedict[\"1\"] = \"one\"\n", " basedict[\"2\"] = \"two\"\n", " basedict[\"3\"] = \"three\"\n", " basedict[\"4\"] = \"four\"\n", " basedict[\"5\"] = \"five\"\n", " basedict[\"6\"] = \"six\"\n", " basedict[\"7\"] = \"seven\"\n", " basedict[\"8\"] = \"eight\"\n", " basedict[\"9\"] = \"nine\"\n", " basedict[\"10\"] = \"ten\"\n", "\n", " return basedict\n", "\n", "\n", "Cuts = cutdict()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# electrons = []\n", "# for jcut in range(11):\n", "\n", "jcut = 4 # cut 0.2*E\n", "\n", "energy_emissions = ak.ArrayBuilder()\n", "\n", "for jelec in range(ak.num(allcolumns[jcut], axis=0)):\n", " energy_emissions.begin_record()\n", " energy_emissions.field(\"lost\").boolean(\n", " allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"lost\"]\n", " )\n", " energy_emissions.field(\"rad_length_frac\").real(\n", " allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"rad_length_frac\"]\n", " )\n", " energy_emissions.field(\"energy\").real(\n", " allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"energy\"]\n", " )\n", "\n", " tmp_velo = 0\n", " tmp_richut = 0\n", " tmp_neither = 0\n", " tmp_velo_length = 0\n", " tmp_richut_length = 0\n", " tmp_neither_length = 0\n", "\n", " for jphoton in range(\n", " ak.num(\n", " allcolumns[jcut][jelec][Cuts[str(jcut)] + \"Cut_\" + \"brem_photons_pe\"],\n", " axis=0,\n", " )\n", " ):\n", " if (\n", " allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"brem_vtx_z\", jphoton]\n", " <= 770\n", " ):\n", " tmp_velo += allcolumns[jcut][\n", " jelec, Cuts[str(jcut)] + \"Cut_\" + \"brem_photons_pe\", jphoton\n", " ]\n", " tmp_velo_length += 1\n", " elif (\n", " allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"brem_vtx_z\", jphoton]\n", " > 770\n", " ) and (\n", " allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"brem_vtx_z\", jphoton]\n", " <= 2700\n", " ):\n", " tmp_richut += allcolumns[jcut][\n", " jelec, Cuts[str(jcut)] + \"Cut_\" + \"brem_photons_pe\", jphoton\n", " ]\n", " tmp_richut_length += 1\n", " else:\n", " tmp_neither += allcolumns[jcut][\n", " jelec, Cuts[str(jcut)] + \"Cut_\" + \"brem_photons_pe\", jphoton\n", " ]\n", " tmp_neither_length += 1\n", "\n", " energy_emissions.field(\"velo_length\").integer(tmp_velo_length)\n", " energy_emissions.field(\"velo\").real(tmp_velo)\n", "\n", " energy_emissions.field(\"rich_length\").integer(tmp_richut_length)\n", " energy_emissions.field(\"rich\").real(tmp_richut)\n", "\n", " energy_emissions.field(\"neither_length\").integer(tmp_neither_length)\n", " energy_emissions.field(\"downstream\").real(tmp_neither)\n", "\n", " energy_emissions.field(\"photon_length\").integer(tmp_richut_length + tmp_velo_length)\n", "\n", " if (\n", " (tmp_velo == 0)\n", " and (tmp_richut == 0)\n", " or (\n", " allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"energy\"] - tmp_velo\n", " < 3000\n", " )\n", " ):\n", " energy_emissions.field(\"quality\").integer(0)\n", " else:\n", " energy_emissions.field(\"quality\").integer(1)\n", "\n", " energy_emissions.end_record()\n", "\n", "energy_emissions = ak.Array(energy_emissions)\n", "# electrons.append(energy_emissions)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "velo_found = ak.to_numpy(\n", " energy_emissions[(~energy_emissions.lost) & (energy_emissions.quality == 1)][\"velo\"]\n", ")\n", "rich_found = ak.to_numpy(\n", " energy_emissions[(~energy_emissions.lost) & (energy_emissions.quality == 1)][\"rich\"]\n", ")\n", "energy_found = ak.to_numpy(\n", " energy_emissions[(~energy_emissions.lost) & (energy_emissions.quality == 1)][\n", " \"energy\"\n", " ]\n", ")\n", "\n", "velo_lost = ak.to_numpy(\n", " energy_emissions[(energy_emissions.lost) & (energy_emissions.quality == 1)][\"velo\"]\n", ")\n", "rich_lost = ak.to_numpy(\n", " energy_emissions[(energy_emissions.lost) & (energy_emissions.quality == 1)][\"rich\"]\n", ")\n", "energy_lost = ak.to_numpy(\n", " energy_emissions[(energy_emissions.lost) & (energy_emissions.quality == 1)][\n", " \"energy\"\n", " ]\n", ")\n", "\n", "diff_found = velo_found - rich_found\n", "diff_lost = velo_lost - rich_lost\n", "\n", "xlim = 20000\n", "nbins = 60\n", "\n", "plt.hist(\n", " diff_lost,\n", " bins=nbins,\n", " density=True,\n", " alpha=0.5,\n", " histtype=\"bar\",\n", " color=\"#F05342\",\n", " label=\"lost\",\n", " range=[-xlim, xlim],\n", ")\n", "plt.hist(\n", " diff_found,\n", " bins=nbins,\n", " density=True,\n", " alpha=0.5,\n", " histtype=\"bar\",\n", " color=\"#2A9D8F\", # \"#107E7D\",\n", " label=\"found\",\n", " range=[-xlim, xlim],\n", ")\n", "# plt.xlim(-20000, 20000)\n", "# plt.yscale(\"log\")\n", "# plt.title(\"emitted energy difference\")\n", "plt.xlabel(r\"$\\Delta E_{VELO} - \\Delta E_{RICH1+UT}$ [MeV]\")\n", "plt.ylabel(\"a.u.\")\n", "plt.legend(title=\"LHCb Simulation\")\n", "plt.show()\n", "plt.savefig(\n", " \"/work/cetin/Projektpraktikum/thesis/emitted_energy_difference.pdf\", format=\"PDF\"\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "nbins = 6\n", "quality_cut = electrons[jcut].quality != -1\n", "\n", "### all split in velo and rich\n", "\n", "fig, axs = plt.subplots(3, 3, figsize=(15, 6))\n", "ax = axs.ravel()\n", "for jcut, ax in enumerate(ax):\n", "ax.hist(\n", "ak.to_numpy(electrons[jcut][quality_cut][\"velo_length\"]),\n", "bins=nbins,\n", "density=True,\n", "alpha=0.5,\n", "color=\"darkorange\",\n", "histtype=\"bar\",\n", "label=\"velo\",\n", "range=[0, nbins],\n", ")\n", "ax.hist(\n", "ak.to_numpy(electrons[jcut][quality_cut][\"rich_length\"]),\n", "bins=nbins,\n", "density=True,\n", "alpha=0.5,\n", "color=\"blue\",\n", "histtype=\"bar\",\n", "label=\"rich\",\n", "range=[0, nbins],\n", ")\n", "ax.set_xlim(0, nbins)\n", "ax.set_ylim(0, 1)\n", "ax.set_title(\"Photon Cut: \" + str(np.round(jcut \\* 0.05, 2)) + f\"$E_0$\")\n", "ax.set_xlabel(\"number of photons\")\n", "ax.set_ylabel(\"a.u.\")\n", "plt.suptitle(\"number of photons in velo and rich\")\n", "plt.legend()\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "### found\n", "\n", "fig, axs = plt.subplots(3, 3, figsize=(15, 6))\n", "ax = axs.ravel()\n", "for jcut, ax in enumerate(ax):\n", "ax.hist(\n", "ak.to_numpy(\n", "electrons[jcut]~(electrons[jcut].lost) & quality_cut][\"velo_length\"]\n", "),\n", "bins=nbins,\n", "density=True,\n", "alpha=0.5,\n", "color=\"darkorange\",\n", "histtype=\"bar\",\n", "label=\"velo\",\n", "range=[0, nbins],\n", ")\n", "ax.hist(\n", "ak.to_numpy(\n", "electrons[jcut]~(electrons[jcut].lost) & quality_cut][\"rich_length\"]\n", "),\n", "bins=nbins,\n", "density=True,\n", "alpha=0.5,\n", "color=\"blue\",\n", "histtype=\"bar\",\n", "label=\"rich\",\n", "range=[0, nbins],\n", ")\n", "ax.set_xlim(0, nbins)\n", "ax.set_ylim(0, 1)\n", "ax.set_title(\"Photon Cut: \" + str(np.round(jcut \\* 0.05, 2)) + f\"$E_0$\")\n", "ax.set_xlabel(\"number of photons\")\n", "ax.set_ylabel(\"a.u.\")\n", "plt.suptitle(\"number of photons of found electrons\")\n", "plt.legend()\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "### lost\n", "\n", "fig, axs = plt.subplots(3, 3, figsize=(15, 6))\n", "ax = axs.ravel()\n", "for jcut, ax in enumerate(ax):\n", "ax.hist(\n", "ak.to_numpy(\n", "electrons[jcut](electrons[jcut].lost) & quality_cut][\"velo_length\"]\n", "),\n", "bins=nbins,\n", "density=True,\n", "alpha=0.5,\n", "color=\"darkorange\",\n", "histtype=\"bar\",\n", "label=\"velo\",\n", "range=[0, nbins],\n", ")\n", "ax.hist(\n", "ak.to_numpy(\n", "electrons[jcut](electrons[jcut].lost) & quality_cut][\"rich_length\"]\n", "),\n", "bins=nbins,\n", "density=True,\n", "alpha=0.5,\n", "color=\"blue\",\n", "histtype=\"bar\",\n", "label=\"rich\",\n", "range=[0, nbins],\n", ")\n", "ax.set_xlim(0, nbins)\n", "ax.set_ylim(0, 1)\n", "ax.set_title(\"Photon Cut: \" + str(np.round(jcut \\* 0.05, 2)) + f\"$E_0$\")\n", "ax.set_xlabel(\"number of photons\")\n", "ax.set_ylabel(\"a.u.\")\n", "plt.suptitle(\"number of photons of lost electrons\")\n", "plt.legend()\n", "plt.tight_layout()\n", "plt.show()\n", "quality_cut = electrons[jcut].quality != -1\n", "\n", "### all split in lost and found\n", "\n", "fig, axs = plt.subplots(3, 3, figsize=(15, 6))\n", "ax = axs.ravel()\n", "for jcut, ax in enumerate(ax):\n", "ax.hist(\n", "ak.to_numpy(\n", "electrons[jcut](electrons[jcut].lost) & (quality_cut)][\"photon_length\"]\n", "),\n", "bins=10,\n", "density=True,\n", "alpha=0.5,\n", "color=\"darkorange\",\n", "histtype=\"bar\",\n", "label=\"lost\",\n", "range=[0, 10],\n", ")\n", "ax.hist(\n", "ak.to_numpy(\n", "electrons[jcut](~electrons[jcut].lost) & (quality_cut)][\"photon_length\"]\n", "),\n", "bins=10,\n", "density=True,\n", "alpha=0.5,\n", "color=\"blue\",\n", "histtype=\"bar\",\n", "label=\"found\",\n", "range=[0, 10],\n", ")\n", "ax.set_xlim(0, 10) # ax.set_ylim(0,1) # ax.set_yscale('log')\n", "ax.set_title(\"Photon Cut: \" + str(np.round(jcut \\* 0.05, 2)) + f\"$E_0$\")\n", "ax.set_xlabel(\"number of photons\")\n", "ax.set_ylabel(\"a.u.\")\n", "plt.suptitle(\"number of photons in lost and found\")\n", "plt.legend()\n", "plt.tight_layout()\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "tuner", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 2 }