|
|
{ "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": [ { "data": { "text/plain": [ "31630" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# file = uproot.open(\"tracking_losses_ntuple_Bd2KstEE.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\")\n", "file = uproot.open(\n", " \"tracking_losses_ntuple_B_default.root:PrDebugTrackingLosses.PrDebugTrackingTool/Tuple;1\"\n", ")\n", "\n", "# selektiere nur elektronen von B->K*ee\n", "allcolumns = file.arrays()\n", "found = allcolumns[\n", " (allcolumns.isElectron) & (~allcolumns.lost) & (allcolumns.fromSignal)\n", "] # B: 9056\n", "lost = allcolumns[\n", " (allcolumns.isElectron) & (allcolumns.lost) & (allcolumns.fromSignal)\n", "] # B: 1466\n", "\n", "ak.num(found, axis=0) + ak.num(lost, axis=0)\n", "# ak.count(found, axis=None)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# found\n", "\n", "brem_e_f = found[\"brem_photons_pe\"]\n", "brem_z_f = found[\"brem_vtx_z\"]\n", "brem_x_f = found[\"brem_vtx_x\"]\n", "e_f = found[\"energy\"]\n", "length_f = found[\"brem_vtx_z_length\"]\n", "\n", "brem_f = ak.ArrayBuilder()\n", "\n", "for itr in range(ak.num(found, axis=0)):\n", " brem_f.begin_record()\n", " # [:,\"energy\"] energy\n", " brem_f.field(\"energy\").append(e_f[itr])\n", " # [:,\"photon_length\"] number of vertices\n", " brem_f.field(\"photon_length\").integer(length_f[itr])\n", " # [:,\"brem_photons_pe\",:] photon energy\n", " brem_f.field(\"brem_photons_pe\").append(brem_e_f[itr])\n", " # [:,\"brem_vtx_z\",:] brem vtx z\n", " brem_f.field(\"brem_vtx_x\").append(brem_x_f[itr])\n", " brem_f.field(\"brem_vtx_z\").append(brem_z_f[itr])\n", " brem_f.end_record()\n", "\n", "brem_f = ak.Array(brem_f)\n", "\n", "# lost\n", "\n", "brem_e_l = lost[\"brem_photons_pe\"]\n", "brem_z_l = lost[\"brem_vtx_z\"]\n", "brem_x_l = lost[\"brem_vtx_x\"]\n", "e_l = lost[\"energy\"]\n", "length_l = lost[\"brem_vtx_z_length\"]\n", "\n", "brem_l = ak.ArrayBuilder()\n", "\n", "for itr in range(ak.num(lost, axis=0)):\n", " brem_l.begin_record()\n", " # [:,\"energy\"] energy\n", " brem_l.field(\"energy\").append(e_l[itr])\n", " # [:,\"photon_length\"] number of vertices\n", " brem_l.field(\"photon_length\").integer(length_l[itr])\n", " # [:,\"brem_photons_pe\",:] photon energy\n", " brem_l.field(\"brem_photons_pe\").append(brem_e_l[itr])\n", " # [:,\"brem_vtx_z\",:] brem vtx z\n", " brem_l.field(\"brem_vtx_x\").append(brem_x_l[itr])\n", " brem_l.field(\"brem_vtx_z\").append(brem_z_l[itr])\n", " brem_l.end_record()\n", "\n", "brem_l = ak.Array(brem_l)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "photon_cut = 0\n", "photon_cut_ratio = 0.1\n", "\n", "cut_brem_found = ak.ArrayBuilder()\n", "\n", "for itr in range(ak.num(brem_f, axis=0)):\n", " cut_brem_found.begin_record()\n", " cut_brem_found.field(\"energy\").real(brem_f[itr, \"energy\"])\n", "\n", " tmp_energy = brem_f[itr, \"energy\"]\n", "\n", " cut_brem_found.field(\"brem_photons_pe\")\n", " cut_brem_found.begin_list()\n", " for jentry in range(brem_f[itr, \"photon_length\"]):\n", " if (\n", " brem_f[itr, \"brem_vtx_z\", jentry] > 5000\n", " or brem_f[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem_f[itr, \"brem_photons_pe\", jentry] < photon_cut_ratio * tmp_energy\n", " ):\n", " continue\n", " else:\n", " cut_brem_found.real(brem_f[itr, \"brem_photons_pe\", jentry])\n", " tmp_energy -= brem_f[itr, \"brem_photons_pe\", jentry]\n", " cut_brem_found.end_list()\n", "\n", " tmp_energy = brem_f[itr, \"energy\"]\n", "\n", " cut_brem_found.field(\"brem_vtx_x\")\n", " cut_brem_found.begin_list()\n", " for jentry in range(brem_f[itr, \"photon_length\"]):\n", " if (\n", " brem_f[itr, \"brem_vtx_z\", jentry] > 5000\n", " or brem_f[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem_f[itr, \"brem_photons_pe\", jentry] < photon_cut_ratio * tmp_energy\n", " ):\n", " continue\n", " else:\n", " cut_brem_found.real(brem_f[itr, \"brem_vtx_x\", jentry])\n", " tmp_energy -= brem_f[itr, \"brem_photons_pe\", jentry]\n", " cut_brem_found.end_list()\n", "\n", " tmp_energy = brem_f[itr, \"energy\"]\n", "\n", " cut_brem_found.field(\"brem_vtx_z\")\n", " cut_brem_found.begin_list()\n", " for jentry in range(brem_f[itr, \"photon_length\"]):\n", " if (\n", " brem_f[itr, \"brem_vtx_z\", jentry] > 5000\n", " or brem_f[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem_f[itr, \"brem_photons_pe\", jentry] < photon_cut_ratio * tmp_energy\n", " ):\n", " continue\n", " else:\n", " cut_brem_found.real(brem_f[itr, \"brem_vtx_z\", jentry])\n", " tmp_energy -= brem_f[itr, \"brem_photons_pe\", jentry]\n", " cut_brem_found.end_list()\n", "\n", " cut_brem_found.end_record()\n", "\n", "tuple_found = ak.Array(cut_brem_found)\n", "\n", "cut_brem_lost = ak.ArrayBuilder()\n", "\n", "for itr in range(ak.num(brem_l, axis=0)):\n", " cut_brem_lost.begin_record()\n", " cut_brem_lost.field(\"energy\").real(brem_l[itr, \"energy\"])\n", "\n", " tmp_energy = brem_l[itr, \"energy\"]\n", "\n", " cut_brem_lost.field(\"brem_photons_pe\")\n", " cut_brem_lost.begin_list()\n", " for jentry in range(brem_l[itr, \"photon_length\"]):\n", " if (\n", " brem_l[itr, \"brem_vtx_z\", jentry] > 5000\n", " or brem_l[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem_l[itr, \"brem_photons_pe\", jentry] < photon_cut_ratio * tmp_energy\n", " ):\n", " continue\n", " else:\n", " cut_brem_lost.real(brem_l[itr, \"brem_photons_pe\", jentry])\n", " tmp_energy -= brem_l[itr, \"brem_photons_pe\", jentry]\n", " cut_brem_lost.end_list()\n", "\n", " tmp_energy = brem_l[itr, \"energy\"]\n", "\n", " cut_brem_lost.field(\"brem_vtx_x\")\n", " cut_brem_lost.begin_list()\n", " for jentry in range(brem_l[itr, \"photon_length\"]):\n", " if (\n", " brem_l[itr, \"brem_vtx_z\", jentry] > 5000\n", " or brem_l[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem_l[itr, \"brem_photons_pe\", jentry] < photon_cut_ratio * tmp_energy\n", " ):\n", " continue\n", " else:\n", " cut_brem_lost.real(brem_l[itr, \"brem_vtx_x\", jentry])\n", " tmp_energy -= brem_l[itr, \"brem_photons_pe\", jentry]\n", " cut_brem_lost.end_list()\n", "\n", " tmp_energy = brem_l[itr, \"energy\"]\n", "\n", " cut_brem_lost.field(\"brem_vtx_z\")\n", " cut_brem_lost.begin_list()\n", " for jentry in range(brem_l[itr, \"photon_length\"]):\n", " if (\n", " brem_l[itr, \"brem_vtx_z\", jentry] > 5000\n", " or brem_l[itr, \"brem_photons_pe\", jentry] < photon_cut\n", " or brem_l[itr, \"brem_photons_pe\", jentry] < photon_cut_ratio * tmp_energy\n", " ):\n", " continue\n", " else:\n", " cut_brem_lost.real(brem_l[itr, \"brem_vtx_z\", jentry])\n", " tmp_energy -= brem_l[itr, \"brem_photons_pe\", jentry]\n", " cut_brem_lost.end_list()\n", "\n", " cut_brem_lost.end_record()\n", "\n", "tuple_lost = ak.Array(cut_brem_lost)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<pre>{energy: 3.26e+04,\n", " brem_photons_pe: [1.26e+04, 4.49e+03],\n", " brem_vtx_x: [-33.8, -133],\n", " brem_vtx_z: [601, 2.33e+03]}\n", "---------------------------------------\n", "type: {\n", " energy: float64,\n", " brem_photons_pe: var * float64,\n", " brem_vtx_x: var * float64,\n", " brem_vtx_z: var * float64\n", "}</pre>" ], "text/plain": [ "<Record {energy: 3.26e+04, ...} type='{energy: float64, brem_photons_pe: va...'>" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# data in cut_brem_found and cut_brem_lost\n", "\n", "length_found = ak.num(tuple_found[\"brem_photons_pe\"], axis=-1)\n", "length_lost = ak.num(tuple_lost[\"brem_photons_pe\"], axis=-1)\n", "\n", "tuple_found[1]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<pre>{energy: 2.12e+04,\n", " brem_photons_pe: [],\n", " brem_vtx_x: [],\n", " brem_vtx_z: []}\n", "-----------------------------------\n", "type: {\n", " energy: float64,\n", " brem_photons_pe: var * float64,\n", " brem_vtx_x: var * float64,\n", " brem_vtx_z: var * float64\n", "}</pre>" ], "text/plain": [ "<Record {energy: 2.12e+04, ...} type='{energy: float64, brem_photons_pe: va...'>" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tuple_found[3]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "Z_found = ak.to_numpy(\n", " ak.sum(tuple_found[\"brem_photons_pe\"], axis=-1, keepdims=False)\n", ") / ak.to_numpy(tuple_found[\"energy\"])\n", "Z_lost = ak.to_numpy(\n", " ak.sum(tuple_lost[\"brem_photons_pe\"], axis=-1, keepdims=False)\n", ") / ak.to_numpy(tuple_lost[\"energy\"])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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", ")\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", ")\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": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "found: 24074 , lost: 2400\n", "0.09969261443881366\n" ] } ], "source": [ "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)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<Figure size 2000x800 with 3 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vmax = 300\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, 4000], [-1000, 1000]],\n", ")\n", "ax0.vlines([770, 990, 2700], -1000, 1000)\n", "ax0.set_ylim(-1000, 1000)\n", "ax0.set_xlim(-200, 4000)\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, 4000], [-1000, 1000]],\n", ")\n", "ax1.vlines([770, 990, 2700], -1000, 1000)\n", "ax1.set_ylim(-1000, 1000)\n", "ax1.set_xlim(-200, 4000)\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.colorbar(a0[3], ax=ax1)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "tuple_found[1]\n", "\n", "\n", "def ratio(nominator, denom):\n", " denominator = ak.num(denom[\"energy\"], axis=0)\n", " return nominator / denominator\n", "\n", "\n", "def eff(found, lost):\n", " return found / (found + lost)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ratio of lost electrons emitting in Velo: 0.3855211513301352\n", "ratio of lost electrons emitting in Rich1+UT: 0.3475795900566943\n" ] } ], "source": [ "n_elec_lost = ak.num(tuple_lost, axis=0)\n", "\n", "velo_lost = 0\n", "\n", "richut_lost = 0\n", "\n", "for jelec in range(ak.num(tuple_lost, axis=0)):\n", " veloemitted = False\n", " richemitted = False\n", " for jphoton in range(ak.num(tuple_lost[jelec][\"brem_photons_pe\"], axis=0)):\n", " if (tuple_lost[jelec, \"brem_vtx_z\", jphoton] <= 850) and (veloemitted == False):\n", " velo_lost += 1\n", " veloemitted = True\n", " elif (\n", " (tuple_lost[jelec, \"brem_vtx_z\", jphoton] > 850)\n", " and (tuple_lost[jelec, \"brem_vtx_z\", jphoton] <= 3000)\n", " and (richemitted == False)\n", " ):\n", " richut_lost += 1\n", " richemitted = True\n", "\n", "print(\"ratio of lost electrons emitting in Velo: \", ratio(velo_lost, brem_l))\n", "print(\"ratio of lost electrons emitting in Rich1+UT: \", ratio(richut_lost, brem_l))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "electrons_lost = ak.ArrayBuilder()\n", "\n", "for jelec in range(ak.num(tuple_lost, axis=0)):\n", " electrons_lost.begin_record()\n", " electrons_lost.field(\"energy\").real(tuple_lost[jelec, \"energy\"])\n", "\n", " tmp_velo = 0\n", " tmp_richut = 0\n", " for jphoton in range(ak.num(tuple_lost[jelec][\"brem_photons_pe\"], axis=0)):\n", " if tuple_lost[jelec, \"brem_vtx_z\", jphoton] <= 850:\n", " tmp_velo += tuple_lost[jelec, \"brem_photons_pe\", jphoton]\n", " elif (tuple_lost[jelec, \"brem_vtx_z\", jphoton] > 850) and (\n", " tuple_lost[jelec, \"brem_vtx_z\", jphoton] <= 3000\n", " ):\n", " tmp_richut += tuple_lost[jelec, \"brem_photons_pe\", jphoton]\n", "\n", " electrons_lost.field(\"velo\").real(tmp_velo)\n", "\n", " electrons_lost.field(\"rich\").real(tmp_richut)\n", "\n", " electrons_lost.end_record()\n", "\n", "electrons_lost = ak.Array(electrons_lost)\n", "\n", "electrons_found = ak.ArrayBuilder()\n", "\n", "for jelec in range(ak.num(tuple_found, axis=0)):\n", " electrons_found.begin_record()\n", " electrons_found.field(\"energy\").real(tuple_found[jelec, \"energy\"])\n", "\n", " tmp_velo = 0\n", " tmp_richut = 0\n", " for jphoton in range(ak.num(tuple_found[jelec][\"brem_photons_pe\"], axis=0)):\n", " if tuple_found[jelec, \"brem_vtx_z\", jphoton] <= 850:\n", " tmp_velo += tuple_found[jelec, \"brem_photons_pe\", jphoton]\n", " elif (tuple_found[jelec, \"brem_vtx_z\", jphoton] > 850) and (\n", " tuple_found[jelec, \"brem_vtx_z\", jphoton] <= 3000\n", " ):\n", " tmp_richut += tuple_found[jelec, \"brem_photons_pe\", jphoton]\n", "\n", " electrons_found.field(\"velo\").real(tmp_velo)\n", "\n", " electrons_found.field(\"rich\").real(tmp_richut)\n", "\n", " electrons_found.end_record()\n", "\n", "electrons_found = ak.Array(electrons_found)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "VELO energy emission, eff: 0.9318135969336292\n", "RICH1+UT energy emission, eff: 0.9119065010956903\n" ] } ], "source": [ "num_velo_found = 0\n", "num_rich_found = 0\n", "for itr in range(ak.num(electrons_found, axis=0)):\n", " if electrons_found[itr, \"velo\"] >= electrons_found[itr, \"rich\"]:\n", " num_velo_found += 1\n", " else:\n", " num_rich_found += 1\n", "\n", "num_velo_lost = 0\n", "num_rich_lost = 0\n", "for itr in range(ak.num(electrons_lost, axis=0)):\n", " if electrons_lost[itr, \"velo\"] >= electrons_lost[itr, \"rich\"]:\n", " num_velo_lost += 1\n", " else:\n", " num_rich_lost += 1\n", "\n", "print(\"VELO energy emission, eff: \", eff(num_velo_found, num_velo_lost))\n", "\n", "print(\"RICH1+UT energy emission, eff: \", eff(num_rich_found, num_rich_lost))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "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": 56, "metadata": {}, "outputs": [], "source": [ "cut = 4000\n", "\n", "tf = tuple_found[ak.sum(\n", " tuple_found[\"brem_photons_pe\"], axis=-1, keepdims=False) > cut]\n", "tl = tuple_lost[ak.sum(tuple_lost[\"brem_photons_pe\"], axis=-1, keepdims=False)\n", " > cut]\n", "\n", "cut_x_found = ak.to_numpy(ak.flatten(tf[\"brem_vtx_x\"]))\n", "cut_z_found = ak.to_numpy(ak.flatten(tf[\"brem_vtx_z\"]))\n", "\n", "cut_x_lost = ak.to_numpy(ak.flatten(tf[\"brem_vtx_x\"]))\n", "cut_z_lost = ak.to_numpy(ak.flatten(tf[\"brem_vtx_z\"]))\n", "\n", "# how many tracks of all are included?\n", "ratio_f = tuple_found[ak.sum(\n", " tuple_found[\"brem_photons_pe\"], axis=-1, keepdims=False) > cut]\n", "ratio_l = tuple_lost[ak.sum(\n", " tuple_lost[\"brem_photons_pe\"], axis=-1, keepdims=False) > cut]" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<Figure size 2000x800 with 3 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vmax = 500\n", "\n", "fig, ((ax0, ax1)) = plt.subplots(nrows=1, ncols=2, figsize=(20, 8))\n", "\n", "a0 = ax0.hist2d(\n", " cut_z_found,\n", " cut_x_found,\n", " density=False,\n", " bins=200,\n", " cmap=plt.cm.jet,\n", " cmin=1,\n", " vmax=vmax,\n", ")\n", "ax0.set_ylim(-1000, 1000)\n", "ax0.set_xlim(-200, 4000)\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(cut_z_lost,\n", " cut_x_lost,\n", " density=False,\n", " bins=200,\n", " cmap=plt.cm.jet,\n", " cmin=1,\n", " vmax=vmax)\n", "ax1.set_ylim(-1000, 1000)\n", "ax1.set_xlim(-200, 4000)\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.colorbar(a0[3], ax=ax1)\n", "\n", "plt.show()" ] }, { "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 }
|