diff --git a/docs/examples/prt.ipynb b/docs/examples/prt.ipynb index 4b5e200..6480cd6 100644 --- a/docs/examples/prt.ipynb +++ b/docs/examples/prt.ipynb @@ -283,8 +283,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Ignore: 1, Coincidence: 3, Anti-Coincidence: 0\n", - "Coincidence between A, B and C\n" + "Ignore: 1, Coincidence: 3, Anti-Coincidence: 0\n" ] } ], @@ -436,7 +435,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Found 6418 coincidence events\n" + "Found 6447 coincidence events\n" ] } ], @@ -458,7 +457,7 @@ "outputs": [ { "data": { - "image/png": "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utrrMYeFhdW6tWYymRpURmlpKXQ6HXbt2lVrnTu3jRy9FvW9PldddRUGDBiAtWvXYvDgwfjvf/+LadOm2SWGROQe1ugQEcxmM/773//ixRdfxMGDB+V/P//8M/R6Pd57771GH+PHH3+0e/7DDz/gqquucqkXkUqlAoBatT+JiYnIzc2Vn1ssFhw6dEh+3rVrV5jNZmRmZsrLjh07hsLCQvl57969cf78eURERKBTp052/xISEhp0jo0xdepUfPTRR/joo49w7tw5uwbVROQ+JjpEhC1btsBgMGDq1Km45ppr7P6NHTvW4e2rhjp9+jTmzp2LY8eO4b333sPLL7+M2bNnu7Rvy5YtoVarsW3bNuTl5aGoqAgAcPPNN2Pr1q3YunUrjh49ipkzZ9olMV26dMHw4cPx0EMP4ccff0RmZiYefPBBqNVqeZu0tDT0798fd955J7788kucOnUK33//Pf72t79h//79jT5vV91zzz1QKpV46KGHMHToUCQnJ/vs2ETBjIkOEWH16tVIS0uzuz0lGTt2LPbv349ffvmlUcf4y1/+AqPRiL59+yI9PR2zZ8/G9OnTXdo3IiICL730El5//XXo9XqMHj0agLVty8SJE/GXv/wFgwYNQkpKCoYMGWK379q1a6HX6zFo0CCMGTMG06dPR8uWLeX1CoUCn332GQYOHIjJkyejc+fOuO+++/DHH38gKSmpUefcENHR0bjvvvtgMBgwZcoUnx2XKNgpRM0b3EREHjZ48GD06tUraKYuOHXqFDp06ICffvrJZ1NASNq3b485c+bUGj+IiBxjjQ4RkZtuvPFG3HjjjT451j//+U/ExMTUGliQiOrGXldERA3Upk0b/P777wDgs2kqZsyYgXvvvReAtRE2EbmGt66IiIgoaPHWFREREQUtJjpEREQUtJjoEBERUdBiokNERERBi4kOERERBS0mOkRERBS0mOgQERFR0GKiQ0REREGLiQ4REREFrf8PJ5GjteCwmU4AAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAHHCAYAAAC2rPKaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcytJREFUeJzt3Xl4U2X6N/Bv2iZtSmkT2tI2UJaCgKCAVkAc2bSCCIqCio4wbKI4ZYZFUdFRYF4dFEZg1CqKLI6i4ILggKKCIPoDBYqogIDQIktLSyHd0zZJn/ePeA5Jk7ZJmz3fz3X1anLW+5yT5c5znkUhhBAgIiIiCkJhvg6AiIiIyFOY6BAREVHQYqJDREREQYuJDhEREQUtJjpEREQUtJjoEBERUdBiokNERERBi4kOERERBS0mOkRERBS0mOgQAVAoFJg/f778fM2aNVAoFDh16pTb9nHq1CkoFAr8+9//dts2fUk6njVr1vhk/xMnTkSHDh08tn1XXgMdOnTAxIkTPRYLETUdEx0Keq+99hoUCgX69evnsX0cPHgQ48aNQ2pqKiIjI9GqVStkZGRg9erVMJvNHttvICkoKMBjjz2Gbt26ITo6Gi1atEB6ejqee+45FBcX+zo8+oPZbMbq1asxePBgtGrVCpGRkejQoQMmTZqE/fv3+zo8AMCRI0cwf/58t/4QoeAV4esAiDxt7dq16NChA/bu3YsTJ06gc+fObt3+W2+9hWnTpiEpKQnjx4/HFVdcgbKyMmzfvh1TpkxBfn4+nnrqKbfuM9Ds27cPt912G8rLyzFu3Dikp6cDAPbv348XXngBu3btwpdffunSNlesWIHa2lpPhAsAGD9+PO677z5ERkZ6bB/+xmAwYPTo0di6dSsGDhyIp556Cq1atcKpU6fwwQcf4O2338bp06fRtm1bn8Z55MgRLFiwAIMHD/ZoqR4FByY6FNRyc3Oxe/dubNiwAQ8//DDWrl2LefPmuW3733//PaZNm4b+/fvjs88+Q8uWLeV5M2fOxP79+3Ho0CG37S8QFRcX46677kJ4eDh+/PFHdOvWzWb+888/jxUrVri8XaVS6a4QHQoPD0d4eLhH9+Fv5syZg61bt2Lp0qWYOXOmzbx58+Zh6dKlvgmMqBl464qC2tq1a6HVajFixAjcfffdWLt2rVu3v2DBAigUCqxdu9YmyZFcd911DutuvPnmm+jUqRMiIyPRp08f7Nu3z2b+zz//jIkTJyItLQ1RUVFITk7G5MmTcfHiRZvl5s+fD4VCgRMnTmDixInQaDSIi4vDpEmTUFlZabOsQqHA9OnTsXHjRlx11VWIjIxEjx49sHXrVrv4zp07h8mTJyMpKUlebtWqVU04Q8Abb7yBc+fOYcmSJXZJDgAkJSXhH//4h8201157DT169EBkZCR0Oh0yMzPtbm/VraNjXQeqsfMLAEePHsW9996LxMREqNVqdO3aFU8//bQ831EdHSEEnnvuObRt2xbR0dEYMmQIDh8+7PC4i4uLMXPmTPl2ZufOnfHiiy/alEK5O2ag6dfu7NmzeOONN3DLLbfYJTmAJfF77LHHbEpzfvzxRwwfPhyxsbGIiYnBzTffjO+//95mPek1Wpej89uhQweMHDkS3333Hfr27YuoqCikpaXhv//9r81699xzDwBgyJAhUCgUUCgU2LlzJwBLKeGwYcOQkJAAtVqNjh07YvLkyY0ePwUvluhQUFu7di1Gjx4NlUqF+++/H6+//jr27duHPn36NHvblZWV2L59OwYOHIh27do5vd57772HsrIyPPzww1AoFFi0aBFGjx6NnJwcuZTiq6++Qk5ODiZNmoTk5GQcPnwYb775Jg4fPozvv//e7ovj3nvvRceOHbFw4UIcOHAAb731Flq3bo0XX3zRZrnvvvsOGzZswF//+le0bNkSL7/8MsaMGYPTp08jPj4egKUuzfXXXy8nRomJifj8888xZcoUlJaWOvwSbMinn34KtVqNu+++26nl58+fjwULFiAjIwOPPPIIjh07Jl+3//u//2u0JMeZ8/vzzz9jwIABUCqVeOihh9ChQwecPHkS//vf//D888/Xu+1nn30Wzz33HG677TbcdtttOHDgAIYOHYqamhqb5SorKzFo0CCcO3cODz/8MNq1a4fdu3dj7ty5yM/Px7JlyzwSc3Ou3eeffw6TyYTx48c3eH4lhw8fxoABAxAbG4vHH38cSqUSb7zxBgYPHoxvvvmmyXXiTpw4gbvvvhtTpkzBhAkTsGrVKkycOBHp6eno0aMHBg4ciL///e94+eWX8dRTT+HKK68EAFx55ZUoLCzE0KFDkZiYiCeffBIajQanTp3Chg0bmhQLBQlBFKT2798vAIivvvpKCCFEbW2taNu2rZgxY4bdsgDEvHnz5OerV68WAERubm692//pp58EAIfbcyQ3N1cAEPHx8eLSpUvy9E2bNgkA4n//+588rbKy0m79999/XwAQu3btkqfNmzdPABCTJ0+2Wfauu+4S8fHxdseoUqnEiRMn7I7hlVdekadNmTJFpKSkiKKiIpv177vvPhEXFyfHJh3P6tWrGzxurVYrevXq1eAyksLCQqFSqcTQoUOF2WyWp7/66qsCgFi1apU8bcKECaJ9+/byc1fO78CBA0XLli3F77//brP/2tpa+XHd14AU24gRI2yWe+qppwQAMWHCBHna//t//0+0aNFCHD9+3Gb7Tz75pAgPDxenT5/2SMzOXjtHZs2aJQCIH3/8sd5lrN15551CpVKJkydPytPy8vJEy5YtxcCBA+Vp0mu0Lkfvsfbt29u9xgsLC0VkZKR49NFH5WkffvihACB27Nhhs81PPvlEABD79u1z6hgoNPDWFQWttWvXIikpCUOGDAFguXUzduxYrFu3zi0toUpLSwHA4S2rhowdOxZarVZ+PmDAAABATk6OPE2tVsuPq6qqUFRUhOuvvx4AcODAAbttTps2zeb5gAEDcPHiRTlGSUZGBjp16iQ/79mzJ2JjY+V9CyHw8ccf4/bbb4cQAkVFRfLfsGHDUFJS4nD/DSktLXX6HG3btg01NTWYOXMmwsIufzxNnToVsbGx2LJlS6PbaOz8XrhwAbt27cLkyZPtSuIc3WKpG9vf/vY3m+UclZJ8+OGHGDBgALRarc05zMjIgNlsxq5du9wec3OvnSuvZ7PZjC+//BJ33nkn0tLS5OkpKSn485//jO+++87utees7t27y8cPAImJiejatavN+6M+Go0GALB582YYjcYm7Z+CDxMdCkpmsxnr1q3DkCFDkJubixMnTuDEiRPo168fCgoKsH379mbvIzY2FgBQVlbm0np1v6ikLzi9Xi9Pu3TpEmbMmIGkpCSo1WokJiaiY8eOAICSkpImbdPRctKy0nIXLlxAcXEx3nzzTSQmJtr8TZo0CQBQWFjo0vHGxsY6fY5+//13AEDXrl1tpqtUKqSlpcnzG9LYuZC+MK+66iqnYqob2xVXXGEzPTEx0SZJAYDffvsNW7dutTuHGRkZAOzPoTtibu61c+X1fOHCBVRWVtpdJ8ByC6m2thZnzpxpdDuONPYabcigQYMwZswYLFiwAAkJCRg1ahRWr16N6urqJsVCwYF1dCgoff3118jPz8e6deuwbt06u/lr167F0KFDm7WPzp07IyIiAr/88otL69XXkkcIIT++9957sXv3bsyZMwe9e/dGTEwMamtrceuttzpsUu3MNp1ZTtr2uHHjMGHCBIfL9uzZ0+H0+nTr1g0HDx5ETU0NVCqVS+s2hbPnwpNqa2txyy234PHHH3c4v0uXLjbP3RFzc6+dVFH8l19+Qe/evZ3eb2PqKyWrr1S1OedCoVDgo48+wvfff4///e9/+OKLLzB58mS89NJL+P777xETE+N84BQ0mOhQUFq7di1at26NrKwsu3kbNmzAJ598guXLl9vcInJVdHQ0brrpJnz99dc4c+YMUlNTmxOyTK/XY/v27ViwYAGeffZZefpvv/3mlu03JDExES1btoTZbJZLH5rr9ttvx549e/Dxxx/j/vvvb3DZ9u3bAwCOHTtmc0ukpqYGubm5bolJ2q6rzf6l2H777Teb2C5cuGBX2tCpUyeUl5e77Rw6E3Nzr93w4cMRHh6Od999t9EKyYmJiYiOjsaxY8fs5h09ehRhYWHy+0EqnSouLpZvLQFwqnSuPg3dYgSA66+/Htdffz2ef/55vPfee3jggQewbt06PPjgg03eJwUu3rqioGMwGLBhwwaMHDkSd999t93f9OnTUVZWhk8//bTZ+5o3bx6EEBg/fjzKy8vt5mdnZ+Ptt992aZvSL9q6v2DrttTxhPDwcIwZMwYff/yxwy/VCxcuuLzNadOmISUlBY8++iiOHz9uN7+wsBDPPfccAEsdIpVKhZdfftnm+FeuXImSkhKMGDHC5f3XlZiYiIEDB2LVqlU4ffq0zbyGSg0yMjKgVCrxyiuv2Czn6Lrce++92LNnD7744gu7ecXFxTCZTG6PubnXLjU1FVOnTsWXX36JV155xW5+bW0tXnrpJZw9exbh4eEYOnQoNm3aZNM8vKCgAO+99x5uvPFG+VaYVCfMul5SRUWFy+8Lay1atAAAuy4H9Hq93TWUSqd4+yp0sUSHgs6nn36KsrIy3HHHHQ7nX3/99UhMTMTatWsxduzYZu3rhhtuQFZWFv7617+iW7duNj0j79y5E59++qn8Je6s2NhYDBw4EIsWLYLRaESbNm3w5ZdfIjc3t1mxOuuFF17Ajh070K9fP0ydOhXdu3fHpUuXcODAAWzbtg2XLl1yaXtarRaffPIJbrvtNvTu3dumZ+QDBw7g/fffR//+/QFYvtDnzp2LBQsW4NZbb8Udd9yBY8eO4bXXXkOfPn0wbtw4txzjyy+/jBtvvBHXXnstHnroIXTs2BGnTp3Cli1bcPDgQYfrJCYm4rHHHsPChQsxcuRI3Hbbbfjxxx/x+eefIyEhwWbZOXPm4NNPP8XIkSPlptEVFRX45Zdf8NFHH+HUqVN267gj5uZeu5deegknT57E3//+d/nHglarxenTp/Hhhx/i6NGjuO+++wAAzz33HL766ivceOON+Otf/4qIiAi88cYbqK6uxqJFi+RtDh06FO3atcOUKVMwZ84chIeHY9WqVUhMTLRL2pzVu3dvhIeH48UXX0RJSQkiIyNx00034b333sNrr72Gu+66C506dUJZWRlWrFiB2NhY3HbbbU3aFwUBr7fzIvKw22+/XURFRYmKiop6l5k4caJQKpVyM1w0oXm5tezsbPHnP/9Z6HQ6oVQqhVarFTfffLN4++235WbSUlPixYsX261fd/9nz54Vd911l9BoNCIuLk7cc889Ii8vz245qenuhQsXbLbnKH4AIjMz027f7du3t2kaLYQQBQUFIjMzU6SmpgqlUimSk5PFzTffLN588015GWebl0vy8vLErFmzRJcuXURUVJSIjo4W6enp4vnnnxclJSU2y7766quiW7duQqlUiqSkJPHII48IvV5vs0x9zcudOb9CCHHo0CH5HEdFRYmuXbuKZ555Rp7v6ByazWaxYMECkZKSItRqtRg8eLA4dOiQw3NYVlYm5s6dKzp37ixUKpVISEgQN9xwg/j3v/8tampqPBKzEM5du4aYTCbx1ltviQEDBoi4uDihVCpF+/btxaRJk+yanh84cEAMGzZMxMTEiOjoaDFkyBCxe/duu21mZ2eLfv36CZVKJdq1ayeWLFlSb/PyESNG2K0/aNAgMWjQIJtpK1asEGlpaSI8PFxuan7gwAFx//33i3bt2onIyEjRunVrMXLkSLF//36njp2Ck0IIL9bQIyIiIvIi1tEhIiKioMVEh4iIiIIWEx0iIiIKWkx0iIiIKGgx0SEiIqKgxUSHiIiIglbIdxhYW1uLvLw8tGzZstFuxYmIiMg/CCFQVlYGnU6HsLD6y21CPtHJy8tz2xhFRERE5F1nzpxB27Zt650f8olOy5YtAVhOlDQ2CxEREfm30tJSpKamyt/j9Qn5REe6XRUbG8tEh4iIKMA0Vu2ElZGJiIgoaIVsopOVlYXu3bujT58+vg6FiIiIPCTkB/UsLS1FXFwcSkpKeOuKiIgoQDj7/R3ydXSIiIg8qba2FjU1Nb4OI+AolUqEh4c3eztMdIiIiDykpqYGubm5qK2t9XUoAUmj0SA5OblZ/dwx0SEiIvIAIQTy8/MRHh6O1NTUBju1I1tCCFRWVqKwsBAAkJKS0uRtMdEhIiLyAJPJhMrKSuh0OkRHR/s6nICjVqsBAIWFhWjdunWTb2MxvSQiIvIAs9kMAFCpVD6OJHBJCaLRaGzyNpjoEBEReRDHUWw6d5w7JjpEREQUtFhHh4iIyIvOFRugr/Bec3NtCxXaaNRe25+/YaJDRETkJeeKDch46RsYjGav7VOtDMe2Rwe5nOzs2bMHN954I2699VZs2bLFQ9F5HhMdIiIiL9FX1MBgNGPZ2N7o3DrG4/s7UViOmesPQl9R43Kis3LlSvztb3/DypUrkZeXB51O56EoPYuJjgedKzYAQEgXGRIRkb3OrWNwVZs4X4dRr/Lycqxfvx779+/H+fPnsWbNGjz11FO+DqtJWBnZQ6TiyYyXvpETHiIiokDwwQcfoFu3bujatSvGjRuHVatWIVCHxmSi4yFS8aTBaPZqpTMiIqLmWrlyJcaNGwcAuPXWW1FSUoJvvvnGx1E1DRMdIiIikh07dgx79+7F/fffDwCIiIjA2LFjsXLlSh9H1jSso0NERESylStXwmQy2VQ+FkIgMjISr776KuLi/LdukSMs0SEiIiIAlvG5/vvf/+Kll17CwYMH5b+ffvoJOp0O77//vq9DdBlLdIiIiAgAsHnzZuj1ekyZMsWu5GbMmDFYuXIlpk2b5qPomoaJDhERkZedKCz3y/2sXLkSGRkZDm9PjRkzBosWLcLPP/+Mnj17uitEj2OiQ0RE5CXaFiqoleGYuf6g1/apVoZD28K5EdT/97//1Tuvb9++AdnEnIkOERGRl7TRqLHt0UEc68qLmOgQERF5URuNOqQTD29jqysiIiIKWkx0iIiIKGgx0SEiIqKgFfCJTnFxMa677jr07t0bV111FVasWOHrkIiIiMhPBHxl5JYtW2LXrl2Ijo5GRUUFrrrqKowePRrx8fG+Do2IiIh8LOBLdMLDwxEdHQ0AqK6uhhAiINv5ExERkfv5PNHZtWsXbr/9duh0OigUCmzcuNFumaysLHTo0AFRUVHo168f9u7dazO/uLgYvXr1Qtu2bTFnzhwkJCR4KXrnXPRifwlERER0mc9vXVVUVKBXr16YPHkyRo8ebTd//fr1mD17NpYvX45+/fph2bJlGDZsGI4dO4bWrVsDADQaDX766ScUFBRg9OjRuPvuu5GUlOTtQ6nXtHeyse3RQew3gYiIgOIzQOVF7+0vOh7QpHpvf37G54nO8OHDMXz48HrnL1myBFOnTsWkSZMAAMuXL8eWLVuwatUqPPnkkzbLJiUloVevXvj2229x9913O9xedXU1qqur5eelpaVuOIr6zRnWFYu/OAZ9RQ0THSKiUFd8BsjqCxgrvbdPZTSQudfpZGfixIl4++235eetWrVCnz59sGjRooAa40ri80SnITU1NcjOzsbcuXPlaWFhYcjIyMCePXsAAAUFBYiOjkbLli1RUlKCXbt24ZFHHql3mwsXLsSCBQs8Hrsk3snxRYiIKARUXrQkOaNXAAldPL+/ouPAhqmW/bpQqnPrrbdi9erVAIDz58/jH//4B0aOHInTp097KlKP8etEp6ioCGaz2e42VFJSEo4ePQoA+P333/HQQw/JlZD/9re/4eqrr653m3PnzsXs2bPl56WlpUhNDd0iPSIi8oGELoCut6+jqFdkZCSSk5MBAMnJyXjyyScxYMAAXLhwAYmJiT6OzjV+neg4o2/fvjh48KDTy0dGRiIyMtJzAREREQWR8vJyvPvuu+jcuXNAdt3i14lOQkICwsPDUVBQYDO9oKBAzjSJiIjIvTZv3oyYmBgAlkZDKSkp2Lx5M8LCfN5Y22V+HbFKpUJ6ejq2b98uT6utrcX27dvRv39/H0ZGREQUvIYMGYKDBw/i4MGD2Lt3L4YNG4bhw4fj999/93VoLvN5iU55eTlOnDghP8/NzcXBgwfRqlUrtGvXDrNnz8aECRNw3XXXoW/fvli2bBkqKirkVlhNlZWVhaysLJjN5uYeAhERUVBp0aIFOnfuLD9/6623EBcXhxUrVuC5557zYWSu83mis3//fgwZMkR+LlUUnjBhAtasWYOxY8fiwoULePbZZ3H+/Hn07t0bW7dubXY/OZmZmcjMzERpaSni4uKatS0iIqJgplAoEBYWBoPB4OtQXObzRGfw4MGNDtkwffp0TJ8+3UsRERERhbbq6mqcP38eAKDX6/Hqq6+ivLwct99+u48jc53PEx0iIqKQU3Tcr/ezdetWpKSkALAMnt2tWzd8+OGHGDx4sBuD8w4mOkRERN4SHW/pqXjDVO/tUxlt2a+T1qxZgzVr1nguHi8L2USHlZGJiMjrNKmW4Rg41pXXhGyi4+3KyBzBnIiIAFiSjhBOPLzNr/vRCQbaFiqoleGY9k42zhUHXm11IiKiQMZEx8PaaNRYPj4dBqMZepbqEBEReRUTHS/gCOZERES+wUSHiIiIghYTHSIiIgpaIZvoZGVloXv37ujTp4+vQyEiIiIPCdlEJzMzE0eOHMG+fft8HQoRERF5SMj2o0NEROQL+eX50FfrvbY/baQWKTEpXtufv2GiQ0RE5CX55fkYtWkUDCbv9aumjlBj06hNLic758+fx/PPP48tW7bg3LlzaN26NXr37o2ZM2fi5ptv9lC07sdEh4iIyEv01XoYTAYsHLAQaXFpHt9fTkkO5n47F/pqvUuJzqlTp/CnP/0JGo0GixcvxtVXXw2j0YgvvvgCmZmZOHr0qAejdi8mOl6kLD8H5OWG/LgjREShLi0uDd3ju/s6jHr99a9/hUKhwN69e9GiRQt5eo8ePTB58mQfRuY6JjpeokMRrvhwCmAyWEaSzdzLZIeIiPzOpUuXsHXrVjz//PM2SY5Eo9F4P6hmCNlWV95uXq5VlCHMZAAGzgGMld4duZaIiMhJJ06cgBAC3bp183UobhGyiY63m5ebIsqQHx4OxP1RilNZ5JX9EhERuUII4esQ3CpkEx1vyi09hvy0DzCqbYol2VFGA+vHA8VnfB0aERGRjSuuuAIKhSKgKhw3hImOhxVVnceC/X+FCDPBEBYGfVQMMPYd3r4iIiK/1KpVKwwbNgxZWVmoqKiwm19cXOz9oJqBiY6HGUp+Q3VtNWZcKrZMiIoDohN8GhMREVFDsrKyYDab0bdvX3z88cf47bff8Ouvv+Lll19G//79fR2eS9jqysPKK/IAAF/UDATwM9AyCaiu8W1QRETkUzklOX69n7S0NBw4cADPP/88Hn30UeTn5yMxMRHp6el4/fXX3RylZzHR8SBFRDFePPUG1LW1KDIlA/jZdoGi4+xTh4gohGgjtVBHqDH327le26c6Qg1tpNbl9VJSUvDqq6/i1Vdf9UBU3sNEx4MUERWorq3B8sIizDfGXJ4RHW+pkLxhKvvUISIKISkxKdg0ahPHuvKikE10srKy5HuQnqatuw9NqiW5Ob3HkuxUXmSiQ0QUIlJiUkI68fC2kK2M7O1+dOxoUoGELr7ZNxERUYgI2USHiIiIgh8THSIiIgpaTHS8RBVhOdWFZdU+joSIiCh0MNHxksk3dgQAnCu94ONIiIiIQgcTHS/RtdBA1Cqx9KenkV+e7+twiIiIQgITHS9JVLWC4ex4VNdW2fefUHScA3wSERF5QMj2o+MLwtzCdgI7DiQiCjnGvDyY9N7rMDBCq4VSp/Pa/vwNEx1fYseBREQhxZiXh5MjRkIYDF7bp0KtRqctm11Kdi5cuIBnn30WW7ZsQUFBAbRaLXr16oVnn30Wf/rTnzwYrfuFbKLjjZ6RFeH2w9sDgL7KKpPXpFoSnGaw/nUQ6pk7EZE/M+n1EAYDdIsXQZWW5vH91eTkIG/O4zDp9S59N4wZMwY1NTV4++23kZaWhoKCAmzfvh0XLzbv+8oXQjbRyczMRGZmJkpLSxEXF+f27RdVnYe67TuIDFNBa65FBQBhaoHIsCjM2jkLm0Ztsu8CvAmDfNb9dVA3c5eSICZARET+Q5WWBnWPHr4Ow6Hi4mJ8++232LlzJwYNGgQAaN++Pfr27QsAOHXqFDp27Igff/wRvXv3ltfRarXYsWMHBg8ejJ07d2LIkCHYunUrnnzySRw9ehT9+/fHunXrkJ2djdmzZ+PcuXMYOXIk3nrrLURHR3vseFgZ2UPKakqgCDPiiQ4PI+WPUiNh0mBWr+dhMBlsKyRb19XJ6utSxWTrXwe6xYsgDAaY9HoY8/JQ/u13ODliJE6NuRsnR4yEMS/P3YdJRERBJiYmBjExMdi4cSOqq5vX99v8+fPx6quvYvfu3Thz5gzuvfdeLFu2DO+99x62bNmCL7/8Eq+88oqbIneMiY6HxUbE2D5XauwXkurqjF4BGCubdCtLlZYmF4MasrNxcsRInJk6FQCQ9NRcOQEiIiJqSEREBNasWYO3334bGo0Gf/rTn/DUU0/h559/dnlbzz33HP70pz/hmmuuwZQpU/DNN9/g9ddfxzXXXIMBAwbg7rvvxo4dOzxwFJcx0fEXbhjkM0KrhUKtRsG/FgIAUlesQKctm6FOTwdguVfLUh0iImrMmDFjkJeXh08//RS33nordu7ciWuvvRZr1qxxaTs9e/aUHyclJSE6OhppVnWTkpKSUFhY6K6wHQrZOjqBzLrejTWlTodOWzY7rJOjUKuRN+fxJtW+JyKi0BMVFYVbbrkFt9xyC5555hk8+OCDmDdvHr799lsAgBBCXtZoNDrchlKplB8rFAqb59K02tpaD0R/GUt0fMSm5ZULpMrHUr0bQ3a2zXylTgd1jx42iYyUAFnX4SEiInJF9+7dUVFRgcTERABAfv7lXv4PHjzoo6gaxxIdD1OV2VYsbqmKgzpCXX/Lq0ZIlY+TnpqLwqXLUPCvhVCo1XalO3UpdTqomOAQEfmFmpwcv93PxYsXcc8992Dy5Mno2bMnWrZsif3792PRokUYNWoU1Go1rr/+erzwwgvo2LEjCgsL8Y9//MMD0bsHEx0PiTBY7jkm7V8MKKNhjmoFoAQJUclYOngppm2bBn213uVER6JOT6/3NhUREfknqS5l3pzHvbZPZ34MW4uJiUG/fv2wdOlSnDx5EkajEampqZg6dSqeeuopAMCqVaswZcoUpKeno2vXrli0aBGGDh3qqUNoFiY6HhJWXQoAKLhuDrr3/TOMFbEAcgEA2qhGXnCVRU7tQ6nTMcEhIgog1nUpvcXVH8ORkZFYuHAhFi5cWO8yV155JXbv3m0zzbrOzuDBg22eA8DEiRMxceJEm2nz58/H/PnznY6tKZjoeFhNy1RLi6qKksYXlvrTWT+e414REQUp/kj1LlZG9rKLFTX1z9SkAmPfqbcvHWNentfu6xIREQUDluh4ibaFCmplOKa9k43XpyTVv2B0gsPJ1kM9uHq/lYiIKFSFbIlOVlYWunfvjj59+nhlf200aiwfnw6D0Ywyg+P+BmwUHbcZCsJ6qAf2g0NEROSckE10MjMzceTIEezbt89r+4xvoWp8oUbGvVKlpTU7yWEPyURE3lO3Ui45zx3nLmQTHb/lhnGv6mPdrJGDfBIReVZ4eDgAoKamgbqZ1KDKykoAsOtR2RWso+OPNKluTXAkUrPGyuxs5M15HCa9nrfAiIg8JCIiAtHR0bhw4QKUSiXCwli24CwhBCorK1FYWAiNRiMnjU3BRCfEsIdkIiLvUCgUSElJQW5uLn7//XdfhxOQNBoNkpOTm7UNJjo+1NTxroiIKDCoVCpcccUVvH3VBEqlslklORImOj7g0nhXRcctFZSJiCgghYWFISoqytdhhCzeMPQBabwrg8kAfXU9pTp1W1+VFbg9jpqcHBgOH2alZCIiClos0fERabyrem9fSa2vTu+xJDtVTgwh4aS6g8op1Gr2zUNEREGJJTo+oo3Uyrev8svzHS+kSQUSurh931Lrqw4ffwTd4kUQBoNXB5gjIiLyFiY6PnCxogYpMSmN377yIKVOB3WPHlClpXl930RERN7CRMeLrMe7OldskG9fERERkWcw0fEi6/Gu9A2NYk5ERERuwUTHy5wa76oOY0U4ak6f80A0l3H8KyIiCkZsdeXnjAVFOPlZIsT/sqBQqxGhde/tLusWWGx9RUREwYYlOn6goR6STSVlEOYw6J7K9EgSIrXAYusrIiIKRkx0fMi6ifmRi0caXFbVro3HSlqUOh1bXxERUVBiouNDKTEpWHPrGgDAxK0T6+9PBwCKfweKz3g8Jqm3ZPaYTEREwYCJjo91j+/ecH86UXGW/18/ZxkKwkPJjnVdnVNj7sapMXfj5IiRTHaIiCighWxl5KysLGRlZcFsNvs6lIb702mZZPl/0z+Ag/MsQ0IAll6T3UiqqyPV0anJyUHenMdh0utZOZmIiAJWyCY6mZmZyMzMRGlpKeLi4nwdTuOSe14e5FMZbRkHywPJDpMaIiIKJrx1FShaJlmSm9ErAGMlUHnR1xERERH5vZAt0fG1i03pGVmTygSHiIjIBSzR8bK6411Za6g/HV9hj8lERBTImOh4maPxrqz702mwibkXWbfCYusrIiIKVEx0fKDueFcpMSkNNzH3AfaYTEREwYB1dPxEg03MfUSp00HFBIeIiAIYS3SIiIgoaLFEx09JFZVb+TgOIiKiQMZExw+dKzYg46VvAABfjGjt42gsanJyAFgqKbNTQSIiChRMdHyovr509BU1MBgtQ1OUGowI92ZQdVi3vgIAhVqNTls2M9khIqKAwDo6PhBIfelIra86fPwRW2AREVHAYaLjA431pZNbeszHEdpS6nRQ9+gBVVqar0MhIiJyCRMdH3HUl86aW9cAABbsz4Qiotj7QREREQUZJjp+pHt8dywdvBTVtVVQRFQ0vHBlkXeCIiIiCmBMdPxMox0HRscDymhg/Xig+Ix3giIiIgpQTHQCjSYVGPsOYKz02UjmHOiTiIgCBZuX+6nEilLElAkoTpfbz4xOsPwvOm4p4dGkeiUm66bmbGZORESBgImOH4ovEVj62duIMpuAnZa+ayK0Vre0pNtXG6Za/o99B0jo6vGER2pqXpmdjbw5j8Ok1zPRISIiv8ZbV34o1gBEmU1YlP5nmF9fY19yokkFMvcC4z62PH93DJDV1yt1dpQ6HZuZExFRwGCi48dOt2wNdOnmuNREkwp0zrAkPKNX+LTODhERkb/iratAp0llgkNERFQPlugQERFR0GKi42eqq9UQtZaCtjBVYb0DfxIREVHjmOj4GaVohar8MQCAqJSPMe39bXYDfxIREZFzAj7ROXPmDAYPHozu3bujZ8+e+PDDD30dUrPV1rQGACjCTKgWZfLAn/6GHQcSEZG/C/jKyBEREVi2bBl69+6N8+fPIz09HbfddhtatGjh69CCFjsOJCKiQBHwJTopKSno3bs3ACA5ORkJCQm4dOmSb4MKclLHgbrFiyAMBpj0el+HRERE5JDPE51du3bh9ttvh06ng0KhwMaNG+2WycrKQocOHRAVFYV+/fph7969DreVnZ0Ns9mM1FTvDIkQythxIBERBQKfJzoVFRXo1asXsrKyHM5fv349Zs+ejXnz5uHAgQPo1asXhg0bhsLCQpvlLl26hL/85S948803vRE2ERERBQCf19EZPnw4hg8fXu/8JUuWYOrUqZg0aRIAYPny5diyZQtWrVqFJ598EgBQXV2NO++8E08++SRuuOGGBvdXXV2N6upq+XlpaakbjoKIiIj8kc9LdBpSU1OD7OxsZGRkyNPCwsKQkZGBPXv2AACEEJg4cSJuuukmjB8/vtFtLly4EHFxcfIfb3M1H1tfERGRv/LrRKeoqAhmsxlJSUk205OSknD+/HkAwP/93/9h/fr12LhxI3r37o3evXvjl19+qXebc+fORUlJifx35oznB8JsDkV4hfOdBhYd98rAnhLr1lcnR4xkskNERH7H57eumuvGG29EbW2t08tHRkYiMjLSgxE1j3VSowxTQd32HUz7oCW2TX8AbTRqxytFxwPKaGDDVMv/zL2WMbA8TGp9VZmdjbw5j8Ok17OZORER+RW/LtFJSEhAeHg4CgoKbKYXFBQgOTnZR1F5zrliA6a9k42oCMtl+X9/+iciI8IR3uY1/HbxdP0ralJtRzE/vcdrJTtsfUVERP7MrxMdlUqF9PR0bN++XZ5WW1uL7du3o3///j6MzDP0FTUwGM14asSVAICOcR0xu9fzUIQZUVZT0vDKmlSgXf/LJTtZfb16G4uIiMgf+fzWVXl5OU6cOCE/z83NxcGDB9GqVSu0a9cOs2fPxoQJE3Ddddehb9++WLZsGSoqKuRWWE2VlZWFrKwsmM3m5h6C28VFKeXHsUqN8ytKJTun91iSncqLXrmFRURE5K98nujs378fQ4YMkZ/Pnj0bADBhwgSsWbMGY8eOxYULF/Dss8/i/Pnz6N27N7Zu3WpXQdlVmZmZyMzMRGlpKeLi4pq1Lb+iSbUkOEREROT7RGfw4MEQQjS4zPTp0zF9+nQvRURERETBwq/r6BARERE1BxMdcht2HEhERP4mZBOdrKwsdO/eHX369PFpHE53BujH2HEgERH5q5BNdDIzM3HkyBHs27fPJ/vXtlBBrQzHtHeyca7Y0OjypcZizwfVRFLHgbrFiyAMBpj0el+HREREBCCEEx1fa6NRY/n4dBiMZugbKNVpqYqDqFVi6U9PI78834sRuoYdBxIRkT9iouND8S1UjS6TEJUMw9nxqK6tgr6aJSVERESuYKITAIS5BQAgvyLftVKdyiIPRURERBQYmOgEkJk7ZmLUplGNJzvSIJ/rx3MYCCIiCmkhm+j4S6srVxlMhsZvYWlSgbHvWAb49EEvyTU5OTAcPszWV0RE5HM+7xnZV4J2CAhJdILXd2ndzBwAFGo12r78MiI7pUGp03k9HiIiopBNdMj9pGbmJr0e5kt6nP3733Fm6lQo1Gp02rKZyQ4REXkdEx1yK6VOJyc0nbZsRmV2NvLmPA6TXs9Eh4iIvI6JTgAQphaIDItCdW2Vr0NxiVKng4qdBxIRkQ81qTLygQMH8Msvv8jPN23ahDvvvBNPPfUUamoCf0gDbztXbGiwd2Rh0uDfN7yLZUOWeS8oIiKiINCkROfhhx/G8ePHAQA5OTm47777EB0djQ8//BCPP/64WwMMBQ+/k42Ml75pMNlJiEpGSosUL0ZFREQU+JqU6Bw/fhy9e/cGAHz44YcYOHAg3nvvPaxZswYff/yxO+PzGH9rXt7YUBBERETkuiYlOkII1NbWAgC2bduG2267DQCQmpqKoqLA6I3X14N6EhERkec1KdG57rrr8Nxzz+Gdd97BN998gxEjRgAAcnNzkZSU5NYAqZmKjrN3ZCIiCllNSnSWLl2KAwcOYPr06Xj66afRuXNnAMBHH32EG264wa0BhpKL7rx1JQ0DsWEqkNWXyQ4REYWkJjUv79Wrl02rK8nixYsREcEW6021+ItjUCvDEatWoqK5G9OkApl7gdN7LMlO5UXLNCIiohDSpBKdtLQ0XLxoP4ZSVVUVunTp0uygQtny8elIbBnpno1pUoEEXg8iIgpdTUp0Tp06BbPZbDe9uroaZ8+ebXZQoSy+hcrXIRAREQUNl+4zffrpp/LjL774wmYwTLPZjO3bt6Njx47ui46IiIioGVxKdO68804AgEKhwIQJE2zmKZVKdOjQAS+99JLbggt22hYqqJXhMBjtS8cakl+RD22kFikx7ECQiIjqZ8zLg0mvR4RWG7LjDbqU6Eh953Ts2BH79u1DQkKCR4LyhqysLGRlZTm8BectbTRqbHt0EA6dK8HD72Q7vd7MHTOhjlBj06hNTHaIiMghY14eTo4YCWEwQKFWo9OWzSGZ7DSpjk5ubm5AJzmA/3QY2EajRhuN2uX1DCYD9NUcMJOIiBwz6fUQBgPiH5kGYTDAFKKDLDe5Lfj27duxfft2FBYWyiU9klWrVjU7MLKnjdRCHaGGwVT/mFhERETWQrEUx1qTSnQWLFiAoUOHYvv27SgqKoJer7f5I89IiUnBplGbmjaKuR/0kGzMy4Ph8GEY8/J8GgcREYWOJpXoLF++HGvWrMH48ePdHQ81IiUmRb5lpa9yIqm07iFZGQ2MfQdI6Or1zgNN+fn4fdz4kL9XTETkb4K9wnKTSnRqamo41IMPSbewZu2chfzy/IYXlnpIHvfHqPLvjvHJkBC8V0xE5F5SKbmjknJjXh5qcnJsptXk5NgtK1VYPjXmbpwcMTIoS9yblOg8+OCDeO+999wdCzkpJSYFSwcvdb5CsiYV6JxhSXhGrwCMlZYhIXwgGH8tEBF5m3WCUjdJkeblzXkcCrUakWlpUKjVyJvzuN2yofAjtEm3rqqqqvDmm29i27Zt6NmzJ5RKpc38JUuWuCU4qp82Suv6SppUnyU4RETkPlKColu8CACQN+dxmPR6KHU6m3nR6elQ6nTotGUzTHo9anJy5GUByKU+wfwjtEmJzs8//4zevXsDAA4dOmQzT6FQNDsoIiIiapwqLa3BeVICo9TpbJKZuvUmI7RN+PEcIJqU6OzYscPdcVCQC8b7vkREgapuqU8w3rKSNKmOTjDIyspC9+7d0adPH1+HEtQitFoo1GpcfH25za+GmpwcJj9ERD4iff5al/oEqyaV6AwZMqTBW1Rff/11kwPylszMTGRmZqK0tNRmcFJyL+t7w1KSI1WKYzNzIqLGOdv8uyYnp9FbUPX9+AxmTUp0pPo5EqPRiIMHD+LQoUN2g30S1b033GnLZlRmZ9tUniMiInvOjFclJS/SD8g2f1RQdqTuj89Q+PxtUqKzdOlSh9Pnz5+P8vLyZgVEwU+p00EVxPeDiYjcxbr598XXlzv8cSglL9Y/IBtS98dnsHNrHZ1x48ZxnCsiIiI3aywxUep0DbbACmVNHtTTkT179iAqKsqdmww9BedRcy6n8eWIiCioOerdmFzXpERn9OjRNs+FEMjPz8f+/fvxzDPPuCWwUKJtoYJaGY6ESj3CJ9+HvKqqy5XERMPrOjXeVX2kYSC8PO4VERE1rG7dnFCoNOwpTUp06rZSCgsLQ9euXfHPf/4TQ4cOdUtgoaSNRo1tjw6C+eivqNhSZdObJc6VOFzHeryrTaM2ISUmxbWdlpwFVg+3PM7cy2SHiMiPhFI/N57WpERn9erV7o4j5LXRqGFoGYkKONevgTTe1bRt06Cv1rue6FRetIx5JT1mokNE5Hek7wMmOk3XrDo62dnZ+PXXXwEAPXr0wDXXXOOWoMg5TRrvioiIKIQ0KdEpLCzEfffdh507d0Kj0QAAiouLMWTIEKxbtw6JiYnujJGIiIioSZrUvPxvf/sbysrKcPjwYVy6dAmXLl3CoUOHUFpair///e/ujpGIiIioSZpUorN161Zs27YNV155pTyte/fuyMrKYmXkQFFyxtcREBGRi5wZ5oFsNalEp7a2Fkql0m66UqlEbW1ts4PyhpAd1DM6HlBGA7sW+zoSIiJykvUwDydHjIQpP9/XIQWMJiU6N910E2bMmIE8q9Gnz507h1mzZuHmm292W3CelJmZiSNHjmDfvn2+DsUpFytqGpyfX56P/HInXviaVEtz8oe+AcaudVN0RGSj+AyQd/ByX1VEzSQN86BbvAjCYGiwFZbR6ruZmpjovPrqqygtLUWHDh3QqVMndOrUCR07dkRpaSleeeUVd8cY0qTOBKe9k41zxQaHy+RX5GPUplEYtWmU88mOrjcQ19a9wRKFkvqSmeIzQFZf4M1Blv9MdshNrId5cJTMhOLI5M5oUh2d1NRUHDhwANu2bcPRo0cBAFdeeSUyMjLcGhxZ+tdZPj4dE1bthb6iBm00artliquKYTBZkqAm9alDRK6RkhljpeVWsHWnm1IfVQPnWG4Rs58qcqOGkplQHJncGS4lOl9//TWmT5+O77//HrGxsbjllltwyy23AABKSkrQo0cPLF++HAMGDPBIsKEqvoXKszsoOm6pu8MPYyLnOJPMxPH9RK4z5uXBpNfXO8ZVY8lMqI1M7gyXEp1ly5Zh6tSpiI2NtZsXFxeHhx9+GEuWLGGiEyikiskbptr/KiWixjGZITeyHt8KQL23n5jMuMalROenn37Ciy++WO/8oUOH4t///nezgyIvkSomn95jSXZ8UMRe91cLi1spIFUW+ToCCgLW41up0tL4eegmLiU6BQUFDpuVyxuLiMCFCxeaHRQ1ncujmWtSLQmOl1k3lbSmUKvRactmvrkpMEilouvHs0SU3EaVlgZ1jx6+DiNouNTqqk2bNjh06FC983/++WekpLAirC/N2jnLuZZXPibdZ+7w8UfynzPNJon8SlxbYOw7lvo6PvjBQESNcynRue222/DMM8+gqqrKbp7BYMC8efMwcuRItwVHztFXWxKDGdfOgMFkQE5JjvP96viQUqeDukcP+U9qNlmTk8N+IChwRCf4OgIiaoBLt67+8Y9/YMOGDejSpQumT5+Orl27AgCOHj2KrKwsmM1mPP300x4JlOr3nwP/gTpCjWtbXwt1hBrTtk0DAKgj1Ng0alPANDe3vp3FW1hEROQOLpXoJCUlYffu3bjqqqswd+5c3HXXXbjrrrvw1FNP4aqrrsJ3332HpKQkT8VKDVg6eCmuTboWSwcvlacZTAa5tCcQuNLzJ5HfKTre/M4B2aMykdu53GFg+/bt8dlnn0Gv1+PEiRMQQuCKK66Alj0w+pQ2ynL+0+LSoI5Qyx0IBhqlTgcVExwKJHW7aRi9omnbaagTQiJqsiYNAQEAWq0Wffr0Qd++fZnk+JGUmBRsGrUJy4Ysa9oG/OgXJevqUECQumkYvcKSpOQfbNp2rDshdKZysx+9V4n8WZOGgCD/lhKT0rRbViVngdXDff6LknV1KOBI7xNltKWnZGW0paSnKZzphJClP0ROa3KJDgUGl/rVcfUXpYewrg4FJKlk56FvLP89OWiun7xXyX2MeXn1DvvgTcFYks4SnQCmjdRCHaGWHzuaN2vnLNdbXvlBt/asq0MBSZNqO7inp/nBe5Waz3roB1+NOh7MJeks0QlgUn0cR4lMSkwKlg5eGnAtr4iIQo310A++SjCCuSSdJToBrqGSGqklVn5FPrSR2oDpT4eIKBSp0tJ8WooSrCXpIVuik5WVhe7du6NPnz6+DsXjZu6YiVGbRvl9T8lERETuFrKJTmZmJo4cOYJ9+/b5OhSvcOoWVgmbqRLVS2rOnXfQ0jmgp1l3QMim5EHLXyohBzPeuqLLHZ41t1ksUbCybs4t8dR7pW4HhOM2AO+Otm1KTkHBHyohhwImOgHkYkWNZzYsNYutvGj5kPWzpqo1OTmI0GqDpgUABSCpOffoFUBCF8u06HjP9F0T19byfjy9x5LsFB2/3JR81+L6359SaQ/70wkY1pWQo9PT+RnnISF76yqQaFuooFaGY9o72ThX7KGhHTSpgK63X31IWjd3PDliZND17UABKKGL5X3i6feKJvVyQiVpqCl5yVlLiVNWX97eCkC+roQc7JjoBIA2GjWWj0+HwWiG3lOlOn4omJs7ErmVVOLEzgOJ7PDWVYCIb6HyzY59XBxu3dyRt7AoIEkVl+u71VV8xpKclJz1blxEIYKJDtVPGvsK8OlYOsHcYycFMetKxYDjMakcVXImIrfirSuqn58Uh/MWFgUk67GvpJHN676PrMesIiKPYIkOBYRg7bGTgpz12FcNae6YVewDK+Cw/xzvYaJDRBSorPvAooDB/nO8i4kOEVGgkvrckSozr3/A1xGRE9h/jncx0aH6+WlxuFTcyxZYFHCKjru/o0Fnb4+R32H/Od7BRIfs+WlxuHXrKwBsgUWBo+6wDj5sxUgUapjokD3rISH8qDhcan1l0utRk5ODvDmPw6TXM9Eh/ye9p6RhHSovMtEh8hImOiEkvyIf2kgtUmJSGl/YT4vDlTodExsKTJrUy83LpVtYzvDTW8hEgYL96ISQmTtmYtSmUcgvz/d1KEShyfoWVlbfy70hS9OtR0S3voXsqZHSiUIAS3RCjMFkgL5a71ypDhG5l6NbWMDl1lPSMtbLVl60JDkcw4qoSZjohCipVIcJD5GXWd/Cqjvd0TRpurROyVkOGRHA2FGg9zHRCUH5FfmYuHUiAGDTqE1MdogCidQ4gLezAg47CvQNJjohqLiqGAaTAQB4G4soEI1eAbTr75cNBqh+7CjQN1gZmYgo0CR0YZITwNhRoHexRIeIqD7FHm7a7e2m49LxMEmiEMJEh4jIkeIzlibggOVWkTs1pem4tI702FXWx8OemSmEMNEhInKk8uLl1k3ubtpdt+m4M0mHtI702FV1j4eJDoWIoKijc9ddd0Gr1eLuu+/2dShERM7RpAK63q4lHH7aYzmRPwuKRGfGjBn473//6+swAoa+Wi8/zq/ID+iekmtycmA4fBiGw4dhzMtDfnlgH48162MJpuPya8VngLyDnq+b423FZyzDThCFoKC4dTV48GDs3LnT12EEjP8c+I/8eOaOmVBHqAOuP526I5kDAKKiMOuhcFyKCwu446krvzwfozaNAgAsz1iOadumAWC/Rx4l1WExVlrqwri7Xo6vWB8XUQjyeYnOrl27cPvtt0On00GhUGDjxo12y2RlZaFDhw6IiopCv379sHfvXu8HGiRmXDvDbpo0LEQgkUYy7/DxR+jw8UfQLV4EVFVBVVYVkMdTl75aD4PJAIPJgNySXPlxoB+XX5PqsAycY/kfLEMuSMc1egUwdq2voyHyOp8nOhUVFejVqxeysrIczl+/fj1mz56NefPm4cCBA+jVqxeGDRuGwsJCL0caHLSRwdMTp1Kng7pHD6h79IAqLc3X4VCwiAvSOjAJXSxjahGFGJ/fuho+fDiGDx9e7/wlS5Zg6tSpmDRpEgBg+fLl2LJlC1atWoUnn3zS5f1VV1ejurpafl5aWup60KGo6LjzrUN8oMhQ5OsQPMa6FEdfxRIdjwjWOizuPq7iM661FCMZx7jyHZ+X6DSkpqYG2dnZyMjIkKeFhYUhIyMDe/bsadI2Fy5ciLi4OPkvNTV436zaSC3UEermbUTqu2PDVMt9fj+spJlfno/ZO2f7OgyPsa5TNWvnLFZKdjepDsuGqcE1fpS7j0va3puD/PazwF9JY1zlzXmcY1z5gF8nOkVFRTCbzUhKSrKZnpSUhPPnz8vPMzIycM899+Czzz5D27ZtG0yC5s6di5KSEvnvzJngfbOmxKRg06hNWDZkmcP5y4Ysq3eeTOq7Y/QKv623oK/Wo9pc3fiCAci6TtWMa2ewno4nWNdhydwbPLd36h5Xc0tggrUOkxdYj3HVactmDv/gZT6/deUO27Ztc3rZyMhIREZGejAa/5ISk1LvF2NKCydb72hS+aHmI9Z1qoKpfpVfksaPCrbXurvHxQrWOkxewDGufMOvS3QSEhIQHh6OgoICm+kFBQVITk72UVREREQUKPw60VGpVEhPT8f27dvlabW1tdi+fTv69+/vw8jIRvEZj9yvb2onefElAjiWA2NenltjqC8eV+J0dllnKx2zI0Ev8fbgm81RdLzx92PRcUvHiNZ/1us403FiZfA2AKDLnbG643PU13x+66q8vBwnTpyQn+fm5uLgwYNo1aoV2rVrh9mzZ2PChAm47rrr0LdvXyxbtgwVFRVyK6ymysrKQlZWFsxmc3MPIaBoojRyBWVtpLb59T08NFCgdYd5rnSSl1AqsODdWihem4OTanWz7oc702mfK3E6u2x+eT5m7ZwFdYQamihNs7dHbuDK4Ju+Yt1woL4OD62XqUsZfXksLeuOE+u+r6VtrB/PwUGDUN3OWBXN/Bz1Bz5PdPbv348hQ4bIz2fPtrSemTBhAtasWYOxY8fiwoULePbZZ3H+/Hn07t0bW7dutaug7KrMzExkZmaitLQUcXFxzdpWIElpYamgDDRcf8dpHhooUOowT3rs7Jd4y0ogygiICXcDb38Ek17f5DeodQxSp31143ElTmeXlZZbnrEc2qj66+U09RyRi8autVRQ9vcm1VLDgdN7LImMo7pG1oOJWis6bruOVOl412L793VcW2DsO8C7Yzg4aBCSOmM16fWoyclB3pzHm/U56g98nugMHjwYQogGl5k+fTqmT5/upYiCX0h8ISYn+jqCZmsoySEvimtrGXwzEDhTmdrZgUEbqnQcneBaXBRQlDpdQCc2dfl1HR0iIiKi5mCiQ0REREHL57euyD9JLXnsbnN5cCiIevfpgsSShm+DNpU7OulzpiVVfnk+8isabkUlza9vOXecRwoCgdRSjPxaTU4OIrTagL2dFbKJTqi2unKGw9Y8dVt0uLm1Rd19uqpUDVQpgTG7BaqUQKSmpdtiA2yHYWgKqSVVY8uM2jRKrmAM2A7jIbXAmrljZqPbANgSK2RJ79VAaClGfs26BVYgt74K2VtXmZmZOHLkCPbt2+frUPyO1JrHZrgBDw8F4XCfLrgYp8CsqeF4YlI4Zk0NB5LcXxnZejgGV0nH19A2rFtRSaRhPDaN2mTTk/VDPR9qcBscKiKESe/Vh75h829qFqkFlm7xIgiDASZ9YH6mhGyJDjWBn3ePfzFOgYse7CnAHUMwNGUb1k3ZJboWgferirzI2ZZVRI1Q6nRQBWiCIwnZEh0iIiIKfkx0iIiIKGjx1hXJ8svzoa/WN9rqB4Cl9ZX1f+lxAy2yPNUaqKHWTDU5OQAsleqKYhXy/qVjtb6V5EpcDse8qsiHNlJrtx1HLalySnLkx47WcZWjc+DseFkhywPjswUlR+91d5GuAW+zkQeFbKITSq2urFvu1FdHJL8iHxO3TrSrDGunobFyGmiR5anWQPW2ZopraTNeC6KiMOuhcFyKC5PHrbI+VnWEusG4rMedks4VACwcsFBeZuaOmXbbqduSShprbO63c+323RhHLbAks3bOstuGNI0trxywHqPN0ZhQ5Pi9LrXickddPQ+Nk0dUV8gmOqE01pXUckd67EhxVTEMJgMe6vkQ3vz5zfo35misHKn5qvUYO3U+tDw1LpN1ayabJuDJiXbjtajKwmFooZDHrbI+VqmVkqO4lg1Zhu6tusuVgaVzJT22Vnc7dVtSSWONSdvKKcnB3G/nOtVCyvo6Wi8vHXt905joOFB3jDayF9fW8XvdXY0SPDROHlFdIZvohBpnv+ycas1TX4sOH35hOCqpamy8FmdbLqW0SHHPAKjS9mJSmpx8OGqB5ejY3dFCjIittygYsDIyERERBS0mOkRERBS0mOgQERFR0GIdHQLg+qCVDTYVLzqOfJiB2IbrwDjb3Ly+ZtsNkZpW55fnw2Qosp3nxLHml+fbNAGvb/3GtuVsE+/69uWKnJIcuVUWuYCDX15WdNzSssrdis9Y6vBJlZmLz3imubqfMeblyQ0iyHdCNtEJpeblDZGaLLsyaGW9TcX/aI6av2kaRrXVwRBm6bdGHaG2aYbtaBsNcdRsuzGzds6Sm5Enn63Ei1bz/nPgPzbNxes7PoPJAHWE2q5ir/W5aui81W367mhb0vm3bm7uKkdN1skFHPyy4W4jmktqRm6stOxj3Abg3dGXW1wFKWNeHk6OGAlhsLS6VKjViNCykYAvhGyiE0rNyxuSEpOCpYOXYtq2aU6vU29T8T+anuuPboDh2Fvy8gaTwa4Zdt1tNKah5t91SU2rpWbkkvu73Y9/Fa8DACwdvBTaKMcfOlJsCwcsRHrrdIf7XJ6xHADk87ZsyDIAtiOLS9tZnrEcaXFpAOxLr6Qm49I5yK/Ib3B0ckekJuvZhdlMdlw1dq2lGXUDHV2GBKnbCKmLCHeSmpEPnGNJKouOW56PXmFJfNY/4N79+QmTXg9hMEC3eBFUaWmI0GoDcuTvYBCyiQ5dVt8XfpNoUgFNe/dtrwnqa1odq4q9vIwTx5wWl1ZvYlV3feuRxR0t21CC1pzm5tbbSKtOa9Y2QlJcW0DX29dR+AdPD9obVyeRTOjiuX35EVVaGtQ9evg6jJDGyshEREQUtJjoEBERUdBiokNERERBi4kOERERBS1WRg4wFytqcK7Y0pKojcY7faZI/d1IrPuGya+wzHO1nxub7VfkN/jcer/O9r1Tn/gSgVgDgPMXgOREm+lFB/fiTNwFlISVNGnbkpySHOD8BRSdz0V8iWjWtogCRt2+cry9vqe35wJjXl5Q9p1Tk5MTkK3HQjbRCbR+dLQtVFArwzFh1V4AgFoZjm2PDvJ4spNfkY+JWyfaNNO2JjWFdrWfG0fbqO+5RGrK7WhfUl8y0mNHlBeKsXSFGVFGQLw/A3EfrYE6Qo3oi5V/TH8R5QCilECbR1rU2+eN9FiKpe7zf29+EktXmJFoBJYqAdx8AXCyixZH+3CW9br1nQMij6jbV07mXteSi5KzwOrhTV/f3fE0g3X/OcHSd06EVguFWo28OY9DoVaj05bNAZXshOytq8zMTBw5cgT79u3zdShOaaNRY/n4dPm5wWiGvqLG4/strip2mOTMuHaG/Pihng/J/dx4ivX+HO1L6ktm06hN9Tb1Di+tRJQR+PgGBRRV1WhVrcSmUZvwzx6PIcoIvHx7GF6+PQxRRmD+lbPr7fNGSrLqe/7adS/I+4kyAigpc/o4627TFTbrNtDcncjtrPvKMVa63ky9uet7ensusO4/J9ASgvoodTp02rIZusWLIAwGmPSe+6z3hJAt0QlE8S1Uvg5BZl3aoGvh+TeyM6UbUmLQWMJ1IU4BQMjr6NUJAIBzCQp5mdjIWEerOkx+6j7XxHXEqTr7cUVz+tRx9hwQeUTdvnK8vb6nt+cCVVpaUCQ5EqVOB1WAJTiSkC3RISIiouDHRIeIiIiCFhMdIiIiClpMdIiIiChoMdEhIiKioMVEh4iIiIIWm5cHOE/3kuxKM2XrHpMbVFYAVDWv92Fn5FXk2TxXFhbbLWPMywNOnfV4LP4kvzwf+mp9s3qzJnJK8Rmg6LjttJIz9ss5mlZ3O456OZamAz7pAZkCQ8gmOoHWM7Ij54oNuGf5HgBoVi/JDfWo+58D/2l0falX4lk7Z2HTqE1AVFzDK3wwHjBVAW2c+5JVR6hd6ulXOp43f34TAFCqBqqUQOIHO1GtBKpjVACqYMrPx+/jxkNhMKBaaVku9o++EVuqWjq9v0CSX56PUZtGwWAyNKs3a6JG1e2dOKGL5f+uxZb/0X90F+5oWkPbkXo5tp4ubceLPSBT4AjZRCczMxOZmZkoLS1FXFwjX8x+Sl9RA4PRLD9uaqIj9agL2JbgzLh2hlOJTkqLFCwdvBTTtk2zrN8yqeEVTFXAtX8BCr7Csl4zgFYd6x32YdmQZejeqrtLJUvS8eir9civyMfMHTMxa2o4XrvuBSS2bouni0tQ/uE0mx5My69MxfvJSTAdPY7y1dOQ8EcngsFGX62HwWTAQz0fwps/vwl9tZ6JDnmG1Dvx6BVAu/6WBCRzr33JjPU0Rz0YW/dyvGux5bkm1Xb7ALBh6uV5RFZCNtEhW4561HVlrCVtlIvjucQkAwVASlQC0MBwBSktLEMruNrTrzQkg+RinALomoY28d1hOHwY5VbLqtLS0KZzDwCAQX3JZl6w8kZv1kQALCU5UvKhSbVPRKynNTRUQ329HCd0aX6MFNRYGZmIiIiCFhMdIiIiClpMdIiIiChoMdEhIiKioMVEh4iIiIIWEx0iIiIKWkx0iIiIKGgx0SEiIqKgxUSHiIiIghYTHSIiIgpaHAIigOX9MXK5P6l3BHPDJflhfkQEDNVWXb2XFdS/wbICoLoGqLHdbmMjpZ9z4twY8/LqnVeTkyM/jtBqodRdHjLBmJcHk952/3WX8TfSiOX5Ffm2062eB/1o5tYjYDujsRG16fLI5HVHKHenyqJmb8JYUAST/nCT3qfS+11a1/r97+izwfqzg/xDyCY6wTB6+ctfn/DZvqURy4HLY2KpI9SYtm2a4xW+fh5oZRkRfGZSInD2M6hra6GtKgc2ZkKdpIEhzEEB4wfjgcoyaKNioG6bAoO5GgAuj5TuwLliAzJe+gYA8PoU+wFGI7RaKNRqXHx9ORRqNSK0Wrt5eXMel6cp1Gp02rJZ/pA7OWIkhME2kbJeRqIKVwKo9shI6NYjzjc2Jpn1iOV1WQ+mGtSjmdcdAVsaCNKR6PjGR9QOVtKxS48bW27D1MvTPHGuis8A68c3a9vGinCcnPQYRFW1w/dpg+tavd8VajXavbUCpx+cKr//6/tsqPu5Qr4VsolOMIxe7k3LhiwDcPmLMaXF5RHPpS9GaQRzwMHI5+Yam+0tbHsb0nevQEpPM1BVjk1t/gL88Abw5w9wRKm4/AVsqgIGzkHKrsXY1P8FIKkHckpyLo+U7oD1qO5lBqPdfKVOh05bNtv8SnM0D7CU7OTNeRwmvR5Knc5mxHNVWprDZSSZvafDsPklj4yEbj3ifGOJSd0Ry+taOGAhAGDut3ODdzRzRyNg16e+UbZDgXTs0uPGlrM+j/WNPt4c0nUb9zEQ3bT3kak6DKKqGvGPTMPF15fbvU8bXPeP97u0bnVOjvz+B1DvZ0N0erpfl/CGmpBNdMg1KQ5GGK/7hWg9gnljpQxpkfFIsSpNS4nvBpjNgDoB+kiV7cJ/jFqcok4AmjCSuSNKna7eD6KG5klUaWlQ9+jR4DJxkXHw5M1FVxOS+kYsT4tLc0c4gaG+EbDrcjTKdqhw9rgdnSN3JzqSJiY51pqTeNRdV/qR44gqLY1Jjp9hZWQiIiIKWkx0iIiIKGgx0SEiIqKgxUSHiIiIghYTHSIiIgpaTHSIiIgoaDHRISIioqDFRIeIiIiCFhMdIiIiClpMdIiIiChoMdEhIiKioMVEh4iIiIIWEx0iIiIKWkx0iIiIKGhF+DoACmznig0AgDYadYPL6cPDm7+zyiKbp4Vl1VAqK+XHceEGuzhKDMbm79fNjHl5MOn18vMIrRZKnc4j+8opyXE8w3AJABBfIoBjOUBcSwCAvupyXPnl+QCAlJgU9wZVfMbyX5Pq3u06yVgRDlPueURUhEPpkwjqZ/3a8OTrwuOKjgPKaJtJ0rFJx9XgsRYdB6Lj699+8RnLMg72aywogun3Q8AlJZB7HjWl9l9zdWMh19Tk5Di8jhJ/O68hm+hkZWUhKysLZrPZ16G4xaFzJRj5ynfY/LcbcVWbuCZvRxuphTrCkix0jOsoP9ZGagHA5vm5YgMyXvoGALDt0UE229FEaaAOU8FQWwMA+E8rjTxPXVsLbXj9iZEcQ60ZWnOt5QNPGQ2sHw9k7kVhWTUA4K/rtiO67XpEhkfhkbePAqYCuzie/+xXRPjm+9QhY14eTo4YCWEwyNMUajU6bdns1g8G6RzO/XYuAMt105hNlxf4+nnEh8dg6QozFK/NAaKi0OahSMzaOQubRm0CAIzaNAoAsGnUJvclO8VngKy+lseZe72e7BiLSnDys0SI/62BIjwRnf5cBKWffB7XfW144nXhcdJ7dcNUm8nWx6ZQq9HurRU4/eBU+2O1Xl8ZDYxeYb+PkrPA6uGAsdKyjJQQKaNhfGea5fqawwAkAl+uAaCFIioSEVrLZ5gpPx+/jxsvxxJw59iHIrRaKNRq5M153OF1lPjbeQ3ZW1eZmZk4cuQI9u3b5+tQ3OJQXonl/7mSZm0nJSYFm0ZtwqZRm3Bt0rXy45SYFJt5KTEp0FfUwGA0w2A0Q19RY7udFinYdMOLWFZwQZ62/HwhvuzyEDadzUeKKrbxGG54ESlmMxDXFhj7juWDrfIiyv4opTGiDNXmKszq+TwMhli7OOYM64pqU22zzoe7mfR6CIMBusWL0OHjj6BbvAjCYLD7RdRc0jlcP3I91o9cb7lmisjLC5hrEGsAooyAmHA3UFWF+VfOhsFkgL5aD321HgaTQX7uNpUXLdfxj2vpbaYyA4Q5DPF33gBhDoOppMzrMdTH+rXhqdeFx2lSLQlsnQRFOrb4R6ZBGAyozslxfKzW69f3GpFeQ6NXXE6W/1jPNGIlhDkMuqcy0WFNFjos/xc6DL2ATqv/jYiUFIexBNw59iGlTodOWzbL18z6Onb4+COPfqY1R8iW6FD9rH+91/0l78ov+xR1AvSmy6UIWrPZkuA4UYqWEpMClBZcnhCdUO+ysUoNgAt20+NbqJyO1dtUaWlQ9+jh0X1Iyamk3o+d5EQAQGxk/clnsFEmNL3U09NUaWm+DqF5NKn1JrF1f+E7PNYG1reR0MW2RFCTCiSWWrabPsTy/so7CLQyAkkJMNV5A/hLaUOgUep0UNVJYrzxedYcIVuiQ0RERMGPiQ4REREFLSY6REREFLSY6BAREVHQYqJDREREQYuJDhEREQUtJjpEREQUtJjoEBERUdBiokNERERBi4kOERERBS0mOkRERBS0mOgQERFR0GKiQ0REREGLiQ4REREFLSY6REREFLSY6BAREVHQYqJDREREQYuJDhEREQUtJjpEREQUtJjoEBERUdBiokNERERBi4kOERERBS0mOkRERBS0giLR2bx5M7p27YorrrgCb731lq/DISIiIj8R4esAmstkMmH27NnYsWMH4uLikJ6ejrvuugvx8fG+Do2IiIh8LOBLdPbu3YsePXqgTZs2iImJwfDhw/Hll1/6OiwiIiLyAz5PdHbt2oXbb78dOp0OCoUCGzdutFsmKysLHTp0QFRUFPr164e9e/fK8/Ly8tCmTRv5eZs2bXDu3DlvhE5ERER+zueJTkVFBXr16oWsrCyH89evX4/Zs2dj3rx5OHDgAHr16oVhw4ahsLDQy5ESERFRoPF5HZ3hw4dj+PDh9c5fsmQJpk6dikmTJgEAli9fji1btmDVqlV48sknodPpbEpwzp07h759+9a7verqalRXV8vPS0tL3XAUvndObwAA5BUbcOhcCQBA20Ilz2+jUVuWKzbYPK87re78hp5Lj5ujtCAXsQD0BiO0AFByFgBQWF6N6vxfkfrHYwBoXWddhbIYAFBiMMrTlOXnEF51CToUAQASUYxKaeaF40B1DRAdD2hSL2+o+AxQedF243WWqcnJQYRW6/ggygosy/yyT162LmNeHkx6/eV5ZQVAnhEou2SzfaVO53AXxqPZMJ0/jYjkdlB2S5e352gdeV54FZSx4TCWmmEyRwGXih3HX0dOSZ34ywqQH2k59hSTyXKuouNhrAyH6fRRRETWQtmxK6BJRX55vmW5mBSbx8a8PJhOHwXO/wxcUuJSNBBmKEKKtA/pGlif9z+mSfFLx2N3/RyxvqbR7q+vJ51jAA1et/rWc3adxl4XnuToGOvG78zxGAuKUHPW9rPCmJfX8L4LimC6pAR++Qm4pEREQRGUSQmWmSVnHMZZ7/uzrmLb9R29XwE43J6juKX169tOqLI+H756Dcv799menVBTU4Ps7GzMnTtXnhYWFoaMjAzs2bMHANC3b18cOnQI586dQ1xcHD7//HM888wz9W5z4cKFWLBggcdj9wRtCxXUynAYjGa7eTuOXQAAvPz1Cbz89QmbeWplOLY9OggAkPHSNwCAbY8OkpMVadp/p/TFX1buledbL7/svt54+J1seXv/ndJXfi7HF6lFZFgUqkxmFBaHo3t8PER4lM0yUkJzUbSEWkQidu9SVIpIPPNFPl4NB7D+AQCXk5pKEYk7Vx1FirICH4dbprVUxUHUKhGZ8DWUYVF4/n+nAcRChyJc8eEUhJkM2BYZid2X3sT7YUtwX63li0774WTAbAaU0UDmXsuXZfEZIKsvYKy0iVNaJkKrhUKtRt6cx6FQq9Fm8SLb5YrPIOLTcVCEt0Te/BflyQq1Wv6gNOXn4/dx4yEMlg97RVQkIj4dB6gqEFHTAoqo1vL2O23ZbJ+4HM3GyTEPQJgVUIQLtMtaitOznoYwGOzWMebl4eSIkZZ54QLtBl/E6Z3xEGYFEKlCm8lmnI9VoaPRhMhwJQAzopXRMABoqWoJdYQac7+da7P//I8nYmJSIgBg09l8pFSVw1jTAie3JEJU10ARXotOo8pQNP1/GLXjEQDA8ozlmLZtGgDgk35vouzuiRBV0g+MRFQrgSfbzsHqiZ9ZkifpGkjXBgCy+sJYXI2Tn7WWj73TbYVQaiIvXz9H6l5TZTQweoXjZZvA+hwDqPe6NbReY+vUfd05s313cnSM7d5agdMPTpXjr/vcJsboeEAZDWOFAicnPQZRVQ2FWo3ItDQo1GpcfH25/B6RkimbfU96DKIqEfjycwCJUOx6DJ3WrYRSGQ3sWmy5ptHxdufU7v1p7Y8fJNi1GIAGESqzfI4dsd6edD2s45aWsV7fel6osn7tSnzxGraJySd7dVJRURHMZjOSkpJspiclJeHo0aMAgIiICLz00ksYMmQIamtr8fjjjzfY4mru3LmYPXu2/Ly0tBSpqY38OvQTbTRqOQGpW6Ly7fELeHLDLwCAZWN7AwBmrj8IADAYzdBX1MiPAUBfUYM2GjX0FTXytJOF5TbzrZf/9rcL8r4MRjNOFpbbxZcSk4Kpaa/jhc+P4XwPNdApFadvWQ78cvmLs7LaBC0AvbI1bq9eDK2iDHrRElpFGfBHInNmyH8wbWs57uuTitf3FiMPCdCaLs9PiEpGxclHoYiowBO3XIuFhwswZ1hXfPZlLsJMBhRe83e0/vFlxFbkIq3WgNfbPQxdh+5IUScARceBDVMtv/Y1qZb/xkrLF2FCF8sOrJZR6nqj05bNqMzORt6cx+0+lFF5EUpVBTotmADTrhWW7SR2sfkAN+n1EAYDdIsXQZWWhoiafCg3jQEGzoFy12J0Wv1vVJ41yNuv+2FgOn8awqxA/PCrcPHzQ6j+7VcIgwHxj0zDxdeX26wj7St+3F24+O4nqE4eAWH+QX6+4tRFLI69B9cq3sWS/n9HORYhLjIOBgAJ6gRsGrUJ+mo9cOE48j+dhplJiSgWRhjMliRFX1uNlIFzYNq4DKK6BvHdy3DxSEuYymugLz0Dg8nymswtyZUflxSehaKqGrrr9VDd+SRyf/8dka9vharCCH21HinVNZZrMHCO5UtIKokxVsLUYwrE/z5H/J034OLG3TD1mAjlqZWXr58j1tcUuHy93cT6egKo97rVt56j61aXUqeze91580vC0TFW5+TYxF/3uU2MmlQgcy9MR3+D2JAJ3eJFiE5Pl4/LuhSo7nvKpNdDVFVDN/8JqJLjUHO+BHnzX4TJHAVl5l6bkj/TucN2MdSrylLSjS7DgH0/ICIuUo6lrpqcHJv3e0RKil3cAOzW93XJhT+wvsaA7blkotMMd9xxB+644w6nlo2MjERkZKSHI/Ic61tO1o+vahMnP+7cOsarMVmLU7aGMBXIz03qujecLstDAvKEpThaizJ5erWmMw6LEijbXo28vb84XFeYNBAmDeKUrQEUIN7qNp0xpo3NsnEJ1yKl040NB57QBdD1djhLqdNB1dAHKABlx25QHjICXToCuh4AYPcBqkpLg7pHD8stKwCIs3xRK5MSoFIpG44PgLJNKoBDNnHVu6xUzK9uZfM8wVwLtUkNKIGESA3qpqspMSlIiUmx3OIzmRxvPO5ygqFsYV+6WB9VrAnqvoMB5f81ul1ZjOVHjjIhzua5U6TE1UNUaWlNWs/ZD3tnXnee5ugY68Zf7/FoUoGWpfJ2pOWUOp1T50B1dR/L++XwYdttOkhwXfoC/eM94Uos9S3ryvqhxN/Oi88rIzckISEB4eHhKCgosJleUFCA5ORkH0VFREREgcKvEx2VSoX09HRs375dnlZbW4vt27ejf//+PoyMiIiIAoHPb12Vl5fjxInLlWdzc3Nx8OBBtGrVCu3atcPs2bMxYcIEXHfddejbty+WLVuGiooKuRVWU2VlZSErKwtms/NF70RERBRYfJ7o7N+/H0OGDJGfSxWFJ0yYgDVr1mDs2LG4cOECnn32WZw/fx69e/fG1q1b7SoouyozMxOZmZkoLS1FXFxc4ysQERFRwPF5ojN48GAIIRpcZvr06Zg+fbqXIiIiIqJg4dd1dIiIiIiag4kOERERBa2QTXSysrLQvXt39OnTx9ehEBERkYeEbKKTmZmJI0eOYN++fb4OhYiIiDwkZBMdIiIiCn5MdIiIiChoMdEhIiKioMVEh4iIiIKWzzsM9BVpCAjTHyM0l5aWunX7FRWVMBvMqKiodHrbhvJylJvNKC0vh9HFeMrLSlFbXSk/BiA/dzStvKwUpaUKm/Uqy8vq3UZ1ZbnN9qyXtd6eNL2yvAylpaWoLC+H2WAZZqO8qhZhFQaUVguUlVfYrG9UGFAKS8eR0jzrfcjzy8pRLuxjriwvg7HaskzZH/sor6yS9yVfg7JyoNqyHZSW2j93tIz1tamstL1G0rLlhmatYyhX1nvtDRV/rF9VbflvqHK8Xet9SsvUXaemFtXV1SitFZe362A7KCtHeVUtzAYzKv/4L13D0nIDDDW18vbk/+WV8nKVVo/LKyqh+GMZY1k5yisNUJjNMFYB5WXlKK2usT+HAFAtYKiscxyVVTDWvV51WV+/P7YjbdtuexWVLr/XrN+nAJx+z9b7enCwXbvr2YTPhOZweIyVlQ3/d/TadSL+uss09tzhuvXFYvVasHsfNXDtG7tWoc6V8+PJ17D0ud5Yp8MK0dgSQe7s2bNITU31dRhERETUBGfOnEHbtm3rnR/yiU5tbS3y8vLQsmVLKBQKl9cvLS1Famoqzpw5g9jYWA9E6F9C7XiB0DvmUDteIPSOmccb/ELhmIUQKCsrg06nQ1hY/TVxQvbWlSQsLKzBTNBZsbGxQfticiTUjhcIvWMOteMFQu+YebzBL9iP2ZlBuVkZmYiIiIIWEx0iIiIKWkx0mikyMhLz5s1DZGSkr0PxilA7XiD0jjnUjhcIvWPm8Qa/UDzm+oR8ZWQiIiIKXizRISIioqDFRIeIiIiCFhMdIiIiClpMdIiIiChoMdFphqysLHTo0AFRUVHo168f9u7d6+uQmmThwoXo06cPWrZsidatW+POO+/EsWPHbJYZPHgwFAqFzd+0adNsljl9+jRGjBiB6OhotG7dGnPmzJHHEvM38+fPtzuebt26yfOrqqqQmZmJ+Ph4xMTEYMyYMSgoKLDZRiAdb4cOHeyOV6FQIDMzE0BwXN9du3bh9ttvh06ng0KhwMaNG23mCyHw7LPPIiUlBWq1GhkZGfjtt99slrl06RIeeOABxMbGQqPRYMqUKSj/Y7wnyc8//4wBAwYgKioKqampWLRokacPzaGGjtdoNOKJJ57A1VdfjRYtWkCn0+Evf/kL8vLybLbh6HXxwgsv2CwTCMcLABMnTrQ7lltvvdVmmUC6vkDjx+zoPa1QKLB48WJ5mUC6xh4jqEnWrVsnVCqVWLVqlTh8+LCYOnWq0Gg0oqCgwNehuWzYsGFi9erV4tChQ+LgwYPitttuE+3atRPl5eXyMoMGDRJTp04V+fn58l9JSYk832QyiauuukpkZGSIH3/8UXz22WciISFBzJ071xeH1Kh58+aJHj162BzPhQsX5PnTpk0TqampYvv27WL//v3i+uuvFzfccIM8P9COt7Cw0OZYv/rqKwFA7NixQwgRHNf3s88+E08//bTYsGGDACA++eQTm/kvvPCCiIuLExs3bhQ//fSTuOOOO0THjh2FwWCQl7n11ltFr169xPfffy++/fZb0blzZ3H//ffL80tKSkRSUpJ44IEHxKFDh8T7778v1Gq1eOONN7x1mLKGjre4uFhkZGSI9evXi6NHj4o9e/aIvn37ivT0dJtttG/fXvzzn/+0ue7W7/tAOV4hhJgwYYK49dZbbY7l0qVLNssE0vUVovFjtj7W/Px8sWrVKqFQKMTJkyflZQLpGnsKE50m6tu3r8jMzJSfm81modPpxMKFC30YlXsUFhYKAOKbb76Rpw0aNEjMmDGj3nU+++wzERYWJs6fPy9Pe/3110VsbKyorq72ZLhNMm/ePNGrVy+H84qLi4VSqRQffvihPO3XX38VAMSePXuEEIF3vHXNmDFDdOrUSdTW1gohgu/61v1SqK2tFcnJyWLx4sXytOLiYhEZGSnef/99IYQQR44cEQDEvn375GU+//xzoVAoxLlz54QQQrz22mtCq9XaHPMTTzwhunbt6uEjapijL8G69u7dKwCI33//XZ7Wvn17sXTp0nrXCaTjnTBhghg1alS96wTy9RXCuWs8atQocdNNN9lMC9Rr7E68ddUENTU1yM7ORkZGhjwtLCwMGRkZ2LNnjw8jc4+SkhIAQKtWrWymr127FgkJCbjqqqswd+5cVFZWyvP27NmDq6++GklJSfK0YcOGobS0FIcPH/ZO4C767bffoNPpkJaWhgceeACnT58GAGRnZ8NoNNpc327duqFdu3by9Q3E45XU1NTg3XffxeTJk20Gsg2262stNzcX58+ft7mmcXFx6Nevn8011Wg0uO666+RlMjIyEBYWhh9++EFeZuDAgVCpVPIyw4YNw7Fjx6DX6710NE1TUlIChUIBjUZjM/2FF15AfHw8rrnmGixevNjmdmSgHe/OnTvRunVrdO3aFY888gguXrwozwv261tQUIAtW7ZgypQpdvOC6Ro3RcgP6tkURUVFMJvNNh/6AJCUlISjR4/6KCr3qK2txcyZM/GnP/0JV111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duwAYCnN6dChA2666SaX909EtiJ8HQAR+YeVK1fCZDJBp9PJ04QQiIyMxKuvvoq4uDh5ulKplB8rFAqb59K02tpaj8ccFhZmd2vNaDS6tI3y8nKkpKRg586ddvOactvI0blo7PxcccUVGDBgAFavXo3Bgwfjv//9L6ZOnWqTGBJR07BEh4hgMpnw3//+Fy+99BIOHjwo//3000/Q6XR4//33m72PH374web5999/jyuuuMKpVkQqlQoA7Ep/EhMTkZ+fLz83m804dOiQ/Lxbt24wmUzIzs6Wpx07dgzFxcXy82uvvRbnz59HREQEOnfubPOXkJDg0jE2x5QpU/Dxxx/j448/xrlz52wqVBNR0zHRISJs3rwZer0eU6ZMwVVXXWXzN2bMGIe3r1x1+vRpzJ49G8eOHcP777+PV155BTNmzHBq3datW0OtVmPr1q0oKChASUkJAOCmm27Cli1bsGXLFhw9ehSPPPKITRLTtWtX3HrrrXj44Yfxww8/IDs7Gw8++CDUarW8TEZGBvr3748777wTX375JU6dOoXdu3fj6aefxv79+5t93M665557oFQq8fDDD2Po0KFITU312r6JghkTHSLCypUrkZGRYXN7SjJmzBjs378fP//8c7P28Ze//AUGgwF9+/ZFZmYmZsyYgYceesipdSMiIvDyyy/jjTfegE6nw6hRowBY6rZMmDABf/nLXzBo0CCkpaVhyJAhNuuuXr0aOp0OgwYNwujRo/HQQw+hdevW8nyFQoHPPvsMAwcOxKRJk9ClSxfcd999+P3335GUlNSsY3ZFdHQ07rvvPuj1ekyePNlr+yUKdgpR9wY3EZGbDR48GL179w6aoQtOnTqFjh074scff/TaEBCSDh06YObMmXb9BxGRYyzRISJqohtuuAE33HCDV/b1r3/9CzExMXYdCxJRw9jqiojIRW3btsVvv/0GAF4bpmLatGm49957AVgqYRORc3jrioiIiIIWb10RERFR0GKiQ0REREGLiQ4REREFLSY6REREFLSY6BAREVHQYqJDREREQYuJDhEREQUtJjpEREQUtJjoEBERUdD6/4Te2emG4K9yAAAAAElFTkSuQmCC", "text/plain": [ "
" ] diff --git a/docs/non_tested_examples/example.ipynb b/docs/non_tested_examples/example.ipynb new file mode 100644 index 0000000..bdf8b97 --- /dev/null +++ b/docs/non_tested_examples/example.ipynb @@ -0,0 +1,1202 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from libra_toolbox.neutron_detection.activation_foils.calibration import (\n", + " CheckSource,\n", + " co60,\n", + " cs137,\n", + " mn54,\n", + " na22,\n", + ")\n", + "from libra_toolbox.neutron_detection.activation_foils.compass import (\n", + " Measurement,\n", + " CheckSourceMeasurement,\n", + ")\n", + "from datetime import date\n", + "\n", + "run_dir = \"../../250317_BABY_1L_run3/DAQ\"\n", + "uCi_to_Bq = 3.7e4\n", + "\n", + "co60_checksource = CheckSource(\n", + " co60, activity_date=date(2014, 3, 19), activity=0.872 * uCi_to_Bq\n", + ")\n", + "cs137_checksource = CheckSource(\n", + " cs137, activity_date=date(2023, 9, 29), activity=9.38 * uCi_to_Bq\n", + ")\n", + "mn54_checksource = CheckSource(\n", + " mn54, activity_date=date(2016, 5, 2), activity=6.27 * uCi_to_Bq\n", + ")\n", + "na22_checksource = CheckSource(\n", + " na22, activity_date=date(2023, 9, 29), activity=9.98 * uCi_to_Bq\n", + ")\n", + "\n", + "check_source_measurements = {\n", + " \"Co60_1\": {\n", + " \"directory\": f\"{run_dir}/Co60_0_872uCi_19Mar2014_250318_run2/UNFILTERED\",\n", + " \"check_source\": co60_checksource,\n", + " },\n", + " \"Co60_2\": {\n", + " \"directory\": f\"{run_dir}/Co60_0_872uCi_19Mar2014_250319_run3/UNFILTERED\",\n", + " \"check_source\": co60_checksource,\n", + " },\n", + " \"Co60_3\": {\n", + " \"directory\": f\"{run_dir}/Co60_0_872uCi_19Mar2014_250320_run4/UNFILTERED\",\n", + " \"check_source\": co60_checksource,\n", + " },\n", + " \"Co60_4\": {\n", + " \"directory\": f\"{run_dir}/Co60_1_0uCi_Jan2006_250318/UNFILTERED\",\n", + " \"check_source\": CheckSource(\n", + " co60, activity_date=date(2006, 1, 1), activity=1.0 * uCi_to_Bq\n", + " ),\n", + " },\n", + " \"Co60_5\": {\n", + " \"directory\": f\"{run_dir}/Co60_1_0uCi_Feb2006_250320_run1/UNFILTERED\",\n", + " \"check_source\": CheckSource(\n", + " co60, activity_date=date(2006, 2, 1), activity=1.0 * uCi_to_Bq\n", + " ),\n", + " },\n", + " \"Cs137_1\": {\n", + " \"directory\": f\"{run_dir}/Cs137_4_66uCi_19Mar2014_250318/UNFILTERED\",\n", + " \"check_source\": CheckSource(\n", + " cs137, activity_date=date(2014, 3, 19), activity=4.66 * uCi_to_Bq\n", + " ),\n", + " },\n", + " \"Cs137_2\": {\n", + " \"directory\": f\"{run_dir}/Cs137_9_38uCi_29Sep2023_250318_run2/UNFILTERED\",\n", + " \"check_source\": cs137_checksource,\n", + " },\n", + " \"Cs137_3\": {\n", + " \"directory\": f\"{run_dir}/Cs137_9_38uCi_29Sep2023_250318_run3/UNFILTERED\",\n", + " \"check_source\": cs137_checksource,\n", + " },\n", + " \"Cs137_4\": {\n", + " \"directory\": f\"{run_dir}/Cs137_9_38uCi_29Sep2023_250319_run5/UNFILTERED\",\n", + " \"check_source\": cs137_checksource,\n", + " },\n", + " \"Mn54_1\": {\n", + " \"directory\": f\"{run_dir}/Mn54_6_27uCi_2May2016_250318/UNFILTERED\",\n", + " \"check_source\": mn54_checksource,\n", + " },\n", + " \"Mn54_2\": {\n", + " \"directory\": f\"{run_dir}/Mn54_6_27uCi_2May2016_250319_run2/UNFILTERED\",\n", + " \"check_source\": mn54_checksource,\n", + " },\n", + " \"Mn54_3\": {\n", + " \"directory\": f\"{run_dir}/Mn54_6_27uCi_2May2016_250320_run3/UNFILTERED\",\n", + " \"check_source\": mn54_checksource,\n", + " },\n", + " \"Na22_2\": {\n", + " \"directory\": f\"{run_dir}/Na22_9_98uCi_29Sep2023_250318_run3/UNFILTERED\",\n", + " \"check_source\": na22_checksource,\n", + " },\n", + " \"Na22_3\": {\n", + " \"directory\": f\"{run_dir}/Na22_9_98uCi_29Sep2023_250318_run4/UNFILTERED\",\n", + " \"check_source\": na22_checksource,\n", + " },\n", + " \"Na22_4\": {\n", + " \"directory\": f\"{run_dir}/Na22_9_98uCi_29Sep2023_250319_run5/UNFILTERED\",\n", + " \"check_source\": na22_checksource,\n", + " },\n", + "}\n", + "\n", + "background_dir = f\"{run_dir}/Background_250322/UNFILTERED\"" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Energy;1', 'Energy/EnergyCH4@V1725_292;1', 'Energy/Calibration_4;1', 'Energy/EnergyCH5@V1725_292;1', 'Energy/Calibration_5;1', 'Time;1', 'Time/TimeCH4@V1725_292;1', 'Time/TimeCH5@V1725_292;1', 'PSD;1', 'PSD/PSDCH4@V1725_292;1', 'PSD/PSDCH5@V1725_292;1', 'PSD_E;1', 'PSD_E/PSDvsECH4@V1725_292;1', 'PSD_E/PSDvsECH5@V1725_292;1', 'RealTime_4;1', 'LiveTime_4;1', 'RealTime_5;1', 'LiveTime_5;1']\n", + "\n", + "{'_cursor': Cursor(6, origin=-52), '_file': , '_parent': None, '_concrete': , '_members': {'fNcells': 4097, 'fXaxis': , 'fYaxis': , 'fZaxis': , 'fBarOffset': 0, 'fBarWidth': 1000, 'fEntries': 417265.0, 'fTsumw': 417265.0, 'fTsumw2': 417265.0, 'fTsumwx': 202513872.0, 'fTsumwx2': 285424114272.0, 'fMaximum': -1111.0, 'fMinimum': -1111.0, 'fNormFactor': 0.0, 'fContour': , 'fSumw2': , 'fOption': , 'fFunctions': , 'fBufferSize': 0, 'fBuffer': array([], dtype='>f8'), 'fBinStatErrOpt': 0, 'fStatOverflows': 2}, '_bases': [, , , ], '_num_bytes': 550, '_instance_version': 8, '_is_memberwise': np.uint16(0), '_speedbump1': array([0], dtype=uint8)}\n", + "4097\n" + ] + } + ], + "source": [ + "import uproot\n", + "root_filename = f\"{run_dir}/Co60_0_872uCi_19Mar2014_250319_run3/UNFILTERED/Hcompass_Co60_0_872uCi_19Marc2014_250319_run3_20250319_095305.root\"\n", + "with uproot.open(root_filename) as root_file:\n", + " print(root_file.keys())\n", + " print(root_file[\"Energy/EnergyCH4@V1725_292;1\"]._bases[0])\n", + " print(root_file[\"Energy/EnergyCH4@V1725_292;1\"]._bases[0].__dict__)\n", + " print(root_file[\"Energy/EnergyCH4@V1725_292;1\"]._bases[0]._members['fNcells'])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing Co60_1...\n", + "\n", + "Processing Co60_2...\n", + "\n", + "Processing Co60_3...\n", + "\n", + "Processing Co60_4...\n", + "\n", + "Processing Co60_5...\n", + "\n", + "Processing Cs137_1...\n", + "\n", + "Processing Cs137_2...\n", + "\n", + "Processing Cs137_3...\n", + "\n", + "Processing Cs137_4...\n", + "\n", + "Processing Mn54_1...\n", + "\n", + "Processing Mn54_2...\n", + "\n", + "Processing Mn54_3...\n", + "\n", + "Processing Na22_2...\n", + "\n", + "Processing Na22_3...\n", + "\n", + "Processing Na22_4...\n", + "\n", + "Processing background...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/remidm/libra-toolbox/libra_toolbox/neutron_detection/activation_foils/compass.py:201: UserWarning: run.info file not found. Assuming start and stop time are not needed.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "all_measurements = {}\n", + "\n", + "for name, values in check_source_measurements.items():\n", + " print(f\"Processing {name}...\")\n", + " meas = CheckSourceMeasurement.from_directory(values[\"directory\"], name=name)\n", + " meas.check_source = values[\"check_source\"]\n", + " print(meas)\n", + " all_measurements[name] = meas\n", + "\n", + "print(f\"Processing background...\")\n", + "background_meas = Measurement.from_directory(\n", + " background_dir,\n", + " name=\"Background\",\n", + " info_file_optional=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "mode = \"w\"\n", + "for meas in all_measurements.values():\n", + " meas.to_h5(\"data.h5\", mode=mode, spectrum_only=True)\n", + " mode = \"a\" # Change to append mode after the first measurement\n", + "\n", + "background_meas.to_h5(\"data.h5\", mode=\"a\", spectrum_only=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing Co60_1...\n", + "\n", + "Processing Co60_2...\n", + "\n", + "Processing Co60_3...\n", + "\n", + "Processing Co60_4...\n", + "\n", + "Processing Co60_5...\n", + "\n", + "Processing Cs137_1...\n", + "\n", + "Processing Cs137_2...\n", + "\n", + "Processing Cs137_3...\n", + "\n", + "Processing Cs137_4...\n", + "\n", + "Processing Mn54_1...\n", + "\n", + "Processing Mn54_2...\n", + "\n", + "Processing Mn54_3...\n", + "\n", + "Processing Na22_2...\n", + "\n", + "Processing Na22_3...\n", + "\n", + "Processing Na22_4...\n", + "\n" + ] + } + ], + "source": [ + "for name, values in check_source_measurements.items():\n", + " print(f\"Processing {name}...\")\n", + " meas = CheckSourceMeasurement.from_h5(\"data.h5\", measurement_name=name)\n", + " meas.check_source = values[\"check_source\"]\n", + " print(meas)\n", + " all_measurements[name] = meas\n", + "\n", + "background_meas = Measurement.from_h5(\"data.h5\", measurement_name=\"Background\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "from libra_toolbox.neutron_detection.activation_foils import compass\n", + "\n", + "for detector in all_measurements[\"Co60_3\"].detectors:\n", + " hist, bin_edges = detector.get_energy_hist()\n", + "\n", + " plt.hist(\n", + " bin_edges[:-1],\n", + " bins=bin_edges,\n", + " weights=hist,\n", + " histtype=\"step\",\n", + " label=f\"Ch {detector.channel_nb}\",\n", + " )\n", + " peaks = all_measurements[\"Co60_3\"].get_peaks(hist)\n", + " # plt.plot(bin_edges[peaks], hist[peaks], '.', ms=10)\n", + "\n", + " from scipy.signal import find_peaks\n", + " import numpy as np\n", + "\n", + " start_index = 400\n", + " height = 0.60 * np.max(hist[start_index:])\n", + " prominence = None\n", + " width = [10, 150]\n", + " distance = 30\n", + " peaks, peak_data = find_peaks(\n", + " hist[start_index:],\n", + " prominence=prominence,\n", + " height=height,\n", + " width=width,\n", + " distance=distance,\n", + " )\n", + " plt.plot(bin_edges[start_index:][peaks], peak_data[\"peak_heights\"], \".\", ms=10)\n", + "\n", + " for i, p in enumerate(peaks):\n", + " width = peak_data[\"widths\"][i]\n", + " plt.axvspan(\n", + " bin_edges[start_index:][p] - width,\n", + " bin_edges[start_index:][p] + width,\n", + " color=\"red\",\n", + " alpha=0.2,\n", + " label=\"Peak range\",\n", + " )\n", + "\n", + "plt.legend()\n", + "# plt.yscale(\"log\")\n", + "plt.ylim(top=2100)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "from libra_toolbox.neutron_detection.activation_foils import compass\n", + "\n", + "for detector in all_measurements[\"Na22_2\"].detectors:\n", + " # raw_hist, raw_bin_edges = detector.get_energy_hist(bins=None)\n", + " # common_bins = np.intersect1d(\n", + " # raw_bin_edges, background_meas.detectors[0]._bin_edges\n", + " # )\n", + " # find correct bg detector\n", + " bg_detector = [d for d in background_meas.detectors if d.channel_nb == detector.channel_nb][0]\n", + " hist, bin_edges = detector.get_energy_hist_background_substract(bg_detector)\n", + "\n", + " plt.hist(\n", + " bin_edges[:-1],\n", + " bins=bin_edges,\n", + " weights=hist,\n", + " histtype=\"step\",\n", + " label=f\"Ch {detector.channel_nb}\",\n", + " )\n", + " peaks = all_measurements[\"Na22_2\"].get_peaks(hist)\n", + " # plt.plot(bin_edges[peaks], hist[peaks], '.', ms=10)\n", + "\n", + " from scipy.signal import find_peaks\n", + " import numpy as np\n", + "\n", + " start_index = 100\n", + " height = 0.1 * np.max(hist[start_index:])\n", + " prominence = 0.1 * np.max(hist[start_index:])\n", + " width = [10, 150]\n", + " distance = 30\n", + " peaks, peak_data = find_peaks(\n", + " hist[start_index:],\n", + " prominence=prominence,\n", + " height=height,\n", + " width=width,\n", + " distance=distance,\n", + " )\n", + " plt.plot(bin_edges[start_index:][peaks], peak_data[\"peak_heights\"], \".\", ms=10)\n", + "\n", + " for i, p in enumerate(peaks):\n", + " width = peak_data[\"widths\"][i]\n", + " plt.axvspan(\n", + " bin_edges[start_index:][p] - width,\n", + " bin_edges[start_index:][p] + width,\n", + " color=\"red\",\n", + " alpha=0.2,\n", + " label=\"Peak range\",\n", + " )\n", + "\n", + "plt.legend()\n", + "# plt.yscale(\"log\")\n", + "# plt.ylim(top=2100)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAKTCAYAAADv8BJoAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2e9JREFUeJzs3Xd809X+x/FXku7SpgPaUmih7D1kVoYsKeJCuVdRVFBERUAFJw7EgQhexhVRrteB+hMHel2obASVsmXvJWW0BUqb7pX8/qhEYwt0JKQt7+fj0ccj3/M933M+wSD59CyDzWazISIiIiIiIk5ldHcAIiIiIiIi1ZGSLRERERERERdQsiUiIiIiIuICSrZERERERERcQMmWiIiIiIiICyjZEhERERERcQElWyIiIiIiIi7g4e4AqgKr1cqJEycICAjAYDC4OxwREREREXETm81Geno6kZGRGI0XHrtSslUKJ06cICoqyt1hiIiIiIhIJZGQkEDdunUvWEfJVikEBAQARX+ggYGBbo0lLTufbq+uAOCqJjWZM7SDW+M5p9XziwHY8ULcReuuO3iGER9uBGDpuJ7UDvJ1aWwiIiIiIs5isViIioqy5wgXomSrFM5NHQwMDHR7smXzzMfo7QeAl28Nt8dzzrmYShOPf0CevX7cmxvZ9WIcfl76KIqIiIhI1VGa5UXaIEMq7MjpzAo9n19gc1IkIiIiIiKVh5ItqbBb/hMPwDWtItwciYiIiIhI5eHWZGvKlCl06tSJgIAAwsLCGDRoEHv37nWok5OTw+jRowkNDaVGjRoMHjyYpKQkhzpHjx7l2muvxc/Pj7CwMB5//HEKCgoc6vz0009cccUVeHt706hRI+bNm+fqt3fZSE7PBaBVHbObIxERERERqTzculBm1apVjB49mk6dOlFQUMDTTz9N//792bVrF/7+/gCMGzeO77//ngULFmA2mxkzZgw333wzv/76KwCFhYVce+21REREsGbNGk6ePMldd92Fp6cnr7zyCgCHDx/m2muv5YEHHuDjjz9m+fLl3HvvvdSuXZu4uItv6CCudSYzF7Ofp7vDEBEREQGKvl/m5+e7OwxxIy8vr4tu614abk22Fi1a5HA9b948wsLC2LRpEz179iQtLY13332X+fPn06dPHwDef/99mjdvztq1a+natStLlixh165dLFu2jPDwcNq1a8dLL73Ek08+yaRJk/Dy8mLu3LnExMQwffp0AJo3b84vv/zCzJkzlWw5UcNaNcr13NB31hE/oa+ToxEREREpG5vNRmJiIqmpqe4ORdzMaDQSExODl5dXhdqpVFvApaWlARASEgLApk2byM/Pp1+/fvY6zZo1Izo6mvj4eLp27Up8fDytW7cmPDzcXicuLo5Ro0axc+dO2rdvT3x8vEMb5+o88sgjJcaRm5tLbm6u/dpisTjrLVZrJmP5Dnw+mZbj5EhEREREyu5cohUWFoafn1+pdpuT6sdqtXLixAlOnjxJdHR0hT4HlSbZslqtPPLII3Tr1o1WrVoBRR94Ly8vgoKCHOqGh4eTmJhor/PXROvc/XP3LlTHYrGQnZ2Nr6/jOU9TpkzhhRdecNp7ExEREZHKrbCw0J5ohYaGujsccbNatWpx4sQJCgoK8PQs/3KXSrMb4ejRo9mxYweffvqpu0NhwoQJpKWl2X8SEhLcHVKV4OdlKlW95rUD6dogxMXRiIiIiJTeuTVafn5+bo5EKoNz0wcLCwsr1E6lSLbGjBnDwoULWblyJXXr1rWXR0REkJeXV2zebFJSEhEREfY6f9+d8Nz1xeoEBgYWG9UC8Pb2th9gXBkOMq7svDyMtKgdSLdGNUtVP9jfi4/v7eriqERERETKTlMHBZz3OXBrsmWz2RgzZgxfffUVK1asICYmxuF+hw4d8PT0ZPny5fayvXv3cvToUWJjYwGIjY1l+/btJCcn2+ssXbqUwMBAWrRoYa/z1zbO1TnXhlRMXoGVm6+oU6E23vzpgJOiERERERGpHNy6Zmv06NHMnz+fb775hoCAAPsaK7PZjK+vL2azmREjRjB+/HhCQkIIDAxk7NixxMbG0rVr0chI//79adGiBXfeeSfTpk0jMTGRZ599ltGjR+Pt7Q3AAw88wBtvvMETTzzBPffcw4oVK/j888/5/vvv3fbeq4vEPza3CK1Rtp1aTEYDL93Ykue+2QnAtEV7ebBXI6fHJyIiIlJRx1OzOZuZd0n6Cvb3ok5Q8ZlXF9KrVy/atWvHrFmzXBLT8OHDSU1N5euvv3ZJ++5w5MgRYmJi+O2332jXrp3L+nFrsvXWW28BRR+Qv3r//fcZPnw4ADNnzsRoNDJ48GByc3OJi4vjzTfftNc1mUwsXLiQUaNGERsbi7+/P8OGDePFF1+014mJieH7779n3Lhx/Pvf/6Zu3bq888472vbdCQ6fzgSgQc2yb/t+Z2x9e7IlIiIiUhkdT82m3/RVZOdXbO1Oafl6mlj26FVlTrikcnJrsmWz2S5ax8fHhzlz5jBnzpzz1qlXrx4//PDDBdvp1asXv/32W5ljlAvLKSj6H0+E2cfNkYiIiIg439nMPLLzC5l1azsahZXvTNHSOpCcwSOfbeFsZl61T7by8vIqfIZVVVApNsgQAVhz8LS7QxAREREpUaOwGrSqY3bpT0WSuYKCAsaMGYPZbKZmzZo899xz9oGNjz76iI4dOxIQEEBERAS33367w34HADt37uS6664jMDCQgIAAevTowcGDB0vsa8OGDdSqVYupU6fay15++WXCwsIICAjg3nvv5amnnnKYnjd8+HAGDRrE5MmTiYyMpGnTpgBs376dPn364OvrS2hoKPfddx8ZGRn253r16lXsbNxBgwbZZ8EB1K9fn1deeYV77rmHgIAAoqOjefvttx2eWb9+Pe3bt8fHx4eOHTteskEYJVtSadz+33Vk5RW4OwwRERGRKueDDz7Aw8OD9evX8+9//5sZM2bwzjvvAEXb2r/00kts3bqVr7/+miNHjjgkK8ePH6dnz554e3uzYsUKNm3axD333ENBQfHvZStWrODqq69m8uTJPPnkkwB8/PHHTJ48malTp7Jp0yaio6Pty4X+avny5ezdu5elS5eycOFCMjMziYuLIzg4mA0bNrBgwQKWLVvGmDFjyvz+p0+fbk+iHnzwQUaNGsXevXsByMjI4LrrrqNFixZs2rSJSZMm8dhjj5W5j/KoNIcaS9V06FSmU9t76JMtvDOso1PbFBEREanuoqKimDlzJgaDgaZNm7J9+3ZmzpzJyJEjueeee+z1GjRowOuvv06nTp3IyMigRo0azJkzB7PZzKeffmo/wLdJkybF+vjqq6+46667eOedd7j11lvt5bNnz2bEiBHcfffdAEycOJElS5Y4jFAB+Pv7884779inD/73v/8lJyeHDz/8EH9/fwDeeOMNrr/+eqZOnUp4eHip3//AgQN58MEHAXjyySeZOXMmK1eupGnTpsyfPx+r1cq7776Lj48PLVu25NixY4waNarU7ZeXRrakQl5auMup7e06kebU9kREREQuB127dnU4Gyo2Npb9+/dTWFjIpk2buP7664mOjiYgIICrrroKgKNHjwKwZcsWevToYU+0SrJu3Tr++c9/8tFHHzkkWlB0NFPnzp0dyv5+DdC6dWuHdVq7d++mbdu29kQLoFu3blitVvuoVGm1adPG/tpgMBAREWGfKrl7927atGmDj8+fewxcqiOglGyJW026voXD9Yk/tpIXERERkYrLyckhLi6OwMBAPv74YzZs2MBXX30FFG1SAeDre/HNOBo2bEizZs147733yM/PL1csf02qSstoNBbbVK+k/v+eKBoMBqxWa5n7czYlW+JWw7vFEOCt2awiIiIiFbFu3TqH67Vr19K4cWP27NnDmTNnePXVV+nRowfNmjUrtjlGmzZt+Pnnny+YRNWsWZMVK1Zw4MABbrnlFoe6TZs2ZcOGDQ71/35dkubNm7N161YyM/9clvLrr79iNBrtG2jUqlWLkydP2u8XFhayY8eOi7b99362bdtGTs6fv9Rfu3ZtmdooLyVb4hQh/uXfurNxuOPOO6U5EkBERERE/nT06FHGjx/P3r17+eSTT5g9ezYPP/ww0dHReHl5MXv2bA4dOsS3337LSy+95PDsmDFjsFgsDBkyhI0bN7J//34++uijYlP5wsLCWLFiBXv27OG2226zb6AxduxY3n33XT744AP279/Pyy+/zLZt2xymNZZk6NCh+Pj4MGzYMHbs2MHKlSsZO3Ysd955p329Vp8+ffj+++/5/vvv2bNnD6NGjSI1NbVMfza33347BoOBkSNHsmvXLn744Qf+9a9/lamN8tKQgjiFp8l5eXvMhB9YOq4njcMDnNamiIiISEUcSM64eCU39nHXXXeRnZ1N586dMZlMPPzww9x3330YDAbmzZvH008/zeuvv84VV1zBv/71L2644Qb7s6GhoaxYsYLHH3+cq666CpPJRLt27ejWrVuxfiIiIlixYgW9evVi6NChzJ8/n6FDh3Lo0CEee+wxcnJyuOWWWxg+fDjr16+/YMx+fn4sXryYhx9+mE6dOuHn58fgwYOZMWOGvc4999zD1q1bueuuu/Dw8GDcuHH07t27TH82NWrU4LvvvuOBBx6gffv2tGjRgqlTpzJ48OAytVMeBpuGES7KYrFgNptJS0sjMDDQrbGkZefT9oUlAPRtFsa7wzu5NZ76T30PwJFXry13Gze/+Subj6Y6lA2+oi7Tb2lbkdBERERESi0nJ4fDhw8TExPj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Y8eO5amnnnKom5ubS27unzsipaWlER0dTUJCQqVItrq9uoKZt7Tl6pYRDvfyC614moxYrTbeXn2IwVfUoYaPJwYDLNqRiNnXkyuig7HabAT5eXI6PRcvDxNmPy0GFhERKUlegRWrzUZaVj5Z+QWs3neK+jX98TQZeeqLbaRk5bs7RJFS8fY00rl+MJm5hWw+mlrh9kL9Pakd5MeOC4xot6lrLrYBUNu6Zrb+UebjacRkNJCZW2i/37x2AJ4mo/25phEB7E1MB4qOv6gMZ8FaLBaioqJITU3FbL7wjq6XRbKVl5eHn58fX3zxBYMGDbKXDxs2jNTUVL755huH+pMmTeKFF164xFGKiIiIiEhVkZCQQN26dS9Y57KYKHz69GkKCwsJDw93KA8PD2fPnuJncEyYMIHx48fbr61WKykpKYSGhlaKaRDnsunKMNImcjH6vEpVos+rVCX6vEpVUp0+rzabjfT0dCIjIy9a97JItsrK29sbb29vh7KgoCD3BHMBgYGBVf7DKpcPfV6lKtHnVaoSfV6lKqkun9eLTR88x/0rzC6BmjVrYjKZSEpKcihPSkoiIiLiPE+JiIiIiIiU32WRbHl5edGhQweWL19uL7NarSxfvpzY2Fg3RiYiIiIiItXVZTONcPz48QwbNoyOHTvSuXNnZs2aRWZmJnfffbe7Qyszb29vnn/++WJTHUUqI31epSrR51WqEn1epSq5XD+vl8VuhOe88cYb9kON27Vrx+uvv06XLl3cHZaIiIiIiFRDl1WyJSIiIiIicqlcFmu2RERERERELjUlWyIiIiIiIi6gZEtERERERMQFlGyJiIiIiIi4gJItERERERERF1CyJSIiIiIi4gJKtkRERERERFxAyZaIiIiIiIgLKNkSERERERFxASVbIiIiIiIiLqBkS0RERERExAWUbImIiIiIiLiAki0REREREREXULIlIiIiIiLiAkq2REREREREXEDJloiIiIiIiAso2RIREREREXEBJVsiIiIiIiIuoGRLRERERETEBZRsiYiIiIiIuICSLRERERERERdQsiUiIiIiIuICSrZERERERERcQMmWiIiIiIiICyjZEhERERERcYFKn2ytXr2a66+/nsjISAwGA19//bXDfZvNxsSJE6lduza+vr7069eP/fv3O9RJSUlh6NChBAYGEhQUxIgRI8jIyLiE70JERERERC43lT7ZyszMpG3btsyZM6fE+9OmTeP1119n7ty5rFu3Dn9/f+Li4sjJybHXGTp0KDt37mTp0qUsXLiQ1atXc999912qtyAiIiIiIpchg81ms7k7iNIyGAx89dVXDBo0CCga1YqMjOTRRx/lscceAyAtLY3w8HDmzZvHkCFD2L17Ny1atGDDhg107NgRgEWLFjFw4ECOHTtGZGSku96OiIiIiIhUYx7uDqAiDh8+TGJiIv369bOXmc1munTpQnx8PEOGDCE+Pp6goCB7ogXQr18/jEYj69at46abbirWbm5uLrm5ufZrq9VKSkoKoaGhGAwG174pERERERGptGw2G+np6URGRmI0XniiYJVOthITEwEIDw93KA8PD7ffS0xMJCwszOG+h4cHISEh9jp/N2XKFF544QUXRCwiIiIiItVBQkICdevWvWCdKp1sucqECRMYP368/TotLY3o6GgSEhIIDAx0Y2SQlp1Pt1dXADCiewzjrm7i1nhERERERC4nFouFqKgoAgICLlq3SidbERERACQlJVG7dm17eVJSEu3atbPXSU5OdniuoKCAlJQU+/N/5+3tjbe3d7HywMBAtydbNs98jN5+APj413B7PCIiIiIil6PSLC+q9LsRXkhMTAwREREsX77cXmaxWFi3bh2xsbEAxMbGkpqayqZNm+x1VqxYgdVqpUuXLpc8ZhERERERuTxU+pGtjIwMDhw4YL8+fPgwW7ZsISQkhOjoaB555BFefvllGjduTExMDM899xyRkZH2HQubN2/OgAEDGDlyJHPnziU/P58xY8YwZMgQ7UQoIiIiIiIuU+mTrY0bN9K7d2/79bm1VMOGDWPevHk88cQTZGZmct9995Gamkr37t1ZtGgRPj4+9mc+/vhjxowZQ9++fTEajQwePJjXX3/9kr8XERERERG5fFSpc7bcxWKxYDabSUtLc/saqbTsfNq+sASAUb0a8uSAZm6NR0RERKQ6sdlsFBQUUFhY6O5QxI08PT0xmUwl3itLblDpR7ZERERERC6FvLw8Tp48SVZWlrtDETczGAzUrVuXGjVqVKgdJVsiIiIictmzWq0cPnwYk8lEZGQkXl5epdptTqofm83GqVOnOHbsGI0bNz7vCFdpKNkSERERkcteXl4eVquVqKgo/Pz83B2OuFmtWrU4cuQI+fn5FUq2qvTW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DwgODgbg7Nmz3H333fTo0cNZXQJFB8/9fUMOk8mE1WoFICYmhoiICJYvX25PriwWC+vWrWPUqFFOjUVEREREROQcl6zZmj59OkuWLLEnWgDBwcG8/PLL9O/fn0cffdRpfV1//fVMnjyZ6OhoWrZsyW+//caMGTO45557gKItPB955BFefvllGjdubN/6PTIykkGDBjktDhERERERkb9ySbJlsVg4depUsfJTp06Rnp7u1L5mz57Nc889x4MPPkhycjKRkZHcf//9TJw40V7niSeeIDMzk/vuu4/U1FS6d+/OokWLdMaWiIiIiIi4jMFms9mc3ehdd93Fzz//zPTp0+ncuTMA69at4/HHH6dHjx588MEHzu7SpSwWC2azmbS0NAIDA90aS1p2Pm1fWALAqF4NeXJAM7fGIyIiIiJyOSlLbuCSka25c+fy2GOPcfvtt9tP3/bw8GDEiBG89tprruhSRERERESkUnFJsuXn58ebb77Ja6+9xsGDBwFo2LAh/v7+ruhORERERESk0jFevEr5nTx5kpMnT9K4cWP8/f1xwYxFERERERGRSsklydaZM2fo27cvTZo0YeDAgZw8eRKAESNGOHUnQhERERERkcrKJcnWuHHj8PT05OjRo/j5+dnLb731VhYtWuSKLkVERERERCoVl6zZWrJkCYsXL6Zu3boO5Y0bN+b33393RZciIiIiIiKViktGtjIzMx1GtM5JSUnB29vbFV2KiIiIiIhUKi5Jtnr06MGHH35ovzYYDFitVqZNm0bv3r1d0aWIiIiIiEil4pJphNOmTaNv375s3LiRvLw8nnjiCXbu3ElKSgq//vqrK7oUERERERGpVFwystWqVSv27dtH9+7dufHGG8nMzOTmm2/mt99+o2HDhq7oUkREREREpFJxycgWgNls5plnnnFV8yIiIiIiIpWa05Ktbdu2lbpumzZtnNWtiIiIiIhIpeS0ZKtdu3YYDAZsNtsF6xkMBgoLC53VrYiIiIiISKXktGTr8OHDzmpKRERERESkynNaslWvXj1nNSUiIiIiIlLluWyDDIBdu3Zx9OhR8vLyHMpvuOEGV3YrIiIiIiLidi5Jtg4dOsRNN93E9u3bHdZxGQwGAK3ZEhERERGRas8l52w9/PDDxMTEkJycjJ+fHzt37mT16tV07NiRn376yRVdioiIiIiIVCouGdmKj49nxYoV1KxZE6PRiNFopHv37kyZMoWHHnqI3377zRXdioiIiIiIVBouGdkqLCwkICAAgJo1a3LixAmgaBONvXv3uqJLERERERGRSsUlI1utWrVi69atxMTE0KVLF6ZNm4aXlxdvv/02DRo0cEWXIiIiIiIilYpLkq1nn32WzMxMAF588UWuu+46evToQWhoKJ999pkruhQREREREalUXJJsxcXF2V83atSIPXv2kJKSQnBwsH1HQhERERERkerMJWu20tLSSElJcSgLCQnh7NmzWCwWV3QpIiIiIiJSqbgk2RoyZAiffvppsfLPP/+cIUOGuKJLERERERGRSsUlyda6devo3bt3sfJevXqxbt06p/d3/Phx7rjjDkJDQ/H19aV169Zs3LjRft9mszFx4kRq166Nr68v/fr1Y//+/U6PQ0RERERE5ByXJFu5ubkUFBQUK8/Pzyc7O9upfZ09e5Zu3brh6enJjz/+yK5du5g+fTrBwcH2OtOmTeP1119n7ty5rFu3Dn9/f+Li4sjJyXFqLCIiIiIiIue4ZIOMzp078/bbbzN79myH8rlz59KhQwen9jV16lSioqJ4//337WUxMTH21zabjVmzZvHss89y4403AvDhhx8SHh7O119/rWmNIiIiIiLiEi5Jtl5++WX69evH1q1b6du3LwDLly9nw4YNLFmyxKl9ffvtt8TFxfHPf/6TVatWUadOHR588EFGjhwJwOHDh0lMTKRfv372Z8xmM126dCE+Pr7EZCs3N5fc3Fz7tTb1EBERERGRsnLJNMJu3boRHx9PVFQUn3/+Od999x2NGjVi27Zt9OjRw6l9HTp0iLfeeovGjRuzePFiRo0axUMPPcQHH3wAQGJiIgDh4eEOz4WHh9vv/d2UKVMwm832n6ioKKfGLCIiIiIi1Z9LRrYA2rVrx8cff+yq5u2sVisdO3bklVdeAaB9+/bs2LGDuXPnMmzYsHK1OWHCBMaPH2+/tlgsSrhERERERKRMXDKytXnzZrZv326//uabbxg0aBBPP/00eXl5Tu2rdu3atGjRwqGsefPmHD16FICIiAgAkpKSHOokJSXZ7/2dt7c3gYGBDj8iIiIiIiJl4ZJk6/7772ffvn1A0TS/W2+9FT8/PxYsWMATTzzh1L66devG3r17Hcr27dtHvXr1gKLNMiIiIli+fLn9vsViYd26dcTGxjo1FhERERERkXNckmzt27ePdu3aAbBgwQKuuuoq5s+fz7x58/jyyy+d2te4ceNYu3Ytr7zyCgcOHGD+/Pm8/fbbjB49GgCDwcAjjzzCyy+/zLfffsv27du56667iIyMZNCgQU6NRURERERE5ByXrNmy2WxYrVYAli1bxnXXXQdAVFQUp0+fdmpfnTp14quvvmLChAm8+OKLxMTEMGvWLIYOHWqv88QTT5CZmcl9991Hamoq3bt3Z9GiRfj4+Dg1FhERERERkXNckmx17NjRvv37qlWreOutt4Cibdj/viugM1x33XX2hK4kBoOBF198kRdffNHpfYuIiIiIiJTEJdMIZ82axebNmxkzZgzPPPMMjRo1AuCLL77gyiuvdEWXIiIiIiIilYpLRrbatGnjsBvhOa+99homk8kVXYqIiIiIiFQqLhnZAkhNTeWdd95hwoQJpKSkALBr1y6Sk5Nd1aWIiIiIiEil4ZKRrW3bttG3b1+CgoI4cuQII0eOJCQkhP/9738cPXqUDz/80BXdioiIiIiIVBouGdkaP348d999N/v373fY8W/gwIGsXr3aFV2KiIiIiIhUKi5JtjZs2MD9999frLxOnTokJia6oksREREREZFKxSXJlre3NxaLpVj5vn37qFWrliu6FBERERERqVRckmzdcMMNvPjii+Tn5wNF51wdPXqUJ598ksGDB7uiSxERERERkUrFJcnW9OnTycjIICwsjOzsbK666ioaNWpEQEAAkydPdkWXIiIiIiIilYpLdiM0m80sXbqUX3/9la1bt5KRkcEVV1xBv379XNGdiIiIiIhIpeP0ZCs/Px9fX1+2bNlCt27d6Natm7O7EBERERERqfScPo3Q09OT6OhoCgsLnd20iIiIiIhIleGSNVvPPPMMTz/9NCkpKa5oXkREREREpNJzyZqtN954gwMHDhAZGUm9evXw9/d3uL9582ZXdCsiIiIiIlJpuCTZGjRokCuaFRERERERqTJckmw9//zzrmhWRERERESkynDami2bzeaspkRERERERKo8pyVbLVu25NNPPyUvL++C9fbv38+oUaN49dVXndW1iIiIiIhIpeO0aYSzZ8/mySef5MEHH+Tqq6+mY8eOREZG4uPjw9mzZ9m1axe//PILO3fuZMyYMYwaNcpZXYuIiIiIiFQ6Tku2+vbty8aNG/nll1/47LPP+Pjjj/n999/Jzs6mZs2atG/fnrvuuouhQ4cSHBzsrG5FREREREQqJadvkNG9e3e6d+/u7GZFRERERESqFJccaiwiIiIiInK5U7IlIiIiIiLiAkq2REREREREXEDJloiIiIiIiAso2RIREREREXEBlyRbmzdvZvv27fbrb775hkGDBvH0009f9NDjinr11VcxGAw88sgj9rKcnBxGjx5NaGgoNWrUYPDgwSQlJbk0DhERERERuby5JNm6//772bdvHwCHDh1iyJAh+Pn5sWDBAp544glXdAnAhg0b+M9//kObNm0cyseNG8d3333HggULWLVqFSdOnODmm292WRwiIiIiIiIuSbb27dtHu3btAFiwYAE9e/Zk/vz5zJs3jy+//NIVXZKRkcHQoUP573//63BoclpaGu+++y4zZsygT58+dOjQgffff581a9awdu3aEtvKzc3FYrE4/IiIiIiIiJSFS5Itm82G1WoFYNmyZQwcOBCAqKgoTp8+7YouGT16NNdeey39+vVzKN+0aRP5+fkO5c2aNSM6Opr4+PgS25oyZQpms9n+ExUV5ZKYRURERESk+nJJstWxY0defvllPvroI1atWsW1114LwOHDhwkPD3d6f59++imbN29mypQpxe4lJibi5eVFUFCQQ3l4eDiJiYkltjdhwgTS0tLsPwkJCU6PWUREREREqjcPVzQ6c+ZM7rjjDr7++mueeeYZGjVqBMAXX3zBlVde6dS+EhISePjhh1m6dCk+Pj5OadPb2xtvb2+ntOVKqVmu3WxERERERETKzyXJVtu2bR12Izzntddew8PDuV1u2rSJ5ORkrrjiCntZYWEhq1ev5o033mDx4sXk5eWRmprqMLqVlJRERESEU2O51JIsue4OQUREREREzsMl0wgbNGjAmTNnipXn5OTQpEkTp/bVt29ftm/fzpYtW+w/HTt2ZOjQofbXnp6eLF++3P7M3r17OXr0KLGxsU6N5VIzuDsAERERERE5L5eMbB05coTCwsJi5bm5uRw7dsypfQUEBNCqVSuHMn9/f0JDQ+3lI0aMYPz48YSEhBAYGMjYsWOJjY2la9euTo1FRERERETkHKcmW99++6399eLFizGbzfbrwsJCli9fTkxMjDO7LJWZM2diNBoZPHgwubm5xMXF8eabb17yOERERERE5PJhsNlsNmc1ZjQWzUo0GAz8vVlPT0/q16/P9OnTue6665zV5SVhsVgwm82kpaURGBjo1ljSsvNp+8ISAPo2C+Pd4Z3cGo+IiIiIyOWkLLmBU0e2zp2tFRMTw4YNG6hZs6YzmxcREREREakyXLJm6/Dhw65oVkREREREpMpwSbIFsHz5cpYvX05ycrJ9xOuc9957z1XdioiIiIiIVAouSbZeeOEFXnzxRTp27Ejt2rUxGLRJuYiIiIiIXF5ckmzNnTuXefPmceedd7qieRERERERkUrPJYca5+XlceWVV7qiaRERERERkSrBJcnWvffey/z5813RtIiIiIiISJXgkmmEOTk5vP322yxbtow2bdrg6enpcH/GjBmu6FZERERERKTScEmytW3bNtq1awfAjh07HO5pswwREREREbkcuCTZWrlypSuaFRERERERqTJcsmZLRERERETkcueSka3evXtfcLrgihUrXNGtiIiIiIhIpeGSZOvceq1z8vPz2bJlCzt27GDYsGGu6FJERERERKRScUmyNXPmzBLLJ02aREZGhiu6FBERERERqVQu6ZqtO+64g/fee+9SdikiIiIiIuIWlzTZio+Px8fH51J2KSIiIiIi4hYumUZ48803O1zbbDZOnjzJxo0bee6551zRpYiIiIiISKXikmTLbDY7XBuNRpo2bcqLL75I//79XdGliIiIiIhIpeKSZOv99993RbMiIiIiIiJVhkuSrXM2bdrE7t27AWjZsiXt27d3ZXciIiIiIiKVhkuSreTkZIYMGcJPP/1EUFAQAKmpqfTu3ZtPP/2UWrVquaJbERERERGRSsMluxGOHTuW9PR0du7cSUpKCikpKezYsQOLxcJDDz3kii5FREREREQqFZeMbC1atIhly5bRvHlze1mLFi2YM2eONsgQEREREZHLgktGtqxWK56ensXKPT09sVqtruhSRERERESkUnFJstWnTx8efvhhTpw4YS87fvw448aNo2/fvq7oUkREREREpFJxSbL1xhtvYLFYqF+/Pg0bNqRhw4bExMRgsViYPXu2U/uaMmUKnTp1IiAggLCwMAYNGsTevXsd6uTk5DB69GhCQ0OpUaMGgwcPJikpyalxiIiIiIiI/JVL1mxFRUWxefNmli1bxp49ewBo3rw5/fr1c3pfq1atYvTo0XTq1ImCggKefvpp+vfvz65du/D39wdg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MH78ePu11WolJSWF0NDQSrF+4Fw2XRlG2kQuRp9XqUr0eZWqRJ9XqUqq0+fVZrORnp5OZGTkReteFslWzZo1MZlMJCU5nu2TlJREREREsfre3t54ezsOOQcFBbkyxHIJDAys8h9WuXzo8ypViT6vUpXo8ypVSXX5vF5s+uA5l8XKTC8vLzp06MDy5cvtZVarleXLlztMKxQREREREXGWy2JkC2D8+PEMGzaMjh070rlzZ2bNmkVmZiZ33323u0MTEREREZFq6LJJtm699VZOnTrFxIkTSUxMpF27dixatIjw8HB3h1Zm3t7ePP/888WmOopURvq8SlWiz6tUJfq8SlVyuX5eL4vdCEVERERERC61y2LNloiIiIiIyKWmZEtERERERMQFlGyJiIiIiIi4gJItERERERERF1CyJSIiIiIi4gJKtkRERERERFxAyZaIiIiIiIgLKNkSERERERFxASVbIiIiIiIiLqBkS0RERERExAWUbImIiIiIiLiAki0REREREREXULIlIiIiIiLiAkq2REREREREXEDJloiIiIiIiAso2RIREREREXEBJVsiIiIiIiIuoGRLRERERETEBZRsiYiIiIiIuICSLRERERERERdQsiUiIiIiIuICSrZERERERERcQMmWiIiIiIiICyjZEhERERERcQElWyIiIiIiIi5Q6ZOt48ePc8cddxAaGoqvry+tW7dm48aN9vs2m42JEydSu3ZtfH196devH/v373doIyUlhaFDhxIYGEhQUBAjRowgIyPjUr8VERERERG5jFTqZOvs2bN069YNT09PfvzxR3bt2sX06dMJDg6215k2bRqvv/46c+fOZd26dfj7+xMXF0dOTo69ztChQ9m5cydLly5l4cKFrF69mvvuu88db0lERERERC4TBpvNZnN3EOfz1FNP8euvv/Lzzz+XeN9msxEZGcmjjz7KY489BkBaWhrh4eHMmzePIUOGsHv3blq0aMGGDRvo2LEjAIsWLWLgwIEcO3aMyMjIS/Z+RERERETk8uHh7gAu5NtvvyUuLo5//vOfrFq1ijp16vDggw8ycuRIAA4fPkxiYiL9+vWzP2M2m+nSpQvx8fEMGTKE+Ph4goKC7IkWQL9+/TAajaxbt46bbrqpWL+5ubnk5ubar61WKykpKYSGhmIwGFz4jkVEREREpDKz2Wykp6cTGRmJ0XjhiYKVOtk6dOgQb731FuPHj+fpp59mw4YNPPTQQ3h5eTFs2DASExMBCA8Pd3guPDzcfi8xMZGwsDCH+x4eHoSEhNjr/N2UKVN44YUXXPCORERERESkOkhISKBu3boXrFOpky2r1UrHjh155ZVXAGjfvj07duxg7ty5DBs2zGX9TpgwgfHjx9uv09LSiI6OJiEhgcDAQJf1Wxpp2fl0e3UFAK/e3Jrr2moapIiIiIjIpWKxWIiKiiIgIOCidSt1slW7dm1atGjhUNa8eXO+/PJLACIiIgBISkqidu3a9jpJSUm0a9fOXic5OdmhjYKCAlJSUuzP/523tzfe3t7FygMDA92ebNk88zF6+wHgVyPA7fGIiIiIiFyOSrO8qFLvRtitWzf27t3rULZv3z7q1asHQExMDBERESxfvtx+32KxsG7dOmJjYwGIjY0lNTWVTZs22eusWLECq9VKly5dLsG7EBERERGRy1GlHtkaN24cV155Ja+88gq33HIL69ev5+233+btt98GirLJRx55hJdffpnGjRsTExPDc889R2RkJIMGDQKKRsIGDBjAyJEjmTt3Lvn5+YwZM4YhQ4ZoJ0IREREREXGZSp1sderUia+++or/b+++w6I62jaA31vYBYRdihQLKHZRsWDDGLti718SX2NJjDEJGo0laqKxpJhX81qDplsSS2I3Fiwo2FARRUUR0YigNAXpbdk93x8bjq4ggrAUuX/XtRd7ZubMzFmOyMPMmZk7dy4WL14MFxcXrFy5EqNHjxbLfPrpp0hPT8f777+PpKQkdO7cGT4+PjA1NRXLbN68GZMnT0bPnj0hlUoxYsQIrF69ujwuiYiIiIiIqogKvc9WRZGSkgK1Wo3k5ORyf0YqOVODlouOAABWvtkKQ1vXKtf+EBERvQq0Wi00Gk15d4OIKgiFQvHcZd2LExtU6JEtIiIiImMSBAGxsbFISkoq764QUQUilUrh4uIChUJRonoYbBEREVGVlRdo2dvbw9zcvEirixHRq02n0yE6OhoxMTFwdnYu0c8FBltERERUJWm1WjHQsrW1Le/uEFEFYmdnh+joaOTm5sLExOSl66nQS78TERERGUveM1rm5ubl3BMiqmjypg9qtdoS1cNgi4iIiKo0Th0komeV1s8FBltERERERERGwGe2iIiIiJ7xICkTj9NzyqQt62oK1LIy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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(3, 1, figsize=(10, 8), sharex=True)\n", + "\n", + "\n", + "plt.sca(axs[0])\n", + "hist, bin_edges = background_meas.detectors[1].get_energy_hist()\n", + "\n", + "plt.hist(\n", + " bin_edges[:-1],\n", + " bins=bin_edges,\n", + " weights=hist,\n", + " histtype=\"step\",\n", + " label=f\"background\",\n", + ")\n", + "plt.ylim(top=2100)\n", + "plt.ylabel(\"Counts\")\n", + "plt.legend()\n", + "\n", + "plt.sca(axs[1])\n", + "\n", + "\n", + "background_time = background_meas.detectors[1].real_count_time\n", + "bg_hist_scale = (\n", + " hist * all_measurements[\"Co60_3\"].detectors[1].real_count_time / background_time\n", + ")\n", + "plt.hist(\n", + " bin_edges[:-1],\n", + " bins=bin_edges,\n", + " weights=bg_hist_scale,\n", + " histtype=\"step\",\n", + " label=f\"background\",\n", + ")\n", + "plt.ylim(top=100)\n", + "plt.ylabel(\"Counts (rescaled)\")\n", + "plt.legend()\n", + "\n", + "plt.sca(axs[2])\n", + "\n", + "hist, bin_edges = all_measurements[\"Co60_3\"].detectors[1].get_energy_hist()\n", + "\n", + "plt.hist(\n", + " bin_edges[:-1],\n", + " bins=bin_edges,\n", + " weights=hist,\n", + " histtype=\"step\",\n", + " label=f\"Ch {detector.channel_nb} - raw\",\n", + ")\n", + "\n", + "\n", + "background_detector = background_meas.detectors[1]\n", + "\n", + "hist_background_substracted, bin_edges_bg_sub = (\n", + " all_measurements[\"Co60_3\"]\n", + " .detectors[1]\n", + " .get_energy_hist_background_substract(background_detector)\n", + ")\n", + "\n", + "plt.hist(\n", + " bin_edges_bg_sub[:-1],\n", + " bins=bin_edges_bg_sub,\n", + " weights=hist_background_substracted,\n", + " histtype=\"step\",\n", + " label=f\"Ch {detector.channel_nb} - background substracted\",\n", + ")\n", + "plt.ylabel(\"Counts\")\n", + "\n", + "plt.legend()\n", + "# plt.yscale(\"log\")\n", + "plt.ylim(bottom=0, top=600)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_269325/1088032263.py:32: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", + " plt.legend()\n" + ] + }, + { + "data": { + "image/png": "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FRXFggULGDlyJNOmTaNKlSp89NFH2vbdDg6dyQCgesXib/v+YHQ1a7IlIiIiUhadSLlI17dXcDGndGt3isrLzYUlT3codsIlZZNTky2LxXLVOp6ensyYMYMZM2Zctk7VqlX55ZdfrthOx44d+eOPP4odo1xZZu6lf3hCTZ5OjkRERETE/s5lZHMxJ4937m1KzeCSnSlaVPuT0hnxZTznMrKv+2QrOzu71GdYlQdlYoMMEYA1B844OwQRERGRQtUMrkDDyiaHvkqTzOXm5jJs2DBMJhMVK1Zk7Nix1oGNzz77jBYtWuDr60toaCj333+/zX4HADt27OD222/Hz88PX19f2rVrx4EDBwrta8OGDVSqVIk333zTWvbaa68RHByMr68vjz76KM8//7zN9LyBAwfSp08fJk6cSHh4OHXq1AFg27ZtdO7cGS8vL4KCgnjsscdIT0+3PtexY8cCZ+P26dPHOgsOoFq1arz++us88sgj+Pr6EhkZyYcffmjzzPr162nWrBmenp60aNHimg3CKNmSMuP+/63jQnaus8MQERERKXc++eQTXF1dWb9+PdOmTWPKlCl89NFHwKVt7V999VW2bNnCDz/8wOHDh22SlRMnTtC+fXs8PDxYunQpmzZt4pFHHiE3t+DPZUuXLuXWW29l4sSJjB49GoC5c+cyceJE3nzzTTZt2kRkZKR1udDfxcbGsmfPHhYvXsz8+fPJyMggJiaGgIAANmzYwNdff82SJUsYNmxYsd//22+/bU2innjiCYYMGcKePXsASE9P5/bbb6d+/fps2rSJ8ePH88wzzxS7j5IoM4caS/l08HSGXdt78vN4PhrQwq5tioiIiFzvIiIimDp1KgaDgTp16rBt2zamTp3K4MGDeeSRR6z1qlevzrvvvkvLli1JT0+nQoUKzJgxA5PJxBdffGE9wLd27doF+vj+++956KGH+Oijj7j33nut5dOnT2fQoEE8/PDDAIwbN47ffvvNZoQKwMfHh48++sg6ffB///sfmZmZfPrpp/j4+ADw3nvv0atXL958801CQkKK/P579uzJE088AcDo0aOZOnUqy5Yto06dOsybNw+z2czHH3+Mp6cnDRo04Pjx4wwZMqTI7ZeURrakVF6dv9Ou7e08mWrX9kRERERuBDfffLPN2VDR0dHs27ePvLw8Nm3aRK9evYiMjMTX15cOHToAcPToUQDi4+Np166dNdEqzLp16/jXv/7FZ599ZpNowaWjmVq1amVT9s9rgEaNGtms09q1axdNmjSxJloAbdq0wWw2W0eliqpx48bWrw0GA6Ghodapkrt27aJx48Z4ev61x8C1OgJKyZY41fhe9W2uT/65lbyIiIiIlF5mZiYxMTH4+fkxd+5cNmzYwPfffw9c2qQCwMvr6ptx1KhRg7p16zJr1ixycnJKFMvfk6qiMhqNBTbVK6z/fyaKBoMBs9lc7P7sTcmWONXANlH4emg2q4iIiEhprFu3zuZ67dq11KpVi927d3P27FneeOMN2rVrR926dQtsjtG4cWNWrVp1xSSqYsWKLF26lP3793PPPffY1K1Tpw4bNmywqf/P68LUq1ePLVu2kJHx17KU1atXYzQarRtoVKpUiVOnTlnv5+XlsX379qu2/c9+tm7dSmbmX7/UX7t2bbHaKCklW2IXgT4l37qzVojtzjtFORJARERERP5y9OhRRo0axZ49e/j888+ZPn06Tz31FJGRkbi7uzN9+nQOHjzITz/9xKuvvmrz7LBhw0hLS6Nfv35s3LiRffv28dlnnxWYyhccHMzSpUvZvXs39913n3UDjeHDh/Pxxx/zySefsG/fPl577TW2bt1qM62xMP3798fT05MBAwawfft2li1bxvDhw3nwwQet67U6d+7MggULWLBgAbt372bIkCGkpKQU63tz//33YzAYGDx4MDt37uSXX37hP//5T7HaKCkNKYhduLnYL2+PGvMLi0e2p1aIr93aFBERESmN/UnpV6/kxD4eeughLl68SKtWrXBxceGpp57isccew2AwMGfOHF544QXeffddbrrpJv7zn//Qu3dv67NBQUEsXbqUZ599lg4dOuDi4kLTpk1p06ZNgX5CQ0NZunQpHTt2pH///sybN4/+/ftz8OBBnnnmGTIzM7nnnnsYOHAg69evv2LM3t7eLFq0iKeeeoqWLVvi7e1N3759mTJlirXOI488wpYtW3jooYdwdXVl5MiRdOrUqVjfmwoVKvDzzz/z73//m2bNmlG/fn3efPNN+vbtW6x2SsJg0TDCVaWlpWEymUhNTcXPz8+psaRezKHJhN8A6FI3mI8HtnRqPNWeXwDA4TduK3Ebd72/ms1HU2zK+t5UhbfvaVKa0ERERESKLDMzk0OHDhEVFWWzkcKJ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MJvNREREMHz4cJ5//nmbullZWWRl/bUjUmpqKpGRkRw7dqxMJFtt3ljK1HuacGuDUJt7OXlm3FyMmM0WPlx5kL43VaaCpxsGAyzcnoDJy42bIgMwWyz4e7tx5nwW7q4umLy1GFhERKQw2blmzBYLqRdyuJCTy8q9p6lW0Qc3FyPPf7OV5As5zg5RpEg83Iy0qhZARlYem4+mlLq9IB83wvy92X6FEe3GVUwFNgBqUsXElj/LPN2MuBgNZGTlWe/XC/PFzcVofa5OqC97Es4Dl46/KAtnwaalpREREUFKSgom05V3dL0hkq3s7Gy8vb355ptv6NOnj7V8wIABpKSk8OOPP9rUHz9+PBMmTLjGUYqIiIiISHlx7NgxqlSpcsU6N8RE4TNnzpCXl0dISIhNeUhICLt3FzyDY8yYMYwaNcp6bTabSU5OJigoqExMg8jPpsvCSJvI1ejzKuWJPq9SnujzKuXJ9fR5tVgsnD9/nvDw8KvWvSGSreLy8PDAw8PDpszf3985wVyBn59fuf+wyo1Dn1cpT/R5lfJEn1cpT66Xz+vVpg/mc/4Ks2ugYsWKuLi4kJiYaFOemJhIaGjoZZ4SEREREREpuRsi2XJ3d6d58+bExsZay8xmM7GxsURHRzsxMhERERERuV7dMNMIR40axYABA2jRogWtWrXinXfeISMjg4cfftjZoRWbh4cHL7/8coGpjiJlkT6vUp7o8yrliT6vUp7cqJ/XG2I3wnzvvfee9VDjpk2b8u6779K6dWtnhyUiIiIiItehGyrZEhERERERuVZuiDVbIiIiIiIi15qSLREREREREQdQsiUiIiIiIuIASrZEREREREQcQMmWiIiIiIiIAyjZEhERERERcQAlWyIiIiIiIg6gZEtERERERMQBlGyJiIiIiIg4gJItERERERERB1CyJSIiIiIi4gBKtkRERERERBxAyZaIiIiIiIgDKNkSERERERFxACVbIiIiIiIiDqBkS0RERERExAGUbImIiIiIiDiAki0REREREREHULIlIiIiIiLiAEq2REREREREHEDJloiIiIiIiAMo2RIREREREXEAJVsiIiIiIiIOoGRLRERERETEAZRsiYiIiIiIOECZT7ZWrlxJr169CA8Px2Aw8MMPP9jct1gsjBs3jrCwMLy8vOjatSv79u2zqZOcnEz//v3x8/PD39+fQYMGkZ6efg3fhYiIiIiI3GjKfLKVkZFBkyZNmDFjRqH3J0+ezLvvvsvMmTNZt24dPj4+xMTEkJmZaa3Tv39/duzYweLFi5k/fz4rV67kscceu1ZvQUREREREbkAGi8VicXYQRWUwGPj+++/p06cPcGlUKzw8nKeffppnnnkGgNTUVEJCQpgzZw79+vVj165d1K9fnw0bNtCiRQsAFi5cSM+ePTl+/Djh4eHOejsiIiIiInIdc3V2AKVx6NAhEhIS6Nq1q7XMZDLRunVr4uLi6NevH3Fxcfj7+1sTLYCuXbtiNBpZt24dd955Z4F2s7KyyMrKsl6bzWaSk5MJCgrCYDA49k2JiIiIiEiZZbFYOH/+POHh4RiNV54oWK6TrYSEBABCQkJsykNCQqz3EhISCA4Otrnv6upKYGCgtc4/TZo0iQkTJjggYhERERERuR4cO3aMKlWqXLFOuU62HGXMmDGMGjXKep2amkpkZCTHjh3Dz8/PiZGJiIiIiIgzpaWlERERga+v71XrlutkKzQ0FIDExETCwsKs5YmJiTRt2tRaJykpyea53NxckpOTrc//k4eHBx4eHgXK/fz8lGyJiIiIiEiRlheV+d0IryQqKorQ0FBiY2OtZWlpaaxbt47o6GgAoqOjSUlJYdOmTdY6S5cuxWw207p162ses4iIiIiI3BjK/MhWeno6+/fvt14fOnSI+Ph4AgMDiYyMZMSIEbz22mvUqlWLqKgoxo4dS3h4uHXHwnr16tG9e3cGDx7MzJkzycnJYdiwYfTr1087EYqIiIiIiMOU+WRr48aNdOrUyXqdv5ZqwIABzJkzh+eee46MjAwee+wxUlJSaNu2LQsXLsTT09P6zNy5cxk2bBhdunTBaDTSt29f3n333Wv+XkRERERE5MZRrs7Zcpa0tDRMJhOpqalasyUiIiIiUo5ZLBZyc3PJy8u7bB03NzdcXFwKvVec3KDMj2yJiIiIiIjYQ3Z2NqdOneLChQtXrGcwGKhSpQoVKlQoVX9KtkRERERE5LpnNps5dOgQLi4uhIeH4+7uXuiOghaLhdOnT3P8+HFq1ap12RGuolCyJSIiIiIi173s7GzMZjMRERF4e3tfsW6lSpU4fPgwOTk5pUq2yvXW7yIiIiIiIsVhNF49BSrKGVpF6ssurYiIiIiIiIgNJVsiIiIiIiIOoGRLRERERETEAZRsiYiIiIiIOICSLRERERERuWFYLBa71CkKJVsiIiIiInLdc3NzA7jqgcZwaZt4oFTbvoPO2RIRERERkRuAi4sL/v7+JCUlAeDt7V3oFu9ms5nTp0/j7e2Nq2vp0iUlWyIiIiIickMIDQ0FsCZcl2M0GomMjCz1eVtKtkRERERE5IZgMBgICwsjODiYnJycy9Zzd3cv0uHHV6NkS0REREREbiguLi6lXo9VFNogQ0RERERExAGUbImIiIiIiDiAki0REREREREHULIlIiIiIiLiAEq2REREREREHEDJloiIiIiIiAMo2RIREREREXEAJVsiIiIiIiIOoGRLRERERETEAZRsiYiIiIiIOIDDk62srCxHdyEiIiIiIlLm2D3Z+vXXXxkwYADVq1fHzc0Nb29v/Pz86NChAxMnTuTkyZN27S8vL4+xY8cSFRWFl5cXNWrU4NVXX8VisVjrWCwWxo0bR1hYGF5eXnTt2pV9+/bZNQ4REREREZG/s1uy9f3331O7dm0eeeQRXF1dGT16NN999x2LFi3io48+okOHDixZsoTq1avz73//m9OnT9ul3zfffJMPPviA9957j127dvHmm28yefJkpk+fbq0zefJk3n33XWbOnMm6devw8fEhJiaGzMxMu8QgIiIiIiLyTwbL34eASiE6OpqXXnqJHj16YDRePoc7ceIE06dPJyQkhJEjR5a639tvv52QkBA+/vhja1nfvn3x8vLi//7v/7BYLISHh/P000/zzDPPAJCamkpISAhz5syhX79+V+0jLS0Nk8lEamoqfn5+pY5ZRERERETKp+LkBq726jQuLq5I9SpXrswbb7xhr2655ZZb+PDDD9m7dy+1a9dmy5Yt/P7770yZMgWAQ4cOkZCQQNeuXa3PmEwmWrduTVxcXKHJVlZWls1as7S0NLvFKyIiIiIiNwa7JVvO8vzzz5OWlkbdunVxcXEhLy+PiRMn0r9/fwASEhIACAkJsXkuJCTEeu+fJk2axIQJExwbuIiIiIiIXNfslmyNGjWqyHXzR53s4auvvmLu3LnMmzePBg0aEB8fz4gRIwgPD2fAgAElanPMmDE27yctLY2IiAh7hSwiIiIiIjcAuyVbf/zxh8315s2byc3NpU6dOgDs3bsXFxcXmjdvbq8uAXj22Wd5/vnnrdMBGzVqxJEjR5g0aRIDBgwgNDQUgMTERMLCwqzPJSYm0rRp00Lb9PDwwMPDw65xioiIiIjIjcVuydayZcusX0+ZMgVfX18++eQTAgICADh37hwPP/ww7dq1s1eXAFy4cKHAhhwuLi6YzWYAoqKiCA0NJTY21ppcpaWlsW7dOoYMGWLXWERERERERPI5ZM3W22+/zW+//WZNtAACAgJ47bXX6NatG08//bTd+urVqxcTJ04kMjKSBg0a8McffzBlyhQeeeQRAAwGAyNGjOC1116jVq1aREVFMXbsWMLDw+nTp4/d4hAREREREfk7hyRbaWlphZ6jdfr0ac6fP2/XvqZPn87YsWN54oknSEpKIjw8nMcff5xx48ZZ6zz33HNkZGTw2GOPkZKSQtu2bVm4cCGenp52jUVERERERCSf3c7Z+ruHHnqIVatW8fbbb9OqVSsA1q1bx7PPPku7du345JNP7N2lQ+mcLRERERERASeds/V3M2fO5JlnnuH+++8nJyfnUkeurgwaNIi33nrLEV2KiIiIiIiUKQ4Z2cqXkZHBgQMHAKhRowY+Pj6O6sqhNLIlIiIiIiJQvNzAeMW7pXTq1ClOnTpFrVq18PHxwYF5nYiIiIiISJnikGTr7NmzdOnShdq1a9OzZ09OnToFwKBBg+y6E6GIiIiIiEhZ5ZBka+TIkbi5uXH06FG8vb2t5ffeey8LFy50RJciIiIiIiJlikM2yPjtt99YtGgRVapUsSmvVasWR44ccUSXIiIiIiIiZYpDRrYyMjJsRrTyJScn4+Hh4YguRUREREREyhSHJFvt2rXj008/tV4bDAbMZjOTJ0+mU6dOjuhSRERERESkTHHINMLJkyfTpUsXNm7cSHZ2Ns899xw7duwgOTmZ1atXO6JLERERERGRMsUhI1sNGzZk7969tG3bljvuuIOMjAzuuusu/vjjD2rUqOGILkVERERERMoUhx5qfL3QocYiIiIiIgLFyw3sNo1w69atRa7buHFje3UrIiIiIiJSJtkt2WratCkGg4GrDZQZDAby8vLs1a2IiIiIiEiZZLdk69ChQ/ZqSkREREREpNyzW7JVtWpVezUlIiIiIiJS7jlk6/d8O3fu5OjRo2RnZ9uU9+7d25HdioiIiIiIOJ1Dkq2DBw9y5513sm3bNpt1XAaDAUBrtkRERERE5LrnkHO2nnrqKaKiokhKSsLb25sdO3awcuVKWrRowfLlyx3RpYiIiIiISJnikJGtuLg4li5dSsWKFTEajRiNRtq2bcukSZN48skn+eOPPxzRrYiIiIiISJnhkJGtvLw8fH19AahYsSInT54ELm2isWfPHkd0KSIiIiIiUqY4ZGSrYcOGbNmyhaioKFq3bs3kyZNxd3fnww8/pHr16o7oUkREREREpExxSLL10ksvkZGRAcArr7zC7bffTrt27QgKCuLLL790RJciIiIiIiJlisGSv1WggyUnJxMQEGDdkbA8SUtLw2QykZqaip+fn7PDERERERERJylObuCQNVupqakkJyfblAUGBnLu3DnS0tIc0aWIiIiIiEiZ4pBkq1+/fnzxxRcFyr/66iv69evniC5FRERERETKFIckW+vWraNTp04Fyjt27Mi6devs3t+JEyd44IEHCAoKwsvLi0aNGrFx40brfYvFwrhx4wgLC8PLy4uuXbuyb98+u8chIiIiIiKSzyHJVlZWFrm5uQXKc3JyuHjxol37OnfuHG3atMHNzY1ff/2VnTt38vbbbxMQEGCtM3nyZN59911mzpzJunXr8PHxISYmhszMTLvGIiIiIiIiks8hG2R06tSJhg0bMn36dJvyoUOHsnXrVlatWmW3vp5//nlWr1592TYtFgvh4eE8/fTTPPPMM8ClNWUhISHMmTOnSNMatUGGiIiIiIhA8XIDh2z9/tprr9G1a1e2bNlCly5dAIiNjWXDhg389ttvdu3rp59+IiYmhn/961+sWLGCypUr88QTTzB48GAADh06REJCAl27drU+YzKZaN26NXFxcYUmW1lZWWRlZVmvtamHiIiIiIgUl0OmEbZp04a4uDgiIiL46quv+Pnnn6lZsyZbt26lXbt2du3r4MGDfPDBB9SqVYtFixYxZMgQnnzyST755BMAEhISAAgJCbF5LiQkxHrvnyZNmoTJZLK+IiIi7BqziIiIiIhc/67ZOVuO4u7uTosWLVizZo217Mknn2TDhg3ExcWxZs0a2rRpw8mTJwkLC7PWueeeezAYDIUeslzYyFZERISmEYqIiIiI3OCcfs7W5s2b2bZtm/X6xx9/pE+fPrzwwgtkZ2fbta+wsDDq169vU1avXj2OHj0KQGhoKACJiYk2dRITE633/snDwwM/Pz+bl4iIiIiISHE4JNl6/PHH2bt3L3Bpmt+9996Lt7c3X3/9Nc8995xd+2rTpg179uyxKdu7dy9Vq1YFICoqitDQUGJjY63309LSWLduHdHR0XaNRUREREREJJ9Dkq29e/fStGlTAL7++ms6dOjAvHnzmDNnDt9++61d+xo5ciRr167l9ddfZ//+/cybN48PP/yQoUOHAmAwGBgxYgSvvfYaP/30E9u2beOhhx4iPDycPn362DUWERERERGRfA7ZjdBisWA2mwFYsmQJt99+OwARERGcOXPGrn21bNmS77//njFjxvDKK68QFRXFO++8Q//+/a11nnvuOTIyMnjsscdISUmhbdu2LFy4EE9PT7vGIiIiIiIiks8hG2R07tyZiIgIunbtyqBBg9i5cyc1a9ZkxYoVDBgwgMOHD9u7S4fSOVsiIiIiIgJlYIOMd955h82bNzNs2DBefPFFatasCcA333zDLbfc4oguRUREREREypRruvV7ZmYmLi4uuLm5Xasu7UIjWyIiIiIiAmVgZAsgJSWFjz76iDFjxpCcnAzAzp07SUpKclSXIiIiIiIiZYZDNsjYunUrXbp0wd/fn8OHDzN48GACAwP57rvvOHr0KJ9++qkjuhURERERESkzHDKyNWrUKB5++GH27dtns+Nfz549WblypSO6FBERERERKVMckmxt2LCBxx9/vEB55cqVSUhIcESXIiIiIiIiZYpDki0PDw/S0tIKlO/du5dKlSo5oksREREREZEyxSHJVu/evXnllVfIyckBwGAwcPToUUaPHk3fvn0d0aWIiIiIiEiZ4pBk6+233yY9PZ3g4GAuXrxIhw4dqFmzJr6+vkycONERXYqIiIiIiJQpDtmN0GQysXjxYlavXs2WLVtIT0/npptuomvXro7oTkREREREpMyxe7KVk5ODl5cX8fHxtGnThjZt2ti7CxERERERkTLP7tMI3dzciIyMJC8vz95Ni4iIiIiIlBsOWbP14osv8sILL5CcnOyI5kVERERERMo8h6zZeu+999i/fz/h4eFUrVoVHx8fm/ubN292RLciIiIiIiJlhkOSrT59+jiiWRERERERkXLDYLFYLM4OoqxLS0vDZDKRmpqKn5+fs8MREREREREnKU5uYLc1W8rZRERERERE/mK3ZKtBgwZ88cUXZGdnX7Hevn37GDJkCG+88Ya9uhYRERERESlz7LZma/r06YwePZonnniCW2+9lRYtWhAeHo6npyfnzp1j586d/P777+zYsYNhw4YxZMgQe3UtIiIiIiJS5th9zdbvv//Ol19+yapVqzhy5AgXL16kYsWKNGvWjJiYGPr3709AQIA9u3Q4rdkSEREREREoXm6gDTKKQMmWiIiIiIiAkzbIEBERERERkb8o2RIREREREXEAJVsiIiIiIiIOoGRLRERERETEAZRsiYiIiIiIOIBDkq3Nmzezbds26/WPP/5Inz59eOGFF6566HFpvfHGGxgMBkaMGGEty8zMZOjQoQQFBVGhQgX69u1LYmKiQ+MQEREREZEbm0OSrccff5y9e/cCcPDgQfr164e3tzdff/01zz33nCO6BGDDhg3897//pXHjxjblI0eO5Oeff+brr79mxYoVnDx5krvuusthcYiIiIiIiDgk2dq7dy9NmzYF4Ouvv6Z9+/bMmzePOXPm8O233zqiS9LT0+nfvz//+9//bA5NTk1N5eOPP2bKlCl07tyZ5s2bM3v2bNasWcPatWsLbSsrK4u0tDSbl4iIiIiISHE4JNmyWCyYzWYAlixZQs+ePQGIiIjgzJkzjuiSoUOHctttt9G1a1eb8k2bNpGTk2NTXrduXSIjI4mLiyu0rUmTJmEymayviIgIh8QsIiIiIiLXL4ckWy1atOC1117js88+Y8WKFdx2220AHDp0iJCQELv398UXX7B582YmTZpU4F5CQgLu7u74+/vblIeEhJCQkFBoe2PGjCE1NdX6OnbsmN1jFhERERGR65urIxqdOnUqDzzwAD/88AMvvvgiNWvWBOCbb77hlltusWtfx44d46mnnmLx4sV4enrapU0PDw88PDzs0paIiIiIiNyYHJJsNWnSxGY3wnxvvfUWrq727XLTpk0kJSVx0003Wcvy8vJYuXIl7733HosWLSI7O5uUlBSb0a3ExERCQ0PtGouIiIiIiEg+h0wjrF69OmfPni1QnpmZSe3ate3aV5cuXdi2bRvx8fHWV4sWLejfv7/1azc3N2JjY63P7Nmzh6NHjxIdHW3XWERERERERPI5ZGTr8OHD5OXlFSjPysri+PHjdu3L19eXhg0b2pT5+PgQFBRkLR80aBCjRo0iMDAQPz8/hg8fTnR0NDfffLNdYxEREREREcln12Trp59+sn69aNEiTCaT9TovL4/Y2FiioqLs2WWRTJ06FaPRSN++fcnKyiImJob333//mschIiIiIiI3DoPFYrHYqzGj8dKsRIPBwD+bdXNzo1q1arz99tvcfvvt9urymkhLS8NkMpGamoqfn5+zwxEREREREScpTm5g15Gt/LO1oqKi2LBhAxUrVrRn8yIiIiIiIuWGQ9ZsHTp0yBHNioiIiIiIlBsOSbYAYmNjiY2NJSkpyTrilW/WrFmO6lZERERERKRMcEiyNWHCBF555RVatGhBWFgYBoPBEd2IiIiIiIiUWQ5JtmbOnMmcOXN48MEHHdG8iIiIiIhImeeQQ42zs7O55ZZbHNG0iIiIiIhIueCQZOvRRx9l3rx5jmhaRERERESkXHDINMLMzEw+/PBDlixZQuPGjXFzc7O5P2XKFEd0KyIiIiIiUmY4JNnaunUrTZs2BWD79u0297RZhoiIiIiI3AgckmwtW7bMEc2KiIiIiIiUGw5ZsyUiIiIiInKjc8jIVqdOna44XXDp0qWO6FZERERERKTMcEiylb9eK19OTg7x8fFs376dAQMGOKJLERERERGRMsUhydbUqVMLLR8/fjzp6emO6FJERERERKRMuaZrth544AFmzZp1LbsUERERERFximuabMXFxeHp6XktuxQREREREXEKh0wjvOuuu2yuLRYLp06dYuPGjYwdO9YRXYqIiIiIiJQpDkm2TCaTzbXRaKROnTq88sordOvWzRFdioiIiIiIlCkOSbZmz57tiGZFRERERETKDYckW/k2bdrErl27AGjQoAHNmjVzZHciIiIiIiJlhkOSraSkJPr168fy5cvx9/cHICUlhU6dOvHFF19QqVIlR3QrIiIiIiJSZjhkN8Lhw4dz/vx5duzYQXJyMsnJyWzfvp20tDSefPJJR3QpIiIiIiJSphgsFovF3o2aTCaWLFlCy5YtbcrXr19Pt27dSElJsXeXDpWWlobJZCI1NRU/Pz9nhyMiIiIiIk5SnNzAISNbZrMZNze3AuVubm6YzWZHdCkiIiIiIlKmOCTZ6ty5M0899RQnT560lp04cYKRI0fSpUsXR3QpIiIiIiJSpjgk2XrvvfdIS0ujWrVq1KhRgxo1ahAVFUVaWhrTp0+3a1+TJk2iZcuW+Pr6EhwcTJ8+fdizZ49NnczMTIYOHUpQUBAVKlSgb9++JCYm2jUOERERERGRv3PImi0Ai8XCkiVL2L17NwD16tWja9eudu+ne/fu9OvXj5YtW5Kbm8sLL7zA9u3b2blzJz4+PgAMGTKEBQsWMGfOHEwmE8OGDcNoNLJ69eoi9aE1WyIiIiIiAsXLDRyWbDnL6dOnCQ4OZsWKFbRv357U1FQqVarEvHnzuPvuuwHYvXs39erVIy4ujptvvvmqbSrZEhERERERcOIGGUuXLqV+/fqkpaUVuJeamkqDBg1YtWqVPbsstB+AwMBA4NLByjk5OTajanXr1iUyMpK4uLhC28jKyiItLc3mJSIiIiIiUhx2TbbeeecdBg8eXGiGZzKZePzxx5kyZYo9u7RhNpsZMWIEbdq0oWHDhgAkJCTg7u5uPVw5X0hICAkJCYW2M2nSJEwmk/UVERHhsJhFREREROT6ZNdka8uWLXTv3v2y97t168amTZvs2aWNoUOHsn37dr744otStTNmzBhSU1Otr2PHjtkpQhERERERuVG42rOxxMTEQs/Xsnbm6srp06ft2aXVsGHDmD9/PitXrqRKlSrW8tDQULKzs0lJSbEZ3UpMTCQ0NLTQtjw8PPDw8HBInCIiIiIicmOw68hW5cqV2b59+2Xvb926lbCwMHt2icViYdiwYXz//fcsXbqUqKgom/vNmzfHzc2N2NhYa9mePXs4evQo0dHRdo1FREREREQkn11Htnr27MnYsWPp3r07np6eNvcuXrzIyy+/zO23327PLhk6dCjz5s3jxx9/xNfX17oOy2Qy4eXlhclkYtCgQYwaNYrAwED8/PwYPnw40dHRRdqJUEREREREpCTsuvV7YmIiN910Ey4uLgwbNow6deoAl7ZanzFjBnl5eWzevJmQkBB7dYnBYCi0fPbs2QwcOBC4dKjx008/zeeff05WVhYxMTG8//77l51G+E/a+l1ERERERMDJ52wdOXKEIUOGsGjRIvKbNhgMxMTEMGPGjALT/MoDJVsiIiIiIgLFyw3sOo0QoGrVqvzyyy+cO3eO/fv3Y7FYqFWrFgEBAfbuSkREREREpMyye7KVLyAggJYtWzqqeRERERERkTLNrrsRioiIiIiIyCVKtkRERERERBxAyZaIiIiIiIgDKNkSERERERFxACVbIiIiIiIiDqBkS0RERERExAGUbImIiIiIiDiAki0REREREREHULIlIiIiIiLiAEq2REREREREHEDJloiIiIiIiAMo2RIREREREXEAJVsiIiIiIiIOoGRLRERERETEAZRsiYiIiIiIOICSLREREREREQdQsiUiIiIiIuIASrZEREREREQcQMmWiIiIiIiIAyjZEhERERERcQAlWyIiIiIiIg6gZEtERERERMQBlGyJiIiIiIg4wA2VbM2YMYNq1arh6elJ69atWb9+vbNDEhERERGR69QNk2x9+eWXjBo1ipdffpnNmzfTpEkTYmJiSEpKcnZoIiIiIiJyHbphkq0pU6YwePBgHn74YerXr8/MmTPx9vZm1qxZzg5NRERERESuQ67ODuBayM7OZtOmTYwZM8ZaZjQa6dq1K3FxcQXqZ2VlkZWVZb1OTU0FIC0tzfHBioiIiIhImZWfE1gslqvWvSGSrTNnzpCXl0dISIhNeUhICLt37y5Qf9KkSUyYMKFAeUREhMNiFBERERGR8uP8+fOYTKYr1rkhkq3iGjNmDKNGjbJem81mkpOTCQoKwmAwODGyS9LS0oiIiODYsWP4+fk5OxyRK9LnVcoTfV6lPNHnVcqT6+nzarFYOH/+POHh4Vete0MkWxUrVsTFxYXExESb8sTEREJDQwvU9/DwwMPDw6bM39/fkSGWiJ+fX7n/sMqNQ59XKU/0eZXyRJ9XKU+ul8/r1Ua08t0QG2S4u7vTvHlzYmNjrWVms5nY2Fiio6OdGJmIiIiIiFyvboiRLYBRo0YxYMAAWrRoQatWrXjnnXfIyMjg4YcfdnZoIiIiIiJyHbphkq17772X06dPM27cOBISEmjatCkLFy4ssGlGeeDh4cHLL79cYKqjSFmkz6uUJ/q8Snmiz6uUJzfq59VgKcqehSIiIiIiIlIsN8SaLRERERERkWtNyZaIiIiIiIgDKNkSERERERFxACVbIiIiIiIiDqBkS0RERERExAGUbImIiIiIiDiAki0REREREREHULIlIiIiIiLiAEq2REREREREHEDJloiIiIiIiAMo2RIREREREXEAJVsiIiIiIiIOoGRLRERERETEAZRsiYiIiIiIOICSLREREREREQdQsiUiIiIiIuIASrZEREREREQcQMmWiIiIiIiIAyjZEhERERERcQAlWyIiIiIiIg6gZEtERERERMQBlGyJiIiIiIg4gJItERERERERB1CyJSIiIiIi4gBKtkRERERERBzAqcnWypUr6dWrF+Hh4RgMBn744Qeb+wMHDsRgMNi8unfvblMnOTmZ/v374+fnh7+/P4MGDSI9Pd2mztatW2nXrh2enp5EREQwefJkR781ERERERG5wTk12crIyKBJkybMmDHjsnW6d+/OqVOnrK/PP//c5n7//v3ZsWMHixcvZv78+axcuZLHHnvMej8tLY1u3bpRtWpVNm3axFtvvcX48eP58MMPHfa+REREREREXJ3ZeY8ePejRo8cV63h4eBAaGlrovV27drFw4UI2bNhAixYtAJg+fTo9e/bkP//5D+Hh4cydO5fs7GxmzZqFu7s7DRo0ID4+nilTptgkZSIiIiIiIvbk1GSrKJYvX05wcDABAQF07tyZ1157jaCgIADi4uLw9/e3JloAXbt2xWg0sm7dOu68807i4uJo37497u7u1joxMTG8+eabnDt3joCAgAJ9ZmVlkZWVZb02m80kJycTFBSEwWBw4LsVEREREZGyzGKxcP78ecLDwzEarzxRsEwnW927d+euu+4iKiqKAwcO8MILL9CjRw/i4uJwcXEhISGB4OBgm2dcXV0JDAwkISEBgISEBKKiomzqhISEWO8VlmxNmjSJCRMmOOhdiYiIiIhIeXfs2DGqVKlyxTplOtnq16+f9etGjRrRuHFjatSowfLly+nSpYvD+h0zZgyjRo2yXqemphIZGcmxY8fw8/NzWL9FkXoxhzZvLAVgUNsoRt5a26nxiIiIiIjcSNLS0oiIiMDX1/eqdct0svVP1atXp2LFiuzfv58uXboQGhpKUlKSTZ3c3FySk5Ot67xCQ0NJTEy0qZN/fbm1YB4eHnh4eBQo9/Pzc3qyZXHLwejhDYCnTwWnxyMiIiIiciMqyvKicnXO1vHjxzl79ixhYWEAREdHk5KSwqZNm6x1li5ditlspnXr1tY6K1euJCcnx1pn8eLF1KlTp9AphCIiIiIiIvbg1GQrPT2d+Ph44uPjATh06BDx8fEcPXqU9PR0nn32WdauXcvhw4eJjY3ljjvuoGbNmsTExABQr149unfvzuDBg1m/fj2rV69m2LBh9OvXj/DwcADuv/9+3N3dGTRoEDt27ODLL79k2rRpNtMERURERERE7M2pydbGjRtp1qwZzZo1A2DUqFE0a9aMcePG4eLiwtatW+nduze1a9dm0KBBNG/enFWrVtlM8Zs7dy5169alS5cu9OzZk7Zt29qcoWUymfjtt984dOgQzZs35+mnn2bcuHHa9l1ERERERBzKqWu2Onbs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3h84cCDHjh1j2bJlfPPNN7z//vskJSVdtr3c3Fz69OlDhw4d2Lp1K3FxcTz22GMYDIZixfXJJ5/g6urK+vXrmTZtGlOmTOGjjz4CLs1Ge/LJJ3nllVfYs2cPCxcupH379gBMmzaN6OhoBg8ezKlTpzh16pTNGbXPP/88b7zxBrt27aJx48akp6fTs2dPYmNj+eOPP+jevTu9evXi6NGj1mceeughPv/8c95991127drFf//7XypUqEBERATffvstAHv27OHUqVNMmzYNuHRO7qeffsrMmTPZsWOHdWnRihUrgEufh7vuuotevXoRHx/Po48+yvPPP1+s71GJWOSqUlNTLYAlNTXV2aFYUi5kW6qOnm+pOnq+5Y1fdzk7HBERkXLr4sWLlp07d1ouXrxoe+PEHxbLy36X/utoJehr3bp1FsDy3XffXbUuYHnppZes1+np6RbA8uuvv172mc8//9zy448/WrZu3Wr5/vvvLfXq1bO0bNnSkpubW+QYC/Pyyy9bXFxcLMePH7eW/frrrxaj0Wg5depUoc/k5eVZfH19LT///LPFYrFYFi1aZDEajZY9e/YUWn/27NkWk8lk2b17tyUiIsLy5JNPWsxms/X+6NGjLQ0bNrR55sUXX7QAlnPnzlnbACzx8fHWOnv37rUAltWrV1vLzpw5Y/Hy8rJ89dVX1vfXpEkTm7anTp1qqVq1qvV6wIABlqpVq9p8L//1r39Z7r33XovFYrHs2bPHAljWr19vvb9r1y4LYJk6dWqh7/ns2bMWwLJ8+fJC7w8YMMByxx132JQ99dRTlg4dOlivO3ToYKlXr16B71W9evUsFovF8u2331r8/PwsaWlphfbRoUMHy1NPPWVTtmzZMgtg+eGHHwp95u8aNGhgmT59usVi+et7sHjx4kLr5reb/+dlsVgsmZmZFm9vb8uaNWts6g4aNMhy3333WSwWi2XMmDGW+vXr29wfPXp0gbbyXfbfB0vxcgONbImIiIiUI5a/Te0qisaNG1u/9vHxwc/P74ojJf369aN37940atSIPn36MH/+fDZs2MDy5csLrT937lwqVKhgfa1ateqybUdGRlK5cmXrdXR0NGazmT179gCXjucZPHgwtWrVwmQy4efnR3p6unXUIz4+nipVqlC79uWnX168eJF27dpx1113Wae25duzZw8tW7a0qd+qVasC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RERERESkVtHS72Xw9vbG29u7qsMQEREREZFq7Iod2Tq1o3taWppHeVpamrsuLCys1I7vJSUlZGRkeLQp6xxnXkNERERERKSiXbHJVnR0NGFhYSxdutRdZrfbWb16NXFxcQDExcWRmZlJYmKiu82yZctwOp3Exsa62/z4448eu8IvXryY1q1bExwcfJnuRkREREREapsqTbZycnJISkoiKSkJcC2KkZSUREpKCiaTiccee4yXXnqJb775hs2bNzNs2DAiIiK47bbbAGjbti0DBgxgxIgRrFmzhpUrVzJ69GjuvPNOIiIiALjrrruw2Wzcf//9bN26lc8++4w333yTMWPGVNFdi4iIiIhIbVClz2ytW7eOG264wX18KgEaPnw4s2bN4qmnniI3N5eRI0eSmZnJtddey8KFC/Hx8XF/5uOPP2b06NH07dsXs9nMkCFDeOutt9z1gYGBLFq0iFGjRtGtWzcaNGjAc889d85l30VERERERCqCyTAMo6qDuNLZ7XYCAwPJysoiICCgSmPJyi+m06RFADx0fXPGDWhTpfGIiIiIiNQml5IbXLHPbImIiIiIiFRnSrZEREREREQqQbmSrfXr17N582b38ddff81tt93G3/72N4qKiiosOBERERERkeqqXMnWAw88wM6dOwHYu3cvd955J35+fsyZM4ennnqqQgMUERERERGpjsqVbO3cuZPOnTsDMGfOHHr37s3s2bOZNWsWX375ZUXGJyIiIiIiUi2VK9kyDAOn0wnAkiVLuOmmmwCIjIzk+PHjFRediIiIiIhINVWuZKt79+689NJL/Pe//2XFihUMGjQIcG1KHBoaWqEBioiIiIiIVEflSrZef/111q9fz+jRo3nmmWdo0aIFAF988QVXX311hQYoIiIiIiJSHVnL86FOnTp5rEZ4yquvvorVWq5TioiIiIiI1CjlGtlq1qwZJ06cKFVeUFBAq1atfnNQIiIiIiIi1V25kq39+/fjcDhKlRcWFnLo0KHfHJSIiIiIiEh1d0lz/r755hv3+++//57AwED3scPhYOnSpURHR1dcdCIiIiIiItXUJSVbt912GwAmk4nhw4d71Hl5edG0aVP++c9/VlhwIiIiIiIi1dUlJVun9taKjo5m7dq1NGjQoFKCEhERERERqe7KtXTgvn37KjoOERERERGRGqXc67QvXbqUpUuX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hZGJiIiIiEhNVWumEY4ZM4bhw4fTvXt3evbsyRtvvEFubi5//vOfqzq0S+bt7c3zzz9faqqjyJVI/VWqE/VXqU7UX6U6qa39tVasRnjK22+/7d7UuHPnzrz11lvExpZz3yEREREREZHzqFXJloiIiIiIyOVSK57ZEhERERERudyUbImIiIiIiFQCJVsiIiIiIiKVQMmWiIiIiIhIJVCyVc1MmzaNpk2b4uPjQ2xsLGvWrKnqkKQW+PHHHxk8eDARERGYTCbmzZvnUW8YBs899xzh4eH4+vrSr18/du3a5dEmIyODu+++m4CAAIKCgrj//vvJycnxaLNp0yZ69eqFj48PkZGRTJkypbJvTWqYyZMn06NHD+rWrUtISAi33XYbycnJHm0KCgoYNWoU9evXx9/fnyFDhpTa9D4lJYVBgwbh5+dHSEgIY8eOpaSkxKPNDz/8QNeuXfH29qZFixbMmjWrsm9Papjp06fTsWNHAgICCAgIIC4uju+++85dr74qV7JXXnkFk8nEY4895i5Tny2DIdXGp59+athsNuP99983tm7daowYMcIICgoy0tLSqjo0qeEWLFhgPPPMM8bcuXMNwPjqq6886l955RUjMDDQmDdvnrFx40bjlltuMaKjo438/Hx3mwEDBhidOnUyVq1aZfz0009GixYtjKFDh7rrs7KyjNDQUOPuu+82tmzZYnzyySeGr6+v8a9//ety3abUAPHx8cbMmTONLVu2GElJScZNN91kREVFGTk5Oe42Dz74oBEZGWksXbrUWLdunXHVVVcZV199tbu+pKTEaN++vdGvXz9jw4YNxoIFC4wGDRoY48ePd7fZu3ev4efnZ4wZM8bYtm2bMXXqVMNisRgLFy68rPcr1ds333xjfPvtt8bOnTuN5ORk429/+5vh5eVlbNmyxTAM9VW5cq1Zs8Zo2rSp0bFjR+PRRx91l6vPlqZkqxrp2bOnMWrUKPexw+EwIiIijMmTJ1dhVFLbnJ1sOZ1OIywszHj11VfdZZmZmYa3t7fxySefGIZhGNu2bTMAY+3ate423333nWEymYzDhw8bhmEY77zzjhEcHGwUFha624wbN85o3bp1Jd+R1GTp6ekGYKxYscIwDFff9PLyMubMmeNus337dgMwEhISDMNw/XLBbDYbqamp7jbTp083AgIC3P3zqaeeMtq1a+dxrT/+8Y9GfHx8Zd+S1HDBwcHGf/7zH/VVuWJlZ2cbLVu2NBYvXmxcd9117mRLfbZsmkZYTRQVFZGYmEi/fv3cZWazmX79+pGQkFCFkUltt2/fPlJTUz36ZmBgILGxse6+mZCQQFBQEN27d3e36devH2azmdWrV7vb9O7dG5vN5m4THx9PcnIyJ0+evEx3IzVNVlYWAPXq1QMgMTGR4uJij/7apk0boqKiPPprhw4dCA0NdbeJj4/HbrezdetWd5szz3Gqjb6PpbwcDgeffvopubm5xMXFqa/KFWvUqFEMGjSoVL9Sny2btaoDkItz/PhxHA6HR+cECA0NZceOHVUUlQikpqYClNk3T9WlpqYSEhLiUW+1WqlXr55Hm+jo6FLnOFUXHBxcKfFLzeV0Onnssce45ppraN++PeDqSzabjaCgII+2Z/fXsvrzqbrztbHb7eTn5+Pr61sZtyQ10ObNm4mLi6OgoAB/f3+++uorYmJiSEpKUl+VK86nn37K+vXrWbt2bak6fb+WTcmWiIjUSKNGjWLLli38/PPPVR2KyDm1bt2apKQksrKy+OKLLxg+fDgrVqyo6rBESjl48CCPPvooixcvxsfHp6rDqTY0jbCaaNCgARaLpdSKLmlpaYSFhVVRVCK4+9/5+mZYWBjp6eke9SUlJWRkZHi0KescZ15D5GKNHj2a+fPns3z5cho3buwuDwsLo6ioiMzMTI/2Z/fXC/XFc7UJCAiodr91lapls9lo0aIF3bp1Y/LkyXTq1Ik333xTfVWuOImJiaSnp9O1a1esVitWq5UVK1bw1ltvYbVaCQ0NVZ8tg5KtasJms9GtWzeWLl3qLnM6nSxdupS4uLgqjExqu+joaMLCwjz6pt1uZ/Xq1e6+GRcXR2ZmJomJie42y5Ytw+l0Ehsb627z448/Ulxc7G6zePFiWrdurSmEctEMw2D06NF89dVXLFu2rNTU1G7duuHl5eXRX5OTk0lJSfHor5s3b/b4BcHixYsJCAggJibG3ebMc5xqo+9j+a2cTieFhYXqq3LF6du3L5s3byYpKcn96t69O3fffbf7vfpsGap6hQ65eJ9++qnh7e1tzJo1y9i2bZsxcuRIIygoyGNFF5HKkJ2dbWzYsMHYsGGDARivvfaasWHDBuPAgQOGYbiWfg8KCjK+/vprY9OmTcatt95a5tLvXbp0MVavXm38/PPPRsuWLT2Wfs/MzDRCQ0ONe++919iyZYvx6aefGn5+flr6XS7JQw89ZAQGBho//PCDcfToUfcrLy/P3ebBBx80oqKijGXLlhnr1q0z4uLijLi4OHf9qaWJ+/fvbyQlJRkLFy40GjZsWObSxGPHjjW2b99uTJs2rVovTSxV4+mnnzZWrFhh7Nu3z9i0aZPx9NNPGyaTyVi0aJFhGOqrcuU7czVCw1CfLYuSrWpm6tSpRlRUlGGz2YyePXsaq1atquqQpBZYvny5AZR6DR8+3DAM1/Lvzz77rBEaGmp4e3sbffv2NZKTkz3OceLECWPo0KGGv7+/ERAQYPz5z382srOzPdps3LjRuPbaaw1vb2+jUaNGxiuvvHK5blFqiLL6KWDMnDnT3SY/P9/461//agQHBxt+fn7G7bffbhw9etTjPPv37zcGDhxo+Pr6Gg0aNDCeeOIJo7i42KPN8uXLjc6dOxs2m81o1qyZxzVELsZ9991nNGnSxLDZbEbDhg2Nvn37uhMtw1BflSvf2cmW+mxpJsMwjKoZUxMREREREam59MyWiIiIiIhIJVCyJSIiIiIiUgmUbImIiIiIiFQCJVsiIiIiIiKVQMmWiIiIiIhIJVCyJSIiIiIiUgmUbImIiIiIiFQCJVsiIiIiIiKVQMmWiIiIiIhIJVCyJSIiIiIiUgmUbImIiIiIiFSC/wdCk8If9XrHuwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(3, 1, figsize=(10, 8), sharex=True)\n", + "\n", + "\n", + "plt.sca(axs[0])\n", + "hist, bin_edges = background_meas.detectors[1].get_energy_hist()\n", + "\n", + "plt.hist(\n", + " bin_edges[:-1],\n", + " bins=bin_edges,\n", + " weights=hist,\n", + " histtype=\"step\",\n", + " label=f\"background\",\n", + ")\n", + "plt.ylim(top=2100)\n", + "plt.ylabel(\"Counts\")\n", + "plt.legend()\n", + "\n", + "plt.sca(axs[1])\n", + "\n", + "\n", + "# background_time = background_meas.detectors[1].real_count_time\n", + "# bg_hist_scale = hist * all_measurements[\"Mn54_1\"].detectors[1].real_count_time / background_time\n", + "# plt.hist(\n", + "# bin_edges[:-1],\n", + "# bins=bin_edges,\n", + "# weights=bg_hist_scale,\n", + "# histtype=\"step\",\n", + "# label=f\"background\",\n", + "# )\n", + "plt.ylim(top=100)\n", + "plt.ylabel(\"Counts (rescaled)\")\n", + "plt.legend()\n", + "\n", + "plt.sca(axs[2])\n", + "\n", + "hist, bin_edges = all_measurements[\"Mn54_1\"].detectors[1].get_energy_hist()\n", + "\n", + "plt.hist(\n", + " bin_edges[:-1],\n", + " bins=bin_edges,\n", + " weights=hist,\n", + " histtype=\"step\",\n", + " label=f\"Ch {detector.channel_nb} - raw\",\n", + ")\n", + "\n", + "\n", + "background_detector = background_meas.detectors[1]\n", + "\n", + "hist_background_substracted, bin_edges_bg_sub = (\n", + " all_measurements[\"Mn54_1\"]\n", + " .detectors[1]\n", + " .get_energy_hist_background_substract(background_detector)\n", + ")\n", + "\n", + "plt.hist(\n", + " bin_edges_bg_sub[:-1],\n", + " bins=bin_edges_bg_sub,\n", + " weights=hist_background_substracted,\n", + " histtype=\"step\",\n", + " label=f\"Ch {detector.channel_nb} - background substracted\",\n", + ")\n", + "plt.ylabel(\"Counts\")\n", + "\n", + "plt.legend()\n", + "# plt.yscale(\"log\")\n", + "plt.ylim(bottom=0, top=1500)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "calibration_coeffs = {}\n", + "\n", + "for channel_nb in [4, 5]:\n", + " calibration_channels, calibration_energies = compass.get_calibration_data(\n", + " all_measurements.values(),\n", + " background_measurement=background_meas,\n", + " channel_nb=channel_nb,\n", + " )\n", + "\n", + " coeff = np.polyfit(calibration_channels, calibration_energies, 1)\n", + " calibration_coeffs[channel_nb] = coeff\n", + "\n", + " xs = np.linspace(\n", + " calibration_channels[0],\n", + " calibration_channels[-1],\n", + " )\n", + " plt.plot(\n", + " xs,\n", + " np.polyval(coeff, xs),\n", + " label=f\"Ch {channel_nb} fit\",\n", + " )\n", + " plt.scatter(\n", + " calibration_channels,\n", + " calibration_energies,\n", + " label=f\"Ch {channel_nb} data\",\n", + " alpha=0.5,\n", + " )\n", + "plt.xlabel(\"Channel number\")\n", + "plt.ylabel(\"Energy (keV)\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ch_nb = 4\n", + "meas_name = \"Na22_2\"\n", + "\n", + "background_detector = background_meas.detectors[0]\n", + "check_source_detector = all_measurements[meas_name].detectors[0]\n", + "\n", + "assert background_detector.channel_nb == check_source_detector.channel_nb\n", + "assert (\n", + " background_detector.channel_nb == ch_nb\n", + "), f\"Channel number mismatch: {background_detector.channel_nb} != {ch_nb}\"\n", + "\n", + "hist, bin_edges = check_source_detector.get_energy_hist_background_substract(\n", + " background_detector,\n", + " bins=None,\n", + ")\n", + "\n", + "calibrated_bin_edges = np.polyval(calibration_coeffs[ch_nb], bin_edges)\n", + "\n", + "xvals = np.diff(calibrated_bin_edges) / 2 + calibrated_bin_edges[:-1]\n", + "\n", + "for energy_peak in all_measurements[meas_name].check_source.nuclide.energy:\n", + "\n", + " parameters, covariance = compass.fit_peak_gauss(\n", + " hist, xvals, [energy_peak], search_width=400\n", + " )\n", + "\n", + " # plotting\n", + "\n", + " peak_start = 100\n", + " peak_end = 3000\n", + " plt.fill_between(\n", + " xvals[peak_start:peak_end],\n", + " compass.gauss(xvals[peak_start:peak_end], *parameters),\n", + " alpha=0.5,\n", + " )\n", + "\n", + "plt.hist(\n", + " calibrated_bin_edges[:-1],\n", + " bins=calibrated_bin_edges,\n", + " weights=hist,\n", + " histtype=\"step\",\n", + " label=f\"Ch {detector.channel_nb} - calibrated\",\n", + ")\n", + "plt.ylabel(\"Counts\")\n", + "plt.title(f\"{meas_name} - background substracted\")\n", + "plt.legend()\n", + "plt.xlabel(\"Energy (keV)\")\n", + "plt.ylim(bottom=0)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Detection efficiency: [0.02613734 0.01332036]\n" + ] + } + ], + "source": [ + "efficiency = all_measurements[\"Na22_2\"].compute_detection_efficiency(\n", + " background_measurement=background_meas,\n", + " calibration_coeffs=calibration_coeffs[5],\n", + " channel_nb=5,\n", + " search_width=300,\n", + ")\n", + "\n", + "print(f\"Detection efficiency: {efficiency}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing Co60_1...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(46957.38643825811), np.float64(44045.459628740195)]\n", + "Processing Co60_2...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(22416.58388011696), np.float64(22529.586339447393)]\n", + "Processing Co60_3...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(16054.125444967927), np.float64(13553.682613733048)]\n", + "Processing Co60_4...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(29843.318378842872), np.float64(29774.61769554247)]\n", + "Processing Co60_5...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(10864.152988263319), np.float64(9305.379734783886)]\n", + "Processing Cs137_1...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(663133.8158949262)]\n", + "Processing Cs137_2...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(1081873.0672619161)]\n", + "Processing Cs137_3...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(1132822.892638708)]\n", + "Processing Cs137_4...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(782585.5604400036)]\n", + "Processing Mn54_1...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(8283.256725880987)]\n", + "Processing Mn54_2...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(8872.47112105926)]\n", + "Processing Mn54_3...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(3578.3870157813676)]\n", + "Processing Na22_2...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(2218104.329563081), np.float64(502104.2113759391)]\n", + "Processing Na22_3...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(1350638.6115192047), np.float64(370990.75368719886)]\n", + "Processing Na22_4...\n", + "[ 0.78350295 -37.75182068] [ 0 1 2 ... 4094 4095 4096]\n", + "Counts measured: [np.float64(2130508.5872191284), np.float64(484392.7750372546)]\n" + ] + } + ], + "source": [ + "channel_nb = 4\n", + "calibration_coeffs_ = calibration_coeffs[channel_nb]\n", + "for name, measurement in all_measurements.items():\n", + " \n", + " background_detector = background_meas.get_detector(channel_nb)\n", + " check_source_detector = measurement.get_detector(channel_nb)\n", + "\n", + " hist, bin_edges = check_source_detector.get_energy_hist_background_substract(\n", + " background_detector, bins=None\n", + " )\n", + " print(f\"Processing {name}...\")\n", + " print(calibration_coeffs_, bin_edges)\n", + " calibrated_bin_edges = np.polyval(calibration_coeffs_, bin_edges)\n", + "\n", + " nb_counts_measured = compass.get_multipeak_area(\n", + " hist,\n", + " calibrated_bin_edges,\n", + " measurement.check_source.nuclide.energy,\n", + " search_width=200,\n", + " )\n", + "\n", + " print(f\"Counts measured: {nb_counts_measured}\")\n", + "\n", + " if not np.all(\n", + " np.array(nb_counts_measured) > 0\n", + " ):\n", + " plt.hist(\n", + " calibrated_bin_edges[:-1],\n", + " bins=calibrated_bin_edges,\n", + " weights=hist,\n", + " histtype=\"step\",\n", + " label=f\"Ch {check_source_detector.channel_nb} - calibrated\",\n", + " )\n", + " for energy_peak in measurement.check_source.nuclide.energy:\n", + " parameters, covariance = compass.fit_peak_gauss(\n", + " hist, xvals, [energy_peak], search_width=200\n", + " )\n", + " search_start = np.argmin(\n", + " np.abs((energy_peak - 200 / (2 * len([energy_peak]))) - xvals)\n", + " )\n", + " search_end = np.argmin(\n", + " np.abs((energy_peak + 200 / (2 * len([energy_peak]))) - xvals)\n", + " )\n", + " plt.fill_between(\n", + " xvals[search_start:search_end],\n", + " compass.gauss(xvals[search_start:search_end], *parameters),\n", + " alpha=0.5,\n", + " )\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "channel_nb = 4\n", + "for name, measurement in all_measurements.items():\n", + " efficiency = measurement.compute_detection_efficiency(\n", + " background_measurement=background_meas,\n", + " calibration_coeffs=calibration_coeffs[channel_nb],\n", + " channel_nb=channel_nb,\n", + " search_width=200,\n", + " )\n", + " plt.scatter(\n", + " measurement.check_source.nuclide.energy,\n", + " efficiency * 100,\n", + " label=name,\n", + " )\n", + "plt.xlabel(\"Energy (keV)\")\n", + "plt.ylabel(\"Detection efficiency (%)\")\n", + "plt.legend()\n", + "plt.ylim(bottom=0)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# fit efficiency curve with polynomial\n", + "\n", + "def efficiency_curve(channel_nb, measurements):\n", + " efficiencies = []\n", + " energies = []\n", + " for measurement in measurements:\n", + " efficiency = measurement.compute_detection_efficiency(\n", + " background_measurement=background_meas,\n", + " calibration_coeffs=calibration_coeffs[channel_nb],\n", + " channel_nb=channel_nb,\n", + " search_width=200,\n", + " )\n", + " efficiencies.append(efficiency)\n", + " energies.append(measurement.check_source.nuclide.energy)\n", + "\n", + " # flatten the lists\n", + " energies = [energy for sublist in energies for energy in sublist]\n", + " efficiencies = [efficiency for sublist in efficiencies for efficiency in sublist]\n", + " return energies, efficiencies\n", + "energies, efficiencies = efficiency_curve(4, list(all_measurements.values()))\n", + "\n", + "detection_efficiency_coeffs = np.polyfit(energies, efficiencies, 2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAGwCAYAAACJjDBkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAc2VJREFUeJzt3Xd8FNXeBvBndje7m15JJRB6KIGEFoIICkhQFKMiiEgTu4KAImDDqxcRkSuKKPpyBRtVEZUiBkRRCC2QQCiBUEM6hOwmm7LtvH9EVvcmgWzYsJvk+X4+87kwc2bmN/P6uo8zZ86RhBACRERERGQTmaMLICIiImqIGKKIiIiI6oAhioiIiKgOGKKIiIiI6oAhioiIiKgOGKKIiIiI6oAhioiIiKgOFI4uoDEzm83Izs6Gp6cnJElydDlERERUC0IIFBcXIzQ0FDJZzc+bGKLqUXZ2NsLDwx1dBhEREdVBZmYmmjdvXuN2hqh65OnpCaDy/wheXl4OroaIiIhqQ6vVIjw83PI7XhOGqHp09RWel5cXQxQREVEDc72uOOxYTkRERFQHDFFEREREdcAQRURERFQHDFFEREREdcAQRURERFQHDFFEREREdcAQRURERFQHDFFEREREdcAQRURERFQHHLGcrstsFsgqKoNOb4S7UoEwH1fIZJxQmYiImjaGKLqmjPxibE3Lw+mCEpQbTVAr5GjTzAPxXYLQNvDacwoRERE1ZgxRVKOM/GIs33UOhTo9QrzVcFO6olRvRFq2BtmaMky8JYJBioiImiz2iaJqmc0CW9PyUKjTo12gBzzVLpDLJHiqXdAu0AOFOj1+OZoHs1k4ulQiIiKHYIiiamUVleF0QQlCvNVVZrGWJAkh3mpk5Jcgq6jMQRUSERE5FkMUVUunN6LcaIKbsvo3vq5KOSqMJuj0xptcGRERkXNgiGpghBBYufcCXlyXCiHq71Wau1IBtUKO0hpCUpneBJVCDvcaQhYREVFjxxDVwJy9pMPrP6Th2+SL2Hg4p97OE+bjijbNPJCjKa8S1oQQyNGUo22gB8J8XOutBiIiImfGENXAtG7mgecGtgUAvPZDGvKLy+vlPDKZhPguQfBzV+JUfgmKyw0wms0oLjfgVH4J/NyVGNI5iONFERFRk8UQ1QA9e3tbdArxQlGpAa98n1Zvr/XaBnpi4i0R6BLqjaJSA85d0qGo1ICoMG8Ob0BERE2eJOqzY00Tp9Vq4e3tDY1GAy8vL7se+3iOFsM/+hMGk8CiUdFIiAmz6/H/iSOWExFRU1Lb328+iWqgOoZ44flB7QAAc348ijxt/bzWAypf7YX7uSEy2Avhfm4MUERERGCIatCeGtAGUWHe0JQZ8PL6I/X6tR4RERFZY4hqwBRyGRaO7AalXIbtJ/LxbfJFR5dERETUZDBENXDtgzwx7Y72AIA3fzqGbI4gTkREdFMwRDUCj9/aCjEtfFBcYcTM7w7ztR4REdFNwBDVCCjkMix8sBvULjL8ceoSvtl7wdElERERNXoMUY1E62YeeCk+EgDw9ubjOH9Z5+CKiIiIGjeGqEZkQt8IxLbyQ6nehBnrDsNkts9rPbNZILOwFCdytcgsLIXZTsclIiJqyDh7bCMik0l478FuGLpoJ/adK8TyXWfx2K2tb+iYGfnF2JqWh9MFJSg3mqBWyNGmmQfiuwRxxHIiImrS+CSqkQn3c8MrwzoBAN7dmo5TecV1PlZGfjGW7zqHtGwNfNxc0DrAAz5uLkjL1mD5rnPIyK/7sYmIiBo6hqhGaHTvcAxo3wx6oxnT16bCYDLbfAyzWWBrWh4KdXq0C/SAp9oFcpkET7UL2gV6oFCnxy9H8/hqj4iImiynCFFLlixBREQE1Go1YmNjsW/fvmu2X7duHSIjI6FWqxEVFYXNmzdbthkMBsycORNRUVFwd3dHaGgoxo0bh+zsbKtjREREQJIkq+Wdd96xanP48GHceuutUKvVCA8Px7vvvmu/i65HkiRh/gNd4e3qgiNZGizZkWHzMbKKynC6oAQh3mpIkvU0L5IkIcRbjYz8EmRxXCoiImqiHB6i1qxZg+nTp2POnDk4ePAgunXrhvj4eOTn51fbfvfu3Rg9ejQmTZqEQ4cOISEhAQkJCUhLSwMAlJaW4uDBg3jttddw8OBBrF+/Hunp6Rg+fHiVY7355pvIycmxLJMnT7Zs02q1GDJkCFq2bInk5GQsWLAAb7zxBj777LP6uRF2Fuytxpv3dgYALP41A4cvFtm0v05vRLnRBDdl9d3mXJVyVBhN0OmNN1oqERFRgyQJB4/MGBsbi169euGjjz4CAJjNZoSHh2Py5MmYNWtWlfajRo2CTqfDxo0bLev69OmD6OhoLF26tNpz7N+/H71798b58+fRokULAJVPoqZOnYqpU6dWu88nn3yCV155Bbm5uVAqlQCAWbNmYcOGDThx4kS1+1RUVKCiosLyd61Wi/Dw8OvOAl1fhBB4btUhbDqcgzbN3LFpyq1Qu8hrtW9mYSneTzwJHzcXeKpdqmwvLjegqNSAaXe0R7ifm71LJyIichitVgtvb+/r/n479EmUXq9HcnIyBg8ebFknk8kwePBgJCUlVbtPUlKSVXsAiI+Pr7E9AGg0GkiSBB8fH6v177zzDvz9/RETE4MFCxbAaPz7qUpSUhL69+9vCVBXz5Oeno4rV65Ue5558+bB29vbsoSHh9dY080gSRL+fW8XNPNU4XSBDgu2ptd63zAfV7Rp5oEcTXmVEdCFEMjRlKNtoAfCfFztXTYREVGD4NAQdenSJZhMJgQFBVmtDwoKQm5ubrX75Obm2tS+vLwcM2fOxOjRo63S5JQpU7B69Wrs2LEDTz75JN5++2289NJL1z3P1W3VmT17NjQajWXJzMys4cpvHl93Jd59oCsA4L9/nkXS6cu12k8mkxDfJQh+7kqcyi9BcbkBRrMZxeUGnMovgZ+7EkM6B0Emk65/MCIiokaoUY8TZTAYMHLkSAgh8Mknn1htmz59uuXPXbt2hVKpxJNPPol58+ZBpVLV6XwqlarO+9an2yMDMbp3C6zadwEvrkvFlqm3wquaV3T/q22gJybeEmEZJypPWw6VQo6oMG8M6cxxooiIqGlzaIgKCAiAXC5HXl6e1fq8vDwEBwdXu09wcHCt2l8NUOfPn8evv/563T5JsbGxMBqNOHfuHDp06FDjea7W0NC8OqwjdmVcwoXCUvzrx2NYOLJbrfZrG+iJ1rd5IKuoDDq9Ee5KBcJ8XPkEioiImjyHvs5TKpXo0aMHtm/fbllnNpuxfft2xMXFVbtPXFycVXsASExMtGp/NUCdOnUK27Ztg7+//3VrSUlJgUwmQ2BgoOU8O3fuhMFgsDpPhw4d4Ovra9N1OgN3lQL/GdkNMgn47uBFbDmSU+t9ZTIJ4X5uiAz2QrifGwMUERERnGCIg+nTp+P//u//8MUXX+D48eN4+umnodPpMHHiRADAuHHjMHv2bEv7559/Hj///DMWLlyIEydO4I033sCBAwfw3HPPAagMUCNGjMCBAwfwzTffwGQyITc3F7m5udDr9QAqO40vWrQIqampOHPmDL755htMmzYNjzzyiCUgPfzww1AqlZg0aRKOHj2KNWvW4IMPPrB6DdjQ9Izww1MD2gAAXv7+CPK15Q6uiIiIqAETTmDx4sWiRYsWQqlUit69e4s9e/ZYtg0YMECMHz/eqv3atWtF+/bthVKpFJ07dxabNm2ybDt79qwAUO2yY8cOIYQQycnJIjY2Vnh7ewu1Wi06duwo3n77bVFeXm51ntTUVNGvXz+hUqlEWFiYeOedd2y6Lo1GIwAIjUZj2w2pRxUGk7hz0U7RcuZGMeHzvcJsNju6JCIiIqdS299vh48T1ZjVdpyJm+1kXjHuXvwn9EYz5t7XBWNiWzq6JCIiIqfRIMaJIsdoH+SJl+I7AAD+vfE4zl7SObgiIiKihochqol69JZWiGvtjzKDCVPXpNRpkmIiIqKmjCGqiZLJJCwc2Q2eagVSM4vw0a+2T1JMRETUlDFENWGhPq6Ye18UAOCjHRlIPl/9dDZERERUFUNUEze8WygSokNhMgtMX5sCXYXx+jsRERERQxQB/7q3C0K91Th/uRRvbTzm6HKIiIgaBIYogrerCxaOjIYkAav3Z2Lr0eonWCYiIqK/MUQRACCujT+e6N8aADDru8MczZyIiOg6GKLIYvod7dEpxAtXSg14YV0qzGaOw0pERFQThiiyUCnk+HB0NFQKGf44dQkrdp9zdElEREROiyGKrLQN9MSrd3cCALyz5QSO52gdXBEREZFzYoiiKh6JbYFBkYHQm8yYujoF5QaTo0siIiJyOgxRVIUkSZg/oisCPJRIzyvG/J9POLokIiIip8MQRdUK8FBhwYPdAADLd53Db+n5Dq6IiIjIuTBEUY1u7xCICX0jAAAvrktFQXGFYwsiIiJyIgxRdE2z7oxEhyBPXCrR46VvUyEEhz0gIiICGKLoOtQucnw4OgZKhQw70gvwBYc9ICIiAsAQRbXQIdgTr9zVEQDwNoc9ICIiAsAQRbU0Lq4lBkYGQm80Y8qqQxz2gIiImjyGKKoVSZKwYERXNPNU4VR+CeZuOu7okoiIiByKIYpqzd9DhYV/DXvw1Z7z+OVoroMrIiIichyGKLJJ//bN8PitrQAAL313GDmaMgdXRERE5BgMUWSzGfGRiArzRlGpAVNXp8Bk5rAHRETU9DBEkc2UChk+HB0DN6Uce88W4uMdGY4uiYiI6KZjiKI6aRXgjrfu7QIAWLT9FJLPFzq4IiIiopuLIYrq7P7uYUiIDoXJLDBlVQo0ZQZHl0RERHTTMERRnUmShLcSuqCFnxuyisowe/1hTgtDRERNBkMU3RBPtQs+HB0DhUzC5iO5WLUv09ElERER3RQMUXTDosN98NLQDgCAf/10FOm5xQ6uiIiIqP4xRJFdPNavNQa0b4YKoxnPrTyIMj2nhSEiosaNIYrsQiaTsHBkN8u0MP/66aijSyIiIqpXDFFkNwEeKiwaFQ1JAlbvz8SPqdmOLomIiKjeMESRXd3SNgDP3d4WAPDy+iM4f1nn4IqIiIjqB0MU2d3zg9qhV4QvSiqMeG7lIVQY2T+KiIgaH4YosjuFXIYPHoqBj5sLjmRp8M6WE44uiYiIyO4YoqhehPq4YuGD3QAAy3edw9ajuQ6uiIiIyL4YoqjeDOoYhMdvbQUAmLEuFRevlDq4IiIiIvthiKJ6NSM+Et3CfaAtN2LyqkMwmMyOLomIiMguGKKoXikVMnw0OgaeagUOXSjCe1vTHV0SERGRXTBEUb0L93PDghGV/aM+3XkG24/nObgiIiKiG+cUIWrJkiWIiIiAWq1GbGws9u3bd83269atQ2RkJNRqNaKiorB582bLNoPBgJkzZyIqKgru7u4IDQ3FuHHjkJ3998CP586dw6RJk9CqVSu4urqiTZs2mDNnDvR6vVUbSZKqLHv27LH/DWgChnYJxoS+EQCAF9alIquozLEFERER3SCHh6g1a9Zg+vTpmDNnDg4ePIhu3bohPj4e+fn51bbfvXs3Ro8ejUmTJuHQoUNISEhAQkIC0tLSAAClpaU4ePAgXnvtNRw8eBDr169Heno6hg8fbjnGiRMnYDab8emnn+Lo0aN4//33sXTpUrz88stVzrdt2zbk5ORYlh49etTPjWgCXr6rI7o190ZRqQHPrTwIvZH9o4iIqOGShBDCkQXExsaiV69e+OijjwAAZrMZ4eHhmDx5MmbNmlWl/ahRo6DT6bBx40bLuj59+iA6OhpLly6t9hz79+9H7969cf78ebRo0aLaNgsWLMAnn3yCM2fOAKh8EtWqVSscOnQI0dHRtbqWiooKVFRUWP6u1WoRHh4OjUYDLy+vWh2jscssLMWwD/+AttyIx29thVeGdXJ0SURERFa0Wi28vb2v+/vt0CdRer0eycnJGDx4sGWdTCbD4MGDkZSUVO0+SUlJVu0BID4+vsb2AKDRaCBJEnx8fK7Zxs/Pr8r64cOHIzAwEP369cOPP/54zeuZN28evL29LUt4ePg12zdF4X5uWPDX+FH/98dZJB5j/ygiImqYHBqiLl26BJPJhKCgIKv1QUFByM2tfnDG3Nxcm9qXl5dj5syZGD16dI1pMiMjA4sXL8aTTz5pWefh4YGFCxdi3bp12LRpE/r164eEhIRrBqnZs2dDo9FYlszMzBrbNmXxnYMxqV/l+FEvrE1BZiHHjyIiooZH4egC6pPBYMDIkSMhhMAnn3xSbZusrCwMHToUDz74IB5//HHL+oCAAEyfPt3y9169eiE7OxsLFiyw6l/1TyqVCiqVyr4X0UjNHBqJ5PNXkJJZhGdXHsS6p+KgUsgdXRYREVGtOfRJVEBAAORyOfLyrF/p5OXlITg4uNp9goODa9X+aoA6f/48EhMTq30KlZ2djdtvvx19+/bFZ599dt16Y2NjkZGRcd12dH1KhQxLxnSHj5sLDl/UYO6m444uiYiIyCYODVFKpRI9evTA9u3bLevMZjO2b9+OuLi4aveJi4uzag8AiYmJVu2vBqhTp05h27Zt8Pf3r3KcrKws3HbbbejRoweWL18Omez6tyIlJQUhISG1vTy6jjAfV7w/KhoA8GXSefyUmn3tHYiIiJyIw1/nTZ8+HePHj0fPnj3Ru3dvLFq0CDqdDhMnTgQAjBs3DmFhYZg3bx4A4Pnnn8eAAQOwcOFCDBs2DKtXr8aBAwcsT5IMBgNGjBiBgwcPYuPGjTCZTJb+Un5+flAqlZYA1bJlS7z33nsoKCiw1HP1idYXX3wBpVKJmJgYAMD69evx+eefY9myZTft3jQFt3cIxLO3t8GSHacx67vD6BTqhTbNPBxdFhER0XU5PESNGjUKBQUFeP3115Gbm4vo6Gj8/PPPls7jFy5csHpK1LdvX6xcuRKvvvoqXn75ZbRr1w4bNmxAly5dAFQ+Ybra+ft/hybYsWMHbrvtNiQmJiIjIwMZGRlo3ry5VZt/jvjw1ltv4fz581AoFIiMjMSaNWswYsSI+rgNTdq0we2RfP4K9pwpxDNfH8SGZ2+Bq5L9o4iIyLk5fJyoxqy240wQkF9cjmEf/omC4grc3z0MCx/sBkmSHF0WERE1QQ1inCiiqwI91fjwoRjIJGD9wSys2sfhIYiIyLkxRJHTiGvjjxnxkQCAN348iiMXNQ6uiIiIqGYMUeRUnhrQGoM7BkFvMuPpb5JRVKq//k5EREQOwBBFTkWSJCwc2Q0t/Nxw8UoZpq1JgdnMbntEROR8GKLI6Xi7uuCTR7pDpZBhR3oBPv6NA5wSEZHzYYgip9Q51BtvJVQOW7Ew8ST+OFVwnT2IiIhuLoYocloje4ZjVM9wCAFMWXUIWUVlji6JiIjIgiGKnNq/7u2MqDBvXCk14Jmvk1FhNDm6JCIiIgAMUeTk1C5yfPzXRMWpFzX410/HHF0SERERAIYoagDC/dzwwUMxkCRg5d4LWHuAA3ESEZHjMURRgzCgfTNMH9weAPDqhjSkZXEgTiIiciyGKGownr29LQZFBkJvNOOpr5NxRceBOImIyHEYoqjBkMkk/GdkNFr6Vw7EOWX1IZg4ECcRETkIQxQ1KN5uLlj6SA+4usjxx6lLWPhLuqNLIiKiJoohihqcjiFemD+iKwDg499O4+e0HAdXRERETRFDFDVIw7uF4rF+rQAAL6xNRUZ+sYMrIiKipoYhihqsWXdGok9rP+j0JjzxVTKKyw2OLomIiJoQhihqsBRyGT56uDtCvNU4U6DD9LWpMLOjORER3SQMUXRdZrNAZmEpTuRqkVlY6lRBJcBDhaWP9IBSIUPisTws/jXD0SUREVEToXB0AeTcMvKLsTUtD6cLSlBuNEGtkKNNMw/EdwlC20BPR5cHAOgW7oN/J3TBS98exvvbTqJzqBcGdwpydFlERNTI8UkU1SgjvxjLd51DWrYGPm4uaB3gAR83F6Rla7B81zmn6sw9smc4xsW1BABMW5OCjPwSB1dERESNnc0haseOHfVRBzkZs1lga1oeCnV6tAv0gKfaBXKZBE+1C9oFeqBQp8cvR/Oc6tXea3d3Qu8IPxRXGPHEVwegZUdzIiKqRzaHqKFDh6JNmzb497//jcxMTgTbWGUVleF0QQlCvNWQJMlqmyRJCPFWIyO/BFlFZQ6qsCoXuQxLxvyjo/maFKcKeURE1LjYHKKysrLw3HPP4dtvv0Xr1q0RHx+PtWvXQq/nPGaNiU5vRLnRBDdl9d3mXJVyVBhN0OmNN7mya2vm+XdH823H87Fo20lHl0RERI2UzSEqICAA06ZNQ0pKCvbu3Yv27dvjmWeeQWhoKKZMmYLU1NT6qJNuMnelAmqFHKU1hKQyvQkqhRzuNYQsR+oW7oN590UBAD78NQNbjnBEcyIisr8b6ljevXt3zJ49G8899xxKSkrw+eefo0ePHrj11ltx9OhRe9VIDhDm44o2zTyQoymHENavxIQQyNGUo22gB8J8XB1U4bU90KM5Jl0d0XxdKo7naB1cERERNTZ1ClEGgwHffvst7rrrLrRs2RJbt27FRx99hLy8PGRkZKBly5Z48MEH7V0r3UQymYT4LkHwc1fiVH4JissNMJrNKC434FR+CfzclRjSOQgymXT9gznI7Dsj0a9tAEr1Jjz+5QEU6vjKmYiI7EcS//uY4TomT56MVatWQQiBsWPH4rHHHkOXLl2s2uTm5iI0NBRms9muxTY0Wq0W3t7e0Gg08PLycnQ5dfLPcaIqjJWv8NoGemBIZ+cZJ+paikr1GP7RLlwoLEXfNv748tHeUMg5sgcREdWstr/fNoeoQYMG4bHHHsP9998PlUpVbRuj0Yhdu3ZhwIABtlXdyDSGEAVUDneQVVQGnd4Id6UCYT6uTv0E6n+l5xbjvo93oVRvwoS+EXhjeGdHl0RERE6s3kIU1V5jCVGNwc9puXjq62QAwDv3R+Gh3i0cXBERETmr2v5+2/xeY968efj888+rrP/8888xf/58Ww9HdFMM7RKM6Xe0BwC89kMa9p0tdHBFRETU0Nkcoj799FNERkZWWd+5c2csXbrULkUR1YfJA9tiWFQIDCaBp79OxsUrpXY5rjNP0ExERPXH5kF+cnNzERISUmV9s2bNkJPD8XjIeUmShAUPdsW5yzoczdbi8S+T8e1TcXBX1X2sq4YwQTMREdUPm59EhYeHY9euXVXW79q1C6GhoXYpiqi+uCkV+GxcTwR4KHE8R4sX1qbW+clRQ5qgmYiI7M/mEPX4449j6tSpWL58Oc6fP4/z58/j888/x7Rp0/D444/XR41EdhXm44qlj/SAi1zCz0dz6zQ1TEOcoJmIiOzL5vcYM2bMwOXLl/HMM89Y5stTq9WYOXMmZs+ebfcCiepDzwg/vH1fFGZ8exgf/pqBtkGeGN6t9k9SbZmgOdzPzd7lExGRE7D5SZQkSZg/fz4KCgqwZ88epKamorCwEK+//np91EdUbx7sGY4n+rcGAMxYl4qUzKJa79tQJ2gmIiL7qfPQzR4eHujVqxe6dOlS46CbRM5u5tBIDIoMRIXRjCe+PIBcTXmt9mvIEzQTEZF92ByidDodXnvtNfTt2xdt27ZF69atrRaihkQuk7DooWh0CPJEfnEFHvtyP8r0puvu19AnaCYiohtn838mP/bYY/j9998xduxYhISEVOkPQtTQeKpdsGx8T9y7ZBfSsrSYvjYFSx7ufs2pba5O0JytKcOp/Mq+Ua5KOcr0JuRoyhvEBM1ERHRjbH4StWXLFqxbtw7z58/H1KlT8fzzz1stdbFkyRJERERArVYjNjYW+/btu2b7devWITIyEmq1GlFRUdi8ebNlm8FgwMyZMxEVFQV3d3eEhoZi3LhxyM7OtjpGYWEhxowZAy8vL/j4+GDSpEkoKSmxanP48GHceuutUKvVCA8Px7vvvlun6yPnF+7nhk/HVn6xtyUtF/9JvP4Xe20DPTHxlgh0CfVGUakB5y7pUFRqQFSYNybeEsFxooiIGjmbQ5Svry/8/PzsVsCaNWswffp0zJkzBwcPHkS3bt0QHx+P/Pz8atvv3r0bo0ePxqRJk3Do0CEkJCQgISEBaWlpAIDS0lIcPHgQr732Gg4ePIj169cjPT0dw4cPtzrOmDFjcPToUSQmJmLjxo3YuXMnnnjiCct2rVaLIUOGoGXLlkhOTsaCBQvwxhtv4LPPPrPbtZNz6RXhh3n3dwUAfLQjA+sPXrzuPm0DPfH0bW0w7Y72mDyoHabd0R5PDWjDAEVE1BQIG3311VdixIgRQqfT2bprtXr37i2effZZy99NJpMIDQ0V8+bNq7b9yJEjxbBhw6zWxcbGiieffLLGc+zbt08AEOfPnxdCCHHs2DEBQOzfv9/SZsuWLUKSJJGVlSWEEOLjjz8Wvr6+oqKiwtJm5syZokOHDjWep7y8XGg0GsuSmZkpAAiNRnONO0DOZv6W46LlzI2i3cubxb6zlx1dDhER3WQajaZWv982P4lauHAhtm7diqCgIERFRaF79+5Wiy30ej2Sk5MxePBgyzqZTIbBgwcjKSmp2n2SkpKs2gNAfHx8je0BQKPRQJIk+Pj4WI7h4+ODnj17WtoMHjwYMpkMe/futbTp378/lEql1XnS09Nx5cqVas8zb948eHt7W5bw8PBr3wBySi8O6YChnYOhN5nx5FfJuHDZPnPsERFR42Jzx/KEhAS7nfzSpUswmUwICgqyWh8UFIQTJ05Uu09ubm617XNzc6ttX15ejpkzZ2L06NHw8vKyHCMwMNCqnUKhgJ+fn+U4ubm5aNWqVZXzXN3m6+tb5VyzZ8/G9OnTLX/XarUMUg2QTCbh/VHRyPo0CUeyNHj0i/347um+8HZ1cXRpRETkRGwOUXPmzKmPOuqFwWDAyJEjIYTAJ598Uu/nU6lUHDOrkXBVyiu/2PtoFzLyS/DMN8lYMbE3XOR1HlqNiIgamTr9IhQVFWHZsmWYPXs2CgsLAQAHDx5EVlaWTccJCAiAXC5HXl6e1fq8vDwEBwdXu09wcHCt2l8NUOfPn0diYqLlKdTVY/xvx3Wj0YjCwkLLcWo6z9Vt1PgFeanx3wk94aaUY1fGZby2Ia3KmFBERNR02RyiDh8+jPbt22P+/Pl47733UFRUBABYv369zXPnKZVK9OjRA9u3b7esM5vN2L59O+Li4qrdJy4uzqo9ACQmJlq1vxqgTp06hW3btsHf37/KMYqKipCcnGxZ9+uvv8JsNiM2NtbSZufOnTAYDFbn6dChQ7Wv8qhx6hzqjcWjYyCTgNX7M/HpzjOOLomIiJyFrT3WBw0aJGbMmCGEEMLDw0OcPn1aCCHErl27RMuWLW09nFi9erVQqVRixYoV4tixY+KJJ54QPj4+Ijc3VwghxNixY8WsWbMs7Xft2iUUCoV47733xPHjx8WcOXOEi4uLOHLkiBBCCL1eL4YPHy6aN28uUlJSRE5OjmX555d2Q4cOFTExMWLv3r3izz//FO3atROjR4+2bC8qKhJBQUFi7NixIi0tTaxevVq4ubmJTz/9tNbXVtve/eT8Pv/zjGg5c6NoOXOj2Hw429HlEBFRPart77fNIcrLy0tkZGQIIaxD1Llz54RKpapDqUIsXrxYtGjRQiiVStG7d2+xZ88ey7YBAwaI8ePHW7Vfu3ataN++vVAqlaJz585i06ZNlm1nz54VAKpdduzYYWl3+fJlMXr0aOHh4SG8vLzExIkTRXFxsdV5UlNTRb9+/YRKpRJhYWHinXfesem6GKIal9c3HBEtZ24U7V/ZLA6eL3R0OUREVE9q+/stCWFbJ4/AwEBs3boVMTEx8PT0RGpqKlq3bo3ExEQ8+uijyMzMtO+jsgZMq9XC29sbGo3Gqk8WNUxGkxmPf3kAO9ILEOChxPfP3IJwPzdHl0VERHZW299vm/tEDR8+HG+++aalr5AkSbhw4QJmzpyJBx54oO4VEzk5hVyGxQ93R6cQL1wq0WPC8n3QlBquvyMRETVKdRpss6SkBIGBgSgrK8OAAQPQtm1beHp6Yu7cufVRI5HT8FAp8PmEXgj2UuN0gQ5Pfn0AFUaTo8siIiIHsPl13lV//vknDh8+jJKSEnTv3r3KKOLE13mN2fEcLR5cmoSSCiPuiwnDtMHtUGowwV2pQJiPK2QyydElEhFRHdX297vOIYqujyGqcdt5sgATlu+DWQCRwZ5o3cwdaoUcbZp5IL5LECchJiJqoGr7+12rEcs//PBDPPHEE1Cr1fjwww+v2XbKlCm2VUrUQIX6qNErwg97zxbiRG4xQn1cEeylRlq2BtmaMky8JYJBioioEavVk6hWrVrhwIED8Pf3rzKfnNXBJAlnznAwwqv4JKrxMpsFPvntNNKyNSgorsCB81cgk4Dh3ULRws8Np/JLEBXmjacGtOGrPSKiBsauT6LOnj1b7Z+JmqqsojKcLihBiLca7QI9UFJhxIncYmw6koMHe4QjxFuNjPwSZBWVcRgEIqJGirOpEtWBTm9EudEEN6UCkiRhcMcgNPd1hcEk8ENKFoxmMyqMJuj0RkeXSkRE9cTmEPXAAw9g/vz5Vda/++67ePDBB+1SFJGzc1cqoFbIUfpXSJLLJNzdNQT+7kro9Cb8mJIDCRLclbV62EtERA2QzSFq586duOuuu6qsv/POO7Fz5067FEXk7MJ8XNGmmQdyNOW42q1QpZDj3uhQuKvkKCozIPViEQLclQ6ulIiI6ovNIaqkpARKZdUfBhcXF2i1WrsUReTsZDIJ8V2C4OeuxKn8EhSXG2A0mwEA0eE+cJFLyLxShhe/PQyzmaOIEBE1RjaHqKioKKxZs6bK+tWrV6NTp052KYqoIWgb6ImJt0SgS6g3ikoNOHdJh6JSA25pE4C37+sCF7mETUdy8NamY+BwbEREjY/NHTZee+013H///Th9+jQGDhwIANi+fTtWrVqFdevW2b1AImfWNtATrW/zQFZRGXR6o9WI5UqFHM+vTsHyXecQ4q3GE/3bOLpcIiKyI5tD1D333IMNGzbg7bffxrfffgtXV1d07doV27Ztw4ABA+qjRiKnJpNJ1Q5jcG90GPK1FZi7+Tje3nwCgZ5qJMSEOaBCIiKqD5z2pR5xsM2mwWwW1T6Juuqtjcfw3z/PwkUuYfmE3ujXLsCB1RIR0fXYdbBNIqpeRn4xtqbl4XRBCcqNpmrnznvlro7I05Zj4+EcPPnVAax+Ig5Rzb0dXDkREd2oWnUs9/Pzw6VLlwAAvr6+8PPzq3Ehaioy8ouxfNc5pGVr4OPmgtYBHvBxc0FatgbLd51DRn4xgMrXfQtHdkPfNv7Q6U2YsHwfzl3SObh6IiK6UbV6EvX+++/D07Pyv6oXLVpUn/UQNQhms8DWtDwU6vRoF+gBSap8feepdoGHSoFT+SX45WgeWgd4QCaToFLI8enYHnjosz04mq3FuM/34dun4xDoqXbwlRARUV3VKkSlpqZixIgRUKlUaNWqFfr27QuFgm8Cqen659x5VwPUVZIkVTt3nqfaBcsn9sKIT5JwobAUEz7fjzVP9oGn2sURl0BERDeoVq/zFi9ejJKSEgDA7bffjsLCwnotisjZ/XPuvOq4KuXVzp0X6KnGl4/2RoCHEsdytHjiy2SUG0w3o2QiIrKzWj1OioiIwIcffoghQ4ZACIGkpCT4+vpW27Z///52LZDIGf1z7rzqniSV6U1QKeTVzp0XEeCOFRN7Y9SnSUg6cxlTV6dgyZjukMukKm2JiMh51WqIgw0bNuCpp55Cfn4+JEmqcfRlSZJgMvG/qq/iEAeNl9ks8Mlvp5GWrbHqEwUAQgicyi9BVJg3nhrQxmq4g3/anXEJE5bvh95kxuje4Xj7vqgqrwaJiOjmq+3vd61e5yUkJCA3NxdarRZCCKSnp+PKlStVFr7mo6aiprnzissNOJVfAj93JYZ0DqoxQAFA37YB+HB0NGQSsGpfJt77Jf0mXgEREd2oWoWo6dOnQ6fTwcPDAzt27ECrVq3g7e1d7ULUVNQ0d15UmDcm3hJhGSfqWoZ2CcHc+6IAAEt2nMayP87Ud9lERGQntXqd5+LigosXLyIoKAhyuRw5OTkIDAy8GfU1aHyd1zRcb8Ty2liyIwMLtlY+iVr4YDc80KN5fZRKRES1YNcRy9mxnKhmNc2dZ4tnbmuDKzo9lv15Fi99dxieagWGdA62U4VERFQf2LG8HvFJFNnCbBZ46bvD+Db5IpRyGVZM7IW+bTnPHhHRzVbb32+bJiAuKSmBl5cX0tPTa3ydx35Rf2OIIlsZTWY8u/Igth7Ng5tSjpWP90F0uI+jyyIialLs+nXeVexYTlSV2SyQWViKE7laZBaWwmyu9X+XVKGQy/DBQzG4pa0/Sv+aZ+9kXrEdqyUiInux6UnUVadPn8by5ctx+vRpfPDBBwgMDMSWLVvQokULdO7cuT7qbJD4JKrxy8gvxta0PJwuKEG50QS1Qo42zTwQ3yWoVl/n1URXYcSYZXuRklmEQE8Vvn2qL1r431i/KyIiqp16eRIFAL///juioqKwd+9erF+/3jIdTGpqKubMmVP3iokamIz8YizfdQ5p2Rr4uLmgdYAHfNxckJatwfJd55CRX/cnSO4qBVZM7IUOQZ7IL67AmP/uQa6m3I7VExHRjbI5RM2aNQv//ve/kZiYCKVSaVk/cOBA7Nmzx67FETkrs1lga1oeCnV6tAv0gKfaBXKZBE+1C9oFeqBQp8cvR/Nu6NWej5sSX03qjZb+bsgsLMMj/92LyyUVdrwKIiK6ETaHqCNHjuC+++6rsj4wMBCXLl2yS1FEzi6rqAynC0oQ4q2uMlWLJEkI8VYjI78EWUVlN3SeQC81vp4UazneuM/3QVNmuKFjEhGRfdgconx8fJCTk1Nl/aFDhxAWFmaXooicnU5vRLnRBLdqJhgGAFelHBVGE3R64w2fK9zPDV8/FosADyWOZmvx6Ir9KLXDcYmI6MbYHKIeeughzJw5E7m5uZAkCWazGbt27cKLL76IcePG1UeNRE7HXamAWiGvMcyU6U1QKeRwryFk2apNMw98+WgsvNQKJJ+/gie+TEa5gWOyERE5ks0h6u2330ZkZCTCw8NRUlKCTp06oX///ujbty9effXV+qiRyOmE+biiTTMP5GjKqww+K4RAjqYcbQM9EObjardzdgr1wopHe8NdKcefGZfwzDcHoTea7XZ8IiKyTZ2GOACAzMxMHDlyBCUlJYiJiUG7du3sXVuDxyEOGrerX+cV6vQI8VbDVSlHmd6EHE05/NyVtZ6E2FZ7zlzG+M/3ocJoxl1RwfjwoRgo5Db/9xAREdWgXkYsJ9swRDV+/xwnqsJY+QqvbaAHhnS+sXGiruf3kwV4/IsD0JvMuC8mDO892A1yGyc9JiKi6jFEOQGGqKbBbBbIKiqDTm+Eu1KBMB9XyG5CoEk8loenv06G0SzwUK9wzLs/qsqXgkREZLt6G2yTiKzJZBLC/dwQGeyFcD+3mxKgAOCOTkF4f1Q0ZBKwen8m3vjxaI2TgxMRkf05PEQtWbIEERERUKvViI2Nxb59+67Zft26dYiMjIRarUZUVBQ2b95stX39+vUYMmQI/P39IUkSUlJSrLafO3cOkiRVu6xbt87Srrrtq1evttt1E9nDPd1CsWBEN0gS8EXSefx703EGKSKim8ShIWrNmjWYPn065syZg4MHD6Jbt26Ij49Hfn5+te13796N0aNHY9KkSTh06BASEhKQkJCAtLQ0SxudTod+/fph/vz51R4jPDwcOTk5Vsu//vUveHh44M4777Rqu3z5cqt2CQkJdrt2Int5oEdzzLsvCgDw3z/PYv7P6QxSREQ3QZ36RBUVFWHfvn3Iz8+H2Wz9ibUtY0XFxsaiV69e+OijjwAAZrMZ4eHhmDx5MmbNmlWl/ahRo6DT6bBx40bLuj59+iA6OhpLly61anvu3Dm0atUKhw4dQnR09DXriImJQffu3fHf//7Xsk6SJHz//fc2BaeKigpUVPw9LYdWq0V4eDj7RNFN8dWe83htQ+V/UEwZ1A7T72jv4IqIiBqm2vaJsnkkwJ9++gljxoxBSUkJvLy8rDqySpJU6xCl1+uRnJyM2bNnW9bJZDIMHjwYSUlJ1e6TlJSE6dOnW62Lj4/Hhg0bbL0Mi+TkZKSkpGDJkiVVtj377LN47LHH0Lp1azz11FOYOHHiNTvuzps3D//617/qXAvRjRjbpyUMRjPe3HgMH24/BaVcwnMDOfQIEVF9sfl13gsvvIBHH30UJSUlKCoqwpUrVyxLYWFhrY9z6dIlmEwmBAUFWa0PCgpCbm5utfvk5uba1L42/vvf/6Jjx47o27ev1fo333wTa9euRWJiIh544AE888wzWLx48TWPNXv2bGg0GsuSmZlZ57qI6uLRfq0w+85IAMB7v5zEkh0ZDq6IiKjxsvlJVFZWFqZMmQI3N7f6qOemKisrw8qVK/Haa69V2fbPdTExMdDpdFiwYAGmTJlS4/FUKhVUKlW91EpUW08OaAOjWWDB1nQs2JoOmSTh6dvaOLosIqJGx+YnUfHx8Thw4MANnzggIAByuRx5eXlW6/Py8hAcHFztPsHBwTa1v55vv/0WpaWltXoFGRsbi4sXL1r1eSJyVs/e3hYvDqnsEzX/5xP49PfTDq6IiKjxsflJ1LBhwzBjxgwcO3YMUVFRcHFxsdo+fPjwWh1HqVSiR48e2L59u6Xzttlsxvbt2/Hcc89Vu09cXBy2b9+OqVOnWtYlJiYiLi7O1ssAUPkqb/jw4WjWrNl126akpMDX15dPmqjBeG5gO5gF8J/Ek5i35QRkkoTH+7d2dFlERI2GzSHq8ccfB1DZZ+h/SZIEk6n2M8tPnz4d48ePR8+ePdG7d28sWrQIOp0OEydOBFD5pV9YWBjmzZsHAHj++ecxYMAALFy4EMOGDcPq1atx4MABfPbZZ5ZjFhYW4sKFC8jOzgYApKenA6h8ivXPJ1YZGRnYuXNnlXGmgMrO83l5eejTpw/UajUSExPx9ttv48UXX6z1tRE5gymD2sEsBBZtO4W5m49DkoDHbmWQIiKyC+FgixcvFi1atBBKpVL07t1b7Nmzx7JtwIABYvz48Vbt165dK9q3by+USqXo3Lmz2LRpk9X25cuXCwBVljlz5li1mz17tggPDxcmk6lKTVu2bBHR0dHCw8NDuLu7i27duomlS5dW2/ZaNBqNACA0Go1N+xHZ28Jf0kXLmRtFy5kbxae/Zzi6HCIip1bb32/OnVePOHceOZP3E0/ig+2nAACz7ozEUwPY2ZyIqDr1Onfe77//jnvuuQdt27ZF27ZtMXz4cPzxxx91LpaI6t+0O9pj6uDKcaPe2XICH//G4Q+IiG6EzSHq66+/xuDBg+Hm5oYpU6ZgypQpcHV1xaBBg7By5cr6qJGI7GTq4PaWkczf/Tmd40gREd0Am1/ndezYEU888QSmTZtmtf4///kP/u///g/Hjx+3a4ENGV/nkbP66NdTeO+XkwCAqYPb4flB7a45Gj8RUVNSb6/zzpw5g3vuuafK+uHDh+Ps2bO2Ho6IHOC5ge0wc2jlyOaLtp3Ce79w0mIiIlvZHKLCw8Oxffv2Kuu3bduG8PBwuxRFRPXv6dva4NVhHQEAS3acxrwtJxikiIhsYPM4US+88AKmTJmClJQUy3xzu3btwooVK/DBBx/YvUAiqj+P3doaSoUMr/9wFJ/tPAO90Yw593Tiqz0iolqwOUQ9/fTTCA4OxsKFC7F27VoAlf2k1qxZg3vvvdfuBRJR/RoXFwGFTIaXvz+CFbvPocJoxtyELpDJGKSIiK6F40TVI3Ysp4Zk3YFMvPTdYQgB3B8ThndHdIVCXqdRUIiIGrR6HSeKiBqfB3uGY9GoaMhlEtYfysLzq1OgN5odXRYRkdOq1es8Pz8/nDx5EgEBAfD19b1mf4nCwkK7FUdEN9e90WFQu8jx3MqD2HQkBxVGEz56uDvULnJHl0ZE5HRqFaLef/99eHp6Wv7MTqdEjVd852D837ieePKrZGw7no/HvjiAz8b1gJvS5i6URESNGvtE1SP2iaKGbPfpS3jsiwMo1ZvQo6UvPp/QC96uLo4ui4io3tVbnyi5XI78/Pwq6y9fvgy5nI/8iRqLvm0C8NWkWHipFUg+fwWjP9uDyyUVji6LiMhp2ByianpwVVFRAaVSecMFEZHz6NHSF6ue6AN/dyWO5Wgx8tMk5GjKHF0WEZFTqHUnhw8//BAAIEkSli1bBg8PD8s2k8mEnTt3IjIy0v4VEpFDdQ71xtqn4vDIsr04XaDDg0uT8M1jsWjp7+7o0oiIHKrWfaJatWoFADh//jyaN29u9epOqVQiIiICb775JmJjY+un0gaIfaKoMbl4pRRjlu3F+culaOapwpeP9kbHEPv9c202C2QVlUGnN8JdqUCYjysH/CQih6jt77fNHctvv/12rF+/Hr6+vjdcZGPHEEWNTb62HOM+34cTucXwUiuwfGJv9Gh54/8uyMgvxta0PJwuKEG50QS1Qo42zTwQ3yUIbQM97VA5EVHt1VuIotpjiKLGSFNqwMQV+3DwQhFcXeT4dGwP9G/frM7Hy8gvxvJd51Co0yPEWw03pQKleiNyNOXwc1di4i0RDFJEdFPV29d5DzzwAObPn19l/bvvvosHH3zQ1sMRUQPj7eaCrx+LRf/2zVBmMGHSF/ux6XBOnY5lNgtsTctDoU6PdoEe8FS7QC6T4Kl2QbtADxTq9PjlaB7MZv63HhE5H5tD1M6dO3HXXXdVWX/nnXdi586ddimKiJybm1KBZeN64u6uITCYBJ5bdRBf7zlv83GyispwuqAEId7qKoP4SpKEEG81MvJLkFXELwKJyPnYHKJKSkqqHcrAxcUFWq3WLkURkfNTKmT44KEYjIltASGAVzek4YNtp2ocBqU6Or0R5UZTjaOhuyrlqDCaoNMb7VU2EZHd2ByioqKisGbNmirrV69ejU6dOtmlKCJqGOQyCf9O6IIpg9oBAN7fdhJzfjxa69dv7koF1Ao5SmsISWV6E1QKOdw55QwROSGb/8302muv4f7778fp06cxcOBAAMD27duxatUqrFu3zu4FEpFzkyQJ0+9oD393Jd746Si+TDqPQp0eC0d2g0px7VkMwnxc0aaZB9KyNfBQKaxe6QkhkKMpR1SYN8J8XOv7MoiIbGZziLrnnnuwYcMGvP322/j222/h6uqKrl27Ytu2bRgwYEB91EhEDcD4vhHwdVfihbUp2Hg4B1dK9Vj6SA94qmueb08mkxDfJQjZmjKcyq/sG+WqlKNMb7J8nTekcxDHiyIip8QhDuoRhzigpmjnyQI89XUySvUmdArxwopHeyHQU33Nff45TlSFsfIVXttADwzpzHGiiOjmq9dxooqKivDtt9/izJkzePHFF+Hn54eDBw8iKCgIYWFhN1R4Y8IQRU3V4YtFeHTFflwq0aO5ryu+fLQ3WjfzuOY+HLGciJxFvYWow4cPY/DgwfD29sa5c+eQnp6O1q1b49VXX8WFCxfw5Zdf3nDxjQVDFDVl5y/rMO7zfTh/uRR+7kr8d3xPxLTgTAdE5PzqbbDN6dOnY8KECTh16hTU6r8f0d91110cJ4qILFr6u+O7p/uia3NvFOr0ePj/9mL78TxHl0VEZDc2h6j9+/fjySefrLI+LCwMubm5dimKiBqHAA8VVj3eBwP+Gt388S8P1GlQTiIiZ2RziFKpVNUOqnny5Ek0a1b3+bOIqHFyVymwbHxPjOzZHOa/BuWc//MJTuVCRA2ezSFq+PDhePPNN2EwGABUjhFz4cIFzJw5Ew888IDdCySihs9FLsP8B7pi6uDKQTk/+e00pq9Ngd5odnBlRER1Z3OIWrhwIUpKShAYGIiysjIMGDAAbdu2haenJ+bOnVsfNRJRIyBJEqYObo93R3SFQiZhQ0o2xn2+F5pSg6NLIyKqkzqPE7Vr1y6kpqaipKQE3bt3x+DBg+1dW4PHr/OIqrfzZAGe/joZOr0JbZq5Y8XE3gj3c3N0WUREAOpxiIMvv/wSo0aNgkqlslqv1+uxevVqjBs3rm4VN0IMUUQ1O5atxaMr9iNXW44ADyWWje+F6HAfR5dFRFR/IUoulyMnJweBgYFW6y9fvozAwECYTKa6VdwIMUQRXVuuphyPrtiPYzlaqF1kWDQqBkO7BDu6LCJq4uptnCghhNUkoVddvHgR3t7eth6OiJqwYG811j4Vh9s6NEO5wYynv0nG/+08A85GRUQNQa0nII6JiYEkSZAkCYMGDYJC8feuJpMJZ8+exdChQ+ulSCJqvDxUCiwb1xNzfjyKb/ZewNzNx3H4YhHee7AbVC5yR5dHRFSjWoeohIQEAEBKSgri4+Ph4fH3PFhKpRIREREc4oCI6uTcZR1CvNToGuaNw1ka/HQ4B6kXNfjgoW6IaeHn6PKIiKplc5+oL774AqNGjbKa8oWqxz5RRNeXkV+M5bvO4XKJHl5qBXK05Ug6fRlGs4CXWoGPHo5B//aB1z8QEZGd1FufqPHjx6O8vBzLli3D7NmzUVhYCAA4ePAgsrKy6l4xETU5ZrPA1rQ8XCgshaZUj8NZGuRoytDc1xVKuQzaciOe/OogkjIuObpUIqIqbA5Rhw8fRvv27TF//ny89957KCoqAgCsX78es2fPtrmAJUuWICIiAmq1GrGxsdi3b981269btw6RkZFQq9WIiorC5s2brbavX78eQ4YMgb+/PyRJQkpKSpVj3HbbbZb+XVeXp556yqrNhQsXMGzYMLi5uSEwMBAzZsyA0Wi0+fqIqGZZRWU4lHkFBcXlKCipgNpFBl83JXzcXBDqrYJaIUOZwYRHPt+H1fsuOLpcIiIrNoeoadOmYcKECTh16pTVK7277roLO3futOlYa9aswfTp0zFnzhwcPHgQ3bp1Q3x8PPLz86ttv3v3bowePRqTJk3CoUOHkJCQgISEBKSlpVna6HQ69OvXD/Pnz7/muR9//HHk5ORYlnfffdeyzWQyYdiwYdDr9di9eze++OILrFixAq+//rpN10dE11ZcbsCFy6UwGM3wc1dCpZBDJklQKeQI9FIjxFsFT5UCJrPArPVH8OZPx2DinHtE5CRs7hPl7e2NgwcPok2bNvD09ERqaipat26N8+fPo0OHDigvL6/1sWJjY9GrVy989NFHAACz2Yzw8HBMnjwZs2bNqtJ+1KhR0Ol02Lhxo2Vdnz59EB0djaVLl1q1PXfuHFq1aoVDhw4hOjraatttt92G6OhoLFq0qNq6tmzZgrvvvhvZ2dkICgoCACxduhQzZ85EQUEBlEpltftVVFSgoqLC8netVovw8HD2iSKqwb6zl/HC2lR4qhXwVLtU2V5cboC2zIC+bQOw9sBFAMCA9s2w+OEYeFXTnojIHuqtT5RKpYJWq62y/uTJk2jWrFmtj6PX65GcnGw1XYxMJsPgwYORlJRU7T5JSUlVppeJj4+vsf21fPPNNwgICECXLl0we/ZslJaWWp0nKirKEqCunker1eLo0aM1HnPevHnw9va2LOHh4TbXRdSUeKgVcFXKUWEwVxkbSgiBCoMZ7ioFJtwSgY/HdIfaRYbfTxYgYckunCkocVDVRESVbA5Rw4cPx5tvvgmDoXLSUEmScOHCBcycOdOmIQ4uXboEk8lkFVQAICgoCLm5udXuk5uba1P7mjz88MP4+uuvsWPHDsyePRtfffUVHnnkkeue5+q2msyePRsajcayZGZm2lQXUVPjqXJBCz83KOQSCnV6VBhNMAuBCqMJhTo9FAoZwv3c4KlywV1RIfj2qb4I8VbjTIEO9y7Zhd/Sq3/1T0R0M9R6nKirFi5ciBEjRiAwMBBlZWUYMGAAcnNzERcXh7lz59ZHjXb3xBNPWP4cFRWFkJAQDBo0CKdPn0abNm3qfFyVSlVlTkEiqlmYjytiwn1RYTDDaDbjSqkBJRVGKGQyNPNUQSGToXsLX4T5uAIAuoR548fn+uHpr5Nx4PwVPLpiP2bdGYnHb21d7UwKRET1yeYQ5e3tjcTERPz55584fPgwSkpK0L179yqv2a4nICAAcrkceXl5Vuvz8vIQHFz93FnBwcE2ta+t2NhYAEBGRgbatGmD4ODgKl8JXj3vjZ6LiP4mk0mI7xKEbE0ZLpdUoLmvK+QyCSazQHG5Ef4eKgzpHASZ7O+A1MxThW8ej8XrG45izYFMvL35BI7nFGPe/VFQc4RzIrqJbH6dd1W/fv3wzDPP4KWXXrI5QAGVo5z36NED27dvt6wzm83Yvn074uLiqt0nLi7Oqj0AJCYm1ti+tq4OgxASEmI5z5EjR6y+EkxMTISXlxc6dep0Q+ciImttAz0x8ZYIRIX5wGQGisuNMJmBrs19MPGWCLQN9Kyyj0ohxzsPROFfwztDLpPw/aEsjFi6G1lFZQ64AiJqqmx6EmU2m7FixQqsX78e586dgyRJaNWqFUaMGIGxY8fa/Dh9+vTpGD9+PHr27InevXtj0aJF0Ol0mDhxIgBg3LhxCAsLw7x58wAAzz//PAYMGICFCxdi2LBhWL16NQ4cOIDPPvvMcszCwkJcuHAB2dnZAID09HQAlU+QgoODcfr0aaxcuRJ33XUX/P39cfjwYUybNg39+/dH165dAQBDhgxBp06dMHbsWLz77rvIzc3Fq6++imeffZav64jqQdtAT7S+zQNZRWXQ6Y1wVyoQ5uNq9QTqf0mShPF9I9AuyAPPrTyEtCwt7ln8J5Y83B1xbfxvYvVE1GSJWjKbzWLYsGFCkiQRHR0tHnroITFq1CjRtWtXIUmSuPfee2t7KCuLFy8WLVq0EEqlUvTu3Vvs2bPHsm3AgAFi/PjxVu3Xrl0r2rdvL5RKpejcubPYtGmT1fbly5cLAFWWOXPmCCGEuHDhgujfv7/w8/MTKpVKtG3bVsyYMUNoNBqr45w7d07ceeedwtXVVQQEBIgXXnhBGAwGm65No9EIAFWOTUT2lVmoE3d9sFO0nLlRtJ69SXz+5xlhNpsdXRYRNVC1/f2u9ThRy5cvx/PPP48ffvgBt99+u9W2X3/9FQkJCfjoo48wbtw4+6a8Boxz5xHdPOUGE2avP4LvD1VOP3VfTBjevi8Krkr2kyIi29h9nKhVq1bh5ZdfrhKgAGDgwIGYNWsWvvnmm7pVS0R0g9QucvxnZDe8dncnSz+p+z7ehfOXdY4ujYgaqVqHqMOHD2Po0KE1br/zzjuRmppql6KIiOpCkiRM6tcKX0+KRYCHEidyi3HP4j/x64m86+9MRGSjWoeowsLCKgNQ/lNQUBCuXLlil6KIiG5EXBt//DS5H2Ja+EBbbsSjKw7g/cSTMHPePSKyo1qHKJPJBIWi5o/55HI5jEajXYoiIrpRId6uWP1EH4zt0xIA8MH2U5iwYj8KdXoHV0ZEjUWthzgQQmDChAk1fuL/z4l3iYicgUohx1sJXRAd7oNXNhzBzpMFuPvDP7BkTHfEtPB1dHlE1MDV+uu8q2M3Xc/y5ctvqKDGhF/nETmPE7laPP31QZy9pIOLXMKrwzphXFxLThdDRFXU9ve71iGKbMcQReRcissNeOnbw9iSVjmR+N1dQzDv/ih4ql0cXBkRORO7D3FARNTQeapd8PGY7nh1WEcoZBI2Hs7B8I924Vi21tGlEVEDxBBFRE2KJEl47NbWWPNkHEK91Th7SYeEj3dh5d4L4IN5IrIFQxQRNUk9Wvpi05RbMTAyEHqjGS9/fwRT16SgpIJfGRNR7TBEEVGT5euuxLJxPTH7zkjIZRJ+SMnG3R/+gbQsjaNLI6IGgCGKiJo0mUzCkwPaYM0TfRDqrca5y6W4/+PdWL7rLF/vEdE1MUQREQHoGeGHzc/fiiGdgqA3mfGvn47h8S8P4AoH5ySiGjBEERH9xcdNiU/H9sC/hneGUi7DtuP5uPODP5B0+rKjSyMiJ8QQRUT0D5IkYXzfCHz/bF+0DnBHrrYcDy/bgwVbT8BgMju6PCJyIgxRRETV6BzqjY1T+mFUz3AIASzZcRoPLk3Chculji6NiJwEQxQRUQ3clArMH9EVSx7uDi+1AimZRbjrwz/wXfJFdjonIoYoIqLrGdY1BFum9kevCF+UVBjxwrpUPLfyEIpK2emcqCljiCIiqoUwH1esfiIOM+I7QCGTsOlIDuIX7cSfpy45ujQichCGKCKiWpLLJDx7e1usf6ay03metgKP/Hcv3vzpGMoNJkeXR0Q3GUMUEZGNujb3wcYp/TAmtgUA4PNdZ3HP4j850jlRE8MQRURUB25KBebeF4XPJ/REgIcKp/JLkLBkFxZvPwUjh0IgahIYooiIbsDAyCD8Mq0/7ooKhtEssDDxJEYsTcLpghJHl0ZE9YwhiojoBvm5K7Hk4e54f1Q3eF4dCuGDP7DsjzMwmTkUAlFjxRBFRGQHkiThvpjm2Dq1P25tF4AKoxn/3nQcoz5NwtlLOkeXR0T1gCGKiMiOQn1c8eWjvTHv/ii4K+U4cP4K7vxgJz7/8yzMfCpF1KgwRBER2ZkkSRjduwW2TuuPvm38UW4w482NxzDy0yScYV8pokaDIYqIqJ4093XD15Ni8VZCl388lfoDn/5+ml/wETUCDFFERPVIJpMwtk9LbJ32d1+peVtO4IFPduNErtbR5RHRDWCIIiK6CZr7uuHLR3vj3RFd4aVWIPWiBnd/+CcW/pLO0c6JGiiGKCKim0SSJIzsGY7E6QMwpFMQjGaBxb9m4K4P/8C+s4WOLo+IbMQQRUR0kwV5qfHZuJ5Y+kh3NPNU4UyBDiM/TcLL3x+Bpszg6PKIqJYYooiIHGRolxBsmz4Ao3uHAwBW7r2AQQt/x0+p2RCCwyEQOTuGKCIiB/J2dcG8+7ti9RN90LqZOy6VVGDyqkOYsHw/MgtLHV0eEV0DQxQRkRPo09ofW56/FdMGt4dSLsPvJwtwx/u/Y8mODOiNHA6ByBkxRBEROQmVQo7nB7fDz1NvRVzrykE6F2xNx50f7MTujEuOLo+I/gdDFBGRk2ndzAMrH4/Ff0Z2Q4CHEqcLdHh42V48v/oQ8rXlji6PiP7CEEVE5IQkScL93Ztj+wu3YXxcS8gk4IeUbAxc+DuW/XEGBo54TuRwkuAnIPVGq9XC29sbGo0GXl5eji6HiBqwIxc1ePWHNKRmFgEA2gV64I3hnXFL2wDHFkbUCNX295shqh4xRBGRPZnNAuuSMzH/53QU6vQAgLuigvHKsE4I83F1cHVEjUdtf78d/jpvyZIliIiIgFqtRmxsLPbt23fN9uvWrUNkZCTUajWioqKwefNmq+3r16/HkCFD4O/vD0mSkJKSYrW9sLAQkydPRocOHeDq6ooWLVpgypQp0Gg0Vu0kSaqyrF692i7XTERUFzKZhFG9WmDHC7dhQt8IyCRg85FcDHzvN/wn8SRK9UZHl0jUpDg0RK1ZswbTp0/HnDlzcPDgQXTr1g3x8fHIz8+vtv3u3bsxevRoTJo0CYcOHUJCQgISEhKQlpZmaaPT6dCvXz/Mnz+/2mNkZ2cjOzsb7733HtLS0rBixQr8/PPPmDRpUpW2y5cvR05OjmVJSEiwy3UTEd0IbzcXvDG8MzZNuRWxrfxQYTTjw+2nMGjh7/ghJYsDdRLdJA59nRcbG4tevXrho48+AgCYzWaEh4dj8uTJmDVrVpX2o0aNgk6nw8aNGy3r+vTpg+joaCxdutSq7blz59CqVSscOnQI0dHR16xj3bp1eOSRR6DT6aBQKABUPon6/vvvbQpOFRUVqKiosPxdq9UiPDycr/OIqN4IIbAlLRdzNx1HVlEZAKBHS1+8OqwjYlr4Org6oobJ6V/n6fV6JCcnY/DgwX8XI5Nh8ODBSEpKqnafpKQkq/YAEB8fX2P72rp6k64GqKueffZZBAQEoHfv3vj888+v+1938+bNg7e3t2UJDw+/obqIiK5HkiTcFRWC7S8MwItD2sPVRY7k81dw38e7MWXVIVy8wlHPieqLw0LUpUuXYDKZEBQUZLU+KCgIubm51e6Tm5trU/va1vHWW2/hiSeesFr/5ptvYu3atUhMTMQDDzyAZ555BosXL77msWbPng2NRmNZMjMz61wXEZEt1C5yPDewHXa8eBtG9GgOSQJ+TK0cEuGdLSegLefExkT2prh+k8ZLq9Vi2LBh6NSpE9544w2rba+99prlzzExMdDpdFiwYAGmTJlS4/FUKhVUKlV9lUtEdF3B3mq892A3TOgbgbmbjiPpzGUs/f001h7IxJSBbfFwbEsoFQ7/poioUXDY/ycFBARALpcjLy/Pan1eXh6Cg4Or3Sc4ONim9tdSXFyMoUOHwtPTE99//z1cXFyu2T42NhYXL1606vNEROSsuoR5Y+XjsVg2ridaN3NHoU6PN346hjve/x0bD2ez8zmRHTgsRCmVSvTo0QPbt2+3rDObzdi+fTvi4uKq3ScuLs6qPQAkJibW2L4mWq0WQ4YMgVKpxI8//gi1Wn3dfVJSUuDr68snTUTUYEiShMGdgvDL1P6Ye18XBHiocP5yKZ5beQgJH+/mfHxEN8ihr/OmT5+O8ePHo2fPnujduzcWLVoEnU6HiRMnAgDGjRuHsLAwzJs3DwDw/PPPY8CAAVi4cCGGDRuG1atX48CBA/jss88sxywsLMSFCxeQnZ0NAEhPTwdQ+RQrODjYEqBKS0vx9ddfQ6vVQqvVAgCaNWsGuVyOn376CXl5eejTpw/UajUSExPx9ttv48UXX7yZt4eIyC4UchnGxLZEQnQYlv1xFp/uPI3UzCI8vGwv+rUNwIz4DugW7uPoMokaHuFgixcvFi1atBBKpVL07t1b7Nmzx7JtwIABYvz48Vbt165dK9q3by+USqXo3Lmz2LRpk9X25cuXCwBVljlz5gghhNixY0e12wGIs2fPCiGE2LJli4iOjhYeHh7C3d1ddOvWTSxdulSYTCabrk2j0QgAQqPR2HxfiIjqS762XLy+4Yho+/Im0XLmRtFy5kbx5JcHxKk8raNLI3IKtf395rQv9YjTvhCRM8ssLMX7207i+0NZEAKQScC90WF4flA7RAS4O7o8Iofh3HlOgCGKiBqCk3nFeG9rOn45VvnhjlwmYUT35pg8qC2a+7o5uDqim48hygkwRBFRQ3Lkogb/SUzHjvQCAICLXMKDPcPxzG1tGKaoSWGIcgIMUUTUECWfv4KFv6Rj9+nLACrD1IgelWEq3I9hiho/hignwBBFRA3Z3jOX8cH2U5YwpZBJeKB7czx9Wxv2maJGjSHKCTBEEVFjsP9cIT7Ydgp//jWulEwC7u4aimdvb4sOwZ4Oro7I/hiinABDFBE1JsnnC/HRrxmWPlMAcEenIDxzWxvEtPB1YGVE9sUQ5QQYooioMUrL0uDj3zKwJS0XV39BYlv54anb2uC29s0gSZJjCyS6QQxRToAhiogas4z8Ynzy2xn8kJIFo7nypyQy2BNPDmiNu7uGwkXOiY6pYWKIcgIMUUTUFGQXleG/f57Fqn0XUKo3AQBCvNWY0DcCD/VuAW/Xa0/wTuRsGKKcAEMUETUlmlIDvtpzDit2n8elkgoAgLtSjlG9WmDiLREcHoEaDIYoJ8AQRURNUbnBhB9TsrHszzM4mVcCAJAkYHDHIEy8JQJxrf3Zb4qcGkOUE2CIIqKmTAiBnacuYdkfZ/DHqUuW9ZHBnph4SwSGdwuDq1LuwAr/ZjYLZBWVQac3wl2pQJiPK2QyBr2miiHKCTBEERFVysgvxord5/BdchbKDJX9prxdXfBgj+YY06clWjlw8M6M/GL8nJaLI1kalOqNcFMqEBXmjaFdgtE2kONgVaexh06GKCfAEEVEZE1TasCaAxfw1Z7zyCwss6zv374ZHoltgYGRgVDcxK/6MvKLsWjbKZzMLYZJCAACgAS5JKF9sCemDm7HIPU/MvKLsTUtD6cLSlBuNEGtkKNNMw/EdwlqNPeKIcoJMEQREVXPZBbYebIAXyadw28nCyzjTQV5qTCqZzhG9gqv90mPzWaBf286hsRjeVDKJXi6usBFLoPBZEZxmQF6k8AdnYLw6rBOjeopy43IyC/G8l3nUKjTI8RbDTelAqV6I3I05fBzV2LiLRGNIkjV9vdbcRNrIiIiAgDIZRJujwzE7ZGBuHC5FN/sPY91yReRp63Ah79mYPGODNzWvhlG9QrHwMggKBX2fzp18Uop9py5DLkE+LkrYTAJlBtMkEsS/NyVyC+uwN4zl3HxSila+HOuQLNZYGtaHgp1erQL9LB8HOCpdoGHSoFT+SX45WgeWgd4NJnQyRBFREQO1cLfDbPv6ojpQ9rjl6N5WLXvAnafvowd6QXYkV4Af3cl7osJw8he4WgfZL+nHGcu6aApNcBdLUeOphxlBjPMQkAmSXB1kcFNJUdRmQFnLukYogBkFZXhdEEJQrzVVb6ulCQJId5qZOSXIKuorMkMZ8EQRURETkGlkOOebqG4p1sozhSUYO2Bi/ju4EUUFFdg2Z9nsezPs+jW3BsP9GiOe7qGwtddecPn1JvNKC+pDE9ySYJCBggB6PQmlBrMqIcHYA2WTm9EudEEN6VrtdtdlXLkacuh0xtvcmWOwxBFREROp3UzD8y6MxIvDmmP308WYM3+TPx6Ih+pFzVIvajBWxuPYWBkIO7v3hy3dwis0+u+lv5ugJCgqzBAIQPKRWWAkiRALgFGM+Dl6lLZjuCuVECtkKNUb4Snuuoo9GV6E1QKOdyVTSdaNJ0rJSKiBkchl2FQxyAM6hiESyUV+DElG98dvIij2VpsPZqHrUfz4O3qgruigjG8WxhiW/nVuj+OXJKgdpHhis4Mk1mCQi5BIZNgEgIVRgEhBFQKGeQcGBQAEObjijbNPJCWrYGHSmH1Sk8IgRxNOaLCvBHmU/2TqsaIIYqIiBqEAA8VHu3XCo/2a4UTuVp8fzALG1KykKetwKp9mVi1LxPBXmrc3TUEd3cLRbfm3tccGb2kwgi5JEGpkMH811Mo41+fCcplEmSSBLlMQklF03k9dS0ymYT4LkHI1pThVH5l3yhXpRxlepPl67whnYOaTKdygEMc1CsOcUBEVL9MZoG9Zy/jx5RsbD6SA23534EnzMcVd3cNwbCuIYgKqxqo9p29jBfWpkKpkFBuMENXYbJ0LPdQyaFykUFvFFg4sht6t/K/2ZfmtP45TlSFsfIVXttADwzpzHGiyI4YooiIbp4Kowm/pRdg0+EcbDueh1K9ybItzMcVQ7sEY2iXYPRo4QuZTMKxHA2mrk6BySTg5+4Cg0nA9FcHcxe5hEKdAQq5hPcfikanEG8HXpnz4YjllRii6hFDFBGRY5TpTfgtPR8bj+Tg1+P5lqlmAKCZpwp3dApCdHMfbEnLQXZRGUxmAQ+1wjLYZkm5EXK5DOG+rphzT+cm88k+VWKIcgIMUUREjlemN2HnqQL8nJaLbcfzUPyPV34uMgleri7wcXOBBAASoJDJ4OvmAoVMhrg2/nhqQJtG9ZSFro8jlhMREaFy/KL4zsGI7xwMvdGMpDOXkXgsF9uO5SNXW47LOj0u6/QAAF83FwR7qyGEQHM/1ybXUZpswydR9YhPooiInJcQAkeztViz/wJ+OZqHvOIKq+1eagX6t2+G/u2aoV+7AIQ68af7jb2P0s3G13lOgCGKiKhhMJsFDl8sws5Tl3DowhUcOH/F6rUfALRp5o5+bQMQ1yYAfVr7wcftxkdMt4d/fi1XbjRBrZCjTTMPxHdpPF/L3WwMUU6AIYqIqGEymMxIzawMVX+cKkBqZhHM//i1lCSgU4gX4lr7o3crP/SK8LPLNDS2ysgvxvJd51Co0yPEWw03pQKleqNl3KaJt0QwSNUBQ5QTYIgiImocNKUG7D59CUlnLmP36cvIyC+p0qZ9kIclUHVv4Yvmvq7XHOzzRpnNAp/8dhpp2Rq0C/SoMoL4qfwSRIV5s2N8HTBEOQGGKCKixilfW46kM5ex58xl7DtbiNMFuiptmnmq0L2FD7q38EV0uA+6hHnDXWW/77kyC0vxfuJJ+Li5wEOlQHG5EXqTGUq5DJ5qBUoqjCgqNWDaHe05RION+HUeERFRPQn0UuPe6DDcGx0GALhUUoED5wqx7+wVJF+4gqNZGhQUV1jm9wMAmQS0DfRAt+Y+6NrcG51CvdExxBNudZywV6c3otxoQrlBjuM5V3ClVA+jyQyFXAZfNyUiAtxQYTRBp7f/tDXsyF6JIYqIiOgGBXioMLRLCIZ2CQEAlBtMOJKlQfL5Kzh04QoOX9QgR1OOk3klOJlXgnXJFwFUBqvWzTzQOdQLkcFeiAz2RIdgT4R4q6/7KtBdqYDeaEby+cK/Bgt1gYtaAYNJoKC4HIW6CoT7ucG9jiGtJuzI/jeGKCIiIjtTu8jRK6Kyf9RV+dpypF7U4PDFIhzJ0uBothYFxRXIyC9BRn4JfkC2pa2XWoH2QZ5oG+hhtYR6//3EJ8RLjQqDGUVlBoT7qGE0C5QbzJBLEnxcFcgsKkeQ0YwQL7XdrqtqR3ZXlOqNSMvWIFtT1uQ6sjNEERER3QSBXmrc0UmNOzoFWdblF5fjaLYWx7K1OJFbjPRcLc4U6KAtN+LA+cqhFv5JpZChpb8bIvzd4e+hREFJBSQAp/J1kCRYnl5JALxcXaBUyJCjLbdLnyizWWBrWh4KdXqrjuye6so+WafyS/DL0Ty0DvBoMq/2GKKIiIgcJNBTjcAOatzeIdCyrsJowpkCHU7mFeN0fgkyCkpwKq8E5y7rUGE0W14JVkeSAJkkQS4BZgGcvaTD1mO5iAn3RaCnCs08VVC7yOtUa1ZRGU4XlFT7qlGSJIR4q5GRX4KsorIm05GdIYqIiMiJqBRydAzxQscQ66/CjCYzsorKcPaSDucu6XA4S4NfjuahwmCCSQiYBSAEYBICJgD6MgOKygz498bjVsfxdnWBv4cS/u5K+Lop4e9R+b/eri7wcnWp/F+1CzzVCrir5HBXKeCmVEBbbkC50QQ3ZfUjt7sq5cjTltepI7vBZEap3oRSvRG6CiN0FSYUlxuhLTdAW2aA5q/lSqkel0v0uFKqR6FOj5IKI/bMHlSvQ0lcC0MUERFRA6CQy9DS3x0t/d2BDsCFyzqcyNGitMKIZp4qmARQbjBDbzKjwmBCUakekiQh3NcNRWUGFJRUQG80WwLJmWqGZbgeCYBcJsFFLoNcJkEukyD76+mXAGAWAmcKdFAqZJZ9zAIwmgVMZvNf/yugN5pRYayss8JYub6uSiqM8FS71Hn/G8EQRURE1ACVGkwI8FDhsgRcKTXA468nR0qTBAiBFv5u8HdX4eVhHREZ7AUhBLRlRuQXV066XPjXxMtX/vrz1ac+2jIjNGUGlFQYofvryZDBVBlyBCoDkdFsqrGuolJDna9JKZfBTSWHm4scXn89EfNyVfz1vy7wc1fC1936KZprHV9P2gNDFBERUQPkrlQgwEOFAA8lcjUVKCzVQ1dhhFwmQ6CXGsFeKgCSZYgDSZLg7eYCbzcXtLPxXHqjGboKI9JztVi57wIul+jh6lL5tMloFtBVmOChVmBQx0CEeFu/7pMkQCGTQfHXkyuFXIJSLofKRQaVQgaVQg61iwxuSoXVE6yGwOHVLlmyBBEREVCr1YiNjcW+ffuu2X7dunWIjIyEWq1GVFQUNm/ebLV9/fr1GDJkCPz9/SFJElJSUqoco7y8HM8++yz8/f3h4eGBBx54AHl5eVZtLly4gGHDhsHNzQ2BgYGYMWMGjEb7D1hGRESOZzYLZBaW4kSuFpmFpTDfwOulmyXMxxVtmnmgzGBGj5Y+f83j54+41v7o0cIHZQYz2gZ6IMyn+j5MtlAqZPB1V6JPmwDcGx0GmSQhPa8EadlanC7QQa2U45E+LfFInwgM6hhktQyMDEL/9s3Qt20AYlv7o0dLP0Q190b7IE+09HdHsLcaPm7KBhegAAeHqDVr1mD69OmYM2cODh48iG7duiE+Ph75+fnVtt+9ezdGjx6NSZMm4dChQ0hISEBCQgLS0tIsbXQ6Hfr164f58+fXeN5p06bhp59+wrp16/D7778jOzsb999/v2W7yWTCsGHDoNfrsXv3bnzxxRdYsWIFXn/9dftdPBEROYWM/GJ88ttpvJ94Eh9uP4X3E0/ik99OIyO/2NGlXZNMJiG+SxD83JXIKKgc4sDHzQWSBGQU6ODnrsSQzkF2HW4gI78Yv57Ih7tKgbjW/ritQyDiWvvDXanAryfynf6e2ZtD586LjY1Fr1698NFHHwEAzGYzwsPDMXnyZMyaNatK+1GjRkGn02Hjxo2WdX369EF0dDSWLl1q1fbcuXNo1aoVDh06hOjoaMt6jUaDZs2aYeXKlRgxYgQA4MSJE+jYsSOSkpLQp08fbNmyBXfffTeys7MRFFQ5nsfSpUsxc+ZMFBQUQKmsfqbuiooKVFRUWP6u1WoRHh7OufOIiJxU1cEjFSjVG5GjKYefu7JBDB75zxHEK4wmqBRytA30wJDO9h1BvClNeFzbufMc9iRKr9cjOTkZgwcP/rsYmQyDBw9GUlJStfskJSVZtQeA+Pj4GttXJzk5GQaDweo4kZGRaNGiheU4SUlJiIqKsgSoq+fRarU4evRojceeN28evL29LUt4eHit6yIiopvrfweP9FS7QC6T4Kl2QbtADxTq9PjlaJ7Tv9prG+iJp29rg2l3tMfkQe0w7Y72eGpAG7uHP1vGiWoqHBaiLl26BJPJZBVUACAoKAi5ubnV7pObm2tT+5qOoVQq4ePjU+NxajrP1W01mT17NjQajWXJzMysdV1ERHRzNaZQIJNJCPdzQ2SwF8L93OrlSdDVCY9rmjDZVSmvtwmPnRW/zrMjlUoFlUrl6DKIiKgW/g4F9h88sjFyVyqgVshRqq9+XKYyfeWrRHtPeOzMHPYkKiAgAHK5vMpXcXl5eQgODq52n+DgYJva13QMvV6PoqKiGo9T03mubiMioobvn6GgOk0xFFzL1a8BczTl+N/u1EII5GjK7fY1YEPhsBClVCrRo0cPbN++3bLObDZj+/btiIuLq3afuLg4q/YAkJiYWGP76vTo0QMuLi5Wx0lPT8eFCxcsx4mLi8ORI0esvhJMTEyEl5cXOnXqVOtzERGR82IosM0/vwY8lV+C4nIDjGYzissNOJVfUi9fAzo7h8br6dOnY/z48ejZsyd69+6NRYsWQafTYeLEiQCAcePGISwsDPPmzQMAPP/88xgwYAAWLlyIYcOGYfXq1Thw4AA+++wzyzELCwtx4cIFZGdnA6gMSEDlE6Tg4GB4e3tj0qRJmD59Ovz8/ODl5YXJkycjLi4Offr0AQAMGTIEnTp1wtixY/Huu+8iNzcXr776Kp599lm+riMiaiSuhoJsTRlO5Vf2jXJVylGmN1m+zmtqoeB62gZ6YuItEdhyOAf7z11Bid4AD6ULerfyxdCoEKf/ktHeHBqiRo0ahYKCArz++uvIzc1FdHQ0fv75Z0sn7gsXLkAm+/thWd++fbFy5Uq8+uqrePnll9GuXTts2LABXbp0sbT58ccfLSEMAB566CEAwJw5c/DGG28AAN5//33IZDI88MADqKioQHx8PD7++GPLPnK5HBs3bsTTTz+NuLg4uLu7Y/z48XjzzTfr83YQEdFNdjUUXB0iIE9bDpVCjqgwb7sPEdBYnL9cir3nCnG6oAR6oxlKhQxmCHQM9W5y98uh40Q1drUdZ4KIiBzLbBbIKiqDTm+Eu1KBMB9XPoGqxvbjeZi35QSKyw3wd1dantxd1unhqXbB7DsjMahj0PUP5ORq+/vN3nJERNTkXR0igGpmNJqxYtc5FJcb0MLX1fKmyFMtg7tSjgtXyvDF7nMY0K4ZFA1wCpe6aBpXSURERDfkYOYVnLusg7+70qqrDVA5WLa/uxJnL+lwMPOKgyq8+RiiiIiI6Lou6/QwmMxwVcqr3e6qlMNgMuOyTn+TK3MchigiIiK6Ln93JVzkMpTpTdVuL9Ob4CKvfCLVVDBEERER0XV1D/dFhL87Luv0MJvNVtvM5sonUK0C3NE93NdBFd58DFFERER0XQqFDBNuiYCn2gUXrpRZDbZ54UoZvNQuGN83osl0Kgf4dR4RERHV0tXhC1bsOodzl3Uo1OnhIpehQ5AnxveNaBTDG9iCIYqIiIhqbVDHIAxo1wwHM6/gsk4Pf3cluof7NqknUFcxRBEREZFNFAoZerfyd3QZDtf0YiMRERGRHTBEEREREdUBQxQRERFRHTBEEREREdUBQxQRERFRHTBEEREREdUBQxQRERFRHTBEEREREdUBQxQRERFRHXDE8nokhAAAaLVaB1dCREREtXX1d/vq73hNGKLqUXFxMQAgPDzcwZUQERGRrYqLi+Ht7V3jdklcL2ZRnZnNZmRnZ8PT0xOSJDm6nCZBq9UiPDwcmZmZ8PLycnQ5TQrvvePw3jsO773j1Oe9F0KguLgYoaGhkMlq7vnEJ1H1SCaToXnz5o4uo0ny8vLiv9AchPfecXjvHYf33nHq695f6wnUVexYTkRERFQHDFFEREREdcAQRY2KSqXCnDlzoFKpHF1Kk8N77zi8947De+84znDv2bGciIiIqA74JIqIiIioDhiiiIiIiOqAIYqIiIioDhiiiIiIiOqAIYoahKysLDzyyCPw9/eHq6sroqKicODAAct2IQRef/11hISEwNXVFYMHD8apU6esjlFYWIgxY8bAy8sLPj4+mDRpEkpKSm72pTQoJpMJr732Glq1agVXV1e0adMGb731ltV8Urz39rFz507cc889CA0NhSRJ2LBhg9V2e93nw4cP49Zbb4VarUZ4eDjefffd+r40p3ete28wGDBz5kxERUXB3d0doaGhGDduHLKzs62OwXtfN9f75/6fnnrqKUiShEWLFlmtd+i9F0ROrrCwULRs2VJMmDBB7N27V5w5c0Zs3bpVZGRkWNq88847wtvbW2zYsEGkpqaK4cOHi1atWomysjJLm6FDh4pu3bqJPXv2iD/++EO0bdtWjB492hGX1GDMnTtX+Pv7i40bN4qzZ8+KdevWCQ8PD/HBBx9Y2vDe28fmzZvFK6+8ItavXy8AiO+//95quz3us0ajEUFBQWLMmDEiLS1NrFq1Sri6uopPP/30Zl2mU7rWvS8qKhKDBw8Wa9asESdOnBBJSUmid+/eokePHlbH4L2vm+v9c3/V+vXrRbdu3URoaKh4//33rbY58t4zRJHTmzlzpujXr1+N281mswgODhYLFiywrCsqKhIqlUqsWrVKCCHEsWPHBACxf/9+S5stW7YISZJEVlZW/RXfwA0bNkw8+uijVuvuv/9+MWbMGCEE7319+d8fE3vd548//lj4+vqKiooKS5uZM2eKDh061PMVNRzX+iG/at++fQKAOH/+vBCC995earr3Fy9eFGFhYSItLU20bNnSKkQ5+t7zdR45vR9//BE9e/bEgw8+iMDAQMTExOD//u//LNvPnj2L3NxcDB482LLO29sbsbGxSEpKAgAkJSXBx8cHPXv2tLQZPHgwZDIZ9u7de/MupoHp27cvtm/fjpMnTwIAUlNT8eeff+LOO+8EwHt/s9jrPiclJaF///5QKpWWNvHx8UhPT8eVK1du0tU0fBqNBpIkwcfHBwDvfX0ym80YO3YsZsyYgc6dO1fZ7uh7zxBFTu/MmTP45JNP0K5dO2zduhVPP/00pkyZgi+++AIAkJubCwAICgqy2i8oKMiyLTc3F4GBgVbbFQoF/Pz8LG2oqlmzZuGhhx5CZGQkXFxcEBMTg6lTp2LMmDEAeO9vFnvd59zc3GqP8c9z0LWVl5dj5syZGD16tGXSW977+jN//nwoFApMmTKl2u2OvveKG9qb6CYwm83o2bMn3n77bQBATEwM0tLSsHTpUowfP97B1TVua9euxTfffIOVK1eic+fOSElJwdSpUxEaGsp7T02OwWDAyJEjIYTAJ5984uhyGr3k5GR88MEHOHjwICRJcnQ51eKTKHJ6ISEh6NSpk9W6jh074sKFCwCA4OBgAEBeXp5Vm7y8PMu24OBg5OfnW203Go0oLCy0tKGqZsyYYXkaFRUVhbFjx2LatGmYN28eAN77m8Ve9zk4OLjaY/zzHFS9qwHq/PnzSExMtDyFAnjv68sff/yB/Px8tGjRAgqFAgqFAufPn8cLL7yAiIgIAI6/9wxR5PRuueUWpKenW607efIkWrZsCQBo1aoVgoODsX37dst2rVaLvXv3Ii4uDgAQFxeHoqIiJCcnW9r8+uuvMJvNiI2NvQlX0TCVlpZCJrP+14RcLofZbAbAe3+z2Os+x8XFYefOnTAYDJY2iYmJ6NChA3x9fW/S1TQ8VwPUqVOnsG3bNvj7+1tt572vH2PHjsXhw4eRkpJiWUJDQzFjxgxs3boVgBPc+xvumk5Uz/bt2ycUCoWYO3euOHXqlPjmm2+Em5ub+Prrry1t3nnnHeHj4yN++OEHcfjwYXHvvfdW+/l3TEyM2Lt3r/jzzz9Fu3bt+Jn9dYwfP16EhYVZhjhYv369CAgIEC+99JKlDe+9fRQXF4tDhw6JQ4cOCQDiP//5jzh06JDlCzB73OeioiIRFBQkxo4dK9LS0sTq1auFm5tbk//M/lr3Xq/Xi+HDh4vmzZuLlJQUkZOTY1n++bUX733dXO+f+//1v1/nCeHYe88QRQ3CTz/9JLp06SJUKpWIjIwUn332mdV2s9ksXnvtNREUFCRUKpUYNGiQSE9Pt2pz+fJlMXr0aOHh4SG8vLzExIkTRXFx8c28jAZHq9WK559/XrRo0UKo1WrRunVr8corr1j9ePDe28eOHTsEgCrL+PHjhRD2u8+pqamiX79+QqVSibCwMPHOO+/crEt0Wte692fPnq12GwCxY8cOyzF47+vmev/c/6/qQpQj770kxD+GHiYiIiKiWmGfKCIiIqI6YIgiIiIiqgOGKCIiIqI6YIgiIiIiqgOGKCIiIqI6YIgiIiIiqgOGKCIiIqI6YIgiIiIiqgOGKCKienb58mUEBgbi3LlzAIDffvsNkiShqKioXs87a9YsTJ48uV7PQdSUMUQRkdOYMGECJEmqsgwdOtTRpd2QuXPn4t5777XMPH8j8vLy4OLigtWrV1e7fdKkSejevTsA4MUXX8QXX3yBM2fO3PB5iagqhigicipDhw5FTk6O1bJq1ap6Pader6+3Y5eWluK///0vJk2aZJfjBQUFYdiwYfj888+rbNPpdFi7dq3lXAEBAYiPj8cnn3xil3MTkTWGKCJyKiqVCsHBwVaLr6+vZbskSVi2bBnuu+8+uLm5oV27dvjxxx+tjpGWloY777wTHh4eCAoKwtixY3Hp0iXL9ttuuw3PPfccpk6dagkaAPDjjz+iXbt2UKvVuP322/HFF19YXrvpdDp4eXnh22+/tTrXhg0b4O7ujuLi4mqvZ/PmzVCpVOjTp0+N11xaWoo777wTt9xyi+UV37Jly9CxY0eo1WpERkbi448/trSfNGkStm/fjgsXLlgdZ926dTAajRgzZoxl3T333FPjUysiujEMUUTU4PzrX//CyJEjcfjwYdx1110YM2YMCgsLAQBFRUUYOHAgYmJicODAAfz888/Iy8vDyJEjrY7xxRdfQKlUYteuXVi6dCnOnj2LESNGICEhAampqXjyySfxyiuvWNq7u7vjoYcewvLly62Os3z5cowYMQKenp7V1vrHH3+gR48eNV5LUVER7rjjDpjNZiQmJsLHxwfffPMNXn/9dcydOxfHjx/H22+/jddeew1ffPEFAOCuu+5CUFAQVqxYUaWW+++/Hz4+PpZ1vXv3xsWLFy39sYjIjgQRkZMYP368kMvlwt3d3WqZO3eupQ0A8eqrr1r+XlJSIgCILVu2CCGEeOutt8SQIUOsjpuZmSkAiPT0dCGEEAMGDBAxMTFWbWbOnCm6dOlite6VV14RAMSVK1eEEELs3btXyOVykZ2dLYQQIi8vTygUCvHbb7/VeE333nuvePTRR63W7dixQwAQx48fF127dhUPPPCAqKiosGxv06aNWLlypdU+b731loiLi7P8fdasWaJVq1bCbDYLIYTIyMgQkiSJbdu2We2n0WgEgGvWSER1wydRRORUbr/9dqSkpFgtTz31lFWbrl27Wv7s7u4OLy8v5OfnAwBSU1OxY8cOeHh4WJbIyEgAwOnTpy37/e/TofT0dPTq1ctqXe/evav8vXPnzpYnQl9//TVatmyJ/v3713g9ZWVlUKvV1W6744470LZtW6xZswZKpRJAZb+m06dPY9KkSVbX8O9//9uq/kcffRRnz57Fjh07AFQ+hYqIiMDAgQOtzuHq6gqg8pUhEdmXwtEFEBH9k7u7O9q2bXvNNi4uLlZ/lyQJZrMZAFBSUoJ77rkH8+fPr7JfSEiI1Xnq4rHHHsOSJUswa9YsLF++HBMnToQkSTW2DwgIwJUrV6rdNmzYMHz33Xc4duwYoqKiLPUDwP/93/8hNjbWqr1cLrf8uV27drj11luxfPly3Hbbbfjyyy/x+OOPV6nl6mvOZs2a2X6xRHRNDFFE1Kh0794d3333HSIiIqBQ1P5fcR06dMDmzZut1u3fv79Ku0ceeQQvvfQSPvzwQxw7dgzjx4+/5nFjYmLw9ddfV7vtnXfegYeHBwYNGoTffvsNnTp1QlBQEEJDQ3HmzBmrDuLVmTRpEp5++mkMHz4cWVlZmDBhQpU2aWlpcHFxQefOna95LCKyHV/nEZFTqaioQG5urtXyzy/rrufZZ59FYWEhRo8ejf379+P06dPYunUrJk6cCJPJVON+Tz75JE6cOIGZM2fi5MmTWLt2raXj9j+f7vj6+uL+++/HjBkzMGTIEDRv3vya9cTHx+Po0aM1Po167733MGbMGAwcOBAnTpwAUNlxft68efjwww9x8uRJHDlyBMuXL8d//vMfq30ffPBBuLi44Mknn8SQIUMQHh5e5fh//PEHbr31VstrPSKyH4YoInIqP//8M0JCQqyWfv361Xr/0NBQ7Nq1CyaTCUOGDEFUVBSmTp0KHx8fyGQ1/yuvVatW+Pbbb7F+/Xp07doVn3zyieXrPJVKZdV20qRJ0Ov1ePTRR69bT1RUFLp37461a9fW2Ob999/HyJEjMXDgQJw8eRKPPfYYli1bhuXLlyMqKgoDBgzAihUr0KpVK6v93Nzc8NBDD+HKlSs11rJ69Wo8/vjj162TiGwnCSGEo4sgInJGc+fOxdKlS5GZmWm1/quvvsK0adOQnZ1t6RB+LZs2bcKMGTOQlpZ2zSBnb1u2bMELL7yAw4cP2/Rqk4hqh/9fRUT0l48//hi9evWCv78/du3ahQULFuC5556zbC8tLUVOTg7eeecdPPnkk7UKUEBlB/JTp04hKyur2ldu9UWn02H58uUMUET1hE+iiIj+Mm3aNKxZswaFhYVo0aIFxo4di9mzZ1tCyBtvvIG5c+eif//++OGHH+Dh4eHgionIkRiiiIiIiOqAHcuJiIiI6oAhioiIiKgOGKKIiIiI6oAhioiIiKgOGKKIiIiI6oAhioiIiKgOGKKIiIiI6oAhioiIiKgO/h/VJJWMgC2EFQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(energies, efficiencies, label=\"Data\", alpha=0.5)\n", + "xs = np.linspace(450, 1400, 100)\n", + "plt.plot(xs, np.polyval(detection_efficiency_coeffs, xs), label=\"Fit\")\n", + "plt.xlabel(\"Energy (keV)\")\n", + "plt.ylabel(\"Detection efficiency\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing niobium_1...\n", + "\n", + "Processing niobium_2...\n", + "\n", + "Processing niobium_3...\n", + "\n", + "Processing zirconium_1...\n", + "\n", + "Processing zirconium_2...\n", + "\n", + "Processing zirconium_3...\n", + "\n" + ] + } + ], + "source": [ + "from libra_toolbox.neutron_detection.activation_foils.compass import SampleMeasurement\n", + "from libra_toolbox.neutron_detection.activation_foils.calibration import (\n", + " ActivationFoil,\n", + " zr90_n2n, nb93_n2n,\n", + ")\n", + "\n", + "nb_foil = ActivationFoil(\n", + " reaction=nb93_n2n,\n", + " mass=0.5359,\n", + " name=\"Niobium #3\",\n", + " density=8.582,\n", + " thickness=0.01 * 2 * 2.54, # 0.01 inch in cm\n", + ")\n", + "nb_foil.mass_attenuation_coefficient = 0.06120 # cm^2/g at 1 MeV\n", + "\n", + "zirconium1 = ActivationFoil(\n", + " reaction=zr90_n2n,\n", + " mass=0.9036,\n", + " name=\"Zirconium #1\",\n", + " density=6.505,\n", + " thickness=0.005 * 8 * 2.54, # 0.01 inch in cm\n", + ")\n", + "zirconium1.mass_attenuation_coefficient = 0.08590 # cm^2/g\n", + "\n", + "sample_measurements_directories = {\n", + " \"niobium_1\": f\"{run_dir}/Niobium_250318_1253_count1/UNFILTERED\",\n", + " \"niobium_2\": f\"{run_dir}/Niobium_250319_1124_count2/UNFILTERED\",\n", + " \"niobium_3\": f\"{run_dir}/Niobium_250321_0935_count3/UNFILTERED\",\n", + " \"zirconium_1\": f\"{run_dir}/Zirconium_1L_3_240317_2312/UNFILTERED\",\n", + " \"zirconium_2\": f\"{run_dir}/Zirconium_250318_2219_count2/UNFILTERED\",\n", + " \"zirconium_3\": f\"{run_dir}/Zirconium_250320_1042_count3/UNFILTERED\",\n", + "}\n", + "\n", + "all_sample_measurements = {}\n", + "\n", + "for sample, directory in sample_measurements_directories.items():\n", + " print(f\"Processing {sample}...\")\n", + " meas = SampleMeasurement.from_directory(directory, name=sample)\n", + " print(meas)\n", + " all_sample_measurements[sample] = meas\n", + " if \"niobium\" in sample:\n", + " meas.foil = nb_foil\n", + " elif \"zirconium\" in sample:\n", + " meas.foil = zirconium1" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "for meas in all_sample_measurements.values():\n", + " meas.to_h5(\"data.h5\", mode=\"a\", spectrum_only=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing niobium_1...\n", + "\n", + "Processing niobium_2...\n", + "\n", + "Processing niobium_3...\n", + "\n", + "Processing zirconium_1...\n", + "\n", + "Processing zirconium_2...\n", + "\n", + "Processing zirconium_3...\n", + "\n" + ] + } + ], + "source": [ + "for sample, directory in sample_measurements_directories.items():\n", + " print(f\"Processing {sample}...\")\n", + " meas = SampleMeasurement.from_h5(\"data.h5\", measurement_name=sample)\n", + " print(meas)\n", + " all_sample_measurements[sample] = meas\n", + " if \"niobium\" in sample:\n", + " meas.foil = nb_foil\n", + " elif \"zirconium\" in sample:\n", + " meas.foil = zirconium1" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing channel 4...\n", + "niobium_1: [425116.86783661] ± [5600.39547916] emmited gamma rays\n", + "niobium_1: 9.84e+07 neutrons/s\n", + "niobium_2: [1114068.28261905] ± [9066.09849059] emmited gamma rays\n", + "niobium_2: 1.08e+08 neutrons/s\n", + "niobium_3: [904166.22420225] ± [8167.49105503] emmited gamma rays\n", + "niobium_3: 9.03e+07 neutrons/s\n", + "zirconium_1: [1656561.40179429] ± [10888.6344659] emmited gamma rays\n", + "zirconium_1: 8.67e+07 neutrons/s\n", + "zirconium_2: [1370576.32770845] ± [9904.24244678] emmited gamma rays\n", + "zirconium_2: 8.51e+07 neutrons/s\n", + "zirconium_3: [1965135.61962815] ± [11859.48727681] emmited gamma rays\n", + "zirconium_3: 8.39e+07 neutrons/s\n", + "Processing channel 5...\n", + "niobium_1: [601205.7136999] ± [6660.02834282] emmited gamma rays\n", + "niobium_1: 1.21e+08 neutrons/s\n", + "niobium_2: [1411473.67191165] ± [10204.71590298] emmited gamma rays\n", + "niobium_2: 1.24e+08 neutrons/s\n", + "niobium_3: [1405390.0211149] ± [10182.70027162] emmited gamma rays\n", + "niobium_3: 1.31e+08 neutrons/s\n", + "zirconium_1: [2297027.91382572] ± [12821.91182926] emmited gamma rays\n", + "zirconium_1: 1.15e+08 neutrons/s\n", + "zirconium_2: [2209564.50370307] ± [12575.43427949] emmited gamma rays\n", + "zirconium_2: 1.23e+08 neutrons/s\n", + "zirconium_3: [3141098.68436108] ± [14993.75603572] emmited gamma rays\n", + "zirconium_3: 1.25e+08 neutrons/s\n" + ] + } + ], + "source": [ + "from datetime import datetime\n", + "irradiations = [\n", + " {\"t_on\": 0, \"t_off\": 12*3600}\n", + "]\n", + "time_generator_off = datetime.strptime(\"3/17/2025 22:10\", \"%m/%d/%Y %H:%M\")\n", + "\n", + "for ch_nb, search_width in zip([4, 5], [200, 300]):\n", + " print(f\"Processing channel {ch_nb}...\")\n", + " for sample, measurement in all_sample_measurements.items():\n", + " emmited_gammas, err = measurement.get_gamma_emitted(\n", + " background_measurement=background_meas,\n", + " efficiency_coeffs=detection_efficiency_coeffs,\n", + " calibration_coeffs=calibration_coeffs[ch_nb],\n", + " channel_nb=ch_nb,\n", + " search_width=search_width,\n", + " )\n", + " # add timezone\n", + " time_generator_off = time_generator_off.replace(tzinfo=measurement.start_time.tzinfo)\n", + "\n", + " print(f\"{sample}: {emmited_gammas} ± {err} emmited gamma rays\")\n", + " neutron_flux = measurement.get_neutron_rate(\n", + " photon_counts=emmited_gammas, # NOTE should account for intensity\n", + " irradiations=irradiations,\n", + " distance=5.08, # cm\n", + " time_generator_off=time_generator_off,\n", + " channel_nb=ch_nb,\n", + " )\n", + " print(f\"{sample}: {neutron_flux[0]:.2e} neutrons/s\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing channel 4...\n" + ] + }, + { + "data": { + "image/png": "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eM+RSqXYu3cvJ598MpWVx4Yfk+Lo0991kXl/h8Nh6urqjvo4lKZJoVAoFAqFYhAooUmhUCgUCkW/1NTU9Pt58803R3p4w4pKOaBQKBQKhaJf1q9f3++6E088cfgGMgpQQpNCoVAoFIp+OfXUU0d6CKMGZZ5TKBQKhUKhGARKaFIoFAqFQqEYBEpoUigUCoVCoRgESmhSKBQKhUKhGARKaFIoFAqFQqEYBEpoUigUCoViGNA0jeeee27Q7W+++WauvfbaAdtccsklfPWrXz2scSkGj0o5oFAoFArFMNDe3s6YMWOOaJ/PPvvsUS/IezD+3//7fzz++ONs3rwZgPe///18//vf5+/+7u9GdFxHA6VpUigUCoViGGhsbKSiouKI9jl27Fhqa2uPaJ9D5fXXX+fGG29k2bJlrFy5kilTpnDFFVdw4MCBER3X0UAJTQqFQqFQHAEuueQSvvzlL/PNb36TsWPH0tjYyIIFC7Lri81zmzZt4tJLL6Wqqopx48Zx2223EYvFSvr97ne/y/jx46mrq+P222/HNM2Cfeab58qZABsaGli8eDEAzc3NaJrG008/zUUXXURVVRVz585l586drFmzhvPPP5+amhquuuoquru7B3XcTz75JHfccQfnnnsuZ5xxBr/61a8QQrB06dJBbX8socxzCoVCoRjdOBYkeod/v4Fx4Bma6es3v/kNd999N6tXr2blypXcfPPNXHjhhXzoQx8qaBePx7nyyiuZN28ea9asoauri3/913/lrrvuygo4AEuXLqWyspLXX3+d5uZmPve5zzFu3DgefPDBwzq0+++/n0cffZSpU6dyyy238MlPfpLa2lp++tOfEggEuP7667nvvvv4xS9+MeS+E4kElmUxduzYwxrjaEQJTQqFQqEY3SR6Ye2vh3+/538OahuHtMmcOXO4//77ATjttNNYtGgRS5cuLRGannrqKVKpFI8//jjV1dUALFq0iI985CM8/PDDTJw4EQC/389jjz1GIBBg9uzZPPDAA3zjG99g4cKF6PqhG4u+/vWvc+WVVwLwla98hRtvvJGlS5dy4YUXAnDrrbcWCG9D4Z577mHy5Mlcfvnlhzy+0YoSmhQKhUIxugmMcwWYkdjvEJkzZ07B90mTJtHV1VXSbtu2bZxzzjlZgQngwgsvRAjBjh07skLTOeecQyAQyLaZN28esViM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xzv41a9+xY9//GM+9alP8aEPfcjvOvvABz7Ac889xx//8R/z1FNP8bd/+7f88z//M3/0R3/kv89NN93E//7f/5tvfOMbPPnkk3zwgx9kfHyc97znPQ2vq+u63HbbbXW77E5lst2y3acD2W7Z7tOBbPdx2u5jlWH+rne9q26G+/333+8vs23bNn3FFVfoYDCoU6mUvvnmm3Uul6t6nfvvv1+vWrVKO46jBwYG9N13313zXl/84hd1T0+PdhxHn3XWWfqhhx46VpslhBBCiNPUMa/TJIQQQghxKpC554QQQgghGiBBkxBCCCFEAyRoEkIIIYRogARNQgghhBANkKAJ+PKXv0xfXx+BQIB169bVFN08mdx+++2sXbuWaDRKa2sr11xzDU8//XTVMhdddBFKqarbBz7wgapltm/fzpVXXkkoFKK1tZVbbrmFfD5/PDflsHzmM5+p2abKyvRTU1N86EMform5mUgkwhvf+Maaoqgn2zYD9PX11Wy3UooPfehDwKmzr3/2s5/x+te/no6ODpRSfO9736t6XGvNpz/9adrb2wkGg2zYsIHf/e53VcscOHCAt73tbcRiMRKJBDfccINfAqXs8ccf5/zzzycQCNDd3c1f/uVfHutNm9Nc253L5fj4xz/O8uXLCYfDdHR08M53vpOXX3656jXqfUfuuOOOqmVOpu0GePe7312zTZdffnnVMqfa/gbq/taVUtx5553+Mifj/m7kvHW0juEPPPAAq1evxnVd5s2bx9e//vXDW9kTPHrvhPv2t7+tHcfRd911l/7Nb36jb7zxRp1IJPTu3btP9KodkY0bN+q7775bb926VW/ZskW/9rWv1T09PXpsbMxf5sILL9Q33nij3rlzp38bHh72H8/n83rZsmV6w4YN+rHHHtP33nuvTqVS+tZbbz0Rm9SQ2267TS9durRqm/bu3es//oEPfEB3d3fr++67Tz/88MP67LPP1uecc47/+Mm4zVprvWfPnqpt3rRpU1Vpj1NlX9977736T/7kT/R3v/tdDdRM0n3HHXfoeDyuv/e97+lf/epX+qqrrtL9/f16cnLSX+byyy/XK1eu1A899JD++c9/rufNm6evv/56//Hh4WHd1tam3/a2t+mtW7fqf/qnf9LBYFD/3d/93fHazBpzbffQ0JDesGGDvueee/RTTz2lN2/erM866yy9Zs2aqtfo7e3Vf/7nf171Hag8Hpxs2621V9Lm8ssvr9qmAwcOVC1zqu1vrXXV9u7cuVPfddddWilVNVntybi/GzlvHY1j+HPPPadDoZC+6aab9BNPPKG/+MUvatM09Y9+9KOG1/W0D5rOOuss/aEPfcj/u1Ao6I6ODn377befwLU6evbs2aMB/R//8R/+fRdeeKH+6Ec/Outz7r33Xm0Yht61a5d/31e+8hUdi8V0JpM5lqt7xG677Ta9cuXKuo8NDQ1p27b1d77zHf++J598UgN68+bNWuuTc5vr+ehHP6oHBwd1sVjUWp+a+3rmyaRYLOp0Oq3vvPNO/76hoSHtuq7+p3/6J6211k888YQG9C9/+Ut/mX/7t3/TSim9Y8cOrbXWf/u3f6uTyWTVdn/84x/XCxcuPMZb1Jh6J9GZ/vu//1sD+oUXXvDv6+3t1X/9138963NOxu1+17vepa+++upZn3O67O+rr75aX3LJJVX3nez7W+va89bROob/8R//sV66dGnVe1133XV648aNDa/bad09l81meeSRR9iwYYN/n2EYbNiwgc2bN5/ANTt6hoeHAWpmgP7mN79JKpVi2bJl3HrrrUxMTPiPbd68meXLl9PW1ubft3HjRkZGRvjNb35zfFb8CPzud7+jo6ODgYEB3va2t7F9+3YAHnnkEXK5XNV+XrRoET09Pf5+Plm3uVI2m+Uf//Ef+f3f/32UUv79p+K+rvT888+za9euqv0bj8dZt25d1f5NJBKceeaZ/jIbNmzAMAx+8Ytf+MtccMEFOI7jL7Nx40aefvppDh48eJy25pUZHh5GKUUikai6/4477qC5uZkzzjiDO++8s6rL4mTd7gceeIDW1lYWLlzIBz/4Qfbv3+8/djrs7927d/PDH/6QG264oeaxk31/zzxvHa1j+ObNm6teo7zM4ZzvD2vuuVPNvn37KBQKVR8yQFtbG0899dQJWqujp1gs8rGPfYxzzz2XZcuW+fe/9a1vpbe3l46ODh5//HE+/vGP8/TTT/Pd734XgF27dtX9TMqPvRqtW7eOr3/96yxcuJCdO3fyZ3/2Z5x//vls3bqVXbt24ThOzYmkra3N356TcZtn+t73vsfQ0FDVpNqn4r6eqbye9bajcv+W57gssyyLpqamqmX6+/trXqP8WDKZPCbrf7RMTU3x8Y9/nOuvv75qlvs//MM/ZPXq1TQ1NfHggw9y6623snPnTj7/+c8DJ+d2X3755Vx77bX09/fz7LPP8slPfpIrrriCzZs3Y5rmabG/v/GNbxCNRrn22mur7j/Z93e989bROobPtszIyAiTk5MEg8FDrt9pHTSd6j70oQ+xdetW/vM//7Pq/ve9733+v5cvX057ezuXXnopzz77LIODg8d7NY+KK664wv/3ihUrWLduHb29vfzzP/9zQz+EU8HXvvY1rrjiCjo6Ovz7TsV9LWrlcjne/OY3o7XmK1/5StVjN910k//vFStW4DgO73//+7n99ttP2nnK3vKWt/j/Xr58OStWrGBwcJAHHniASy+99ASu2fFz11138ba3vY1AIFB1/8m+v2c7b71anNbdc6lUCtM0azLwd+/eTTqdPkFrdXR8+MMf5l//9V+5//776erqmnPZdevWAfDMM88AkE6n634m5cdOBolEggULFvDMM8+QTqfJZrMMDQ1VLVO5n0/2bX7hhRf4yU9+wnvf+945lzsV93V5Pef6HafTafbs2VP1eD6f58CBAyf9d6AcML3wwgts2rSpqpWpnnXr1pHP59m2bRtw8m53pYGBAVKpVNX3+lTd3wA///nPefrppw/5e4eTa3/Pdt46Wsfw2ZaJxWINX1yf1kGT4zisWbOG++67z7+vWCxy3333sX79+hO4ZkdOa82HP/xh/uVf/oWf/vSnNc2w9WzZsgWA9vZ2ANavX8+vf/3rqoNO+WC8ZMmSY7LeR9vY2BjPPvss7e3trFmzBtu2q/bz008/zfbt2/39fLJv8913301raytXXnnlnMudivu6v7+fdDpdtX9HRkb4xS9+UbV/h4aGeOSRR/xlfvrTn1IsFv1Acv369fzsZz8jl8v5y2zatImFCxee8C6L2ZQDpt/97nf85Cc/obm5+ZDP2bJlC4Zh+N1XJ+N2z/TSSy+xf//+qu/1qbi/y772ta+xZs0aVq5cechlT4b9fajz1tE6hq9fv77qNcrLHNb5/shy208d3/72t7XruvrrX/+6fuKJJ/T73vc+nUgkqjLwTyYf/OAHdTwe1w888EDVkNOJiQmttdbPPPOM/vM//3P98MMP6+eff15///vf1wMDA/qCCy7wX6M8dPOyyy7TW7Zs0T/60Y90S0vLq24YeqWbb75ZP/DAA/r555/X//Vf/6U3bNigU6mU3rNnj9baG67a09Ojf/rTn+qHH35Yr1+/Xq9fv95//sm4zWWFQkH39PToj3/841X3n0r7enR0VD/22GP6scce04D+/Oc/rx977DF/lNgdd9yhE4mE/v73v68ff/xxffXVV9ctOXDGGWfoX/ziF/o///M/9fz586uGoA8NDem2tjb9jne8Q2/dulV/+9vf1qFQ6IQOxZ5ru7PZrL7qqqt0V1eX3rJlS9XvvTxa6MEHH9R//dd/rbds2aKfffZZ/Y//+I+6paVFv/Od7/Tf42Tb7tHRUf0//sf/0Js3b9bPP/+8/slPfqJXr16t58+fr6empvzXONX2d9nw8LAOhUL6K1/5Ss3zT9b9fajzltZH5xheLjlwyy236CeffFJ/+ctflpIDR+KLX/yi7unp0Y7j6LPOOks/9NBDJ3qVjhhQ93b33XdrrbXevn27vuCCC3RTU5N2XVfPmzdP33LLLVW1e7TWetu2bfqKK67QwWBQp1IpffPNN+tcLncCtqgx1113nW5vb9eO4+jOzk593XXX6WeeecZ/fHJyUv/BH/yBTiaTOhQK6Te84Q16586dVa9xsm1z2Y9//GMN6Keffrrq/lNpX99///11v9fvete7tNZe2YE//dM/1W1tbdp1XX3ppZfWfB779+/X119/vY5EIjoWi+n3vOc9enR0tGqZX/3qV/q8887Truvqzs5OfccddxyvTaxrru1+/vnnZ/29l+t0PfLII3rdunU6Ho/rQCCgFy9erP/n//yfVcGF1ifXdk9MTOjLLrtMt7S0aNu2dW9vr77xxhtrLnRPtf1d9nd/93c6GAzqoaGhmuefrPv7UOctrY/eMfz+++/Xq1at0o7j6IGBgar3aIQqrbAQQgghhJjDaZ3TJIQQQgjRKAmahBBCCCEaIEGTEEIIIUQDJGgSQgghhGiABE1CCCGEEA2QoEkIIYQQogESNAkhhBBCNECCJiGEEEKIBkjQJIQQQgjRAAmahBBCCCEaIEGTEEIIIUQD/n+PJtOeExlmLwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing channel 5...\n" + ] + }, + { + "data": { + "image/png": "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b0fX9Yxjpofn8oUAa2pqWLx4MQBNTU1omsaLL77I+eefT2lpKeeccw67du1i3bp1nH322VRUVHDFFVfQ09MzpPM+55xz+NnPfsZXv/rVg24UjjWUTpNCoVAoxjSGJRgI6fseeJAZV16E2zk838LTTz/N3XffzZo1a1i9ejU333wz5513Hp/97GczxoVCIS6//HIWLFjAunXr6O7u5pvf/CZ33XVX0sABWL58OSUlJbz//vs0NTXxjW98gwkTJvCTn/zkgM7tgQce4PHHH2fmzJnccsst3HDDDVRWVvKrX/2KsrIyrr32Wu6//35+85vfHNBxjjSU0aRQ5CES8COFoKy6ZrSnolAc9QyEdJ5b0zLix73x3JlMrhqekOL8+fN54IEHADjhhBN44oknWL58eY7R9PzzzxONRnnmmWcoLy8H4IknnuDzn/88jzzyCFOmTAGgqKiIJ598krKyMk455RQefPBBvv/977No0aID0i665557uPzyywH4zne+w/XXX8/y5cs577zzALj11lszjDeFjTKaFIo8fPLmXwH4+6/cOMozUSgU48qLuPHcmaNy3OEyf/78jNdTp06lu7s7Z9yOHTs4/fTTkwYTwHnnnYcQgvr6+qTRdPrpp2cooy9YsIBgMEhrayuzZs0a9vzyzTNxrNNOOy1jWb55H+0oo0mhGIS+9lYmHDNjtKehUBzVuJ2OYXt8Rgu3253xWtM0hBAjdnxN05BSZiwzDCNnXPo8E739speN5LwPF1QiuEIxCA3r14z2FBQKxRHIySefzObNmwmFQsllK1euxOFwcOKJJyaXbd68mUgkknz98ccfU1FRwYwZ+R/mJk2aRGdnZ/L17t27CYfDh+AMjk6U0aRQDEL2E5tCoVAcDG688UZKSkr4+te/zrZt23jvvff413/9V772ta8lw2VgNzC+9dZbqaurY+nSpTzwwAPcddddBfOZLr74Yp544gk++eQT1q9fz+23357j/TrY6LrOpk2b2LRpE7qu097ezqZNm9izZ88hPe5ooIwmhSKLSDAw2lNQKBRHOGVlZbz11lv09/dzzjnn8OUvf5lLLrmEJ554ImPcJZdcwgknnMAFF1zAddddxxe+8IUMGYNsHnvsMWbMmMH555/PDTfcwD333JORE3Uo6Ojo4Mwzz+TMM8+ks7OTn//855x55pl885vfPKTHHQ00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weUDYfz48Qd9n/szh3//93/npJNOoqioiNdff51vfOMbTJ48mcsvv3y0p3dQUZ6mLJxSwxvzjfY0FGOAY888B4DI5i1EtqhwkEKhGJyLLrqIf/u3f+MHP/gB48ePp7a2loULFybXZ4fntm7dysUXX0xpaSkTJkzgtttuIxgM5uz3xz/+MZMmTaKqqorbb78dPa0YIjs8ly8EWFNTw+LFiwFoampC0zRefPFFzj//fEpLSznnnHPYtWsX69at4+yzz6aiooIrrriCnp6hdUK46KKL+NKXvsTJJ5/MnDlz+M53vsP8+fP56KOPhrT94YTyNGUxDuVNUNjUTKmlpLyC0GhPRKE4yjGEgTfqHfHj1pTU4Ha4h7XN008/zd13382aNWtYvXo1N998M+eddx6f/exnM8aFQiEuv/xyFixYwLp16+ju7uab3/wmd911V9LAAVi+fDklJSW8//77NDU18Y1vfIMJEybwk5/85IDO7YEHHuDxxx9n5syZ3HLLLdxwww1UVlbyq1/9irKyMq699lruv/9+fvOb3wxrv1JK3n33Xerr63nkkUcOaI5jEWU0KRQKhWJM4416+fOuP4/4cb8y9ytMKps0rG3mz5/PAw88AMAJJ5zAE088wfLly3OMpueff55oNMozzzxDeXk5AE888QSf//zneeSRR5gyZQpgizw/+eSTlJWVccopp/Dggw/y/e9/n0WLFuE4gC7z99xzTzJ09p3vfIfrr7+e5cuXc9555wFw6623Zhhv+8Ln83HMMccQi8VwOp3893//d845Hwkoo0mhGIRoKNdVrlAoRpaakhq+Mvcro3Lc4ZJo8ZVg6tSpdHd354zbsWMHp59+etJgAjjvvPMQQlBfX580mk4//XTKysqSYxYsWEAwGKS1tZVZs2YNe3755pk41mmnnZaxLN+8C1FZWcmmTZsIBoMsX76cu+++m+OOO46LLrpov+c4FlFGk0KhUCjGNG6He9gen9HC7c4M52mahhBixI6vaVqOjpmRR/ssfZ5avOole9lw5u1wOJKNfc844wx27NjBww8/fMQZTSoRXKFQKBSKEebkk09m8+bNhEKprMmVK1ficDg48cQTk8s2b95MJBJJvv7444+pqKhgxowZefc7adIkOjtTkhy7d+8mHA4fgjMYHCEEsVhsxI97qFFGk0KRBwlYXu9oT+OoRKLUvhVH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GsZjXXcda7uSx2wU3mFHabcibD8VGyiEEEKcAyRoOge8ZcFbKoKkWnrRvSHsP6GdSUFTc8gfsNdS8rUUQghx5pG70znANs+A/EcnwabWTSxNLSVkHzvJnRBCCHGqSZsmccZQShF346d7M4QQQoiqJGgSQgghhKiBBE2vIpMtnRyjsnedlO4IIYQQxyZtml5F6o0AFzVvYGHrJnj6AQDevODNMs6YEEIIUQMJml5FlFIsSy4Cc6qkSUauF0IIIWoj1XNCCCGEEDU4bUHT888/zw033EBPTw/BYJB58+Zx2223kc1mK+ZRSs14/fKXv6xY1ve+9z36+voIBAIsX76ce++991TvjhBCCCHOcaetem7Xrl14nsc//uM/Mn/+fHbu3MmNN97I2NgYf/u3f1sx709+8hOWLl1a+ru+vr707wceeIBrr72W22+/nde//vV861vf4uqrr+bhhx9m2bJlp2x/zniNi+HI0/7QA0IIIYQ4bqctaNq6dStbt24t/d3b28vu3bv58pe/PCNoqq+vp7m5etubz3/+82zdupWPfexjAHzmM59h27ZtfPGLX+QrX/nKK7cDZ5u6Xjj/T6qOHC4q1ZJRXQghxKvPGdWmaWhoiLq6mYPJXnXVVTQ2NnLBBRfwgx/8oOK97du3s3nz5oppW7ZsYfv22QcIyWQyDA8PV7xeFSQYmFN7tJ21TWtZnlp+ujdFCCHEGeiMCZqefvppvvCFL/BHf/RHpWmRSITPfvazfO973+OHP/whF1xwAVdffXVF4NTf309TU1PFspqamujv7591XbfffjvxeLz06ujoOPk7JM46lmGxsWUjjukce2YhhBCvOic9aPr4xz9etfF2+WvXrl0Vn9m7dy9bt27lbW97GzfeeGNpeiqV4qabbmLjxo2sX7+eO+64g+uvv54777zzZW3jrbfeytDQUOn14osvvqzlnbXc6OneAiGEEOKscdLbNN188828+93vnnOe3t7e0r/37dvHpZdeyvnnn89Xv/rVYy5/48aNbNu2rfR3c3MzBw4cqJjnwIEDs7aBAnBdF9d1j7muc9qad0ijcCGEEOI4nPSgqaGhgYaGhprm3bt3L5deeilr167l7rvvxjCOXfC1Y8cOWlpaSn9v2rSJ++67j49+9KOladu2bWPTpk3Hve2vKvH2070FQgghxFnltPWe27t3L5dccgld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z2f//v0Vr/e+97309PSwbt26inl/8pOfVMy3du3a0nsPPPAA1157LTfccAOPPPIIV199NVdffTU7d+481bskhBBCiHOYdbpW7DgOzc3Npb9zuRz/9m//xoc//GGUUhXz1tfXV8xb7vOf/zxbt27lYx/7GACf+cxn2LZtG1/84hf5yle+8srtgBBCCCFeVc6YNk0/+MEPOHLkCO95z3tmvHfVVVfR2NjIBRdcwA9+8IOK97Zv387mzZsrpm3ZsoXt27fPuq5MJsPw8HDFSwghhBBiLmdM0PS1r32NLVu20N7eXpoWiUT47Gc/y/e+9z1++MMfcsEFF3D11VdXBE79/f00NTVVLKupqYn+/v5Z13X77bcTj8dLr46OjpO/Q0IIIYQ4p5z0oOnjH//4rA28J1+7du2q+MxLL73Ej3/8Y2644YaK6alUiptuuomNGzeyfv167rjjDq6//nruvPPOl7WNt956K0NDQ6XXiy+++LKWJ4QQQohz30lv03TzzTfz7ne/e855ent7K/6+++67qa+v56qrrjrm8jdu3Mi2bdtKfzc3N3PgwIGKeQ4cODBrGygA13VxXfeY6xJCCCGEmHTSg6aGhgYaGhpqnl9rzd1338073/lObNs+5vw7duygpaWl9PemTZu47777+OhHP1qatm3bNjZt2nRc2y2EEEIIMZfT1ntu0k9/+lOee+453vve98547xvf+AaO47B69WoAvv/973PXXXfxT//0T6V5PvKRj3DxxRfz2c9+liuvvJLvfOc7PPjgg3z1q189ZfsghBBCiHPfaQ+avva1r3H++efT19dX9f3PfOYzvPDCC1iWRV9fH9/97nd561vfWnr//PPP51vf+haf/OQn+cQnPsGCBQu45557WLZs2anaBSGEEEK8CiittT7dG3G6DQ8PE4/H+dc//gA5q5G3ff7Tp3uThBBCCHEMk/fvoaEhYrHYK76+MyblgBBCCCHEmUyCJiGEEEKIGkjQJIQQQghRAwmahBBCCCFqIEGTEEIIIUQNJGgSQgghhKiBBE1CCCGEEDWQoEkIIYQQogYSNAkhhBBC1ECCJiGEEEKIGkjQJIQQQghRAwmahBBCCCFqIEGTEEIIIUQNJGgSQgghhKiBBE1CCCGEEDWQoEkIIYQQogYSNAkhhBBC1ECCJiGEEEKIGkjQJIQQQghRAwmahBBCCCFqIEGTEEIIIUQNJGgSQgghhKiBBE1CCCGEEDWQoEkIIYQQogYSNAkhhBBC1ECCJiGEEEKIGkjQJIQQQghRAwmahBBCCCFqIEGTEEIIIUQNJGgSQgghhKiBBE1CCCGEEDWQoEkIIYQQogYSNAkhhBBC1ECCJiGEEEKIGkjQJIQQQghRAwmahBBCCCFq8IoFTX/913/N+eefTygUIpFIVJ1nz549XHnllYRCIRobG/nYxz5GPp+vmOf+++9nzZo1uK7L/Pnz+frXvz5jOV/60pfo7u4mEAiwceNGfv3rX78CeySEEEKIV7NXLGjKZrO87W1v4wMf+EDV9wuFAldeeSXZbJYHHniAb3zjG3z961/nU5/6VGme5557jiuvvJJLL72UHTt28NGPfpT3vve9/PjHPy7N893vfpebbrqJ2267jYcffpiVK1eyZcsWDh48+ErtmhBCCCFehZTWWr+SK/j617/ORz/6UQYHByum//u//zuvf/3r2bdvH01NTQB85Stf4ZZbbuHQoUM4jsMtt9zCD3/4Q3bu3Fn63O///u8zODjIj370IwA2btzI+vXr+eIXvwiA53l0dHTw4Q9/mI9//ONVtymTyZDJZEp/Dw0N0dnZyTffewM5s4E3/c2tJ/MQCCGEEOIVMDw8TEdHB4ODg8Tj8Vd+hfoVdvfdd+t4PD5j+l/8xV/olStXVkx79tlnNaAffvhhrbXWF154of7IRz5SMc9dd92lY7GY1lrrTCajTdPU//qv/1oxzzvf+U591VVXzbpNt912mwbkJS95yUte8pLXOfB65plnjjs+OREWp0l/f3+phGnS5N/9/f1zzjM8PMzExAQDAwMUCoWq8+zatWvWdd96663cdNNNpb8HBwfp6upiz549pyZSPUNMRugvvvgisVjsdG/OKSP7Lfv9aiD7Lfv9ajBZU1RXV3dK1ndcQdPHP/5x/tf/+l9zzvPkk0/S19f3sjbqlea6Lq7rzpgej8dfVV+2SbFYTPb7VUT2+9VF9vvV5dW634ZxapIBHFfQdPPNN/Pud797znl6e3trWlZzc/OMXm4HDhwovTf5/8lp5fPEYjGCwSCmaWKaZtV5JpchhBBCCHEyHFfQ1NDQQENDw0lZ8aZNm/jrv/5rDh48SGNjIwDbtm0jFouxZMmS0jz33ntvxee2bdvGpk2bAHAch7Vr13Lfffdx9dVXA35D8Pvuu48PfehDJ2U7hRBCCCHgFUw5sGfPHnbs2MGePXsoFArs2LGDHTt2MDo6CsDll1/OkiVLeMc73sGjjz7Kj3/8Yz75yU/ywQ9+sFR19v73v59nn32WP/uzP2PXrl38wz/8A//yL//Cn/7pn5bWc9NNN/G///f/5hvf+AZPPvkkH/jABxgbG+M973lPzdvqui633XZb1Sq7c5nst+z3q4Hst+z3q4Hs9yna71eqhfm73vWuqi3cf/azn5Xmef755/UVV1yhg8GgTqVS+uabb9a5XK5iOT/72c/0qlWrtOM4ure3V999990z1vWFL3xBd3Z2asdx9IYNG/Qvf/nLV2q3hBBCCPEq9YrnaRJCCCGEOBfI2HNCCCGEEDWQoEkIIYQQogYSNAkhhBBC1ECCJiGEEEKIGkjQBHzpS1+iu7ubQCDAxo0bZyTdPJvcfvvtrF+/nmg0SmNjI1dffTW7d++umOeSSy5BKVXxev/7318xz549e7jyyisJhUI0NjbysY99jHw+fyp35bh8+tOfnrFP5Znp0+k0H/zgB6mvrycSifCWt7xlRlLUs22fAbq7u2fst1KKD37wg8C5c67/8z//kze84Q20trailOKee+6peF9rzac+9SlaWloIBoNs3ryZp556qmKeo0ePct111xGLxUgkEtxwww2lFCiTHnvsMS688EICgQAdHR38zd/8zSu9a3Oaa79zuRy33HILy5cvJxwO09rayjvf+U727dtXsYxq35E77rijYp6zab8B3v3ud8/Yp61bt1bMc66db6Dqb10pxZ133lma52w837Xct07WNfz+++9nzZo1uK7L/Pnz+frXv358G3uae++ddt/5zne04zj6rrvu0o8//ri+8cYbdSKR0AcOHDjdm3ZCtmzZou+++269c+dOvWPHDv26171Od3Z26tHR0dI8F198sb7xxhv1/v37S6+hoaHS+/l8Xi9btkxv3rxZP/LII/ree+/VqVRK33rrradjl2py22236aVLl1bs06FDh0rvv//979cdHR36vvvu0w8++KA+77zz9Pnnn196/2zcZ621PnjwYMU+b9u2rSK1x7lyru+9917953/+5/r73/++BmYM0n3HHXfoeDyu77nnHv3oo4/qq666Svf09OiJiYnSPFu3btUrV67Uv/zlL/UvfvELPX/+fH3ttdeW3h8aGtJNTU36uuuu0zt37tTf/va3dTAY1P/4j/94qnZzhrn2e3BwUG/evFl/97vf1bt27dLbt2/XGzZs0GvXrq1YRldXl/6rv/qriu9A+fXgbNtvrf2UNlu3bq3Yp6NHj1bMc66db611xf7u379f33XXXVopVTFY7dl4vmu5b52Ma/izzz6rQ6GQvummm/QTTzyhv/CFL2jTNPWPfvSjmrf1VR80bdiwQX/wgx8s/V0oFHRra6u+/fbbT+NWnTwHDx7UgP75z39emnbxxRfrj3zkI7N+5t5779WGYej+/v7StC9/+cs6FovpTCbzSm7uCbvtttv0ypUrq743ODiobdvW3/ve90rTnnzySQ3o7du3a63Pzn2u5iMf+YieN2+e9jxPa31unuvpNxPP83Rzc7O+8847S9MGBwe167r629/+ttZa6yeeeEID+je/+U1pnn//93/XSim9d+9erbXW//AP/6CTyWTFft9yyy160aJFr/Ae1abaTXS6X//61xrQL7zwQmlaV1eX/ru/+7tZP3M27ve73vUu/cY3vnHWz7xazvcb3/hG/drXvrZi2tl+vrWeed86WdfwP/uzP9NLly6tWNc111yjt2zZUvO2vaqr57LZLA899BCbN28uTTMMg82bN7N9+/bTuGUnz9DQEMCMEaC/+c1vkkqlWLZsGbfeeivj4+Ol97Zv387y5ctpamoqTduyZQvDw8M8/vjjp2bDT8BTTz1Fa2srvb29XHfddezZsweAhx56iFwuV3Ge+/r66OzsLJ3ns3Wfy2WzWf75n/+ZP/zDP0QpVZp+Lp7rcs899xz9/f0V5zcej7Nx48aK85tIJFi3bl1pns2bN2MYBr/61a9K81x00UU4jlOaZ8uWLezevZuBgYFTtDcvz9DQEEopEolExfQ77riD+vp6Vq9ezZ133llRZXG27vf9999PY2MjixYt4gMf+ABHjhwpvfdqON8HDhzghz/8ITfccMOM98728z39vnWyruHbt2+vWMbkPMdzvz+usefONYcPH6ZQKFQcZICmpiZ27dp1mrbq5PE8j49+9KO85jWvYdmyZaXpf/AHf0BXVxetra089thj3HLLLezevZvvf//7APT391c9JpPvnYk2btzI17/+dRYtWsT+/fv5y7/8Sy688EJ27txJf38/juPMuJE0NTWV9uds3Ofp7rnnHgYHBysG1T4Xz/V0k9tZbT/Kz+/kGJeTLMuirq6uYp6enp4Zy5h8L5lMviLbf7Kk02luueUWrr322opR7v/kT/6ENWvWUFdXxwMPPMCtt97K/v37+dznPgecnfu9detW3vzmN9PT08MzzzzDJz7xCa644gq2b9+OaZqvivP9jW98g2g0ypvf/OaK6Wf7+a523zpZ1/DZ5hkeHmZiYoJgMHjM7XtVB03nug9+8IPs3LmT//qv/6qY/r73va/07+XLl9PS0sJll13GM888w7x58071Zp4UV1xxRenfK1asYOPGjXR1dfEv//IvNf0QzgVf+9rXuOKKK2htbS1NOxfPtZgpl8vx9re/Ha01X/7ylyveu+mmm0r/XrFiBY7j8Ed/9EfcfvvtZ+04Zb//+79f+vfy5ctZsWIF8+bN4/777+eyyy47jVt26tx1111cd911BAKBiuln+/me7b51pnhVV8+lUilM05zRAv/AgQM0Nzefpq06OT70oQ/xf//v/+VnP/sZ7e3tc867ceNGAJ5++mkAmpubqx6TyffOBolEgoULF/L000/T3NxMNptlcHCwYp7y83y27/MLL7zAT37yE9773vfOOd+5eK4nt3Ou33FzczMHDx6seD+fz3P06NGz/jswGTC98MILbNu2raKUqZqNGzeSz+d5/vnngbN3v8v19vaSSqUqvtfn6vkG+MUvfsHu3buP+XuHs+t8z3bfOlnX8NnmicViNT9cv6qDJsdxWLt2Lffdd19pmud53HfffWzatOk0btmJ01rzoQ99iH/913/lpz/96Yxi2Gp27NgBQEtLCwCbNm3it7/9bcVFZ/JivGTJkldku0+20dFRnnnmGVpaWli7di22bVec5927d7Nnz57SeT7b9/nuu++msbGRK6+8cs75zsVz3dPTQ3Nzc8X5HR4e5le/+lXF+R0cHOShhx4qzfPTn/4Uz/NKgeSmTZv4z//8T3K5XGmebdu2sWjRotNeZTGbyYDpqaee4ic/+Qn19fXH/MyOHTswDKNUfXU27vd0L730EkeOHKn4Xp+L53vS1772NdauXcvKlSuPOe/ZcL6Pdd86WdfwTZs2VSxjcp7jut+fWNv2c8d3vvMd7bqu/vrXv66feOIJ/b73vU8nEomKFvhnkw984AM6Ho/r+++/v6LL6fj4uNZa66efflr/1V/9lX7wwQf1c889p//t3/5N9/b26osuuqi0jMmum5dffrnesWOH/tGPfqQbGhrOuG7o5W6++WZ9//336+eee07/93//t968ebNOpVL64MGDWmu/u2pnZ6f+6U9/qh988EG9adMmvWnTptLnz8Z9nlQoFHRnZ6e+5ZZbKqafS+d6ZGREP/LII/qRRx7RgP7c5z6nH3nkkVIvsTvuuEMnEgn9b//2b/qxxx7Tb3zjG6umHFi9erX+1a9+pf/rv/5LL1iwoKIL+uDgoG5qatLveMc79M6dO/V3vvMdHQqFTmtX7Ln2O5vN6quuukq3t7frHTt2VPzeJ3sLPfDAA/rv/u7v9I4dO/Qzzzyj//mf/1k3NDTod77znaV1nG37PTIyov/H//gfevv27fq5557TP/nJT/SaNWv0ggULdDqdLi3jXDvfk4aGhnQoFNJf/vKXZ3z+bD3fx7pvaX1yruGTKQc+9rGP6SeffFJ/6UtfkpQDJ+ILX/iC7uzs1I7j6A0bNuhf/vKXp3uTThhQ9XX33XdrrbXes2ePvuiii3RdXZ12XVfPnz9ff+xjH6vI3aO11s8//7y+4oordDAY1KlUSt988806l8udhj2qzTXXXKNbWlq04zi6ra1NX3PNNfrpp58uvT8xMaH/+I//WCeTSR0KhfSb3vQmvX///oplnG37POnHP/6xBvTu3bsrpp9L5/pnP/tZ1e/1u971Lq21n3bgL/7iL3RTU5N2XVdfdtllM47HkSNH9LXXXqsjkYiOxWL6Pe95jx4ZGamY59FHH9UXXHCBdl1Xt7W16TvuuONU7WJVc+33c889N+vvfTJP10MPPaQ3btyo4/G4DgQCevHixfp//s//WRFcaH127ff4+Li+/PLLdUNDg7ZtW3d1dekbb7xxxoPuuXa+J/3jP/6jDgaDenBwcMbnz9bzfaz7ltYn7xr+s5/9TK9atUo7jqN7e3sr1lELVdxgIYQQQggxh1d1myYhhBBCiFpJ0CSEEEIIUQMJmoQQQgghaiBBkxBCCCFEDSRoEkIIIYSogQRNQgghhBA1kKBJCCGEEKIGEjQJIYQQQtRAgiYhhBBCiBpI0CSEEEIIUQMJmoQQQgghavD/ARurHG5slaJ0AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for ch_nb in [4, 5]:\n", + " print(f\"Processing channel {ch_nb}...\")\n", + " for sample, measurement in all_sample_measurements.items():\n", + " detector = measurement.get_detector(ch_nb)\n", + " background_detector = background_meas.get_detector(ch_nb)\n", + " hist, bin_edges = detector.get_energy_hist_background_substract(background_detector)\n", + " # hist, bin_edges = detector.get_energy_hist()\n", + " plt.stairs(\n", + " hist, bin_edges, alpha=0.5, label=sample\n", + " )\n", + "\n", + " plt.xlim(0, 2000)\n", + " plt.ylim(-1e3, 1e3)\n", + " # plt.yscale(\"log\")\n", + " plt.legend()\n", + " plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "libra-toolbox-dev", + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/libra_toolbox/neutron_detection/activation_foils/__init__.py b/libra_toolbox/neutron_detection/activation_foils/__init__.py index 049aafc..7850cab 100644 --- a/libra_toolbox/neutron_detection/activation_foils/__init__.py +++ b/libra_toolbox/neutron_detection/activation_foils/__init__.py @@ -1 +1 @@ -from . import explicit, settings, calculations +from . import explicit, settings, calculations, calibration, compass diff --git a/libra_toolbox/neutron_detection/activation_foils/calibration.py b/libra_toolbox/neutron_detection/activation_foils/calibration.py index 904cbac..b98dfde 100644 --- a/libra_toolbox/neutron_detection/activation_foils/calibration.py +++ b/libra_toolbox/neutron_detection/activation_foils/calibration.py @@ -1,39 +1,213 @@ +from dataclasses import dataclass +from typing import List import datetime +import numpy as np -def get_decay_lines(nuclides:list[str])->dict: - """ Creates dictionary of check source data - given a list of check source nuclides. """ - # energy is the gamma energy in units of eV - # intensity is the percentage of decays that result in this energy gamma - all_decay_lines = {'Ba133':{'energy':[80.9979, 276.3989, 302.8508, 356.0129, 383.8485], - 'intensity':[0.329, 0.0716, 0.1834, 0.6205, 0.0894], - 'half_life':[10.551*365.25*24*3600], - 'activity_date':datetime.date(2014, 3, 19), - 'activity':1 * 3.7e4}, - 'Co60':{'energy':[1173.228, 1332.492], - 'intensity':[0.9985, 0.999826], - 'half_life':[1925.28*24*3600], - 'actvity_date':datetime.date(2014, 3, 19), - 'activity':0.872 * 3.7e4}, - 'Na22':{'energy':[511, 1274.537], - 'intensity':[1.80, 0.9994], - 'half_life':[2.6018*365.25*24*3600], - 'actvity_date':datetime.date(2014, 3, 19), - 'activity': 5 * 3.7e4}, - 'Cs137':{'energy':[661.657], - 'intensity':[0.851], - 'half_life':[30.08*365.25*24*3600], - 'actvity_date':datetime.date(2014, 3, 19), - 'activity':4.66 * 3.7e4}, - 'Mn54':{'energy':[834.848], - 'intensity':[0.99976], - 'half_life':[312.20*24*3600], - 'actvity_date':datetime.date(2016, 5, 2), - 'activity':6.27 * 3.7e4}} - decay_lines = {} - for nuclide in nuclides: - if nuclide in all_decay_lines.keys(): - decay_lines[nuclide] = all_decay_lines[nuclide] + +@dataclass +class Nuclide: + """ + Class to hold the information of a nuclide. + + Attributes + ---------- + name : + The name of the nuclide. + energy : + The energy of the gamma rays emitted by the nuclide (in keV). + intensity : + The intensity of the gamma rays emitted by the nuclide. + half_life : + The half-life of the nuclide in seconds. + atomic_mass : + The atomic mass of the nuclide in atomic mass units (amu). + abundance : + The natural abundance of the nuclide as a fraction (default is 1.00). + """ + + name: str + energy: List[float] = None + intensity: List[float] = None + half_life: float = None + atomic_mass: float = None + abundance: float = 1.00 + + @property + def decay_constant(self): + """ + Returns the decay constant of the nuclide in 1/s. + """ + return np.log(2) / self.half_life + + +ba133 = Nuclide( + name="Ba133", + energy=[80.9979, 276.3989, 302.8508, 356.0129, 383.8485], + intensity=[0.329, 0.0716, 0.1834, 0.6205, 0.0894], + half_life=10.551 * 365.25 * 24 * 3600, +) +co60 = Nuclide( + name="Co60", + energy=[1173.228, 1332.492], + intensity=[0.9985, 0.999826], + half_life=1925.28 * 24 * 3600, +) +na22 = Nuclide( + name="Na22", + energy=[511, 1274.537], + intensity=[1.80, 0.9994], + half_life=2.6018 * 365.25 * 24 * 3600, +) +cs137 = Nuclide( + name="Cs137", + energy=[661.657], + intensity=[0.851], + half_life=30.08 * 365.25 * 24 * 3600, +) +mn54 = Nuclide( + name="Mn54", + energy=[834.848], + intensity=[0.99976], + half_life=312.20 * 24 * 3600, +) + +nb92m = Nuclide( + name="Nb92m", + energy=[934.44], + intensity=[0.9915], + half_life=10.25 * 24 * 3600, +) + +nb93 = Nuclide( + name="Nb93", + atomic_mass=92.90637, + abundance=1.00 +) + +zr89 = Nuclide( + name="Zr89", + energy=[909.15], + intensity = [0.9904], + half_life=78.41 * 3600 +) + +zr90 = Nuclide( + name="Zr90", + atomic_mass=89.90469876, + abundance=0.515 +) + + +@dataclass +class Reaction: + reactant: Nuclide + product: Nuclide + cross_section: float + """ + Class to hold the information of a reaction. + Attributes + ---------- + reactant : + The reactant of the reaction. + product : + The product of the reaction. + cross_section : + The cross section of the reaction in cm2. + """ + +nb93_n2n = Reaction( + reactant=nb93, + product=nb92m, + cross_section=0.45966e-24 # cm2 at 14.1 MeV from IRDF-II 2020 +) + +zr90_n2n = Reaction( + reactant=zr90, + product=zr89, + cross_section=0.62389e-24 # cm2 at 14.1 MeV from IRDF-II 2020 +) + + +@dataclass +class CheckSource: + nuclide: Nuclide + activity_date: datetime.date + activity: float + + """ + Class to hold the information of a check source. + Attributes + ---------- + nuclide : + The nuclide of the check source. + activity_date : + The date of the calibrated activity of the check source. + activity : + The activity of the check source in Bq. + """ + + def get_expected_activity(self, date: datetime.date) -> float: + """ + Returns the expected activity of the check source at a given date. + + Args: + date: the date to calculate the expected activity for. + + Returns: + the expected activity of the check source in Bq + """ + + decay_constant = np.log(2) / self.nuclide.half_life + + # Convert date to datetime if needed + if isinstance(self.activity_date, datetime.date) and not isinstance( + self.activity_date, datetime.datetime + ): + + activity_datetime = datetime.datetime.combine( + self.activity_date, datetime.datetime.min.time() + ) + # add a timezone + activity_datetime = activity_datetime.replace(tzinfo=date.tzinfo) else: - raise ValueError(f'{nuclide} not yet added to get_decay_lines()') - return decay_lines \ No newline at end of file + activity_datetime = self.activity_date + + time = (date - activity_datetime).total_seconds() + act_expec = self.activity * np.exp(-decay_constant * time) + return act_expec + + +@dataclass +class ActivationFoil: + reaction: Reaction + mass: float + name: str + density: float = None + thickness: float = None + + """Class to hold the information of an activation foil. + Attributes + ---------- + reaction : + The reaction that produces the nuclide. + mass : + The mass of the foil in grams. + name : + The name of the foil. + density : + The density of the foil in g/cm3. + thickness : + The thickness of the foil in cm. + """ + + def __post_init__(self): + if (self.thickness is None) != (self.density is None): + raise ValueError("Thickness and density must either both be floats or both be None.") + + @property + def nb_atoms(self) -> float: + """ + Returns the number of atoms in the foil. + """ + avogadro = 6.022e23 # part/mol + return self.reaction.reactant.abundance * (self.mass / self.reaction.reactant.atomic_mass * avogadro) diff --git a/libra_toolbox/neutron_detection/activation_foils/compass.py b/libra_toolbox/neutron_detection/activation_foils/compass.py index b16f37b..a57e9fe 100644 --- a/libra_toolbox/neutron_detection/activation_foils/compass.py +++ b/libra_toolbox/neutron_detection/activation_foils/compass.py @@ -1,5 +1,863 @@ import numpy as np +from numpy.typing import NDArray import os +from pathlib import Path +import pandas as pd +from typing import Tuple, Dict, List, Union +import datetime +import uproot +import glob +import h5py + +import warnings +from libra_toolbox.neutron_detection.activation_foils.calibration import ( + CheckSource, + ActivationFoil, + na22, + co60, + ba133, + mn54, +) +from libra_toolbox.neutron_detection.activation_foils.explicit import get_chain + +from scipy.signal import find_peaks +from scipy.optimize import curve_fit + + +class Detector: + """ + Represents a detector used in COMPASS measurements. + + This class stores detector events (time and energy pairs), channel number, + and timing information. + + Attributes: + events: Array of (time in ps, energy) pairs + channel_nb: Channel number of the detector + live_count_time: Active measurement time excluding dead time (in seconds) + real_count_time: Total elapsed measurement time (in seconds) + spectrum: Cached energy spectrum (accessed via property) + bin_edges: Cached bin edges for the energy spectrum (accessed via property) + """ + + events: NDArray[Tuple[float, float]] # type: ignore + channel_nb: int + live_count_time: Union[float, None] + real_count_time: Union[float, None] + _spectrum: Union[NDArray[np.float64], None] = None + _bin_edges: Union[NDArray[np.float64], None] = None + + def __init__(self, channel_nb, nb_digitizer_bins=4096) -> None: + """ + Initialize a Detector object. + Args: + channel_nb: channel number of the detector + nb_digitizer_bins: number of digitizer bins for the detector. + """ + self.channel_nb = channel_nb + self.nb_digitizer_bins = nb_digitizer_bins + self.events = np.empty((0, 2)) # Initialize as empty 2D array with 2 columns + self.live_count_time = None + self.real_count_time = None + + @property + def spectrum(self) -> Union[NDArray[np.float64], None]: + """Get the cached energy spectrum. Read-only property.""" + return getattr(self, "_spectrum", None) + + @property + def bin_edges(self) -> Union[NDArray[np.float64], None]: + """Get the cached bin edges for the energy spectrum. Read-only property.""" + return getattr(self, "_bin_edges", None) + + def get_energy_hist( + self, bins: Union[None, NDArray[np.float64], int, str] = None + ) -> Tuple[np.ndarray, np.ndarray]: + """ + Get the energy histogram of the detector events. + Args: + bins: bins for the histogram. If None, bins are automatically generated + (one bin per energy channel). If int, it specifies the number of bins. + If str, it specifies the binning method (e.g., 'auto', 'fd', etc.) see + ``numpy.histogram_bin_edges`` for more details. + Returns: + Tuple of histogram values and bin edges + """ + if self._spectrum is not None and self._bin_edges is not None: + # If spectrum and bin edges are already calculated, return them + return self._spectrum, self._bin_edges + + energy_values = self.events[:, 1].copy() + time_values = self.events[:, 0].copy() + + # sort data based on timestamp + inds = np.argsort(time_values) + time_values = time_values[inds] + energy_values = energy_values[inds] + + energy_values = np.nan_to_num(energy_values, nan=0) + + if bins is None: + if self.nb_digitizer_bins == None: + bins = np.arange( + int(np.nanmin(energy_values)), int(np.nanmax(energy_values)) + 1 + ) + else: + bins = np.arange(self.nb_digitizer_bins + 1) + + return np.histogram(energy_values, bins=bins) + + def get_energy_hist_background_substract( + self, + background_detector: "Detector", + bins: Union[NDArray[np.float64], None] = None, + live_or_real: str = "live", + ) -> Tuple[np.ndarray, np.ndarray]: + """Get the energy histogram of the detector events with background subtraction. + + Args: + background_detector: _description_ + bins: _description_. Defaults to None. + live_or_real: When doing the background sub decide whether the background + histogram is scaled by live or real count time. + """ + + assert ( + self.channel_nb == background_detector.channel_nb + ), f"Channel number mismatch: {self.channel_nb} != {background_detector.channel_nb}" + + raw_hist, raw_bin_edges = self.get_energy_hist(bins=bins) + b_hist, _ = background_detector.get_energy_hist(bins=raw_bin_edges) + + if live_or_real == "live": + # Scale background histogram by live count time + b_hist = b_hist * ( + self.live_count_time / background_detector.live_count_time + ) + elif live_or_real == "real": + # Scale background histogram by real count time + b_hist = b_hist * ( + self.real_count_time / background_detector.real_count_time + ) + else: + raise ValueError( + f"Invalid live_or_real value: {live_or_real}. Use 'live' or 'real'." + ) + + hist_background_substracted = raw_hist - b_hist + + return hist_background_substracted, raw_bin_edges + + +class Measurement: + """ + Represents a measurement session from a COMPASS detector system. + + The Measurement class encapsulates data from a complete measurement session, + including timing information and detector events across multiple channels. + It provides functionality to load and process measurement data from files + generated by the COMPASS data acquisition system. + + Attributes: + start_time: Start time of the measurement + stop_time: End time of the measurement + name: Identifier for this measurement + detectors: List of ``Detector`` objects for each channel + """ + + start_time: Union[datetime.datetime, None] + stop_time: Union[datetime.datetime, None] + name: str + detectors: List[Detector] + + def __init__(self, name: str) -> None: + """ + Initialize a Measurement object. + Args: + name: name of the measurement + """ + self.start_time = None + self.stop_time = None + self.name = name + self.detectors = [] + + @classmethod + def from_directory( + cls, source_dir: str, name: str, info_file_optional: bool = False + ) -> "Measurement": + """ + Create a Measurement object from a directory containing Compass data. + Args: + source_dir: directory containing Compass data + name: name of the measurement + info_file_optional: if True, the function will not raise an error + if the run.info file is not found + Returns: + Measurement object + """ + measurement_object = cls(name=name) + + # Get events + time_values, energy_values = get_events(source_dir) + + # Get start and stop time + try: + start_time, stop_time = get_start_stop_time(source_dir) + measurement_object.start_time = start_time + measurement_object.stop_time = stop_time + except FileNotFoundError as e: + if info_file_optional: + warnings.warn( + "run.info file not found. Assuming start and stop time are not needed." + ) + else: + raise FileNotFoundError(e) + + # Create detectors + detectors = [Detector(channel_nb=nb) for nb in time_values.keys()] + + # Get live and real count times + all_root_filenames = glob.glob(os.path.join(source_dir, "*.root")) + if len(all_root_filenames) == 1: + root_filename = all_root_filenames[0] + else: + root_filename = None + print("No root file found, assuming all counts are live") + + for detector in detectors: + detector.events = np.column_stack( + (time_values[detector.channel_nb], energy_values[detector.channel_nb]) + ) + + if root_filename: + live_count_time, real_count_time = get_live_time_from_root( + root_filename, detector.channel_nb + ) + detector.live_count_time = live_count_time + detector.real_count_time = real_count_time + else: + real_count_time = (stop_time - start_time).total_seconds() + # Assume first and last event correspond to start and stop time of live counts + # and convert from picoseconds to seconds + ps_to_seconds = 1e-12 + live_count_time = ( + time_values[detector.channel_nb][-1] + - time_values[detector.channel_nb][0] + ) * ps_to_seconds + detector.live_count_time = live_count_time + detector.real_count_time = real_count_time + + measurement_object.detectors = detectors + + return measurement_object + + def to_h5(self, filename: str, mode: str = "w", spectrum_only=False) -> None: + """ + Save the measurement data to an HDF5 file. + Args: + filename: name of the output HDF5 file + mode: file opening mode ('w' for write/overwrite, 'a' for append) + """ + with h5py.File(filename, mode) as f: + # Create a group for the measurement (or get existing one) + if self.name in f: + # If group already exists, we could either raise an error or overwrite + # For now, let's overwrite the existing group + del f[self.name] + measurement_group = f.create_group(self.name) + + # Store start and stop time + if self.start_time: + measurement_group.attrs["start_time"] = self.start_time.isoformat() + if self.stop_time: + measurement_group.attrs["stop_time"] = self.stop_time.isoformat() + + # Store detectors + for detector in self.detectors: + detector_group = measurement_group.create_group( + f"detector_{detector.channel_nb}" + ) + if spectrum_only: + hist, bin_edges = detector.get_energy_hist(bins=None) + detector_group.create_dataset("spectrum", data=hist) + detector_group.create_dataset("bin_edges", data=bin_edges) + detector_group.create_dataset("events", data=[]) + else: + detector_group.create_dataset("events", data=detector.events) + + detector_group.attrs["live_count_time"] = detector.live_count_time + detector_group.attrs["real_count_time"] = detector.real_count_time + + @classmethod + def from_h5( + cls, filename: str, measurement_name: str = None + ) -> Union["Measurement", List["Measurement"]]: + """ + Load measurement data from an HDF5 file. + Args: + filename: name of the HDF5 file + measurement_name: specific measurement name to load. If None, loads all measurements. + Returns: + Single Measurement object if measurement_name is specified, + or list of Measurement objects if loading all measurements. + """ + measurements = [] + + with h5py.File(filename, "r") as f: + # Get all measurement group names + measurement_names = [ + name for name in f.keys() if isinstance(f[name], h5py.Group) + ] + + if measurement_name is not None: + if measurement_name not in measurement_names: + raise ValueError( + f"Measurement '{measurement_name}' not found in file. Available: {measurement_names}" + ) + measurement_names = [measurement_name] + + for name in measurement_names: + measurement = cls(name=name) + measurement_group = f[name] + + # Load start and stop time + if "start_time" in measurement_group.attrs: + measurement.start_time = datetime.datetime.fromisoformat( + measurement_group.attrs["start_time"] + ) + if "stop_time" in measurement_group.attrs: + measurement.stop_time = datetime.datetime.fromisoformat( + measurement_group.attrs["stop_time"] + ) + + # Load detectors + detectors = [] + for detector_name in measurement_group.keys(): + if detector_name.startswith("detector_"): + channel_nb = int(detector_name.replace("detector_", "")) + detector = Detector(channel_nb=channel_nb) + + detector_group = measurement_group[detector_name] + detector.events = detector_group["events"][:] + detector.live_count_time = detector_group.attrs[ + "live_count_time" + ] + detector.real_count_time = detector_group.attrs[ + "real_count_time" + ] + + if "spectrum" in detector_group: + detector._spectrum = detector_group["spectrum"][:] + if "bin_edges" in detector_group: + detector._bin_edges = detector_group["bin_edges"][:] + + detectors.append(detector) + + measurement.detectors = detectors + measurements.append(measurement) + + return measurements[0] if measurement_name is not None else measurements + + @classmethod + def write_multiple_to_h5( + cls, measurements: List["Measurement"], filename: str + ) -> None: + """ + Save multiple measurement objects to a single HDF5 file. + Args: + measurements: list of Measurement objects to save + filename: name of the output HDF5 file + """ + with h5py.File(filename, "w") as f: + for measurement in measurements: + # Create a group for each measurement + measurement_group = f.create_group(measurement.name) + + # Store start and stop time + if measurement.start_time: + measurement_group.attrs["start_time"] = ( + measurement.start_time.isoformat() + ) + if measurement.stop_time: + measurement_group.attrs["stop_time"] = ( + measurement.stop_time.isoformat() + ) + + # Store detectors + for detector in measurement.detectors: + detector_group = measurement_group.create_group( + f"detector_{detector.channel_nb}" + ) + detector_group.create_dataset("events", data=detector.events) + detector_group.attrs["live_count_time"] = detector.live_count_time + detector_group.attrs["real_count_time"] = detector.real_count_time + + def get_detector(self, channel_nb: int) -> Detector: + """ + Get the detector object for a given channel number. + Args: + channel_nb: channel number of the detector + Returns: + Detector object for the specified channel + """ + for detector in self.detectors: + if detector.channel_nb == channel_nb: + return detector + raise ValueError(f"Detector with channel number {channel_nb} not found.") + + +class CheckSourceMeasurement(Measurement): + check_source: CheckSource + + def compute_detection_efficiency( + self, + background_measurement: Measurement, + calibration_coeffs: np.ndarray, + channel_nb: int, + search_width: float = 800, + ) -> Union[np.ndarray, float]: + """ + Computes the detection efficiency of a check source given the + check source data and the calibration coefficients. + The detection efficiency is calculated using the formula: + .. math:: \\eta = \\frac{N_{meas}}{N_{expec}} + + where :math:`N_{meas}` is the total number of counts measured under the energy peak + and :math:`N_{expec}` is the total number of emitted gamma-rays from the check source. + + The expected number of counts :math:`N_{expec}` is calculated according to Equation 3 + in https://doi.org/10.2172/1524045. + + Args: + background_measurement: background measurement + calibration_coeffs: the calibration polynomial coefficients for the detector + channel_nb: the channel number of the detector + search_width: the search width for the peak fitting + + Returns: + the detection efficiency + """ + # find right background detector + + background_detector = background_measurement.get_detector(channel_nb) + check_source_detector = self.get_detector(channel_nb) + + hist, bin_edges = check_source_detector.get_energy_hist_background_substract( + background_detector, bins=None + ) + + calibrated_bin_edges = np.polyval(calibration_coeffs, bin_edges) + + nb_counts_measured = get_multipeak_area( + hist, + calibrated_bin_edges, + self.check_source.nuclide.energy, + search_width=search_width, + ) + + nb_counts_measured = np.array(nb_counts_measured) + nb_counts_measured_err = np.sqrt(nb_counts_measured) + + # assert that all numbers in nb_counts_measured are > 0 + assert np.all( + nb_counts_measured > 0 + ), f"Some counts measured are <= 0: {nb_counts_measured}" + + act_expec = self.check_source.get_expected_activity(self.start_time) + gamma_rays_expected = act_expec * ( + np.array(self.check_source.nuclide.intensity) + ) + decay_constant = np.log(2) / self.check_source.nuclide.half_life + + expected_nb_counts = gamma_rays_expected / decay_constant + live_count_time_correction_factor = ( + check_source_detector.live_count_time + / check_source_detector.real_count_time + ) + decay_counting_correction_factor = 1 - np.exp( + -decay_constant * check_source_detector.real_count_time + ) + expected_nb_counts *= ( + live_count_time_correction_factor * decay_counting_correction_factor + ) + + detection_efficiency = nb_counts_measured / expected_nb_counts + + return detection_efficiency + + def get_peaks(self, hist: np.ndarray, **kwargs) -> np.ndarray: + """Returns the peak indices of the histogram + + Args: + hist: a histogram + kwargs: optional parameters for the peak finding algorithm + see scipy.signal.find_peaks for more information + + Returns: + the peak indices in ``hist`` + """ + + # peak finding parameters + start_index = 100 + prominence = 0.10 * np.max(hist[start_index:]) + height = 0.10 * np.max(hist[start_index:]) + width = [10, 150] + distance = 30 + if self.check_source.nuclide == na22: + start_index = 100 + height = 0.1 * np.max(hist[start_index:]) + prominence = 0.1 * np.max(hist[start_index:]) + width = [10, 150] + distance = 30 + elif self.check_source.nuclide == co60: + start_index = 400 + height = 0.60 * np.max(hist[start_index:]) + prominence = None + elif self.check_source.nuclide == ba133: + width = [10, 200] + elif self.check_source.nuclide == mn54: + height = 0.6 * np.max(hist[start_index:]) + + # update the parameters if kwargs are provided + if kwargs: + prominence = kwargs.get("prominence", prominence) + height = kwargs.get("height", height) + width = kwargs.get("width", width) + distance = kwargs.get("distance", distance) + + # run the peak finding algorithm + # NOTE: the start_index is used to ignore the low energy region + peaks, peak_data = find_peaks( + hist[start_index:], + prominence=prominence, + height=height, + width=width, + distance=distance, + ) + peaks = np.array(peaks) + start_index + + return peaks + + +class SampleMeasurement(Measurement): + foil: ActivationFoil + + def get_gamma_emitted( + self, + background_measurement: Measurement, + efficiency_coeffs, + calibration_coeffs, + channel_nb: int, + search_width: float = 800, + ): + # find right background detector + + background_detector = background_measurement.get_detector(channel_nb) + check_source_detector = self.get_detector(channel_nb) + + hist, bin_edges = check_source_detector.get_energy_hist_background_substract( + background_detector, bins=None + ) + + calibrated_bin_edges = np.polyval(calibration_coeffs, bin_edges) + + energy = self.foil.reaction.product.energy + + nb_counts_measured = get_multipeak_area( + hist, + calibrated_bin_edges, + energy, + search_width=search_width, + ) + + nb_counts_measured = np.array(nb_counts_measured) + nb_counts_measured_err = np.sqrt(nb_counts_measured) + + detection_efficiency = np.polyval(efficiency_coeffs, energy) + + gamma_emmitted = nb_counts_measured / detection_efficiency + gamma_emmitted_err = nb_counts_measured_err / detection_efficiency + return gamma_emmitted, gamma_emmitted_err + + def get_neutron_flux( + self, + channel_nb: int, + photon_counts: float, + irradiations: list, + time_generator_off: datetime.datetime, + total_efficiency=1, + branching_ratio=1, + ): + """calculates the neutron flux during the irradiation + Based on Equation 1 from: + Lee, Dongwon, et al. "Determination of the Deuterium-Tritium (D-T) Generator + Neutron Flux using Multi-foil Neutron Activation Analysis Method." , + May. 2019. https://doi.org/10.2172/1524045 + + Args: + channel_nb: channel number of the detector + irradiations: list of dictionaries with keys "t_on" and "t_off" for irradiations + time_generator_off: time when the generator was turned off + photon_counts: number of gamma rays measured + total_efficiency: total efficiency of the detector + branching_ratio: branching ratio of the reaction + + Returns: + neutron flux in n/cm2/s + """ + time_between_generator_off_and_start_of_counting = ( + self.start_time - time_generator_off + ).total_seconds() + + detector = self.get_detector(channel_nb) + + f_time = ( + get_chain(irradiations, self.foil.reaction.product.decay_constant) + * np.exp( + -self.foil.reaction.product.decay_constant + * time_between_generator_off_and_start_of_counting + ) + * ( + 1 + - np.exp( + -self.foil.reaction.product.decay_constant + * detector.real_count_time + ) + ) + * (detector.live_count_time / detector.real_count_time) + / self.foil.reaction.product.decay_constant + ) + + # Correction factor of gamma-ray self-attenuation in the foil + if self.foil.thickness is None: + f_self = 1 + else: + f_self = ( + 1 + - np.exp( + -self.foil.mass_attenuation_coefficient + * self.foil.density + * self.foil.thickness + ) + ) / ( + self.foil.mass_attenuation_coefficient + * self.foil.density + * self.foil.thickness + ) + + # Spectroscopic Factor to account for the branching ratio and the + # total detection efficiency + f_spec = total_efficiency * branching_ratio + + number_of_decays_measured = photon_counts / f_spec + + flux = ( + number_of_decays_measured + / self.foil.nb_atoms + / self.foil.reaction.cross_section + ) + + flux /= f_time * f_self + + return flux + + def get_neutron_rate( + self, + channel_nb: int, + photon_counts: float, + irradiations: list, + distance: float, + time_generator_off: datetime.datetime, + total_efficiency=1, + branching_ratio=1, + ) -> float: + """ + Calculates the neutron rate during the irradiation. + It assumes that the neutron flux is isotropic. + + Based on Equation 1 from: + Lee, Dongwon, et al. "Determination of the Deuterium-Tritium (D-T) Generator + Neutron Flux using Multi-foil Neutron Activation Analysis Method." , + May. 2019. https://doi.org/10.2172/1524045 + + Args: + channel_nb: channel number of the detector + irradiations: list of dictionaries with keys "t_on" and "t_off" for irradiations + time_generator_off: time when the generator was turned off + photon_counts: number of gamma rays measured + total_efficiency: total efficiency of the detector + branching_ratio: branching ratio of the reaction + + Returns: + neutron rate in n/s + """ + + flux = self.get_neutron_flux( + channel_nb=channel_nb, + photon_counts=photon_counts, + irradiations=irradiations, + time_generator_off=time_generator_off, + total_efficiency=total_efficiency, + branching_ratio=branching_ratio, + ) + # convert n/cm2/s to n/s + area_of_sphere = 4 * np.pi * distance**2 + + flux *= area_of_sphere + + return flux + + +def get_calibration_data( + check_source_measurements: List[CheckSourceMeasurement], + background_measurement: Measurement, + channel_nb: int, +): + background_detector = [ + detector + for detector in background_measurement.detectors + if detector.channel_nb == channel_nb + ][0] + + calibration_energies = [] + calibration_channels = [] + + for measurement in check_source_measurements: + for detector in measurement.detectors: + if detector.channel_nb != channel_nb: + continue + + hist, bin_edges = detector.get_energy_hist_background_substract( + background_detector, bins=None + ) + peaks_ind = measurement.get_peaks(hist) + peaks = bin_edges[peaks_ind] + + if len(peaks) != len(measurement.check_source.nuclide.energy): + raise ValueError( + f"SciPy find_peaks() found {len(peaks)} photon peaks, while {len(measurement.check_source.nuclide.energy)} were expected" + ) + calibration_channels += list(peaks) + calibration_energies += measurement.check_source.nuclide.energy + + inds = np.argsort(calibration_channels) + calibration_channels = np.array(calibration_channels)[inds] + calibration_energies = np.array(calibration_energies)[inds] + + return calibration_channels, calibration_energies + + +def gauss(x, b, m, *args): + """Creates a multipeak gaussian with a linear addition of the form: + m * x + b + Sum_i (A_i * exp(-(x - x_i)**2) / (2 * sigma_i**2)""" + + out = m * x + b + if np.mod(len(args), 3) == 0: + for i in range(int(len(args) / 3)): + out += args[i * 3 + 0] * np.exp( + -((x - args[i * 3 + 1]) ** 2) / (2 * args[i * 3 + 2] ** 2) + ) + else: + raise ValueError("Incorrect number of gaussian arguments given.") + return out + + +def fit_peak_gauss(hist, xvals, peak_ergs, search_width=600, threshold_overlap=200): + + if len(peak_ergs) > 1: + if np.max(peak_ergs) - np.min(peak_ergs) > threshold_overlap: + raise ValueError( + f"Peak energies {peak_ergs} are too far away from each to be fitted together." + ) + + search_start = np.argmin( + np.abs((peak_ergs[0] - search_width / (2 * len(peak_ergs))) - xvals) + ) + search_end = np.argmin( + np.abs((peak_ergs[-1] + search_width / (2 * len(peak_ergs))) - xvals) + ) + + slope_guess = (hist[search_end] - hist[search_start]) / ( + xvals[search_end] - xvals[search_start] + ) + + guess_parameters = [0, slope_guess] + + for i in range(len(peak_ergs)): + peak_ind = np.argmin(np.abs((peak_ergs[i]) - xvals)) + guess_parameters += [ + hist[peak_ind], + peak_ergs[i], + search_width / (3 * len(peak_ergs)), + ] + + parameters, covariance = curve_fit( + gauss, + xvals[search_start:search_end], + hist[search_start:search_end], + p0=guess_parameters, + ) + + return parameters, covariance + + +def get_multipeak_area( + hist, bins, peak_ergs, search_width=600, threshold_overlap=200 +) -> List[float]: + + if len(peak_ergs) > 1: + if np.max(peak_ergs) - np.min(peak_ergs) > threshold_overlap: + areas = [] + for peak in peak_ergs: + area = get_multipeak_area( + hist, + bins, + [peak], + search_width=search_width, + threshold_overlap=threshold_overlap, + ) + areas += area + return areas + + # get midpoints of every bin + xvals = np.diff(bins) / 2 + bins[:-1] + + parameters, covariance = fit_peak_gauss( + hist, xvals, peak_ergs, search_width=search_width + ) + + areas = [] + peak_starts = [] + peak_ends = [] + all_peak_params = [] + # peak_amplitudes = [] + for i in range(len(peak_ergs)): + # peak_amplitudes += [parameters[2 + 3 * i]] + mean = parameters[2 + 3 * i + 1] + sigma = np.abs(parameters[2 + 3 * i + 2]) + peak_start = np.argmin(np.abs((mean - 3 * sigma) - xvals)) + peak_end = np.argmin(np.abs((mean + 3 * sigma) - xvals)) + + peak_starts += [peak_start] + peak_ends += [peak_end] + + # Use unimodal gaussian to estimate counts from just one peak + peak_params = [parameters[0], parameters[1], parameters[2 + 3 * i], mean, sigma] + all_peak_params += [peak_params] + gross_area = np.trapz( + gauss(xvals[peak_start:peak_end], *peak_params), + x=xvals[peak_start:peak_end], + ) + + # Cut off trapezoidal area due to compton scattering and noise + trap_cutoff_area = np.trapz( + parameters[0] + parameters[1] * xvals[peak_start:peak_end], + x=xvals[peak_start:peak_end], + ) + area = gross_area - trap_cutoff_area + areas += [area] + + return areas def get_channel(filename): @@ -22,24 +880,24 @@ def get_channel(filename): >>> get_channel("Data_CH4@V1725_292_Background_250322.CSV") 4 """ - return int(filename.split('@')[0][7:]) + return int(filename.split("@")[0][7:]) def sort_compass_files(directory: str) -> dict: - """ Gets Compass csv data filenames + """Gets Compass csv data filenames and sorts them according to channel and ending number. The filenames need to be sorted by ending number because only the first csv file for each channel contains a header. - - Example of sorted filenames in directory: + + Example of sorted filenames in directory: 1st file: Data_CH4@...22.CSV 2nd file: Data_CH4@...22_1.CSV - 3rd file: Data_CH4@...22_2.CSV """ + 3rd file: Data_CH4@...22_2.CSV""" filenames = os.listdir(directory) data_filenames = {} for filename in filenames: - if filename.lower().endswith('.csv'): + if filename.lower().endswith(".csv"): ch = get_channel(filename) # initialize filenames for each channel if ch not in data_filenames.keys(): @@ -53,5 +911,123 @@ def sort_compass_files(directory: str) -> dict: return data_filenames +def get_events(directory: str) -> Tuple[Dict[int, np.ndarray], Dict[int, np.ndarray]]: + """ + From a directory with unprocessed Compass data CSV files, + this returns dictionaries of detector pulse times and energies + with digitizer channels as the keys to the dictionaries. + + This function is also built to be able to read-in problematic + Compass CSV files that have been incorrectly post-processed to + reduce waveform data. + + Args: + directory: directory containing CSV files with Compass data + + Returns: + time values and energy values for each channel + """ + + time_values = {} + energy_values = {} + + data_filenames = sort_compass_files(directory) + + for ch in data_filenames.keys(): + # Initialize time_values and energy_values for each channel + time_values[ch] = np.empty(0) + energy_values[ch] = np.empty(0) + for i, filename in enumerate(data_filenames[ch]): + print(f'Processing File {i}') + + csv_file_path = os.path.join(directory, filename) + + # only the first file has a header + if i == 0: + # determine the column names + # + # Typically, setting the header argument to 1 + # would normally work, but on some CoMPASS csv + # files, specifically those with waveform data, + # the column header has far fewer entries + # than the number of columns in the csv file. + # This is due to the "SAMPLES" column, which + # contains the waveform data actually being made + # up of the 7th-nth column of an n column csv file. + # + # So to mitigate this, we will read in the header + # manually and determine which column of + # the dataset to read in. + first_row_df = pd.read_csv(csv_file_path, + delimiter=";", + header=None, + nrows=1) + column_names = first_row_df.to_numpy()[0] + # Determine which column applies to time and energy + time_col = np.where(column_names=="TIMETAG")[0][0] + energy_col = np.where(column_names=="ENERGY")[0][0] + # First csv file has header, so skip it + # because we already read it in + skiprows=1 + else: + # For subsequent csv files, don't skip any rows + # as there won't be any header + skiprows=0 + + + df = pd.read_csv(csv_file_path, + delimiter=";", + header=None, + skiprows=skiprows) + time_data = df[time_col].to_numpy() + energy_data = df[energy_col].to_numpy() + + # Extract and append the energy data to the list + time_values[ch] = np.concatenate([time_values[ch], time_data]) + energy_values[ch] = np.concatenate([energy_values[ch], energy_data]) + + return time_values, energy_values + + +def get_start_stop_time(directory: str) -> Tuple[datetime.datetime, datetime.datetime]: + """Obtains count start and stop time from the run.info file.""" + + info_file = Path(directory).parent / "run.info" + if info_file.exists(): + time_format = "%Y/%m/%d %H:%M:%S.%f%z" + with open(info_file, "r") as file: + lines = file.readlines() + else: + raise FileNotFoundError( + f"Could not find run.info file in parent directory {Path(directory).parent}" + ) + + start_time, stop_time = None, None + for line in lines: + if "time.start=" in line: + # get start time string while cutting off '\n' newline + time_string = line.split("=")[1].replace("\n", "") + start_time = datetime.datetime.strptime(time_string, time_format) + elif "time.stop=" in line: + # get stop time string while cutting off '\n' newline + time_string = line.split("=")[1].replace("\n", "") + stop_time = datetime.datetime.strptime(time_string, time_format) + + if None in (start_time, stop_time): + raise ValueError(f"Could not find time.start or time.stop in file {info_file}.") + else: + return start_time, stop_time + + +def get_live_time_from_root(root_filename: str, channel: int) -> Tuple[float, float]: + """ + Gets live and real count time from Compass root file. + Live time is defined as the difference between the actual time that + a count is occurring and the "dead time," in which the output of detector + pulses is saturated such that additional signals cannot be processed.""" + with uproot.open(root_filename) as root_file: + live_count_time = root_file[f"LiveTime_{channel}"].members["fMilliSec"] / 1000 + real_count_time = root_file[f"RealTime_{channel}"].members["fMilliSec"] / 1000 + return live_count_time, real_count_time diff --git a/libra_toolbox/neutron_detection/activation_foils/explicit.py b/libra_toolbox/neutron_detection/activation_foils/explicit.py index 974f071..6e2a1bc 100644 --- a/libra_toolbox/neutron_detection/activation_foils/explicit.py +++ b/libra_toolbox/neutron_detection/activation_foils/explicit.py @@ -3,7 +3,7 @@ import numpy as np -def get_chain(irradiations): +def get_chain(irradiations, decay_constant=Nb92m_decay_constant): """ Returns the value of (1 - exp(-\lambda * \Delta t_1)) * (1 - exp(-\lambda * \Delta t_2)) * ... * (1 - exp(-\lambda * \Delta t_n)) @@ -23,7 +23,7 @@ def get_chain(irradiations): for period in periods: delta_t = period["end"] - period["start"] - result = 1 - result * np.exp(-Nb92m_decay_constant * delta_t) + result = 1 - result * np.exp(-decay_constant * delta_t) return result diff --git a/libra_toolbox/neutron_detection/diamond/prt.py b/libra_toolbox/neutron_detection/diamond/prt.py index ed842a1..b0a452c 100644 --- a/libra_toolbox/neutron_detection/diamond/prt.py +++ b/libra_toolbox/neutron_detection/diamond/prt.py @@ -1,4 +1,4 @@ -from typing import Tuple +from typing import Tuple, Union, List from pathlib import Path import h5py import numpy as np @@ -90,7 +90,6 @@ def get_count_rate( return count_rates, count_rate_bins -# TODO refactor/simplify/remove bits below that aren't needed """ # Coincidence Spectrum Analysis for Diamond Telescope Detector @@ -100,389 +99,543 @@ def get_count_rate( **Contact:** [office@cividec.at](mailto:office@cividec.at)
**Author:** Julian Melbinger +Changes: +- vectorised functions using numpy for performance +- refactoring and abstraction of the common logic +- removed unused arguments in anti-coincidence functions +- documentation and type hinting +- snake_case for function names and variables """ -def COINC_2(Ch1_TIME, Ch2_TIME, Ch1_AMPL, Ch2_AMPL, t_window): - pos_Ch1 = 0 - pos_Ch2 = 0 - - length_Ch1 = len(Ch1_AMPL) - length_Ch2 = len(Ch2_AMPL) - - aaccepted_ampl_1 = [] - aaccepted_time_1 = [] - - aaccepted_ampl_2 = [] - aaccepted_time_2 = [] - - while pos_Ch1 < length_Ch1 and pos_Ch2 < length_Ch2: - diff = Ch1_TIME[pos_Ch1] - Ch2_TIME[pos_Ch2] - if abs(diff) <= t_window: - - aaccepted_ampl_1.append(Ch1_AMPL[pos_Ch1]) - aaccepted_time_1.append(Ch1_TIME[pos_Ch1]) - - aaccepted_ampl_2.append(Ch2_AMPL[pos_Ch2]) - aaccepted_time_2.append(Ch2_TIME[pos_Ch2]) - - pos_Ch1 += 1 - pos_Ch2 += 1 - - elif diff < 0: - pos_Ch1 += 1 - else: - pos_Ch2 += 1 - - return aaccepted_time_1, aaccepted_time_2, aaccepted_ampl_1, aaccepted_ampl_2 - - -def COINC_3(Ch1_TIME, Ch2_TIME, Ch3_TIME, Ch1_AMPL, Ch2_AMPL, Ch3_AMPL, t_window): - - pos_Ch1, pos_Ch2, pos_Ch3 = 0, 0, 0 - - length_Ch1 = len(Ch1_AMPL) - length_Ch2 = len(Ch2_AMPL) - length_Ch3 = len(Ch3_AMPL) - - aaccepted_ampl_1 = [] - aaccepted_time_1 = [] - - aaccepted_ampl_2 = [] - aaccepted_time_2 = [] - - aaccepted_ampl_3 = [] - aaccepted_time_3 = [] +def coinc_2( + ch1_times: Union[list, np.ndarray], + ch2_times: Union[list, np.ndarray], + ch1_ampl: Union[list, np.ndarray], + ch2_ampl: Union[list, np.ndarray], + t_window: float, +) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]: + """ + Find coincidences between two channels within a specified time window. + For each Ch1 time, find similar times in Ch2 within the time window. + The function returns the matched times and amplitudes for both channels. - while pos_Ch1 < length_Ch1 and pos_Ch2 < length_Ch2 and pos_Ch3 < length_Ch3: - min_val = min(Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2], Ch3_TIME[pos_Ch3]) - max_val = max(Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2], Ch3_TIME[pos_Ch3]) + Args: + ch1_times: the times of events in channel 1 + ch2_times: the times of events in channel 2 + ch1_ampl: the amplitudes of events in channel 1 + ch2_ampl: the amplitudes of events in channel 2 + t_window: the time window for coincidence detection (in seconds) - if max_val - min_val <= t_window: - aaccepted_ampl_1.append(Ch1_AMPL[pos_Ch1]) - aaccepted_time_1.append(Ch1_TIME[pos_Ch1]) + Returns: + A tuple of four NumPy arrays: + - matched Ch1 times + - matched Ch2 times + - matched Ch1 amplitudes + - matched Ch2 amplitudes + """ + ch1_times = np.asarray(ch1_times) + ch2_times = np.asarray(ch2_times) + ch1_ampl = np.asarray(ch1_ampl) + ch2_ampl = np.asarray(ch2_ampl) - aaccepted_ampl_2.append(Ch2_AMPL[pos_Ch2]) - aaccepted_time_2.append(Ch2_TIME[pos_Ch2]) + # For each Ch1 time, find window in Ch2 where match is possible + idx_start = np.searchsorted(ch2_times, ch1_times - t_window, side="left") + idx_end = np.searchsorted(ch2_times, ch1_times + t_window, side="right") - aaccepted_ampl_3.append(Ch3_AMPL[pos_Ch3]) - aaccepted_time_3.append(Ch3_TIME[pos_Ch3]) + # Keep only those with at least one match + has_match = idx_start < idx_end - pos_Ch1 += 1 - pos_Ch2 += 1 - pos_Ch3 += 1 - else: - if min_val == Ch1_TIME[pos_Ch1]: - pos_Ch1 += 1 - if min_val == Ch2_TIME[pos_Ch2]: - pos_Ch2 += 1 - if min_val == Ch3_TIME[pos_Ch3]: - pos_Ch3 += 1 + matched_Ch1_idx = np.flatnonzero(has_match) + matched_Ch2_idx = idx_start[has_match] # First match only return ( - aaccepted_time_1, - aaccepted_time_2, - aaccepted_time_3, - aaccepted_ampl_1, - aaccepted_ampl_2, - aaccepted_ampl_3, + ch1_times[matched_Ch1_idx], + ch2_times[matched_Ch2_idx], + ch1_ampl[matched_Ch1_idx], + ch2_ampl[matched_Ch2_idx], ) -def COINC_4( - Ch1_TIME, - Ch2_TIME, - Ch3_TIME, - Ch4_TIME, - Ch1_AMPL, - Ch2_AMPL, - Ch3_AMPL, - Ch4_AMPL, - t_window, -): - - pos_Ch1, pos_Ch2, pos_Ch3, pos_Ch4 = 0, 0, 0, 0 - - length_A = len(Ch1_AMPL) - length_B = len(Ch2_AMPL) - length_C = len(Ch3_AMPL) - length_D = len(Ch4_AMPL) +def coinc_3( + ch1_times: Union[list, np.ndarray], + ch2_times: Union[list, np.ndarray], + ch3_times: Union[list, np.ndarray], + ch1_ampl: Union[list, np.ndarray], + ch2_ampl: Union[list, np.ndarray], + ch3_ampl: Union[list, np.ndarray], + t_window: float, +) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray]: + """ + Find coincidences between three channels within a specified time window. + For each Ch1 time, find similar times in Ch2 and Ch3 within the time window. + The function returns the matched times and amplitudes for all three channels. + Args: + ch1_times: the times of events in channel 1 + ch2_times: the times of events in channel 2 + ch3_times: the times of events in channel 3 + ch1_ampl: the amplitudes of events in channel 1 + ch2_ampl: the amplitudes of events in channel 2 + ch3_ampl: the amplitudes of events in channel 3 + t_window: the time window for coincidence detection (in seconds) + Returns: + A tuple of six NumPy arrays: + - matched Ch1 times + - matched Ch2 times + - matched Ch3 times + - matched Ch1 amplitudes + - matched Ch2 amplitudes + - matched Ch3 amplitudes + """ + ch1_times = np.asarray(ch1_times) + ch2_times = np.asarray(ch2_times) + ch3_times = np.asarray(ch3_times) + ch1_ampl = np.asarray(ch1_ampl) + ch2_ampl = np.asarray(ch2_ampl) + ch3_ampl = np.asarray(ch3_ampl) + + # For each Ch1 time, find window in Ch2 and Ch3 + idx_start_2 = np.searchsorted(ch2_times, ch1_times - t_window, side="left") + idx_end_2 = np.searchsorted(ch2_times, ch1_times + t_window, side="right") + + idx_start_3 = np.searchsorted(ch3_times, ch1_times - t_window, side="left") + idx_end_3 = np.searchsorted(ch3_times, ch1_times + t_window, side="right") + + # Valid coincidences: Ch1 has at least one match in both Ch2 and Ch3 + has_match = (idx_start_2 < idx_end_2) & (idx_start_3 < idx_end_3) + matched_Ch1_idx = np.flatnonzero(has_match) + matched_Ch2_idx = idx_start_2[has_match] + matched_Ch3_idx = idx_start_3[has_match] - aaccepted_ampl_1 = [] - aaccepted_time_1 = [] + return ( + ch1_times[matched_Ch1_idx], + ch2_times[matched_Ch2_idx], + ch3_times[matched_Ch3_idx], + ch1_ampl[matched_Ch1_idx], + ch2_ampl[matched_Ch2_idx], + ch3_ampl[matched_Ch3_idx], + ) - aaccepted_ampl_2 = [] - aaccepted_time_2 = [] - aaccepted_ampl_3 = [] - aaccepted_time_3 = [] +def coinc_4( + ch1_times: Union[list, np.ndarray], + ch2_times: Union[list, np.ndarray], + ch3_times: Union[list, np.ndarray], + ch4_times: Union[list, np.ndarray], + ch1_ampl: Union[list, np.ndarray], + ch2_ampl: Union[list, np.ndarray], + ch3_ampl: Union[list, np.ndarray], + ch4_ampl: Union[list, np.ndarray], + t_window: float, +) -> Tuple[ + np.ndarray, + np.ndarray, + np.ndarray, + np.ndarray, + np.ndarray, + np.ndarray, + np.ndarray, + np.ndarray, +]: + """ + Find coincidences between four channels within a specified time window. + For each Ch1 time, find similar times in Ch2, Ch3, and Ch4 within the time window. + The function returns the matched times and amplitudes for all four channels. - aaccepted_ampl_4 = [] - aaccepted_time_4 = [] + Args: + ch1_times: the times of events in channel 1 + ch2_times: the times of events in channel 2 + ch3_times: the times of events in channel 3 + ch4_times: the times of events in channel 4 + ch1_ampl: the amplitudes of events in channel 1 + ch2_ampl: the amplitudes of events in channel 2 + ch3_ampl: the amplitudes of events in channel 3 + ch4_ampl: the amplitudes of events in channel 4 + t_window: the time window for coincidence detection (in seconds) - while ( - pos_Ch1 < length_A - and pos_Ch2 < length_B - and pos_Ch3 < length_C - and pos_Ch4 < length_D - ): - min_val = min( - Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2], Ch3_TIME[pos_Ch3], Ch4_TIME[pos_Ch4] - ) - max_val = max( - Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2], Ch3_TIME[pos_Ch3], Ch4_TIME[pos_Ch4] - ) + Returns: + A tuple of eight NumPy arrays: + - matched Ch1 times + - matched Ch2 times + - matched Ch3 times + - matched Ch4 times + - matched Ch1 amplitudes + - matched Ch2 amplitudes + - matched Ch3 amplitudes + - matched Ch4 amplitudes + """ + # Convert to NumPy arrays + ch1_times = np.asarray(ch1_times) + ch2_times = np.asarray(ch2_times) + ch3_times = np.asarray(ch3_times) + ch4_times = np.asarray(ch4_times) + ch1_ampl = np.asarray(ch1_ampl) + ch2_ampl = np.asarray(ch2_ampl) + ch3_ampl = np.asarray(ch3_ampl) + ch4_ampl = np.asarray(ch4_ampl) + + # For each Ch1 event, find index range in Ch2/Ch3/Ch4 within time window + idx_start_2 = np.searchsorted(ch2_times, ch1_times - t_window, side="left") + idx_end_2 = np.searchsorted(ch2_times, ch1_times + t_window, side="right") + + idx_start_3 = np.searchsorted(ch3_times, ch1_times - t_window, side="left") + idx_end_3 = np.searchsorted(ch3_times, ch1_times + t_window, side="right") + + idx_start_4 = np.searchsorted(ch4_times, ch1_times - t_window, side="left") + idx_end_4 = np.searchsorted(ch4_times, ch1_times + t_window, side="right") + + # Valid coincidences must have at least one match in Ch2, Ch3, and Ch4 + has_match = ( + (idx_start_2 < idx_end_2) + & (idx_start_3 < idx_end_3) + & (idx_start_4 < idx_end_4) + ) - if max_val - min_val <= t_window: - aaccepted_ampl_1.append(Ch1_AMPL[pos_Ch1]) - aaccepted_time_1.append(Ch1_TIME[pos_Ch1]) - - aaccepted_ampl_2.append(Ch2_AMPL[pos_Ch2]) - aaccepted_time_2.append(Ch2_TIME[pos_Ch2]) - - aaccepted_ampl_3.append(Ch3_AMPL[pos_Ch3]) - aaccepted_time_3.append(Ch3_TIME[pos_Ch3]) - - aaccepted_ampl_4.append(Ch4_AMPL[pos_Ch4]) - aaccepted_time_4.append(Ch4_TIME[pos_Ch4]) - - pos_Ch1 += 1 - pos_Ch2 += 1 - pos_Ch3 += 1 - pos_Ch4 += 1 - else: - if min_val == Ch1_TIME[pos_Ch1]: - pos_Ch1 += 1 - if min_val == Ch2_TIME[pos_Ch2]: - pos_Ch2 += 1 - if min_val == Ch3_TIME[pos_Ch3]: - pos_Ch3 += 1 - if min_val == Ch4_TIME[pos_Ch4]: - pos_Ch4 += 1 + matched_Ch1_idx = np.flatnonzero(has_match) + matched_Ch2_idx = idx_start_2[has_match] + matched_Ch3_idx = idx_start_3[has_match] + matched_Ch4_idx = idx_start_4[has_match] return ( - aaccepted_time_1, - aaccepted_time_2, - aaccepted_time_3, - aaccepted_time_4, - aaccepted_ampl_1, - aaccepted_ampl_2, - aaccepted_ampl_3, - aaccepted_ampl_4, + ch1_times[matched_Ch1_idx], + ch2_times[matched_Ch2_idx], + ch3_times[matched_Ch3_idx], + ch4_times[matched_Ch4_idx], + ch1_ampl[matched_Ch1_idx], + ch2_ampl[matched_Ch2_idx], + ch3_ampl[matched_Ch3_idx], + ch4_ampl[matched_Ch4_idx], ) -def COINC_2_ANTI_1( - Ch1_TIME, Ch2_TIME, Ch3_TIME, Ch1_AMPL, Ch2_AMPL, Ch3_AMPL, t_window -): - - pos_Ch1, pos_Ch2, pos_Ch3 = 0, 0, 0 +def coinc_2_anti_1( + ch1_times: Union[list, np.ndarray], + ch2_times: Union[list, np.ndarray], + ch3_times: Union[list, np.ndarray], + ch1_ampl: Union[list, np.ndarray], + ch2_ampl: Union[list, np.ndarray], + t_window: float, +) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]: + """ + Find coincidences between two channels (Ch1 and Ch2) and check for anti-coincidence with a third channel (Ch3). + For each Ch1 time, find similar times in Ch2 within the time window and check if there are any Ch3 events in that window. + The function returns the matched times and amplitudes for Ch1 and Ch2, excluding any events that coincide with Ch3. - length_Ch1 = len(Ch1_AMPL) - length_Ch2 = len(Ch2_AMPL) - length_Ch3 = len(Ch3_TIME) + Args: + ch1_times: the times of events in channel 1 + ch2_times: the times of events in channel 2 + ch3_times: the times of events in channel 3 + ch1_ampl: the amplitudes of events in channel 1 + ch2_ampl: the amplitudes of events in channel 2 + t_window: the time window for coincidence detection (in seconds) - aaccepted_ampl_1 = [] - aaccepted_time_1 = [] + Returns: + A tuple of four NumPy arrays: + - matched Ch1 times + - matched Ch2 times + - matched Ch1 amplitudes + - matched Ch2 amplitudes + """ + ch1_times = np.asarray(ch1_times) + ch2_times = np.asarray(ch2_times) + ch3_times = np.asarray(ch3_times) + ch1_ampl = np.asarray(ch1_ampl) + ch2_ampl = np.asarray(ch2_ampl) + + # Step 1: Find all time differences + time_diff = np.abs(ch1_times[:, None] - ch2_times[None, :]) + match_indices = np.where(time_diff <= t_window) + i1 = match_indices[0] + i2 = match_indices[1] + + if len(i1) == 0: + return np.array([]), np.array([]), np.array([]), np.array([]) + + # Step 2: Compute t_min and t_max for matched pairs + t_min = np.minimum(ch1_times[i1], ch2_times[i2]) + t_max = t_min + t_window + + # Step 3: Use searchsorted to check if any Ch3 event is in [t_min, t_max] + idx_start = np.searchsorted(ch3_times, t_min, side="left") + idx_end = np.searchsorted(ch3_times, t_max, side="right") + is_anticoinc = idx_start == idx_end # True if no Ch3 event in window + + # Step 4: Return only accepted coincidences + return ( + ch1_times[i1[is_anticoinc]], + ch2_times[i2[is_anticoinc]], + ch1_ampl[i1[is_anticoinc]], + ch2_ampl[i2[is_anticoinc]], + ) - aaccepted_ampl_2 = [] - aaccepted_time_2 = [] - while pos_Ch1 < length_Ch1 and pos_Ch2 < length_Ch2: - min_val = min(Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2]) - max_val = max(Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2]) +def coinc_3_anti_1( + ch1_times: Union[list, np.ndarray], + ch2_times: Union[list, np.ndarray], + ch3_times: Union[list, np.ndarray], + ch4_times: Union[list, np.ndarray], + ch1_ampl: Union[list, np.ndarray], + ch2_ampl: Union[list, np.ndarray], + ch3_ampl: Union[list, np.ndarray], + t_window: float, +) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray]: + """ + Find coincidences between three channels (Ch1, Ch2, and Ch3) and check for anti-coincidence with a fourth channel (Ch4). + For each Ch1 time, find similar times in Ch2 and Ch3 within the time window and check if there are any Ch4 events in that window. + The function returns the matched times and amplitudes for Ch1, Ch2, and Ch3, excluding any events that coincide with Ch4. - CH3_IS_ANTI = True - while Ch3_TIME[pos_Ch3] <= min_val + t_window: - if Ch3_TIME[pos_Ch3] >= min_val: - CH3_IS_ANTI = False - break + Args: + ch1_times: the times of events in channel 1 + ch2_times: the times of events in channel 2 + ch3_times: the times of events in channel 3 + ch4_times: the times of events in channel 4 + ch1_ampl: the amplitudes of events in channel 1 + ch2_ampl: the amplitudes of events in channel 2 + ch3_ampl: the amplitudes of events in channel 3 + t_window: the time window for coincidence detection (in seconds) - if pos_Ch3 < length_Ch3 - 1: - pos_Ch3 += 1 - else: - break + Returns: + A tuple of six NumPy arrays: + - matched Ch1 times + - matched Ch2 times + - matched Ch3 times + - matched Ch1 amplitudes + - matched Ch2 amplitudes + - matched Ch3 amplitudes + """ - if max_val - min_val <= t_window and CH3_IS_ANTI: + ch1_times = np.asarray(ch1_times) + ch2_times = np.asarray(ch2_times) + ch3_times = np.asarray(ch3_times) + ch4_times = np.sort(np.asarray(ch4_times)) # must be sorted for searchsorted + + ch1_ampl = np.asarray(ch1_ampl) + ch2_ampl = np.asarray(ch2_ampl) + ch3_ampl = np.asarray(ch3_ampl) + + # Step 1: Coincidences between Ch1 and Ch2 + diff12 = np.abs(ch1_times[:, None] - ch2_times[None, :]) + i1, i2 = np.where(diff12 <= t_window) + + if len(i1) == 0: + return ( + np.array([]), + np.array([]), + np.array([]), + np.array([]), + np.array([]), + np.array([]), + ) - aaccepted_ampl_1.append(Ch1_AMPL[pos_Ch1]) - aaccepted_time_1.append(Ch1_TIME[pos_Ch1]) + # Step 2: Now for each (Ch1, Ch2) pair, find matching Ch3 + t12_avg = 0.5 * (ch1_times[i1] + ch2_times[i2]) + diff13 = np.abs(t12_avg[:, None] - ch3_times[None, :]) + i_comb, i3 = np.where(diff13 <= t_window) + + # Keep only valid triplets (Ch1[i1[i_comb]], Ch2[i2[i_comb]], Ch3[i3]) + if len(i_comb) == 0: + return ( + np.array([]), + np.array([]), + np.array([]), + np.array([]), + np.array([]), + np.array([]), + ) - aaccepted_ampl_2.append(Ch2_AMPL[pos_Ch2]) - aaccepted_time_2.append(Ch2_TIME[pos_Ch2]) + final_i1 = i1[i_comb] + final_i2 = i2[i_comb] + final_i3 = i3 - pos_Ch1 += 1 - pos_Ch2 += 1 + # Step 3: Anti-coincidence with Ch4 + t_min = np.minimum.reduce( + [ch1_times[final_i1], ch2_times[final_i2], ch3_times[final_i3]] + ) + t_max = t_min + t_window - else: - if min_val == Ch1_TIME[pos_Ch1]: - pos_Ch1 += 1 - if min_val == Ch2_TIME[pos_Ch2]: - pos_Ch2 += 1 + idx_start = np.searchsorted(ch4_times, t_min, side="left") + idx_end = np.searchsorted(ch4_times, t_max, side="right") + is_anticoinc = idx_start == idx_end - return aaccepted_time_1, aaccepted_time_2, aaccepted_ampl_1, aaccepted_ampl_2 + # Step 4: Return accepted triples (not coincident with Ch4) + return ( + ch1_times[final_i1[is_anticoinc]], + ch2_times[final_i2[is_anticoinc]], + ch3_times[final_i3[is_anticoinc]], + ch1_ampl[final_i1[is_anticoinc]], + ch2_ampl[final_i2[is_anticoinc]], + ch3_ampl[final_i3[is_anticoinc]], + ) -def COINC_3_ANTI_1( - Ch1_TIME, - Ch2_TIME, - Ch3_TIME, - Ch4_TIME, - Ch1_AMPL, - Ch2_AMPL, - Ch3_AMPL, - Ch4_AMPL, - t_window, -): - pos_Ch1, pos_Ch2, pos_Ch3, pos_Ch4 = 0, 0, 0, 0 +def coinc_2_anti_2( + ch1_times: Union[list, np.ndarray], + ch2_times: Union[list, np.ndarray], + ch3_times: Union[list, np.ndarray], + ch4_times: Union[list, np.ndarray], + ch1_ampl: Union[list, np.ndarray], + ch2_ampl: Union[list, np.ndarray], + t_window: float, +) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]: + """ + Find coincidences between two channels (Ch1 and Ch2) and check for anti-coincidence with two other channels (Ch3 and Ch4). + For each Ch1 time, find similar times in Ch2 within the time window and check if there are any Ch3 or Ch4 events in that window. + The function returns the matched times and amplitudes for Ch1 and Ch2, excluding any events that coincide with Ch3 or Ch4. - length_Ch1 = len(Ch1_AMPL) - length_Ch2 = len(Ch2_AMPL) - length_Ch3 = len(Ch3_AMPL) - length_Ch4 = len(Ch4_TIME) + Args: + ch1_times: the times of events in channel 1 + ch2_times: the times of events in channel 2 + ch3_times: the times of events in channel 3 + ch4_times: the times of events in channel 4 + ch1_ampl: the amplitudes of events in channel 1 + ch2_ampl: the amplitudes of events in channel 2 + t_window: the time window for coincidence detection (in seconds) - aaccepted_ampl_1 = [] - aaccepted_time_1 = [] + Returns: + A tuple of four NumPy arrays: + - matched Ch1 times + - matched Ch2 times + - matched Ch1 amplitudes + - matched Ch2 amplitudes + """ - aaccepted_ampl_2 = [] - aaccepted_time_2 = [] + ch1_times = np.asarray(ch1_times) + ch2_times = np.asarray(ch2_times) + ch3_times = np.asarray(ch3_times) + ch4_times = np.asarray(ch4_times) - aaccepted_ampl_3 = [] - aaccepted_time_3 = [] + ch1_ampl = np.asarray(ch1_ampl) + ch2_ampl = np.asarray(ch2_ampl) - while pos_Ch1 < length_Ch1 and pos_Ch2 < length_Ch2 and pos_Ch3 < length_Ch3: - min_val = min(Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2], Ch3_TIME[pos_Ch3]) - max_val = max(Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2], Ch3_TIME[pos_Ch3]) + # Step 1: Find all coincidences between Ch1 and Ch2 + diff12 = np.abs(ch1_times[:, None] - ch2_times[None, :]) + i1, i2 = np.where(diff12 <= t_window) - CH4_IS_ANTI = True - while Ch4_TIME[pos_Ch4] <= min_val + t_window: - if Ch4_TIME[pos_Ch4] >= min_val: - CH4_IS_ANTI = False - break + if len(i1) == 0: + return np.array([]), np.array([]), np.array([]), np.array([]) - if pos_Ch4 < length_Ch4 - 1: - pos_Ch4 += 1 - else: - break + t_min = np.minimum(ch1_times[i1], ch2_times[i2]) + t_max = t_min + t_window - if max_val - min_val <= t_window and CH4_IS_ANTI: - aaccepted_ampl_1.append(Ch1_AMPL[pos_Ch1]) - aaccepted_time_1.append(Ch1_TIME[pos_Ch1]) + # Step 2: Check anti-coincidence with Ch3 + idx3_start = np.searchsorted(ch3_times, t_min, side="left") + idx3_end = np.searchsorted(ch3_times, t_max, side="right") + anticoinc_3 = idx3_start == idx3_end - aaccepted_ampl_2.append(Ch2_AMPL[pos_Ch2]) - aaccepted_time_2.append(Ch2_TIME[pos_Ch2]) + # Step 3: Check anti-coincidence with Ch4 + idx4_start = np.searchsorted(ch4_times, t_min, side="left") + idx4_end = np.searchsorted(ch4_times, t_max, side="right") + anticoinc_4 = idx4_start == idx4_end - aaccepted_ampl_3.append(Ch3_AMPL[pos_Ch3]) - aaccepted_time_3.append(Ch3_TIME[pos_Ch3]) + is_anticoinc = anticoinc_3 & anticoinc_4 - pos_Ch1 += 1 - pos_Ch2 += 1 - pos_Ch3 += 1 - else: - if min_val == Ch1_TIME[pos_Ch1]: - pos_Ch1 += 1 - if min_val == Ch2_TIME[pos_Ch2]: - pos_Ch2 += 1 - if min_val == Ch3_TIME[pos_Ch3]: - pos_Ch3 += 1 + final_i1 = i1[is_anticoinc] + final_i2 = i2[is_anticoinc] return ( - aaccepted_time_1, - aaccepted_time_2, - aaccepted_time_3, - aaccepted_ampl_1, - aaccepted_ampl_2, - aaccepted_ampl_3, + ch1_times[final_i1], + ch2_times[final_i2], + ch1_ampl[final_i1], + ch2_ampl[final_i2], ) -def COINC_2_ANTI_2( - Ch1_TIME, - Ch2_TIME, - Ch3_TIME, - Ch4_TIME, - Ch1_AMPL, - Ch2_AMPL, - Ch3_AMPL, - Ch4_AMPL, - t_window, +def process_coincidence( + grouped_data: List[List[Union[np.ndarray, list]]], + coincidence_channels: List[int], + t_window: float, + coincidence_function: callable, ): - # Ch3 and 4 is anti - - pos_Ch1, pos_Ch2, pos_Ch3, pos_Ch4 = 0, 0, 0, 0 - - length_Ch1 = len(Ch1_AMPL) - length_Ch2 = len(Ch2_AMPL) - length_Ch3 = len(Ch3_TIME) - length_Ch4 = len(Ch4_TIME) + """ + Process coincidence for the given channels using the specified coincidence function. - aaccepted_ampl_1 = [] - aaccepted_time_1 = [] + Args: + grouped_data: List of grouped data for all channels. + coincidence_channels: Indices of the channels involved in coincidence. + t_window: Time window for coincidence detection. + coincidence_function: Function to calculate coincidence. - aaccepted_ampl_2 = [] - aaccepted_time_2 = [] + Returns: + Result of the coincidence function. + """ + data = [grouped_data[i] for i in coincidence_channels] + times = [d[0] for d in data] + amplitudes = [d[1] for d in data] - while pos_Ch1 < length_Ch1 and pos_Ch2 < length_Ch2: - min_val = min(Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2]) - max_val = max(Ch1_TIME[pos_Ch1], Ch2_TIME[pos_Ch2]) + return coincidence_function(*times, *amplitudes, t_window) - CH3_IS_ANTI = True - while Ch3_TIME[pos_Ch3] <= min_val + t_window: - if Ch3_TIME[pos_Ch3] >= min_val: - CH3_IS_ANTI = False - break - if pos_Ch3 < length_Ch3 - 1: - pos_Ch3 += 1 - else: - break +def process_anti_coincidence( + grouped_data: List[List[Union[np.ndarray, list]]], + coincidence_channels: List[int], + anti_channels: List[int], + t_window: float, + anti_function: callable, +): + """ + Process coincidence with anti-coincidence for the given channels. - CH4_IS_ANTI = True - while Ch4_TIME[pos_Ch4] <= min_val + t_window: - if Ch4_TIME[pos_Ch4] >= min_val: - CH4_IS_ANTI = False - break + Args: + grouped_data: List of grouped data for all channels. + coincidence_channels: Indices of the channels involved in coincidence. + anti_channels: Indices of the channels involved in anti-coincidence. + t_window: Time window for coincidence detection. + anti_function: Function to calculate coincidence with anti-coincidence. - if pos_Ch4 < length_Ch4 - 1: - pos_Ch4 += 1 - else: - break + Returns: + Result of the anti-coincidence function. + """ + coinc_data = [grouped_data[i] for i in coincidence_channels] + anti_data = [grouped_data[i] for i in anti_channels] - if max_val - min_val <= t_window and CH3_IS_ANTI and CH4_IS_ANTI: + coinc_times = [d[0] for d in coinc_data] + coinc_amplitudes = [d[1] for d in coinc_data] - aaccepted_ampl_1.append(Ch1_AMPL[pos_Ch1]) - aaccepted_time_1.append(Ch1_TIME[pos_Ch1]) + anti_times = [d[0] for d in anti_data] - aaccepted_ampl_2.append(Ch2_AMPL[pos_Ch2]) - aaccepted_time_2.append(Ch2_TIME[pos_Ch2]) + return anti_function(*coinc_times, *anti_times, *coinc_amplitudes, t_window) - pos_Ch1 += 1 - pos_Ch2 += 1 - else: - if min_val == Ch1_TIME[pos_Ch1]: - pos_Ch1 += 1 - if min_val == Ch2_TIME[pos_Ch2]: - pos_Ch2 += 1 - return aaccepted_time_1, aaccepted_time_2, aaccepted_ampl_1, aaccepted_ampl_2 +def calculate_coincidence( + A_time: Union[list, np.ndarray], + A_ampl: Union[list, np.ndarray], + B_time: Union[list, np.ndarray], + B_ampl: Union[list, np.ndarray], + C_time: Union[list, np.ndarray], + C_ampl: Union[list, np.ndarray], + D_time: Union[list, np.ndarray], + D_ampl: Union[list, np.ndarray], + coincidence_window: float, + coincidence_citeria: Union[list, np.ndarray], +) -> pd.DataFrame: + """ + Calculate the coincidence spectrum of the PRT detector. + The function takes the time and amplitude data for four channels (A, B, C, D) and + applies the specified coincidence criteria to find coincidences and anti-coincidences. + The results are returned as a pandas DataFrame. + Args: + A_time: time values for channel A + A_ampl: amplitude values for channel A + B_time: time values for channel B + B_ampl: amplitude values for channel B + C_time: time values for channel C + C_ampl: amplitude values for channel C + D_time: time values for channel D + D_ampl: amplitude values for channel D + coincidence_window: time window for coincidence detection (in seconds) + coincidence_citeria: criteria for coincidence and anti-coincidence + 0: ignore + 1: coincidence + 2: anti-coincidence -def calculate_coincidence( - A_time, - A_ampl, - B_time, - B_ampl, - C_time, - C_ampl, - D_time, - D_ampl, - coincidence_window, - coincidence_citeria, -): + Returns: + A pandas DataFrame containing the results of the coincidence analysis. + """ # Amplitude in mV # Time in s - Channel_names = ["A", "B", "C", "D"] + channel_names = ["A", "B", "C", "D"] coincidence_citeria = np.array(coincidence_citeria) grouped_data = [ @@ -492,254 +645,74 @@ def calculate_coincidence( [D_time, D_ampl], ] - number_of_ignore = len(np.where(np.array(coincidence_citeria) == 0)[0]) - number_of_coincidence = len(np.where(np.array(coincidence_citeria) == 1)[0]) - number_of_anti_coincidence = len(np.where(np.array(coincidence_citeria) == 2)[0]) + number_of_ignore = len(np.where(coincidence_citeria == 0)[0]) + number_of_coincidence = len(np.where(coincidence_citeria == 1)[0]) + number_of_anti_coincidence = len(np.where(coincidence_citeria == 2)[0]) + print( f"Ignore: {number_of_ignore}, Coincidence: {number_of_coincidence}, Anti-Coincidence: {number_of_anti_coincidence}" ) - # Coincidence between two data channels: - if number_of_coincidence == 2 and number_of_ignore == 2: - which_data_channels = np.where(coincidence_citeria == 1)[0] - - ch1 = Channel_names[which_data_channels[0]] - ch2 = Channel_names[which_data_channels[1]] - print(f"Coincidence between {ch1} and {ch2}") - first_data = grouped_data[which_data_channels[0]] - second_data = grouped_data[which_data_channels[1]] - - result = COINC_2( - first_data[0], - second_data[0], - first_data[1], - second_data[1], - t_window=coincidence_window, - ) + # Get indices of coincidence and anti-coincidence channels + coincidence_channels = np.where(coincidence_citeria == 1)[0] + anti_channels = np.where(coincidence_citeria == 2)[0] - df = pd.DataFrame( - { - f"{ch1}_time [s]": np.array(result[0]), - f"{ch1}_amplitude [mV]": np.array(result[2]), - f"{ch2}_time [s]": np.array(result[1]), - f"{ch2}_amplitude [mV]": np.array(result[3]), - "Sum_amplitude [mV]": np.array(result[2]) + np.array(result[3]), - } + # Handle different cases + if number_of_coincidence == 2 and number_of_anti_coincidence == 0: + result = process_coincidence( + grouped_data, coincidence_channels, coincidence_window, coinc_2 ) - return df - - # Coincidence between three data channels: - elif number_of_coincidence == 3 and number_of_ignore == 1: - which_data_channels = np.where(coincidence_citeria == 1)[0] - - ch1 = Channel_names[which_data_channels[0]] - ch2 = Channel_names[which_data_channels[1]] - ch3 = Channel_names[which_data_channels[2]] - - print(f"Coincidence between {ch1}, {ch2} and {ch3}") - first_data = grouped_data[which_data_channels[0]] - second_data = grouped_data[which_data_channels[1]] - third_data = grouped_data[which_data_channels[2]] - - result = COINC_3( - first_data[0], - second_data[0], - third_data[0], - first_data[1], - second_data[1], - third_data[1], - t_window=coincidence_window, + elif number_of_coincidence == 3 and number_of_anti_coincidence == 0: + result = process_coincidence( + grouped_data, coincidence_channels, coincidence_window, coinc_3 ) - - df = pd.DataFrame( - { - f"{ch1}_time [s]": np.array(result[0]), - f"{ch1}_amplitude [mV]": np.array(result[3]), - f"{ch2}_time [s]": np.array(result[1]), - f"{ch2}_amplitude [mV]": np.array(result[4]), - f"{ch3}_time [s]": np.array(result[2]), - f"{ch3}_amplitude [mV]": np.array(result[5]), - "Sum_amplitude [mV]": np.array(result[3]) - + np.array(result[4]) - + np.array(result[5]), - } - ) - return df - - # Coincidence between all four data channels: elif number_of_coincidence == 4: - which_data_channels = np.where(coincidence_citeria == 1)[0] - - ch1 = Channel_names[which_data_channels[0]] - ch2 = Channel_names[which_data_channels[1]] - ch3 = Channel_names[which_data_channels[2]] - ch4 = Channel_names[which_data_channels[3]] - - print(f"Coincidence between {ch1}, {ch2}, {ch3} and {ch4}") - first_data = grouped_data[which_data_channels[0]] - second_data = grouped_data[which_data_channels[1]] - third_data = grouped_data[which_data_channels[2]] - fourth_data = grouped_data[which_data_channels[3]] - - result = COINC_4( - first_data[0], - second_data[0], - third_data[0], - fourth_data[0], - first_data[1], - second_data[1], - third_data[1], - fourth_data[1], - t_window=coincidence_window, - ) - - df = pd.DataFrame( - { - f"{ch1}_time [s]": np.array(result[0]), - f"{ch1}_amplitude [mV]": np.array(result[4]), - f"{ch2}_time [s]": np.array(result[1]), - f"{ch2}_amplitude [mV]": np.array(result[5]), - f"{ch3}_time [s]": np.array(result[2]), - f"{ch3}_amplitude [mV]": np.array(result[6]), - f"{ch4}_time [s]": np.array(result[3]), - f"{ch4}_amplitude [mV]": np.array(result[7]), - "Sum_amplitude [mV]": np.array(result[4]) - + np.array(result[5]) - + np.array(result[6]) - + np.array(result[7]), - } + result = process_coincidence( + grouped_data, coincidence_channels, coincidence_window, coinc_4 ) - return df - - # Coincidence between two channels and anti-coincidence with a third one elif number_of_coincidence == 2 and number_of_anti_coincidence == 1: - which_coinc_data_channels = np.where(coincidence_citeria == 1)[0] - which_anti_data_channels = np.where(coincidence_citeria == 2)[0] - - # Coincidence channels: - ch1 = Channel_names[which_coinc_data_channels[0]] - ch2 = Channel_names[which_coinc_data_channels[1]] - - # Anti-coincidence channel - ch3 = Channel_names[which_anti_data_channels[0]] - - print(f"Coincidence between {ch1} and {ch2} and anti-coincidence with {ch3}") - first_data = grouped_data[which_coinc_data_channels[0]] - second_data = grouped_data[which_coinc_data_channels[1]] - - third_data = grouped_data[which_anti_data_channels[0]] - - result = COINC_2_ANTI_1( - first_data[0], - second_data[0], - third_data[0], - first_data[1], - second_data[1], - third_data[1], - t_window=coincidence_window, + result = process_anti_coincidence( + grouped_data, + coincidence_channels, + anti_channels, + coincidence_window, + coinc_2_anti_1, ) - - df = pd.DataFrame( - { - f"{ch1}_time [s]": np.array(result[0]), - f"{ch1}_amplitude [mV]": np.array(result[2]), - f"{ch2}_time [s]": np.array(result[1]), - f"{ch2}_amplitude [mV]": np.array(result[3]), - "Sum_amplitude [mV]": np.array(result[2]) + np.array(result[3]), - } - ) - return df - - # Coincidence between three channels and anti-coincidence with a fourth one elif number_of_coincidence == 3 and number_of_anti_coincidence == 1: - which_coinc_data_channels = np.where(coincidence_citeria == 1)[0] - which_anti_data_channels = np.where(coincidence_citeria == 2)[0] - - # Coincidence channels: - ch1 = Channel_names[which_coinc_data_channels[0]] - ch2 = Channel_names[which_coinc_data_channels[1]] - ch3 = Channel_names[which_coinc_data_channels[2]] - - # Anti-coincidence channel - ch4 = Channel_names[which_anti_data_channels[0]] - - print( - f"Coincidence between {ch1}, {ch2} and {ch3} and anti-coincidence with {ch4}" - ) - first_data = grouped_data[which_coinc_data_channels[0]] - second_data = grouped_data[which_coinc_data_channels[1]] - third_data = grouped_data[which_coinc_data_channels[2]] - - fourth_data = grouped_data[which_anti_data_channels[0]] - - result = COINC_3_ANTI_1( - first_data[0], - second_data[0], - third_data[0], - fourth_data[0], - first_data[1], - second_data[1], - third_data[1], - fourth_data[1], - t_window=coincidence_window, - ) - - df = pd.DataFrame( - { - f"{ch1}_time [s]": np.array(result[0]), - f"{ch1}_amplitude [mV]": np.array(result[3]), - f"{ch2}_time [s]": np.array(result[1]), - f"{ch2}_amplitude [mV]": np.array(result[4]), - f"{ch3}_time [s]": np.array(result[2]), - f"{ch3}_amplitude [mV]": np.array(result[5]), - "Sum_amplitude [mV]": np.array(result[3]) - + np.array(result[4]) - + np.array(result[5]), - } + result = process_anti_coincidence( + grouped_data, + coincidence_channels, + anti_channels, + coincidence_window, + coinc_3_anti_1, ) - return df - - # Coincidence between two channels and anti-coincidence with the remainign two channels elif number_of_coincidence == 2 and number_of_anti_coincidence == 2: - which_coinc_data_channels = np.where(coincidence_citeria == 1)[0] - which_anti_data_channels = np.where(coincidence_citeria == 2)[0] - - # Coincidence channels: - ch1 = Channel_names[which_coinc_data_channels[0]] - ch2 = Channel_names[which_coinc_data_channels[1]] - - # Anti-coincidence channel - ch3 = Channel_names[which_anti_data_channels[0]] - ch4 = Channel_names[which_anti_data_channels[1]] - - print( - f"Coincidence between {ch1} and {ch2} and anti-coincidence with {ch3} and {ch4} " + result = process_anti_coincidence( + grouped_data, + coincidence_channels, + anti_channels, + coincidence_window, + coinc_2_anti_2, ) - first_data = grouped_data[which_coinc_data_channels[0]] - second_data = grouped_data[which_coinc_data_channels[1]] - - third_data = grouped_data[which_anti_data_channels[0]] - fourth_data = grouped_data[which_anti_data_channels[1]] - - result = COINC_2_ANTI_2( - first_data[0], - second_data[0], - third_data[0], - fourth_data[0], - first_data[1], - second_data[1], - third_data[1], - fourth_data[1], - t_window=coincidence_window, + else: + raise ValueError("Unsupported combination of coincidence and anti-coincidence.") + + # Generate DataFrame dynamically + df_data = {} + for i, ch_idx in enumerate(coincidence_channels): + ch_name = channel_names[ch_idx] + df_data[f"{ch_name}_time [s]"] = np.array(result[i]) + df_data[f"{ch_name}_amplitude [mV]"] = np.array( + result[len(coincidence_channels) + i] ) - df = pd.DataFrame( - { - f"{ch1}_time [s]": np.array(result[0]), - f"{ch1}_amplitude [mV]": np.array(result[2]), - f"{ch2}_time [s]": np.array(result[1]), - f"{ch2}_amplitude [mV]": np.array(result[3]), - "Sum_amplitude [mV]": np.array(result[2]) + np.array(result[3]), - } + if number_of_anti_coincidence == 0: + df_data["Sum_amplitude [mV]"] = np.sum( + [ + np.array(result[len(coincidence_channels) + i]) + for i in range(len(coincidence_channels)) + ], + axis=0, ) - return df + + return pd.DataFrame(df_data) diff --git a/libra_toolbox/neutronics/__init__.py b/libra_toolbox/neutronics/__init__.py index c116466..a6cad33 100644 --- a/libra_toolbox/neutronics/__init__.py +++ b/libra_toolbox/neutronics/__init__.py @@ -1,2 +1,3 @@ from .neutron_source import * from .vault import * +import materials diff --git a/libra_toolbox/neutronics/materials.py b/libra_toolbox/neutronics/materials.py new file mode 100644 index 0000000..5d3cdea --- /dev/null +++ b/libra_toolbox/neutronics/materials.py @@ -0,0 +1,143 @@ +import openmc + + +def get_exp_cllif_density(temp, LiCl_frac=0.695): + """ Calculates density of ClLiF [g/cc] from temperature in Celsius + and molar concentration of LiCl. Valid for 660 C - 1000 C. + Source: + G. J. Janz, R. P. T. Tomkins, C. B. Allen; + Molten Salts: Volume 4, Part 4 + Mixed Halide Melts Electrical Conductance, Density, Viscosity, and Surface Tension Data. + J. Phys. Chem. Ref. Data 1 January 1979; 8 (1): 125–302. + https://doi.org/10.1063/1.555590 + """ + temp = temp + 273.15 # Convert temperature from Celsius to Kelvin + C = LiCl_frac * 100 # Convert molar concentration to molar percent + + a = 2.25621 + b = -8.20475e-3 + c = -4.09235e-4 + d = 6.37250e-5 + e = -2.52846e-7 + f = 8.73570e-9 + g = -5.11184e-10 + + rho = a + b * C + c * temp + d * C**2 \ + + e * C**3 + f * temp * C**2 + g * C * temp**2 + + return rho + + +# Define Materials +# Source: PNNL Materials Compendium April 2021 +# PNNL-15870, Rev. 2 +inconel625 = openmc.Material(name='Inconel 625') +inconel625.set_density('g/cm3', 8.44) +inconel625.add_element('C', 0.000990, 'wo') +inconel625.add_element('Al', 0.003960, 'wo') +inconel625.add_element('Si', 0.004950, 'wo') +inconel625.add_element('P', 0.000148, 'wo') +inconel625.add_element('S', 0.000148, 'wo') +inconel625.add_element('Ti', 0.003960, 'wo') +inconel625.add_element('Cr', 0.215000, 'wo') +inconel625.add_element('Mn', 0.004950, 'wo') +inconel625.add_element('Fe', 0.049495, 'wo') +inconel625.add_element('Co', 0.009899, 'wo') +inconel625.add_element('Ni', 0.580000, 'wo') +inconel625.add_element('Nb', 0.036500, 'wo') +inconel625.add_element('Mo', 0.090000, 'wo') + +# Stainless Steel 304 from PNNL Materials Compendium (PNNL-15870 Rev2) +SS304 = openmc.Material(name="Stainless Steel 304") +# SS304.temperature = 700 + 273 +SS304.add_element('C', 0.000800, "wo") +SS304.add_element('Mn', 0.020000, "wo") +SS304.add_element('P', 0.000450, "wo") +SS304.add_element('S', 0.000300, "wo") +SS304.add_element('Si', 0.010000, "wo") +SS304.add_element('Cr', 0.190000, "wo") +SS304.add_element('Ni', 0.095000, "wo") +SS304.add_element('Fe', 0.683450, "wo") +SS304.set_density("g/cm3", 8.00) + +# Using Microtherm with 1 a% Al2O3, 27 a% ZrO2, and 72 a% SiO2 +# https://www.foundryservice.com/product/microporous-silica-insulating-boards-mintherm-microtherm-1925of-grades/ +firebrick = openmc.Material(name="Firebrick") +# Estimate average temperature of Firebrick to be around 300 C +# Firebrick.temperature = 273 + 300 +firebrick.add_element('Al', 0.004, 'ao') +firebrick.add_element('O', 0.666, 'ao') +firebrick.add_element('Si', 0.240, 'ao') +firebrick.add_element('Zr', 0.090, 'ao') +firebrick.set_density('g/cm3', 0.30) + +# alumina insulation +# data from https://precision-ceramics.com/materials/alumina/ +alumina = openmc.Material(name='Alumina insulation') +alumina.add_element('O', 0.6, 'ao') +alumina.add_element('Al', 0.4, 'ao') +alumina.set_density('g/cm3', 3.98) + +# air +air = openmc.Material(name="Air") +air.add_element("C", 0.00012399, 'wo') +air.add_element('N', 0.75527, 'wo') +air.add_element('O', 0.23178, 'wo') +air.add_element('Ar', 0.012827, 'wo') +air.set_density('g/cm3', 0.0012) + +# epoxy +epoxy = openmc.Material(name='Epoxy') +epoxy.add_element('C', 0.70, 'wo') +epoxy.add_element('H', 0.08, 'wo') +epoxy.add_element('O', 0.15, 'wo') +epoxy.add_element('N', 0.07, 'wo') +epoxy.set_density('g/cm3', 1.2) + +# helium @5psig +pressure = 34473.8 # Pa ~ 5 psig +temperature = 300 # K +R_he = 2077 # J/(kg*K) +density = pressure / (R_he * temperature) # in kg/cm^3 +density *= 1 / 1000 # in g/cm^3 +he = openmc.Material(name="Helium") +he.add_element('He', 1.0, 'ao') +he.set_density('g/cm3', density) + +# PbLi - eutectic - natural - pure +pbli = openmc.Material(name="pbli") +pbli.add_element("Pb", 84.2, "ao") +pbli.add_element("Li", 15.2, "ao") +pbli.set_density("g/cm3", 11) + +# lif-bef - eutectic - natural - pure +flibe = openmc.Material(name="flibe") +flibe.add_element("Li", 2.0, "ao") +flibe.add_element("Be", 1.0, "ao") +flibe.add_element("F", 4.0, "ao") +flibe.set_density("g/cm3", 1.94) + +# lif-licl - eutectic - natural - pure +cllif_nat = openmc.Material(name='ClLiF natural') +LiCl_frac = 0.695 # at.fr. + +cllif_nat.add_element('F', .5*(1 - LiCl_frac), 'ao') +cllif_nat.add_element('Li', 1.0, 'ao') +cllif_nat.add_element('Cl', .5*LiCl_frac, 'ao') +cllif_nat.set_density('g/cm3', get_exp_cllif_density(650) + ) # 69.5 at. % LiCL at 650 C + +# lif-licl - eutectic - natural - EuF3 spiced +spicyclif = openmc.Material(name="spicyclif") +spicyclif.add_element("F", .15935, "wo") +spicyclif.add_element("Li", .17857, "wo") +spicyclif.add_element("Cl", .6340, "wo") +spicyclif.add_element("Eu", .0279, "wo") + +# FLiNaK - eutectic - natural - pure +flinak = openmc.Material(name="flinak") +flinak.add_element("F", 50, "ao") +flinak.add_element("Li", 23.25, "ao") +flinak.add_element("Na", 5.75, "ao") +flinak.add_element("K", 21, "ao") +flinak.set_density("g/cm3", 2.020) diff --git a/pyproject.toml b/pyproject.toml index 8b0e55d..0c88cb2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ description = "Design and analysis tools for LIBRA project" license = {file = "LICENSE"} requires-python = ">=3.10" dynamic = ["version"] -dependencies = ["numpy", "pint", "scipy", "matplotlib", "sympy", "pandas", "h5py"] +dependencies = ["numpy", "pint", "scipy", "matplotlib", "sympy", "pandas", "h5py", "uproot", "h5py"] [project.optional-dependencies] neutronics = ["openmc-data-downloader"] diff --git a/test/neutron_detection/compass_test_data/complete_measurement/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv b/test/neutron_detection/compass_test_data/complete_measurement/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv new file mode 100644 index 0000000..fadcce6 --- /dev/null +++ b/test/neutron_detection/compass_test_data/complete_measurement/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv @@ -0,0 +1,11 @@ +BOARD;CHANNEL;TIMETAG;ENERGY;ENERGYSHORT;FLAGS +0;5;234859459;2;2;0x4000 +0;5;421999310;0;1;0x4000 +0;5;535148093;1237;810;0x4000 +0;5;1623550122;589;396;0x4000 +0;5;5997211248;375;251;0x4000 +0;5;6685836624;515;340;0x4000 +0;5;11116032249;568;380;0x4000 +0;5;11281099382;1;0;0x4000 +0;5;12783039350;5;0;0x4000 +0;5;18306299412;2;0;0x4000 diff --git a/test/neutron_detection/compass_test_data/complete_measurement/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv b/test/neutron_detection/compass_test_data/complete_measurement/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv new file mode 100644 index 0000000..7c2f11b --- /dev/null +++ b/test/neutron_detection/compass_test_data/complete_measurement/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv @@ -0,0 +1,4 @@ +0;5;234859459;2;2;0x4000 +0;5;421999310;0;1;0x4000 +0;5;535148093;1237;810;0x4000 +0;5;1623550122;589;396;0x4000 diff --git a/test/neutron_detection/compass_test_data/complete_measurement/data/Hcompass_Co60_20241107.root b/test/neutron_detection/compass_test_data/complete_measurement/data/Hcompass_Co60_20241107.root new file mode 100755 index 0000000..1e3e2a2 Binary files /dev/null and b/test/neutron_detection/compass_test_data/complete_measurement/data/Hcompass_Co60_20241107.root differ diff --git a/test/neutron_detection/compass_test_data/complete_measurement/run.info b/test/neutron_detection/compass_test_data/complete_measurement/run.info new file mode 100644 index 0000000..b004182 --- /dev/null +++ b/test/neutron_detection/compass_test_data/complete_measurement/run.info @@ -0,0 +1,31 @@ +id=Co60_0_872uCi_19Marc2014_250319_run3 +time.start=2025/03/19 09:47:46.724-0400 +time.stop=2025/03/19 09:53:05.651-0400 +time.real=00:05:18 +board.0-14-292.readout.rate=51.149 kb/s +board.0-14-292.4.rejections.singles=0.0 +board.0-14-292.4.rejections.pileup=0.0 +board.0-14-292.4.rejections.saturation=1301.87 +board.0-14-292.4.rejections.energy=0.0 +board.0-14-292.4.rejections.psd=0.0 +board.0-14-292.4.rejections.timedistribution=0.0 +board.0-14-292.4.throughput=2627.31 +board.0-14-292.4.icr=3059.24 +board.0-14-292.4.ocr=1293.91 +board.0-14-292.4.calibration.energy.c0=0.0 +board.0-14-292.4.calibration.energy.c1=1.0 +board.0-14-292.4.calibration.energy.c2=0.0 +board.0-14-292.4.calibration.energy.uom=keV +board.0-14-292.5.rejections.singles=0.0 +board.0-14-292.5.rejections.pileup=0.0 +board.0-14-292.5.rejections.saturation=717.247 +board.0-14-292.5.rejections.energy=0.0 +board.0-14-292.5.rejections.psd=0.0 +board.0-14-292.5.rejections.timedistribution=0.0 +board.0-14-292.5.throughput=1694.65 +board.0-14-292.5.icr=1703.71 +board.0-14-292.5.ocr=984.476 +board.0-14-292.5.calibration.energy.c0=0.0 +board.0-14-292.5.calibration.energy.c1=1.0 +board.0-14-292.5.calibration.energy.c2=0.0 +board.0-14-292.5.calibration.energy.uom=keV diff --git a/test/neutron_detection/compass_test_data/complete_measurement_no_root/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv b/test/neutron_detection/compass_test_data/complete_measurement_no_root/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv new file mode 100644 index 0000000..fadcce6 --- /dev/null +++ b/test/neutron_detection/compass_test_data/complete_measurement_no_root/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv @@ -0,0 +1,11 @@ +BOARD;CHANNEL;TIMETAG;ENERGY;ENERGYSHORT;FLAGS +0;5;234859459;2;2;0x4000 +0;5;421999310;0;1;0x4000 +0;5;535148093;1237;810;0x4000 +0;5;1623550122;589;396;0x4000 +0;5;5997211248;375;251;0x4000 +0;5;6685836624;515;340;0x4000 +0;5;11116032249;568;380;0x4000 +0;5;11281099382;1;0;0x4000 +0;5;12783039350;5;0;0x4000 +0;5;18306299412;2;0;0x4000 diff --git a/test/neutron_detection/compass_test_data/complete_measurement_no_root/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv b/test/neutron_detection/compass_test_data/complete_measurement_no_root/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv new file mode 100644 index 0000000..7c2f11b --- /dev/null +++ b/test/neutron_detection/compass_test_data/complete_measurement_no_root/data/Data_CH1@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv @@ -0,0 +1,4 @@ +0;5;234859459;2;2;0x4000 +0;5;421999310;0;1;0x4000 +0;5;535148093;1237;810;0x4000 +0;5;1623550122;589;396;0x4000 diff --git a/test/neutron_detection/compass_test_data/complete_measurement_no_root/run.info b/test/neutron_detection/compass_test_data/complete_measurement_no_root/run.info new file mode 100644 index 0000000..b004182 --- /dev/null +++ b/test/neutron_detection/compass_test_data/complete_measurement_no_root/run.info @@ -0,0 +1,31 @@ +id=Co60_0_872uCi_19Marc2014_250319_run3 +time.start=2025/03/19 09:47:46.724-0400 +time.stop=2025/03/19 09:53:05.651-0400 +time.real=00:05:18 +board.0-14-292.readout.rate=51.149 kb/s +board.0-14-292.4.rejections.singles=0.0 +board.0-14-292.4.rejections.pileup=0.0 +board.0-14-292.4.rejections.saturation=1301.87 +board.0-14-292.4.rejections.energy=0.0 +board.0-14-292.4.rejections.psd=0.0 +board.0-14-292.4.rejections.timedistribution=0.0 +board.0-14-292.4.throughput=2627.31 +board.0-14-292.4.icr=3059.24 +board.0-14-292.4.ocr=1293.91 +board.0-14-292.4.calibration.energy.c0=0.0 +board.0-14-292.4.calibration.energy.c1=1.0 +board.0-14-292.4.calibration.energy.c2=0.0 +board.0-14-292.4.calibration.energy.uom=keV +board.0-14-292.5.rejections.singles=0.0 +board.0-14-292.5.rejections.pileup=0.0 +board.0-14-292.5.rejections.saturation=717.247 +board.0-14-292.5.rejections.energy=0.0 +board.0-14-292.5.rejections.psd=0.0 +board.0-14-292.5.rejections.timedistribution=0.0 +board.0-14-292.5.throughput=1694.65 +board.0-14-292.5.icr=1703.71 +board.0-14-292.5.ocr=984.476 +board.0-14-292.5.calibration.energy.c0=0.0 +board.0-14-292.5.calibration.energy.c1=1.0 +board.0-14-292.5.calibration.energy.c2=0.0 +board.0-14-292.5.calibration.energy.uom=keV diff --git a/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH15@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv b/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH15@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv new file mode 100644 index 0000000..fadcce6 --- /dev/null +++ b/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH15@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv @@ -0,0 +1,11 @@ +BOARD;CHANNEL;TIMETAG;ENERGY;ENERGYSHORT;FLAGS +0;5;234859459;2;2;0x4000 +0;5;421999310;0;1;0x4000 +0;5;535148093;1237;810;0x4000 +0;5;1623550122;589;396;0x4000 +0;5;5997211248;375;251;0x4000 +0;5;6685836624;515;340;0x4000 +0;5;11116032249;568;380;0x4000 +0;5;11281099382;1;0;0x4000 +0;5;12783039350;5;0;0x4000 +0;5;18306299412;2;0;0x4000 diff --git a/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH5@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv b/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH5@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv new file mode 100644 index 0000000..fadcce6 --- /dev/null +++ b/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH5@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2.csv @@ -0,0 +1,11 @@ +BOARD;CHANNEL;TIMETAG;ENERGY;ENERGYSHORT;FLAGS +0;5;234859459;2;2;0x4000 +0;5;421999310;0;1;0x4000 +0;5;535148093;1237;810;0x4000 +0;5;1623550122;589;396;0x4000 +0;5;5997211248;375;251;0x4000 +0;5;6685836624;515;340;0x4000 +0;5;11116032249;568;380;0x4000 +0;5;11281099382;1;0;0x4000 +0;5;12783039350;5;0;0x4000 +0;5;18306299412;2;0;0x4000 diff --git a/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH5@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv b/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH5@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv new file mode 100644 index 0000000..7c2f11b --- /dev/null +++ b/test/neutron_detection/compass_test_data/events/no_waveforms/Data_CH5@V1725_292_Co60_0_872uCi_19Mar2014_250318_run2_1.csv @@ -0,0 +1,4 @@ +0;5;234859459;2;2;0x4000 +0;5;421999310;0;1;0x4000 +0;5;535148093;1237;810;0x4000 +0;5;1623550122;589;396;0x4000 diff --git a/test/neutron_detection/compass_test_data/events/waveforms/Data_CH4@DT5725_1360_Co60_0_872uCi_19Mar2014_20241213_4in.CSV b/test/neutron_detection/compass_test_data/events/waveforms/Data_CH4@DT5725_1360_Co60_0_872uCi_19Mar2014_20241213_4in.CSV new file mode 100644 index 0000000..a4f58d2 --- /dev/null +++ b/test/neutron_detection/compass_test_data/events/waveforms/Data_CH4@DT5725_1360_Co60_0_872uCi_19Mar2014_20241213_4in.CSV @@ -0,0 +1,7 @@ +BOARD;CHANNEL;TIMETAG;ENERGY;ENERGYSHORT;FLAGS;PROBE_CODE;SAMPLES +0;4;80413091;1727;1407;0x4000;1;13153;13152;13149;13150;13156;13146;13154;13150;13153;13152;13152;13152;13148;13153;13153;13156;13157;13145;13154;13143;13151;13134;13119;13074;12992;12926;12834;12773;12707;12646;12603;12544;12520;12461;12438;12397;12383;12374;12388;12413;12404;12381;12386;12390;12361;12303;12308;12361;12379;12373;12394;12380;12420;12470;12494;12555;12589;12586;12614;12605;12597;12586;12602;12599;12594;12604;12637;12683;12688;12661;12646;12664;12692;12688;12669;12673;12697;12709;12720;12700;12706;12719;12704;12699;12709;12722;12724;12744;12773;12786;12798;12776;12768;12796;12804;12803;12801;12810;12818;12812;12800;12815;12803;12818;12842;12821;12818;12823;12856;12874;12859;12880;12905;12897;12899;12900;12909;12917;12916;12922;12924;12930;12956;12954;12963;12967;12964;12970;12971;12956;12953;12970;12987;12982;12991;12988;12981;12989;13004;12999;13013;12998;13004;13020;13018;13020;13018;13020;13030;13029;13046;13038;13035;13045;13037;13048;13041;13055;13051;13035;13045;13039;13050;13066;13066;13065;13069;13059;13062;13052;13058;13069;13069;13081;13073;13084;13083;13064;13084;13090;13087;13080;13078;13084;13081;13085;13099;13079;13082;13087;13088;13093;13087;13080;13067;13071;13072;13080;13091;13081 +0;4;849882747;613;499;0x4000;1;13147;13157;13147;13158;13155;13152;13153;13155;13153;13150;13157;13155;13152;13162;13144;13149;13159;13146;13153;13145;13143;13137;13092;13070;13043;13012;12989;12954;12935;12928;12933;12932;12921;12923;12915;12930;12932;12924;12917;12916;12915;12922;12915;12911;12907;12905;12885;12887;12910;12906;12910;12915;12895;12879;12873;12894;12904;12920;12940;12934;12943;12957;12956;12970;12965;12966;12963;12969;12971;12982;12978;12963;12988;13011;13003;12994;12993;12991;13009;13011;13012;13021;13020;13015;13010;12997;13006;13008;13016;13005;12999;13011;13007;13012;13018;13027;13029;13043;13058;13044;13044;13030;13035;13050;13041;13033;13028;13026;13036;13050;13043;13058;13068;13062;13063;13070;13069;13052;13064;13072;13073;13068;13070;13089;13087;13091;13086;13096;13094;13084;13093;13084;13084;13101;13112;13100;13088;13093;13090;13104;13099;13094;13100;13103;13095;13095;13099;13110;13103;13120;13109;13113;13112;13119;13113;13119;13125;13121;13130;13114;13126;13122;13117;13124;13108;13123;13120;13114;13112;13120;13125;13107;13122;13121;13122;13118;13117;13124;13126;13131;13129;13127;13117;13130;13127;13122;13135;13132;13137;13129;13123;13124;13127;13138;13122;13133;13134;13138;13147;13139 +0;4;2850906749;1539;1239;0x4000;1;13155;13154;13152;13155;13156;13148;13155;13155;13146;13160;13150;13148;13158;13159;13153;13148;13158;13150;13154;13148;13146;13138;13120;13082;13038;12986;12900;12826;12739;12676;12627;12574;12562;12541;12517;12502;12475;12464;12472;12489;12501;12512;12520;12530;12525;12510;12462;12460;12463;12482;12502;12505;12525;12550;12555;12566;12561;12577;12561;12574;12623;12657;12659;12661;12658;12673;12675;12659;12659;12674;12695;12701;12691;12684;12698;12727;12736;12747;12753;12769;12765;12749;12738;12774;12811;12814;12832;12847;12850;12864;12845;12841;12833;12832;12838;12838;12846;12861;12860;12865;12862;12851;12861;12894;12886;12900;12910;12913;12908;12915;12924;12920;12918;12912;12924;12923;12896;12911;12921;12937;12926;12922;12935;12961;12964;12972;12983;12999;12988;12975;12991;13012;13022;12998;13007;13004;12990;12997;13008;13002;13010;13029;13014;13018;13025;13039;13027;13029;13023;13019;13026;13040;13061;13059;13056;13051;13048;13057;13055;13059;13063;13062;13063;13060;13053;13054;13062;13080;13084;13087;13084;13073;13070;13079;13072;13087;13089;13094;13095;13086;13090;13081;13074;13077;13078;13088;13087;13105;13099;13106;13098;13101;13100;13086;13100;13101;13087;13090;13081;13090 +0;4;5758064121;1563;1258;0x4000;1;13155;13146;13148;13158;13143;13152;13146;13153;13157;13148;13159;13145;13154;13154;13148;13155;13148;13153;13154;13148;13145;13136;13105;13054;12994;12928;12847;12781;12722;12681;12621;12557;12514;12459;12437;12464;12459;12437;12427;12437;12421;12399;12408;12428;12442;12460;12476;12483;12496;12516;12546;12540;12528;12561;12611;12620;12616;12624;12615;12617;12637;12659;12665;12651;12659;12666;12649;12680;12661;12656;12686;12676;12682;12701;12745;12774;12779;12786;12771;12774;12766;12744;12749;12776;12791;12795;12801;12792;12806;12815;12817;12804;12809;12853;12848;12869;12874;12877;12883;12882;12911;12920;12918;12897;12892;12908;12894;12895;12877;12864;12906;12909;12927;12925;12931;12937;12930;12935;12934;12952;12957;12945;12940;12935;12924;12949;12949;12937;12952;12957;12979;12995;13003;13016;13015;13020;13013;13034;13014;13030;13033;13024;13040;13032;13016;13020;13013;13026;13020;13027;13038;13044;13037;13034;13040;13036;13040;13039;13034;13049;13051;13057;13064;13067;13065;13075;13073;13083;13072;13071;13083;13073;13079;13080;13074;13078;13072;13088;13078;13075;13081;13069;13079;13078;13062;13084;13071;13068;13080;13073;13094;13089;13085;13093;13093;13095;13097;13091;13095;13102 +0;4;6286463248;246;204;0x4000;1;13153;13153;13152;13158;13152;13153;13153;13155;13155;13151;13155;13155;13150;13147;13137;13111;13108;13101;13091;13088;13075;13083;13078;13064;13050;13036;13032;13030;13047;13046;13054;13061;13052;13066;13056;13062;13058;13045;13058;13064;13074;13070;13055;13064;13083;13066;13077;13068;13069;13077;13068;13089;13083;13074;13084;13080;13094;13085;13081;13072;13067;13072;13078;13086;13097;13098;13088;13075;13068;13065;13088;13080;13088;13099;13090;13098;13092;13084;13086;13073;13066;13073;13073;13092;13100;13102;13113;13098;13102;13103;13105;13108;13108;13117;13115;13120;13118;13125;13133;13116;13125;13120;13122;13132;13132;13128;13116;13113;13114;13111;13109;13123;13121;13118;13127;13122;13133;13123;13127;13130;13130;13140;13124;13125;13108;13131;13137;13138;13121;13108;13106;13111;13133;13139;13137;13151;13123;13125;13125;13124;13148;13144;13151;13131;13126;13134;13129;13137;13135;13146;13135;13139;13134;13135;13142;13141;13151;13143;13144;13139;13138;13141;13142;13146;13136;13150;13146;13147;13143;13134;13146;13142;13146;13146;13135;13150;13136;13141;13144;13136;13147;13142;13134;13147;13142;13137;13150;13140;13143;13157;13144;13157;13140;13141;13144;13136;13149;13145;13142;13142 +0;4;6518702279;1724;1404;0x4000;1;13155;13156;13159;13152;13161;13143;13161;13153;13150;13160;13150;13160;13154;13154;13145;13156;13158;13152;13158;13144;13149;13138;13118;13097;13020;12943;12839;12764;12694;12617;12574;12514;12456;12410;12422;12445;12424;12406;12396;12408;12408;12410;12414;12412;12434;12442;12465;12452;12489;12528;12550;12563;12541;12533;12504;12489;12493;12486;12493;12486;12505;12518;12541;12544;12550;12575;12596;12622;12639;12617;12604;12638;12666;12663;12674;12650;12629;12641;12678;12700;12692;12696;12705;12689;12696;12697;12692;12701;12730;12747;12773;12770;12785;12803;12802;12794;12801;12791;12793;12814;12851;12850;12840;12841;12856;12868;12887;12893;12900;12909;12909;12908;12889;12896;12898;12921;12933;12938;12940;12904;12905;12921;12946;12963;12959;12965;12969;12960;12975;12979;12996;13004;13008;13006;13002;13015;13024;13013;13013;13001;12996;13011;13000;13005;13013;13006;13018;13003;13011;13004;13021;13043;13037;13034;13038;13046;13048;13045;13049;13052;13059;13052;13050;13053;13057;13055;13051;13039;13038;13030;13055;13062;13051;13067;13084;13077;13083;13078;13078;13083;13081;13094;13085;13094;13100;13086;13080;13078;13078;13080;13094;13092;13096;13096;13104;13102;13105;13098;13102;13098 \ No newline at end of file diff --git a/test/neutron_detection/compass_test_data/events/waveforms/Data_CH4@DT5725_1360_Co60_0_872uCi_19Mar2014_20241213_4in_1.CSV b/test/neutron_detection/compass_test_data/events/waveforms/Data_CH4@DT5725_1360_Co60_0_872uCi_19Mar2014_20241213_4in_1.CSV new file mode 100644 index 0000000..9810254 --- /dev/null +++ b/test/neutron_detection/compass_test_data/events/waveforms/Data_CH4@DT5725_1360_Co60_0_872uCi_19Mar2014_20241213_4in_1.CSV @@ -0,0 +1,2 @@ +0;4;14300873206559;1700;1364;0x4000;1;13161;13144;13160;13152;13155;13156;13155;13155;13148;13152;13154;13152;13150;13150;13158;13150;13151;13156;13154;13149;13149;13135;13142;13093;13029;12969;12897;12819;12739;12674;12615;12580;12585;12553;12495;12494;12484;12475;12453;12427;12431;12419;12411;12396;12413;12441;12430;12422;12429;12442;12444;12449;12470;12497;12496;12483;12490;12497;12501;12535;12547;12530;12539;12540;12562;12574;12608;12622;12629;12650;12640;12631;12645;12661;12657;12661;12667;12668;12678;12673;12669;12675;12700;12709;12728;12746;12754;12768;12777;12801;12823;12831;12844;12810;12805;12817;12830;12851;12852;12858;12850;12843;12845;12851;12854;12873;12893;12889;12878;12869;12887;12876;12876;12896;12899;12923;12919;12906;12891;12881;12885;12901;12924;12924;12936;12920;12931;12946;12939;12942;12949;12946;12978;12950;12959;12970;12968;12980;12986;12994;13013;13029;13029;13034;13037;13040;13020;13004;13007;13007;13021;13018;13013;13019;13040;13029;13037;13047;13049;13061;13048;13044;13052;13060;13068;13074;13065;13067;13077;13076;13086;13065;13079;13081;13078;13073;13067;13082;13080;13078;13082;13082;13080;13084;13087;13087;13094;13087;13078;13078;13091;13085;13096;13096;13104;13105;13102;13102;13107;13092 +0;4;14301010164183;1498;1202;0x4000;1;13153;13154;13153;13156;13151;13151;13155;13154;13154;13148;13162;13145;13159;13150;13152;13155;13155;13151;13145;13145;13145;13142;13109;13054;13012;12935;12863;12794;12736;12692;12622;12582;12553;12532;12539;12529;12514;12501;12492;12485;12474;12446;12463;12478;12496;12530;12561;12579;12548;12542;12559;12574;12592;12585;12584;12605;12628;12636;12628;12634;12648;12665;12674;12678;12696;12675;12671;12697;12689;12693;12722;12750;12750;12741;12743;12735;12756;12783;12803;12782;12775;12772;12775;12772;12772;12784;12786;12795;12810;12803;12814;12838;12852;12849;12857;12848;12845;12855;12879;12883;12891;12891;12890;12887;12887;12905;12908;12915;12912;12917;12925;12923;12947;12934;12942;12946;12939;12941;12941;12939;12931;12940;12954;12973;12970;12966;12976;12957;12966;12985;12993;12997;12997;13000;13008;13008;13005;13008;13004;13001;13009;13008;13018;13023;13030;13049;13030;13045;13041;13037;13033;13034;13035;13028;13026;13044;13064;13061;13056;13055;13068;13076;13077;13077;13064;13059;13069;13070;13070;13081;13088;13080;13073;13063;13069;13068;13075;13071;13079;13087;13085;13090;13097;13096;13088;13080;13084;13087;13093;13094;13097;13100;13108;13107;13100;13106;13099;13116;13117;13120 \ No newline at end of file diff --git a/test/neutron_detection/compass_test_data/times/Hcompass_Co60_20241107.root b/test/neutron_detection/compass_test_data/times/Hcompass_Co60_20241107.root new file mode 100755 index 0000000..1e3e2a2 Binary files /dev/null and b/test/neutron_detection/compass_test_data/times/Hcompass_Co60_20241107.root differ diff --git a/test/neutron_detection/compass_test_data/times/Hcompass_Zirconium_20250319.root b/test/neutron_detection/compass_test_data/times/Hcompass_Zirconium_20250319.root new file mode 100755 index 0000000..0fc86ac Binary files /dev/null and b/test/neutron_detection/compass_test_data/times/Hcompass_Zirconium_20250319.root differ diff --git a/test/neutron_detection/test_calibration.py b/test/neutron_detection/test_calibration.py deleted file mode 100644 index c30625c..0000000 --- a/test/neutron_detection/test_calibration.py +++ /dev/null @@ -1,9 +0,0 @@ -from libra_toolbox.neutron_detection.activation_foils import calibration - - -def test_get_decay_lines(): - decay_lines = calibration.get_decay_lines(['Na22', 'Cs137']) - assert isinstance(decay_lines, dict) - assert 'energy' in decay_lines['Na22'].keys() - - diff --git a/test/neutron_detection/test_compass.py b/test/neutron_detection/test_compass.py index 422eb88..d01f2e2 100644 --- a/test/neutron_detection/test_compass.py +++ b/test/neutron_detection/test_compass.py @@ -2,6 +2,15 @@ import numpy as np import os from libra_toolbox.neutron_detection.activation_foils import compass +from libra_toolbox.neutron_detection.activation_foils.calibration import ( + Nuclide, + CheckSource, + ActivationFoil, + Reaction, +) +from pathlib import Path +import datetime +import h5py @pytest.mark.parametrize( @@ -85,3 +94,1396 @@ def test_sort_compass_files(tmpdir, base_name: str, expected_filenames: dict): assert np.array_equal(a, b) else: assert a == b + + +@pytest.mark.parametrize( + "waveform_directory, expected_time, expected_energy, expected_idx, expected_keys, test_ch", + [ + ("no_waveforms", 6685836624, 515, 5, [5, 15], 5), + ("no_waveforms", 11116032249, 568, 6, [5, 15], 5), + ("no_waveforms", 1623550122, 589, -1, [5, 15], 5), + ("no_waveforms", 535148093, 1237, -2, [5, 15], 5), + ("waveforms", 80413091, 1727, 0, [4], 4), + ("waveforms", 2850906749, 1539, 2, [4], 4), + ("waveforms", 14300873206559, 1700, 6, [4], 4) + ], +) +def test_get_events(waveform_directory, expected_time, + expected_energy, expected_idx, + expected_keys, test_ch): + """ + Test the get_events function from the compass module. + Checks that specific time and energy values are returned for a given channel + """ + test_directory = Path(__file__).parent / "compass_test_data/events" / waveform_directory + times, energies = compass.get_events(test_directory) + assert isinstance(times, dict) + assert isinstance(energies, dict) + + for key in expected_keys: + assert key in times + assert key in energies + + assert times[test_ch][expected_idx] == expected_time + assert energies[test_ch][expected_idx] == expected_energy + + +utc_minus5 = datetime.timezone(datetime.timedelta(hours=-5)) +utc_minus4 = datetime.timezone(datetime.timedelta(hours=-4)) + + +@pytest.mark.parametrize( + "start_time, stop_time", + [ + ( + datetime.datetime( + 2024, 11, 7, 15, 47, 21, microsecond=127000, tzinfo=utc_minus5 + ), + datetime.datetime( + 2024, 11, 7, 16, 2, 21, microsecond=133000, tzinfo=utc_minus5 + ), + ), + ( + datetime.datetime( + 2025, 3, 18, 22, 19, 3, microsecond=947000, tzinfo=utc_minus4 + ), + datetime.datetime( + 2025, 3, 19, 9, 21, 6, microsecond=558000, tzinfo=utc_minus4 + ), + ), + ], +) +def test_get_start_stop_time(tmpdir, start_time, stop_time): + """ + Tests the get_start_stop_time function from the compass module. + Checks that the start and stop times are correctly parsed from the run.info file. + """ + # BUILD + content = _run_info_content(start_time, stop_time) + + # Create another temporary directory + tmpdir2 = os.path.join(tmpdir, "tmpdir2") + + # create an empty run.info file + run_info_path = os.path.join(tmpdir, "run.info") + + # add some stuff + with open(run_info_path, "w") as f: + f.write(content) + + # RUN + start_time_out, stop_time_out = compass.get_start_stop_time(tmpdir2) + + # TEST + assert isinstance(start_time_out, datetime.datetime) + assert start_time_out == start_time + + assert isinstance(stop_time_out, datetime.datetime) + assert stop_time_out == stop_time + + +def _run_info_content(start_time: datetime.datetime, stop_time: datetime.datetime): + """ + Creates a string that simulates the content of a run.info file. + """ + return f"""id=Co60_0_872uCi_19Mar14_241107 +time.start={start_time.strftime("%Y/%m/%d %H:%M:%S.%f%z")} +time.stop={stop_time.strftime("%Y/%m/%d %H:%M:%S.%f%z")} +time.real=00:15:00 +board.0-14-292.readout.rate=132.731 kb/s +board.0-14-292.1.rejections.singles=0.0 +board.0-14-292.1.rejections.pileup=0.0 +board.0-14-292.1.rejections.saturation=1729.15 +board.0-14-292.1.rejections.energy=0.0 +board.0-14-292.1.rejections.psd=0.0 +board.0-14-292.1.rejections.timedistribution=0.0 +board.0-14-292.1.throughput=6950.66 +board.0-14-292.1.icr=7424.44 +board.0-14-292.1.ocr=5253.24 +board.0-14-292.1.calibration.energy.c0=0.0 +board.0-14-292.1.calibration.energy.c1=1.0 +board.0-14-292.1.calibration.energy.c2=0.0 +board.0-14-292.1.calibration.energy.uom=keV +board.0-14-292.2.rejections.singles=0.0 +board.0-14-292.2.rejections.pileup=0.0 +board.0-14-292.2.rejections.saturation=8.2202 +board.0-14-292.2.rejections.energy=0.0 +board.0-14-292.2.rejections.psd=0.0 +board.0-14-292.2.rejections.timedistribution=0.0 +board.0-14-292.2.throughput=3958.96 +board.0-14-292.2.icr=3981.66 +board.0-14-292.2.ocr=3952.89 +board.0-14-292.2.calibration.energy.c0=0.0 +board.0-14-292.2.calibration.energy.c1=1.0 +board.0-14-292.2.calibration.energy.c2=0.0 +board.0-14-292.2.calibration.energy.uom=keV +""" + + +def test_filenotfound_error_info(): + with pytest.raises(FileNotFoundError, match="Could not find run.info"): + compass.get_start_stop_time( + directory=Path(__file__).parent / "compass_test_data/events" + ) + + +def test_get_start_stop_time_with_notime(tmpdir): + """Creates an empty file run.info and check that an error is raised if can't find time""" + + # Create another temporary directory + + tmpdir2 = os.path.join(tmpdir, "tmpdir2") + + # create an empty run.info file + run_info_path = os.path.join(tmpdir, "run.info") + + # add some stuff + with open(run_info_path, "w") as f: + f.write("coucou\ncoucou\n") + + # run + with pytest.raises(ValueError, match="Could not find time.start or time.stop"): + compass.get_start_stop_time(tmpdir2) + + +@pytest.mark.parametrize( + "root_filename, channel, live_time, real_time", + [ + ( + Path(__file__).parent + / "compass_test_data/times/Hcompass_Co60_20241107.root", + 1, + 808.305, + 900.108, + ), + ( + Path(__file__).parent + / "compass_test_data/times/Hcompass_Co60_20241107.root", + 2, + 896.374, + 900.108, + ), + ( + Path(__file__).parent + / "compass_test_data/times/Hcompass_Zirconium_20250319.root", + 4, + 35654.785, + 39722.502, + ), + ( + Path(__file__).parent + / "compass_test_data/times/Hcompass_Zirconium_20250319.root", + 5, + 39678.458, + 39722.502, + ), + ], +) +def test_get_live_time_from_root(root_filename, channel, live_time, real_time): + live_time_out, real_time_out = compass.get_live_time_from_root( + root_filename, channel + ) + assert live_time_out == live_time + assert real_time_out == real_time + + +@pytest.mark.parametrize("no_root", [True, False]) +def test_measurement_object_from_directory(no_root): + """ + Test the Measurement object creation from a directory. + """ + if no_root: + test_directory = ( + Path(__file__).parent + / "compass_test_data/complete_measurement_no_root/data" + ) + else: + test_directory = ( + Path(__file__).parent / "compass_test_data/complete_measurement/data" + ) + + measurement = compass.Measurement.from_directory(test_directory, name="test") + + assert len(measurement.detectors) == 1 + assert isinstance(measurement.detectors[0], compass.Detector) + assert measurement.detectors[0].channel_nb == 1 + + assert measurement.detectors[0].events.shape[1] == 2 + + measurement.detectors[0].get_energy_hist(bins=None) + + +@pytest.mark.parametrize( + "bins", + [ + 10, + 20, + 50, + 100, + None, + np.arange(0, 10, 1), + np.linspace(0, 10, num=100), + ], +) +def test_detector_get_energy_hist(bins): + """ + Test the get_energy_hist method of the Detector class. + """ + my_detector = compass.Detector(channel_nb=1) + my_detector.events = np.array( + [ + [1, 2], + [3, 4], + [5, 6], + [7, 8], + [9, 10], + ] + ) + + my_detector.get_energy_hist(bins=bins) + + +@pytest.mark.parametrize( + "counting_time_background", + [ + 10, + 100, + 1000, + 3000, + ], +) +def test_background_sub(counting_time_background): + """ + Test the background subtraction method of the Detector class. + Builds a test case with a background measurement and a measured foil measurement, + then checks that the background is correctly subtracted from the measured spectrum. + + Also checks that the result is independent of the counting time of the background measurement. + """ + # BUILD + + def background_spectrum(energies): + return np.ones_like(energies) + + def measured_spectrum(energies): + return np.cos(energies / 10) + 10 + + counting_time_measured = 200 + + background_rate = 300000 / (3600) + measurement_rate = 3 * background_rate + + nb_events_background = int(background_rate * counting_time_background) + nb_events_measured = int(measurement_rate * counting_time_measured) + nb_events_measured_bg_contrib = int(background_rate * counting_time_measured) + + # Define energy grid for sampling + energy_grid = np.arange(100) + + # Calculate probability distributions using the spectrum functions + bg_probabilities = background_spectrum(energy_grid) + bg_probabilities = bg_probabilities / np.sum(bg_probabilities) # Normalize + measured_probabilities = measured_spectrum(energy_grid) + measured_probabilities = measured_probabilities / np.sum( + measured_probabilities + ) # Normalize + + # Sample from these distributions + energy_events_bg = np.random.choice( + energy_grid, size=nb_events_background, p=bg_probabilities + ) + energy_events_measured = np.random.choice( + energy_grid, size=nb_events_measured, p=measured_probabilities + ) + energy_events_measured_bg_contrib = np.random.choice( + energy_grid, size=nb_events_measured_bg_contrib, p=bg_probabilities + ) + + energy_events_measured = np.concatenate( + (energy_events_measured, energy_events_measured_bg_contrib) + ) + + # Create the measurement objects + ps_to_seconds = 1e-12 + + measurement = compass.Measurement("test") + detector_meas = compass.Detector(channel_nb=1) + detector_meas.real_count_time = counting_time_measured + measurement.detectors = [detector_meas] + time_events_measured = np.random.uniform( + 0, counting_time_measured, nb_events_measured + nb_events_measured_bg_contrib + ) + time_events_measured *= 1 / ps_to_seconds + time_events_measured.sort() + detector_meas.events = np.column_stack( + (time_events_measured, energy_events_measured) + ) + + background_measurment = compass.Measurement("background") + background_detector = compass.Detector(channel_nb=1) + background_detector.real_count_time = counting_time_background + background_measurment.detectors = [background_detector] + background_time_events = np.random.uniform( + 0, counting_time_background, nb_events_background + ) + background_time_events *= 1 / ps_to_seconds + background_time_events.sort() + background_detector.events = np.column_stack( + (background_time_events, energy_events_bg) + ) + + # RUN + computed_hist, _ = detector_meas.get_energy_hist_background_substract( + background_detector=background_detector, + live_or_real="real", + ) + + # TEST + hist_bg, _ = background_detector.get_energy_hist() + hist_raw, _ = detector_meas.get_energy_hist() + expected_hist = ( + hist_raw - hist_bg / counting_time_background * counting_time_measured + ) + assert np.allclose(computed_hist, expected_hist, rtol=1e-1) + + +@pytest.mark.parametrize( + "activity_date", + [ + datetime.datetime(2024, 11, 7), + datetime.date(2024, 11, 7), + ], +) +@pytest.mark.parametrize("n_half_lives", [0, 1, 2, 3, 4, 5]) +def test_check_source_expected_activity(n_half_lives, activity_date): + """ + Test the expected activity of a check source. + """ + # BUILD + half_life = 10 * 24 * 3600 # seconds (10 days) + activity = 500 # Bq + + test_nuclide = Nuclide( + name="TestNuclide", + energy=[100, 200], + intensity=[0.5, 0.5], + half_life=half_life, + ) + + check_source = CheckSource( + nuclide=test_nuclide, + activity_date=activity_date, + activity=activity, + ) + + start_time = activity_date + datetime.timedelta(seconds=n_half_lives * half_life) + # convert start_time and stop_time to datetime + if isinstance(start_time, datetime.date): + start_time = datetime.datetime.combine(start_time, datetime.datetime.min.time()) + + # RUN + computed_activity = check_source.get_expected_activity(start_time) + + # TEST + + expected_activity = activity / (2**n_half_lives) + assert np.isclose(computed_activity, expected_activity, rtol=1e-2) + + +@pytest.mark.parametrize("expected_efficiency", [1e-2, 0.5, 1]) +def test_check_source_detection_efficiency(expected_efficiency): + """ + Test the detection efficiency of a check source measurement. + Generates a test case with a known detection efficiency and checks that the + computed efficiency is close to the expected one. + + Using a Mn54 source with an energy of 834.848 keV and an intensity of 1.0. + We generate some events with a normal distribution centered on the energy of the source. + The number of events is given by the expected efficiency, the activity of the source, + the measurement time, and the number of half-lives passed since the activity date. + """ + # BUILD + + ps_to_seconds = 1e-12 + + n_half_lives = 0 + + activity_date = datetime.datetime(2024, 11, 7) + half_life = 10 * 24 * 3600 # seconds (10 days) + activity = 5000e1 # Bq + + test_nuclide = Nuclide( + name="TestNuclide Mn54", + energy=[834.848], + intensity=[1.0], + half_life=half_life, + ) + + check_source = CheckSource( + nuclide=test_nuclide, + activity_date=activity_date, + activity=activity, + ) + + measurement = compass.CheckSourceMeasurement(name="test measurement") + measurement.check_source = check_source + measurement.start_time = activity_date + datetime.timedelta( + seconds=n_half_lives * half_life + ) + measurement.stop_time = measurement.start_time + datetime.timedelta(seconds=100) + measurement_time = (measurement.stop_time - measurement.start_time).total_seconds() + + # generate the spectrum which is a normal centered on energy + nb_events_measured = ( + expected_efficiency * activity / (2**n_half_lives) * measurement_time + ) + energy_events = np.random.normal( + loc=test_nuclide.energy[0], + scale=20, + size=int(nb_events_measured), + ) + # make sure the min and max are in the range of the detector + energy_events[0] = 1 + energy_events[-1] = 3000 + time_events = np.random.uniform( + 0, + measurement_time, + size=int(nb_events_measured), + ) + time_events *= 1 / ps_to_seconds + time_events.sort() + + detector_meas = compass.Detector(channel_nb=1) + detector_meas.events = np.column_stack((time_events, energy_events)) + detector_meas.real_count_time = measurement_time + detector_meas.live_count_time = detector_meas.real_count_time + measurement.detectors = [detector_meas] + + background_measurement = compass.Measurement("background") + bg_detector = compass.Detector(channel_nb=1) + bg_detector.real_count_time = 0.5 + bg_detector.live_count_time = bg_detector.real_count_time + background_measurement.detectors = [bg_detector] + + # RUN + computed_efficiency = measurement.compute_detection_efficiency( + background_measurement, + calibration_coeffs=[1.0, 0.0], # assume perfect calibration + channel_nb=1, + ) + + # TEST + assert np.isclose(computed_efficiency, expected_efficiency, rtol=1e-2) + + +@pytest.mark.parametrize( + "a, b", + [ + (1.5, 200), + (1, 0), + (2, 600), + ], +) +def test_get_calibration_data(a, b): + """ + Test the get_calibration_data function from the compass module. + Checks that the calibration data is correctly computed from the measurements. + + The test generates a set of measurements with known energies and intensities, + and checks that the computed calibration data matches the expected values. + The energies counts (channels) are generated using a linear function with parameters a and b. + """ + # BUILD + channel_nb = 1 + nb_events_measured = 60000 + measurements = [] + real_energies = np.array([800, 1300, 1800]) + energy_channels = a * real_energies + b + for real_energy, energy_channel in zip( + real_energies, + energy_channels, + ): + test_nuclide = Nuclide( + name="TestNuclide", + energy=[real_energy], + intensity=[1.0], + half_life=10000, + ) + check_source = CheckSource( + nuclide=test_nuclide, + activity_date=datetime.datetime(2024, 11, 7), + activity=5000, + ) + + # create CheckSourceMeasurement + measurement = compass.CheckSourceMeasurement(name="test measurement") + measurement.check_source = check_source + measurement.start_time = datetime.datetime(2024, 11, 7) + detector = compass.Detector(channel_nb=channel_nb, nb_digitizer_bins=None) + energy_events = np.random.normal( + loc=energy_channel, scale=30, size=int(nb_events_measured) + ) + + # make sure the min and max are in the range of the detector + energy_events[0] = 1 + energy_events[-1] = 3000 + + time_events = np.random.uniform(0, 100, size=int(nb_events_measured)) + detector.events = np.column_stack((time_events, energy_events)) + detector.real_count_time = 100 + detector.live_count_time = detector.real_count_time + measurement.detectors = [detector] + + measurements.append(measurement) + + # create background measurement + background_measurement = compass.Measurement("background") + bg_detector = compass.Detector(channel_nb=channel_nb, nb_digitizer_bins=None) + bg_detector.live_count_time = 100 + bg_detector.real_count_time = bg_detector.live_count_time + background_measurement.detectors = [bg_detector] + + # RUN + calibration_channels, calibration_energies = compass.get_calibration_data( + measurements, background_measurement, channel_nb=channel_nb + ) + + # TEST + assert np.allclose(calibration_channels, energy_channels, rtol=1e-2) + assert np.allclose(calibration_energies, real_energies, rtol=1e-2) + + +def test_get_multipeak_area_single_peak(): + """ + Test the get_multipeak_area function from the compass module. + Checks that the area under the peaks is correctly computed. + """ + # BUILD + energy = 2000 + nb_events_measured = 60000 + energy_events = np.random.normal(loc=energy, scale=30, size=int(nb_events_measured)) + # make sure the min and max are in the range of the detector + energy_events[0] = 1 + energy_events[-1] = 3000 + + hist, bin_edges = np.histogram(energy_events, bins=np.arange(0, 3000)) + + # RUN + areas = compass.get_multipeak_area(hist, bin_edges, peak_ergs=[energy]) + + # TEST + expected_area = np.sum(hist) + assert np.isclose(areas[0], expected_area, rtol=1e-2) + + +def test_get_multipeak_area_two_separated_peaks(): + """ + Test the get_multipeak_area function from the compass module. + Checks that the area under the peaks is correctly computed. + """ + # BUILD + energy1 = 1000 + energy2 = 2000 + energy_events = np.empty((0,)) + nb_events_peak1 = 60000 + nb_events_peak2 = 2 * nb_events_peak1 + sigma_peak = 30 + for energy, nb_events in zip( + [energy1, energy2], [nb_events_peak1, nb_events_peak2] + ): + new_energy_events = np.random.normal( + loc=energy, scale=sigma_peak, size=int(nb_events) + ) + # make sure the min and max are in the range of the detector + new_energy_events[0] = 1 + new_energy_events[-1] = 3000 + energy_events = np.concatenate((energy_events, new_energy_events)) + + hist, bin_edges = np.histogram(energy_events, bins=np.arange(0, 3000)) + + # RUN + areas = compass.get_multipeak_area(hist, bin_edges, peak_ergs=[energy1, energy2]) + + # TEST + + expected_area_peak_1 = nb_events_peak1 + expected_area_peak_2 = nb_events_peak2 + for i, expected_area in enumerate([expected_area_peak_1, expected_area_peak_2]): + assert np.isclose(areas[i], expected_area, rtol=1e-2) + + +def test_get_multipeak_area_two_close_peaks(): + """ + Test the get_multipeak_area function from the compass module. + Checks that the area under the peaks is correctly computed. + """ + # BUILD + energy1 = 1000 + energy2 = 1100 + energy_events = np.empty((0,)) + nb_events_peak1 = 1300000 + nb_events_peak2 = 0.6 * nb_events_peak1 + sigma_peak = 30 + for energy, nb_events in zip( + [energy1, energy2], [nb_events_peak1, nb_events_peak2] + ): + new_energy_events = np.random.normal( + loc=energy, scale=sigma_peak, size=int(nb_events) + ) + # make sure the min and max are in the range of the detector + new_energy_events[0] = 1 + new_energy_events[-1] = 3000 + energy_events = np.concatenate((energy_events, new_energy_events)) + + hist, bin_edges = np.histogram(energy_events, bins=np.arange(0, 3000)) + + # RUN + areas = compass.get_multipeak_area(hist, bin_edges, peak_ergs=[energy1, energy2]) + + # TEST + expected_area_peak_1 = nb_events_peak1 + expected_area_peak_2 = nb_events_peak2 + for i, expected_area in enumerate([expected_area_peak_1, expected_area_peak_2]): + assert np.isclose(areas[i], expected_area, rtol=1e-2) + + +@pytest.mark.parametrize("efficiency", [1e-2, 0.1, 0.5, 1.0]) +def test_get_gamma_emitted(efficiency: float): + # BUILD + nuclide_reactant = Nuclide(name="TestNuclide", atomic_mass=200) + activated_nuclide = Nuclide( + name="ActivatedNuclide", + energy=[1000], + intensity=[1.0], + half_life=10 * 24 * 3600, + ) + + reaction = Reaction( + reactant=nuclide_reactant, + product=activated_nuclide, + cross_section=20.0, + ) + + foil = ActivationFoil(reaction=reaction, mass=0.1, name="TestFoil") + + measurement = compass.SampleMeasurement("sample") + measurement.foil = foil + + count_time_hr = 1 # hr + measurement.start_time = datetime.datetime(2024, 11, 7) + measurement.stop_time = datetime.datetime(2024, 11, 7, count_time_hr) + + measurement.detectors = [ + compass.Detector(channel_nb=4), + compass.Detector(channel_nb=3), + ] + measurement.get_detector(3).real_count_time = count_time_hr * 3600 + measurement.get_detector(3).live_count_time = count_time_hr * 3600 + + nb_counts = 50000 + energy_events = np.random.normal( + loc=activated_nuclide.energy[0], scale=30, size=int(nb_counts) + ) + time_events = np.random.uniform(0, 100, size=energy_events.size) + measurement.get_detector(3).events = np.column_stack((time_events, energy_events)) + + background_measurement = compass.Measurement("background") + background_measurement.detectors = [compass.Detector(channel_nb=3)] + background_measurement.get_detector(3).events = np.array([(0, 0), (1, 4000)]) + background_measurement.get_detector(3).real_count_time = count_time_hr * 3600 + background_measurement.get_detector(3).live_count_time = count_time_hr * 3600 + + # RUN + gammas_emmitted = measurement.get_gamma_emitted( + background_measurement=background_measurement, + efficiency_coeffs=np.array([0.0, efficiency]), # assume perfect efficiency + calibration_coeffs=np.array([1.0, 0.0]), # assume perfect calibration + channel_nb=3, + search_width=300, + ) + computed_value = gammas_emmitted[0] + + # TEST + expected_value = nb_counts / efficiency + assert np.isclose(computed_value, expected_value, rtol=1e-2) + + +@pytest.mark.parametrize("distance", [1.0, 5.0, 10.0]) +@pytest.mark.parametrize("photon_counts", [1e6, 1e7, 1e8, 0.0]) +def test_get_neutron_rate_very_long_half_life(photon_counts, distance): + # BUILD + + half_life = 100 * 24 * 3600 # seconds (100 days) + + nuclide_reactant = Nuclide(name="TestNuclide", atomic_mass=200) + activated_nuclide = Nuclide( + name="ActivatedNuclide", + energy=[1000], + intensity=[1.0], + half_life=half_life, + ) + + reaction = Reaction( + reactant=nuclide_reactant, + product=activated_nuclide, + cross_section=20.0, + ) + + foil = ActivationFoil( + reaction=reaction, + mass=0.1, + name="TestFoil", + thickness=None, + ) + + measurement = compass.SampleMeasurement("sample") + measurement.foil = foil + + count_time_hr = 2 # hr + measurement.start_time = datetime.datetime(2024, 11, 7) + measurement.stop_time = datetime.datetime(2024, 11, 7, count_time_hr) + + measurement.detectors = [ + compass.Detector(channel_nb=4), + compass.Detector(channel_nb=3), + ] + measurement.get_detector(3).real_count_time = count_time_hr * 3600 + measurement.get_detector(3).live_count_time = measurement.get_detector( + 3 + ).real_count_time + + irradiation_time = 3600 # seconds + irradiations = [{"t_on": 0, "t_off": irradiation_time}] + + # RUN + computed_rate = measurement.get_neutron_rate( + channel_nb=3, + photon_counts=photon_counts, + irradiations=irradiations, + distance=distance, # cm + time_generator_off=measurement.start_time, + ) + + # TEST + expected_nb_decays = photon_counts / activated_nuclide.intensity[0] # decay events + expected_activity = expected_nb_decays / (count_time_hr * 3600) # Bq + # ignoring decays then: + # irradiation_time * cross_section * nb_atoms * neutron_flux * decay_constant = activity + expected_neutron_flux = expected_activity / ( + irradiation_time + * foil.reaction.cross_section + * foil.nb_atoms + * activated_nuclide.decay_constant + ) + area_of_sphere = 4 * np.pi * distance**2 + expected_neutron_rate = expected_neutron_flux * area_of_sphere + assert np.isclose(computed_rate, expected_neutron_rate) + + +@pytest.mark.parametrize("distance", [1.0, 5.0, 10.0]) +@pytest.mark.parametrize("photon_counts", [1e15, 1e15, 1e15, 0.0]) +def test_get_neutron_rate_very_moderate_life(photon_counts, distance): + # BUILD + + half_life = 10 * 24 * 3600 # seconds (10 day) + + nuclide_reactant = Nuclide(name="TestNuclide", atomic_mass=200) + activated_nuclide = Nuclide( + name="ActivatedNuclide", + energy=[1000], + intensity=[1.0], + half_life=half_life, + ) + + reaction = Reaction( + reactant=nuclide_reactant, + product=activated_nuclide, + cross_section=20.0, + ) + + foil = ActivationFoil( + reaction=reaction, + mass=0.1, + name="TestFoil", + thickness=None, + ) + + measurement = compass.SampleMeasurement("sample") + measurement.foil = foil + + count_time_hr = 1 # hr + measurement.start_time = datetime.datetime(2024, 11, 7) + measurement.stop_time = datetime.datetime(2024, 11, 7, count_time_hr) + + measurement.detectors = [ + compass.Detector(channel_nb=4), + compass.Detector(channel_nb=3), + ] + measurement.get_detector(3).real_count_time = count_time_hr * 3600 + measurement.get_detector(3).live_count_time = measurement.get_detector( + 3 + ).real_count_time + + irradiation_time = 0.5 * half_life + irradiations = [{"t_on": 0, "t_off": irradiation_time}] + + # RUN + computed_rate = measurement.get_neutron_rate( + channel_nb=3, + photon_counts=photon_counts, + irradiations=irradiations, + distance=distance, # cm + time_generator_off=measurement.start_time, + ) + + # TEST + expected_nb_decays = photon_counts / activated_nuclide.intensity[0] # decay events + expected_neutron_flux = ( + expected_nb_decays + * activated_nuclide.decay_constant + / ( + (1 - np.exp(-foil.reaction.product.decay_constant * irradiation_time)) + * (1 - np.exp(-foil.reaction.product.decay_constant * count_time_hr * 3600)) + * foil.reaction.cross_section + * foil.nb_atoms + ) + ) + + area_of_sphere = 4 * np.pi * distance**2 + expected_neutron_rate = expected_neutron_flux * area_of_sphere + assert np.isclose(computed_rate, expected_neutron_rate) + + +def test_activationfoil_density_thickness_validation(): + + nuclide_reactant = Nuclide(name="TestNuclide", atomic_mass=200) + activated_nuclide = Nuclide( + name="ActivatedNuclide", + energy=[1000], + intensity=[1.0], + half_life=10 * 24 * 3600, # 10 days + ) + + reaction = Reaction( + reactant=nuclide_reactant, + product=activated_nuclide, + cross_section=20.0, + ) + + with pytest.raises( + ValueError, + match="Thickness and density must either both be floats or both be None.", + ): + ActivationFoil(reaction=reaction, mass=1.0, name="foil", density=1.0) + + with pytest.raises( + ValueError, + match="Thickness and density must either both be floats or both be None.", + ): + ActivationFoil(reaction=reaction, mass=1.0, name="foil", thickness=0.1) + + +def create_test_measurement( + name: str, num_detectors: int = 2, num_events: int = 100 +) -> compass.Measurement: + """ + Helper function to create a test measurement with synthetic data. + """ + measurement = compass.Measurement(name) + + # Set start and stop times + measurement.start_time = datetime.datetime(2025, 1, 1, 10, 0, 0) + measurement.stop_time = datetime.datetime(2025, 1, 1, 10, 15, 0) + + # Create detectors with synthetic events + for channel_nb in range(num_detectors): + detector = compass.Detector(channel_nb) + + # Generate synthetic events (time in ps, energy) + times = np.random.uniform(0, 1e12, num_events) # Random times in ps + energies = np.random.uniform(100, 1000, num_events) # Random energies + detector.events = np.column_stack((times, energies)) + + # Set timing information + detector.live_count_time = 900.0 # 15 minutes + detector.real_count_time = 900.0 + + measurement.detectors.append(detector) + + return measurement + + +def test_measurement_to_h5_single(tmpdir): + """ + Test the Measurement.to_h5 method for a single measurement. + """ + # Create test measurement + measurement = create_test_measurement( + "test_measurement", num_detectors=2, num_events=50 + ) + + # Save to HDF5 + h5_file = os.path.join(tmpdir, "test_single.h5") + measurement.to_h5(h5_file, mode="w") + + # Verify file exists and has correct structure + assert os.path.exists(h5_file) + + with h5py.File(h5_file, "r") as f: + # Check measurement group exists + assert "test_measurement" in f + measurement_group = f["test_measurement"] + + # Check attributes + assert "start_time" in measurement_group.attrs + assert "stop_time" in measurement_group.attrs + assert measurement_group.attrs["start_time"] == "2025-01-01T10:00:00" + assert measurement_group.attrs["stop_time"] == "2025-01-01T10:15:00" + + # Check detectors + assert "detector_0" in measurement_group + assert "detector_1" in measurement_group + + # Check detector data + detector_group = measurement_group["detector_0"] + assert "events" in detector_group + assert detector_group["events"].shape[1] == 2 # time, energy columns + assert detector_group["events"].shape[0] == 50 # number of events + assert detector_group.attrs["live_count_time"] == 900.0 + assert detector_group.attrs["real_count_time"] == 900.0 + + +def test_measurement_to_h5_append_mode(tmpdir): + """ + Test the Measurement.to_h5 method with append mode for multiple measurements. + """ + # Create test measurements + measurement1 = create_test_measurement( + "measurement_1", num_detectors=1, num_events=30 + ) + measurement2 = create_test_measurement( + "measurement_2", num_detectors=2, num_events=40 + ) + + h5_file = os.path.join(tmpdir, "test_append.h5") + + # Save first measurement + measurement1.to_h5(h5_file, mode="w") + + # Append second measurement + measurement2.to_h5(h5_file, mode="a") + + # Verify both measurements are in the file + with h5py.File(h5_file, "r") as f: + assert "measurement_1" in f + assert "measurement_2" in f + + # Check first measurement + assert "detector_0" in f["measurement_1"] + assert f["measurement_1"]["detector_0"]["events"].shape[0] == 30 + + # Check second measurement + assert "detector_0" in f["measurement_2"] + assert "detector_1" in f["measurement_2"] + assert f["measurement_2"]["detector_0"]["events"].shape[0] == 40 + + +def test_measurement_to_h5_overwrite_existing(tmpdir): + """ + Test that writing a measurement with the same name overwrites the existing one. + """ + # Create initial measurement + measurement1 = create_test_measurement("same_name", num_detectors=1, num_events=30) + measurement1.detectors[0].live_count_time = 100.0 + + # Create updated measurement with same name + measurement2 = create_test_measurement("same_name", num_detectors=1, num_events=50) + measurement2.detectors[0].live_count_time = 200.0 + + h5_file = os.path.join(tmpdir, "test_overwrite.h5") + + # Save first measurement + measurement1.to_h5(h5_file, mode="w") + + # Overwrite with second measurement + measurement2.to_h5(h5_file, mode="a") + + # Verify only the second measurement data remains + with h5py.File(h5_file, "r") as f: + assert "same_name" in f + detector_group = f["same_name"]["detector_0"] + assert detector_group["events"].shape[0] == 50 # New data + assert detector_group.attrs["live_count_time"] == 200.0 # New timing + + +def test_measurement_write_multiple_to_h5(tmpdir): + """ + Test the Measurement.write_multiple_to_h5 class method. + """ + # Create multiple test measurements + measurements = [ + create_test_measurement("exp_1", num_detectors=1, num_events=20), + create_test_measurement("exp_2", num_detectors=2, num_events=30), + create_test_measurement("exp_3", num_detectors=3, num_events=40), + ] + + h5_file = os.path.join(tmpdir, "test_multiple.h5") + + # Write all measurements to file + compass.Measurement.write_multiple_to_h5(measurements, h5_file) + + # Verify all measurements are in the file + with h5py.File(h5_file, "r") as f: + assert "exp_1" in f + assert "exp_2" in f + assert "exp_3" in f + + # Check each measurement has correct number of detectors + assert len([k for k in f["exp_1"].keys() if k.startswith("detector_")]) == 1 + assert len([k for k in f["exp_2"].keys() if k.startswith("detector_")]) == 2 + assert len([k for k in f["exp_3"].keys() if k.startswith("detector_")]) == 3 + + # Check event counts + assert f["exp_1"]["detector_0"]["events"].shape[0] == 20 + assert f["exp_2"]["detector_0"]["events"].shape[0] == 30 + assert f["exp_3"]["detector_0"]["events"].shape[0] == 40 + + +def test_measurement_from_h5_single(tmpdir): + """ + Test the Measurement.from_h5 method for loading a single measurement. + """ + # Create and save a test measurement + original_measurement = create_test_measurement( + "test_load", num_detectors=2, num_events=35 + ) + h5_file = os.path.join(tmpdir, "test_load_single.h5") + original_measurement.to_h5(h5_file) + + # Load the measurement back + loaded_measurement = compass.Measurement.from_h5( + h5_file, measurement_name="test_load" + ) + + # Verify loaded measurement matches original + assert loaded_measurement.name == "test_load" + assert loaded_measurement.start_time == original_measurement.start_time + assert loaded_measurement.stop_time == original_measurement.stop_time + assert len(loaded_measurement.detectors) == 2 + + # Check detector data + for i, detector in enumerate(loaded_measurement.detectors): + original_detector = original_measurement.detectors[i] + assert detector.channel_nb == original_detector.channel_nb + assert detector.live_count_time == original_detector.live_count_time + assert detector.real_count_time == original_detector.real_count_time + np.testing.assert_array_equal(detector.events, original_detector.events) + + +def test_measurement_from_h5_all_measurements(tmpdir): + """ + Test the Measurement.from_h5 method for loading all measurements from a file. + """ + # Create and save multiple measurements + measurements = [ + create_test_measurement("load_1", num_detectors=1, num_events=25), + create_test_measurement("load_2", num_detectors=2, num_events=35), + ] + + h5_file = os.path.join(tmpdir, "test_load_all.h5") + compass.Measurement.write_multiple_to_h5(measurements, h5_file) + + # Load all measurements + loaded_measurements = compass.Measurement.from_h5(h5_file) + + # Verify we got all measurements + assert len(loaded_measurements) == 2 + loaded_names = [m.name for m in loaded_measurements] + assert "load_1" in loaded_names + assert "load_2" in loaded_names + + # Find corresponding measurements + load_1 = next(m for m in loaded_measurements if m.name == "load_1") + load_2 = next(m for m in loaded_measurements if m.name == "load_2") + + assert len(load_1.detectors) == 1 + assert len(load_2.detectors) == 2 + assert load_1.detectors[0].events.shape[0] == 25 + assert load_2.detectors[0].events.shape[0] == 35 + + +def test_measurement_from_h5_nonexistent_measurement(tmpdir): + """ + Test that loading a non-existent measurement raises appropriate error. + """ + # Create a measurement and save it + measurement = create_test_measurement("existing", num_detectors=1, num_events=10) + h5_file = os.path.join(tmpdir, "test_nonexistent.h5") + measurement.to_h5(h5_file) + + # Try to load a non-existent measurement + with pytest.raises(ValueError, match="Measurement 'nonexistent' not found in file"): + compass.Measurement.from_h5(h5_file, measurement_name="nonexistent") + + +def test_measurement_h5_roundtrip(tmpdir): + """ + Test complete roundtrip: create -> save -> load -> verify data integrity. + """ + # Create measurement with specific, verifiable data + measurement = compass.Measurement("roundtrip_test") + measurement.start_time = datetime.datetime(2025, 7, 2, 14, 30, 0) + measurement.stop_time = datetime.datetime(2025, 7, 2, 15, 0, 0) + + # Create detector with specific events + detector = compass.Detector(channel_nb=5) + detector.events = np.array( + [ + [1000000000, 150.5], # time in ps, energy + [2000000000, 250.7], + [3000000000, 350.9], + ] + ) + detector.live_count_time = 1800.0 + detector.real_count_time = 1800.0 + measurement.detectors = [detector] + + # Save and load + h5_file = os.path.join(tmpdir, "roundtrip.h5") + measurement.to_h5(h5_file) + loaded_measurement = compass.Measurement.from_h5( + h5_file, measurement_name="roundtrip_test" + ) + + # Verify exact data integrity + assert loaded_measurement.name == "roundtrip_test" + assert loaded_measurement.start_time == measurement.start_time + assert loaded_measurement.stop_time == measurement.stop_time + assert len(loaded_measurement.detectors) == 1 + + loaded_detector = loaded_measurement.detectors[0] + assert loaded_detector.channel_nb == 5 + assert loaded_detector.live_count_time == 1800.0 + assert loaded_detector.real_count_time == 1800.0 + np.testing.assert_array_equal(loaded_detector.events, detector.events) + + +def test_measurement_h5_empty_measurement(tmpdir): + """ + Test saving and loading a measurement with no detectors. + """ + # Create empty measurement + measurement = compass.Measurement("empty_test") + measurement.start_time = datetime.datetime(2025, 1, 1, 12, 0, 0) + measurement.stop_time = datetime.datetime(2025, 1, 1, 12, 30, 0) + measurement.detectors = [] # No detectors + + # Save and load + h5_file = os.path.join(tmpdir, "empty.h5") + measurement.to_h5(h5_file) + loaded_measurement = compass.Measurement.from_h5( + h5_file, measurement_name="empty_test" + ) + + # Verify empty measurement + assert loaded_measurement.name == "empty_test" + assert loaded_measurement.start_time == measurement.start_time + assert loaded_measurement.stop_time == measurement.stop_time + assert len(loaded_measurement.detectors) == 0 + + +def test_measurement_h5_roundtrip_spectrum_only(tmpdir): + """ + Test complete roundtrip with spectrum_only flag: create -> save -> load -> verify spectrum data integrity. + """ + # Create measurement with specific, verifiable data + measurement = compass.Measurement("roundtrip_spectrum_test") + measurement.start_time = datetime.datetime(2025, 7, 2, 14, 30, 0) + measurement.stop_time = datetime.datetime(2025, 7, 2, 15, 0, 0) + + # Create detector with specific events that will create a predictable spectrum + detector = compass.Detector(channel_nb=5) + # Create events with integer energies for predictable histogram + detector.events = np.array( + [ + [1000000000, 100.0], # time in ps, energy + [2000000000, 100.0], # Same energy -> 2 counts in bin 100 + [3000000000, 200.0], # Different energy -> 1 count in bin 200 + [4000000000, 200.0], # Same energy -> 2 counts in bin 200 + [5000000000, 300.0], # Different energy -> 1 count in bin 300 + [5000000000, 300.0], # Same energy -> 2 counts in bin 300 + [5000000000, 400.0], # Different energy -> 1 count in bin 400 + ] + ) + detector.live_count_time = 1800.0 + detector.real_count_time = 1800.0 + measurement.detectors = [detector] + + # Get the expected spectrum before saving + expected_hist, expected_bin_edges = detector.get_energy_hist(bins=None) + + # Save with spectrum_only=True and load + h5_file = os.path.join(tmpdir, "roundtrip_spectrum.h5") + measurement.to_h5(h5_file, spectrum_only=True) + loaded_measurement = compass.Measurement.from_h5( + h5_file, measurement_name="roundtrip_spectrum_test" + ) + + # Verify basic measurement data integrity + assert loaded_measurement.name == "roundtrip_spectrum_test" + assert loaded_measurement.start_time == measurement.start_time + assert loaded_measurement.stop_time == measurement.stop_time + assert len(loaded_measurement.detectors) == 1 + + loaded_detector = loaded_measurement.detectors[0] + assert loaded_detector.channel_nb == 5 + assert loaded_detector.live_count_time == 1800.0 + assert loaded_detector.real_count_time == 1800.0 + + # Verify events array is empty (spectrum_only mode) + assert loaded_detector.events.shape[0] == 0 + + # Verify spectrum data is present and correct + assert hasattr(loaded_detector, "spectrum") + assert hasattr(loaded_detector, "bin_edges") + np.testing.assert_array_equal(loaded_detector.spectrum, expected_hist) + np.testing.assert_array_equal(loaded_detector.bin_edges, expected_bin_edges) + + # Verify the spectrum contains expected counts + # The exact bin positions depend on the histogram implementation + print(f"Spectrum: {loaded_detector.spectrum}") + print(f"Bin edges: {loaded_detector.bin_edges}") + assert np.sum(loaded_detector.spectrum) == 7 # Total number of events + + +def test_measurement_h5_spectrum_only_file_structure(tmpdir): + """ + Test that spectrum_only mode creates the correct HDF5 file structure. + """ + # Create measurement with events + measurement = create_test_measurement( + "spectrum_structure_test", num_detectors=1, num_events=100 + ) + + # Save with spectrum_only=True + h5_file = os.path.join(tmpdir, "spectrum_structure.h5") + measurement.to_h5(h5_file, spectrum_only=True) + + # Verify file structure + with h5py.File(h5_file, "r") as f: + assert "spectrum_structure_test" in f + measurement_group = f["spectrum_structure_test"] + + # Check measurement attributes + assert "start_time" in measurement_group.attrs + assert "stop_time" in measurement_group.attrs + + # Check detector group + assert "detector_0" in measurement_group + detector_group = measurement_group["detector_0"] + + # In spectrum_only mode, should have spectrum and bin_edges, but empty events + assert "spectrum" in detector_group + assert "bin_edges" in detector_group + assert "events" in detector_group + + # Events should be empty array + assert detector_group["events"].shape[0] == 0 + + # Spectrum should have data + assert detector_group["spectrum"].shape[0] > 0 + assert detector_group["bin_edges"].shape[0] > 0 + + # Timing attributes should still be present + assert "live_count_time" in detector_group.attrs + assert "real_count_time" in detector_group.attrs + + +def test_measurement_h5_spectrum_only_vs_full_size_comparison(tmpdir): + """ + Test that spectrum_only mode produces smaller files than full event storage. + """ + # Create measurement with many events to see file size difference + measurement = create_test_measurement("size_test", num_detectors=1, num_events=1000) + + # Save in both modes + h5_file_full = os.path.join(tmpdir, "full_events.h5") + h5_file_spectrum = os.path.join(tmpdir, "spectrum_only.h5") + + measurement.to_h5(h5_file_full, spectrum_only=False) + measurement.to_h5(h5_file_spectrum, spectrum_only=True) + + # Compare file sizes + full_size = os.path.getsize(h5_file_full) + spectrum_size = os.path.getsize(h5_file_spectrum) + + # Spectrum-only file should be smaller (unless histogram has more bins than events) + # At minimum, both files should exist and have reasonable sizes + assert full_size > 0 + assert spectrum_size > 0 + + # For 1000 events, the full file should typically be larger + # (though this could depend on the specific data and compression) + print(f"Full events file size: {full_size} bytes") + print(f"Spectrum only file size: {spectrum_size} bytes") + + +def test_measurement_h5_spectrum_only_analysis_capability(tmpdir): + """ + Test that spectrum_only data can still be used for basic analysis. + """ + # Create measurement with well-defined energy distribution + measurement = compass.Measurement("analysis_test") + measurement.start_time = datetime.datetime(2025, 7, 2, 10, 0, 0) + measurement.stop_time = datetime.datetime(2025, 7, 2, 10, 30, 0) + + detector = compass.Detector(channel_nb=1) + # Create events with known energy distribution + energies = np.concatenate( + [ + np.full(50, 500.0), # 50 events at 500 keV + np.full(30, 600.0), # 30 events at 600 keV + np.full(20, 700.0), # 20 events at 700 keV + ] + ) + times = np.random.uniform(0, 1e12, len(energies)) + detector.events = np.column_stack((times, energies)) + detector.live_count_time = 1800.0 + detector.real_count_time = 1800.0 + measurement.detectors = [detector] + + # Save with spectrum_only=True + h5_file = os.path.join(tmpdir, "analysis_spectrum.h5") + measurement.to_h5(h5_file, spectrum_only=True) + + # Load and analyze spectrum + loaded_measurement = compass.Measurement.from_h5( + h5_file, measurement_name="analysis_test" + ) + loaded_detector = loaded_measurement.detectors[0] + + # Verify we can analyze the spectrum + assert hasattr(loaded_detector, "spectrum") + assert hasattr(loaded_detector, "bin_edges") + + # Check total counts + total_counts = np.sum(loaded_detector.spectrum) + assert total_counts == 100 # 50 + 30 + 20 + + # Check that peak energies are preserved in the spectrum + # Find bin centers + bin_centers = (loaded_detector.bin_edges[:-1] + loaded_detector.bin_edges[1:]) / 2 + + # Find peaks in the spectrum (simple approach) + peak_indices = np.where(loaded_detector.spectrum > 15)[ + 0 + ] # Bins with significant counts + peak_energies = bin_centers[peak_indices] + + # Should have peaks near our input energies (500, 600, 700) + assert len(peak_energies) >= 3, "Should find at least 3 energy peaks" + + # Verify the spectrum structure makes sense + assert loaded_detector.spectrum.dtype in [np.int32, np.int64, np.uint32, np.uint64] + assert loaded_detector.bin_edges.dtype in [np.int32, np.int64, np.uint32, np.uint64] + assert len(loaded_detector.bin_edges) == len(loaded_detector.spectrum) + 1 diff --git a/test/neutron_detection/test_prt.py b/test/neutron_detection/test_prt.py index 78d6cb6..5b5065d 100644 --- a/test/neutron_detection/test_prt.py +++ b/test/neutron_detection/test_prt.py @@ -113,3 +113,783 @@ def test_get_count_rate(bin_time: float, count_rate_real: float): # test assert np.allclose(count_rates, count_rate_real) + + +@pytest.mark.parametrize( + "ch1_times, ch2_times, ch1_ampl, ch2_ampl, t_window, expected", + [ + # Test case 1: Simple match within time window + ( + [1.0, 2.0, 3.0], + [1.1, 2.1, 3.1], + [10, 20, 30], + [15, 25, 35], + 0.2, + ( + [1.0, 2.0, 3.0], + [1.1, 2.1, 3.1], + [10, 20, 30], + [15, 25, 35], + ), + ), + # Test case 2: No match due to time window + ( + [1.0, 2.0, 3.0], + [4.0, 5.0, 6.0], + [10, 20, 30], + [15, 25, 35], + 0.1, + ([], [], [], []), + ), + # Test case 3: Partial match + ( + [1.0, 2.0, 3.0], + [1.05, 3.05, 5.0], + [10, 20, 30], + [15, 35, 25], + 0.1, + ( + [1.0, 3.0], + [1.05, 3.05], + [10, 30], + [15, 35], + ), + ), + # Test case 4: Empty input + ( + [], + [], + [], + [], + 0.1, + ([], [], [], []), + ), + ], +) +def test_coinc_2(ch1_times, ch2_times, ch1_ampl, ch2_ampl, t_window, expected): + """ + Test the coinc_2 function. + This function checks if the coincidence detection works correctly + for two channels within a given time window. + + Args: + ch1_times: List of timestamps for channel 1. + ch2_times: List of timestamps for channel 2. + ch1_ampl: List of amplitudes for channel 1. + ch2_ampl: List of amplitudes for channel 2. + t_window: Time window for coincidence detection. + expected: Expected output (time and amplitude matches). + """ + result = prt.coinc_2(ch1_times, ch2_times, ch1_ampl, ch2_ampl, t_window) + # convert everything to list + result = ( + result[0].tolist(), + result[1].tolist(), + result[2].tolist(), + result[3].tolist(), + ) + assert result == expected + + +@pytest.mark.parametrize( + "ch1_times, ch2_times, ch3_times, ch1_ampl, ch2_ampl, ch3_ampl, t_window, expected", + [ + # Test case 1: All channels match within the time window + ( + [1.0, 2.0, 3.0], + [1.1, 2.1, 3.1], + [1.15, 2.15, 3.15], + [10, 20, 30], + [15, 25, 35], + [12, 22, 32], + 0.2, + ( + [1.0, 2.0, 3.0], + [1.1, 2.1, 3.1], + [1.15, 2.15, 3.15], + [10, 20, 30], + [15, 25, 35], + [12, 22, 32], + ), + ), + # Test case 2: No matches due to time window + ( + [1.0, 2.0, 3.0], + [4.0, 5.0, 6.0], + [7.0, 8.0, 9.0], + [10, 20, 30], + [15, 25, 35], + [12, 22, 32], + 0.1, + ([], [], [], [], [], []), + ), + # Test case 3: Partial matches + ( + [1.0, 2.0, 3.0], + [1.05, 1.8, 3.05], + [1.1, 2.1, 3.1], + [10, 20, 30], + [15, 25, 35], + [12, 22, 32], + 0.11, + ( + [1.0, 3.0], + [1.05, 3.05], + [1.1, 3.1], + [10, 30], + [15, 35], + [12, 32], + ), + ), + # Test case 4: Empty input + ( + [], + [], + [], + [], + [], + [], + 0.1, + ([], [], [], [], [], []), + ), + ], +) +def test_coinc_3( + ch1_times, ch2_times, ch3_times, ch1_ampl, ch2_ampl, ch3_ampl, t_window, expected +): + """ + Test the coinc_3 function. + This function checks if the coincidence detection works correctly + for three channels within a given time window. + + Args: + ch1_times: List of timestamps for channel 1. + ch2_times: List of timestamps for channel 2. + ch3_times: List of timestamps for channel 3. + ch1_ampl: List of amplitudes for channel 1. + ch2_ampl: List of amplitudes for channel 2. + ch3_ampl: List of amplitudes for channel 3. + t_window: Time window for coincidence detection. + expected: Expected output (time and amplitude matches). + """ + result = prt.coinc_3( + ch1_times, ch2_times, ch3_times, ch1_ampl, ch2_ampl, ch3_ampl, t_window + ) + # convert everything to list + result = ( + result[0].tolist(), + result[1].tolist(), + result[2].tolist(), + result[3].tolist(), + result[4].tolist(), + result[5].tolist(), + ) + assert result == expected + + +@pytest.mark.parametrize( + "ch1_times, ch2_times, ch3_times, ch4_times, ch1_ampl, ch2_ampl, ch3_ampl, ch4_ampl, t_window, expected", + [ + # Test case 1: All channels match within the time window + ( + [1.0, 2.0, 3.0], + [1.1, 2.1, 3.1], + [1.15, 2.15, 3.15], + [1.2, 2.2, 3.2], + [10, 20, 30], + [15, 25, 35], + [12, 22, 32], + [14, 24, 34], + 0.3, + ( + [1.0, 2.0, 3.0], + [1.1, 2.1, 3.1], + [1.15, 2.15, 3.15], + [1.2, 2.2, 3.2], + [10, 20, 30], + [15, 25, 35], + [12, 22, 32], + [14, 24, 34], + ), + ), + # Test case 2: No matches due to time window + ( + [1.0, 2.0, 3.0], + [4.0, 5.0, 6.0], + [7.0, 8.0, 9.0], + [10.0, 11.0, 12.0], + [10, 20, 30], + [15, 25, 35], + [12, 22, 32], + [14, 24, 34], + 0.1, + ([], [], [], [], [], [], [], []), + ), + # Test case 3: Partial matches + ( + [1.0, 2.0, 3.0], + [1.05, 2.05, 5.0], + [1.1, 2.1, 3.1], + [1.15, 2.15, 3.15], + [10, 20, 30], + [15, 25, 35], + [12, 22, 32], + [14, 24, 34], + 0.2, + ( + [1.0, 2.0], + [1.05, 2.05], + [1.1, 2.1], + [1.15, 2.15], + [10, 20], + [15, 25], + [12, 22], + [14, 24], + ), + ), + # Test case 4: Empty input + ( + [], + [], + [], + [], + [], + [], + [], + [], + 0.1, + ([], [], [], [], [], [], [], []), + ), + ], +) +def test_coinc_4( + ch1_times, + ch2_times, + ch3_times, + ch4_times, + ch1_ampl, + ch2_ampl, + ch3_ampl, + ch4_ampl, + t_window, + expected, +): + """ + Test the coinc_4 function. + This function checks if the coincidence detection works correctly + for four channels within a given time window. + + Args: + ch1_times: List of timestamps for channel 1. + ch2_times: List of timestamps for channel 2. + ch3_times: List of timestamps for channel 3. + ch4_times: List of timestamps for channel 4. + ch1_ampl: List of amplitudes for channel 1. + ch2_ampl: List of amplitudes for channel 2. + ch3_ampl: List of amplitudes for channel 3. + ch4_ampl: List of amplitudes for channel 4. + t_window: Time window for coincidence detection. + expected: Expected output (time and amplitude matches). + """ + result = prt.coinc_4( + ch1_times, + ch2_times, + ch3_times, + ch4_times, + ch1_ampl, + ch2_ampl, + ch3_ampl, + ch4_ampl, + t_window, + ) + # convert everything to list + result = ( + result[0].tolist(), + result[1].tolist(), + result[2].tolist(), + result[3].tolist(), + result[4].tolist(), + result[5].tolist(), + result[6].tolist(), + result[7].tolist(), + ) + assert result == expected + + +@pytest.mark.parametrize( + "ch1_times, ch2_times, ch3_times, ch1_ampl, ch2_ampl, t_window, expected", + [ + # Test case 1: Coincidence between Ch1 and Ch2, no events in Ch3 + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [4.0, 5.0, 6.0], # ch3_times (no overlap) + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + 0.2, # t_window + ( + [1.0, 2.0, 3.0], # ch1_times (coincidence) + [1.1, 2.1, 3.1], # ch2_times (coincidence) + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + ), + ), + # Test case 2: Coincidence between Ch1 and Ch2, but Ch3 overlaps for first event + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [1.05, 4, 5], # ch3_times + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + 0.2, # t_window + ( + [2.0, 3.0], # ch1_times (coincidence) + [2.1, 3.1], # ch2_times (coincidence) + [20, 30], # ch1_ampl + [25, 35], # ch2_ampl + ), + ), + # Test case 3: No matches between Ch1 and Ch2 + ( + [1.0, 2.0, 3.0], # ch1_times + [4.0, 5.0, 6.0], # ch2_times (no overlap) + [7.0, 8.0, 9.0], # ch3_times + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + 0.2, # t_window + ( + [], # No valid ch1_times + [], # No valid ch2_times + [], # No valid ch1_ampl + [], # No valid ch2_ampl + ), + ), + # Test case 4: Empty input + ( + [], # ch1_times + [], # ch2_times + [], # ch3_times + [], # ch1_ampl + [], # ch2_ampl + 0.2, # t_window + ( + [], # No valid ch1_times + [], # No valid ch2_times + [], # No valid ch1_ampl + [], # No valid ch2_ampl + ), + ), + ], +) +def test_coinc_2_anti_1( + ch1_times, ch2_times, ch3_times, ch1_ampl, ch2_ampl, t_window, expected +): + """ + Test the coinc_2_anti_1 function. + This function checks if the coincidence detection works correctly + for two channels with anti-coincidence on a third channel. + + Args: + ch1_times: List of timestamps for channel 1. + ch2_times: List of timestamps for channel 2. + ch3_times: List of timestamps for channel 3 (anti-coincidence). + ch1_ampl: List of amplitudes for channel 1. + ch2_ampl: List of amplitudes for channel 2. + t_window: Time window for coincidence detection. + expected: Expected output (time and amplitude matches). + """ + result = prt.coinc_2_anti_1( + ch1_times, ch2_times, ch3_times, ch1_ampl, ch2_ampl, t_window + ) + + # Convert result to lists for comparison + result = tuple(r.tolist() for r in result) + + assert result == expected + + +@pytest.mark.parametrize( + "ch1_times, ch2_times, ch3_times, ch4_times, ch1_ampl, ch2_ampl, ch3_ampl, t_window, expected", + [ + # Test case 1: Coincidence between Ch1, Ch2, and Ch3, no events in Ch4 + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [1.05, 2.05, 3.05], # ch3_times + [4.0, 5.0, 6.0], # ch4_times (no overlap) + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + [12, 22, 32], # ch3_ampl + 0.2, # t_window + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [1.05, 2.05, 3.05], # ch3_times + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + [12, 22, 32], # ch3_ampl + ), + ), + # Test case 2: Coincidence between Ch1, Ch2, and Ch3, but Ch4 overlaps + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [1.05, 2.05, 3.05], # ch3_times + [1.02, 4, 5], # ch4_times (overlaps with Ch1, Ch2, and Ch3) + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + [12, 22, 32], # ch3_ampl + 0.2, # t_window + ( + [2.0, 3.0], # ch1_times + [2.1, 3.1], # ch2_times + [2.05, 3.05], # ch3_times + [20, 30], # ch1_ampl + [25, 35], # ch2_ampl + [22, 32], # ch3_ampl + ), + ), + # Test case 3: No matches between Ch1, Ch2, and Ch3 + ( + [1.0, 2.0, 3.0], # ch1_times + [4.0, 5.0, 6.0], # ch2_times (no overlap) + [7.0, 8.0, 9.0], # ch3_times + [10.0, 11.0, 12.0], # ch4_times + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + [12, 22, 32], # ch3_ampl + 0.2, # t_window + ( + [], # No valid ch1_times + [], # No valid ch2_times + [], # No valid ch3_times + [], # No valid ch1_ampl + [], # No valid ch2_ampl + [], # No valid ch3_ampl + ), + ), + # Test case 4: Empty input + ( + [], # ch1_times + [], # ch2_times + [], # ch3_times + [], # ch4_times + [], # ch1_ampl + [], # ch2_ampl + [], # ch3_ampl + 0.2, # t_window + ( + [], # No valid ch1_times + [], # No valid ch2_times + [], # No valid ch3_times + [], # No valid ch1_ampl + [], # No valid ch2_ampl + [], # No valid ch3_ampl + ), + ), + ], +) +def test_coinc_3_anti_1( + ch1_times, + ch2_times, + ch3_times, + ch4_times, + ch1_ampl, + ch2_ampl, + ch3_ampl, + t_window, + expected, +): + """ + Test the coinc_3_anti_1 function. + This function checks if the coincidence detection works correctly + for three channels with anti-coincidence on a fourth channel. + + Args: + ch1_times: List of timestamps for channel 1. + ch2_times: List of timestamps for channel 2. + ch3_times: List of timestamps for channel 3. + ch4_times: List of timestamps for channel 4 (anti-coincidence). + ch1_ampl: List of amplitudes for channel 1. + ch2_ampl: List of amplitudes for channel 2. + ch3_ampl: List of amplitudes for channel 3. + t_window: Time window for coincidence detection. + expected: Expected output (time and amplitude matches). + """ + result = prt.coinc_3_anti_1( + ch1_times, + ch2_times, + ch3_times, + ch4_times, + ch1_ampl, + ch2_ampl, + ch3_ampl, + t_window, + ) + + # Convert result to lists for comparison + result = tuple(r.tolist() for r in result) + + assert result == expected + + +@pytest.mark.parametrize( + "ch1_times, ch2_times, ch3_times, ch4_times, ch1_ampl, ch2_ampl, t_window, expected", + [ + # Test case 1: Coincidence between Ch1 and Ch2, no events in Ch3 and Ch4 + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [4.0, 5.0, 6.0], # ch3_times (no overlap) + [7.0, 8.0, 9.0], # ch4_times (no overlap) + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + 0.2, # t_window + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + ), + ), + # Test case 2: Coincidence between Ch1 and Ch2, but Ch3 overlaps + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [1.05, 2.05, 5.0], # ch3_times (overlaps with Ch1 and Ch2) + [7.0, 8.0, 9.0], # ch4_times (no overlap) + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + 0.2, # t_window + ( + [3.0], # ch1_times + [3.1], # ch2_times + [30], # ch1_ampl + [35], # ch2_ampl + ), + ), + # Test case 3: Coincidence between Ch1 and Ch2, but Ch4 overlaps + ( + [1.0, 2.0, 3.0], # ch1_times + [1.1, 2.1, 3.1], # ch2_times + [4.0, 5.0, 6.0], # ch3_times (no overlap) + [1.05, 2.05, 8.0], # ch4_times (overlaps with Ch1 and Ch2) + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + 0.2, # t_window + ( + [3.0], # ch1_times + [3.1], # ch2_times + [30], # ch1_ampl + [35], # ch2_ampl + ), + ), + # Test case 4: No matches between Ch1 and Ch2 + ( + [1.0, 2.0, 3.0], # ch1_times + [4.0, 5.0, 6.0], # ch2_times (no overlap) + [7.0, 8.0, 9.0], # ch3_times + [10.0, 11.0, 12.0], # ch4_times + [10, 20, 30], # ch1_ampl + [15, 25, 35], # ch2_ampl + 0.2, # t_window + ( + [], # No valid ch1_times + [], # No valid ch2_times + [], # No valid ch1_ampl + [], # No valid ch2_ampl + ), + ), + # Test case 5: Empty input + ( + [], # ch1_times + [], # ch2_times + [], # ch3_times + [], # ch4_times + [], # ch1_ampl + [], # ch2_ampl + 0.2, # t_window + ( + [], # No valid ch1_times + [], # No valid ch2_times + [], # No valid ch1_ampl + [], # No valid ch2_ampl + ), + ), + ], +) +def test_coinc_2_anti_2( + ch1_times, + ch2_times, + ch3_times, + ch4_times, + ch1_ampl, + ch2_ampl, + t_window, + expected, +): + """ + Test the coinc_2_anti_2 function. + This function checks if the coincidence detection works correctly + for two channels with anti-coincidence on two other channels. + + Args: + ch1_times: List of timestamps for channel 1. + ch2_times: List of timestamps for channel 2. + ch3_times: List of timestamps for channel 3 (anti-coincidence). + ch4_times: List of timestamps for channel 4 (anti-coincidence). + ch1_ampl: List of amplitudes for channel 1. + ch2_ampl: List of amplitudes for channel 2. + t_window: Time window for coincidence detection. + expected: Expected output (time and amplitude matches). + """ + result = prt.coinc_2_anti_2( + ch1_times, + ch2_times, + ch3_times, + ch4_times, + ch1_ampl, + ch2_ampl, + t_window, + ) + + # Convert result to lists for comparison + result = tuple(r.tolist() for r in result) + + assert result == expected + + +@pytest.mark.parametrize( + "A_time, A_ampl, B_time, B_ampl, C_time, C_ampl, D_time, D_ampl, coincidence_window, coincidence_citeria, expected", + [ + # Test case 1: Coincidence between A and B only + ( + [1.0, 2.0, 3.0], # A_time + [10, 20, 30], # A_ampl + [1.1, 2.1, 3.1], # B_time + [15, 25, 35], # B_ampl + [], # C_time + [], # C_ampl + [], # D_time + [], # D_ampl + 0.2, # coincidence_window + [1, 1, 0, 0], # coincidence_citeria + { + "A_time [s]": [1.0, 2.0, 3.0], + "A_amplitude [mV]": [10, 20, 30], + "B_time [s]": [1.1, 2.1, 3.1], + "B_amplitude [mV]": [15, 25, 35], + "Sum_amplitude [mV]": [25, 45, 65], + }, + ), + # Test case 2: Coincidence between A, B, and C + ( + [1.0, 2.0, 3.0], # A_time + [10, 20, 30], # A_ampl + [1.1, 2.1, 3.1], # B_time + [15, 25, 35], # B_ampl + [1.05, 2.05, 3.05], # C_time + [12, 22, 32], # C_ampl + [], # D_time + [], # D_ampl + 0.2, # coincidence_window + [1, 1, 1, 0], # coincidence_citeria + { + "A_time [s]": [1.0, 2.0, 3.0], + "A_amplitude [mV]": [10, 20, 30], + "B_time [s]": [1.1, 2.1, 3.1], + "B_amplitude [mV]": [15, 25, 35], + "C_time [s]": [1.05, 2.05, 3.05], + "C_amplitude [mV]": [12, 22, 32], + "Sum_amplitude [mV]": [37, 67, 97], + }, + ), + # Test case 3: Coincidence between A and B with anti-coincidence on C + ( + [1.0, 2.0, 3.0], # A_time + [10, 20, 30], # A_ampl + [1.1, 2.1, 3.1], # B_time + [15, 25, 35], # B_ampl + [1.05, 4, 5], # C_time + [12, 22, 32], # C_ampl + [], # D_time + [], # D_ampl + 0.2, # coincidence_window + [1, 1, 2, 0], # coincidence_citeria + { + "A_time [s]": [2.0, 3.0], + "A_amplitude [mV]": [20, 30], + "B_time [s]": [2.1, 3.1], + "B_amplitude [mV]": [25, 35], + }, + ), + # Test case 4: No matches due to time window + ( + [1.0, 2.0, 3.0], # A_time + [10, 20, 30], # A_ampl + [4.0, 5.0, 6.0], # B_time + [15, 25, 35], # B_ampl + [], # C_time + [], # C_ampl + [], # D_time + [], # D_ampl + 0.1, # coincidence_window + [1, 1, 0, 0], # coincidence_citeria + { + "A_time [s]": [], + "A_amplitude [mV]": [], + "B_time [s]": [], + "B_amplitude [mV]": [], + "Sum_amplitude [mV]": [], + }, + ), + ], +) +def test_calculate_coincidence( + A_time, + A_ampl, + B_time, + B_ampl, + C_time, + C_ampl, + D_time, + D_ampl, + coincidence_window, + coincidence_citeria, + expected, +): + """ + Test the calculate_coincidence function. + This function checks if the coincidence detection works correctly + for various combinations of channels and criteria. + + Args: + A_time: List of timestamps for channel A. + A_ampl: List of amplitudes for channel A. + B_time: List of timestamps for channel B. + B_ampl: List of amplitudes for channel B. + C_time: List of timestamps for channel C. + C_ampl: List of amplitudes for channel C. + D_time: List of timestamps for channel D. + D_ampl: List of amplitudes for channel D. + coincidence_window: Time window for coincidence detection. + coincidence_citeria: List of criteria for coincidence and anti-coincidence. + expected: Expected output as a dictionary. + """ + result_df = prt.calculate_coincidence( + A_time, + A_ampl, + B_time, + B_ampl, + C_time, + C_ampl, + D_time, + D_ampl, + coincidence_window, + coincidence_citeria, + ) + + # Convert result DataFrame to dictionary for comparison + result = {col: result_df[col].tolist() for col in result_df.columns} + + assert result == expected