{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import os \n", "import pickle\n", "\n", "import tensorflow as tf\n", "import matplotlib.pyplot as plt\n", "from datetime import datetime\n", "\n", "from architectures.bicycle_GAN import *\n", "from architectures.utils.toolbox import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "task='TEST'\n", "\n", "PATH='HCAL_bycicleGAN_test97'" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LEARNING_RATE:8e-05\n", "BETA1:0.5\n", "BATCH_SIZE:16\n", "EPOCHS:4\n", "SAVE_SAMPLE_PERIOD:200\n", "SEED:1\n", "d_sizes:{'conv_layers': [(4.0, 4, 2, False, 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306c50>), (8, 4, 2, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306e10>), (16, 4, 2, 'bn', 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306e48>), (32, 4, 2, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306e80>), (64, 4, 1, 'bn', 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306eb8>)], 'dense_layers': [(256, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306ef0>), (32, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306f28>), (8, False, 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306f60>)], 'readout_layer_w_init': <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad306f98>}\n", "g_sizes_dec:{'deconv_layers': [(64, 4, 2, 'bn', 1, <function relu at 0x7f32c17dfae8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a048>), (32, 4, 2, 'bn', 0.8, <function relu at 0x7f32c17dfae8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a080>), (16, 4, 2, 'bn', 1, <function relu at 0x7f32c17dfae8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a0b8>), (8.0, 4, 2, 'bn', 1, <function relu at 0x7f32c17dfae8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a0f0>), (1, 4, 2, False, 0.8, <function identity at 0x7f32c1df6950>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a128>)]}\n", "g_sizes_enc:{'latent_dims': 16, 'conv_layers': [(8.0, 4, 2, False, 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a160>), (16, 4, 2, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a198>), (32, 4, 2, 'bn', 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a1d0>), (64, 4, 2, 'bn', 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a208>), (128, 4, 2, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f32ad30a240>)]}\n", "e_sizes:{'latent_dims': 16, 'conv_layers': [(8.0, 4, 2, False, 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a2b0>), (16, 4, 2, 'bn', 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a2e8>), (32, 4, 2, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a320>), (64, 4, 2, 'bn', 1, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a358>), (128, 4, 2, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a390>)], 'dense_layers': [(256, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a3c8>), (128, 'bn', 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a400>), (16, False, 0.8, <function lrelu at 0x7f32b30b29d8>, <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a438>)], 'readout_layer_w_init': <tensorflow.python.ops.init_ops.RandomNormal object at 0x7f32ad30a470>}\n", "preprocess:False\n", "cost_type:FEATURE\n", "validating_size:2000\n", "test_size:2000\n", "n_batches:2\n", "reco_path:/disk/lhcb_data/davide/HCAL_project_full_event/reco/\n", "true_path:/disk/lhcb_data/davide/HCAL_project_full_event/true/\n", "discr_steps:1\n", "gen_steps:1\n", "vae_steps:1\n", "latent_weight:2\n", "cycl_weight:1\n", "kl_weight:1\n" ] } ], "source": [ "if task == 'TEST' and os.path.exists(PATH+'/hyper_parameters.pkl'):\n", " with open(PATH+'/hyper_parameters.pkl', 'rb') as f: \n", " hyper_dict = pickle.load(f)\n", " for key, item in hyper_dict.items():\n", " print(key+':'+str(item))\n", " \n", " reco_path = hyper_dict['reco_path']\n", " true_path = hyper_dict['true_path']\n", " #true_path_p = hyper_dict['true_path_p']\n", " #true_path_K = hyper_dict['true_path_K']\n", " n_batches = hyper_dict['n_batches']\n", " test_size = hyper_dict['test_size']\n", " LEARNING_RATE = hyper_dict['LEARNING_RATE']\n", " BETA1 = hyper_dict['BETA1']\n", " BATCH_SIZE = hyper_dict['BATCH_SIZE']\n", " EPOCHS = hyper_dict['EPOCHS']\n", " SAVE_SAMPLE_PERIOD = hyper_dict['SAVE_SAMPLE_PERIOD']\n", " SEED = hyper_dict['SEED']\n", " d_sizes = hyper_dict['d_sizes']\n", " g_sizes_enc = hyper_dict['g_sizes_enc']\n", " g_sizes_dec = hyper_dict['g_sizes_dec']\n", " e_sizes = hyper_dict['e_sizes']\n", " preprocess = hyper_dict['preprocess']\n", " cost_type = hyper_dict['cost_type']\n", " validating_size=hyper_dict['validating_size']\n", " cycl_weight=hyper_dict['cycl_weight']\n", " latent_weight=hyper_dict['latent_weight']\n", " kl_weight=hyper_dict['kl_weight']\n", " discr_steps=hyper_dict['discr_steps']\n", " gen_steps=hyper_dict['gen_steps']\n", " \n", "\n", "if task == 'TEST' and not os.path.exists(PATH+'/hyper_parameters.pkl'):\n", " \n", " print('Missing hyperparameter dictionary in save folder')\n", " \n", " \n", " " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#dim=1\n", "#select=False\n", "#test_size=000\n", "#if preprocess=='normalise':\n", "# train_true_p, test_true_p, min_true, max_true, train_reco, test_reco, min_reco, max_reco = load_data(true_path, reco_path, n_batches, select=select, n_cells=dim*dim, energy_fraction=1, preprocess=preprocess, test_size=test_size)\n", "#else:\n", "# train_true_K, test_true_K, train_reco, test_reco = load_data(true_path_K, reco_path, n_batches, select=select, n_cells=None, energy_fraction=1, preprocess=preprocess, test_size=test_size)\n", "# train_true_p, test_true_p, _, _ = load_data(true_path_p, reco_path, n_batches, select=select, n_cells=None, energy_fraction=1, preprocess=preprocess, test_size=test_size)\n", "#\n", "#train_true_p, train_true_K, train_reco = delete_undetected_events_triple(train_true_p, train_true_K, train_reco)\n", "#test_true_p, test_true_K, test_reco = delete_undetected_events_triple(test_true_K, test_true_K, test_reco)\n", "#\n", "#train_true = train_true_p + train_true_K\n", "#test_true = test_true_p + test_true_K" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "n_batches=1\n", "reco_path = '/disk/lhcb_data/davide/HCAL_project_single_pion/DKpi_cells_inout/reco/'\n", "true_path_pions = '/disk/lhcb_data/davide/HCAL_project_single_pion/DKpi_cells_inout/true_lowdef/piplus/'\n", "true_path_kaons = '/disk/lhcb_data/davide/HCAL_project_single_pion/DKpi_cells_inout/true_lowdef/Kminus/'" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "dim=1\n", "select=False\n", "test_size=2000\n", "if preprocess=='normalise':\n", " train_true, test_true, min_true, max_true, train_reco, test_reco, min_reco, max_reco = load_data(true_path, reco_path, n_batches, select=select, n_cells=dim*dim, energy_fraction=1, preprocess=preprocess, test_size=test_size)\n", "else:\n", " train_true_pions, test_true_pions, train_reco, test_reco = load_data(true_path_pions, reco_path, n_batches, select=select, n_cells=None, energy_fraction=1, preprocess=preprocess, test_size=test_size)\n", " train_true_kaons, test_true_kaons, _, _ = load_data(true_path_kaons, reco_path, n_batches, select=select, n_cells=None, energy_fraction=1, preprocess=preprocess, test_size=test_size)\n", " \n", "train_true, train_reco = delete_undetected_events_double(train_true_kaons, train_reco)\n", "test_true_pions, test_true_kaons,_ = delete_undetected_events_triple(test_true_kaons, test_true_pions, test_reco)\n", "#test_true_pions, _ = delete_undetected_events_double(test_true_pions, test_reco)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "test_true=test_true_kaons+test_true_pions" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 792x288 with 2 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if preprocess != False:\n", " draw_one_sample(train_true, train_reco, preprocess,\n", " min_true=min_true, max_true=max_true, \n", " min_reco=min_reco, max_reco=max_reco,\n", " save=False, PATH=PATH\n", " )\n", "else:\n", " draw_one_sample(train_true,train_reco)" ] }, { "cell_type": "code", "execution_count": 237, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(44508, 52, 64, 1)" ] }, "execution_count": 237, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_true.shape" ] }, { "cell_type": "code", "execution_count": 238, "metadata": {}, "outputs": [], "source": [ "h=test_reco[0].shape[0]\n", "w=test_reco[0].shape[1]" ] }, { "cell_type": "code", "execution_count": 239, "metadata": {}, "outputs": [], "source": [ "def HCAL():\n", "\n", " \n", " tf.reset_default_graph()\n", " \n", " _, n_H_A, n_W_A ,n_C = train_true.shape\n", " _, n_H_B, n_W_B ,n_C = train_reco.shape\n", " \n", " gan = bicycle_GAN(n_H_A, n_W_A, n_H_B, n_W_B, n_C,\n", " min_true=min_true, max_true=max_true, \n", " min_reco=min_reco, max_reco=max_reco,\n", " d_sizes=d_sizes, g_sizes_enc=g_sizes_enc, g_sizes_dec=g_sizes_dec, e_sizes=e_sizes,\n", " lr=LEARNING_RATE, beta1=BETA1,\n", " preprocess=preprocess, cost_type=cost_type,\n", " cycl_weight=cycl_weight, latent_weight=latent_weight, kl_weight=kl_weight,\n", " discr_steps=discr_steps, gen_steps=gen_steps,\n", " batch_size=BATCH_SIZE, epochs=EPOCHS,\n", " save_sample=SAVE_SAMPLE_PERIOD, path=PATH, seed= SEED)\n", " \n", " vars_D = [v for v in tf.trainable_variables() if 'discriminator' in v.name]\n", " vars_G = [v for v in tf.trainable_variables() if 'generator' in v.name]\n", " vars_E = [v for v in tf.trainable_variables() if 'encoder' in v.name]\n", " \n", " if task == 'TEST':\n", " \n", " vars_to_train=tf.trainable_variables()\n", " vars_all = tf.global_variables()\n", " vars_to_init = list(set(vars_all)-set(vars_to_train))\n", " init_op = tf.variables_initializer(vars_to_init)\n", " \n", " saver=tf.train.Saver()\n", " \n", " # Add ops to save and restore all the variables.\n", " \n", " gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)\n", " \n", " with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess:\n", " \n", " sess.run(init_op)\n", " \n", " if task=='TEST':\n", " \n", " print('\\n Evaluate model on test set...')\n", " \n", " #if os.path.exists(PATH+'/pretrained/'+PATH+'.ckpt.index'):\n", " # saver.restore(sess,PATH+'/'+PATH+'pretrained.ckpt')\n", " \n", " if os.path.exists(PATH+'/'+PATH+'bicycle.ckpt.index'):\n", " saver.restore(sess, PATH+'/'+PATH+'bicycle.ckpt')\n", " \n", " print('Model restored.')\n", " \n", " gan.set_session(sess)\n", " \n", " #test_reco_NN=gan.get_samples_A_to_B(test_true.reshape(test_true.shape[0],n_H_A,n_W_A,n_C))\n", " test_reco_NN=np.zeros_like(test_true)\n", " for i in range(len(test_true)):\n", " test_reco_NN[i]=gan.get_sample_A_to_B(test_true[i].reshape(1,n_H_A,n_W_A,n_C))\n", "\n", " done = True\n", " while not done:\n", " \n", "\n", " if preprocess:\n", " draw_nn_sample(test_true, test_reco, 1, preprocess,\n", " min_true=min_true, max_true=max_true, \n", " min_reco=min_reco, max_reco=max_reco,\n", " f=gan.get_sample_A_to_B, save=False, is_training=False, PATH=PATH)\n", " else:\n", " draw_nn_sample(test_true, test_reco, 1, preprocess,\n", " f=gan.get_sample_A_to_B, save=False, is_training=False)\n", " \n", " ans = input(\"Generate another?\")\n", " if ans and ans[0] in ('n' or 'N'):\n", " done = True\n", " \n", " done = True\n", " while not done:\n", " \n", " if preprocess:\n", " draw_nn_sample(test_true, test_reco, 20, preprocess,\n", " min_true=min_true, max_true=max_true, \n", " min_reco=min_reco, max_reco=max_reco,\n", " f=gan.get_sample_A_to_B, save=False, is_training=False)\n", " else:\n", " draw_nn_sample(test_true, test_reco, 20, preprocess,\n", " f=gan.get_sample_A_to_B, save=False, is_training=False)\n", " \n", " ans = input(\"Generate another?\")\n", " if ans and ans[0] in ('n' or 'N'):\n", " done = True\n", " \n", " return test_reco_NN" ] }, { "cell_type": "code", "execution_count": 240, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Convolutional Network architecture detected for discriminator B\n", "Convolutional Network architecture detected for encoder B\n", "Encoder_B\n", "Convolution\n", "Input for convolution shape (?, 52, 64, 1)\n", "Encoder output shape (?, 16)\n", "Generator_A_to_B\n", "Input for generator encoded shape (?, 52, 64, 1)\n", "After conv layer1\n", "shape: (?, 26, 32, 24)\n", "After conv layer2\n", "shape: (?, 13, 16, 32)\n", "After conv layer3\n", "shape: (?, 7, 8, 48)\n", "After conv layer4\n", "shape: (?, 4, 4, 80)\n", "After conv layer5\n", "shape: (?, 2, 2, 144)\n", "Output of generator encoder, \n", " and input for generator decoder shape (?, 1, 1, 576)\n", "After deconv layer 1\n", "Shape (?, 4, 4, 80)\n", "After deconv layer 2\n", "Shape (?, 7, 8, 48)\n", "After deconv layer 3\n", "Shape (?, 13, 16, 32)\n", "After deconv layer 4\n", "Shape (?, 26, 32, 24)\n", "Generator output shape (?, 52, 64, 1)\n", "Generator_A_to_B\n", "Input for generator encoded shape (?, 52, 64, 1)\n", "After conv layer1\n", "shape: (?, 26, 32, 24)\n", "After conv layer2\n", "shape: (?, 13, 16, 32)\n", "After conv layer3\n", "shape: (?, 7, 8, 48)\n", "After conv layer4\n", "shape: (?, 4, 4, 80)\n", "After conv layer5\n", "shape: (?, 2, 2, 144)\n", "Output of generator encoder, \n", " and input for generator decoder shape (?, 1, 1, 576)\n", "After deconv layer 1\n", "Shape (?, 4, 4, 80)\n", "After deconv layer 2\n", "Shape (?, 7, 8, 48)\n", "After deconv layer 3\n", "Shape (?, 13, 16, 32)\n", "After deconv layer 4\n", "Shape (?, 26, 32, 24)\n", "Generator output shape (?, 52, 64, 1)\n", "Encoder_B\n", "Convolution\n", "Input for convolution shape (?, 52, 64, 1)\n", "Encoder output shape (?, 16)\n", "Discriminator_B\n", "Input for convolution shape (?, 52, 64, 1)\n", "minibatch features shape (?, 10)\n", "Feature output shape (?, 32)\n", "Logits shape (?, 1)\n", "Discriminator_B\n", "Input for convolution shape (?, 52, 64, 1)\n", "minibatch features shape (?, 10)\n", "Feature output shape (?, 32)\n", "Logits shape (?, 1)\n", "Discriminator_B\n", "Input for convolution shape (?, 52, 64, 1)\n", "minibatch features shape (?, 10)\n", "Feature output shape (?, 32)\n", "Logits shape (?, 1)\n", "Generator_A_to_B\n", "Input for generator encoded shape (?, 52, 64, 1)\n", "After conv layer1\n", "shape: (?, 26, 32, 24)\n", "After conv layer2\n", "shape: (?, 13, 16, 32)\n", "After conv layer3\n", "shape: (?, 7, 8, 48)\n", "After conv layer4\n", "shape: (?, 4, 4, 80)\n", "After conv layer5\n", "shape: (?, 2, 2, 144)\n", "Output of generator encoder, \n", " and input for generator decoder shape (?, 1, 1, 576)\n", "After deconv layer 1\n", "Shape (?, 4, 4, 80)\n", "After deconv layer 2\n", "Shape (?, 7, 8, 48)\n", "After deconv layer 3\n", "Shape (?, 13, 16, 32)\n", "After deconv layer 4\n", "Shape (?, 26, 32, 24)\n", "Generator output shape (?, 52, 64, 1)\n", "\n", " Evaluate model on test set...\n", "INFO:tensorflow:Restoring parameters from HCAL_bycicleGAN_test97/HCAL_bycicleGAN_test97bicycle.ckpt\n", "Model restored.\n" ] } ], "source": [ "if __name__=='__main__':\n", "\n", " if task == 'TEST': \n", " if not os.path.exists(PATH+'/checkpoint'):\n", " print('No checkpoint to test')\n", " else:\n", " test_reco_NN =HCAL()" ] }, { "cell_type": "code", "execution_count": 277, "metadata": {}, "outputs": [], "source": [ "test_reco_MC_hist= test_reco.reshape(test_reco.shape[0],test_reco.shape[1]*test_reco.shape[2])\n", "test_reco_MC_hist = np.sum(test_reco_MC_hist,axis=1)\n", "max_MC_hist = np.max(test_reco_MC_hist)\n", "\n", "test_reco_NN_test=test_reco_NN/1.8\n", "test_reco_NN_hist= test_reco_NN_test.reshape(test_reco_NN_test.shape[0],test_reco_NN.shape[1]*test_reco_NN.shape[2])\n", "test_reco_NN_hist = np.sum(test_reco_NN_hist,axis=1)\n", "max_NN_hist = np.max(test_reco_NN_hist)\n", "\n", "test_true_hist= test_true.reshape(test_true.shape[0],test_true.shape[1]*test_true.shape[2])\n", "test_true_hist = np.sum(test_true_hist,axis=1)\n", "max_true_hist = np.max(test_true_hist)\n", "\n", "#test_reco_NN_hist_rescaled=(test_reco_NN_hist/max_NN_hist)*max_MC_hist\n" ] }, { "cell_type": "code", "execution_count": 278, "metadata": {}, "outputs": [], "source": [ "diffNN = test_reco_NN_hist-test_true_hist\n", "diffMC = test_reco_MC_hist-test_true_hist" ] }, { "cell_type": "code", "execution_count": 279, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1296x432 with 3 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplot(1,3,1)\n", "plt.tick_params(labelsize=12);\n", "h_reco = plt.hist(test_true_hist/1000,bins=30, edgecolor='black');\n", "plt.xlabel('E_T (GeV)', fontsize=15)\n", "plt.ylabel('dN/dE_T', fontsize=15)\n", "plt.title('Total true E_T/event', fontsize=15)\n", "plt.subplot(1,3,2)\n", "plt.tick_params(labelsize=12);\n", "h_reco = plt.hist(test_reco_MC_hist/1000,bins=30, edgecolor='black');\n", "plt.xlabel('E_T (GeV)', fontsize=15)\n", "\n", "plt.title('Total Reco E_T/event from Geant4', fontsize=15)\n", "plt.subplot(1,3,3)\n", "plt.tick_params(labelsize=12);\n", "h_nn = plt.hist(test_reco_NN_hist/1000, bins=30, edgecolor='black');\n", "plt.xlabel('E_T (GeV)', fontsize=15)\n", "\n", "plt.title('Total Reco E_T/event from BicycleGAN', fontsize=15)\n", "fig = plt.gcf()\n", "fig.set_size_inches(18,6)\n", "plt.savefig(PATH+'/distribution.eps', format='eps', dpi=100)" ] }, { "cell_type": "code", "execution_count": 280, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 864x288 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "idx = np.arange(0,25, step=25/30)\n", "diff=plt.bar(idx, \n", " height=(h_nn[0]-h_reco[0]), edgecolor='black', \n", " linewidth=1, color='lightblue',width = 0.6, align = 'edge') \n", "plt.xlabel('E (GeV)')\n", "plt.ylabel('dN/dE')\n", "plt.title(\"NN output - MC output\")\n", "fig = plt.gcf()\n", "fig.set_size_inches(12,4)\n", "plt.savefig(PATH+'/difference.eps', format='eps',dpi=100)" ] }, { "cell_type": "code", "execution_count": 281, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 864x360 with 2 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "plt.subplot(1,2,1)\n", "plt.tick_params(labelsize=15);\n", "h_reco = plt.hist(diffMC/1000,bins=30,edgecolor='black');\n", "plt.xlabel('ET recoMC - ET tracking (GeV)', fontsize=15)\n", "plt.ylabel('dN/dETdiff', fontsize=15)\n", "plt.title('Resolution as simulated by Geant4', fontsize=15)\n", "plt.subplot(1,2,2)\n", "plt.tick_params(labelsize=15);\n", "h_nn = plt.hist(diffNN/1000,bins=30, edgecolor='black');\n", "plt.xlabel('ET recoNN - ET tracking (GeV)', fontsize=15)\n", "#plt.ylabel('dN/dETdiff', fontsize=15)\n", "plt.title('Resolution as simulated by NN', fontsize=15)\n", "fig = plt.gcf()\n", "fig.set_size_inches(12,5)\n", "plt.savefig(PATH+'/resolution.eps', format='eps', dpi=100)\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 282, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(44508,)" ] }, "execution_count": 282, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_true_hist[np.where(test_true_hist<175000)].shape" ] }, { "cell_type": "code", "execution_count": 283, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(44497,)" ] }, "execution_count": 283, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_reco_NN_hist[:-11].shape" ] }, { "cell_type": "code", "execution_count": 284, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x360 with 2 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplot(1,2,1)\n", "plt.hist2d(test_true_hist/1000,test_reco_NN_hist/1000,bins=30);\n", "plt.xlabel('True ET (GeV)', fontsize=15)\n", "plt.ylabel('NN Reco ET (GeV)', fontsize=15)\n", "fig=plt.gcf()\n", "fig.set_size_inches(5,5)\n", "plt.subplot(1,2,2)\n", "plt.hist2d(test_true_hist/1000,test_reco_MC_hist/1000,bins=30);\n", "plt.xlabel('True ET (GeV)', fontsize=15)\n", "plt.ylabel('MC Reco ET (GeV)', fontsize=15)\n", "fig=plt.gcf()\n", "fig.set_size_inches(10,5)\n", "plt.savefig(PATH+'/scatterplot.eps', format='eps', dpi=100)\n" ] }, { "cell_type": "code", "execution_count": 285, "metadata": {}, "outputs": [], "source": [ "test_reco_inner = get_inner_HCAL(test_reco)\n", "test_reco_outer = get_outer_HCAL(test_reco)" ] }, { "cell_type": "code", "execution_count": 286, "metadata": {}, "outputs": [], "source": [ "test_reco_inner_NN = get_inner_HCAL(test_reco_NN_test)\n", "test_reco_outer_NN = get_outer_HCAL(test_reco_NN_test)" ] }, { "cell_type": "code", "execution_count": 287, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(192600.06, 300480.0)" ] }, "execution_count": 287, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_reco_inner_NN.sum(axis=0).max(),test_reco_inner.sum(axis=0).max()" ] }, { "cell_type": "code", "execution_count": 288, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.image.AxesImage at 0x7fd5c7c25ef0>" ] }, "execution_count": 288, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAATEAAAD8CAYAAAAfZJO2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAADaNJREFUeJzt3V+MXOV9xvHv4z/YBIrABKhlo5pIbgoXwURbAqKqigmtS6PABamgUeULq1YlKhE1UgqtVDVVL+Am0IsqkhVIfJEGKAk1QlFS1wFVlSrDEkwCOMSE0GCZ4pRgxaHC+M+vF3NMdu1Zdvbf7Lzk+5FWM++7Z/Y8MOvH57x79jhVhSS1asliB5CkubDEJDXNEpPUNEtMUtMsMUlNs8QkNc0Sk9Q0S0xS0+ZUYkk2JXkxyUtJ7pivUJI0qMz2iv0kS4EfAtcD+4GngFur6oWpXnNGVtRKzprV/iT96nibt3injmSQbZfNYT9XAi9V1csASR4AbgSmLLGVnMXHct0cdinpfSNTd9TuE/8+8JeZy+nkGuDVCeP93dwkSbYmGU8yfpQjc9idJJ1uLiXWr0ZPOzetqm1VNVZVY8tZMYfdSdLp5nI6uR+4eMJ4LXBg2lctWfrL5yeOz2H3kkbGqaeGg6y1n7rNe5xevpe5HIk9BaxPckmSM4BbgEfn8PUkacZmfSRWVceS/AXwbWApcH9VPT9vySRpAHM5naSqvgl8c56ySNKMzanEZqVODH2Xkt6//LUjSU2zxCQ1zRKT1DRLTFLThr+wL+n9ZxH/6UePxCQ1zRKT1DRLTFLTLDFJTbPEJDXNEpPUNEtMUtMsMUlNs8QkNc0Sk9Q0S0xS0ywxSU2zxCQ1zRKT1DRLTFLTLDFJTbPEJDXNEpPUNEtMUtMsMUlNs8QkNc0Sk9Q0S0xS0ywxSU2zxCQ1zRKT1DRLTFLTpi2xJPcnOZjkuQlzq5LsTLKvezxvYWNKUn+DHIl9Bdh0ytwdwK6qWg/s6saSNHTTllhV/Qfws1OmbwS2d8+3AzfNcy5JGshs18QuqqrXALrHC6faMMnWJONJxo9yZJa7k6T+Fnxhv6q2VdVYVY0tZ8VC707Sr5jZltjrSVYDdI8H5y+SJA1utiX2KLC5e74Z2DE/cSRpZga5xOJrwH8BH06yP8kW4C7g+iT7gOu7sSQN3bLpNqiqW6f41HXznEWSZswr9iU1zRKT1DRLTFLTLDFJTbPEJDXNEpPUNEtMUtMsMUlNs8QkNc0Sk9Q0S0xS0ywxSU2zxCQ1zRKT1DRLTFLTLDFJTbPEJDXNEpPUNEtMUtMsMUlNs8QkNc0Sk9Q0S0xS0ywxSU2zxCQ1zRKT1DRLTFLTLDFJTbPEJDXNEpPUNEtMUtMsMUlNm7bEklyc5PEke5M8n+T2bn5Vkp1J9nWP5y18XEmabJAjsWPAZ6vqUuAq4LYklwF3ALuqaj2wqxtL0lBNW2JV9VpVfbd7fhjYC6wBbgS2d5ttB25aqJCSNJUZrYklWQdcAewGLqqq16BXdMCF8x1OkqYzcIklORv4OvCZqvr5DF63Ncl4kvGjHJlNRkma0kAllmQ5vQL7alV9o5t+Pcnq7vOrgYP9XltV26pqrKrGlrNiPjJL0rsG+elkgPuAvVX1hQmfehTY3D3fDOyY/3iS9N6WDbDNNcCfAt9Psqeb+2vgLuChJFuAnwCfWpiIkjS1aUusqv4TyBSfvm5+40jSzHjFvqSmWWKSmmaJSWqaJSapaZaYpKZZYpKaZolJapolJqlplpikpllikppmiUlqmiUmqWmWmKSmWWKSmmaJSWqaJSapaZaYpKZZYpKaZolJapolJqlplpikpllikppmiUlqmiUmqWmWmKSmWWKSmrZssQPMWDJ5uGz5pHEdOzp5+6qFTiRpEXkkJqlplpikpllikppmiUlqWnsL+6cs1NfRdxYpiKRR4JGYpKZNW2JJViZ5MsmzSZ5P8vlu/pIku5PsS/JgkjMWPq4kTTbIkdgRYGNVXQ5sADYluQq4G7inqtYDbwJbFi6mJPU37ZpYVRXwi264vPsoYCPwJ938duDvgC/OKc0pF7J2AWb0Jd7YcvWk8aGNb08a//ojpx8wnvXw7hntQ9LoGGhNLMnSJHuAg8BO4EfAoao61m2yH1izMBElaWoDlVhVHa+qDcBa4Erg0n6b9Xttkq1JxpOMH+XI7JNKUh8z+ulkVR0CngCuAs5NcvJ0dC1wYIrXbKuqsaoaW86KuWSVpNNMuyaW5ALgaFUdSnIm8HF6i/qPAzcDDwCbgR1zDbPk7LNPm6t3Jl8HduTaj0waH14z+T/hjd8+Pmn842u/PGl8yVt/dto+fvPhGcWUNEIGudh1NbA9yVJ6R24PVdVjSV4AHkjyD8AzwH0LmFOS+hrkp5PfA67oM/8yvfUxSVo0XrEvqWkj9buTS84+67S5E29Ovsnhzy6dfBPEC5/6v0nj8+/bM2n8B3++YdL44hv7XIsmqVkeiUlqmiUmqWmWmKSmjdSa2IlfvHX63NuTf/dx7Y7J19Qee/mVGe3jzB1PzjiXpNHlkZikpllikppmiUlqmiUmqWmjtbB/+PC028x0IV/S+5tHYpKaZolJapolJqlplpikpllikppmiUlqmiUmqWmWmKSmWWKSmmaJSWqaJSapaZaYpKZZYpKaZolJapolJqlplpikpllikppmiUlqmiUmqWmWmKSmWWKSmmaJSWrawCWWZGmSZ5I81o0vSbI7yb4kDyY5Y+FiSlJ/MzkSux3YO2F8N3BPVa0H3gS2zGcwSRrEQCWWZC3wR8CXunGAjcDD3SbbgZsWIqAkvZdBj8TuBT4HnOjG5wOHqupYN94PrJnnbJI0rWlLLMkngINV9fTE6T6b1hSv35pkPMn4UY7MMqYk9bdsgG2uAT6Z5AZgJXAOvSOzc5Ms647G1gIH+r24qrYB2wDOyaq+RSdJszXtkVhV3VlVa6tqHXAL8J2q+jTwOHBzt9lmYMeCpZSkKczlOrG/Av4yyUv01sjum59IkjS4QU4n31VVTwBPdM9fBq6c/0iSNDiv2JfUNEtMUtMsMUlNs8QkNc0Sk9Q0S0xS0ywxSU2zxCQ1zRKT1DRLTFLTLDFJTbPEJDXNEpPUNEtMUtMsMUlNs8QkNc0Sk9Q0S0xS0ywxSU2zxCQ1zRKT1DRLTFLTLDFJTbPEJDXNEpPUNEtMUtOWLXYASQKgalYv80hMUtMsMUlNs8QkNW34a2KzPO+VpH48EpPUNEtMUtMGOp1M8gpwGDgOHKuqsSSrgAeBdcArwB9X1ZsLE1OS+pvJkdi1VbWhqsa68R3ArqpaD+zqxpI0VHM5nbwR2N493w7cNPc4kjQzg5ZYAf+W5OkkW7u5i6rqNYDu8cKFCChJ72XQSyyuqaoDSS4Edib5waA76EpvK8BKPjCLiJI0tYGOxKrqQPd4EHgEuBJ4PclqgO7x4BSv3VZVY1U1tpwV85NakjrTHoklOQtYUlWHu+e/D/w98CiwGbire9wx470vWTp5X0uXTrGhpJbV8ePTb3RigG36GOR08iLgkSQnt//nqvpWkqeAh5JsAX4CfGpWCSRpDqYtsap6Gbi8z/wbwHULEUqSBuUV+5KalhriL2Qn+Snw38AHgf8d2o5nz5zzp4WMYM75Ntucv1FVFwyy4VBL7N2dJuMTrvwfWeacPy1kBHPOt2Hk9HRSUtMsMUlNW6wS27ZI+50pc86fFjKCOefbgudclDUxSZovnk5KatpQSyzJpiQvJnkpyUjdfyzJ/UkOJnluwtyqJDuT7Osez1vkjBcneTzJ3iTPJ7l9RHOuTPJkkme7nJ/v5i9JsrvL+WCSMxYzZ5dpaZJnkjw2whlfSfL9JHuSjHdzI/Wed5nOTfJwkh9036NXDyPn0EosyVLgn4A/BC4Dbk1y2bD2P4CvAJtOmRu1Gz8eAz5bVZcCVwG3df8PRy3nEWBjVV0ObAA2JbkKuBu4p8v5JrBlETOedDuwd8J4FDNCGzcl/UfgW1X1W/R+y2cvw8hZVUP5AK4Gvj1hfCdw57D2P2DGdcBzE8YvAqu756uBFxc74yl5dwDXj3JO4APAd4GP0bvocVm/74dFyra2+4O1EXgMyKhl7HK8AnzwlLmRes+Bc4Af062zDzPnME8n1wCvThjv7+ZG2cje+DHJOuAKYDcjmLM7TdtD7xZNO4EfAYeq6li3ySi8//cCnwNOdOPzGb2M0MZNST8E/BT4cnd6/qXurjcLnnOYJZY+c/5odBaSnA18HfhMVf18sfP0U1XHq2oDvaOdK4FL+2023FS/lOQTwMGqenridJ9NR+F79Jqq+ii9pZjbkvzuYgfqYxnwUeCLVXUF8BZDOsUdZontBy6eMF4LHBji/mdjoBs/DlOS5fQK7KtV9Y1ueuRynlRVh4An6K3hnZvk5J1TFvv9vwb4ZPcveT1A75TyXkYrIzC3m5IO0X5gf1Xt7sYP0yu1Bc85zBJ7Cljf/fTnDOAWejdWHGUnb/wIs73x4zxK76Zu9wF7q+oLEz41ajkvSHJu9/xM4OP0FnkfB27uNlvUnFV1Z1Wtrap19L4Xv1NVn2aEMkLvpqRJfu3kc3o3JX2OEXvPq+p/gFeTfLibug54gWHkHPLi3w3AD+mtj/zNYi5E9sn2NeA14Ci9v1W20Fsj2QXs6x5XLXLG36F3evM9YE/3ccMI5vwI8EyX8zngb7v5DwFPAi8B/wKsWOz3vcv1e8Bjo5ixy/Ns9/H8yT83o/aed5k2AOPd+/6vwHnDyOkV+5Ka5hX7kppmiUlqmiUmqWmWmKSmWWKSmmaJSWqaJSapaZaYpKb9P64iZqc+tGeIAAAAAElFTkSuQmCC\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(test_reco_NN[10].reshape(52,64))" ] }, { "cell_type": "code", "execution_count": 267, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.colorbar.Colorbar at 0x7fd5c8371d30>" ] }, "execution_count": 267, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 4 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplot(1,2,1)\n", "plt.imshow(test_reco_inner_NN[3].reshape(28,32))\n", "plt.colorbar()\n", "plt.subplot(1,2,2)\n", "plt.imshow(test_reco_outer_NN[3].reshape(26,32))\n", "plt.colorbar()" ] }, { "cell_type": "code", "execution_count": 268, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.colorbar.Colorbar at 0x7fd5c8286dd8>" ] }, "execution_count": 268, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 4 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplot(1,2,1)\n", "plt.imshow(test_reco_inner[0].reshape(28,32))\n", "plt.colorbar()\n", "plt.subplot(1,2,2)\n", "plt.imshow(test_reco_outer[0].reshape(26,32))\n", "plt.colorbar()" ] }, { "cell_type": "code", "execution_count": 269, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "indices_MC_inner, indices_MC_outer, triggered_true_inner_MC, triggered_true_outer_MC, _, _ = get_triggered_events(test_true, test_reco_inner, test_reco_outer)\n", "\n" ] }, { "cell_type": "code", "execution_count": 270, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2093, 12641)" ] }, "execution_count": 270, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(indices_MC_inner), len(indices_MC_outer)" ] }, { "cell_type": "code", "execution_count": 289, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "indices_NN_inner, indices_NN_outer, triggered_true_inner_NN, triggered_true_outer_NN, _, _ = get_triggered_events(test_true, test_reco_inner_NN, test_reco_outer_NN)\n", "\n" ] }, { "cell_type": "code", "execution_count": 290, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1902, 17156)" ] }, "execution_count": 290, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(indices_NN_inner), len(indices_NN_outer)" ] }, { "cell_type": "code", "execution_count": 291, "metadata": {}, "outputs": [], "source": [ "total_MC=np.concatenate((triggered_true_outer_MC,triggered_true_inner_MC))\n", "total_NN=np.concatenate((triggered_true_outer_NN,triggered_true_inner_NN))" ] }, { "cell_type": "code", "execution_count": 297, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABLcAAAJhCAYAAACzT1IGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xm812P+//HHVaezVKSpqFNSKRHFKKMYJdJiqDRFdbKNfQnZJ2MsE40sjSkia6LVkO1byZJlzPx8EfoiWSYhI5EpOqlT1++Ps8zZ6uzLJ4/77fa5fXS9X+/r/Xp/6A/P2/u63iHGiCRJkiRJkpSI6tR0A5IkSZIkSVJ5GW5JkiRJkiQpYRluSZIkSZIkKWEZbkmSJEmSJClhGW5JkiRJkiQpYRluSZIkSZIkKWEZbkmSJEmSJClhGW5JkiRJkiQpYRluSZIkSZIkKWEl1XQDO4KmTZvGNm3a1HQbkiRJkiRJO4w333xzTYyxWUl1hluVoE2bNrzxxhs13YYkSZIkSdIOI4TwWWnqXJYoSZIkSZKkhGW4JUmSJEmSpIRluCVJkiRJkqSEZbglSZIkSZKkhGW4JUmSJEmSpIRluCVJkiRJkqSEZbglSZIkSZKkhJVU0w1IkiRJklRW69atY/Xq1WzevLmmW5FUBvXq1WPXXXdl5513rrQ5DbckSZIkSQll3bp1fP3117Rs2ZK0tDRCCDXdkqRSiDGSmZnJl19+CVBpAZfLEiVJkiRJCWX16tW0bNmS+vXrG2xJCSSEQP369WnZsiWrV6+utHkNtyRJkiRJCWXz5s2kpaXVdBuSyiktLa1SlxQbbkmSJEmSEo5PbEmJq7L//hpuSZIkSZIkKWEZbkmSJEmSJClh1Xi4FULYJ4QwK4TwUQjhhxDCuhDCkhDCBSGE5EK1SSGEq0MI/wohbAwhLAshnB+KeZ4thNAghHBbCGFVTu2SEMLwbfTQNIRwfwjhmxDChhDCayGEPlV1z5IkSZIk7eiWLVtGCIFZs2bVdCvVavjw4ey999413cbPSo2HW8DuwC+AWcAlwJXA+8BfgDmFaqcA1wOLgPOBd4FJwNXFzPsYMBp4JOf7W2BmCOGk/EUhhFTgBWAYcEdOD8nA/BDCERW/PUmSJEmSSm/x4sWEEAghMGHChGJrbr311ryaxYsXFzn+1Vdfcemll9KpUycaNGhAWloanTp14qKLLuLjjz/e5rVPOeWUvHlL+ujnY8KECTz88MM13cY2JdV0AzHGZ4FnCw3fGUJYC5wXQugYY/wwhLA/cDowMcZ4cU7dvSGEucDYEMI9McavAEIIg4C+wIUxxr/mjN0HvAbcHEKYHWP8KWeOs4DOwKAY45M5tQ8B7wETgf2r6NYlSZIkSZXs0D+/wJffZ9Z0G7TcJY2/X1mx5yVSU1OZPn06l19+eZFjDz30EKmpqWzcuLHIsZdffplBgwaxadMmRo4cyejRo6lbty7vvfces2bN4s4772TTpk3FXvOss86iT5//LmRas2YNY8aMYdCgQQwdOrRM/Xfs2JHMzEySk5NLLlatNmHCBLp168aoUaNqupVi1Xi4tR2f5XzvkvN9Qs737YXqbgeGAoPJfrIrtzYTuCe3KMa4NYQwGZgOHAHMz1e7IjfYyqn9MYRwL/CnEMI+McYPKueWJEmSJElV6cvvM1nx59/UdBu0ufKZCs9x7LHHMnfuXN5++20OOOCAvPGlS5fy7rvvcvzxxzNnTsEFT19++SWDBw+mcePGPP/887Rt27bA8fHjxzN27NhtXrNHjx706NEj788rVqxgzJgx7LfffqUONn766SeSkpKoW7cuqamppTqnpm3YsIH69evXdBsqp9qwLBGAEEL9nL2v2uTsjXU58BXZSw8BugFfxxg/K3Tq68BWoGu+sW7AuzHGwnH9P3O+u+Zcsw7wS+D/FdNSgVpJkiRJkqrTkUceSYsWLZg+fXqB8WnTppGens6RRx5Z5JybbrqJtWvXct999xUJtgDq16/PX/7yl0rr8a677iKEwHPPPcdll11Geno6aWlpfPPNN9vcc+v999+nb9++1K9fn1133ZXRo0fz1ltvVbh23bp1XH755bRr147k5GRatmzJBRdcwLp16wrUde/enfbt2/Pee+/Rt29fdtppJ4YMGZJ3/N///jdnn302LVu2JDk5mbZt23L11VcXedotxsiECRNo06YNaWlpdO3alYULF5bp9ytNzwMGDKB58+Zs2bKlyPljx46lTp06fPbZf6OS0vbfvHlz+vTpw5IlS+jVqxf169enRYsWXH/99cQYAdi4cSMhBL799lsWLlyYtyQ1/55id9xxB507d6Zhw4bssssudOnShRtuuKFMv0NF1aYnty4Hrsn359eB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PNwC7g4hNAEWA58DuwB9yd5c/jXgEYAY45IQwv3AxSGEncgOvfoCxwPXxRjz/1/mE8DzwG0hhNbARzl1PYDfFXqa626yQ7AZIYRbgNVkB1utgf5IUjFW/biKpScX91LWytN5WucqnV+SJEmJ49prr6VHjx5F3pZX2OWXX87DDz/M6aefzgsvvFBk2VlmZiZjx45l4sSJVdjtth199NFMmTKFl156KW8vraysLO68884K1Y4YMYJx48bx2GOPMWTIkALHsrKyWL9+PY0bNy5yXn7Jycn89re/ZebMmfzv//4vBx10UIHjmZmZbNmyhYYNG9K/f3+SkpKYNGkSAwcOzHsC6vHHH+fTTz8tdrliRXvOyMhgypQpPPzww8ybN4/jjjuO+vXrl6v/smrYsCFr164tMv7tt9/mLYuE7NDugAMOACj10sbKUBvCrVnAKWQHSs2An4APgSuAv8YYN+erPZvsNyOemnPOCuBCYFL+CWOMMYQwGBgHnEj20sZlQEaMcUah2swQwhHAhJy56gNvA0fHGJ+rxPuUJEmSJKlcevToQY8ePUqs23333Xnsscc47rjj2HfffcnIyKBr167UqVOH999/nzlz5rBmzZoaC7fGjh3L7NmzOfbYYxk9ejTNmzdnzpw5/PTTT0DBJ4TKUvv73/+ehQsXMmzYMEaOHEn37t3ZsmULH3/8MY8++ii33XYbw4cPL7G/W265hb///e8cdthhnHrqqey///5s2LCBZcuWMXfuXObPn5+3Cfxll13G+PHjOeqooxgyZAifffYZd999N506dWLLli0lXqusPR9yyCG0adOGsWPHsn79ejIyMsrdf1kddNBBPPbYY4wbN4727duz8847c/TRR9OzZ0/22GMPDjnkENLT01mxYgV33HEHLVq0oHfv3mW+TnnVeLgVY5xN9tLA0tRuBq7L+ZRU+wNwUc6npNrVZIdlkiRJkiQltN69e/Pee+9x22238T//8z88/PDDxBhp27YtJ5xwAqNHj66x3lq1asVLL73ERRddxMSJE2nQoAEnnHACxx9/PL169SI1NbVctfXr12fx4sXcfPPNzJ49m7lz55KWlkabNm04+eSTS708brfdduN///d/ufHGG5k3bx73338/O++8M+3atePiiy9m7733zqu94YYb2Hnnnbnzzju59NJL2XfffZk7dy4PPPAAb7/9donXKmvPIQRGjhzJjTfeyK677lrs0sOy9F8WN998M+vWreOmm27ihx9+oGPHjhx99NGcd955zJkzh7/+9a/85z//oXnz5gwePJirr76aRo0aleta5RFKu0mYtq1bt26xpl97Kal6dZ7WuVqWJVb1NSRJkhLRBx98UGSfo1yH/vkFvvw+s5o7KqrlLmn8/cratedVbTZz5kxGjhzJm2++mfdmv8qoVe21vb/HuUIIb8YYu5U0V40/uSVJkiRJUmUxUKr9MjMzC7ytcPPmzUyaNImmTZvSuXPnctfq58twS5IkSZIkVZuDDz6YQw89lC5duvCf//yHOXPmsGTJEiZPnlzkLYNlqdXPl+GWJEmSJEmqNgMHDuTxxx/n4YcfJisri06dOjFt2jROOumkCtXq58twS5IkSZIkVZtx48Yxbty4Sq/Vz1edmm5AkiRJkiRJKi+f3JJUbfo92o9VP66q0mukN0hn4dCFVXoNSZIkSVLtYbglqdqs+nEVS09eWqXX6DzNN6ZIkiRJ0s+JyxIlSZIkSZKUsAy3JEmSJEmSlLAMtyRJkiRJkpSw3HNLkmqp9AbpVb6HmBvwS5IkSUp0hluSVEtVR+jkBvySJEmSEp3LEiVJkiRJUqXauHEjIQT+/Oc/13Qr1erKK68kNTW1ptv42fHJLUmSJEnSjmNiZ/jPypruAhq1hjFLy3Xq4sWL6d27NwD/8z//w4ABAwocf/DBBzn11FNZtGgRffr0Kfc5hV177bVcd911perxX//6F23atCnLbSlBTZ06lU2bNnH++efXdCvbZLglSZIkSdpx/GclXPufmu4Crm1UKdNcffXVRYKqqjgHYMiQIbRv377A2IknnsghhxzCOeecU2C8WbNm250rNTWVzMxM6tWrV+Y+VLtMnTqVH374wXBLkiRJkiSVzYEHHsibb77J448/znHHHVdl5+Tq0qULXbp0KTB24okn0rZtW0aNGlWqObKysti6dSvJyckJszxvw4YN1K9fv6bbUAW455YkSZIkSbXQaaedRuvWrbnmmmuIMVbZOeW1YMECQgg89NBDjB8/nrZt25KSksJbb721zT23vvjiC4YNG8ZOO+1E48aNGTVqFF988UWFazdt2sQNN9zA3nvvTUpKCrvuuisnn3wyX331VYG64cOHk5SUxBdffMHQoUNp3LgxXbt2zTu+bt06Lr/8ctq1a0dycjItW7bkggsuYN26dUXu/4EHHmDvvfcmNTWVTp068cgjj5Tp9ytNz+eccw7Jycl89913Rc6fOnUqIQRefvnlMvffvXt32rdvz6effsoxxxxDw4YNadq0KaNHj2bz5s15dc2bN+fNN9/kww8/JIRACKFAaDlr1iwOOuggGjVqxE477cTee+/NBRdcUKbfoTL45JYkSZIkSbVQcnIyV199NWeccQazZ89m+PDhVXJORU2YMIEYI+eccw4pKSnbXLL4448/csQRR7BixQrOPfdcOnTowIIFCxg4cGCFardu3cpxxx3H888/z+9+9zv2339/Pv/8cyZNmsSrr77KW2+9RaNG/10mGmOkb9++7L///owfPz4vzMnMzOTwww/nk08+4cwzz6RDhw588MEHTJkyhddff51XXnklb5nlfffdx+mnn86BBx7I+PHj+f777xk9ejStW7cu1W9W2p4zMjK46667mDt3LmeddVaBOWbMmMHuu+/OYYcdVub+AdavX8+RRx5J3759ueWWW3j55ZeZPHkyzZs356qrrgLgjjvu4LLLLmPjxo1MmDABgLp16wLZe7uNGDGCI488khtvvJGkpCQ++eQTnn322VL9BpUqxuingp+uXbtGSSXb78H9dohrVOd1qtqOch+SJOnn5f3339/2wWt2rr5GtqcCfbz44osRiPfcc0/cvHlzbN++fezYsWPMysqKMcb4wAMPRCAuWrSoQueUBhAzMjKKPTZ//vwIxJYtW8b169cXOJaZmRmBOH78+LyxCRMmRCBOmzatQO2wYcMqVDtt2rQIxGeffbZA7T/+8Y8YQoh/+tOf8sZOOOGECMQLL7ywyP1cd911MTU1NS5durTA+OzZsyMQp0+fHmOMcePGjbFJkyaxY8eOccOGDXl1b7zxRgwhxJSUlGJ/r/xK2/PWrVvjHnvsEXv27Fmg7osvvoh16tSJV1xxRZn7jzHGgw8+OAJxypQpBWqPOuqouPvuuxcY69q1a+zYsWORezj77LNj06ZN45YtW0q83+Js9+9xDuCNWIpcxmWJkiRJkiTVUklJSVxzzTV8+OGHPPzww1V2TkWcdNJJNGzYsMS6Z555hiZNmpCRkVFgvLhlbGWpnTVrFnvuuSe//OUvWbNmTd6nffv2tGrViueff77IOeeee26x83Tv3p3mzZsXmKdnz54kJSXlzfOPf/yDb7/9lrPOOou0tLS887t27crhhx9e4u9Qlp5DCIwcOZJXXnmFL774Iu/8mTNnsnXr1gK/T2n7z1WvXj1OP/30AmO9e/fmiy++YNOmTSXeQ6NGjVi3bh3PPfdcqe65KhluSZIkSZJUi40cOZJOnTpx/fXXF9gPqbLPKa+2bduWqm7FihW0a9cub1lbrr322qtCtcuWLeOTTz6hWbNmRT6ff/45q1evLlAfQqBNmzYFxmKMLF++nMWLFxeZo0WLFmRlZeXNs2LFCgA6duxYpJfixopTlp4zMjKIMTJz5sy8sRkzZrDffvvRuXPnMvefq2XLliQlFdytqnHjxsQYWbt2bYn3cMEFF9C2bVv69etHq1atGDVqFLNnzyYrK6tUv0Flcs8tSTuU9AbpdJ7WuVqusyOozt9r4dCFVX4dSZKkHVGdOnW49tprOf7447n//vtJSUmpknPKK//TS9sTYySEUOx4RWq3bt3K3nvvzaRJk4q9boMGDQr8uU6dOiQnJxeZN8ZIr169+MMf/lDsPE2bNi3QQ3H9lVZZet53333p0qULM2bM4LLLLuPDDz9kyZIljB8/vlz95yocHOZX3O9cWHp6Ou+++y7PP/88Cxcu5Nlnn+WRRx6hW7duvPzyy6X+76IyGG5J2qEYoJRNdf1e1RGgSZIk7ciGDh3K/vvvz7hx47YZXlTGOVWpbdu2/N///R9btmwpEKx89NFHFapt374977zzDkcccQR16pRvgVqdOnVo27Yt69ato0+fPiXeB2Q/fTVgwIACxz788MNSXa+sPWdkZHDFFVfwwQcfMHPmTEIIjBgxolz9l9X2Qrzk5GQGDBiQ9ztMnDiRiy++mLlz53LSSSdVah/b47JESZIkSZJquRAC119/PV988QVTp06tsnOq0tFHH823337LI488UmD8r3/9a4VqR4wYwZo1a/jLX/5S5FiMkTVr1pSqvxEjRrBkyRIee+yxIseysrLylur16NGDJk2aMHXqVDIzM/Nq3nrrLRYvXlzqa5Wl5xEjRhBCYMaMGcycOZNf//rX7LHHHuXqv6waNmxY7LnffvttkbFf/vKXAHz33XflulZ5+eSWJEmSJEkJYODAgfzqV7/i9ddfr9Jzqsq5557L3Xffzemnn86SJUto3749CxYsYNWqVUDBJ4TKUnvqqafyxBNPcMkll/Dyyy9z+OGHk5yczKeffsq8efM4/fTTufLKK0vs7/e//z0LFy5k2LBhjBw5ku7du7NlyxY+/vhjHn30UW677TaGDx9OSkoKN954I2eddRa//vWvOfHEE1m7di2TJk2iS5cuLFu2rMRrlbXn3XffnZ49e3L77bezfv16Lr300nL3X1YHHXQQixcv5tJLL+XAAw+kXr16DBs2jFGjRvHjjz/Su3dvWrduzddff81dd91FgwYNGDRoUJmvUxGGW5IkSZKkHUej1nBto5ruIruPKvCnP/2Jfv36Vfk5VaFhw4YsXryYiy66iHvvvZe6detyzDHHcPPNN7PPPvuQmpparto6derw+OOPM3nyZB588EHGjh1LUlISu+++O0cffTTHHXdcqfqrX78+ixcv5uabb2b27NnMnTuXtLQ02rRpw8knn0zPnj3zas8880zq1q3LTTfdxBVXXEG7du2YNGkSS5cuLVW4VZ6eMzIyeOmll/LCpYr0Xxa///3vWbFiBffddx+33norKSkpDBs2jFNOOYUHHniAqVOn8t1339G0aVMOPfRQrr766lK/ZKCyhNJsEqbt69atW3zjjTdqug2p1us8rTNLT15a022oBvjvXpIkVaYPPviAffbZp6bbUCX5xz/+wSGHHMLf/vY3hgwZUmm1qt1K8/c4hPBmjLFbSXO555YkSZIkSaoW+feoguz9pSZOnEi9evU47LDDyl2rnzeXJUqSJEmSpGpx3HHHsdtuu9GtWzc2b97MU089lbefU7Nmzcpdq583wy1JkiRJklQtjj76aB588EGeeOIJMjMz2XPPPbn11lsZM2ZMhWr182a4JUmSJEmSqsUFF1zABRdcUOm1+nlzzy1JkiRJkiQlLMMtSZIkSZIkJSzDLUmSJEmSJCUswy1JkiRJkiQlLMMtSZIkSZIkJSzDLUmSJEmSJCWspJpuQFLN6/doP1b9uKrKr5PeIL3KryFJkiRJ+nkx3JLEqh9XsfTkpTXdhiRJkiRJZeayREmSJEmSfsY+/PBD+vbtyy677EIIgQcffLCmW0po3bt3p3379iXWDR8+nL333rsaOtrx+eSWJEmSJGmHUV1bbpQkvUE6C4cuLNe5ixcvpnfv3ts8npGRwbhx42jbtm2p5rvmmmu49tprt3n8lFNOYfny5Vx77bU0bdqUQw45pKwtV6trr72W6667rlS1//rXv2jTpk3VNqQaZ7glSZIkSdph1JYtNzpP61zhOU477TQOP/zwIuPt2rWjWbNmTJ8+vcD41KlTeeWVV5g2bRp16vx3oVaXLl22eY2NGzfyz3/+k/POO4+LLrqowj1XhyFDhhR5MurEE0/kkEMO4Zxzzikw3qxZs+psrUymT59OjLGm29ghGG5JkiRJklQLde/enVGjRm3zeOFjzz33HK+88gojR44kKal0/7u/evVqAHbZZZcSa7ds2cKWLVtITk4u1dxVpUuXLkUCuxNPPJG2bdtu9/fKLysri61bt9bovdSrV6/Grr2jcc8tSZIkSZJ+hk6fK7i0AAAgAElEQVQ55RT22GMPAG644QZCCIQQgOylkSEE7rnnHm655Rb23HNPUlJSeO211wCIMTJx4kQ6depESkoKu+22G6eccgqrVhVcEvrggw8SQmDBggX88Y9/pFWrVjRo0IB+/fqxcuVKAO644w46dOhAamoqBx10EG+99Val3ueCBQsIIfDQQw8xfvx42rZtS0pKSt51/vznP/PrX/+aZs2akZKSwl577cWf/vQnsrKyisy1fv16xo4dy1577ZV33wMGDOCf//zndnv44IMPaNWqFfvtt1/eb1TcnlvNmzenT58+LFmyhF69elG/fn1atGjB9ddfX+Qprxgj48ePp3Xr1qSlpXHQQQfx3HPP/Sz38vLJLUlSlUtvkF4pj+aXdI3y7mshSZJUG/3www+sWbOmyPhOO+1ESkpKhec/66yzOOCAAxgzZgyDBg1i6NChRWpuv/12srKyOPPMM/OCFoDRo0dzxx13cNRRR3HuueeyYsUKJk+ezIsvvshbb71FkyZNCsxz1VVXkZKSwuWXX86qVau49dZbGTRoECNHjuShhx7inHPOYcOGDdx0000cd9xxfPzxx5X+ZNOECROIMXLOOeeQkpKSt2Tx5ptvZvDgwfz2t78lJSWFl19+mWuuuYZVq1YxZcqUvPN//PFHDjvsMN59911GjBjBhRdeyIYNG3j11Vd59dVX6d69e7HXfeONNxgwYADt2rVj/vz5/OIXv9hunytXrmTAgAFkZGQwYsQInnjiCa655hr23HNPMjIy8uquuuoqxo8fzxFHHMHll1/O559/ztChQ2nVqlUl/FqJxXBLklTlqiN0qurwTJIkqbqNGTOGMWPGFBl/4IEHOOWUUyo8f48ePWjRogVj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\n", "text/plain": [ "<Figure size 1440x720 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "a_MC=plt.hist(total_MC/1000,bins=40, histtype='step', label='MC Triggered events',)# range=(0,160))\n", "a_NN=plt.hist(total_NN/1000,bins=40, histtype='step', label='NN Triggered events',)# range=(0,160))\n", "b=plt.hist(test_true_hist/1000,bins=40,histtype='step', label='ET from Tracking',)# range=(0,160))\n", "plt.tick_params(labelsize='xx-large')\n", "plt.xlabel('ET (GeV)', fontsize=20)\n", "plt.ylabel('dN/dET (a.u.)', fontsize=20)\n", "plt.legend(fontsize='xx-large')\n", "fig = plt.gcf()\n", "fig.set_size_inches(20,10)\n", "plt.savefig(PATH+'/eff_1.png',dpi=100)" ] }, { "cell_type": "code", "execution_count": 293, "metadata": {}, "outputs": [], "source": [ "#a_MC_np, a_MC_edges = np.histogram(total_MC/1000,bins=40, )#range=(0,200) )#, label='MC Triggered events')\n", "#a_NN_np, a_NN_edges = np.histogram(total_NN/1000,bins=40, )#range=(0,200) )#, label='NN Triggered events')\n", "#a_true_np, a_true_edges = np.histogram(test_true_hist/1000, bins=40, )#range=(0,140) )\n", "#\n", "#bincenters = 0.5*(a_NN_edges[1:]+a_NN_edges[:-1])\n", "#\n", "#a_MC_std = np.sqrt(a_MC_np)\n", "#a_NN_std = np.sqrt(a_NN_np)\n", "#a_true_std = np.sqrt(a_true_np)\n", "#\n", "#plt.errorbar(bincenters, a_true_np,yerr=a_NN_std, xerr=0.5 , fmt='o')\n", "#plt.errorbar(bincenters, a_MC_np, yerr=a_MC_std, xerr=0.5 , fmt='o', label='MC Triggered events')\n", "#plt.errorbar(bincenters, a_NN_np, yerr=a_NN_std, xerr=0.5 , fmt='o',label='NN Triggered events')\n", "#plt.tick_params(labelsize='xx-large')\n", "#plt.xlabel('ET (GeV)', fontsize=20)\n", "#plt.ylabel('dN/dET (a.u.)', fontsize=20)\n", "#plt.legend(fontsize='xx-large')\n", "#fig = plt.gcf()\n", "#fig.set_size_inches(16,10)\n", "#plt.savefig(PATH+'/eff_1.png',dpi=100)" ] }, { "cell_type": "code", "execution_count": 298, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1.380e+02, 4.840e+02, 1.030e+03, 1.918e+03, 2.517e+03, 2.729e+03,\n", " 2.916e+03, 2.822e+03, 2.972e+03, 2.889e+03, 2.822e+03, 2.693e+03,\n", " 2.392e+03, 2.185e+03, 1.957e+03, 1.849e+03, 1.639e+03, 1.463e+03,\n", " 1.203e+03, 1.146e+03, 9.150e+02, 8.120e+02, 7.300e+02, 5.780e+02,\n", " 4.780e+02, 3.630e+02, 2.780e+02, 2.030e+02, 1.490e+02, 9.500e+01,\n", " 6.700e+01, 3.900e+01, 2.000e+01, 8.000e+00, 6.000e+00, 1.000e+00,\n", " 0.000e+00, 0.000e+00, 0.000e+00, 2.000e+00])" ] }, "execution_count": 298, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b[0]" ] }, { "cell_type": "code", "execution_count": 299, "metadata": {}, "outputs": [], "source": [ "eff_MC = np.zeros_like(b[0])\n", "eff_NN = np.zeros_like(b[0])\n", "for i in range(len(b[0])):\n", " if b[0][i]!=0:\n", " eff_MC[i]=a_MC[0][i]/b[0][i]\n", " eff_NN[i]=a_NN[0][i]/b[0][i]" ] }, { "cell_type": "code", "execution_count": 302, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5AAAAJhCAYAAAA39V8sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xu8zWX+9/HXJWWTHIYdsRWGkkk1oRE1YaLx64B7ZNDBpkLlnuxqGo0GTU0xOv5k3Goadoc7RmYUv1KDSr97yqSpGSU6jMMkipJJMh32df+xDz/bPn2X9rY2Xs/HYz3WXt/vdX3XZ60tD++u63tdIcaIJEmSJEkVqZHuAiRJkiRJ+wcDpCRJkiQpEQOkJEmSJCkRA6QkSZIkKREDpCRJkiQpEQOkJEmSJCkRA6QkSZIkKREDpCRJkiQpEQOkJEmSJCmRmukuoDpo3LhxbNmyZbrLkCRJkqS0eOWVV7bGGDMrameABFq2bMmKFSvSXYYkSZIkpUUIYX2Sdk5hlSRJkiQlYoCUJEmSJCVigJQkSZIkJWKAlCRJkiQlYoCUJEmSJCVigJQkSZIkJWKAlCRJkiQl4j6QCe3atYstW7awa9cuvvrqq3SXI+kgV7NmTTIyMsjMzCQjIyPd5UiSpIOEATKB7du388EHH5CZmUnTpk2pWbMmIYR0lyXpIBVj5KuvvmLHjh1s2LCBJk2aUL9+/XSXJUmSDgIGyAS2bt1KVlYWderUSXcpkkQIgUMPPZSGDRtSq1YtNm/ebICUJEn7hPdAJvDFF19Qu3btdJchSSXUrl2bf//73+kuQ5IkHSQMkAk5ZVVSdeTfTZIkaV8yQEqSJEmSEjFASpIkSZISMUBqryxfvpyuXbtSt25dQgg899xzAKxZs4bevXvToEEDQgjMmjWL5557rlibVLRs2ZLs7OxKrb06W7duXdH3li6zZs0ihMC6devSVkNZktZW+D3eeOON+6YwSZKkg4QBUgBFIa+sx0UXXVTU9ssvv2TgwIG8//773H777Tz00EMcf/zxAGRnZ/PKK68wceJEHnroIb7//e+n6yMpDfLy8pg4cSLz589Pdyn7TGFYDSEwffr0EucL/9v67W9/+436SJIkVQdu4/ENtRz7X+kuoci6Sed842tceumldO/evcTx1q1bF/387rvvsmHDBqZMmcKoUaOKju/atYuXXnqJq666ijFjxhQdb9myJZ9//jmHHXZYyvWsWbOGGjUOnv/Pccwxx/D5559z6KGHpruUvZKXl8dNN93E0KFD6devX7rL2ed+9atfMWzYMDIyMqq0jyRJUroYIFVMly5dio02lubDDz8EoEGDBomO16hRY6//cVyrVq296re/CiEYJPZTp5xyCn/961+ZPn06OTk5VdZHkiQpnQ6eoR1Viu7du3PmmWcCcPnllxNCKLpP8ZhjjgHyR1QKp+cBZd4DuXXrVq6++mpatWpFrVq1OOqoo+jfvz9vvPFGUZuy7oG8//77OeWUU6hduzYNGjSgb9++rFq1qlibiRMnEkJg5cqV5OTkcOSRR1KnTh369OnD+vXrS1yzonq6dOnCscceW+r3kp2dTe3atfnkk0/K/f5mzJjBSSedRN26dalfvz4dOnRgwoQJRedLuwey8L6/RYsWMX78eLKysjj88MM5++yz2bBhAwDTpk2jbdu2ZGRk0LlzZ/7617+W+l3sKek9ly+88AJDhgyhVatWZGRk0LhxYwYMGMBbb71V7FqFI6e5ublFfwZ2H9H+6quvmDx5Mu3bty+6zkUXXcR7771X4j2feeYZOnbsSEZGBi1btmTKlCnEGMutszSzZs2iXbt2ZGRk0L59ex599NGic19//TVZWVn07t271L7du3cnKyuLvLy8Ct+nT58+dOnShUmTJvHZZ58lqm1v+kiSJKWTI5AqZseOHWzdurXE8SOOOIJatWoxbtw4unXrxq233lo03bVu3bo0adKEk08+mZycHPr27cuAAQPKfZ8tW7bwve99jw0bNpCdnU3Hjh355JNPePbZZ3nllVf4zne+U2bfMWPGMHXqVAYNGsRll13G9u3bmTZtGl27dmXFihW0adOmWPvhw4fTsGFDxo8fz6ZNm7jzzju56KKLeOGFF1KqZ/jw4YwcOZIXX3yR0047rajvzp07mTdvHv369Ssx+rq7mTNnMmrUKPr27Vs09XfNmjU8//zz5X5XhcaNG0etWrW4/vrref/997njjjvo27cvQ4YM4cEHH+SKK65g586dTJ48mf79+/POO+9U2lTY3//+97z//vsMHTqU5s2bs379eu677z7OOOMMXn/9dTIzM8nMzCQ3N5ehQ4dyxhlnMGLECACaNGkCQIyRCy64gCeffJLs7GyuvvpqNm7cyL333suyZct49dVXadSoEQDPP/8855xzDllZWUyYMIEQAr/5zW/K/X5Ls3DhQjZu3MhVV11FvXr1mDVrFkOGDCGEwKBBgzjkkEO45JJLmDx5Mu+99x5ZWVlFfdevX8+yZcv42c9+lnga9c0330yvXr2YOnUqY8eOrbI+kiRJ6WKAVDE5OTmlTqWbOXMm2dnZ9OrVi0MPPZRbb721xHTXo446ipycHE444YQKp8HecMMNrF27loULF3LOOecUO17eKNPy5cu55557mDp1KqNHjy46fvHFF9O+fXsmTpzIww8/XKxPVlYWf/zjH4teN2rUiGuvvZZVq1bRvn37xPUMGjSIMWPGkJubWyxA/uEPf2DHjh0Vrhb7xBNP0L59+71eYKZGjRosW7aMmjXz/7P9+uuvuf3229m2bRtvvPEGhx9+OAANGzZk9OjRLFq0iPPOO2+v3mtPkyZNKrp+oUsuuYQOHTrwwAMPMHbsWA4//HCGDBnC0KFDad26dYk/A3PnzmX+/PksWLCAc889t+h4//796dy5M3fddRe33HILANdddx116tThxRdfpGnTpkD+KO9xxx2XUt0rV67kb3/7GyeccAKQP2reoUMHrrvuOgYMGEDNmjUZNmwYt912Gw8//HCxAPfQQw8RY0xpFeCzzjqL7t27M2XKFK688krq1atXJX0kSZLSxSmsKuaaa67hT3/6U4nH2WefXWnvkZeXx2OPPcbpp59eLKwVKm2qZaE5c+Zw2GGH0b9/f7Zu3Vr0KJy6uWTJkhJ9rrjiimKve/ToAeQvBpRKPfXq1eNHP/oRc+bMYdeuXUXnc3Nzad68Ob169Sr3c9evX5+NGzfy0ksvlduuLJdffnlReATo1q0bABdeeGGxcFd4/J133tmr9ynN7tffsWMHH330Ed/61rc47rjjePnllxNdY/bs2WRlZdGlS5div7sWLVrQunXrot/dBx98wIoVKxg0aFBReARo2rQpF154YUp1n3XWWUXhEfJH0keMGMHGjRuLpvm2bduW008/ndzc3GJ9H3zwQbp06ZJyaL355pv5+OOPueuuu6q0jyRJUjoYIFXM8ccfz1lnnVXicdRRR1Xae2zZsoXt27dz4oknptx39erVfPHFF2RlZRVNmyx8LF26tGghn90V3ptZqGHDhgB8/PHHKdczbNgwPvnkE5544gkANm7cyNKlS7n44osrnOY4duxY6tWrx2mnnUbr1q0ZPnw4TzzxROL7+vb8HIXTOY8++uhSjxd+vsqwadMmhg4dyre+9S2OOOIIGjduTGZmJitXrmTbtm2JrrF69Wree++9Er+3zMxM3n777aLf3dq1awFKDW6phrnyrlH4PpD/e129ejV/+ctfAHjxxRd5++2392oP0tNPP53evXtz1113Jf4d7E0fSZKkdHAKq9KmvJHGsuTl5VGnTh0ef/zxxH0OOeSQUo/vGdyS1NOjRw9atmxJbm4uAwcO5OGHHyYvLy9R0GjXrh1r1qzh6aef5plnnuHpp59m5syZ9O7dmyeffLLMOiv6HEk+X1mf7euvv66w7ry8PHr37s3GjRvJycnhO9/5DnXr1qVGjRqMGTMm0QIzhddp3bo1M2bMKPV87dq1i9W9N38+9pT0GgMHDuQnP/kJubm5nHrqqTz44INkZGTw4x//eK/e95ZbbuHUU09lypQpiUfv96aPJEnSvmaA1D6XmZlJ/fr1+fvf/55y3zZt2vD000/ToUOHosVZ9mU9IQSys7O5+eab2bx5c8rTHGvXrk2/fv3o168fMUZuuOEGJk+ezJIlS8pcCbQyFI66btu2rehngH/84x8V9l25ciWvv/560X2wu/v4449p3Lhx0evyAlubNm1YtmwZ3bt3LzYVd0+Fe46uXr26xLk1a9ZUWO/uyrtGq1atio7VrVuXCy64gNmzZzNp0iTmzJlT4aJI5encuTPnn38+U6dO5bvf/W6V9ZEkSdVDKnvDV8be7enkFFbtczVq1GDAgAG88MILPPXUUyXOlzelc/DgwQCMHz++1PNbtmyp8nqys7PJy8sjJyeHVatWJZ7m+NFHHxV7HULg5JNPBip3umlp2rZtC8DSpUuLjsUYueeeeyrsWzjCuedIY25uLps2bSrRNiMjo9RprYMHD+bTTz/l17/+dYlzMcai1X+bNGlCx44dmT17Nps3by5qs3nzZh555JEK693d4sWLef3114te79ixg/vuu49mzZpxyimnFGs7fPhwPv74Y0aMGMG2bdv2avrq7n75y18WrYpblX0kSZL2JUcgVcxLL71U6kb2jRo1ok+fPpX2PrfeeiuLFy/m/PPPZ9iwYZxyyil8+umnLF26lMGDB3PJJZeU2q9bt25cc8013HnnnaxatYrzzjuPBg0asH79ep566ilOPPHECvc0/Kb1HHPMMfTs2ZPZs2enNM2xV69eZGZm0q1bN5o3b84///lPpk2bRmZmZoUL8HxTvXr14tvf/jaXXXYZb775JvXr12fevHns3Lmzwr7t2rWjXbt2XHvttaxfv55mzZqxfPly5s+fXzRauLvOnTuzePFibr/9drKysjjyyCPp2bMnQ4YMYf78+YwbN44///nP9OzZk9q1a7N27Vrmz5/PkCFDmDhxIgBTpkyhV69enHbaaYwaNYoYIzNmzKB169a89tpriT93hw4d6NGjB6NHj6ZevXrMnDmT9evX88gjj5QYBT3jjDNo27Yts2fPTrQoUkVOOukkBgwYwNy5c6u0jyRJ0r5kgFQxDzzwAA888ECJ4x07dqzUAHnkkUeyfPlybrrpJhYsWMCsWbNo3Lgxp512Gp06dSq37x133EGnTp2YNm0aN998M3l5eTRr1ozTTz+dkSNH7pN6hg8fzpIlS1Ka5njFFVfw6KOPcu+997J9+3aaNGnCOeecwy9+8Yui/Q+rSs2aNZk/fz6jR4/mlltuoV69egwePJiRI0eWu+dmYd+FCxeSk5PD1KlT+fLLL+nSpQtLly5lzJgxJdpPnz6dK6+8kgkTJrBz507OPPNMevbsSQiBOXPmMH36dH73u99x4403csghh9CiRQt69+7NwIEDi67Ro0cPFi5cyM9//nPGjx9P06ZNueqqq8jMzGT48OGJP/e5555LmzZtmDRpEmvXrqV169Y89NBDDBkypNT22dnZjBs3LtGiSEncdNNNzJs3L/F9onvbR5IkaV8JSVeAPJB16tQprlixoszzb775Jscff/w+rEjV3dy5cxk4cCCLFi1ywZMDyJQpU7j++utZvXp1yiu+ppN/R0mSlF4Hwj2QIYRXYozlj+TgPZDSXpkxYwYtWrSo8qmn2nfy8vK4//776dq1634VHiVJkvYlp7BKCX322WcsWLCA5cuXs2TJEu6+++5Kmeao9Prwww9ZvHgxixYt4u2332bKlCnpLkmSJKnaMkBKCW3ZsoXBgwdTr149Ro4cyVVXXZXuklQJVq1axYUXXkijRo0YP348ffv2TXdJkiRJ1ZYBUkqoZcuW5W4xov1T9+7d/b1KkiQl5Pw7SZIkSVIiBkhJkiRJUiIGSEmSJElSIgZISZIkSVIiBkhJkiRJUiIGSEmSJElSIgZISZIkSVIiBkhJkiRJUiIGSO2V5cuX07VrV+rWrUsIgeeeew6ANWvW0Lt3bxo0aEAIgVmzZvHcc88Va5OKli1bkp2dXam1V2fr1q0r+t7SZdasWYQQWLduXdpqKEvS2gq/xxtvvHHfFCZJknSQqJnuAvZ7z96W7gr+R48b9rrrc889R48ePco8f+GFF/Lwww8D8OWXXzJw4EBCCNx+++3UrVuX448/HoDs7GzeeustJk6cSOPGjenatSsbNmzY67q0f8nLy+OXv/wlJ598Mv369Ut3OfvEunXraNWqFQBXXHEFv/nNb0q0mTdvHgMGDABg5syZJf6nyCeffMI999zD/Pnzeffdd/niiy/IysqiR48eXHnllXz3u9+t8s8hSZKUhAFSxVx66aV07969xPHWrVsX/fzuu++yYcMGpkyZwqhRo4qO79q1i5deeomrrrqKMWPGFB1v2bIln3/+OYcddljK9axZs4YaNQ6egfJjjjmGzz//nEMPPTTdpeyVvLw8brrpJoYOHXrQBMhCGRkZzJkzh7vvvrvEn/UHH3yQjIwMdu3aVaLfG2+8QZ8+fdi0aRMXXHABl156KRkZGbz99tvMnTuXBx54gA0bNpCVlbWvPookSVKZDJAqpkuXLlx00UXltvnwww8BaNCgQaLjNWrUICMjY6/qqVWr1l7121+FEPb6u1J6nXfeecydO5cnn3yyWHj+6KOPeOqpp+jfvz+///3vi/XZsWMH559/Pp999hnLly/nlFNOKXb+V7/6FVOmTCHGuE8+gyRJUkUOnqEdVYru3btz5plnAnD55ZcTQii6T/GYY44B8v/RG0IghABQ5j2QW7du5eqrr6ZVq1bUqlWLo446iv79+/PGG28UtSnrHsj777+fU045hdq1a9OgQQP69u3LqlWrirWZOHEiIQRWrlxJTk4ORx55JHXq1KFPnz6sX7++xDUrqqdLly4ce+yxpX4v2dnZ1K5dm08++aTc72/GjBmcdNJJ1K1bl/r169OhQwcmTJhQdL60eyAL7/tbtGgR48ePJysri8MPP5yzzz67aHrwtGnTaNu2LRkZGXTu3Jm//vWvpX4Xe0p6z+ULL7zAkCFDaNWqFRkZGTRu3JgBAwbw1ltvFbtW4chpbm5u0Z+B3Ue0v/rqKyZPnkz79u2LrnPRRRfx3nvvlXjPZ555ho4dO5KRkUHLli33OkjNmjWLdu3akZGRQfv27Xn00UeLzn399ddkZWXRu3fvUvt2796drKws8vLyKnyfY489llNPPZWHHnqo2PFHH32UGjVqcMEFF5Toc9999/GPf/yD22+/vUR4BKhZsyY33HADLVq0qPD9JUmS9gVHIFXMjh072Lp1a4njRxxxBLVq1WLcuHF069aNW2+9tWi6a926dWnSpAknn3wyOTk59O3bt+h+r7Js2bKF733ve2zYsIHs7Gw6duzIJ598wrPPPssrr7zCd77znTL7jhkzhqlTpzJo0CAuu+wytm/fzrRp0+jatSsrVqygTZs2xdoPHz6chg0bMn78eDZt2sSdd97JRRddxAsvvJBSPcOHD2fkyJG8+OKLnHbaaUV9d+7cybx58+jXr1+J0dfdzZw5k1GjRtG3b9+iqb9r1qzh+eefL/e7KjRu3Dhq1arF9ddfz/vvv88dd9xB3759GTJkCA8++CBXXHEFO3fuZPLkyfTv35933nmn0qbC/v73v+f9999n6NChNG/enPXr13Pfffdxxhln8Prrr5OZmUlmZia5ubkMHTqUM844gxEjRgDQpEkTAGKMXHDBBTz55JNkZ2dz9dVXs3HjRu69916WLVvGq6++SqNGjQB4/vnnOeecc8jKymLChAmEEPjNb35T7vdbmoULF7Jx40auuuoq6tWrx6xZsxgyZAghBAYNGsQhhxzCJZdcwuTJk3nvvfeKTRNdv349y5Yt42c/+1niadQXX3wx1157Ldu2baNhw4ZA/vTV8847r9Ta//jHP1KrVi2GDBmS0ueSJElKFwOkisnJySEnJ6fE8cKFP3r16sWhhx7KrbfeWmK661FHHUVOTg4nnHBChdNgb7jhBtauXcvChQs555xzih0vb5Rp+fLl3HPPPUydOpXRo0cXHb/44otp3749EydOLFrsp1BWVhZ//OMfi143atSIa6+9llWrVtG+ffvE9QwaNIgxY8aQm5tbLED+4Q9/YMeOHRWuFvvEE0/Qvn175s+fX267stSoUYNly5ZRs2b+f7Zff/01t99+O9u2beONN97g8MMPB6Bhw4aMHj2aRYsWcd555+3Ve+1p0qRJRdcvdMkll9ChQwceeOABxo4dy+GHH86QIUMYOnQorVu3LvFnYO7cucyfP58FCxZw7rnnFh3v378/nTt35q677uKWW24B4LrrrqNOnTq8+OKLNG3aFMgf5T3uuONSqnvlypX87W9/44QTTgDyR807dOjAddddx4ABA6hZsybDhg3jtttu4+GHH2bs2LFFfR966CFijCmtAjxo0CCuueYa5syZw6hRo1izZg0vv/wyv/jFL0ptv2rVKo477riDbqq2JEnafzmFVcVcc801/OlPfyrxOPvssyvtPfLy8njsscc4/fTTi4W1QqVNtSw0Z84cDjvsMPr378/WrVuLHoVTN5csWVKizxVXXFHsdeFqs++++25K9dSrV48f/ehHzJkzp9hiKLm5uTRv3pxevXqV+7nr16/Pxo0beemll8ptV5bLL7+8KDwCdOvWDchfIXf3cFd4/J133tmr9ynN7tffsWMHH330Ed/61rc47rjjePnllxNdY/bs2WRlZdGlS5div7sWLVrQunXrot/dBx98wIoVKxg0aFBReARo2rQpF154YUp1n3XWWUXhEfJH0keMGMHGjRuLpvm2bduW008/ndzc3GJ9H3zwQbp06ZJSaG3cuDF9+vQpmsb64IMP0rhxY374wx+W2v5f//oX9erVS+kzSZIkpZMjkCrm+OOP56yzzqrS99iyZQvbt2/nxBNPTLnv6tWri7Y4KE1pUw0L780sVDi18OOPP065nmHDhvHwww/zxBNPMHDgQDZu3MjSpUu5/vrrK5zmOHbsWJYuXcppp51Gq1at6N69O/369eO8884rNzSX9TkKp0QeffTRpR4v/HyVYdOmTYwdO5YFCxawbdu2YucaN26c6BqrV6/mvffeIzMzs9TzX3/9NQBr164FKDW4pToCWd411q5dy6mnngrk/14vvfRS/vKXv3Dqqafy4osv8vbbb3Pttdem9H6QPxp+wQUX8M477/DII48waNCgMqcS16tXj3/9618pv4ckSVK6GCCVNklC057y8vKoU6cOjz/+eOI+hxxySKnH95wqm6SeHj160LJlS3Jzcxk4cCAPP/wweXl5iaY5tmvXjjVr1vD000/zzDPP8PTTTzNz5kx69+7Nk08+WWadFX2OJJ+vrM9WGNrKk5eXR+/evdm4cSM5OTl85zvfoW7dutSoUYMxY8YkWmCm8DqtW7dmxowZpZ6vXbt2sbr35s/HnpJeY+DAgfzkJz8hNzeXU089tWjbjR//+Mcpv2fh/Y4jR45k/fr1XHzxxWW2bd++PS+//DK7du1y9V1JkrRf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\n", "text/plain": [ "<Figure size 1080x720 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "idx = np.arange(0,15, step=15/40)\n", "#plt.subplot(1,2,2)\n", "plt.bar(idx,eff_NN, width=.2, label='Efficiency simulated by NN')\n", "plt.bar(idx,eff_MC, width=.2,alpha=0.5, label='Efficiency simulated by MC')\n", "plt.legend(fontsize='xx-large')\n", "plt.tick_params(labelsize='xx-large')\n", "plt.xlabel('ET (GeV)', fontsize=20)\n", "plt.ylabel('eff (a.u.)', fontsize=20)\n", "#plt.subplot(1,2,1)\n", "#a_MC=plt.hist(triggered_true_inner_MC/1000,bins=40,histtype='step', range=(0, 160), label='MC Triggered events')\n", "#a_NN=plt.hist(triggered_true_inner_NN/1000,bins=40,histtype='step', range=(0, 160), label='NN Triggered events')\n", "#b=plt.hist(test_true_hist/1000,bins=40,histtype='step', range=(0, 160), label='ET from Tracking')\n", "#plt.tick_params(labelsize='xx-large')\n", "#plt.xlabel('ET (GeV)', fontsize=20)\n", "#plt.ylabel('dN/dET (a.u.)', fontsize=20)\n", "#plt.legend(fontsize='xx-large')\n", "fig = plt.gcf()\n", "fig.set_size_inches(15,10)\n", "\n", "plt.savefig(PATH+'/eff_2.png',dpi=100)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 303, "metadata": {}, "outputs": [], "source": [ "efficiencies={\n", " 'MC':total_MC,\n", " 'NN':total_NN,\n", " 'true':test_true\n", "}" ] }, { "cell_type": "code", "execution_count": 304, "metadata": {}, "outputs": [], "source": [ "with open(PATH+'/efficiencies_full.pickle','wb') as f:\n", " pickle.dump(efficiencies, f, protocol=2)" ] }, { "cell_type": "code", "execution_count": 308, "metadata": {}, "outputs": [ { "data": { "image/png": "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Vu5vKiKSKHXuS4Hf/e53TJs2rawZPlpGRga/+tWvuP/+++Nu36JFi7Ir6P32249WrVqVvS8pKQFg8uTJHHzwwbzzzjssW7aMXbt2lW2/fv169ttvP7744gv27t1baf9LlixhypQpZGdnc/311/PII4+Ql5dXro67x7yKd3fuu+8+Vq5cycqVK1m7di0DBgyI+13y8vL429/+RnFxMb179+bDDz+MW7emPvvss7KOew8++GCd7fd73/te2fsxY8YwevRoVq1axUMPPVT2KF2849O8eXN69OjBSy+9FHf/pX9PiHRsLCkpwd3rLH4RCTdd8afAAQccwC9/+UumTZvGiBEjKq2/9tpr6dWrV1kSr42ioiKysrLYb7/9mDlzJnv27AEiHdIuvfRSHn/8cR555BHuvvturr/++nLbPvbYY2XvZ8yYwbJly5gwYUK5OkcffTQbNmxg6dKl9OrVi6+//pq0tDROO+00HnjgAfr370+LFi346KOPyMzMjBvnmjVryMnJIScnhyVLlvDhhx9y9NFH1/p7Rzv88MP3uaWgbdu2fP3113HXFxUVlX2/mTNnlpUPGDCAKVOmcM899wCRpv527dphZkyfPp1hw4YxYcKESidU8Rx33HGMHTuWrVu30rZtW5555hlycnL24ZtJgzY5B4rW1Wyb9I4wdlVy4pEmRYk/Ra677rq4HbPat2/P0KFDmTx5cq33f9VVV3Huuefy9NNP069fv7Kr1DvvvJOTTjqJk046idzcXHr16sXgwYM55phjarT/li1b8uSTTzJmzBiKi4tJS0tj0aJFXH755RQUFNC9e3fcnQ4dOjB37ty4+7nnnnt49dVXadasGcceeyyDBg2qVKfiPf6BAwdWOhGpreh7/F27duWRRx4pt/7888/niiuu4N57743Z8z4/P59hw4aRmZlJ7969Wbt2LQC33noro0aNokuXLjRr1oxx48ZxzjnnAJGr+FmzZnHmmWfy/e9/n9NPP73aODMzM/n973/P8ccfz2GHHcaxxx5bdjtAmqCidZBfVLNt8vV7kMRYU2xC7Nmzp1fsif7BBx+US26peJxPZF9s376dNm3aUFJSwtChQxkxYgRDhw6tVK/ib10aofz02iX+mm4jTYqZLXf3ntXVC+0Vv5K0NDb5+fksWrSIHTt2MGDAAM4+++xUhyQijVBoE79IYzNp0qRUhyAiTYB69YuIiISIEr+IiEiIKPGLiIiEiBK/iIhIiCjx1yMz46KLLipbLikpoUOHDuWmqH3hhRfo2bMnxxxzDEcffXSlwXXq26RJkzAzNm3atM/7uuSSS8qehe/bt2/cyX8qys/PJzMzs9zUvE8++WTZ+zZt2nDUUUeRm5vLxRdfnHA8M2bMoEOHDuX2W3EK3m3btlU5imJN5efnx+yk98c//pFFixbV2eeIiMQT3l79tRkZqyoJjJr1ve99j9WrV5cNeLNw4cJyo9qtXr2a0aNHM3/+fI4++mhKSkp4+OGH6y7GGvrss89YuHAhHTt2TFkMpcaOHVvpJKh0zPy+ffsyadIkevas9vHVSs4777wqZ7grTfxXXXVVpXV79uwpG/xnX/3pT3+qk/2IiFQnvFf8pSNj1dW/BE8iBg0axPz5kSl8n3jiiXKT5EycOJFbbrmlbMja5s2bx0w4+fn5DB8+nAEDBpCdnc2cOXO48cYbycnJYeDAgezevRuIJJNevXrRpUsXRo4cibtTUlJCr169WLx4MRCZ6e6WW26JGevYsWOZOHFi3Jn19uzZw/XXX09OTg5du3blvvvuAyJT+p588sn06NGD0047jc8//zzu8dizZw+XXHIJXbp0IScnZ59GK0yGvLw81qxZQ25uLjfccAOLFy+mX79+/OpXvyobMvfss8+mR48edO7cudyJ2osvvkj37t3p1q0bp5xySqV9//Wvf2XQoEEUFxeXaw3Jzs5m3LhxdO/enZycnLL5CzZu3Mipp55K9+7d+c1vfsMPfvCDOmmJEZFwCW/iT5Hzzz+fWbNmsWPHDt59912OP/74snWrV6+mR48eCe1nzZo1zJ8/n+eee45f//rX9OvXj1WrVpGWllZ2YjF69GiWLl1a1srw/PPP07x5c2bMmMGVV17JwoULefHFFxk3blyl/c+bN4/MzMwqp359+OGHWbt2LW+//TbvvvsuF154Ibt372bMmDHMnj2b5cuXM2LEiLgnFhCZgnb9+vWsXr2aVatWcemll8asN3ny5LLm+H79+iV0jBIRfcsgNzeX4uLyozlOmDCBH/3oR6xcuZI///nPAPzrX/9i/PjxZbcFpk+fzvLly1m2bBn33nsvmzdvZuPGjVxxxRU888wzvPPOOzz99NPl9jtlyhT+/ve/M3fu3JizNLZv354VK1Zw5ZVXlt0auO222+jfvz8rVqxg6NChrFtXhy1WIhIa4W3qT5GuXbtSUFDAE088kdAY7fEMGjSobCrePXv2lJumt3Rq3ldffZWJEyfy7bffsmXLFjp37syZZ55J586dueiiizjzzDNZsmQJLVu2LLfvb7/9lvHjx7NgwYIqY1i0aBG//e1vad488jM64IADWL16NatXr+bUU08FIlf0hx56aNx9/PCHP+TTTz9lzJgxDB48OO5MfrGa+utCdU39sRx33HFl0+8C3HvvvTz77LNA5PbIxx9/zMaNG/nZz35WVq90Ol2ARx99lKysLObOnUuLFi1ifkbpuP49evRgzpw5APzzn/8s+5yBAweWTfUrIlITuuJPgSFDhnD99deXa+YH6Ny5M8uXL09oH9FT8VacprekpIQdO3Zw1VVXMXv2bFatWsUVV1xRNmUswKpVq8jIyOCLL76otO81a9awdu1aunXrRnZ2NoWFhXTv3p3//ve/5erFmnrW3encuXPZtLyrVq2q8gSiXbt2vPPOO/Tt25epU6dy+eWXJ/T9E3XLLbeUXc3XlehpeRcvXsyiRYtYsmQJ77zzDj/5yU/YsWNH3Gl5Abp06UJBQQGFhYVxP6P071s6LS+gqXlFpE4o8afAiBEj+OMf/1hpWtUbbriBO++8k48++giAvXv3cvfdd9fqM0qTfPv27dm+fXu5meXmzJnD5s2bef3117n66qvZtm1buW1zcnL48ssvKSgooKCggKysLFasWMEhhxxSrt6AAQN48MEHyxLTli1bOOqoo9i4cSNLliwBYPfu3bz33ntx49y0aRN79+7l3HPP5fbbb2fFihW1+r7xjB8/vuwkpDYSmZa3Xbt27L///nz44Ye89dZbAPz0pz/ltddeK5utb8uWLWXb/OQnP+Ghhx5iyJAhbNiwIeFYTjzxRJ566ikAFixYwNatW2vzlUQk5JT4UyArK4trrrmmUnnXrl255557uOCCCzjmmGPo0qVLlR3jqpKRkcEVV1xBTk4OZ599Nr169QIiiTYvL49p06Zx5JFHMnr06JixJOLyyy+nY8eOdO3alW7duvH444/TsmVLZs+ezU033US3bt3Izc3lzTffjLuP9evX07dvX3Jzc7nkkkv4n//5n5j1ou/x5+bmlt3O2FcV7/FXjPXAAw+kT58+dOnShRtuuKHS9gMHDqSkpISuXbvyhz/8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\n", "text/plain": [ "<Figure size 576x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "four_cells_diff_NN= np.array([\n", " four_cells(test_reco_NN_test[i]).sum()- test_true[i].sum() for i in range(len(test_reco))\n", "]) \n", "four_cells_diff_MC= np.array([\n", " four_cells(test_reco[i]).sum() - test_true[i].sum() for i in range(len(test_reco))\n", "])\n", "plt.hist(four_cells_diff_NN/1000, bins=30, label = 'NN max 4 cells ET - E tracking',histtype='step')\n", "plt.hist(four_cells_diff_MC/1000, bins=30, label = 'MC max 4 cells ET - E tracking', histtype='step')\n", "plt.legend(loc=2);\n", "plt.xlabel('Sum of 4 max cells ET - ET true (GeV)')\n", "plt.ylabel('dN/dET')\n", "fig = plt.gcf()\n", "fig.set_size_inches(8,6)\n", "plt.savefig(PATH+'/four_cells_diff_combined.eps', format='eps', dpi=100)" ] }, { "cell_type": "code", "execution_count": 309, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "four cells diff mean 110.7673110961914, std 1938.0076904296875\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAGECAYAAADA9NJLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XucXVV9///XBwIkKBIugWKCBL+iIF4Q8wVa/PZLwXIXrKINKgSkolVaL6BG7VdQgQban6LfVisKEtRyKVahBoUIUpSvIAEBg0CJGMkkCIEQLiVRwM/vj70mHiZnZs7cJ2tez8djHnPO2mvvvfbZ+8x777XXnBOZiSRJ2rBtNNYNkCRJQ2egS5JUAQNdkqQKGOiSJFXAQJckqQIGuiRJFTDQJUmqgIGujkTEfhHR1fJ8aUS8fgzbExHxtYh4NCJ+OlbtUB1aj+eIOC0ivjHG7fmLiFgWEU9GxGvGsi3DKSKmRcQ9ETF5FNf504jYfbTWN5YM9GEUEbtExNqx/mMwXpWTgt+XP1KtP38cEXe2PH+2vI7dzz/eZnGvA/4cmJGZe43ypgAQETtExFciYkVp530RcUFE7DoK674gIk7vZdqIHoflRCoj4iUjsfwNVTkpWNPj2P6niPh4y/O15fjufn5nL4v7R+CkzHx+Zv5sNLcDoOzfn0fERi1lp0fEBeXxzFJnQY/5vhERp/Wx6LnA1zJzbcs8fx4RP4yIJyLikYi4LSI+2l/oR8TkiFgdEfu3mfa5iLisPP1H4NP9bXMNDPTh9c/AzWPdiHFuRfkj1frzk8zcvfs58CP+8Mfs+Zl5Zpvl7AQszcz/breSiJg0khsREdsA/w/YHPhfwBbAnsB/0pxojKUROw4j4nXA/xiJZVfiDT2O7ZMy88yWY/s9wE9apvd25bgT0DbsR/rYbvFCYHY/dfaJiH07WVhEbAbMAb7RUvYW4DLgX4GdMnMb4C+BGcCOfS2vnBRcAhzbYz0bA0cD80vRFcCfRcQOnbRzQ2agD5OImA2sBq7pp95pEfFv5Uz2iXIW/NKI+FhEPFS62Q5sqX98RNxV6t4XEe9umfbRiLix+w0eEX9drnT7O7N9XUT8v3J2uywijivlm0XEP0bE/RHxYET8S0RM6WDb94qIRRHxeJnvs/3NMxQRcQLwVeCPy1XOp8rVf1d5TX4DfK3UfVdELImIVRFxRUS8sGU5GRHvjYh7y+v7mYj4HxHxk7Itl0bEpr0044PA48AxmfnLbKzOzK9l5v9tWcc+La/17RGxX8u0vvZt9/acXI6LByLi+DLtRODtwEfK9v9Hy3wdHYeDUY6z/wuc1EHdjl/biNgqIr4bESujuYXy3YiYUaZtXV6HN5Tnzy/789he1rt1ND0IK8qyvtMy7fBorv5Wl33yqg62Y3J5rz5S5rs5Irbv7BUbuPIefBLYGLg9In5ZypeWY/sO4L8jYlJE7BYR15V23RkRR7Qs54KI+GJEfK8cIzdExB9FxDnldbk7+u/KPxv4VPR9AnE20LanqI29gdWZ2VXaGMBngU9n5lcycxVAZt6TmX+TmfeWehtFxNyI+GXZD5dGxNZlmfOBN0fE5i3rOYgm275XlrcWuAU4kNplpj9D/AFeAPwXzRnlacA3+qh7GrCW5qCbBFwI/Ar4BLAJ8C7gVy31D6O5IgrgfwNPAXuWaRsB15dl7gI8Crymn7a+CHiC5gx2E2AbYI8y7Ryas9mtaa44/wP4+zJtP6CrZTlLgdeXxz+hCTaA5wP79LLu5yyjjzZeB/xVP3WOA37cY9nPAGcBmwFTgP2Bh2munDejCaPrW+bJsr0vAHYHfksThC8GtgR+AczpZf03Aqf108bpwCPAoWVf/Xl5Pq2Dfdu9PZ8u++nQMn2rMv0C4PTBHoeDPM4/DHy+5bV7SR91O35tyzH4Zpreji2AfwO+07KsA4HfANsBXwEu62O9C2iu2rYqr9v/LuV7Ag/RhMrGNFeKS4HN2hzP61474N0074PNy3yvBV7Qy7rXLaPT47af1+8lPZZ9W9m3U8q2LQE+DmxKc6w/Abys5fh4uLR3MnAtzd+ZY8t2nA78sJ/170IThH9Vyk4HLiiPZ5Y6zweWt7x236CX9wXwPmBBy/NdyzJm9vNafIDm/TaD5n38ZeCilun/Bbyj5flFwDk9lvEF4LPD+X4Yjz9eoQ+PzwDnZeayDuv/KDOvysxnaP54TQPmZebTwMXAzIiYCpCZC/IPV4D/CVxN08VLZv6e5g36tzR/PM/O/u+3vR34QWZelJlPZ+YjmXlbOVt+F/DBzFyVmU8AZ9J/lxvA08BLImLbzHwyM2/so+4LyxVF68/zOlhHJ34PnJqZv83MNTTben5m3pqZvwU+RnNVP7NlnrMy8/HMvBNYDFydmfdl5mM0Z/i9XcVsSxMyAETEEWVbnoiIq0vxO4ArM/PKzPx9Zi4EFtGEc5/7tnia5url6cy8EngSeFkf2z/Q47BjEbEjTbh9cgCzdfTalmPwW5n5VDnuzqA5waFMv5rmfXINzUnQu3uuqLRxB+AQ4D2Z+Wh53f6zTH4X8OXMvCkzn83M+TQnGfv0sw1P05xwvKTMd0tmPt5H/e/0OLbf1c/yB+ILmbmsHNv70ITpvMz8XWZeC3yX5kS927dLe9cC3wbWZuaFmfkszUlPf1foCfwf4JPRdJe3s5Zmf3VylT6V5qSj27bld+v76OLyuj0VEceU4ncDn8jMrvI+Pg04qqXn4EJKt3tEvAA4kj90t3d7oqy/agb6EEXEHsDrgc8NYLYHWx6vAR4ub7Lu59C8WYmIQ6LpVl8VEatpwqD7jUBmLgV+SHPG/M8drHtH4JdtyqfRXIXc0v3HCPh+Ke/PCcBLgbtLl+ThfdRdkZlTe/y0vQ8+CCuzZbANzT3AX3c/ycwnaa6Qp7fU6bkvej5/fi/regRYd08uM6/IzKk0XfHd3fQ7AW9p/QNPM5hvB+h/3wKPlJO+bk/11p5BHofd874oWgZy9VLtHJqTi8cGsOiOXtuI2DwivhwRv46Ix2l6naZGcy+027nAK2gGVD3Sy/p2BFZl5qNtpu0EnNxjX+xIc4z05evAVcDFpRv/7IjYpI/6b+xxbH+ln+UPROuJ2guBZeWkvtuvGZ5je51yInk/cGIf1b4CbN99W6QPj9L0wHTr3o+t76PZ5X10K01PAjT77tst++0u4Fmg+9bHhTT3yKcDRwFL2lzYbEFzK6pqBvrQ7UcTpvdHc+/2FJp7OrcOdcHlrPhbNKM0ty8H+pU0XbTddQ4F/pjm6uUfOljsMtoPanqY5k2+e8sfoy2zGcjTp8y8NzOPpukSPQu4bBivugei53cBr6D5YwBAadM2NF2EQ3UN8MZoGQXcxjLg6z3+wD8vM+d1sm/70XNb92OQx2Fm3p8tA7l6qXYA8A8R8ZuyfICfRMTbOmxvX06m6XnYOzNfAPxpKQ9YN8jpyzR/uP86eh9dvwzYurt3q820M3rsi80z86K+Glau8j+VmS8H/gQ4nB6DsEZR6z5fAezY4/h7EcNzbPf0dzS3BDdvN7H0LH6Kpoeor+P3DpoT/25307T3Tf2sfxlwSI99Nzkzl5f1308zkPbtwDE0x0lPuwG397OeDZ6BPnTn0gTkHuXnX2ju4x00DMvelOae0UrgmYg4hJaBHRGxLXAe8Fc09wTfUAK+L98EXh8Rby0Da7aJiD3Kmf5XgM9FxHZl+dMjot/tiIh3RMS0sozus+Bn+5pnlPwrcHxE7FEC9EzgptKrMVSfpblP+/VoBntFRGxBcwx0+wbNPjkoIjaOZoDVftEM+Opz33bgQZr70d1G8jiE5g/xq1uWD/AGmq7codqC5mRydRnsdGqP6d3/tvhOmhOgC3tcvQOQmQ/QdOV/MZqBdptERPfJwVeA90TE3mVfPS8iDiv7rFcR8WcR8cqyvsdpuuDHw7F9E/DfNAMjN4lmsOUbaG7ZDavMvA74Oc3fmN58neZ4PriPOj+l6XmZXpabNCdzp0YzeHWrsm924Q9X39Acy2dExE6w7n/Zj+yx7Pk0gzX3pfkbt055778WWNjnhlbAQB+ict/vN90/NPc512bmymFY9hM098cvpemuehvNvfJu5wKXl3u0j9B0fX81mn+p6m2Z99N07Z4MrKIZaPPqMvmjNANtbixdnz+g73u23Q4G7izdtZ8HZvfo+m71wlj//9Df3ME6Biwzr6G5B/gt4AGawOtkTEAny36Y5j7mWuDHNPfobqMJp78udZbR3M/7OE1wL6MZWLZRB/u2P+cBLy/dkN8ZyeOwbMtDPZYPza2iNX3O2JlzaAZ6PUwz+On73RMi4rXAh4Bjy22ps2iuVOf2sqxjaEL3bppBcB8o7V9Ecx/9n2he7yU0A9T680c0/1b1OE1X73/S8m9XbfxHj2N7OE541pOZvwOOoBkz8DDwRZrX6O6RWB/NVfrWvU0s++bUfur8jmaw3jtayi4B3lrKltFsy6U0f9v+rVT7PM174+qIeILmGNm7x+IvoznBvqac2LU6ArguM1f0uYUViOYkSZKkkRUR02i6x18zTCeDnazzJuCEzFw8GusbSwa6JEkVsMu9QhHx9jbd2n19zKQkaQPnFbokSRXwCl2SpAqM1of8D8q2226bM2fOHOtmSJI0am655ZaHM7OTD/V6jnEd6DNnzmTRokVj3QxJkkZNRPy6/1rrs8tdkqQKGOiSJFXAQJckqQLj+h66JKkOTz/9NF1dXaxd29unQk88kydPZsaMGWyySV9f4Nc5A12SNOK6urrYYostmDlzJhGdfqlgvTKTRx55hK6uLnbeeedhWaZd7pKkEbd27Vq22WYbw7yICLbZZpth7bEw0CVJo8Iwf67hfj0MdEnShBARHHPMMeueP/PMM0ybNo3DDz98Xdn3vvc9Zs2axW677cauu+7KKaec0nZZM2fO5M1v/sM3P1922WUcd9xxAFxwwQVstNFG3HHHHeumv+IVr2Dp0qXDu0E9eA9dkjTq9p13LctXD983qE6fOoUb5u7fZ53nPe95LF68mDVr1jBlyhQWLlzI9OnT101fvHgxJ510EgsWLGDXXXflmWee4dxzz+11eYsWLeLOO+9k9913X2/ajBkzOOOMM7jkkksGv1EDZKBLkkbd8tVrWDrvsGFb3sy5Czqqd8ghh7BgwQKOOuooLrroIo4++mh+9KMfAXD22WfziU98gl133RWASZMm8d73vrfXZZ1yyimceeaZfPOb31xv2uGHH87111/PPffcw8te9rJBbNHA2eUuSZowZs+ezcUXX8zatWu544472HvvvddNW7x4Ma997Ws7XtZb3/pWbr31VpYsWbLetI022oiPfOQjnHnmmcPS7k4Y6JKkCeNVr3oVS5cu5aKLLuLQQw8d0rI23nhjPvzhD/P3f//3bae/7W1v48Ybb+RXv/rVkNbTKQNdkjShHHHEEZxyyikcffTRzynffffdueWWW9ar/+yzz7LHHnuwxx578MlPfvI504455hiuv/567r///vXmmzRpEieffDJnnXXW8G5ALzq6hx4RU4GvAq8AEngncA9wCTATWAq8NTMfjWYc/ueBQ4GngOMy89aynDnA35XFnp6Z84dtSyS1NdjBR50MMpI2RO985zvZcssteeUrX8l11123rvzDH/4wb3rTm3jd617HS1/6Un7/+99zzjnn8KEPfYjbbrut7bI22WQTPvjBDzJv3jz233/998txxx3H2WefzRNPPDFSm7NOp4PiPg98PzOPiohNgc2BjwPXZOa8iJgLzAU+ChwC7FJ+9ga+BOwdEVsDpwKzaE4KbomIKzLz0WHdIknPMdjBR50OMpI2NDNmzOD973//euWvetWrOOecczj66KN56qmniAgOO6z/984JJ5zA6aef3nbapptuyt/+7d+2Xd9wi8zsu0LEC4DbgRdnS+WIuAfYLzMfiIgdgOsy82UR8eXy+KLWet0/mfnuUv6ceu3M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\n", "text/plain": [ "<Figure size 576x432 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "four_cells_diff= four_cells_diff_NN-four_cells_diff_MC\n", "plt.title('4 max_cells ET from Geant4 - 4 max cells ET from NN (GeV)')\n", "plt.hist((four_cells_diff)/1000, bins=30, label = 'MC-NN', histtype='step');\n", "plt.xlabel('E_T (GeV)')\n", "plt.legend();\n", "print('four cells diff mean {0}, std {1}'.format(four_cells_diff.mean(), four_cells_diff.std()))\n", "fig = plt.gcf()\n", "fig.set_size_inches(8,6)\n", "plt.savefig(PATH+'/four_cells_diff.eps', format='eps', dpi=100)" ] }, { "cell_type": "code", "execution_count": 329, "metadata": {}, "outputs": [], "source": [ "i=7" ] }, { "cell_type": "code", "execution_count": 330, "metadata": {}, "outputs": [], "source": [ "X_A=test_true[i]\n", "X_B=test_reco[i]\n", "sample_nn=test_reco_NN[i]\n", "n_H_A=n_H_B=52\n", "n_W_A=n_W_B=64" ] }, { "cell_type": "code", "execution_count": 331, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x576 with 6 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplot(1,3,1)\n", "plt.gca().set_title('RealET from sim')\n", "plt.xlabel('X')\n", "plt.ylabel('Y')\n", "ax = plt.gca()\n", "im = ax.imshow(X_A.reshape(n_H_A,n_W_A)/1000)\n", "# create an axes on the right side of ax. The width of cax will be 5%\n", "# of ax and the padding between cax and ax will be fixed at 0.05 inch.\n", "divider = make_axes_locatable(ax)\n", "cax = divider.append_axes(\"right\", size=\"5%\", pad=0.05)\n", "\n", "plt.colorbar(im, cax=cax)\n", "plt.subplots_adjust(wspace=0.4,hspace=0.2)\n", "\n", "plt.subplot(1,3,2)\n", "plt.gca().set_title('RecoET Geant 4')\n", "#plt.imshow(X_B.reshape(n_H_B,n_W_B))\n", "plt.xlabel('X')\n", "plt.ylabel('Y')\n", "ax = plt.gca()\n", "im = ax.imshow(X_B.reshape(n_H_B,n_W_B)/1000)\n", "# create an axes on the right side of ax. The width of cax will be 5%\n", "# of ax and the padding between cax and ax will be fixed at 0.05 inch.\n", "divider = make_axes_locatable(ax)\n", "cax = divider.append_axes(\"right\", size=\"5%\", pad=0.05)\n", "\n", "plt.colorbar(im, cax=cax)\n", "plt.subplots_adjust(wspace=0.4,hspace=0.2)\n", "\n", "plt.subplot(1,3,3)\n", "plt.gca().set_title('RecoET from NN')\n", "#plt.imshow(sample_nn.reshape(n_H_B,n_W_B)/10)\n", "plt.xlabel('X')\n", "plt.ylabel('Y')\n", "ax = plt.gca()\n", "im = ax.imshow(sample_nn.reshape(n_H_B,n_W_B)/1000)\n", "# create an axes on the right side of ax. The width of cax will be 5%\n", "# of ax and the padding between cax and ax will be fixed at 0.05 inch.\n", "divider = make_axes_locatable(ax)\n", "cax = divider.append_axes(\"right\", size=\"5%\", pad=0.05)\n", "\n", "plt.colorbar(im, cax=cax)\n", "plt.subplots_adjust(wspace=0.4,hspace=0.2)\n", "\n", "fig = plt.gcf()\n", "fig.set_size_inches(10,8)\n", "plt.savefig(PATH+'/single_event_{0}.png'.format(i))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }