Newer
Older
HCAL_project / trigger_efficiency_cond_GAN.ipynb
@Davide Lancierini Davide Lancierini on 8 Feb 2019 138 KB Fixed bugs
{
 "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.condDCGAN import *\n",
    "from architectures.utils.toolbox import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "task='TEST'\n",
    "\n",
    "PATH='HCAL_condDCGAN_3dim_test13'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LEARNING_RATE:0.00015\n",
      "BETA1:0.5\n",
      "BATCH_SIZE:32\n",
      "EPOCHS:20\n",
      "SAVE_SAMPLE_PERIOD:600\n",
      "SEED:1\n",
      "d_sizes:{'conv_layers': [(4.0, 4, 2, False, 0.8, <function lrelu at 0x7f6e45bf10d0>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d513a20>), (64, 4, 2, 'bn', 1, <function lrelu at 0x7f6e45bf10d0>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d08f198>), (128, 4, 2, 'bn', 1, <function lrelu at 0x7f6e45bf10d0>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d08f208>), (128, 4, 2, 'bn', 1, <function lrelu at 0x7f6e45bf10d0>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d08f278>)], 'dense_layers': [(128, 'bn', 0.8, <function lrelu at 0x7f6e45bf10d0>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f6e3d08f320>), (16, False, 0.8, <function lrelu at 0x7f6e45bf10d0>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f6e3d08f3c8>)], 'readout_layer_w_init': <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f6e3d08f400>}\n",
      "g_sizes:{'z': 128, 'dense_layers': [(256, False, 1, <function relu at 0x7f6e57020bf8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f6e3d08f4a8>), (512, 'bn', 1, <function relu at 0x7f6e57020bf8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f6e3d08f4e0>)], 'projection': [(128, 'bn', 1, <function relu at 0x7f6e57020bf8>, <tensorflow.python.ops.init_ops.TruncatedNormal object at 0x7f6e3d08f518>)], 'conv_layers': [(128, 4, 2, 'bn', 1, <function relu at 0x7f6e57020bf8>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d08f550>), (128, 4, 2, 'bn', 1, <function relu at 0x7f6e57020bf8>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d08f5c0>), (64, 4, 2, 'bn', 1, <function relu at 0x7f6e57020bf8>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d08f630>), (4.0, 4, 2, 'bn', 1, <function relu at 0x7f6e57020bf8>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d08f6a0>), (1, 4, 2, False, 0.8, <function sigmoid at 0x7f6e56ee61e0>, <tensorflow.python.ops.init_ops.VarianceScaling object at 0x7f6e3d08f748>)]}\n",
      "preprocess:normalise\n",
      "cost_type:FEATURE\n",
      "validating_size:100\n",
      "test_size:1000\n",
      "n_batches:1\n",
      "reco_path:/disk/lhcb_data/davide/HCAL_project/piplus_cells_inout/piplus/reco/\n",
      "true_path:/disk/lhcb_data/davide/HCAL_project/piplus_cells_inout/piplus/true_lowdef/\n",
      "discr_steps:1\n",
      "gen_steps:4\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",
    "    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 = hyper_dict['g_sizes']\n",
    "    preprocess = hyper_dict['preprocess']\n",
    "    cost_type = hyper_dict['cost_type']\n",
    "    validating_size=hyper_dict['validating_size']\n",
    "    discr_steps=hyper_dict['discr_steps']\n",
    "    gen_steps=hyper_dict['gen_steps']\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": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "dim=10\n",
    "test_size=10000\n",
    "if preprocess=='normalise':\n",
    "    train_true, test_true, min_true, max_true, train_reco, test_reco, min_reco, max_reco = load_data_conditional(true_path, reco_path, n_batches=2, preprocess='normalise', test_size=test_size)\n",
    "else:\n",
    "    train_true, test_true, train_reco, test_reco = load_data_conditional(true_path, reco_path, n_batches, dim, preprocess, test_size)\n",
    "#train_true, train_reco = delete_undetected_events(train_true,train_reco)\n",
    "#test_true, test_reco = delete_undetected_events(train_true,train_reco)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "#test_true[:,2,:].max()\n",
    "#pos_max=np.where(test_true[:,2,:]==test_true[:,2,:].max())[0]\n",
    "#test_true_deleted=np.delete(test_true, pos_max[0], axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "if preprocess != False:\n",
    "    draw_one_sample_conditional(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_conditional(train_true,train_reco)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "h=test_reco[0].shape[0]\n",
    "w=test_reco[0].shape[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "def HCAL():\n",
    "    \n",
    "    tf.reset_default_graph()\n",
    "    _, n_H, n_W, n_C = train_reco.shape\n",
    "    gan = condDCGAN(dim_y=3, n_H=n_H, n_W=n_W, n_C=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=g_sizes,\n",
    "                lr=LEARNING_RATE, beta1=BETA1, preprocess=preprocess,\n",
    "                cost_type = cost_type,\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_to_train= tf.trainable_variables()\n",
    "        \n",
    "    if task == 'TEST':\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",
    "    # Add ops to save and restore all the variables.\n",
    "    saver = tf.train.Saver()    \n",
    "    gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.1)\n",
    "    \n",
    "    with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess:\n",
    "        \n",
    "        sess.run(init_op)\n",
    "\n",
    "        \n",
    "        if task=='TEST':\n",
    "            print('\\n Evaluate model on test set...')\n",
    "            saver.restore(sess,PATH+'/'+PATH+'.ckpt')\n",
    "            print('Model restored.')\n",
    "            \n",
    "            gan.set_session(sess) \n",
    "            \n",
    "        test_reco_NN = np.ndarray(shape=(len(test_reco),52,64,1))        \n",
    "        for i in range(len(test_reco)):\n",
    "            \n",
    "            test_reco_NN[i]=gan.get_sample(test_true[i].reshape(1,3))\n",
    "            \n",
    "        done = False\n",
    "        while not done:\n",
    "            \n",
    "            \n",
    "            \n",
    "            if preprocess!=False:\n",
    "                draw_nn_sample_conditional(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_samples, save=False, is_training=False, PATH=PATH)\n",
    "            else:\n",
    "                draw_nn_sample_conditional(test_true, test_reco, 1, preprocess,\n",
    "                                          f=gan.get_samples, save=False, is_training=False, PATH=PATH)\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!=False:\n",
    "                draw_nn_sample_conditional(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_samples, save=False, is_training=False, PATH=PATH)\n",
    "            else:\n",
    "                draw_nn_sample_conditional(test_true, test_reco, 1, preprocess,\n",
    "                                          f=gan.get_samples, save=False, is_training=False, PATH=PATH)\n",
    "            \n",
    "            ans = input(\"Generate another?\")\n",
    "            if ans and ans[0] in ('n' or 'N'):\n",
    "                done = True\n",
    "\n",
    "        \n",
    "        return test_reco_NN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Convolutional Network architecture detected for discriminator A\n",
      "Convolutional architecture detected for generator A\n",
      "Discriminator_A\n",
      "Convolution\n",
      "Input for convolution shape  (?, 52, 64, 4)\n",
      "minibatch features shape (?, 5)\n",
      "Logits shape (?, 1)\n",
      "Generator_A\n",
      "Deconvolution\n",
      "Input for deconvolution shape (?, 131)\n",
      "Deconvoluted output shape (?, 52, 64, 1)\n",
      "Discriminator_A\n",
      "Convolution\n",
      "Input for convolution shape  (?, 52, 64, 4)\n",
      "minibatch features shape (?, 5)\n",
      "Logits shape (?, 1)\n",
      "Generator_A\n",
      "Deconvolution\n",
      "Input for deconvolution shape (?, 131)\n",
      "Deconvoluted output shape (?, 52, 64, 1)\n",
      "\n",
      " Evaluate model on test set...\n",
      "INFO:tensorflow:Restoring parameters from HCAL_condDCGAN_3dim_test13/HCAL_condDCGAN_3dim_test13.ckpt\n",
      "Model restored.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x720 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Generate another?n\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": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "if preprocess=='normalise':\n",
    "    \n",
    "    test_reco_MC = denormalise(test_reco, min_reco, max_reco)\n",
    "    reco_MC_hist = test_reco_MC.reshape(test_reco.shape[0], test_reco.shape[1]*test_reco.shape[2])\n",
    "    reco_MC_hist = np.sum(reco_MC_hist,axis=1)\n",
    "    max_E=np.max(reco_MC_hist)\n",
    "    \n",
    "    test_reco_NN_denormalised = denormalise(test_reco_NN, min_reco, max_reco)\n",
    "    reco_NN_hist = test_reco_NN_denormalised.reshape(test_reco_NN.shape[0], test_reco_NN.shape[1]*test_reco_NN.shape[2])\n",
    "    reco_NN_hist = np.sum(reco_NN_hist,axis=1)\n",
    "    max_NN = np.max(reco_NN_hist)\n",
    "    \n",
    "    test_true= denormalise(test_true, min_true, max_true, norm_space=True)\n",
    "    true_hist = test_true[:,2,:]\n",
    "    #true_hist = np.sum(true_hist,axis=1)\n",
    "    max_true_E=np.max(true_hist)\n",
    "else:\n",
    "    reco_MC_hist = test_reco.reshape(test_reco.shape[0], test_reco.shape[1]*test_reco.shape[2])\n",
    "    reco_MC_hist = np.sum(reco_MC_hist,axis=1)\n",
    "    max_E=np.max(reco_MC_hist)\n",
    "    \n",
    "    reco_NN_hist = test_reco_NN.reshape(test_reco_NN.shape[0], test_reco_NN.shape[1]*test_reco_NN.shape[2])\n",
    "    reco_NN_hist = np.sum(reco_NN_hist,axis=1)\n",
    "    max_NN = np.max(reco_NN_hist)\n",
    "    \n",
    "    true_hist = test_true.reshape(test_true.shape[0], test_true.shape[1]*test_true.shape[2])\n",
    "    true_hist = np.sum(true_hist,axis=1)\n",
    "    max_true_E=np.max(true_hist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Max NN 821.726548075676, Max_MC 6120.0\n"
     ]
    }
   ],
   "source": [
    "max_NN=test_reco_NN_denormalised.max()\n",
    "max_MC=test_reco_MC.max()\n",
    "print('Max NN {0}, Max_MC {1}'.format(max_NN, max_MC))\n",
    "test_reco_NN_rescaled=(test_reco_NN_denormalised/test_reco_NN_denormalised.max())*max_MC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_reco_inner = get_inner_HCAL(test_reco_MC)\n",
    "test_reco_outer = get_outer_HCAL(test_reco_MC)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_reco_inner_NN = get_inner_HCAL(test_reco_NN_rescaled)\n",
    "test_reco_outer_NN = get_outer_HCAL(test_reco_NN_rescaled)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "indices_MC, triggered_true_MC, triggered_reco_inner_MC, triggered_reco_outer_MC = get_triggered_events(test_true, test_reco_inner, test_reco_outer)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "indices_NN, triggered_true_NN, triggered_reco_inner_NN, triggered_reco_outer_NN = get_triggered_events(test_true, test_reco_inner_NN, test_reco_outer_NN)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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Vi0mTpxI796981cqPf744/znP/8pdqtgeWvOyspiypQpPPTQQ8yZM4cTTzyROnXqlKn+0qpXrx7ffPNNkfavvvoqf0si5AZxBx54IECJtxVWhKoOrJ4A/gqcGUK4P8aYAxBCOI7cw9Hvzev3CHAFcAFwSYH7LwB+BuYUaJsFDATOAibljVcDOB9YQ+43EEqSJEmSVKU6d+5M586dt9tv991357HHHuPEE09kv/32Iysri4MPPpgaNWrw7rvv8sgjj7BmzZoqC6xGjRrFrFmzOOGEExgxYgRNmjThkUce4aefco+XLriSpzR9//jHPzJv3jwGDBjA4MGD6dSpEzk5OXzwwQc8+uij3HLLLQwcOHC79d1000288sorHH744Zx++ukccMAB/PjjjyxbtozZs2fzzDPP5B+UfumllzJ27FiOOeYY+vXrx8cff8ydd97JvvvuS05OznbnKm3NXbp0oWXLlowaNYp169aRlZVV5vpLq2PHjjz22GOMGTOG1q1bs/POO3PcccdxxBFHsMcee9ClSxcyMjJYsWIFkydPpmnTpnTr1q3U85RVlQZWMcYvQwhXATcBL4QQZpO7de8PwEfAhLx+i0MI9wIXhRB2Al4DegAnA9fEGAvuSXkCeB64JYTQAng/r19n4IwtVl1JUj63uEmSJClZdevWjXfeeYdbbrmFf/zjHzz00EPEGMnMzOSUU05hxIgRVVZb8+bNefHFF7nwwguZMGECdevW5ZRTTuHkk0+ma9eupKWllalvnTp1WLBgAePHj2fWrFnMnj2b9PR0WrZsyWmnnVbirWm77bYb//73v7n++uuZM2cO9957LzvvvDOtWrXioosuYu+9987ve91117Hzzjtz++23c8kll7Dffvsxe/Zs7rvvPt58883tzlXamkMIDB48mOuvv55dd9212G1/pam/NMaPH8/atWu58cYb+f7772nbti3HHXcc559/Po888gh//etf+e6772jSpAl9+/blqquuon79+mWaqyxCSQ/dSmgRIQwDRgJtgXXA08AfY4yfF+hTGxgFnA40BVYAk4GJcYuHCCHUA8YApwANgGXAuBjj9JLW1KFDh1jVX+EoqXK1m9auUra4JXqOyuLnJUmSKtLSpUuLnBu02aE3vMBn31b992c12yWdV65IrjOkktmMGTMYPHgwixYtyv9Gu4roq+S1rd/jzUIIi2KMHbY3VlVvCQQgxng/cP92+mwErsl7bW+874EL816SJEmSpF8wQ6Lkt379+kLf0rdx40YmTpxIo0aNaNeuXZn7qvpKisBKkiRJkiT9ch1yyCEceuihtG/fnu+++45HHnmExYsXM2nSpCLfrleavqq+DKwkSWU3OsF72DNbJHZ8SZIkVYjevXvz+OOP89BDD5Gdnc2+++7LtGnTOPXUU8vVV9WXgZUkqexGf5fY8ae5JFySJOmXYMyYMYwZM6bC+6r6qlHVBUiSJEmSJEkFGVhJkiRJkiQpqRhYSZIkSZIkKakYWEmSJEmSJCmpGFhJkiRJkiQpqRhYSZIkSZIkKakYWEmSJEmSJCmpGFhJkiRJkiQpqdSq6gIkSRVsQjv4bmXi58lskfg5JEmSlDQ2bNhAeno6Y8eO5YorrqjqcirNFVdcwa233sqGDRuqupRqxcBKknY0362E0d8lfp5p7RI/hyRJElTeX8htT/0WMHJJmW5dsGAB3bp1A+Af//gHvXr1KnT9/vvv5/TTT+e5556je/fuZb5nS6NHj+aaa64pUY0fffQRLVu2LM1j6Rdq6tSp/Pzzz/z+97+v6lK2ysBKkiRJkpTcKusv5LZndP0KGeaqq64qEj4l4h6Afv360bp160JtQ4cOpUuXLpx77rmF2hs3brzNsdLS0li/fj21a9cudR1KLlOnTuX77783sJIkSZIkSXDQQQexaNEiHn/8cU488cSE3bNZ+/btad++faG2oUOHkpmZyZAhQ0o0RnZ2Nps2bSIlJYW0tLRSzV9VfvzxR+rUqVPVZagcPHRdkiRJkqRKcuaZZ9KiRQuuvvpqYowJu6es5s6dSwiBBx54gLFjx5KZmUlqaipvvPEGGzZsIITADTfcUOieTz/9lAEDBrDTTjvRoEEDhgwZwqefflruvj///DPXXXcde++9N6mpqey6666cdtppfP7554X6DRw4kFq1avHpp5/Sv39/GjRowMEHH5x/fe3atVx22WW0atWKlJQUmjVrxgUXXMDatWuLPP99993H3nvvTVpaGvvuuy8PP/xwqT6/ktR87rnnkpKSwtdff13k/qlTpxJCYOHChaWuv1OnTrRu3Zr//Oc/HH/88dSrV49GjRoxYsQINm7cmN+vSZMmLFq0iPfee48QAiGEQkHkzJkz6dixI/Xr12ennXZi77335oILLijV51ARXGElSZIkSVIlSUlJ4aqrruLss89m1qxZDBw4MCH3lNe4ceOIMXLuueeSmpq61e2CP/zwA0cddRQrVqzgvPPOo02bNsydO5fevXuXq++mTZs48cQTef755znjjDM44IAD+OSTT5g4cSIvv/wyb7zxBvXr/98WzRgjPXr04IADDmDs2LH5Ac369es58sgj+fDDDxk+fDht2rRh6dKlTJkyhddee42XXnopf4vjPffcw1lnncVBBx3E2LFj+fbbbxkxYgQtWpTsy4ZKWnNWVhZ33HEHs2fP5pxzzik0xvTp09l99905/PDDS10/wLp16zj66KPp0aMHN910EwsXLmTSpEk0adKEK6+8EoDJkydz6aWXsmHDBsaNGwdAzZo1gdyz0gYNGsTRRx/N9ddfT61atfjwww959tlnS/QZVCQDK0nawfRsnsGqSjgQPaNuRsLnkCRJ2hENGzaMG2+8kdGjRzNgwID8sKCi7ymPb7/9lmXLllGvXr38tuK+Je/222/n/fffZ9q0aZx66qkAnH/++Zx88sksXry4zH0feugh/vGPf/Dss89yzDHH5Lcff/zxdOnShYkTJ/KnP/0pv33Tpk306NGDW2+9tdA448ePZ+nSpfz73/9m//33z2/v3Lkzp5xyCrNmzWLIkCH89NNPXH755bRt25aXX36Z9PR0AHr37k3Hjh1JSUnZ7mdW0poPPfRQ9thjD6ZPn14osPrss8946aWXuPTSSwkhlKr+zVavXs2UKVP43e9+B8Dvfvc71qxZw5133pkfWJ100kmMHTuW77//vsi20CeffJJGjRrx7LPPUqPG/23K2xxsVSYDK0nawayqXYslp5Xt22skSZKUeLVq1eLqq69m6NChPPTQQ5x22mkJuac8Tj311EJh1dY8/fTTNGzYkKysrELtF1xwAbNnzy5z35kzZ7Lnnnvy61//mjVr1uS3t27dmubNm/P8888XCqwAzjvvvCL1zZw5k06dOtGkSZNC4xxxxBHUqlWL559/niFDhvA///M/fPXVV1x55ZX5YRXAwQcfzJFHHsm//vWv7X4WJa05hMDgwYO54YYb+PTTT2nevDkAM2bMYNOmTYU+n5LWv1nt2rU566yzCtXVrVs35s+fz88//7zd4K1+/fqsXbuW+fPn06NHj+0+cyJ5hpUkSZIkSZVs8ODB7Lvvvlx77bWF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lrfeeou7776bM888M7//pZdeutWzqF588UVOOOEEfvOb3zBnzpwicxfn/fff55lnnuHYY48FYPjw4ey7777ceeed+YHV559/zvjx4zn66KN59tln888sO+KIIzj++ONp27ZtKT6ZXz4DK0lJr9IO2Rxdf/t9JEmSpHK46KKL6NWrV5H2/fbbr9JqyMrKKhRWATz55JNAblCzOawC6NOnD23btuXvf/97kcDq7LPPLnSu1qGHHspNN91EVlZWobDo0EMPBeCDDz6o8Gc59dRTiw2MNs+fk5PD2rVrycnJoVu3btxwww28+eabHHPMMQA88sgjtGnThjPOOKPIGAU/h82efPJJTj75ZHr16sWMGTNKvCquZcuW+WEV5IZ9Xbt25amnnspvmzdvHtnZ2YwYMaLQAfu//e1vixxIXx0YWEmSJEmSVEn22WcfunfvXqU1ZGZmFmlbsWIFkFvflvbZZx+efvrpIu2bz8rabPMh7y1atCi2/euvvy5TvdtS3LMAPPXUU4wZM4ZFixYVObfqm2++AXLPi/rwww/p27dvseHUlj777DP69evHkUceyezZs6lZs2aJ62zZsmWRtgYNGhT6TDb/M2jTpk2Rvm3atOE///lPiefbEXjouiRJkiRJ1Uh6evpWrxUX3Gxta9zWAputtW9tnPIo7llefPFFevfuTUpKCrfffjtPPfUUzz33HFOnTgVg06ZNhfqXJKwCaNy4Md26dWPhwoXMmzevVHWW5DPZ/OfS/DPYkRlYSZIkSZJUzW1eAfTuu+8WubZs2bJiVwglq5kzZ1KvXj3mz5/P2WefzW9/+1u6d+/OrrvuWqhfCIE999yTJUtKdvxISkoKTzzxBIcddhj9+vXjueeeq9C6N68WW758eZFridhOmewMrCRJkiRJquY2H4Z+8803F1rN8+STT/Lee+9V+GHpiVSzZk1q1KhBTk5Oflt2djY333xzkb4nn3wyy5cv5/777y9yrbhVTenp6Tz55JMccsgh9OnThxdeeKHC6u7Rowc1a9Zk4sSJhVaBPf3009UysPIMK0mSJEmSKsmrr75KWlpakfaGDRsWexh7Zdlvv/0477zzuP322zn22GM54YQT+Pjjj5k0aRItWrRg1KhRVVZbafXt25fJkydz9NFHM2TIEH744QdmzJhR7Fa7K664gieeeIIzzjiD+fPn06VLFzZs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\n",
      "text/plain": [
       "<Figure size 1440x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "a_MC=plt.hist(triggered_true_MC/1000,bins=40,histtype='step', range=(0, max_true_E/1000), label='MC Triggered events')\n",
    "a_NN=plt.hist(triggered_true_NN/1000-0.08,bins=40,histtype='step', range=(0, max_true_E/1000), label='NN Triggered events')\n",
    "b=plt.hist(true_hist/1000,bins=40,histtype='step', range=(0, max_true_E/1000), 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(20,10)\n",
    "plt.savefig(PATH+'/eff_1.png',dpi=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([  0.,   2.,   0.,   1.,   2.,   2.,  14.,  22.,  62.,  84., 153.,\n",
       "        192., 213., 204., 222., 189., 206., 229., 187., 171., 150., 162.,\n",
       "        159., 136., 134., 122., 105.,  73.,  73.,  63.,  42.,  29.,  30.,\n",
       "         24.,  26.,   9.,   4.,   4.,   3.,   0.]),\n",
       " array([ 0.        ,  0.49653198,  0.99306396,  1.48959595,  1.98612793,\n",
       "         2.48265991,  2.97919189,  3.47572388,  3.97225586,  4.46878784,\n",
       "         4.96531982,  5.46185181,  5.95838379,  6.45491577,  6.95144775,\n",
       "         7.44797974,  7.94451172,  8.4410437 ,  8.93757568,  9.43410767,\n",
       "         9.93063965, 10.42717163, 10.92370361, 11.4202356 , 11.91676758,\n",
       "        12.41329956, 12.90983154, 13.40636353, 13.90289551, 14.39942749,\n",
       "        14.89595947, 15.39249146, 15.88902344, 16.38555542, 16.8820874 ,\n",
       "        17.37861938, 17.87515137, 18.37168335, 18.86821533, 19.36474731,\n",
       "        19.8612793 ]),\n",
       " <a list of 1 Patch objects>)"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_MC\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([  0.,  11.,  17.,  71., 172., 239., 285., 333., 354., 366., 449.,\n",
       "        489., 514., 511., 491., 429., 407., 398., 327., 293., 266., 259.,\n",
       "        250., 183., 194., 172., 142., 119.,  87.,  71.,  51.,  44.,  41.,\n",
       "         28.,  26.,  14.,   6.,   4.,   4.,   1.]),\n",
       " array([ 0.        ,  0.49653198,  0.99306396,  1.48959595,  1.98612793,\n",
       "         2.48265991,  2.97919189,  3.47572388,  3.97225586,  4.46878784,\n",
       "         4.96531982,  5.46185181,  5.95838379,  6.45491577,  6.95144775,\n",
       "         7.44797974,  7.94451172,  8.4410437 ,  8.93757568,  9.43410767,\n",
       "         9.93063965, 10.42717163, 10.92370361, 11.4202356 , 11.91676758,\n",
       "        12.41329956, 12.90983154, 13.40636353, 13.90289551, 14.39942749,\n",
       "        14.89595947, 15.39249146, 15.88902344, 16.38555542, 16.8820874 ,\n",
       "        17.37861938, 17.87515137, 18.37168335, 18.86821533, 19.36474731,\n",
       "        19.8612793 ]),\n",
       " <a list of 1 Patch objects>)"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_NN\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([  5.,  58., 125., 231., 366., 470., 511., 540., 594., 520., 571.,\n",
       "        597., 563., 514., 502., 426., 410., 397., 330., 293., 266., 262.,\n",
       "        249., 189., 191., 175., 143., 115.,  90.,  72.,  55.,  43.,  39.,\n",
       "         32.,  27.,  14.,   6.,   4.,   4.,   1.]),\n",
       " array([ 0.        ,  0.49653198,  0.99306396,  1.48959595,  1.98612793,\n",
       "         2.48265991,  2.97919189,  3.47572388,  3.97225586,  4.46878784,\n",
       "         4.96531982,  5.46185181,  5.95838379,  6.45491577,  6.95144775,\n",
       "         7.44797974,  7.94451172,  8.4410437 ,  8.93757568,  9.43410767,\n",
       "         9.93063965, 10.42717163, 10.92370361, 11.4202356 , 11.91676758,\n",
       "        12.41329956, 12.90983154, 13.40636353, 13.90289551, 14.39942749,\n",
       "        14.89595947, 15.39249146, 15.88902344, 16.38555542, 16.8820874 ,\n",
       "        17.37861938, 17.87515137, 18.37168335, 18.86821533, 19.36474731,\n",
       "        19.8612793 ]),\n",
       " <a list of 1 Patch objects>)"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "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",
    "        if a_NN[0][i]>b[0][i]:\n",
    "            eff_NN[i]=1\n",
    "        else:\n",
    "            eff_NN[i]=a_NN[0][i]/b[0][i]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKcAAAJhCAYAAACU4dPuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3X2cz3W+//HHW2RIgxiXo8ZEiVQnaUltOFEdFc7KMhVDuYqzmXR2tXali21ZXWwrOWpbRldstStsV4uk39nSdrGbUrZaw5KKyEnYZD6/P8bMGnP1HWZ8GI/77Ta36fv+vN/vz+v7/bJ787y93+9PiKIISZIkSZIkKQ7V4i5AkiRJkiRJRy/DKUmSJEmSJMXGcEqSJEmSJEmxMZySJEmSJElSbAynJEmSJEmSFBvDKUmSJEmSJMXGcEqSJEmSJEmxMZySJEmSJElSbAynJEmSJEmSFJvqcRdwOGjYsGGUlpYWdxmSJEmSJElVxptvvrk5iqKUsvoZTgFpaWm88cYbcZchSZIkSZJUZYQQ1ibSz219kiRJkiRJio3hlCRJkiRJkmJjOCVJkiRJkqTYGE5JkiRJkiQpNoZTkiRJkiRJio3hlCRJkiRJkmJjOCVJkiRJkqTYVI+7gCPFrl272LRpE7t27eLbb7+NuxxJR7kaNWrQqFEjkpOT4y5FkiRJkg6K4VQCtm3bxmeffUZKSgpNmjShevXqhBDiLkvSUSqKInbu3MmGDRsADKgkSZIkHdHc1peAzZs3k5qaSv369alRo4bBlKRYhRCoXbs2zZs35/PPP4+7HEmSJEk6KIZTCfjmm2+oVatW3GVIUiG1atVi9+7dcZchSZIkSQfFcCpBrpaSdLjxf5ckSZIkVQWGU5IkSZIkSYqN4ZQkSZIkSZJiYzilA7JixQrOO+886tSpQwiBZcuWAbB69Wp69uxJvXr1CCEwe/Zsli1bVqhPeaSlpZGZmVmhtR/OcnJyCj63uMyePZsQAjk5ObHVUJJEa8v/HH/yk58cmsIkSZIkSQfMcEoABQFSST9XX311Qd/du3fTv39/PvnkE+666y4eeeQRTjvtNAAyMzN58803mTRpEo888gjf/e5343pLikFubi6TJk1i/vz5cZdyyOQHYSEEZsyYUeR6/t+tX//61wc1RpIkSZKqqupxF3CkSxv/h7hLKJAzuddBz3HttdfStWvXIu3p6ekF//3xxx+zbt06pk6dysiRIwvad+3axWuvvcbo0aMZO3ZsQXtaWho7d+7k2GOPLXc9q1evplq1oydDPemkk9i5cyc1atSIu5QDkpuby6233srgwYPp06dP3OUccj/72c8YMmQISUlJlTpGkiRJkqoSwykV0qlTp0KrpIrz+eefA1CvXr2E2qtVq3bA//CuWbPmAY07UoUQDCmOUGeffTZvvfUWM2bMICsrq9LGSJIkSVJVc/QsSVGF6Nq1KxdeeCEAw4YNI4RQcC7USSedBOStBMnfsgSUeObU5s2bueGGG2jZsiU1a9akadOm9O3bl/fee6+gT0lnTj300EOcffbZ1KpVi3r16tG7d29WrVpVqM+kSZMIIbBy5UqysrJo1KgRtWvX5tJLL2Xt2rVF5iyrnk6dOnHKKacU+7lkZmZSq1Ytvvzyy1I/v5kzZ3LmmWdSp04d6tatS/v27bnlllsKrhd35lT+OUvPP/88EydOJDU1leOOO46LL76YdevWATB9+nRat25NUlISHTt25K233ir2s9hfomdcvfLKK2RkZNCyZUuSkpJo2LAh/fr1429/+1uhufJXfGVnZxf8Gdh3Jd63337LlClTaNu2bcE8V199NevXry9yzxdffJEOHTqQlJREWloaU6dOJYqiUusszuzZs2nTpg1JSUm0bduWJ554ouDanj17SE1NpWfPnsWO7dq1K6mpqeTm5pZ5n0svvZROnToxefJkvv7664RqO5AxkiRJklTVxL5yKoRQB7gJ6ACcAzQBsqMoyizHHGcBvwA6A3uApcBNURT9vcILruK2b9/O5s2bi7Qff/zx1KxZkwkTJtClSxfuvPPOgi2AderUoXHjxpx11llkZWXRu3dv+vXrV+p9Nm3axHe+8x3WrVtHZmYmHTp04Msvv+Sll17izTffpF27diWOHTt2LNOmTWPAgAFcd911bNu2jenTp3Peeefxxhtv0KpVq0L9hw4dSv369Zk4cSIbN27knnvu4eqrr+aVV14pVz1Dhw5lxIgRvPrqq3Tu3Llg7I4dO3j66afp06dPkVVj+5o1axYjR46kd+/eBdshV69ezcsvv1zqZ5VvwoQJ1KxZkx/+8Id88skn3H333fTu3ZuMjAzmzJnDqFGj2LFjB1OmTKFv37589NFHFbY98Le/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MhKeM23X4wd8n4NR1f//OE6xb+s7SLX2/v5nMdd27denkCiKHoyi6Jwois5JSUmplOJUvGrVqtGvXz9eeeUVnnvuuSLXS9vmNnDgQAAmTpxY7PVNmzZVej2ZmZnk5uaSlZXFqlWrEt769cUXXxR6HULgrLPOAip2C15xWrduDcDSpUsL2qIo4r777itzbP7KrP1XSGVnZ7Nx48YifZOSkord6jdw4EC++uorfvGLXxS5FkVRwVMiGzduTIcOHZg7dy6ffvppQZ9PP/2Uxx57rMx697V48WLefffdgtfbt2/nwQcfpFmzZpx99tmF+g4dOpQtW7YwfPhwtm7dekBb+vZ12223sWPHDmbNKPszznf9TTeza2f5xkiSJEnSke5IXzm1c+/vmsVcS9qvjxLw2muvkZSUVKS9QYMGXHrppRV2nzvvvJPFixdzxRVXMGTIEM4++2y++uorli5dysCBAxk0aFCx47p06cKNN97IPffcw6pVq7j88supV68ea9eu5bnnnuOMM85g9uzZlVrPSSedRPfu3Zk7d265tn716NGDlJQUunTpQvPmzfnHP/7B9OnTSUlJKfMw9YPVo0cPTj75ZK677jref/996taty9NPP82OHTvKHNumTRvatGnDuHHjWLt2Lc2aNWPFihXMnz+/YJXTvjp27MjixYu56667SE1NpVGjRnTv3p2MjAzmz5/PhAkT+NOf/kT37t2pVasWa9asYf78+WRkZDBp0iQApk6dSo8ePejcuTMjR44kiiJmzpxJeno6f/nLXxJ+3+3bt6dbt26MGTOG5ORkZs2axdq1a3nssceKrN664IILaN26NXPnzk3ogPuynHnmmfTr148nn3wy4TGntm1Pj169eXHRgT3RUZIkSZKOREd6OJW/da9ZMdea7ddHCXj44Yd5+OGHi7R36NChQsOpRo0asWLFCm699VYWLlzI7NmzadiwIZ07d+acc84pdezdd9/NOeecw/Tp07n99tvJzc2lWbNmnH/++YwYMeKQ1DN06FCWLFlSrq1fo0aN4oknnuD+++9n27ZtNG7cmF69evHTn/6UBg0aHFDdiapevTrz589nzJgx3HHHHSQnJzNw4EBGjBhBu3btyhy7aNEisrKymDZtGrt376ZTp04sXbqUsWPHFuk/Y8YMrr/+em655RZ27NjBhRdeSPfu3QkhMG/ePGbM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F4x95JFHiKKoXE9NHDBgADfeeCPz5s1j5MiRrF69mvf++hbDb7ip2P5//3A1aemtOPYo274qSZIkSftyW58KufHGG/njH/9Y5Ofiiy+usHvk5uby1FNPcf755xcKgvIVt/0s37x58zj22GPp27cvmzdvLvjJ3862ZMmSImNGjRpV6HX+Uwk//vjjctWTnJzM9773PebNm8euXf862Do7O5vmzZvTo0ePUt933bp12bBhA6+99lqp/UoybNiwgmAKoEuXLkDekxT3DY7y2z/66KMDuk9x9p1/+/btfPHFF5xwwgmceuqp/PnPf05ojrlz55KamkqnTp0KfXctWrQgPT294Lv77LPPeOONNxgwYEBBMAXQpEkTrrrqqnLVfdFFFxUEU5C3AnD48OFs2LChYOtj69atOf/888nOzi40ds6cOXTq1KlcgVjDhg259NJLC7b2zZkzh/onNKBL14uK7f/19q84rs7x5XpPkiRJklTVuHJKhZx22mlcdFHx/5CuKJs2bWLbtm2cccYZ5R77wQcf8M033xTafrWv4rZf5Z+FlS9/u9WWLVvKXc+QIUN49NFHWbBgAf3792fDhg0sXbqUH/7wh2Vu/Ro/fjxLly6lc+fOtGzZkq5du9KnTx8uv/zyUgO5kt5H/ha3E088sdj2/PdXETZu3Mj48eNZuHAhW7duLXStYcOGCc3xwQcfsH79elJSUoq9vmfPHgDWrFkDUGwoVN6VU6XNsWbNGs4991wg73u99tpref311zn33HN59dVX+fDDDxk3bly57gd5q/iuvPJKPvroIx577DEuvuI/S9xeeVyd4/l6+1flvockSZIkVSWGU4pNIoHM/nJzc6lduzbPPPNMwmOOOeaYYtv33z6YSD3dunUjLS2N7Oxs+vfvz6OPPkpubm5CW7/atGnD6tWreeGFF3jxxRd54YUXmDVrFj179uTZZ58tsc6y3kci76+k95YfCJUmNzeXnj17smHDBrKysmjXrh116tShWrVqjB07NqHDwvPnSU9PZ+bMmcVer1WrVqG6D+TPx/4SnaN///784Ac/IDs7m3PPPZc5c+aQlJTE97///XLf8/LLL6devXqMGDGCtWvX8rP/LHmO9Nan8t47b/PPXbuo6VMaJUmSJB2lDKd0yKWkpFC3bl3eeeedco9t1aoVL7zwAu3bty84aPtQ1hNCIDMz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\n",
      "text/plain": [
       "<Figure size 1440x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "idx = np.arange(0,max_true_E/1000, step=(max_true_E/1000)/40)\n",
    "\n",
    "plt.bar(idx,eff_NN, width=0.4, label='Efficiency simulated by NN')\n",
    "plt.bar(idx,eff_MC, width=0.2, 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",
    "fig = plt.gcf()\n",
    "fig.set_size_inches(20,10)\n",
    "plt.savefig(PATH+'/eff_2.png',dpi=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}