1138 lines
150 KiB
Plaintext
1138 lines
150 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 65,
|
|
"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": 66,
|
|
"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": 67,
|
|
"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_p: float64,\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",
|
|
" 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": 67,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"electrons[0]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 68,
|
|
"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": 68,
|
|
"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": 69,
|
|
"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] > 3000\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] > 3000\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] > 3000\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": 70,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"20636\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": 70,
|
|
"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": 71,
|
|
"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": 72,
|
|
"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": 73,
|
|
"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": 73,
|
|
"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": 74,
|
|
"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": 75,
|
|
"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.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": 76,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"found: 16049 , lost: 4587\n",
|
|
"0.2858122001370802\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: 16049 * float64</pre>"
|
|
],
|
|
"text/plain": [
|
|
"<Array [-3.61, -33.8, 65.2, ..., -13.1, -4.27, -17.8] type='16049 * float64'>"
|
|
]
|
|
},
|
|
"execution_count": 76,
|
|
"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": 77,
|
|
"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": 78,
|
|
"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": 79,
|
|
"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": 79,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"energy_emissions[3]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 80,
|
|
"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": 81,
|
|
"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": 84,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkEAAAHJCAYAAACCD+2FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6N0lEQVR4nO3db2gkeX7n+Y/c7ZbLI2pC6uFg4AbcITjO3oMtItUDN167muvMGfA8OOzKrIJ9YMMNyrTRPTgKrLTMQVU9cV4IPxU4Up6j17ALqszC3HL4sDN7UHnX88BdGS4/uOXWrKJ86GDM7oyUU2imRj3dnfegJqIzpchUZiozIjLi/YKkSvH3GxGS4qvf7xffWOr1ej0BAABkzM/FHQAAAEAcSIIAAEAmkQQBAIBMIgkCAACZRBIEAAAyiSQIAABkEkkQAADIJJIgAACQSSRBQMq5rqt6vR53GAuD8wVkB0kQMEee52l1dTWWm6rneSqVSsrlcnIcJ/L9L5ph5+uqa+i6rqrVqkqlktbX17W7uzvWPADxezPuAIA063a76na7Ojo6ujTP8zytra3JMIyxpk/KNE01Gg0tLS1daztZMex8jbqGruvq/fff1+npqSSpWq0Gy42aByAZlnh3GBCPXC6nRqMh0zTHmj6tpaUlWZalTqczk+2l3STnq1QqyXXd0ORm1DwAyUB3WIy63W7cISAm/g1y3OlIplHXiusIJB9JUMTW19e1tLSkpaUllUqluMPJPNd1VSqVVCgUtL6+rmq1Gszrdruq1+sqFAqq1+vyPE+FQkGrq6sqFApBEru7u6v19XWtrq4OrC9JzWZTpVJp4Fo3m83gBlmpVILEZ9j0cWLtj7lSqQSfScagjHMucrmcms2m2u22crnc0O/jq2JtNpsqFApqt9uq1+taXV1VpVK5tB3/ONbX1y+dj3a7rdXVVS0tLalQKAzMq9frWlpauvL4xzlfYdewXq+rVCrJ87xgLFGpVAqOZ9i8WZybWV6ni+egUChcOpfjxAwsrB4i02q1eo1Go3d6eto7PT2NO5zM63Q6vXw+H3zdaDR6knrlcrnX6/V6R0dHvXK53JPUy+fzve3t7V6n0+m1Wq1gWrlc7rVard7R0VGvWCz2JPU6nU6wvm3bwbL9tre3e5J6R0dHY02/KlZ/f4Zh9FqtVjDN379lWdc+F/7x9Z8L//zYtj32thqNRs80zWDa9vZ2z7KsSzFaltXb3t4O9i+pJ6lnmmawLf/4+vfvL3/VMY9zvkZdw16v1zNNs2eaZuj2w+Zd99zM8jr5y5umOfD9ZhhGzzCMsWMGFhlJUISKxWLPtu3gJol4WZZ16VoYhtGTFCSpnU4n9Be+ZVmXkhV/2Ys3mlkkQePEWiwWQ2/U4yRB42zfv/lddXzjbMtPLPwk5yJ/X/3b8W/kF8+Nnxj1s2275zjOyGOe5HzNKgm67rmZ5XXyt3dxOX///vbG2SewqDL/dFi321WtVpMk2bZ9ab7ruqrVajJNU91uV4VCQcVicep9+c3I5XKZx5Zj5HlecG3DPHv2TPl8Pvj64pNapmnKdV2tra0NTJM084Gw48RqmqaazWbo9/Astj/qXEjSycnJRNvyt/Huu++GLvfRRx9dmlYqlVSv1+W67sCg8XK5rHq9rna7HcR5cHCgDz/8MHTbfpzTnq9pXffczPI69W9vf39/YJnt7W1tb29PtU9g0WQ6CWq323IcR81mU+Vy+dJ8z/OUy+XU6XRkWZak12N6Tk5OQpe/SqvVkvR6PIE/zsH/ZYNo+WMeGo1GzJFcbZxY/fEm0zxRNstzMem2hpUB8BOAdrsd/Oz5Ln5drVZVr9dl27by+by63e6VJQY8z5M03fma1nXPzay/Z/3tjTpPi/RzAkwj0wOj8/n8yB/uSqWifD4/8Eu3Wq2GDuCcRLlclm3bOjg4uNZ2MD3/Juj/m2TjxOrP6/9Lf5bbj3pbxWJR+XxetVpN7XZb3W5Xtm1re3v7UuJimqby+bza7bY8zwsGJo8T5zTna1rXPTez/p6d5PtqEX5OgGlkOgkapdvtqt1uq1AoDEzf2NiQpKB6bL1eV7VaHfrx/0K/qFgs8oh8jPwbabPZDJ0/7LrFYZxY/WWmqQU0y3Mxy201Gg3l8/ngNRa2bQ/tvvK7mR3HUavVurKl9jrna1rXPTez/p71/7gb9oeg53kL9XMCTCXuQUnXdXp62isWi0Pnt1qtoYMvfQoZ+Oo/AdRoNEKXH7XPcfhPcSAep6enwdNGFwd9Oo4TPDHkD3a++D3kP4HTPzDU3+bF7yWNGBh9cd9h08eJtX+Zi4NVFTJweJpz4Q+4vTjgWH0DicfdluM4PUkDT2ZdFDYQeRT/qapxfq4mPV9h17DXu/wk1ah51z03s7xOF7d3cV/b29vBU6zj7BNYVAvfEmQYRlDf4qJ2uz3yr8dR/ObfYf3lkzYPe5438FeT4zja2dmZOC7MhmEYwXisXC6nUqmk3d1dFQoFHR0dBYM9h3WX+K14/fP9//dPC1tOej22THr9feAP0h02fZxYLy7jdw35LSSe5w2tmXPdczHNtvzzMqw11B/o7K9fr9cH6iiF8Y/13r17E8c56nwNu4aTuu65meV18rfn/24sFAoqlUqqVqvK5XJaX1+XYRhj7xNYWHFnYbPSarUG/lK7+PUoCvnrfdhf6v7yo/6yHhafYRi9YrHYcxyHx+QTwrbtoAXBNM2Bv579+iiSeoZhBK2C/l/q+lmrQ6fTGajPYhhGcI39afrZI8v9rQ6WZfUMwwh9/D5s+qhYfY7jBMtYlhXUgdne3r70aPmk58IvC2CaZtD65D+27h/fONvqr4Uz7Dj8uP1t939M0wx9NNtvtZjEVedr2DXsr73j//7obz0cNm8W52aW18nfp7+OZVmhrTvjfO8BiyhV7w7zW34qlUowNmAcS0tLlx5Z95/garVal/7aWVpaUj6fH3v7ACbjuq4ODg60s7Ojk5MTdbvdoIWj0WiEPlnZbrfVaDQoPQFgbKl6RN5PTEqlUvDm5mn5AwKHNddH+WgtkCV+aYrT09OgS6afaZqhA3LpYgYwqYUfE9Sv3W7LdV01Go1rv5fLfwrs4tgf/+tcLnet7QMI5/+MbW5uDowB8h9/dxwnePrLH8vj/3uxhhAAjJKaliC/K6y/i6pQKEzdZWUYhizLUqvVGmh29/8CvXv37vUCBhAqn8/Ltm3VarWBR7Mty5Jt2wMJUP8DEbOu1A0g/VIxJigsAZJe17a4amxQt9vV6upq6GssXNdVLpfT0dFR0P21vr6uSqVCpWcgAv5YoGHdz9VqVZ7naWdnh1YgABNb+CSo2+1qc3NzaMGvZrOpjz76aOh7wRzHUb1el2EY2t/fH3h3j7+M/+4wz/NUKBSmemUGAABIlkQlQc1mU61WS4ZhBNVKo3zBIQAAyI7EJEHNZlO1Wm2gjH2hUAjGAYT5/ve/r7/8y7/UL/3SL+nGjRtRhQoAAK7h1atX+sd//Ed94xvf0Je+9KX4AomrQNFF+Xx+aHG4YT744IPQYmp8+PDhw4cPn+R/Pvjgg3mnFyMl5umwk5OTS4+j9w9IDvPlL39ZkrS/vz/RoMg7d+7oyZMnc1t+3vs4OzvT7du39fTpU62srCQipij2wXFz3HHHFMU+OG6OO+6YotiH67ra3NwM7uOxmVd29bu/+7u9P/3TPx17ef9VBP7LDzudTs8wjJGvl3j69GlPUu/p06cTxfbLv/zLc11+3vv44Q9/2JPU++EPf5iYmKLYB8fNcccdUxT74Lg57rhjimIf096/Z20uLUEvXryQ4zh6/PixvvWtb421TrlcVqfTUb1e1/r6ukzT1IsXL4a+wLTfj370I718+XLs+D799NOB5ZeXl7W8vDz2+gAAZNn5+bnOz88Hpl28t47yox/9aB5hTWwuSdA777wjx3EmfrWE4zh69uyZXNcNqsAWi8Ur1/uN3/iNiWP84he/GPz/wYMHevjw4cTbAAAgi2q1mh49enRpev+9dRHMbUzQ5ubmxOsUCgVVKhWZpqlSqaRSqaRGo3FlIvQXf/EX+tVf/dWx9/Puu+/qo48+Cr6mFQgAgPHt7Ozo/v37A9Mu3ltH+Zu/+ZupGjBmbW5J0De+8Q3Ztq1bt26NtXylUpGkoBDhixcv9M4772hzc/PKJOgLX/iCbt68OXZsb7zxxkTLAwCAz4UNI5nk3vqFL3xhHmFNbOok6N69e0PndbtdtdttPX78eOwk6PHjxwOVmA3DkG3bqlQqcl2XkvgAAGCmpk6Chr2m4uIyf/RHfzTW9tbW1tTtdgem5fN5SRprcPQktra25rp8VPuYFMc9n+Wj2sekOO75LB/VPibFcc9n+aj2MamsHvfMTftYWalU6nme1+t2u5c+nU6nV6lUJtqebds9wzB6p6enA9Msyxq6TlIesYvatI9ULjqOm+POAo6b486CpNy/p24JqlQqeuedd0LnWZalXC6nP/zDPxy7JWh7e1uGYahUKgVdX91uVx9++OG0IQIAAAw1dRL0/vvvj5xvmqb+4A/+YOwkSHo9KJo3tAMAgChMnQQ9f/586DzP81StVqfdNAAAwNxNnQRZlqWlpaWh83u9nnZ3d6fd/ER++7d/W7/4i78YOm9ra2sxB2sBALDA9vb2tLe3Fzrvxz/+ccTRhJs6CTIMQ3fv3g19cuvtt9+WZVlXdpnNyp/92Z/p13/91yPZFwAAuNqoRoi//uu/1u3btyOO6LKpk6D9/X3duXNnlrEAAABE5uemXZEECAAALLK5vTbj937v97SxsTH2W+Sn8dZbbw38mxXLy8t68OBB5t55xnEn8Li/+zB8+teGTJ9Aoo97jjhujjsLknL/Xur1er1Zb/TFixdaX1/X6uqqfvCDH8x68wHXdZXL5dTpdHitBhCHOSZBANIrKffvubQEvfPOO3IcR6ZpzmPzAAAA1za37rC7d+/qi1/84rw2DwAAcC1TD4y+yocffqidnZ15bR4AAOBartUS9J3vfEetVuvS299PTk7kuq5OTk5Uq9Wus4ux3LlzRzdu3AidR7FEAACiN6pY4qtXryKOJty16gRVKpWRy0T1HrAnT54wMBoAgAQZ1QjhD4yO29TdYY7jqNVq6fT0VH/1V38l27b12Wef6bPPPtPJyYnK5bL+5E/+ZJaxAgAAzMzUSVA+n9f777+vL37xi8rn83r27FkwzzAM5XI5xgQBAIDEmjoJ+uEPfzjw9d27d/XHf/zHA9Oazea0mwcAAJirqccEmaapN954Q6urq3r27Jnu3LmjjY0NtVotGYahZrMZ+nJVAACAJJg6Cfr93/99ff/739ff/d3faW1tTZL0+PFjFQoFvXjxQpJk2/ZsogQAAJixaz0ifzHJMU1TR0dHevHihdbW1iiWCGQVr9OANPz7IGn4vsysub02AwCArHBdVwcHB2q325KkTqcTc0QYx9xemxEliiUCAOLk16rb3d2da906z/O0tra2EGNuU10sMUkolggAiFsU96FSqaRGo7EQSVCqiyUCAIDolEolua4bdxipkoqWIAAAkqzb7aparcowjCCRqVaryufzoct0u121221Vq1WVy2U1m81gvUqlIsMwtLOzQy/INZEEAQAwR67r6v3339eHH34YJC31el2FQkG2bWt7e1uStLm5KdM0gyev6/V68ILyYrGojz76SLu7u3IcR6ZpxnIsaUN3GAAAc7S5uamNjY2BVptyuSzLslStVuV5niQFT5b1L4P5IgkCkC7ffRj+AWLgeZ5c1w3ttqpUKpJev5Bcel1rb3d3V7u7u8EyfisR5oMkCACAORk1kHljY0OSgpYg/6mvarWq9fV1BkFHgCQIAIA588f29PMfc/dfPWWapl68eKF8Pi/P85TL5VSv1yOMMntIggAAmBO/G+zieB/p88RofX1d0usWIcMw1Gq11Gg0JH3eZYb5SMXTYVSMBnAl3meGGJimKcuy5LquPM8beKrr2bNnMgwjGABt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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": 43,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHJCAYAAABpOFaGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxvklEQVR4nO3dT2wj6WH3+V+ne1qepOEpqefgOW26GBhBLjsoqn0IsOlBmhUj8CEwhtTcMgMYTcLQJRgkLHQu030JUUIOuQhwUQjQm9s0abzYQxAkpI3XXiCHtVjpXBaLxbI6wHtIgNdDlY2222r/qT30VA0pkRRF8U9Jz/cDCNNisZ56VMVR/fTU8+dakiSJAAAADPRb664AAADAuhCEAACAsQhCAADAWAQhAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBl0gURWo2m4rjeN1VWZs4jtVsNhVF0bqrggULw1DNZnPd1YBhCELAJbG3t6dCoaBarabBYLDu6swkDEN5nqdKpaJCoaC9vb0LlddsNnXnzh3VajWjw+AyRFGkzc3NtQSRKIpUqVRULBYVBMHKjw+zEYSAS6Jer6tcLq+7GjMLw1D379+X7/tqtVoql8vq9/sXKrNaraparS6ohl+Iosj4YBXHseI4HnuNJp2fRZ0327bVarUuXA4wD4IQcIlsbW2tuwozazQaI/X1fX8hf+3fvn37wmWcVKlULk0r27I4jqMkSeT7/qltk84P5w1XAUEIwFKEYbjuKsykUqlcmrquw6Tzw3nDVUEQAiZIO+UWi0W12211u10Vi0Vdu3ZNlUole1+73dbm5qauXbuW3Ri63a4qlcrIe9PyXNfNOvu6rqvNzU25rps9Ykj7Am1ubsrzvIl1q9Vq2tzc1Obmpmq12qn3hGGoSqUi13VVKBROldVut+W6rrrdrprN5sRyJh3b8zy5rpuVkWo2m6pUKoqiKOv7UalURt4z7Vyn9SkWi9rc3FSlUhn7+GUwGGTvO3lNZq1ru93OrlmtVjt1cz9r/1k/IyfLqtVqKhQK5+qPM+16LuKz1W63s2t11vk567yd9dkbPh/p10X7jwFzSwCM1e/3k3K5nEhKSqVSUq/Xk16vl1Sr1URS4vt+9t70tV6vN7K/pKRcLmffp+8bLq/T6WSvVavVpNPpjBx7uMzh/avVahIEQeI4TvZaqtfrjXzfarUSSUm1Ws2+t207e61eryeO4ySO40w9J71eL7Esa6ROQRCcOh9JkiS2bSe2bc90rtOfa/jctFqt7BwMl+P7fvY+3/cnXpNZ61qv1xNJSb/fP/fPep7PSLlcTur1+khZJ8/ZJGddz4t+tvr9/sh5HTbp/Ew7b9Pqmh7Psqyk0+lkr6XHP+szCCwaQQiYIv0lfvKGdfKGkd4Uhm+aR0dHI0EoSV7fJE7eFJIkycLM8E0lfe+4wNVqtUb2T0NNemNxHGekLkmSJJZlJZKSo6OjJEm+uPEM35zP4jjOqRvlpPqfJwgN1ycIgpHXS6XSyM886X0nr8msdZ10Q591/1k/I5ZlnTrXswahWa7nRT9b4+qcJOcPQrPUtVwujz23BCGsA4/GgBlYlnXqtYt0Ej1Znm3bkkY7Q6evjRvF4zjOyPfpI61Op6MoihSGoRqNRvaoY/hxx+Hh4Ugd7t69O1Od03JPHnv4+IvoDJ3+3CfL7nQ6I69vb2+PfG9ZVja30EXrOs/+Z31GbNvW3t7eyCOger0+sQ4n63LW9ZxUj/N+ti5ilrpGUZQ9lgXy4Ma6KwDg4kqlkqQvbkSSZh6OPO4GPs60jrFpKFnGJIdpGDlP2Ret6zJ+1larpWKxKM/zFASBWq3W2KA1qS6XYXj5LHVN+1idDLzAutAiBFwBaZixbXukVWQZxnVcTo+/jOH9aZnz3DgvWtdF/qy2bev58+cqlUqKokjFYnGmztLLvp6LNEtd020Mu0deEISAKyC9Yd+9ezcLDO12e+x7p43emiZtvRi3f3r8QqEwV9nTpDfMYrE48z4XresyftYoimRZljqdTtZiMssovWVdz2WYpa7pe3q93srqBUxDEAIWIJ3kb/gv4fTfq5ixOL3BlMvl7DGZ53mnHvFcZPkE27blOE42LH7Y4eGhLMsamfV5MBgs5K/+drs9UvZnn32Wlb+oukqj12me/c8yPFFhuVzO+hid1dKzrOt5XpM+x8Ovz1LX9NHipDXzTJ/hG6tHEAKmmPVGnrYgeJ6XzYOT3ui63W7WMXRSeekv/+Ht6b+HX0sfy5wMXGmfk/Q9aSfcYrGoSqWivb09ua6rfr+f3azSY57nxtNqtWRZ1khLRhzH8n1fBwcHM/c3mma4E3IcxwqCQAcHB2fuF8fxyLmata5py04QBFlH3vPsP+tn5OnTpyPXLY5j2bZ95iO/Wa/nRT9b494nTT4/416fpa4n39PtdhVFUTbXUBRFzCmE1Vr3sDUgr3q9Xjb02LbtpNPpJEdHRyNz3gwPP/Z9P7Esa2SYtG3b2Zwu6fwqkhLLsrLh4OncNPp8qH2v1xuZ68WyrGyo+NHRUVKv15NSqZTNDVOtVrNhycN838+G1du2PTLcfHgeoZPbznJ0dJQNf06PPzxcengeHX0+nHt4vphJhofzO46TlMvlpFwuj+zbarWyodjpMO2T12R4iPpZdU05jpNYlnVq6PksP+usn5FSqZR9Hur1elIul8det2nnZ9I1u+hnq9frZa+ldR6u26TzM+n1aXVNBUGQvcdxnKTf72fn5+SQfGCZriVJkqwocwHARHt7e/I8T51OJ2vlAIBl49EYAAAwFkEIAAAYiyAEYO3iOM5mjr4MEwcCuDroIwRg7caNEppl+QkAuCiCEAAAMBaPxgAAgLGMXXT1xz/+sf75n/9Zv/u7v6s333xz3dUBAAAzePnypf7jP/5DX//61/X2229fuDxjg9A//uM/6qOPPlp3NQAAwByePHmiDz/88MLlGBuE3nnnHUnSwcFBtjzCMrz//vv67ne/e2nLX8UxXrx4oXv37ukHP/iBbt26tbTjXIVzxbUw5xhci3wdYxXX4yqcp1UcIwxDPXjwILuPX9TSgtC3v/1tbW9v61vf+tayDnEhX/rSlyRJX/3qV5cahN58881LXf4qjvHTn/5UkvTuu+/qy1/+8tKOcxXOFdfCnGNwLfJ1jFVcj6twnlZxjBcvXkj64j5+UUvpLP38+XMFQcDwVwAAkGtLaRG6c+eOgiA4c1VlAACAdVrao7EHDx4sq2gAAICFWNo8Ql//+tf17NmzZRUPAABwYXO3CH3wwQcTt8VxrG63q6dPn+rdd9+d9xAAAABLNXcQmmVhxFarpb/5m7+Z9xBXwu7u7qUuf1XHWIWrcK64FuYdY9muynniWph1jEWae62xnZ0d+b6vra2tU9v6/b6azaa+853vXLiCy/LDH/4wmxPij/7oj9ZdHaP99Kc/1VtvvaWf/OQnSx0mjLNxLfKDa5EvXI/8WPT9e+4+QrVaTXfu3NFbb7116stxHBWLRf31X//1hSsIAACwLHMHofv370/dbtu2giCYt3gAAIClm7uP0LQRYVEUyfO8eYsGAABYibmDkOM4unbt2sTtSZJob29v3uJX5s///M/127/922O37e7uXrpOXwAAXHb7+/va398fu+3nP//5Qo81dxCyLEs7OzuyLOvUttu3b8txnDMfn+XBP/zDP9BZGgCAHJnWEJF2ll6UuYPQwcGB3n///YVVBAAAYNXm7ixNCAIAAJfd0tYa+/a3v63t7W1961vfWtYhLuTmzZsj/720/vXRumtwYRuvfqVPPvlEGxsb666K8TY2NrgWOcG1yBeuR34s+v4994SK0zx//lyFQkGbm5v67LPPFl38QoRhqGKxqF6vJ8dx1l2d+V2BICRJ+sNH664BAOASWPT9eyktQnfu3FEQBLJtexnFAwAALMTSHo3t7OzorbfeWlbxAAAAFzZ3Z+mzfO9739PDhw+XVTwAAMCFXahF6Pvf/746nY7iOB55fTAYKAxDDQYDNRqNixwCAABgaS40j1CtVpv6nmq1Om/xAAAASzf3o7EgCNTpdHR0dKR/+Zd/ke/7+s1vfqPf/OY3GgwGqlar+s53vrPIugIAACzU3EGoVCrp/v37euutt1QqlXR4eJhtsyxLxWKRPkIAACDX5n409pOf/GTk+52dHf3t3/6t/vIv/zJ7rd1u576P0Pvvv68333xz7DYWXQUAYPWmLbr68uXLhR5r7iBk27auX7+uzc1NHR4e6v3339f29rY6nY4sy1K73R67IGvefPe7373cEyoCAHDFTGuISCdUXJS5g9Bf/dVf6cc//rH+7d/+TVtbW5Kkp0+fynVdPX/+XJLk+/5iagkAALAEFxo+fzLo2Latfr+v58+fa2triwkVAQCrc1mWHGJJoVxZ2hIbAAAg38Iw1KeffqputytJ6vV6a67R6i1tZmkAAJBvjuPogw8+UBiG667K2lzpIBRF0bqrAABArpk+YGhpi67OKwxDNRoN2batOI7luq7K5fJM+167dm3ke8dxzmzmCwLpnXfmru7aPfqTddcAAIDLK1dBKIoiFYtF9Xq9LKEWCoVspuppms2mqtWqCoVC9lqpVFpqfQEAWLUwDHX//n3FcSzHcdRqtWTbtiTJ8zzt7e3J933V6/Xs/Y1GQ3EcK4oilcvlmUd1x3Esz/NkWVb2+MzzvCt1f81VEKrVaiqVSiPNdJ7nqVarnRmEWq2WOp3OsqsIAMBaOY6jg4MDVSoV2badhSDp9X00DMOREOR5XnZ/bLfbqlQqiuNYQRBMPU4auL73ve9l9+VmsynXdUeC1mWXmz5CcRyr2+3Kdd2R17e3tyW9PvmTtNttHR4eqlKpTH0fAABXQblclm3barfbI6+32+2RBdEfPHgw0vpTLpdlWZaazabiOJ56jAcPHmh7e3ukcaJarcpxHHmed2X64eYmCKVrlQ0nW+mLTlzTWns6nY7iOM4+AJubm9lQQAAArqI08AyHoU8//TTrVxtFUfZYrFKpZF+p4TVCT0r3HdeROj3uWS1Kl0VuHo2lyXLSshzTkmcQBAqCQGEYKgiCrOmu3++fClYnvXr1QsfHP5273tevb+jGjY259wcAYB7ValWe5ykIApXLZYVhmD1FkZT16Wm1Wucue9pw+vQY87YIHR8f6/j4eK59JenFixdz7ztOboJQv9+XpGy5jpPOasKTXrceBUEg13VVqVTked6ZH4AnT+6du67D7t37RO+99+hCZQAAcF6WZalcLqvdbiuKIn366acjj8XSoBJF0ZmNApOMu/emDRaT7tdnaTQaevz48Vz7LkNuglA62mswGIzdfp6LWC6Xs3R8lo8++oG+8pV3Zy77pOvXaQ0CAKzHw4cP1W63s6ciw/2B0vtmu90e27G52+1OHP2VPhIb180kDUfDo7TPW+ePP/54rn0l6dmzZ7p372KNGMNyE4TSCzap5ee8adZ13Zn6Cd28eUsbG18+V9kAAOSB4ziybVt7e3un+uykIScd7j7c36fZbE69r9q2LcdxFIbhqRalw8NDWZZ15mjuSTY2NrSxMX8jwq1bt+bed5zcdJae9Mwx/b5YLM5dJgAAV1X6OGxnZ2fkdcuyspagYrGoSqWivb29rA/tWXMBtVotWZY18rgtjmP5vq+Dg4OJfXovm9y0CFmWJcdx1Ol0Rprw0ladkxf4LJ1OZ+TiAQCuOENXda9Wq+r3+2ODie/7un37toIgULvdzuYVSltz0kFG6b/39vZUrVZlWZZs29bz58/14MEDua6btQq1Wq0rtSzHtSRJknVXIhWGoYrF4shor0KhoFqtloWjKIrkuq6CIFCpVFIYhnrw4IE++OCD7D3tdludTmfq0L70WNVqT++8c3kv6KM/ebTuKiyGob/AAADnk96/h1ehuIjctAhJX6wN5nmebNtWFEUjyVV63Sw3GAyyvkS2bWtra0uNRkOdTkeO42RBCQAAYJpcBSFJ2bop07YfHR1l31uWxdIaAABgLrnpLA0AALBqBCEAAGAsghAAADAWQQgAABiLIAQAAIyVu1Fjq/b06fu6cePNsdvu3t3V1762u+IaAQBgtv39fe3v74/d9vLly4Uey/ggtLPz3Us9oSIAAFfN7u6udnfHN0SkEyouCo/GAACAsQhCAADAWAQhAABgLIIQAAAwlvGdpQEAV8OjR+uuwWwuSz1NQYsQAACQJMVxrGazqSiK1l2VlSEIAQBwhURRpM3NTTWbzXPt12w2defOHdVqNcVxvJzK5RBBCACAKySOY8VxrH6/f679qtWqqtXqkmqVX/QRAgDgCnEcR0mSzLXv7du3F1yb/KNFCAAAGIsgBADAJdNut+W6rrrdrprNpjY3N1Wr1bJtlUpFlUrl1H5xHKtWq6lWq8l1XbmuqzAMT71vMBio2WyqWCzq2rVrY8u6Kng0BgDAJdJut+V5nqIokm3bsixLtm3r8PBQURQpiiK1222VSqWR/aIokuu66nQ6sm1bkrS5uan79+/r6Oho5L2+78t1XR0cHCgIAjWbTe3t7aler6/s51wV44MQq88DAC6TcrmsKIrkeZ4sy5Lv+yPb6/W6PM87tV+lUlGtVstCkCQ9fPhQnucpjmNZljXy3rTjdBqEOp3OyoIQq8+vEKvPAwAumzS03L17d6b3R1GkMAx1cHAw8nq9Xh8bbra3t08db5VzC7H6PAAAONNwK840aT+gWd9vEoIQAABXXNqaY9KM0bMiCAEAcMU5zusuIK1Wa+x2kwMSQQgAgCsu7fPTbDbV7XZHtnmep62tLUnSZ599Jun18HlTEIQAALhk0rXAxq0Jlr42HGaGR5e5rqtKpSLP81QsFlUoFM7sOxTH8ZUNR8aPGgMAXA2PHq27BqvRbrcVBIGk1605g8EgG+oehqEajUb27729PVWrVVmWpXq9Ltu21Wg01G635TiOfN/P5htqt9vZQq2e5+ng4EC2bWdD8eM4lud5p4brX3bXknkXJLnk0uF31WrvUg+ff/Qnj9ZdhcX4w0frrgEA4BJI79+9Xi/r+3QRPBoDAADGIggBAABjEYQAAICxCEIAAMBYxo8aY9FVAADyZZWLrjJq7JKPGtP/+O/rrsFCPPr799ZdBQDAJcCoMQAAgAUhCAEAAGMRhAAAgLEIQgAAwFgEIQAAYCyCEAAAMBZBCAAAGIsgBAAAjEUQAgAAxiIIAQAAYxGEAACAsVh0lUVXAQDIlVUuump8ENrZ+e7lXnQVAIArZnd3V7u74xsi0kVXF4VHYwAAwFgEIQAAYCyCEAAAMBZBCAAAGIsgBAAAjJW7IBSGoSqVijzPU61WU7vdPncZ3W5Xm5ubS6gdAAC4SnI1fD6KIhWLRfV6PTnO6yHthUJBg8FA1Wp15nJqtdqyqggAAK6QXLUI1Wo1lUqlLARJylqGZuV5nmzbXkb1AADAFZObIBTHsbrdrlzXHXl9e3tbktRsNs8so9vt6vbt2yNBCgAAYJLcBKHDw0NJOtWak4aaTqdzZhlBEKhery++cgAA4ErKTR+hKIokSZZlTd0+ied58n3/3Md99eqFjo9/eu79Utevb+jGjY259wcAwCTHx8c6Pj6ee/8XL14ssDY5CkL9fl+StLW1NXZ7HMcT9w3DULdv356rb9CTJ/fOvc+we/c+0XvvPbpQGQAAmKLRaOjx48frrkYmN0GoUChIkgaDwdjt00JOo9FQq9Wa67gfffQDfeUr7861r/S6RQgAAMzm4cOH+vjjj+fe/9mzZ7p372KNGMNyE4TSoDOp5WdSEPI8T67rjjw6S/+d/ndaiLp585Y2Nr48T5UBAMA5bWxsaGNj/kaEW7duLbA2OQpC6eiwk32B0u+LxeLY/brdrvb29sZuKxQKchxHvV5vgTUFAABXRW5GjVmWJcdxTo0O63a7kqSdnZ2x+/V6PSVJMvJVr9dlWZaSJCEEAQCAiXIThCTp4OBA3W53pFXI9335vp+NJouiSIVCIQtIAAAA88rNozFJ2WOsdHboKIrked7I8hpxHGswGEwdRQYAADCLXAUh6XUYmjYCzHEcHR0dTS0jbUUCAACYJlePxgAAAFaJIAQAAIxFEAIAAMbKXR+hlfuvQ+lX8681BgAALi9ahAAAgLGMbxF6+v1PJq4ef/f3/0xf+4NvrrhGAACYbX9/X/v7+2O3vXz5cqHHMj4I7fzxY73z9lfXXQ0AAPC53d1d7e7ujt0WhuHEZbfmwaMxAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBAABjEYQAAICxCEIAAMBYBCEAAGAsghAAADAWQQgAABiLIAQAAIxl/KKrrD4PAEC+sPr8CrH6PAAA+cLq8wAAACtAEAIAAMYiCAEAAGMRhAAAgLEIQgAAwFgEIQAAYCyCEAAAMBZBCAAAGIsgBAAAjEUQAgAAxiIIAQAAYxm/1hiLrgIAkC8surpCLLoKAEC+sOgqAADAChCEAACAsQhCAADAWAQhAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBAABjEYQAAICxCEIAAMBYxq81xqKrAADkC4uurhCLrgIAkC8sugoAALACBCEAAGAsghAAADAWQQgAABiLIAQAAIyVuyAUhqEqlYo8z1OtVlO73Z5pv3a7rWKxqGvXrqlQKKjb7S65pgAA4LLL1fD5KIpULBbV6/XkOI4kqVAoaDAYqFqtTtyv2Wyq1+vJ931Jkud5cl1X/X5ftm2vpO4AAODyyVWLUK1WU6lUykKQpKxlaJo4jhUEgUqlkkqlkg4ODiS9bl0CAACYJDdBKI5jdbtdua478vr29rak160+k9Tr9ZHvLcuSpJFABQAAcFJugtDh4aEknXqUlYaZTqczc1ntdlu+7/NYDAAATJWbPkJRFEn6ojVn0vazeJ6nZrOZPR47y6tfvtTxq5/N9N5xrl9/Qzeu35x7fwAATHJ8fKzj4+O593/x4sUCa5OjINTv9yVJW1tbY7fHcXxmGXt7e4qiSHEcq1KpKAiCqZ2sJenJP/3Feas64t67H+o956MLlQEAgCkajYYeP3687mpkchOECoWCJGkwGIzdPstjrrSvULfbVaVSke/7Zwahj/707/SV2793ztp+4fr1N+beFwAA0zx8+FAff/zx3Ps/e/ZM9+7dW1h9chOE0qAzqeXnPP19SqWSqtWq9vb2znzvzTfe1MbN35m5bAAAML+NjQ1tbGzMvf+tW7cWWJscdZZOR4ed7AuUfl8sFs9V3t27d+ksDQAApspNELIsS47jnBodls4QvbOzc67yoihSqVRaWP0AAMDVk5sgJEkHBwfqdrsjrUK+78v3/Ww0WRRFI0topB2jh5fiiKJInU5HQRCstP4AAOByyU0fIen1nEG9Xk+e58m2bUVRJM/zRjo8x3GswWCQ9SWyLEtxHOvBgwcKgkCu68q27XPNOwQAAMyUqyAkvQ5DrVZr6vajo6OR1wg9AABgHrl6NAYAALBKBCEAAGAsghAAADAWQQgAABiLIAQAAIyVu1Fjq/b0+5/oxo3xU33f/f0/09f+4JsrrhEAAGbb39/X/v7+2G0vX75c6LGMD0I7f/xY77z91XVXAwAAfG53d1e7u7tjt4VheO5lt6bh0RgAADAWQQgAABiLIAQAAIxFEAIAAMYiCAEAAGMRhAAAgLEIQgAAwFgEIQAAYCyCEAAAMBZBCAAAGIsgBAAAjEUQAgAAxjJ+0VVWnwcAIF9YfX6FWH0eAIB8YfV5AACAFSAIAQAAYxGEAACAsQhCAADAWAQhAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBAABjEYQAAICxjF9rjEVXAQDIFxZdXSEWXQUAIF9YdBUAAGAFCEIAAMBYBCEAAGAsghAAADAWQQgAABiLIAQAAIxFEAIAAMYiCAEAAGMRhAAAgLEIQgAAwFgEIQAAYCzj1xpj0VUAAPKFRVdXiEVXAQDIFxZdBQAAWAGCEAAAMBZBCAAAGIsgBAAAjEUQAgAAxspdEArDUJVKRZ7nqVarqd1uz7Rfu91WsVjUtWvXVCwW1e12l1xTAABw2eVq+HwURSoWi+r1enIcR5JUKBQ0GAxUrVYn7re3t6dOp6NaraZ+v6+9vT25rqtOp6NSqbSq6gMAgEsmVy1CtVpNpVIpC0GSspahaX70ox+p0+moWq3K9331ej1Jku/7S60vAAC43HIThOI4Vrfbleu6I69vb29LkprN5tj9ut3uqcDjOI4cx1EURcupLAAAuBJyE4QODw8lSbZtj7yetg51Op2x+5VKpVP7pCa9DgAAIOWoj1DaemNZ1tTt5ynvrEdqkvTqly91/Opn5yp72PXrb+jG9Ztz7w8AgEmOj491fHw89/4vXrxYYG1yFIT6/b4kaWtra+z2OI5nLqvdbsu27akdrFNP/ukvZi53nHvvfqj3nI8uVAYAAKZoNBp6/PjxuquRyU0QKhQKkqTBYDB2+3keczUaDbVarZne+9Gf/p2+cvv3Zi77pOvX35h7XwAATPPw4UN9/PHHc+//7Nkz3bt3b2H1yU0QSoPOpJafWYOQ53k6ODiY+f0333hTGzd/Z6b3AgCAi9nY2NDGxsbc+9+6dWuBtclRZ+l0dNjJvkDp98Vi8cwyms2mXNcdGX4PAAAwSW6CkGVZchzn1OiwdIbonZ2dqfunM1CfnEAxDMMF1hIAAFwluQlCknRwcKButzvSKuT7vnzfz0aTRVGkQqEwsoRGt9tVo9GQ9LpVKP2q1WrZsHwAAICTctNHSHo9Z1Cv15PnebJtW1EUyfO8kdFfcRxrMBhkfYnCMMwmYRw3XP7o6GgldQcAAJdProKQ9DoMTRvx5TjOSLhxHEdJkqyiagAA4IrJ1aMxAACAVSIIAQAAYxGEAACAsQhCAADAWAQhAABgLIIQAAAwVu6Gz6/a0+9/ohs3xq95cvf3/0xf+4NvrrhGAACYbX9/X/v7+2O3vXz5cqHHMj4I7fzxY73z9lfXXQ0AAPC53d1d7e7ujt0WhuFM64/OikdjAADAWAQhAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBAABjEYQAAICxCEIAAMBYBCEAAGAsghAAADCW8WuNsegqAAD5wqKrK8SiqwAA5AuLrgIAAKwAQQgAABiLIAQAAIxFEAIAAMYiCAEAAGMRhAAAgLEIQgAAwFgEIQAAYCyCEAAAMBZBCAAAGIsgBAAAjGX8WmMsugoAQL6w6OoKsegqAAD5wqKrAAAAK0AQAgAAxiIIAQAAYxGEAACAsQhCAADAWAQhAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBAABjGb/WGIuuAgCQLyy6ukIsugoAQL6w6CoAAMAKEIQAAICxCEIAAMBYBCEAAGAsghAAADBW7kaNhWGoRqMh27YVx7Fc11W5XJ5p3ziO1Wg0JEm+7y+zmgAA4ArIVRCKokjFYlG9Xk+O40iSCoWCBoOBqtXq1H273a6CIFC73T7zvQAAAFLOHo3VajWVSqUsBEmS53mq1Wpn7lsqldRqtZZZPQAAcMXkJgjFcaxutyvXdUde397eliQ1m811VAsAAFxhuQlCh4eHkiTbtkdeT1uHOp3OyusEAACuttz0EYqiSJJkWdbU7Yv26pcvdfzqZ3Pvf/36G7px/eYCawQAwNV1fHys4+Pjufd/8eLFAmuToyDU7/clSVtbW2O3x3G8lOM++ae/uND+9979UO85Hy2kLgAAXHWNRkOPHz9edzUyuQlChUJBkjQYDMZuP/nIbFE++tO/01du/97c+1+//sYCawMAwNX28OFDffzxx3Pv/+zZM927d29h9clNEEqDzqSWn2UFoZtvvKmNm7+zlLIBAMCojY0NbWxszL3/rVu3FlibHHWWTkeHnewLlH5fLBZXXicAAHC15SYIWZYlx3FOjQ7rdruSpJ2dnXVUCwAAXGG5CUKSdHBwoG63O9Iq5Pu+fN/PRpNFUaRCoZAFpGHL6lANAACuptz0EZJezxnU6/XkeZ5s21YURfI8b2TJjDiONRgMToWeMAwVBIEk6enTp3JdV6VSaeJwfAAAgFwFIel1GJq2VIbjODo6Ohr7ehAEWRgCAAA4S64ejQEAAKwSQQgAABiLIAQAAIxFEAIAAMYiCAEAAGMRhAAAgLFyN3x+1Z5+/xPduDF+zZO7v/9n+toffHPFNQIAwGz7+/va398fu+3ly5cLPZbxQWjnjx/rnbe/uu5qAACAz+3u7mp3d3fstjAMF7r+KI/GAACAsYxvEUJO/OujdddgMf7w0bprAAA4B1qEAACAsQhCAADAWAQhAABgLIIQAAAwFkEIAAAYiyAEAACMRRACAADGIggBAABjEYQAAICxjJ9ZmkVXAQDIFxZdXSEWXQUAIF9YdBUAAGAFCEIAAMBYBCEAAGAsghAAADAWQQgAABiLIAQAAIxl/PB55MOjv39v3VVYiEd/uO4aAADOgxYhAABgLIIQAAAwFkEIAAAYiyAEAACMZXxnaRZdBQAgX1h0dYVYdBUAgHxh0VUAAIAVIAgBAABjEYQAAICxCEIAAMBYBCEAAGAsghAAADAWQQgAABjL2CD06tUrSdKvfvPLNdcEv/r1K/338Il+9etX666K8Y6Pj/Xo0SMdHx+vuyrG41rkC9cjP9L7d/rfizI+CP3m179ac03w61//Uj949r/r178mlK7b8fGxHj9+zC/7HOBa5AvXIz8IQgAAAAtCEAIAAMYyfq2x//Z/NvTGjS+N3caiqwAArN60RVd//vOfL/RYxgehb/5vD/W/vPO/rrsaAADgc9MWXf3hD3+oe/fuLexYPBoDAADGIggBAABjEYQAAICxCEJL9n/93//tUpe/qmOswip+jkmd+y5L+auyip/jqhxj2a7KeeJamHWMRSIILdmP/p//41KXv6pjrMIqfg6C0Gyuyi/jq3A9rsp54lqYdYxFyt2osTAM1Wg0ZNu24jiW67oql8tL2w8AAJgrV0EoiiIVi0X1ej05jiNJKhQKGgwGqlarC98PAACYLVdBqFarqVQqZWFGkjzPU61Wmxpo5t0PWLiX/1P610eXt/yfsY4SALPkpo9QHMfqdrtyXXfk9e3tbUlSs9lc6H4AAAC5aRE6PDyUJNm2PfJ62srT6XTGtu7Mux+wDP8z/h09+vv3llj+k6WWf/zqZ0srGwDyKDdBKIoiSZJlWVO3L2q/X/ziF5Kk/xr0z1HL037r+g3d+K03Jm7/1a+O9Z8//n8vdIxpll3+Ko7x6pcvJUn/9dn/p5tvvLm041yFc7Wqa/Hs2TPdunVracd5+fKlwjBcWvlX4RgvXryQxLXIyzFWcT2uwnma5RivXr3Sq1ev5i7/3//93yV9cR+/sCQn6vV6Iinp9XqntklKbNte6H5PnjxJJPHFF1988cUXX5fw68mTJxcLHp/LTYtQoVCQJA0Gg7HbTz76uuh+3/jGN/TkyRO98847+tKXxq8+P4ubN2/q5s2bc+8PAIBJLtoi9Itf/EL/+Z//qW984xsLqU9uglAaWOI4nrp9Ufu9/fbb+vDDD89XSQAAcKXkZtRYOsrrZJ+e9PtisbjQ/QAAAHIThCzLkuM46nQ6I693u11J0s7OzkL3AwAAyE0QkqSDgwN1u92R1h3f9+X7fjYqLIoiFQqFLOjMuh8AAMBJuekjJL2e+6fX68nzPNm2rSiK5HneyDxAcRxrMBiM9AmaZb8Ua5LlR7vdVqPRUBiGchxHvu+rVCqtu1rQ6xbVSqWio6OjdVfFeFEUqd1uS5Kq1Sp/3K1Qu91Wp9ORZVmKoki2bcv3/XVX68qL41iNRkOSxp7vhd/HFzL27JLo9/uJNDrU3rbtJAiCNdbKTL7vJ6VSKQmCIJsCQVLS6XTWXTUkr/+/sCxr3dUwWr/fT8rlclIqlZJ+v7/u6hin1WoljuOMvFYqlZJ6vb6mGpmh0+kk5XI5kZRUq9VT25dxHzcqCJVKpaRUKo28FgRBYlgezIVyuTzyfa/XSySduj5YvXq9npRKJYLQGvV6vcSyrLE3AqxGqVQ6df593584Nx0Wa1IQWsZ9PFd9hJaJNcnyo9vtnmrudBxHjuNMnAkcq9HtdnX79u2RBYyxWnEc6/79+7JtW0EQrLs6xhoMBiN9USWp3+9PnJIFy7es+7gxQWiWNcmwGqVS6cx5obAeQRCoXq+vuxpG8zxPcRzTF2XNarWaoihSpVKR9LpfytOnT7kua7Ss+7gxQWjeNcmwOsO/dLB6nufxSz4H0r9qO52OisWiNjc35bouv6NWrFqtqlqtqt1uq1AoyPM8PX/+nNbSNVrWfdyYINTvv15cdWtra+z2STNTYzXa7bZs2x470g/LF4ahbt++TYvcmqULVTqOo1qtpl6vp16vl00bwu+p1QqCIHtk3+12Tz0qw2ot6z5uTBCad00yrEaj0VCr1Vp3NYzVaDR4JJYD6V+0tVot+5003FcoHVKM1XBdV7VaLRtCX6lUsqkMsHrLuo/nah6hZZp3TTIsn+d5Ojg44Bqsied5px69pP9O/8u1WY1JTf7p/Fo8HludWq0mSVkr9fPnz3Xnzh09ePCAuefWZFn3cWNahFiTLJ+azaZc1+W5+xp1u13VajUVCoXsq91uK45jFQoF+m2tUPp7Kn0EcNKkRwJYvKdPn478XrIsS77vK47j7BEmVmtZ93FjghBrkuVP2sR8cjZpfsmsVq/XU/J6TrHsq16vy7IsJUmiXq+37ioaw7IslUqlU31R0r+A+YNtdba2tk61PKS/q5jdez2WdR83JghJrEmWJ91uN+vv0Gw2s69arZYNkQRM5Pu+wjAcCUPNZlOO4zCYYIVqtZqePn06Eoba7bYcx+FR8ZJN6/S8jPv4tc9ncDTG8BolURTJdV1+uaxYGIZT/7I9OjoimK6Z53lqNpusNbYmYRhmaydalqU4jplccQ2azaZarVb2iCyd34nfT8sThqGCIFCz2ZRlWTo4OFCpVBo554u+jxsXhAAAAFJGPRoDAAAYRhACAADGIggBAABjEYQAAICxCEIAAMBYBCEAAGAsghAAADAWQQgAcOVEUaRmszl1luKrLo5jNZtNFus9A0EIAHCl7O3tqVAoqFaraTAYrLs6M0lnE69UKioUCtrb27tQec1mU3fu3FGtVjM6DM7ixrorAADAItXrdf3oRz/KFnbOuzAMdf/+/WxJG8/z1O/3L1RmtVpVv9+/cKA6KYoibW1tXallRghCAIArZ2tra91VmFmj0Ripr+/7Cyn39u3bCylnWKVSUavVulJBiEdjAACsURiG667CTCqVyqWp63kQhAAAF5J2yi0Wi2q32+p2uyoWi7p27ZoqlUr2vna7rc3NTV27di27oXa7XVUqlZH3puW5rpt19nVdV5ubm3JdN+vzkvYF2tzclOd5E+tWq9W0ubmpzc1N1Wq1U+8Jw1CVSkWu66pQKJwqq91uy3VddbtdNZvNieVMOrbneXJdNysj1Ww2ValUFEWRoihSpVJRpVIZec+0c53Wp1gsanNzU5VKZWx/oMFgkL3v5DWZta7tdju7ZrVa7VQoOmv/WT8jJ8uq1WoqFApqNptnnu+5JQAAXEC/30/K5XIiKSmVSkm9Xk96vV5SrVYTSYnv+9l709d6vd7I/pKScrmcfZ++b7i8TqeTvVatVpNOpzNy7OEyh/evVqtJEASJ4zjZa6lerzfyfavVSiQl1Wo1+9627ey1er2eOI6TOI4z9Zz0er3EsqyROgVBcOp8JEmS2Lad2LY907lOf67hc9NqtbJzMFyO7/vZ+3zfn3hNZq1rvV5PJCX9fv/cP+t5PiPlcjmp1+sjZZ08Z4tEEAIAXFgaIE7esE4Gj/RmOnzTPDo6GglCSfL65jocSFJpmBm+GafvHRe4Wq3WyP5pqOl0Oll5w3VJkiSxLCuRlBwdHSVJ8kWgGL45n8VxnJGfe1r9zxOEhusTBMHI66VSaeRnnvS+k9dk1rpOCkKz7j/rZ8SyrFPneplBiEdjAICFGdeJ9iJD2E+WZ9u2pNHO0Olr40ZaOY4z8n36SKvT6SiKIoVhqEajkT2WGn5Mc3h4OFKHu3fvzlTntNyTxx4+fhAEM5U1Tfpznyy70+mMvL69vT3yvWVZ2dxCF63rPPuf9RmxbVt7e3sjI97q9frEOlwUo8YAAMYolUqSvriBS1Kr1Zpp31lHSk3rUJyGkmVMcpiGkfOUfdG6LuNnbbVaKhaL8jxPQRCo1WqNDVqLQosQAMAYaZixbXukVWQZxnVcTo+/jOH9aZknW4pmcdG6LvJntW1bz58/V6lUUhRFKhaLS+0sTRACABgjvWHfvXs3CwyTJl6cNnprmrT1Ytz+6fELhcJcZU+TPl4qFosz73PRui7jZ42iSJZlqdPpZK11s4zSmxdBCACwMukkf8OtMOm/V7EURLfblW3bKpfL2WMyz/NOPeK5SAuEbdtyHCcbFj/s8PBQlmWpWq1mrw0Gg4UsBdJut0fK/uyzz7LyF1VXafQ6zbP/WYYnlCyXy1kfo2W13BGEAAAXNuuNPG1B8DwvmwcnvdF1u125rju1vPQmPLw9/ffwa+ljmZOBK+1zkr4n7YRbLBZVqVS0t7cn13XV7/ezoJQe8zxBLZ19ebglI45j+b6vg4ODhczMPNwJOY5jBUGgg4ODM/eL43jkXM1a17RlJwgCRVGUtaTNuv+sn5GnT5+OXLc4jmXb9lyP/GaytPFoAAAj9Hq9bKi0bdtJp9NJjo6ORua8GR7+7Pt+YlnWyDBp27azuWXSuX0kJZZlZcPB07lp9PlQ+16vNzI/jWVZ2VDxo6OjpF6vJ6VSKZtLqFqtZkPih/m+nw2rt217ZLj58DxCJ7ed5ejoKCmXyyPHHx6qPzyPjj6fKiAd1j/N8HB+x3GScrmclMvlkX1brVY2DUA6RcDJazI8RP2suqYcx0ksyzo1rcEsP+usn5FSqZR9Hur1elIul8det0W5liRJspyIBQAAFm1vb0+e56nT6WStVpgfj8YAAICxCEIAAMBYBCEAAC6JOI6zmaNnnQgS09FHCACAS2J42YnUMpefMAFBCAAAGItHYwAAwFgEIQAAYCyCEAAAMBZBCAAAGIsgBAAAjEUQAgAAxiIIAQAAYxGEAACAsf5/ql5nKGAe1xcAAAAASUVORK5CYII=",
|
|
"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": 44,
|
|
"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": 44,
|
|
"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
|
|
}
|