|
|
{ "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", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "41978 8523\n", "50501\n" ] } ], "source": [ "# file = uproot.open(\"tracking_losses_ntuple_Bd2KstEE.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\")\n", "file = uproot.open(\n", " \"tracking_losses_ntuple_B_EndVeloP.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\"\n", ")\n", "\n", "# selektiere nur elektronen von B->K*ee\n", "allcolumns = file.arrays()\n", "found = allcolumns[(allcolumns.isElectron) & (~allcolumns.lost) &\n", " (allcolumns.fromB)] # B: 9056\n", "lost = allcolumns[(allcolumns.isElectron) & (allcolumns.lost) &\n", " (allcolumns.fromB)] # B: 1466\n", "\n", "electrons = allcolumns[(allcolumns.isElectron) & (allcolumns.fromB)]\n", "\n", "print(ak.num(found, axis=0), ak.num(lost, axis=0))\n", "print(ak.num(electrons, axis=0))\n", "# ak.count(found, axis=None)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<pre>{all_endvtx_types_length: 7,\n", " all_endvtx_types: [101, 101, 101, 101, 101, 101, 0],\n", " all_endvtx_x_length: 7,\n", " all_endvtx_x: [-6.97, -52.9, -52.9, ..., -1.71e+03, -2.14e+03, -3.57e+03],\n", " all_endvtx_y_length: 7,\n", " all_endvtx_y: [-0.89, -6.75, -6.75, -7.08, -66.1, -72.6, -39.5],\n", " all_endvtx_z_length: 7,\n", " all_endvtx_z: [112, 859, 859, 895, 8.7e+03, 9.68e+03, 1.26e+04],\n", " brem_photons_pe_length: 6,\n", " brem_photons_pe: [2.62e+03, 812, 2.54e+03, 1.86e+03, 3.12e+03, 241],\n", " brem_photons_px_length: 6,\n", " brem_photons_px: [-161, -49.7, -156, -114, -1.18e+03, -101],\n", " brem_photons_py_length: 6,\n", " brem_photons_py: [-18.9, -6.92, -21.6, -16.8, -20.9, -0.26],\n", " brem_photons_pz_length: 6,\n", " brem_photons_pz: [2.61e+03, 810, 2.54e+03, 1.86e+03, 2.89e+03, 219],\n", " brem_vtx_x_length: 6,\n", " brem_vtx_x: [-6.97, -52.9, -52.9, -55.2, -1.71e+03, -2.14e+03],\n", " brem_vtx_y_length: 6,\n", " ...}\n", "---------------------------------------------------------------------------\n", "type: {\n", " all_endvtx_types_length: int32,\n", " all_endvtx_types: var * float32,\n", " all_endvtx_x_length: int32,\n", " all_endvtx_x: var * float32,\n", " all_endvtx_y_length: int32,\n", " all_endvtx_y: var * float32,\n", " all_endvtx_z_length: int32,\n", " all_endvtx_z: var * float32,\n", " brem_photons_pe_length: int32,\n", " brem_photons_pe: var * float32,\n", " brem_photons_px_length: int32,\n", " brem_photons_px: var * float32,\n", " brem_photons_py_length: int32,\n", " brem_photons_py: var * float32,\n", " brem_photons_pz_length: int32,\n", " brem_photons_pz: var * float32,\n", " brem_vtx_x_length: int32,\n", " brem_vtx_x: var * float32,\n", " brem_vtx_y_length: int32,\n", " brem_vtx_y: var * float32,\n", " brem_vtx_z_length: int32,\n", " brem_vtx_z: var * float32,\n", " endvtx_type: int32,\n", " endvtx_x: float64,\n", " endvtx_y: float64,\n", " endvtx_z: float64,\n", " energy: float64,\n", " eta: float64,\n", " event_count: int32,\n", " fromB: bool,\n", " fromD: bool,\n", " fromDecay: bool,\n", " fromHadInt: bool,\n", " fromPV: bool,\n", " fromPairProd: bool,\n", " fromSignal: bool,\n", " fromStrange: bool,\n", " ideal_state_770_qop: float64,\n", " ideal_state_770_tx: float64,\n", " ideal_state_770_ty: float64,\n", " ideal_state_770_x: float64,\n", " ideal_state_770_y: float64,\n", " ideal_state_770_z: float64,\n", " ideal_state_9410_qop: float64,\n", " ideal_state_9410_tx: float64,\n", " ideal_state_9410_ty: float64,\n", " ideal_state_9410_x: float64,\n", " ideal_state_9410_y: float64,\n", " ideal_state_9410_z: float64,\n", " isElectron: bool,\n", " isKaon: bool,\n", " isMuon: bool,\n", " isPion: bool,\n", " isProton: bool,\n", " lost: bool,\n", " lost_in_track_fit: bool,\n", " match_fraction: float32,\n", " mc_chi2: float32,\n", " mc_dSlope: float32,\n", " mc_dSlopeY: float32,\n", " mc_distX: float32,\n", " mc_distY: float32,\n", " mc_teta2: float32,\n", " mc_zMag: float32,\n", " mcp_idx: int32,\n", " mother_id: int32,\n", " mother_key: int32,\n", " originvtx_type: int32,\n", " originvtx_x: float64,\n", " originvtx_y: float64,\n", " originvtx_z: float64,\n", " p: float64,\n", " p_end_ut: float64,\n", " p_end_velo: float64,\n", " phi: float64,\n", " pid: int32,\n", " pt: float64,\n", " px: float64,\n", " py: float64,\n", " pz: float64,\n", " quality: int32,\n", " rad_length_frac: float64,\n", " scifi_hit_pos_x_length: int32,\n", " scifi_hit_pos_x: var * float32,\n", " scifi_hit_pos_y_length: int32,\n", " scifi_hit_pos_y: var * float32,\n", " scifi_hit_pos_z_length: int32,\n", " scifi_hit_pos_z: var * float32,\n", " track_p: float64,\n", " track_pt: float64,\n", " tx: float64,\n", " ty: float64,\n", " ut_hit_pos_x_length: int32,\n", " ut_hit_pos_x: var * float32,\n", " ut_hit_pos_y_length: int32,\n", " ut_hit_pos_y: var * float32,\n", " ut_hit_pos_z_length: int32,\n", " ut_hit_pos_z: var * float32,\n", " velo_hit_pos_x_length: int32,\n", " velo_hit_pos_x: var * float32,\n", " velo_hit_pos_y_length: int32,\n", " velo_hit_pos_y: var * float32,\n", " velo_hit_pos_z_length: int32,\n", " velo_hit_pos_z: var * float32,\n", " velo_track_idx: int32,\n", " velo_track_tx: float64,\n", " velo_track_ty: float64,\n", " velo_track_x: float64,\n", " velo_track_y: float64,\n", " velo_track_z: float64\n", "}</pre>" ], "text/plain": [ "<Record {all_endvtx_types_length: 7, ...} type='{all_endvtx_types_length: i...'>" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "electrons[0]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<pre>{lost: True,\n", " rad_length_frac: 0.129,\n", " energy: 1.17e+04,\n", " photon_length: 6,\n", " brem_photons_pe: [2.62e+03, 812, 2.54e+03, 1.86e+03, 3.12e+03, 241],\n", " brem_vtx_x: [-6.97, -52.9, -52.9, -55.2, -1.71e+03, -2.14e+03],\n", " brem_vtx_z: [112, 859, 859, 895, 8.7e+03, 9.68e+03]}\n", "---------------------------------------------------------------------\n", "type: {\n", " lost: bool,\n", " rad_length_frac: float64,\n", " energy: float64,\n", " photon_length: int64,\n", " brem_photons_pe: var * float64,\n", " brem_vtx_x: var * float64,\n", " brem_vtx_z: var * float64\n", "}</pre>" ], "text/plain": [ "<Record {lost: True, rad_length_frac: ..., ...} type='{lost: bool, rad_leng...'>" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lost_e = electrons[\"lost\"]\n", "e = electrons[\"energy\"]\n", "brem_pe = electrons[\"brem_photons_pe\"]\n", "brem_z = electrons[\"brem_vtx_z\"]\n", "brem_x = electrons[\"brem_vtx_x\"]\n", "length = electrons[\"brem_vtx_z_length\"]\n", "rad_length = electrons[\"rad_length_frac\"]\n", "\n", "brem = ak.ArrayBuilder()\n", "\n", "for itr in range(ak.num(electrons, axis=0)):\n", " brem.begin_record()\n", " brem.field(\"lost\").boolean(lost_e[itr])\n", " brem.field(\"rad_length_frac\").append(rad_length[itr])\n", " # [:,\"energy\"] energy\n", " brem.field(\"energy\").append(e[itr])\n", " # [:,\"photon_length\"] number of vertices\n", " brem.field(\"photon_length\").integer(length[itr])\n", " # [:,\"brem_photons_pe\",:] photon energy\n", " brem.field(\"brem_photons_pe\").append(brem_pe[itr])\n", " # [:,\"brem_vtx_z\",:] brem vtx z\n", " brem.field(\"brem_vtx_x\").append(brem_x[itr])\n", " brem.field(\"brem_vtx_z\").append(brem_z[itr])\n", " brem.end_record()\n", "\n", "brem = ak.Array(brem)\n", "brem[0]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "photon_cut = 0\n", "photon_cut_ratio = 0.25\n", "\n", "cut_brem = ak.ArrayBuilder()\n", "\n", "for itr in range(ak.num(brem, axis=0)):\n", " cut_brem.begin_record()\n", " cut_brem.field(\"event_id\").integer(itr)\n", " cut_brem.field(\"lost\").boolean(brem[itr, \"lost\"])\n", " cut_brem.field(\"rad_length_frac\").real(brem[itr, \"rad_length_frac\"])\n", " cut_brem.field(\"energy\").real(brem[itr, \"energy\"])\n", "\n", " ph_length = brem[itr, \"photon_length\"]\n", "\n", " tmp_energy = brem[itr, \"energy\"]\n", "\n", " cut_brem.field(\"brem_photons_pe\")\n", " cut_brem.begin_list()\n", " for jentry in range(brem[itr, \"photon_length\"]):\n", " if (brem[itr, \"brem_vtx_z\", jentry] > 2700\n", " or brem[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem[itr, \"brem_photons_pe\",\n", " jentry] < photon_cut_ratio * tmp_energy):\n", " ph_length -= 1\n", " continue\n", " else:\n", " cut_brem.real(brem[itr, \"brem_photons_pe\", jentry])\n", " tmp_energy -= brem[itr, \"brem_photons_pe\", jentry]\n", " cut_brem.end_list()\n", "\n", " tmp_energy = brem[itr, \"energy\"]\n", "\n", " cut_brem.field(\"brem_vtx_x\")\n", " cut_brem.begin_list()\n", " for jentry in range(brem[itr, \"photon_length\"]):\n", " if (brem[itr, \"brem_vtx_z\", jentry] > 2700\n", " or brem[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem[itr, \"brem_photons_pe\",\n", " jentry] < photon_cut_ratio * tmp_energy):\n", " continue\n", " else:\n", " cut_brem.real(brem[itr, \"brem_vtx_x\", jentry])\n", " tmp_energy -= brem[itr, \"brem_photons_pe\", jentry]\n", " cut_brem.end_list()\n", "\n", " tmp_energy = brem[itr, \"energy\"]\n", "\n", " cut_brem.field(\"brem_vtx_z\")\n", " cut_brem.begin_list()\n", " for jentry in range(brem[itr, \"photon_length\"]):\n", " if (brem[itr, \"brem_vtx_z\", jentry] > 2700\n", " or brem[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem[itr, \"brem_photons_pe\",\n", " jentry] < photon_cut_ratio * tmp_energy):\n", " continue\n", " else:\n", " cut_brem.real(brem[itr, \"brem_vtx_z\", jentry])\n", " tmp_energy -= brem[itr, \"brem_photons_pe\", jentry]\n", " cut_brem.end_list()\n", "\n", " cut_brem.field(\"photon_length\").integer(ph_length)\n", "\n", " cut_brem.end_record()\n", "\n", "ntuple = ak.Array(cut_brem)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "19715\n", "50501\n" ] }, { "data": { "text/html": [ "<pre>{event_id: 0,\n", " lost: True,\n", " rad_length_frac: 0.129,\n", " energy: 1.17e+04,\n", " brem_photons_pe: [],\n", " brem_vtx_x: [],\n", " brem_vtx_z: [],\n", " photon_length: 0}\n", "-----------------------------------\n", "type: {\n", " event_id: int64,\n", " lost: bool,\n", " rad_length_frac: float64,\n", " energy: float64,\n", " brem_photons_pe: var * float64,\n", " brem_vtx_x: var * float64,\n", " brem_vtx_z: var * float64,\n", " photon_length: int64\n", "}</pre>" ], "text/plain": [ "<Record {event_id: 0, lost: True, ...} type='{event_id: int64, lost: bool, ...'>" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(ak.sum(ak.num(ntuple[\"brem_photons_pe\"], axis=1)))\n", "print(ak.num(ntuple, axis=0))\n", "ntuple[0]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# nulltuple = ntuple[:7000]\n", "# onetuple = ntuple[7000:14000]\n", "# twotuple = ntuple[14000:21000]\n", "# threetuple = ntuple[21000:28000]\n", "# fourtuple = ntuple[28000:35000]\n", "# fivetuple = ntuple[35000:42000]\n", "# sixtuple = ntuple[42000:49000]\n", "# seventuple = ntuple[49000:]\n", "\n", "# ntuple.nbytes" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# cut = \"tenCut\"\n", "# tree = \"Tree10\"\n", "# with uproot.update(\"trackinglosses_B_photon_cuts.root\") as outFile:\n", "# #outFile[\"README\"] = \"The Cuts are placed on the photons. noCut: 0*E, first: 0.05*E, second: 0.1*E, etc.\"\n", "# 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", "# 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", "# 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", "# 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", "# 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", "# 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", "# 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", "# 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", "# 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\"]} )" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "50501\n" ] }, { "data": { "text/html": [ "<pre>{event_id: 1,\n", " lost: False,\n", " rad_length_frac: 0.148,\n", " energy: 1.28e+04,\n", " brem_photons_pe: [7.42e+03],\n", " brem_vtx_x: [-3.61],\n", " brem_vtx_z: [35.6],\n", " photon_length: 1}\n", "-----------------------------------\n", "type: {\n", " event_id: int64,\n", " lost: bool,\n", " rad_length_frac: float64,\n", " energy: float64,\n", " brem_photons_pe: var * float64,\n", " brem_vtx_x: var * float64,\n", " brem_vtx_z: var * float64,\n", " photon_length: int64\n", "}</pre>" ], "text/plain": [ "<Record {event_id: 1, lost: False, ...} type='{event_id: int64, lost: bool,...'>" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# data in cut_brem_found and cut_brem_lost\n", "\n", "length_found = ak.num(ntuple[~ntuple.lost][\"brem_photons_pe\"], axis=0)\n", "length_lost = ak.num(ntuple[ntuple.lost][\"brem_photons_pe\"], axis=0)\n", "print(length_found + length_lost)\n", "ntuple[1]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "Z_found = ak.to_numpy(\n", " ak.sum(ntuple[~ntuple.lost][\"brem_photons_pe\"], axis=-1, keepdims=False)\n", ") / ak.to_numpy(ntuple[~ntuple.lost][\"energy\"])\n", "Z_lost = ak.to_numpy(\n", " ak.sum(ntuple[ntuple.lost][\"brem_photons_pe\"], axis=-1, keepdims=False)\n", ") / ak.to_numpy(ntuple[ntuple.lost][\"energy\"])" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xlim = 0\n", "\n", "plt.hist(\n", " Z_lost,\n", " bins=100,\n", " density=True,\n", " alpha=0.5,\n", " histtype=\"bar\",\n", " color=\"darkorange\",\n", " label=\"lost\",\n", " range=[xlim, 1],\n", ")\n", "plt.hist(\n", " Z_found,\n", " bins=100,\n", " density=True,\n", " alpha=0.5,\n", " histtype=\"bar\",\n", " color=\"blue\",\n", " label=\"found\",\n", " range=[xlim, 1],\n", ")\n", "plt.yscale(\"log\")\n", "plt.xlabel(r\"$E_\\gamma/E_0$\")\n", "plt.ylabel(\"a.u.\")\n", "plt.title(r\"$E_{ph}/E_0$\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "found: 15673 , lost: 4042\n", "0.2578957442735915\n" ] }, { "data": { "text/html": [ "<pre>[-3.61,\n", " -33.8,\n", " 65.2,\n", " -26.6,\n", " 31.6,\n", " -52.1,\n", " -44.7,\n", " -103,\n", " -10.2,\n", " -47.1,\n", " ...,\n", " -25.5,\n", " -90.3,\n", " 55.2,\n", " 152,\n", " -144,\n", " 330,\n", " -13.1,\n", " -4.27,\n", " -17.8]\n", "---------------------\n", "type: 15673 * float64</pre>" ], "text/plain": [ "<Array [-3.61, -33.8, 65.2, ..., -13.1, -4.27, -17.8] type='15673 * float64'>" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tuple_found = ntuple[~ntuple.lost]\n", "tuple_lost = ntuple[ntuple.lost]\n", "\n", "brem_x_found = ak.to_numpy(ak.flatten(tuple_found[\"brem_vtx_x\"]))\n", "brem_z_found = ak.to_numpy(ak.flatten(tuple_found[\"brem_vtx_z\"]))\n", "\n", "brem_x_lost = ak.to_numpy(ak.flatten(tuple_lost[\"brem_vtx_x\"]))\n", "brem_z_lost = ak.to_numpy(ak.flatten(tuple_lost[\"brem_vtx_z\"]))\n", "\n", "n_found = len(brem_x_found)\n", "n_lost = len(brem_x_lost)\n", "print(\"found: \", n_found, \", lost: \", n_lost)\n", "stretch_factor = n_lost / n_found\n", "print(stretch_factor)\n", "ak.flatten(tuple_found[\"brem_vtx_x\"])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<Figure size 2000x800 with 3 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vmax = 150\n", "nbins = 100\n", "\n", "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(20, 8))\n", "\n", "a0 = ax0.hist2d(\n", " brem_z_found,\n", " brem_x_found,\n", " density=False,\n", " bins=nbins,\n", " cmap=plt.cm.jet,\n", " cmin=1,\n", " vmax=vmax,\n", " range=[[-200, 3000], [-1000, 1000]],\n", ")\n", "ax0.vlines([770, 990, 2700], -1000, 1000, colors=\"red\")\n", "ax0.set_ylim(-1000, 1000)\n", "ax0.set_xlim(-200, 3000)\n", "ax0.set_xlabel(\"z [mm]\")\n", "ax0.set_ylabel(\"x [mm]\")\n", "ax0.set_title(r\"$e^\\pm$ found brem vertices\")\n", "\n", "a1 = ax1.hist2d(\n", " brem_z_lost,\n", " brem_x_lost,\n", " density=False,\n", " bins=nbins,\n", " cmap=plt.cm.jet,\n", " cmin=1,\n", " vmax=vmax * stretch_factor,\n", " range=[[-200, 3000], [-1000, 1000]],\n", ")\n", "ax1.vlines([770, 990, 2700], -1000, 1000, colors=\"red\")\n", "ax1.set_ylim(-1000, 1000)\n", "ax1.set_xlim(-200, 3000)\n", "ax1.set_xlabel(\"z [mm]\")\n", "ax1.set_ylabel(\"x [mm]\")\n", "ax1.set_title(r\"$e^\\pm$ lost brem vertices\")\n", "# ax1.set(xlim=(0,4000), ylim=(-1000,1000))\n", "\n", "plt.suptitle(\"brem vtx of photons w/ $E>0.1E_0$\")\n", "plt.colorbar(a0[3], ax=ax1)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "50501\n" ] } ], "source": [ "energy_emissions = ak.ArrayBuilder()\n", "\n", "for jelec in range(ak.num(ntuple, axis=0)):\n", " energy_emissions.begin_record()\n", " energy_emissions.field(\"lost\").boolean(ntuple[jelec, \"lost\"])\n", " energy_emissions.field(\"energy\").real(ntuple[jelec, \"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(ak.num(ntuple[jelec][\"brem_photons_pe\"], axis=0)):\n", " if ntuple[jelec, \"brem_vtx_z\", jphoton] <= 770:\n", " tmp_velo += ntuple[jelec, \"brem_photons_pe\", jphoton]\n", " tmp_velo_length += 1\n", " elif (ntuple[jelec, \"brem_vtx_z\", jphoton]\n", " > 770) and (ntuple[jelec, \"brem_vtx_z\", jphoton] <= 2700):\n", " tmp_richut += ntuple[jelec, \"brem_photons_pe\", jphoton]\n", " tmp_richut_length += 1\n", " else:\n", " tmp_neither += ntuple[jelec, \"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_neither_length +\n", " tmp_richut_length +\n", " tmp_velo_length)\n", "\n", " if (tmp_velo == 0) and (tmp_richut == 0):\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", "\n", "print(ak.num(energy_emissions, axis=0))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<pre>{lost: False,\n", " energy: 5.09e+04,\n", " velo_length: 0,\n", " velo: 0,\n", " rich_length: 0,\n", " rich: 0,\n", " neither_length: 0,\n", " downstream: 0,\n", " photon_length: 0,\n", " quality: 0}\n", "--------------------------\n", "type: {\n", " lost: bool,\n", " energy: float64,\n", " velo_length: int64,\n", " velo: float64,\n", " rich_length: int64,\n", " rich: float64,\n", " neither_length: int64,\n", " downstream: float64,\n", " photon_length: int64,\n", " quality: int64\n", "}</pre>" ], "text/plain": [ "<Record {lost: False, energy: 5.09e+04, ...} type='{lost: bool, energy: flo...'>" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "energy_emissions[3]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "found: 41978\n", "lost: 8523\n", "50501\n", "VELO energy emission, eff: 0.15952159363180926\n", "RICH1+UT energy emission, eff: 0.10419595651571256\n", "Neither, eff: 0.5675135145838697\n", "total efficiency: 0.8312310647313915\n", "efficiency: 0.8312310647313914\n", "\n", "found in velo/(found + lost in velo)\n", "VELO energy emission, eff: 0.8187823965850188\n", "RICH1+UT energy emission, eff: 0.7830357142857143\n", "eff von e die nicht strahlen: 0.8443815921277473\n" ] } ], "source": [ "# efficiency berechnen als found in velo oder rich über alle elektronen\n", "# dann kann man zusammenrechnen mit velo, rich, und allen anderen elektronen\n", "# expected eff = 81.19%\n", "\n", "electrons_found = energy_emissions[~energy_emissions.lost]\n", "electrons_lost = energy_emissions[energy_emissions.lost]\n", "\n", "anz_found = ak.num(electrons[~electrons.lost], axis=0)\n", "anz_lost = ak.num(electrons[electrons.lost], axis=0)\n", "print(\"found: \", anz_found)\n", "print(\"lost: \", anz_lost)\n", "\n", "num_velo_found = 0\n", "num_rich_found = 0\n", "num_no_up_rad_found = 0\n", "for itr in range(ak.num(electrons_found, axis=0)):\n", " if electrons_found[itr, \"quality\"] == 1:\n", " if electrons_found[itr, \"velo\"] >= electrons_found[itr, \"rich\"]:\n", " num_velo_found += 1\n", " else:\n", " num_rich_found += 1\n", " else:\n", " num_no_up_rad_found += 1\n", "\n", "num_velo_lost = 0\n", "num_rich_lost = 0\n", "num_no_up_rad_lost = 0\n", "for itr in range(ak.num(electrons_lost, axis=0)):\n", " if electrons_lost[itr, \"quality\"] == 1:\n", " if electrons_lost[itr, \"velo\"] >= electrons_lost[itr, \"rich\"]:\n", " num_velo_lost += 1\n", " else:\n", " num_rich_lost += 1\n", " else:\n", " num_no_up_rad_lost += 1\n", "\n", "denom = ak.num(electrons, axis=0)\n", "print(denom)\n", "\n", "eff_velo = num_velo_found / denom\n", "\n", "eff_rich = num_rich_found / denom\n", "\n", "eff_other = ak.num(electrons_found[electrons_found.quality == 0],\n", " axis=0) / denom\n", "\n", "print(\"VELO energy emission, eff: \", eff_velo)\n", "\n", "print(\"RICH1+UT energy emission, eff: \", eff_rich)\n", "\n", "print(\"Neither, eff: \", eff_other)\n", "\n", "print(\"total efficiency: \", eff_velo + eff_rich + eff_other)\n", "\n", "print(\"efficiency: \", anz_found / (anz_found + anz_lost))\n", "\n", "print(\"\\nfound in velo/(found + lost in velo)\")\n", "\n", "eff_velo = num_velo_found / (num_velo_found + num_velo_lost)\n", "eff_rich = num_rich_found / (num_rich_found + num_rich_lost)\n", "\n", "eff_no_rad = num_no_up_rad_found / (num_no_up_rad_found + num_no_up_rad_lost)\n", "\n", "print(\"VELO energy emission, eff: \", eff_velo)\n", "\n", "print(\"RICH1+UT energy emission, eff: \", eff_rich)\n", "\n", "print(\"eff von e die nicht strahlen: \", eff_no_rad)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "41978\n", "8523\n", "50501\n" ] } ], "source": [ "print(ak.num(electrons[~electrons.lost], axis=0))\n", "print(ak.num(electrons[electrons.lost], axis=0))\n", "print(ak.num(electrons, axis=0))" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# energyspektren angucken von velo und rich\n", "diff_found = ak.to_numpy(energy_emissions[(~energy_emissions.lost) & (\n", " energy_emissions.quality == 1)][\"velo\"]) - ak.to_numpy(energy_emissions[\n", " (~energy_emissions.lost) & (energy_emissions.quality == 1)][\"rich\"])\n", "diff_lost = ak.to_numpy(energy_emissions[(energy_emissions.lost) & (\n", " energy_emissions.quality == 1)][\"velo\"]) - ak.to_numpy(energy_emissions[\n", " (energy_emissions.lost) & (energy_emissions.quality == 1)][\"rich\"])\n", "\n", "xlim = 20000\n", "nbins = 80\n", "\n", "plt.hist(\n", " diff_lost,\n", " bins=nbins,\n", " density=True,\n", " alpha=0.5,\n", " histtype=\"bar\",\n", " color=\"darkorange\",\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=\"blue\",\n", " label=\"found\",\n", " range=[-xlim, xlim],\n", ")\n", "plt.xlim(-20000, 20000)\n", "plt.title(\"emitted energy difference\")\n", "plt.xlabel(r\"$E_{VELO} - E_{RICH1+UT}$ [MeV]\")\n", "plt.ylabel(\"a.u.\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# number of brem vtx with E>x*E_0\n", "\n", "number_velo = ak.to_numpy(\n", " energy_emissions[energy_emissions.quality == 1][\"velo_length\"])\n", "number_rich = ak.to_numpy(\n", " energy_emissions[energy_emissions.quality == 1][\"rich_length\"])\n", "\n", "plt.hist(\n", " number_velo,\n", " bins=10,\n", " density=True,\n", " alpha=0.5,\n", " histtype=\"bar\",\n", " color=\"darkorange\",\n", " label=\"velo\",\n", " range=[0, 10],\n", ")\n", "plt.hist(\n", " number_rich,\n", " bins=10,\n", " density=True,\n", " alpha=0.5,\n", " histtype=\"bar\",\n", " color=\"blue\",\n", " label=\"rich\",\n", " range=[0, 10],\n", ")\n", "plt.xlim(0, 10)\n", "plt.title(\"number of photons emitted\")\n", "plt.xlabel(\"number of photons\")\n", "plt.ylabel(\"a.u.\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "' \\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'" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\" \n", "photon cut = x*E_0\n", "effs, all photons included: x=0\n", "found in velo/(found + lost in velo)\n", "VELO energy emission, eff: 0.8446167611094543\n", "RICH1+UT energy emission, eff: 0.7961586121437423\n", "eff von e die nicht strahlen: 0.7954674220963173\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": "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 }
|