Files
simple_eta/ClusterFinding.ipynb
Erik Fröjdh 3dbd83f405 compare eta
2025-11-24 17:09:41 +01:00

205 lines
88 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "f00020f5-058d-416a-a582-a021ff453e9c",
"metadata": {},
"source": [
"# Testing cluster finder"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "5d0d5087-aaa7-4d76-b4ed-cfe151193737",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib as mpl\n",
"from matplotlib.ticker import (MultipleLocator, AutoMinorLocator)\n",
"import time \n",
"import h5py\n",
"import numpy as np\n",
"import aare\n",
"import boost_histogram as bh\n",
"import seaborn as sns\n",
"import pickle\n",
"\n",
"#Debugging\n",
"import torch\n",
"\n",
"from simple_eta import plot_cluster_finding\n",
"from simple_eta import generate, Generator\n",
"\n",
"\n",
"g = Generator.fromJSON('moench_g4_hg.json')\n",
"g.device = 'mps'\n",
"g.photon_energy = 8.0\n",
"g.image_size = (10,15)\n",
"\n",
"tag = '_B'"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "c8060148-fa8b-49ae-a35e-f3ff62f1f95d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAFECAYAAADRD+YnAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUP1JREFUeJzt3Qd8VFX68PEnvSBBAkIoASIiICACIkWWshRBpVhARSmKiksXCyIW1FXEdQEFxdX1DyhSdlcplqWtAvJSpIPoIkgLCGIBAgESkpn38xx3xkwKmcCdmzuT39fPMcydO+fMZJI889zTwtxut1sAAAAAAEBAhAemWgAAAAAAQOINAAAAAECA0eMNAAAAAEAAkXgDAAAAABBAJN4AAAAAAAQQiTcAAAAAAAFE4g0AAAAAQACReAMAAAAAEEAk3gAAAAAABBCJN1CM2rZtawoAALBf//79pUaNGgGp+/Tp0zJ27FhZvnz5Bdexb98+CQsLk+nTp1v63ADYL7IY2gTwP2+++SbfCwAAQpAm3s8995z5NxfZAZB4A8Xoqquu4vsPAAAAhDiGmgNFoEPGdMjXjh075K677pIyZcpIxYoV5b777pMTJ054zzt79qyMHj1aUlJSJDo6WqpUqSKDBw+W48ePFzrUfOrUqdKwYUO55JJLpHTp0lKnTh158sknfc45cuSIDBw4UKpWrWrq13b0qnpWVhbvJwAgZOLt5s2b5dZbb5WEhAQTc++55x756aeffM6dO3eutGjRQkqVKmVi5w033GAel5sO165du7bExMRI3bp15b333su37czMTPnzn/9s4q+ee9lll8m9996bp93PP//cxPBy5cpJXFycVKtWTW677TbT061DxPVxSuOzvhYtOrRd7d6929RZq1YtiY+PN58TunbtKtu3b7fwuwjASejxBi6ABtY77rhDBgwYYIKkJtnq//7v/8TtdkuPHj3kP//5jzn+hz/8QbZt2ybPPvusrFmzxhQN5PmZM2eODBo0SIYOHSqvvvqqhIeHm+D8zTff+CTd1113nbnvmWeekZo1a5o69UOCBvpp06bxngIAQsItt9wivXr1koceeshc9H766adNTFy3bp1ERUXJSy+9JE899ZRJYvWrJs1/+ctfTOz96quvvCPLNOnWc7p37y5//etfzcVyTe4zMjJMPPVwuVzmnC+//FIef/xxadmypezfv9/EcE2yN2zYYJJsjbc33XSTaUdj/6WXXiqHDh2SRYsWmedQqVIl8+/OnTubzwr333+/qd+TjP/www8mYX/55ZfNsV9//VVmzJghzZo1MxcN9AIBgBDjBuC3Z5991q2/Nq+88orP8UGDBrljY2PdLpfLvWjRonzPmTt3rjn+9ttve4+1adPGFI8hQ4a4L7300vM+h4EDB7ovueQS9/79+32Ov/rqq6b+HTt28I4CAEIi3j788MM+xz/44ANzfObMme4DBw64IyMj3UOHDvU55+TJk+6kpCR3r169zO3s7Gx35cqV3Y0bNzZx2mPfvn3uqKgod/Xq1b3HZs+eber/8MMPfepcv369Of7mm2+a2//617/M7S1bthT4Gn766Sdzjr6WwmRlZbkzMzPdtWrV8nnNe/fuNXVMmzat0DoAOBtDzYEL0K1bN5/bV199tRlefvToUTP0THmGk3n07NnTDIPTnvCCaE+2DkfXYewLFiyQn3/+Oc85n3zyibRr104qV65shpZ7SpcuXcz9K1as4D0FAISEu+++2+e29n5HRkbKF198IYsXLzbxr2/fvj7xMDY2Vtq0aeNdTXznzp2mh7l3795muLdH9erVTY927hirvdc67Dtnnddcc40kJSV569TbOtXrwQcfND3Ve/bsKdLr0jq1t1575LUefU36ddeuXfLtt99exHcMgFOReAMXQIeH5eQZOn7mzBn55ZdfTAD1DCfz0GCvQVvvL0ifPn3MkDUd1qbD2StUqGCGnS1dutR7zo8//igff/yxGWKXs9SrV8/cn1+yDgBAMNK4mZPGV43BGks1HqqmTZvmiYk679sTDz1xN3dd+R3TOvUCuCbBuevUqV6eOnWa17Jly0yc1jVc9LaW1157za/XNXLkSDNsXqemaUzXofPr1683a7zoZwkAoYc53oDF9AOBXsnWRVhyJt8691uDtn5AOB+dg6YlPT1dVq5caeaV3XzzzfLdd9+Zq/Ply5c3Pewvvvhivo/XnnAAAEKBxk1deMxD46sm0hprNR6qf/3rXyY+FnaxXOvKr/6ctE49X+dn50cXPfXQ+d1asrOzzdzvyZMny4gRI8yiq3feeed5X9fMmTNNT732euekib32uAMIPSTegMXat28vr7zyigmqDz/8sPf4hx9+aJJpvd8fOixdh4/rIi16RVwXldEPFpqE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",
"text/plain": [
"<Figure size 1000x500 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Create cluster finder and initialize pedestal\n",
"cf = aare.ClusterFinder(g.image_size)\n",
"for i in range(1000):\n",
" cf.push_pedestal_frame(g.dark())\n",
"\n",
"#plotting\n",
"fig, axs = plt.subplots(1,2, figsize = (10,5))\n",
"im = axs[0].imshow(cf.noise, origin = 'lower')\n",
"axs[0].set_title('noise')\n",
"aare.add_colorbar(axs[0], im)\n",
"im = axs[1].imshow(cf.pedestal, origin = 'lower')\n",
"axs[1].set_title('pedestal')\n",
"aare.add_colorbar(axs[1], im)\n",
"fig.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 86,
"id": "9c8be894-145c-4e87-b83b-5fd449567474",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 800x800 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Load ETA for interpolation\n",
"with open(f\".data/test_{g.grid_size}x{g.grid_size}{tag}.pkl\", \"rb\") as f:\n",
" eta_hist = pickle.load(f)\n",
" \n",
"etabinsx = np.array(eta_hist.axes.edges.T[0].flat)\n",
"etabinsy = np.array(eta_hist.axes.edges.T[1].flat)\n",
"ebins = np.array(eta_hist.axes.edges.T[2].flat)\n",
"p = aare.Interpolator(eta_hist, etabinsx, etabinsy, ebins)\n",
"\n",
"n_photons = 2\n",
"\n",
"image, hits = g.sparse(n_photons)\n",
"cf.find_clusters(image)\n",
"clusters = cf.steal_clusters()\n",
"interpolated_hits = p.interpolate(clusters)\n",
"\n",
"\n",
"fig, ax = plot_cluster_finding(image = image-cf.pedestal, clusters = clusters, hits = hits, interpolated_hits = interpolated_hits)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "bee45536-bc61-43da-a058-af8d40287ca2",
"metadata": {},
"outputs": [],
"source": [
"err_hist = bh.Histogram(\n",
" bh.axis.Regular(50, 0, 10) #um\n",
")\n",
"hist = bh.Histogram(\n",
" bh.axis.Regular(50, 0, 12) #um\n",
")\n",
"\n",
"n_photons = 1\n",
"n_frames = 1000\n",
"\n",
"for i in range(n_frames):\n",
" image, hit_pos = g.sparse(n_photons)\n",
" cf.find_clusters(image)\n",
" clusters = cf.steal_clusters()\n",
" arr = np.array(clusters)\n",
"\n",
" x,y = hit_pos[:,0], hit_pos[:,1]\n",
"\n",
" interpolated_hits = p.interpolate(clusters)\n",
" error = np.sqrt(np.abs(interpolated_hits['x']-x)**2+np.abs(interpolated_hits['y']-y)**2)\n",
" err_hist.fill(error*g.pixel_size)\n",
" hist.fill(clusters.sum()/g.gain)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "d526a266-84e4-45bc-b771-2753a621d2a9",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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fd59991nyqpTp0627t2721atWmXK5s4777Sdd955tn79+tneeeedVh+TvQwbOyalx/z888877WPQoEGOsmtufy2Vd331zwO7Dz/80BYWFmbKyO6rr74yr/X111+3u2x0P1u2bGn22AAAgP/RekpoaKgtJibGaXniiSec6gGPPfaY477WHUJCQkzdUi1atMiWlpbmtN9jx46Z5x06dMhRDxk8eLDTNg8//LCpz9a1cOFC87zi4mJz/89//rM5vhMnTpj7//jHP2zh4eG2Dz74oE31pffff9/s9y9/+Yupp02ZMsVWWVnpeFzrtBs2bHB6zpNPPmkbOXKk0/FqvU/ru/a6lpbDu+++2+AYGqsfAvANtFgDgsS1114rgwYNMl1A69Orgrfeeqvcdddd5oqaznI0ZcoUM1aZdt0bOXKko7ugLr169TLP0+b02vx+9+7d5upchw4dTJP+ul1O9aqcXh3885//LMuWLZMnnnhCcnNzHY8vWLBAli5daq7gaZP/DRs2mOb+do899pi5ivjiiy/KgQMH5MEHHzRN4/Py8hr9PfV49TV0gFc9Vj22pq5qzp8/X1577TWz/pNPPpGLL75Yxo8f77haWvd52sXg448/ljlz5si///u/y9SpU02LOH2ePke7J5SXlzd5TE2VYf1jao2W9tdcebeWXuXVrgvalaPuuk6dOkmfPn3cVjYAACDwaG8JrTfUXe69916nbeyD8yutu2hrsaKiInN/7969ppukdgO1L9qV0t4zwW7YsGFO+zx06JBceeWVTuuGDx/e4P6AAQPklVdeMfdfffVV6d27t1xzzTUu/a5jx46Vfv36yX//939LRESEWfePf/xDjh07Zrp71v0dnnrqKafj18ePHj0qf/rTnxyt1bQOq/sE4D+s7/cDwGdohUSb29enwYx2EdUwzR6aDBw40PG4VhLs3QXr+vGPf+x0f82aNdK9e3cTkNnH69JK0+OPP25+1vEuVq5caUI4HQdDx7HQkEjXzZw502xz0UUXydVXX+0I7pYvX24qGxokKa247Nixw4RQ2kWgsa6GWjHTAV7rH68GZxo22fetYZ02v58wYYJZp032NYTS3+Ohhx5yPE8DSQ347EHgM888Y8IkDbbUL37xC7MvLVsdV6OxY2qqDOseU2s1t7/myrstPv30UxkyZIjTOq0Ua1nU1d6yAQAAgUeD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",
"text/plain": [
"<Figure size 1500x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"\n",
"fig, axs = plt.subplots(1,2, figsize = (15,5))\n",
"axs[0].stairs(err_hist.values(), err_hist.axes[0].edges);\n",
"axs[0].set_xlabel(r'Distance from truth [$\\mu$m]')\n",
"axs[0].set_ylabel('Intensity [a.u.]')\n",
"\n",
"\n",
"\n",
"axs[1].stairs(hist.values(), hist.axes[0].edges);\n",
"axs[1].set_xlabel(r'Energy [keV]')\n",
"axs[1].set_ylabel('Intensity [a.u.]')\n",
"\n",
"for ax in axs:\n",
" ax.grid()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.13.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}