saving ground truth

This commit is contained in:
Erik Fröjdh committed 2025-11-20 22:42:04 +01:00
1 parent d11cd36335
commit 3f73549d96
3 files changed
+174 -118

No files matched your search

+156 -22
View File
@@ -24,12 +24,12 @@
"import matplotlib.pyplot as plt\n",
"from matplotlib.ticker import (MultipleLocator, AutoMinorLocator)\n",
"import time \n",
"\n",
"import h5py\n",
"import numpy as np\n",
"import aare\n",
"import boost_histogram as bh\n",
"\n",
"from simple_eta import gaussian_2d, plot_gaussian\n",
"from simple_eta import plot_gaussian\n",
"from simple_eta import generate, Generator\n",
"\n",
"#General configuration\n",
@@ -60,7 +60,13 @@
"cell_type": "code",
"execution_count": 2,
"id": "8ae6ce69-313f-41d4-8019-64e93a5610a0",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"name": "stdout",
@@ -71,7 +77,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAHPCAYAAACleAI8AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA+DFJREFUeJzsvQm8JFV5/n+67ywsYUBAWeIAAy6AKBhQBFk1DAGDyCIoiqhAQESWMRjZBHEhEEIQ2UKCIFEWo7IYiSxRtoBEdrcfaoKCCOEPLgSQmbnd9f+8b51z6j2nzqmlu/revnWfb9J2d9WpU9XVzdR96nmXTpIkiQIAAAAAAAAAAMBI6I5mWgAAAAAAAAAAAEB4AwAAAAAAAAAAIwaONwAAAAAAAAAAMEIgvAEAAAAAAAAAgBEC4Q0AAAAAAAAAAIwQCG8AAAAAAAAAAGCEQHgDAAAAAAAAAAAjBMIbAAAAAAAAAAAYIRDeAAAAAAAAAADACIHwBmAMueyyy1Sn01H33nvvdB8KAAAAMPbstNNO/Bj1dfmXv/zlyPYBAGg3c6b7AAAAAAAAABiGCy64ACcQADDWQHgDMIt58cUX1UorrTTdhwEAAAAMxaabbjq2ZxDXWgAAgVBzAKaJ//f//p9673vfq9Zaay01f/58td5666kPfOADaunSpXbM//3f/6mPfOQjas0111RrrLGG2nvvvdVvfvMbZ56rr75aLV68WK2zzjpqxRVXVJtsson65Cc/qV544QVn3Ac/+EH1J3/yJ+qHP/whj19llVXU29/+dl73+9//Xh188MFq9dVX5zHveMc71P/8z/9wWN2pp57qzPPzn/9cHXDAAeoVr3gFHzft7/zzzx/puQIAADD7oOsPXYceeOABvv4tWLBArbrqqur973+/+v/+v/+vMNT8b//2b1W321Xf+ta3ctdCuuFM10LDLbfcwtdDmp/WvfWtb1X/8R//MdQx33///WrfffdVL3vZy9RGG23E65IkYWd+iy224Os1raMxdL2V0Of9y7/8S3udXXfddfm6/Otf/9qOoX0ceeSR6h//8R/Va17zGh5HNx+uuuqq3DH96Ec/UnvuuSfvb4UVVuD9f/nLX3bG3HrrrTznlVdeqU488UTeJ52PP//zP1ePPPJI7eOr+lkBmE1AeAMwDTz00EPqTW96k/r+97+vTjvtNPXv//7v6vTTT2fRvWzZMjvukEMOUXPnzlVXXHGFOvPMM/nCSH9w+EJ49913V5dccon6zne+o4455hj1ta99Te2xxx65/dLc73znO9Xb3vY2dd1116lPf/rTqt/v81jax9/8zd+oa665Rm299dbqL/7iL3Lb/+QnP+Hjpov43//936t/+7d/44vtUUcdxXMBAAAATbPXXnupV73qVerrX/86C9trr71W7brrrmr58uXRbeh6tttuu6mDDjpI/epXv+Jll156KQvOL37xi+r1r389L/vKV77CN6NJZNI6un7STWiaf1DxTdCNAjrmf/3Xf1UXXXQRLzvssMP4Gk1ilj4DCdMf//jHatttt1X/+7//y2Popvkuu+zC7+mm9s0336zOOeccvjlPN+Ml119/vTr33HP57wg6N+uvvz7f0KfXBhLNND/th8Z+85vfZIFONyDo7wqfE044gc/XP//zP6uLL76Y/8agvxF6vV6t46vyWQGYdSQAgCnnbW97W7LaaqslTz/9dHD9pZdemtB/nkcccYSz/Mwzz+TlTz75ZHC7fr+fLF++PLntttt43EMPPWTXHXTQQbzsS1/6krPNt7/9bV5+4YUXOstPP/10Xn7KKafYZbvuumvyyle+MvnDH/7gjD3yyCOTFVZYIfntb39b4ywAAAAAcej6Q9ehY4891ln+1a9+lZd/5Stfsct23HFHfkieeeYZvma9+c1vTu6///5kpZVWSt7//vfb9S+88EKy+uqrJ3vssYezXa/XSzbffHPezr8uP/roo5WO+VOf+pSz/O677+blf//3f+8sf/zxx5MVV1wx+cQnPsHv7733Xh537bXXFu6HxtB2Tz31lF02OTmZbLzxxsmrXvUqu+w973lPMn/+/OSxxx5ztt9tt934fPz+97/n99/73vd4zt13390Z97WvfY2X0/FXPb6qnxWA2QYcbwCmIdfrtttuU/vtt596+ctfXjiW3GnJG97wBn42d+8JCtui0O+1115bTUxMsEO+44478rqf/vSnuTn32Wcf5z0dC0HHI6G75pKXXnqJ7/6T80CheJOTk/ZBjjutJwcfAAAAaJL3ve99znu6Xs2ZM0d973vfK9yOUrQoHYvCvslpJVfWuM/EXXfdpX7729+yKy6vaRQJRlFfP/jBD3JpW1Xxr7UUIUah3BS1JvdF1+7NN9+cI9oIcskpLJscezpW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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAHPCAYAAACleAI8AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA+DJJREFUeJzsvQm8JFV5/n+67ywsYUBAWeIAAy6AKBhQBFk1DAGDyCIoiqhAQESWMRjZBHEhEEIQ2UKCIFEWo7IYiSxRtoBEdrcfaoKCCOEPLgSQmbnd9f+8b51z6j2nzqmlu/revnWfb9J2d9WpU9XVzdR96nmXTpIkiQIAAAAAAAAAAMBI6I5mWgAAAAAAAAAAAEB4AwAAAAAAAAAAIwaONwAAAAAAAAAAMEIgvAEAAAAAAAAAgBEC4Q0AAAAAAAAAAIwQCG8AAAAAAAAAAGCEQHgDAAAAAAAAAAAjBMIbAAAAAAAAAAAYIRDeAAAAAAAAAADACIHwBmAMueyyy1Sn01H33nvvdB8KAAAAMPbstNNO/Bj1dfmXv/zlyPYBAGg3c6b7AAAAAAAAABiGCy64ACcQADDWQHgDMIt58cUX1UorrTTdhwEAAAAMxaabbjq2ZxDXWgAAgVBzAKaJ//f//p9673vfq9Zaay01f/58td5666kPfOADaunSpXbM//3f/6mPfOQjas0111RrrLGG2nvvvdVvfvMbZ56rr75aLV68WK2zzjpqxRVXVJtsson65Cc/qV544QVn3Ac/+EH1J3/yJ+qHP/whj19llVXU29/+dl73+9//Xh188MFq9dVX5zHveMc71P/8z/9wWN2pp57qzPPzn/9cHXDAAeoVr3gFHzft7/zzzx/puQIAADD7oOsPXYceeOABvv4tWLBArbrqqur973+/+v/+v/+vMNT8b//2b1W321Xf+ta3ctdCuuFM10LDLbfcwtdDmp/WvfWtb1X/8R//MdQx33///WrfffdVL3vZy9RGG23E65IkYWd+iy224Os1raMxdL2V0Of9y7/8S3udXXfddfm6/Otf/9qOoX0ceeSR6h//8R/Va17zGh5HNx+uuuqq3DH96Ec/UnvuuSfvb4UVVuD9f/nLX3bG3HrrrTznlVdeqU488UTeJ52PP//zP1ePPPJI7eOr+lkBmE1AeAMwDTz00EPqTW96k/r+97+vTjvtNPXv//7v6vTTT2fRvWzZMjvukEMOUXPnzlVXXHGFOvPMM/nCSH9w+EJ49913V5dccon6zne+o4455hj1ta99Te2xxx65/dLc73znO9Xb3vY2dd1116lPf/rTqt/v81jax9/8zd+oa665Rm299dbqL/7iL3Lb/+QnP+Hjpov43//936t/+7d/44vtUUcdxXMBAAAATbPXXnupV73qVerrX/86C9trr71W7brrrmr58uXRbeh6tttuu6mDDjpI/epXv+Jll156KQvOL37xi+r1r389L/vKV77CN6NJZNI6un7STWiaf1DxTdCNAjrmf/3Xf1UXXXQRLzvssMP4Gk1ilj4DCdMf//jHatttt1X/+7//y2Popvkuu+zC7+mm9s0336zOOeccvjlPN+Ml119/vTr33HP57wg6N+uvvz7f0KfXBhLNND/th8Z+85vfZIFONyDo7wqfE044gc/XP//zP6uLL76Y/8agvxF6vV6t46vyWQGYdSQAgCnnbW97W7LaaqslTz/9dHD9pZdemtB/nkcccYSz/Mwzz+TlTz75ZHC7fr+fLF++PLntttt43EMPPWTXHXTQQbzsS1/6krPNt7/9bV5+4YUXOstPP/10Xn7KKafYZbvuumvyyle+MvnDH/7gjD3yyCOTFVZYIfntb39b4ywAAAAAcej6Q9ehY4891ln+1a9+lZd/5Stfsct23HFHfkieeeYZvma9+c1vTu6///5kpZVWSt7//vfb9S+88EKy+uqrJ3vssYezXa/XSzbffHPezr8uP/roo5WO+VOf+pSz/O677+blf//3f+8sf/zxx5MVV1wx+cQnPsHv7733Xh537bXXFu6HxtB2Tz31lF02OTmZbLzxxsmrXvUqu+w973lPMn/+/OSxxx5ztt9tt934fPz+97/n99/73vd4zt13390Z97WvfY2X0/FXPb6qnxWA2QYcbwCmIdfrtttuU/vtt596+ctfXjiW3GnJG97wBn42d+8JCtui0O+1115bTUxMsEO+44478rqf/vSnuTn32Wcf5z0dC0HHI6G75pKXXnqJ7/6T80CheJOTk/ZBjjutJwcfAAAAaJL3ve99znu6Xs2ZM0d973vfK9yOUrQoHYvCvslpJVfWuM/EXXfdpX7729+yKy6vaRQJRlFfP/jBD3JpW1Xxr7UUIUah3BS1JvdF1+7NN9+cI9oIcskpLJscezpW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 truncated
"text/plain": [
"<Figure size 1000x500 with 4 Axes>"
]
@@ -110,11 +116,17 @@
"cell_type": "code",
"execution_count": 3,
"id": "6390e1ef-2216-47ed-a8ce-106b9a7766ed",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdcdJREFUeJzt3QmcFNW1+PEzILvsKLswEBVkR3FFNCaiiAtCfG6JqKBJiCZq/LvGiL4kIEncl/dEJfqMYhIQNeKWKAjiiigjIhIZFBFEdgVZhP5/zoVqqqtvbd1dMz0zv+/nMw7T09NdXTP2qXPvueeWpFKplAAAAAAAgIKrVfiHBAAAAAAAJN0AAAAAACSImW4AAAAAABJC0g0AAAAAQEJIugEAAAAASAhJNwAAAAAACSHpBgAAAAAgISTdAAAAAAAkhKQbAAAAAICEkHQDVdRf/vIXKSkpkaVLl2bc/pvf/Eb2228/2WuvvaRZs2ZSVYwdO9a8ntWrV4fet3PnznL++eenv/7iiy/Mz7/33nsJHyUAoCaYM2eOiSvr16+P/DPe2FTZkjwefdy999470n01tuu5dHz44Yfma+/1C1Cd7VXZBwAgN0OHDpXXX39d2rZtm77tqaeekt///vdy/fXXy5AhQ6RevXrV8vQ++eST0qRJk4yk+6abbjIXGH379q3UYwMAVI+kW+OKJpdRB7C9sQm76LVKhw4dMpJuPbfHHnusidtATUDSDVRR++yzj/lw++CDD8znX/7yl7LvvvsW5Hk2b94sDRs2lGLSr1+/yj4EAACMb7/9Vho0aEBs8nH44Yfzl4Iaj/JyoILoaLltRNcpq3bovy+55BL5v//7P+nevbtJePv06SP//Oc/A8vL9bG1tFy1bt06o5xr586dMmHCBOnWrZuZ/daE/LzzzpPPP/884zF11Llnz57y6quvypFHHmme+8ILLzTPoY/3xz/+UW655RbzXHqBoff/+OOPZfv27XLNNddIu3btpGnTpnL66afLqlWrcjpPX375pZx99tnmcfR16PNv2LDBt2RuxowZMmDAAPPvCy64wByn+7UvWbJEzjrrLHNs+tr1MX/wgx9Qig4AsNL48f/+3/8z/y4tLU3HFY03Gn9OPvlkmTp1qkmy69evb2ZtvbFJbdmyRX7961+bCiyNaS1atJAjjjjCVKV5RY39Sn++d+/eJqZ16dJF7rjjjqxrCT8bN26UK6+80ryuunXrSvv27eWyyy6TTZs25fTX8J///EdOOukkU2resWNH83q3bt2a9dqcmKzXLmeccYb59/e///30udXb1bx588z51esUfX0au7Wyz3u9AlQ1zHQDRejZZ5+Vt99+W26++WYTyDRh1kR20aJFJsD6lbXdc8898uCDD8rzzz9vArxTzvXzn/9c7r//fhPQNZhpEn3DDTeYC4h3331XWrVqlX6cFStWyI9//GO56qqr5A9/+IPUqrVnbE4fXwO9ftZ1bhpcTznlFDnssMOkTp068tBDD8mnn35qAvro0aPl6aefjv3aR4wYIWeeeaaMGjVKysrK5NprrzW362Pb9O/fXyZNmmQSbh100OCsnNeuFwM7duww51DXuuuacS0bjLNODwBQc2j8Wrt2rdx1110muXaWcR100EHms8bNhQsXmpijyWujRo2sj6PJpz6OxkRNbrdt2yb/+te/ZPjw4SZu6eB33Niv8V1/ftCgQfLEE0/Id999J3/605/MgHWUyrVjjjnGJLDXXXediecLFiyQ3/72tybe6rFFSdwdOuB+6qmnmnit1wM6YP/f//3f5vpDH9NGY7ReW+jz67WExnDVtWtXk/gff/zx5pzq93SQfOXKlfLKK6/I119/Hfm4gKKUAlAhRo4cmerUqVPW7TfeeGPK/b+i/rt169apjRs3pm9buXJlqlatWqlx48alb5s0aZK5b3l5edZjffXVV+nbFi5caG4bM2ZMxvO++eab5vbrrrsufdsxxxxjbvv3v/+dcV99Dr29T58+qR07dqRvv/32283tp556asb9L7vsMnP7hg0bIp8f59gnTJiQcbsed/369VM7d+5M36bnUc+n4+233zY/q+fEbfXq1eZ2PU4AAKL64x//mBVjnfhTu3bt1KJFi7J+xhubvL777rvU9u3bU6NGjUr169cv43tRY/+AAQNSHTt2TG3dujV929dff51q2bJlxrWE7Xj0cfTxNGa6/eMf/zA/O3369FRU+rj6M3/7298ybj/ppJNSBx54YNZr0xjv+Pvf/25ue+WVVzLu984775jbp02bFvk4gKqC8nKgCGnJVePGjdNf62ivllrpLHJcOkKsvB1MDz30UFPC9u9//zvj9ubNm8txxx1nfSydNXbPfOvPK2d22Xv7Z599Fvt4ddTcTUfitUQvl3J1LeXT0XMti7/11ltN2ZqW2gMAkCuNSwcccECk+/7973+Xo446ysxc664iWhWmFWk6Ux439utM8DvvvCPDhg0zpeEOfWytOgujpeq6hEzL3XWG3Pk44YQT0uXzcejPeJ9Xz00u1yrqe9/7nrkGufrqq+V//ud/TMM1oLog6QaKUMuWLbNu07VN2qwlrjVr1pjP7i7nDl0r5XzfYbufO4l1c4K+3+2aLOf72p0O7Lm8dr0g0EEFvaDQMj0tY9Pmc9pojlI1AEAuguKkm5am/9d//ZcpLX/00UdNF28tH9deJbb4GBb7161bp1PZJhn3st3mpSXo8+fPN4m/+0MTfX3cKFt2uum6c13T7j3eXGK/0rL0mTNnmkEBLT/v0aOHuU658cYbTSk7UJWxphuoIBqYvM1FVNwgF5cTxHWttnvLDmerLfd6bhVnPVdV0KlTJzOroLTp29/+9jfT0EXX1ulIOgAAcUSNk5po6/pkXXvt/hnbtUAUOgusj2Nbv61rn8NovNcmqH49UrzXA5WhV69eMnnyZDMIoAME2mBN17jrcWvDVqCqYqYbqCDa1VRLpN3BUhO/F154IdHndUrFNfi76Wi7lrdpJ++qLupsuJYDauMbDeraCAcAgHziShBNkLXyy51wa3Js614ehTZsO+SQQ2TatGnm+sHxzTffWLuce2kj1U8++cQMxuvjeD8qas/sKOdWz5l2b7/tttvMPunEbFR1zHQDFUQ7cms3T92+Srci0fKrO++803TWTtKBBx4oF198senCquuxhwwZku5ertt7XH755VLV6bptHQX/61//ataT6/o2LUnTKgLt2K7bk+y///7m4ufll182o+eMmAMA/OjgrNLtuEaOHGnKsDWexuFsLTZmzBj50Y9+JMuWLTPdvbU8ffHixTmdfJ311T4qumzqV7/6lbmG0L4lGve0U3oQ3RpsypQppvO5xn5df619TrT/yosvvmg6kOtuJEnTdeVKd1XR0natBNSKAC2/v/fee82ade3WrrPdev50txHtag5UZSTdQAXRgKKj27pOSYOvBt0rrrhCvvrqq/Qen0m57777TGKqZda6DYeumzrxxBNl3Lhx1jVkVY2uK9NyOT2PgwcPNmu/dA2YXujo69Ygrhc7OnKugfzPf/6zXHrppZV92ACAInXssceaLSsffvhhmThxoklOncakUelWllrhpkuZNEZp/NEBX92yK9e4r7FbE2cdxNfB/DZt2phYp8vFdI/vsJnyWbNmyfjx403CW15ebgasdTvNH/7whxU2063XQ7fffrsZ0NDzrAMHuoWa7mGus9rag0Vfjw6U60CHlpjrwAdQlZVoC/PKPggAAAAA8elAszYf04ZtOmMNoPgw0w0AAABUEaNGjTLl1loxp2vEdSZde7TozDGA4kTSDSBRWpIXtje27l0KAADC6ZaXV155pVmepmvNdTvM6dOnmxLxfBGzgWRQXg4gUbo9V9jaNV1XVlFryQAAgN35559v1rEHYWUqUMWTbr3o/vTTT7Nu1wYR2vzJ9kagXRbfeOONCjxKAHFoMxT9CKIdVLVhCoCqgXgNVE+6u4nu/BFEtxcDEE9R1XTqvsHu7ZM++OADs2ZFt/txd23UDocOLtSB4qZbd+kHgOqDeA1U3wE1Ks+Aap5077PPPhlf65YGut3PMccck76tXr16ZnsEAABQOYjXAABU0aTbbdu2bfLoo4+afYx1b13HjBkzZN999zX7+Gky/vvf/9587Wfr1q3mw90gYu3atWZvYvfjAgBQEXRVlzZC0gqQWrVqVfmTXqh4rYjZAIBqGa9TReqJJ55I1a5dO7V8+fL0bZMnT07985//TJWVlaWefvrpVJ8+fVI9evRIbdmyxfdxbrzxRl2zzgfngL8B/gb4G+BvoKj+BpYtW5aqDgoVrxUxu/L/LvngHPA3wN8AfwNS8HhdVI3U3E444QSzXvuZZ57xvc+KFSukU6dOMnnyZBk+fHikUfMNGzbIfvvtJx9//LG0aNEikWNH9bB9+3Z55ZVX5Pvf/77ZkgPgbwWFoNVWBxxwgKxfv16aNm1a5U9qoeK1ImYjV8Rs8LeCYo7XRVlerh3M//Wvf8nUqVMD79e2bVsTxBcvXux7H10Drh9emnBriTkQFMAbNmxo/k5IuhGEvxXkojoscSpkvFbEbOSK92Hwt4JijtdFuZhMu5Pruq+hQ4cG3m/NmjWybNkyE8wBAEDFIl4DAFAFk25tdKZBfOTIkbLXXnsm4r/55hu58sor5fXXXzd7CGqDllNOOUVatWolp59+eqUeMwAANQ3xGgCAKlpermVqn332mVx44YUZt9euXVvKysrkkUceMXX1Oruta22feOIJady4caUdLwAANRHxGgCAKpp0Dx482LRn92rQoIG88MILlXJMAAAgE/EaAIAqWl4OAAAAAEB1QdINAAAAAEBCSLoBAAAAAEgISTcAAAAAAAkh6QYAAAAAICEk3QAAAAAAJISkGwAAAACAhJB0AwAAAACQEJJuAAAAAAASQtINAAAAAEBCSLoBAAAAAEgISTcAAAAAAAkh6QYAAAAAICEk3QALine truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdD5JREFUeJzt3QmYFOW18PEzIHvYUfbdBWUTdxHBJSKIGsDrVcmCC25EjDF+ilvE3ESQJEaN4I0b0SSKyRXRKKBJFAFxRRBERcUBkUUEWZR96e85L1NNdfVb1VXdXTPdM/9fnslM13TX0ox96rzLeUsSiURCAAAAAABA3lXL/y4BAAAAAABJNwAAAAAAMaKnGwAAAACAmJB0AwAAAAAQE5JuAAAAAABiQtINAAAAAEBMSLoBAAAAAIgJSTcAAAAAADEh6QYAAAAAICYk3UCR+vOf/ywlJSWybNmylO233XabtGvXTg444ABp1KiRFIsxY8aY61m3bl3G53bo0EEuvvji5ONVq1aZ1y9YsCDmswQAVAVz5841cWXjxo2hX+ONTRUtzvPR/X7ve98L9VyN7fpeOj788EPz2Hv/AlRmB1T0CQDIzqBBg+SNN96Qli1bJrc999xz8pvf/EZuvfVWGThwoNSqVatSvr3PPvusNGjQICXpvvPOO80NxpFHHlmh5wYAqBxJt8YVTS7DNmB7YxP20XuVNm3apCTd+t6ecsopJm4DVQFJN1CkDjzwQPPl9sEHH5jv1157rRx00EF5Oc7WrVulbt26Ukh69epV0acAAICxbds2qVOnDrHJxwknnMBfCqo8hpcD5URby20tus6waof+fM0118hf/vIXOfzww03C27NnT3nhhRcCh5frvnVouWrevHnKcK69e/fK+PHjpUuXLqb3WxPyn/zkJ/Lll1+m7FNbnbt16yazZs2S3r17m2Nfeuml5hi6v9/+9rdy9913m2PpDYY+/5NPPpFdu3bJ6NGjpVWrVtKwYUMZMmSIrF27Nqv36auvvpKLLrrI7EevQ4+/adMm3yFzM2fOlGOPPdb8fMkll5jzdF/7559/LhdeeKE5N7123efpp5/OUHQAgJXGj//3//6f+bljx47JuKLxRuPP2WefLVOmTDFJdu3atU2vrTc2qe3bt8svfvELMwJLY1qTJk3kxBNPNKPSvMLGfqWv79Gjh4lpnTp1kvvuuy/tXsLP5s2b5YYbbjDXVbNmTWndurVcd911smXLlqz+Gj777DM566yzzFDztm3bmuvdsWNH2rU5MVnvXc4//3zz86mnnpp8b3W7mj9/vnl/9T5Fr09jt47s896vAMWGnm6gAL344ovyzjvvyK9+9SsTyDRh1kR2yZIlJsD6DWubMGGCPProozJjxgwT4J3hXFdffbU89NBDJqBrMNMk+vbbbzc3EO+99540a9YsuZ/Vq1fLj370I7nxxhvlrrvukmrV9rfN6f410Ot3neemwfWcc86R448/XmrUqCGPPfaYLF++3AT0ESNGyPPPPx/52s877zy54IIL5LLLLpNFixbJzTffbLbrvm2OOuoomTRpkkm4tdFBg7Nyrl1vBvbs2WPeQ53rrnPGddhglHl6AICqQ+PXN998I3/84x9Ncu1M4zriiCPMd42bH330kYk5mrzWq1fPuh9NPnU/GhM1ud25c6f8+9//lqFDh5q4pY3fUWO/xnd9fd++feXpp5+W3bt3y+9+9zvTYB1m5Fq/fv1MAnvLLbeYeL548WL55S9/aeKtnluYxN2hDe7nnnuuidd6P6AN9v/zP/9j7j90nzYao/XeQo+v9xIaw1Xnzp1N4n/GGWeY91R/p43ka9askVdffVW+/fbb0OcFFKQEgHIxfPjwRPv27dO233HHHQn3f4r6c/PmzRObN29ObluzZk2iWrVqibFjxya3TZo0yTy3tLQ0bV9ff/11cttHH31kto0cOTLluG+99ZbZfssttyS39evXz2z7z3/+k/JcPYZu79mzZ2LPnj3J7ffee6/Zfu6556Y8/7rrrjPbN23aFPr9cc59/PjxKdv1vGvXrp3Yu3dvcpu+j/p+Ot555x3zWn1P3NatW2e263kCABDWb3/727QY68Sf6tWrJ5YsWZL2Gm9s8tq9e3di165dicsuuyzRq1evlN+Fjf3HHntsom3btokdO3Ykt3377beJpk2bptxL2M5H96P705jp9n//93/mtdOmTUuEpfvV1/z9739P2X7WWWclDjvssLRr0xjv+Mc//mG2vfrqqynPe/fdd832qVOnhj4PoFgwvBwoQDrkqn79+snH2tqrQ620FzkqbSFW3gqmxx13nBnC9p///Cdle+PGjeW0006z7kt7jd093/p65fQue7d/8cUXkc9XW83dtCVeh+hlM1xdh/Jp67kO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 truncated
"text/plain": [
"<Figure size 1000x500 with 2 Axes>"
]
@@ -169,15 +181,20 @@
"\n",
"generate_hits = False\n",
"n_hits = 1000\n",
"n_frames = 1000\n",
"n_frames = 10000\n",
"\n",
"if generate_hits:\n",
" t0 = time.perf_counter()\n",
" frame_number = np.int32(1)\n",
" number_of_clusters = np.uint32(n_hits)\n",
" \n",
"\n",
" with open(f'.data/test_{grid_size}x{grid_size}.clust', 'wb') as f:\n",
"\n",
" #Set up an hdf5 file for truth\n",
" hf = h5py.File(f'.data/test_{grid_size}x{grid_size}.h5', 'w')\n",
" hf.create_dataset(\"x\", (n_frames, n_hits), dtype = np.float32)\n",
" hf.create_dataset(\"y\", (n_frames, n_hits), dtype = np.float32)\n",
" \n",
" for i in range(n_frames):\n",
" print(f'{i}',end = '\\r')\n",
" #Generate a new set of n_hits hits\n",
@@ -192,12 +209,18 @@
" frame_number.tofile(f)\n",
" number_of_clusters.tofile(f)\n",
" clusters.tofile(f)\n",
"\n",
" #Write ground truth to hdf5\n",
" hf['x'][frame_number-1] = mx[:,0,0].cpu()\n",
" hf['y'][frame_number-1] = my[:,0,0].cpu()\n",
" \n",
" frame_number += 1\n",
" print()\n",
" hf.close()\n",
" t = time.perf_counter()-t0\n",
" print(f'Duration: {t:.3f}s, FPS: {n_frames/t:.2f}, hits/s: {n_frames*n_hits/t:.2}s')\n",
" \n",
"# \n"
"# "
]
},
{
@@ -208,7 +231,7 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
@@ -239,6 +262,8 @@
" eta2 = aare.calculate_eta2(clusters)\n",
" # energy = clusters.sum_2x2()\n",
" eta_hist.fill(eta2['x'], eta2['y'], eta2['sum'])\n",
" # if eta_hist.sum()>1e5:\n",
" # break\n",
" # eta_hist.fill(eta2[:,0], eta2[:,1], energy['sum'])\n",
"\n",
"\n",
@@ -250,20 +275,35 @@
"fig, ax = plt.subplots()\n",
"mesh = ax.pcolormesh(x,y,data)\n",
"fig.colorbar(mesh)\n",
"ax.set_title(f'ETA[{energy_index}]')\n",
"ax.grid()\n",
"# mesh.set_clim(0,25)"
"ax.set_title(f'ETA[{energy_index}] - {data.sum()/1e6}M hits')\n",
"ax.grid()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 6,
"id": "cada1860-6b7b-416a-a39b-295586121531",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAANCCAYAAABI6XJcAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnQdYFVf6/1+aCAiIDVAQBcHEYImxa3oxzWxM75vd1E3Z1N1NTzZtUzfJ5mdi8s+asommm8Q0k6yKsQG2KCYWUJrSFKR35v+8B+buvQh3ZhBw7nu/n+e5Dozz3nO+5z1zOO+cM+f4aJqmEQAAAAAAAAAIx/dIZwAAAAAAAAAAegMEPwAAAAAAAACvAMEPAAAAAAAAwCtA8AMAAAAAAADwChD8AAAAAAAAALwCBD8AAAAAAAAArwDBDwAAAAAAAMArQPADAAAAAAAA8AoQ/AAAAAAAAAC8AgQ/AADQCe+88w75+PjQ+vXrLZdRTU0NPfbYY7RixQqPKV/OL+vtCt9++62y74gRI0bQtddeS0eC//73vzRp0iQKCQlR2r744guyO7t376bbbruNkpKSKCgoiIKDg+mYY46hhx56iPbu3XukswcAAB6N/5HOAAAASISDn7///e/q55NOOomkw8HPvHnzOgyAFi9eTGFhYb2eJ03T6JJLLlFBxFdffaUCoNGjR5Od+frrr+myyy6jQYMGqQDo2GOPVUHb1q1bacGCBfTNN9/Qpk2bjnQ2AQDAY0HwAwAAHkRjY6PqDPv7e07zzR34I8G+ffuotLSU5s6dS6eeeqphsMojLEeSPXv2qMCHg7Xly5dTeHi44/9OOeUU+vOf/6wCSXdw3Xj77bctjbRlZ2fTyJEjVZreEKgDALwbTHsDAAALcKeyX79+lJmZSWeffbb6OTY2lu655x6qr693dCYHDx6sfubRH+6Q8se5Q7pr1y664ooraMiQIRQYGEhHH320GjlxhqfMsd1//vMf9f3Dhg1T13La+pS8H3/8kf7whz/QgAED1MjGnDlz1LSp9vCowfjx46lv377qWg4IfvvtN0O9H330EZ1xxhkUHR2tpmBxPu+77z6qrq52KRM977pW/nA5dDbtLTc3l6666ioX/S+++CK1tLQ4rmF7/p4XXniB/vnPf6oOOpf39OnTad26dW7zzSNQMTEx6ue//e1v6ns4H/r/8e8bN26kiy66iCIiIighIUH9X11dHd1///0qrT59+qgyv/XWW+ngwYMu38/fde6556qRGg7u9LLh3xn2D//OPpkyZYqpqZOskcv1tddecwl8dDjPF1xwgeH3AAAA6BwEPwAA0IXRl/POO0+NJnz55Zf0xz/+kV566SV69tln1f9zoPD999+rn6+77jpau3at+jz88MPq3K+//kqTJ0+mjIwM1eHnDvM555yjnuzrU+Wc4c44Bwvz58+nJUuWqIBBh7/f19eXFi5cSC+//DKlpaWpp/fOnfV//OMf6jp+b+Tzzz+nV155hbZs2aKCCA7C3MH/z0Hev//9b6XpzjvvpI8//lgFWTqsi4MIRtfKHy6HjigpKaEZM2bQDz/8QE888YSaknbaaafRvffeq6Z6tYcDKw7yWN8HH3ygAgTOU3l5eaf5vv7665VW5vbbb1f5aT9qwoHEqFGj6JNPPlFly9Pkzj//fBVsXX311WqK2d13303vvvuuGnnRg1udX375RfmGgytOiwMW/s5HH32U3nrrLXr66adVfjmfHCjV1ta6LWsuj8jISJo2bZrb6wAAABwGGgAAgA55++23NW4m09PTHed+//vfq3Mff/yxy7Vnn322Nnr0aMfvJSUl6rpHH330kO+dPXu2FhMTo5WXl7ucv+2227S+fftqpaWl6vfly5er7zjhhBM6zdvcuXNdzq9evVqdf/LJJ9XvZWVlWlBQkMqfM7m5uVpgYKB2xRVXOM5xXt39WWhpadEaGxu1lJQUdd0vv/zi+L9bb721U9u4uDhVbjr33XefujY1NdXluj/96U+aj4+PtmPHDvX7nj171HVjx47VmpqaHNelpaWp84sWLeo0r872zz//vMt5Xecjjzzicv77779X55977jmX8x999JE6/+abb7po4nLNz893nNu8ebO6Ljo6Wquurnac/+KLL9T5r776ym1+2ffTpk3TzNLc3Kz84fzhdP7973+7nHMuu47sMjMzld1PP/3k1g4AACSAkR8AALAITz9yHvlgxo0bRzk5OYa2PK2KVyDjaWf8jklTU5Pjw6MZ/P/tp3RdeOGFnX7flVde6fI7j6jExcWp9zcYHvHgEYf20854qh6PZnBe3MFT6Hh6XlRUFPn5+VFAQACdeOKJ6v/MTJvriGXLltGYMWPUdDBnOI88+sL/7wyPinHazmXNmClvd7Qv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 truncated
"text/plain": [
"(15.0, 60.0)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAzYAAANCCAYAAAC0/FmWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnQd4VMXXxmdbNtn0nkAglIRepRdFRbFjVyxYsKIo+sfee1ds2D6xK4gNG2KhKUgVpEpCDS1ASEhCCiHlfM+ZZZdNQiDJncveu3l/z3PZZElOzn3vuWfmzMydtRARCQAAAAAAAAAwMVZ/OwAAAAAAAAAAWkFhAwAAAAAAADA9KGwAAAAAAAAApgeFDQAAAAAAAMD0oLABAAAAAAAAmB4UNgAAAAAAAADTg8IGAAAAAAAAYHpQ2AAAAAAAAABMDwobAAAAAAAAgOlBYQMAAHXw0UcfCYvFIpYsWdJgjUpKSsRjjz0mZs+ebRp92V8+38Ywbdo0+fuHo1WrVuKaa64R/mDGjBmid+/eIjQ0VJ7b1KlThdHZuHGjGDNmjGjXrp0ICQkRLpdLdO7cWTz00ENi+/bt/nYPAAAMi93fDgAAQCDChc3jjz8uvz7xxBNFoMOFzYQJEw5b3Hz33XciIiLimPtEROKSSy6RBcIPP/wgi5v27dsLI/PTTz+JESNGiLi4OFnc9OzZUxZkK1euFB988IH4+eefxbJly/ztJgAAGBIUNgAAYCLKy8tlR9duN0/65s65P9ixY4fIy8sT559/vhg6dOhRC1GeGfEnmzZtkkUNF2KzZs0SkZGR3v87+eSTxe233y6LxCPBsfHhhx82aIZs8+bNonXr1vJvNoUiHAAQuGApGgAANADuMIaFhYn169eLM888U37dokULMW7cOFFWVubtKMbHx8uvedaGO5t8+HY2161bJy6//HKRkJAgnE6n6Nixo5zx8IWXsfHvffrpp9J+8+bN5c/y3/Ysk/v999/FtddeK2JiYuSMxDnnnCOXMtWER/u7d+8ugoOD5c9yZ/+///476vl++eWXYtiwYSI5OVkui2I/77vvPlFcXFxNE4/vnnPlg3Woaynali1bxJVXXlnt/F9++WVRVVXl/Rn+fbbz0ksviVdeeUV2vlnvAQMGiAULFhzRb545SklJkV/fe++90g774fk//n7p0qXioosuEtHR0aJt27by//bv3y/uv/9++beCgoKk5rfeeqvIz8+vZp9tnX322XKGhQs3jzb8PcPXh7/na9K3b996LWfkc2Rd33rrrWpFjQf2+YILLjiqHQAAaKqgsAEAgEbMmgwfPlzOAnz//fdi1KhRYvz48eL555+X/89FwPTp0+XX1113nZg/f748Hn74YfnemjVrRJ8+fcSqVatkZ547w2eddZYckfcsX/OFO9pcCLzzzjvixx9/lMWAB7ZvtVrFF198IV599VWxaNEiOeru2xF/9tln5c/xcxrffvuteO2118SKFStkgcAF1pHg/+cCbuLEifKc7rjjDjFlyhRZQHng8+ICgfGcKx+sw+HIyckRAwcOFL/99pt48skn5TKxU045Rdx1111y+VVNuGjiAo7P7/PPP5edf/apoKCgTr+vv/56ea7MbbfdJv2pOdvBRUJaWpr46quvpLa8dO28886ThdTIkSPlsq///e9/4uOPP5YzJp7C1cPy5cvlteHCif8WFyNs89FHHxXvv/++eOaZZ6S/7CcXQaWlpUfUmvVITEwU/fv3P+LPAQAAqAMCAABwWD788EPiNLl48WLve1dffbV8b8qUKdV+9swzz6T27dt7v8/JyZE/9+ijj9aye9ppp1FKSgoVFBRUe3/MmDEUHBxMeXl58vtZs2ZJGyeccEKdvp1//vnV3p83b558/6mnnpLf7927l0JCQqR/vmzZsoWcTiddfvnl3vfY1yM1C1VVVVReXk5z5syRP7d8+XLv/9166611/m5qaqrUzcN9990nf3bhwoXVfm706NFksVgoIyNDfr9p0yb5c127dqWKigrvzy1atEi+P2nSpDp99f39F198sdr7nvN85JFHqr0/ffp0+f4LL7xQ7f0vv/xSvv/ee+9VOyfWddu2bd73/v33X/lzycnJVFxc7H1/6tSp8v0ffvjhiP7yte/fvz/Vl8rKSnk9fA/+OxMnTqz2nq92h/u99evXy9/7448/jvh7AABgdDBjAwAADYSXBPnOWDDdunUTWVlZR/1dXurEO3XxUjB+pqOiosJ78CwE/3/NZVYXXnhhnfauuOKKat/zTEhqaqp8XoLhmQqeKai5FIyXz/EsBPtyJHhZGy+ZS0pKEjabTTgcDjFkyBD5f/VZynY4Zs6cKTp16iSXaPnCPvKsCf+/LzybxX/bV2umPnofiZq6ev5uTa0u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 truncated
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
@@ -318,19 +358,113 @@
"ax.set_yticks(ticks)\n",
"ax.grid(visible=True, which='minor', color='silver', linestyle='--')\n",
"ax.grid(visible=True, which='major', color='black', linestyle='-')\n",
"# ax.set_xlim(15,60)\n",
"# ax.set_ylim(15,60)"
"ax.set_xlim(15,60)\n",
"ax.set_ylim(15,60)"
]
},
{
"cell_type": "markdown",
"id": "033d20a4-818c-4585-ae8b-43b8e23d3d64",
"metadata": {},
"source": [
"## Interpolate one pixel from the ETA dataset\n",
"\n",
"- Uniformity\n",
"- Correct assignment"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b0398535-b646-4b3c-9029-0a8b8aa764f1",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Lets take the same eta dataset and interpolate\n",
"n_subpixels = 25\n",
"n_bins = grid_size*n_subpixels\n",
"image_hist = bh.Histogram(\n",
" bh.axis.Regular(n_bins, 0, grid_size), \n",
" bh.axis.Regular(n_bins, 0, grid_size),\n",
" # bh.axis.Regular(e_bins, e_min, e_max),\n",
")\n",
"\n",
"\n",
"with aare.ClusterFile(f'.data/test_{grid_size}x{grid_size}.clust', cluster_size = (grid_size,grid_size)) as f:\n",
" for clusters in f:\n",
" # eta_hist.fill(eta2[:,0], eta2[:,1], energy['sum'])\n",
" hits = p.interpolate(clusters)\n",
" image_hist.fill(hits['x'], hits['y'])\n",
"\n",
"image = image_hist.view()\n",
"x = image_hist.axes.edges.T[0].flat\n",
"y = image_hist.axes.edges.T[1].flat\n",
"\n",
"fig, ax = plt.subplots()\n",
"mesh = ax.pcolormesh(x,y,image)\n",
"fig.colorbar(mesh)\n",
"ax.set_title(f'Image - {image.sum()/1e6}M hits')\n",
"ax.grid()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "4559f6f0-cc46-41cd-b345-8ff81ef4fbd5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAG0CAYAAAAvjxMUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPttJREFUeJzt3QuczdXex/HfmPsMxrgPISIPuUYYeo77LZekE4eOiOhKwqno5FKPdESch3LkiFx68eq4VEgolzwGEeV2RI1bDSOGYUYzY+zn9Vvn7H32ngv/mfY2+/J5v17/Zu//Xnvt/17+e+bbWuu/dpDNZrMJAAAAbqrYzR8GAAAAoQkAAMAiepoAAAAsIDQBAABYQGgCAACwgNAEAABgAaEJAADAghArhWDNjRs35Oeff5YSJUpIUFAQzQYAgA/QJSuvXLkilSpVkmLF8u9PIjS5kQamKlWquLNKAABwm5w+fVruuOOOfB8nNLmR9jDZG71kyZJuqzcrK0s2bNggnTp1ktDQULfV649oK9qLc6vo8TmkrXztvEpNTTWdHva/4/khNLmRfUhOA5O7Q1NUVJSpk9BEW7kT5xZt5QmcV7SVr55Xt5paw0RwAAAACwhNAAAAFhCaAAAALCA0AQAAWEBoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAsITQAAABYQmgAAACwgNAEAAFhAaAIAALCA0AQAAGBBiJVCwE+XrklKWqajIWKjw6RyqUgaBgAQMAhNsBSYOkzfKteysh37IkODZdPo1gQnAEDAIDThlrSHSQPTzL6NpGb54nI8+aqMXL7f7Ke3CQAQKAhNsEwDU73KMbQYACAgMREcAADAAkITAACABYQmAAAACwhNAAAAFhCaAAAALCA0AQAAWEBoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAsITQAAABYQmgAAACwgNAEAAFgQYqUQkJfjyVdd7sdGh0nlUpE0FgDALxGaUGAajiJDg2Xk8v0u+3XfptGtCU4AAL9UpMNz27Ztkx49ekilSpUkKChIVq9e7fK47stre+uttxxl2rRpk+vxP/zhDy71pKSkyIABAyQmJsZsevvSpUsuZU6dOmWOJTo6WsqWLSsjRoyQzMxMD7eAb9LeJA1Ha4bf79hm9m0k17KyJSWNNgMA+Kci7WlKS0uThg0byuOPPy4PP/xwrseTkpJc7n/22WcyZMiQXGWHDh0qr732muN+ZKTrEFH//v3lzJkzsn79enN/2LBhJjh9+umn5n52drZ069ZNypUrJ9u3b5cLFy7IwIEDxWazyaxZs9z6nv0pODEUBwAIJEUamrp27Wq2/FSsWNHl/scffyxt27aVGjVquOyPiorKVdbuyJEjJizt3LlTmjdvbvbNmzdP4uPj5ejRo1K7dm3ZsGGDHD58WE6fPm16vdT06dNl0KBBMnnyZClZsqQb3i0AAPBlPjOn6dy5c7J27Vr54IMPcj22dOlSWbJkiVSoUMGEsAkTJkiJEiXMYwkJCWZIzh6YVIsWLcy+HTt2mNCkZerVq+cITKpz586SkZEhe/fuNUEtL/q4bnapqanmZ1ZWltncxV6XO+ssiBvZ1yU82GZ+5ncMVsrcDkXdVr6G9qKtOK/4DPqKLA/+frdap8+EJg1LGoR69+7tsv/RRx+V6tWrm56mgwcPytixY+Xbb7+VjRs3msfPnj0r5cuXz1Wf7tPH7GU0cDmLjY2VsLAwR5m8TJkyRSZNmpRrv/Zcae+Xu9nfU1GY2kwkcd92Sdz328rcLkXZVr6I9qKtOK/4DAby76v09HT/Ck3vv/++CUgRERG55jPZaW9RrVq1pGnTpvLNN9/Ivffea/br5PCcdL6S834rZXLSgDZq1CiXnqYqVapIp06d3DqkpwlYT5KOHTtKaGio3G5HklLlkbkJ8tGT8VInrmShy9wORd1Wvob2oq04r/gM+oosD/5+t48U+UVo+uqrr8z8o+XLl9+yrAYlbcxjx46Z29oDpUN7OZ0/f97Ru6Rldu3aleuKO/0HytkD5Sw8PNxsOenre+IPtqfqvZViwSGSkR1kfub3+lbK3E5F1Va+ivairTiv+AwG8u+rUIv1+cSK4PPnz5cmTZqYK+1u5dChQybsxMXFmfs64fvy5cuye/duRxkNSLqvZcuWjjI6tOd8tZ4OsWkg0tcFAAAo0p6mq1evyvHjxx33ExMTZf/+/VK6dGmpWrWqo8vso48+Mlez5fTDDz+YSeAPPPCAWVtJr4AbPXq0NG7cWFq1amXK1KlTR7p06WKG8ebOnetYcqB79+5mErjS4bS6deuaZQh0DaiLFy/KmDFjzHO4cg4AABR5T9OePXtMwNFN6fwgvT1+/HhHmWXLlpm5Rf369cv1fJ2o/cUXX5gr3TQA6YKUGoA2bdokwcHBjnIarOrXr28e061BgwayePFix+NaVq/M0/lSGrb69OkjvXr1kmnTpnm8DQAAgG8o0p4mXc1bA9HNaK+QbnnRSddbt2695etoz5UuSXAz2rO1Zs2aW9YFAAACk0/MaQIAAChqhCYAAAALCE0AAAAWEJoAAAAsIDQBAABYQGgCAACwgNAEAABgAaEJAADAAkITAACAt68IDu/006VrkpKW6bh/PPlqkR4PAADegNCEXIGpw/Stci0r22V/ZGiwxEaH0VoAgIBFaIIL7WHSwDSzbyOpWb64Y78GpsqlImktAEDAIjQhTxqY6lWOoXUAAPg3JoIDAABYQGgCAACwgNAEAABgAaEJAADAAkITAACABYQmAAAACwhNAAAAFhCaAAAALCA0AQAAWEBoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAsITQAAABYQmgAAACwgNAEAAFhAaAIAALCA0AQAAGABoQkAAMACQhMAAIAFhCYAAAALCE0AAADeHpq2bdsmPXr0kEqVKklQUJCsXr3a5fFBgwaZ/c5bixYtXMpkZGTI8OHDpWzZshIdHS09e/aUM2fOuJRJSUmRAQMGSExMjNn09qVLl1zKnDp1yhyL1qF1jRgxQjIzMz347gEAgC8p0tCUlpYmDRs2lNmzZ+dbpkuXLpKUlOTY1q1b5/L4yJEjZdWqVbJs2TLZvn27XL16Vbp37y7Z2dmOMv3795f9+/fL+vXrzaa3NTjZadlu3bqZ49E6tK4VK1bI6NGjPfTOAQCArwkpyhfv2rWr2W4mPDxcKlasmOdjly9flvnz58vixYulQ4cOZt+SJUukSpUqsmnTJuncubMcOXLEBKWdO3dK8+bNTZl58+ZJfHy8HD16VGrXri0bNmyQw4cPy+nTp02vl5o+fbrp6Zo8ebKULFnS7e8dAAD4liINTVZs2bJFypcvL6VKlZLWrVubEKP31d69eyUrK0s6derkKK+hp169erJjxw4TmhISEsyQnD0wKR3i031aRkOTltHn2AOT0ufq0J++Rtu2bfM8Nn1cN7vU1FTzU49JN3ex1+XOOvNzI/u6hAfbzM+CvF5hn+dut7Ot/AHtRVtxXvEZ9BVZHvz9brVOrw5N2gv1yCOPSLVq1SQxMVFeffVVadeunQky2gN19uxZCQsLk9jYWJfnVahQwTym9Kc9ZDnTfc5l9DnOtE6t214mL1OmTJFJkybl2q89V1FRUeJuGzdudHudeZnaTCRx33ZJ3Hd7nucJt6ut/AXtRVtxXvEZDOTfV+np6b4fmvr27eu4rT1BTZs2NQFq7dq10rt373yfZ7PZzKRxO+fbv6VMTmPHjpVRo0a59DTp0KD2fLlzSE8TsJ4kHTt2lNDQUPGkI0mp8sjcBPnoyXipE1fS489zt9vZVv6A9qKtOK/4DPqKLA/+frePFPl0aMopLi7OhKZjx46Z+zrXSa9w06vjnHubkpOTpWXLlo4y586dy1XX+fPnHb1LWmbXrl0uj2ud+g+UswfKmfZ26ZaT/mN64g+2p+p1Viw4RDKyg8zPgrxWYZ/nKbejrfwJ7UVbcV7xGQzk31ehFuvzqXWaLly4YCZra3hSTZo0MW/UuatOr7A7ePCgIzTphG+dML57925HGQ1Ius+5jD5Hn+s8xKaBSF8DAACgSHuadHmA48ePO+7rvCVdDqB06dJmmzhxojz88MMmJJ04cULGjRtn1lB66KGHTHmdzD1kyBCzNECZMmXMc8aMGSP169d3XE1Xp04ds2zB0KFDZe7cuWbfsGHDzLIEOglc6XBa3bp1zTIEb731lly8eNHUo8/hyjkAAFDkoWnPnj0uV6bZ5wcNHDhQ5syZIwcOHJBFixaZhSg1OGnZ5cuXS4kSJRzPmTFjhoSEhEifPn3k2rVr0r59e1m4cKEEBwc7yixdutQsVmm/yk4XwHReG0rL6jypZ555Rlq1aiWRkZFmbadp06bdppYAAADerkhDU5s2bcxk6/x8/vnnt6wjIiJCZs2aZbb8aA+Urt90M1WrVpU1a9bc8vUAAEBg8qk5TQAAAEWF0AQAAGABoQkAAMACQhMAAIAFhCYAAAALCE0AAAAWEJoAAAAsIDQBAABYQGgCAACwgNAEAABgAaEJAADAAkITAACABYQmAAAACwhNAAAAFhCaAAAALCA0AQAAWEBoAgAAsIDQBAAAYAGhCQAAwAJCEwAAgAWEJgAAAAsITQAAABYQmgAAACwgNAEAAFhAaAIAALCA0AQAAGABoQkAAMACQhMAAIAFhCYAAAALQqwUAqw6nnzVcTs2Okwql4qk8QAAfoHQBLfQgBQZGiwjl+937NP7m0a3JjgBAPwCoQluoT1KGpBS0jIdPU4aoPQ+vU0AAH9AaILbaDgiIAEA/BUTwQEAACwgNAEAABCaAAAA/KCnadu2bdKjRw+pVKmSBAUFyerVqx2PZWVlyUsvvST169eX6OhoU+axxx6Tn3/+2aWONm3amOc6b3/4wx9cyqSkpMiAAQMkJibGbHr70qVLLmVOnTpljkVfq2zZsjJixAjJzPzLine truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"err_hist = bh.Histogram(\n",
" bh.axis.Regular(100, 0, 3) #um\n",
")\n",
"with aare.ClusterFile(f'.data/test_{grid_size}x{grid_size}.clust', cluster_size = (grid_size,grid_size)) as f:\n",
" with h5py.File(f'.data/test_{grid_size}x{grid_size}.h5') as hf:\n",
" \n",
" for i in range(100):\n",
" clusters = f.read_frame()\n",
" x,y = hf['x'][i], hf['y'][i]\n",
" # eta_hist.fill(eta2[:,0], eta2[:,1], energy['sum'])\n",
" hits = p.interpolate(clusters)\n",
" # image_hist.fill(hits['x'], hits['y'])\n",
" error = np.sqrt(np.abs(hits['x']*pixel_size-x)**2+np.abs(hits['y']*pixel_size-y)**2)\n",
" err_hist.fill(error)\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.stairs(err_hist.values(), err_hist.axes[0].edges);\n",
"ax.set_xlabel(r'Distance from truth [$\\mu$m]')\n",
"ax.set_ylabel('Intensity [a.u.]')\n",
"ax.grid()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b0398535-b646-4b3c-9029-0a8b8aa764f1",
"id": "5867d1ce-5c41-42ad-853e-ee4aaf151621",
"metadata": {},
"outputs": [],
"source": [
"tmp"
]
"source": []
}
],
"metadata": {
+1 -1
View File
@@ -1,2 +1,2 @@
from .generate import gaussian_2d, Generator
from .generate import Generator
from .plotting import plot_gaussian
+17 -95
View File
@@ -2,19 +2,11 @@ import torch
import math
import numpy as np
def gaussian_2d(mx, my, sigma = 1, res=100, pixel_size = 25, grid_size = 2):
"""
Generate a 2D gaussian as position mx, my, with sigma=sigma.
The gaussian is placed on a grid_size x grid_size pixel matrix with resolution
res in one dimesion.
"""
x = torch.linspace(0, pixel_size*grid_size, res)
x,y = torch.meshgrid(x,x, indexing="ij")
return 1 / (2*math.pi*sigma**2) * \
torch.exp(-((x - my)**2 / (2*sigma**2) + (y - mx)**2 / (2*sigma**2)))
def sum_pixels(t, grid):
"""
Given a charge density as a torch array sum it to pixels
"""
if t.ndim == 2:
resolution = t.shape[0]
pixels = np.zeros((grid,grid))
@@ -45,14 +37,25 @@ class Generator:
self.device = device
def hit(self, mx, my):
x = torch.linspace(0, self.pixel_size*self.grid_size, self.resolution)
x = torch.linspace(0, self.pixel_size*self.grid_size,
self.resolution, device = self.device)
x,y = torch.meshgrid(x,x, indexing="ij")
t = 1 / (2*math.pi*self.sigma**2) * \
torch.exp(-((x - my)**2 / (2*self.sigma**2) + (y - mx)**2 / (2*self.sigma**2)))
p = sum_pixels(t, self.grid_size)
if self.device != 'cpu':
t = t.cpu()
return t, p
def dx(self):
"""
Return the step for normalizing of the gaussian
"""
x = torch.linspace(0, self.pixel_size*self.grid_size,
self.resolution, device = self.device)
return x[1]-x[0]
def uniform_hits(self, n_hits):
x = torch.linspace(0, self.pixel_size*self.grid_size, self.resolution, device = self.device)
x,y = torch.meshgrid(x,x, indexing="ij")
@@ -126,87 +129,6 @@ class Generator:
pixels[:,i,j] = ts[:,i*step:(i+1)*step, j*step:(j+1)*step].sum(axis = 1).sum(axis = 1)
return mx, my, pixels
def generate_triangle_hits(sigma, pixel_size, grid_size, resolution, N=100, device = 'cpu'):
"""
Generate N gaussians. For even grid size use the four inner corners of the central pixel
For odd corners the whole central pixel
"""
x = torch.linspace(0, pixel_size*grid_size, resolution, device = device)
x,y = torch.meshgrid(x,x, indexing="ij")
xs = x.unsqueeze(0).repeat(N,1,1)
ys = y.unsqueeze(0).repeat(N,1,1)
if grid_size % 2 == 0:
#For even grids spread hits over the inner quadrants around the center
low = (grid_size-1)//2*pixel_size+pixel_size/2
high =pixel_size+low
else:
#For odd grids spread hits over the central pixel
low = pixel_size*(grid_size//2)
high = low+pixel_size
mx = torch.rand(N,1,1, device = device)
my = torch.rand(N,1,1, device = device)
mask = (mx + my > 1)
mx[mask] = 1 - mx[mask]
my[mask] = 1 - my[mask]
mx = mx * (high-low) + low
my = my * (high-low) + low
# mx = torch.rand(N,1,1, device = device) * (high-low)+low
# my = torch.rand(N,1,1, device = device) * (high-low) +low
ts = 1 / (2*math.pi*sigma**2) * \
torch.exp(-((xs - my)**2 / (2*sigma**2) + (ys - mx)**2 / (2*sigma**2)))
#Sum signal in pixels for all N depositions
step = resolution//grid_size
pixels = torch.zeros((N,grid_size,grid_size))
for i in range(grid_size):
for j in range(grid_size):
pixels[:,i,j] = ts[:,i*step:(i+1)*step, j*step:(j+1)*step].sum(axis = 1).sum(axis = 1)
return mx, my, pixels
def generate_uniform_hits(sigma, pixel_size, grid_size, resolution, N=100, device = 'cpu'):
"""
Generate N gaussians. For even grid size use the four inner corners of the central pixel
For odd corners the whole central pixel
"""
x = torch.linspace(0, pixel_size*grid_size, resolution, device = device)
x,y = torch.meshgrid(x,x, indexing="ij")
xs = x.unsqueeze(0).repeat(N,1,1)
ys = y.unsqueeze(0).repeat(N,1,1)
if grid_size % 2 == 0:
#For even grids spread hits over the inner quadrants around the center
low = (grid_size-1)//2*pixel_size+pixel_size/2
high =pixel_size+low
else:
#For odd grids spread hits over the central pixel
low = pixel_size*(grid_size//2)
high = low+pixel_size
mx = torch.rand(N,1,1, device = device) * (high-low)+low
my = torch.rand(N,1,1, device = device) * (high-low) +low
ts = 1 / (2*math.pi*sigma**2) * \
torch.exp(-((xs - my)**2 / (2*sigma**2) + (ys - mx)**2 / (2*sigma**2)))
#Sum signal in pixels for all N depositions
step = resolution//grid_size
pixels = torch.zeros((N,grid_size,grid_size))
for i in range(grid_size):
for j in range(grid_size):
pixels[:,i,j] = ts[:,i*step:(i+1)*step, j*step:(j+1)*step].sum(axis = 1).sum(axis = 1)
return mx, my, pixels