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.
 
 

521 lines
72 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"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": 2,
"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": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre>{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",
"}</pre>"
],
"text/plain": [
"<Record {oneCut_event_id: 1, ...} type='{oneCut_event_id: int64, oneCut_los...'>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"allcolumns[1][1]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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": 5,
"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",
" energy_emissions.field(\"rad_length_frac\").real(\n",
" allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"rad_length_frac\"])\n",
" energy_emissions.field(\"energy\").real(\n",
" allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"energy\"])\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_\" +\n",
" \"brem_photons_pe\"],\n",
" axis=0,\n",
" )):\n",
" if (allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"brem_vtx_z\",\n",
" jphoton] <= 770):\n",
" tmp_velo += allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" +\n",
" \"brem_photons_pe\", jphoton]\n",
" tmp_velo_length += 1\n",
" elif (allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"brem_vtx_z\",\n",
" jphoton]\n",
" > 770) and (allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" +\n",
" \"brem_vtx_z\", jphoton] <= 2700):\n",
" tmp_richut += allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" +\n",
" \"brem_photons_pe\", jphoton]\n",
" tmp_richut_length += 1\n",
" else:\n",
" tmp_neither += allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" +\n",
" \"brem_photons_pe\", jphoton]\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 +\n",
" tmp_velo_length)\n",
"\n",
" if ((tmp_velo == 0) and (tmp_richut == 0)\n",
" or (allcolumns[jcut][jelec, Cuts[str(jcut)] + \"Cut_\" + \"energy\"] -\n",
" tmp_velo < 3000)):\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": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 1200x900 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"velo_found = ak.to_numpy(\n",
" energy_emissions[(~energy_emissions.lost)\n",
" & (energy_emissions.quality == 1)][\"velo\"])\n",
"rich_found = ak.to_numpy(\n",
" energy_emissions[(~energy_emissions.lost)\n",
" & (energy_emissions.quality == 1)][\"rich\"])\n",
"energy_found = ak.to_numpy(\n",
" energy_emissions[(~energy_emissions.lost)\n",
" & (energy_emissions.quality == 1)][\"energy\"])\n",
"\n",
"velo_lost = ak.to_numpy(\n",
" energy_emissions[(energy_emissions.lost)\n",
" & (energy_emissions.quality == 1)][\"velo\"])\n",
"rich_lost = ak.to_numpy(\n",
" energy_emissions[(energy_emissions.lost)\n",
" & (energy_emissions.quality == 1)][\"rich\"])\n",
"energy_lost = ak.to_numpy(\n",
" energy_emissions[(energy_emissions.lost)\n",
" & (energy_emissions.quality == 1)][\"energy\"])\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(\"Number of Tracks (normalised)\")\n",
"plt.legend(loc=\"best\")\n",
"mplhep.lhcb.text(\"Simulation\")\n",
"# plt.show()\n",
"plt.savefig(\n",
" \"/work/cetin/Projektpraktikum/thesis/emitted_energy_difference.pdf\",\n",
" format=\"PDF\")"
]
},
{
"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
}