{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Point Source Injector" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
15:50:06 WARNING The current value of the parameter beta (-2.0) was above the new maximum -2.15. parameter.py:810\n", "\n" ], "text/plain": [ "\u001b[38;5;46m15:50:06\u001b[0m\u001b[38;5;46m \u001b[0m\u001b[38;5;134mWARNING \u001b[0m \u001b[1;38;5;251m The current value of the parameter beta \u001b[0m\u001b[1;38;5;251m(\u001b[0m\u001b[1;37m-2.0\u001b[0m\u001b[1;38;5;251m)\u001b[0m\u001b[1;38;5;251m was above the new maximum \u001b[0m\u001b[1;37m-2.15\u001b[0m\u001b[1;38;5;251m.\u001b[0m\u001b[1;38;5;251m \u001b[0m\u001b]8;id=751646;file:///Users/imartin5/software/miniforge3/envs/cosipy/lib/python3.12/site-packages/astromodels/core/parameter.py\u001b\\\u001b[2mparameter.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=49839;file:///Users/imartin5/software/miniforge3/envs/cosipy/lib/python3.12/site-packages/astromodels/core/parameter.py#810\u001b\\\u001b[2m810\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Defind the Crab spectrum\n", "\n", "alpha_inj = -1.99\n", "beta_inj = -2.32\n", "E0_inj = 531.0 * (alpha_inj - beta_inj) * u.keV\n", "xp_inj = E0_inj * (alpha_inj + 2) / (alpha_inj - beta_inj)\n", "piv_inj = 100.0 * u.keV\n", "K_inj = 7.56e-4 / u.cm / u.cm / u.s / u.keV\n", "\n", "spectrum_inj = Band()\n", "\n", "spectrum_inj.alpha.min_value = -2.14\n", "spectrum_inj.alpha.max_value = 3.0\n", "spectrum_inj.beta.min_value = -5.0\n", "spectrum_inj.beta.max_value = -2.15\n", "spectrum_inj.xp.min_value = 1.0\n", "\n", "spectrum_inj.alpha.value = alpha_inj\n", "spectrum_inj.beta.value = beta_inj\n", "spectrum_inj.xp.value = xp_inj.value\n", "spectrum_inj.K.value = K_inj.value\n", "spectrum_inj.piv.value = piv_inj.value\n", "\n", "spectrum_inj.xp.unit = xp_inj.unit\n", "spectrum_inj.K.unit = K_inj.unit\n", "spectrum_inj.piv.unit = piv_inj.unit" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Define the coordinate of the point source\n", "source_coord = SkyCoord(l=184.5551, b=-05.7877, frame=\"galactic\", unit=\"deg\")\n", "\n", "# define the Crab point source\n", "point_source = PointSource(\n", " \"Crab\", l=source_coord.l.deg, b=source_coord.b.deg, spectral_shape=spectrum_inj\n", ")\n", "\n", "# define the model. The model can contain multiple point sources.\n", "model = Model(point_source)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Read orientation file\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Read the 3-month orientation\n", "# It is the pointing of the spacecraft during the the mock simlulation\n", "ori = SpacecraftHistory.open(orientation_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get the expected counts and save to a data file\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Define an injector by the response\n", "injector = SourceInjector(response_path=response_path)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 2.78 s, sys: 146 ms, total: 2.92 s\n", "Wall time: 2.92 s\n" ] }, { "data": { "image/png": "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9tqruH3rrbeK26FDh3ZPSwEAKi0QHX300cVMsqR0O3r06PjUpz5VPE6DrFMX2p577tl9rQUAqKQus2OOOSYWLVoU9957b6xatSo+97nPxQUXXFA898YbbxRdaunYb7/9urO9AACVtVL1aaedVhwft/vuu8ctt9yyJS8NAFD5gWjq1KnFbaoA/emf/ul6zy9fvrxjyv0ee+yxJW0EAKjMQPTv//7vxRihNO2+s0A0Y8aM+PnPf15cU1rBGgAgi81dS0rbdwAA1Owss66sXLkyXn755Z54aQCA8laIDj/88HUepwrQlClTimNDttlmm81vHQBApQWiFIDSmKC1u8I21C2WrktHZ+OLAACqustsY8cFpet22GGHOPvsszenXQAAlVkh+u53v9tx/0c/+lFRAfrSl7603uKL/fv3j5122qmoDg0YMKD7WgsAUO5AlFanXjsQpSpQWmNo7fMAANlMu7/99tuLW7vZAwDZBqKdd9654/6HH34YLS0tGxxfNGzYsM39NgAAlb0w4/333x+33nprzJ8/f4PXWKkaAKjZQHTffffF5ZdfXty3IjUAkOVK1WkMkSAEAGRdIVq0aFHRHTZo0KBobGyMXXfdtZhin85VovPOOy9mz54d/fr1Kx5/7nOfi5/85CflbhYAUM2BqK6uLt599934y7/8yxg3blxUg/Hjx8dRRx1V7mYAALXSZXbQQQcVXWZpI1cAgCwD0WmnnRY77rhjMdPs17/+dbc2asWKFXHjjTfGd77znTj22GPj0EMPLb5PZ1atWlVsLnv88cdHQ0NDnHXWWfHcc891eu0111wTxx13XFxwwQXx+uuvd2ubAYAMu8x++MMfFuOH3n777bj44ouLcDR8+PCOMTolaUzRlVdeuUmv/d5778XUqVOL9YtGjRoVzz///AavvfTSS2PmzJlx4oknRn19fRGcUtfYVVddVYwTKkl7qu22225F+6ZNmxYXXnhh3HLLLbHNNttsxk8PANSSzQ5EL7zwQseO9qnrbNmyZUU4Wls6vzmDrFO4uvvuu4vbV155Jc4888xOr0uDpB966KE455xz4utf/3px7stf/nKceuqpRdUoHSWjR4/uuP+Nb3wjpk+fHrNmzVpvHzYAID+b3WVWCjxrT70vPf74+U01cODAIgz9MY8++mhR8Rk7dmzHuVS1St1sKewsWbJkg19bCnIAAJtdITr66KPL/u699tprRTfZ4MGD1zm/1157Fbdz584tut3StiKp0rTPPvsUQShVn9K5tatGa/t4tWvevHk9/JMAAFUZiC666KIotxRaOqsklc6lYJOsWbMmrrvuuvjd734X/fv3L8YlXXbZZTFkyJBOX/fee+8txjABAHnYor3Myi1N+U+LQXbW5VZ6Ptl+++3j+uuv3+jXTV1wBx988DoVosmTJ3dLmwGAGgpEXY3P6a3d7tN4odWrV3c6Fb/0/OYYOnRocQAAedjsQHTSSSdt1AyyntztPnWNvfXWW+udL43/EWoAgB6fZdbZzLLOjp6SxgItWLAgPvjgg/Wm45eeBwDo8Wn3nSmtT9TTDj/88GLAdBoEvXZ3WVpjKM0g66muOgCgtmx2l1laCfrjUhhJFZs0rX3+/PnxxS9+MU4++eTNev20mnRra2tH99eTTz4ZS5cuLe6fcMIJxQyxFHrGjBlTzCBbvnx5jBgxImbMmBGLFy+OCRMmxJZqamoqjtQOAKB2bXYg2nfffTs9v//++xc7yn/zm9+Mp59+utg7bHPcfvvtRbApeeyxx4ojSa9fmjKftg1JlaAHHnigCC4jR44sptRvqH2bIu2Nlo7m5uZobGzc4tcDADKadp/Cyt57710Mpv7FL36xzhT2jXXHHXds1HVpJtm5555bHAAAZRlU3Zk0yHnOnDkdq0UDANRkhej888/v9HxaDDGtCL1ixYp1FkkEAKjZ3e47U9rlPh12kwcAanoMUVdrDKXn0sar1Ty2xywzAMhDt+92n6pCaVB12nH+kEMOqeouM7PMgEq2qHVR1F9RH9WiblBdTBozKcaNHlfupkBt7XYPkKMULKIloq29LRa2LIyq0RIx8ZGJAhEVqap3uwfIUaqypGDRsrIlqqmalQJcNbWZvGxxIHrxxReLNYNmzZpVLIyYuss++9nPxoknnhj77LNP97QSgA6py6naup1S115VVbPIzhYFohSEpkyZss4mru+++2488cQTxVYb55xzTpx00knd1VYAgMpamDEtvJjCUFtbW6fPp/Pp+dICjQAANVchSpuvptCTZpVttdVWccABB8QOO+wQ77zzTjzzzDPx4YcfFlWju+66K773ve9FNTLtHgDysNmB6KWXXipu08aq//qv/xrbb799x3Op2+yss86KJUuWFGOMqpVp9wCQh83uMkuVoFQdSqFh7TCUfOITn4gjjzyy4zoAgJoMRP369evYyLUzpfOl6wAAai4QDR8+vBgjdP/998ezzz67znPp8fTp04sKUroOAKAmxxDtv//+8eabbxa7248fP77oNktdZWn80PLlyzs2eE2DrQEAarJClNYXqqurK+6n8JOCUApI6ba0JlFapDEt0AgAUJOBaOjQoTF58uSOUJSUglCy7bbbxiWXXFJcBwBQsytV77vvvvHLX/6yGEeUtu54//33iyCUtu44+uijiwpRNbMOEQDkYYv3Mit1i9Vi15h1iAAgD5sciNJii8mgQYPWW3+oJA2qToOtSws3AgDUzBiitCXH1772teJIG7huSHouXXPyySdX9UrVAEAeNikQzZw5sxg4nabXH3PMMRu8Lo0fStWjdO3DDz/cHe0EAKiMQDR79uxibaG0BlFXK1D379+/uCYFohdeeKE72gkAUBmBaPHixcXtiBEj/ui1pWtKXwMAUBOB6A9/+MN66w1t7NcAANREICotwvjqq6/+0WtL16y9cCMAQNUHol133bWoDj311FPx+uuvb/C69Fy6Jo032mWXXbqjnQAAlRGIvvCFLxS3a9asiW9/+9vx+OOPdzrl/sILLyyuSf78z/88qnml6u9+97txzTXXlLspAEClLMw4duzYuOWWW2L16tXFJq4TJ04susTq6+uL5xcsWBAtLS0dY4wGDBgQxx13XFQrK1UDQB42qUKU1h8699xzi8CTusPSbdq/bM6cOcWR7peeS8fZZ58dO+ywQ8+1HgCgHLvdH3/88XHWWWcVgScp3a59P92eccYZccIJJ3RHGwEAKm9z12984xtx0EEHxbRp0+I3v/lNLFu2rDg/dOjQYpzRX/3VX8Vuu+3W3W0FAKis3e5T4EkDqwEAsusyAwCoNQIRAJA9gQgAyJ5ABABkTyACALInEAEA2dvsafc5SHuZpaO1tbXcTQEAepBA1AV7mQFAHnSZAQDZE4gAgOwJRABA9gQiACB7AhEAkD2BCADInkAEAGRPIAIAsicQAQDZE4gAgOzZugOAXrOodVHUX1FfVe943aC6mDRmUowbPa7cTaEHCUQA9EqoiJaItva2WNiysLre8ZaIiY9MFIhqnEAEQI9LFZYUKlpWtlRdRSuFuGprN5tOIOpCU1NTcbS2tm7GWwtASepuqsYup9S9V3UVLTaLQNSFhoaG4mhubo7GxsbNe4cBgIpnlhkAkD2BCADInkAEAGRPIAIAsicQAQDZE4gAgOwJRABA9gQiACB7AhEAkD2BCADInkAEAGRPIAIAsicQAQDZE4gAgOwJRABA9gQiACB7AhEAkD2BCADInkAEAGRPIAIAstc/+3egC01NTcXR2trqbQKAGiYQdaGhoaE4mpubo7Gxsfd+KwBAr9JlBgBkTyACALInEAEA2ROIAIDsCUQAQPYEIgAgewIRAJA9gQgAyJ5ABABkTyACALInEAEA2ROIAIDsCUQAQPYEIgAgewIRAJA9gQgAyJ5ABABkTyACALLXP/t3AAD+iEWti6L+ivqqeZ/qBtXFpDGTYtzoceVuStUQiACgi2ARLRFt7W2xsGVh9bxPLRETH5koEG0CgQgANiBVWVKwaFnZUlXVrBTgqqnNlUAgAoANSF1O1dbtlLr2qqqaVSEMqgYAsicQAQDZE4gAgOwJRABA9rILRC+//HIcdthhcdNNN5W7KQBAhcgqELW1tcW1114be+65Z7mbAgBUkKym3f/qV7+KvfbaKz744INyNwUAqCAVWSFasWJF3HjjjfGd73wnjj322Dj00EPj/vvv7/TaVatWxZQpU+L444+PhoaGOOuss+K5555b77r33nsv7rzzzjjttNN64ScAAKpJRQaiFF6mTp0a8+bNi1GjRnV57aWXXhp33HFHHHnkkXHeeedF3759Y/z48fHSSy+tc931118fJ554YtTV1fVw6wGAalORgWjHHXeMu+++u6jonHPOORu8bvbs2fHQQw/FmWeeGeeee26MHTs2rrzyyth5552LqlHJq6++Gq+88kp85Stf6aWfAACoJhU5hmjgwIFFKPpjHn300ejXr18RhEoGDRpUdLNdd911sWTJkhg2bFi88MILMX/+/DjhhBOKa1pbW4uv+/3vfx8XXXRRj/4sAEDlq8hAtLFee+21qK+vj8GDB69zPg2cTubOnVsEohSYjjjiiI7nr7766hg+fHiccsopnb7usmXL4u233+54nLruAIDaVdWBKIWWzipJpXMp2CRbbbVVcaxdRdp66603OJ7o3nvvLcYwAQB5qOpAtHLlyhgwYECnXW6l5ztz8cUXd/m6qaJ08MEHr1Mhmjx58ha3FwCoTFUdiFKlZ/Xq1Z1OxS89vzmGDh1aHABAHipyltnGSl1ja4/1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OZ5IICqTNEB6wIAB650vTe1Nzyc777xzPPbYY73ePqh1G/sZTP/netVVV/V6+yAHKzfyc/hxafhIdzOGqExSuk1rmXQ2/bD0POAzCLVsUAX9LRSIyiSVA1Op8ONK54YOHVqGVkE+fAah/HasoL+FAlGZpHUZFixYEB988ME659MiVqXnAZ9BqGWjKuhvoUBUJocffngxdffee+9dp0SYVsIdPXp0xwwzwGcQatXhFfS30KDqHjBt2rRiqm6p5Jd2xl66dGlxP62hkFaZTr/oMWPGxHXXXRfLly8vZq7MmDGjmFU2YcKEnmgWZMNnEMpvWpX9LbTbfQ846aSTil9mZ9Iu9WnthNLo+dL+LekfTdobKe3fsv/++/dEsyAbPoNQfidV2d9CgQgAyJ4xRABA9gQiACB7AhEAkD2BCADInkAEAGRPIAIAsicQAQDZE4gAgOwJRABA9gQiACB7NncFat6iRYvia1/72nrnR40aFTfeeGNx//nnn4/zzz+/072WKsXFF18cTzzxxHrnr7rqqvj85z9fljZBrRCIgC328TCxIUcffXTxRz1Xf/3Xfx2/+93vivuf/vSn4+abb+70ug8//DC++tWvFrfJIYccEpdcckmvthVyIxAB2fmbv/mbGDJkSHziE5/o1e+bAuF1111X3J83b140NzfHHnvssd51jz/+eEcYKn1dcswxx8Tee+9d3J8yZUqvtRtyIBAB3e5LX/pSp3/oR44cWRHv9le+8pWydId9+ctfjn/7t3+Ltra24vGMGTM6fZ/S+ZLtt98+vvjFL3ZUikoEIuheAhHQ7Q444ICimrEp43p++tOfxhtvvBH33HNPLFmyJEaMGBGnnHJKHHXUUUW15IYbboiHH3443n///aK76dRTT10nIPSkO+64I6699tqOx+l7n3baacX9Dz74IO6+++6iqpO6w1auXBk77LBD/Nmf/Vl8/etfjz/5kz/p+Lqddtop9ttvv3jmmWeKx+nn+du//dvo3////lO8bNmy+M1vftPxOP38az8P9AyfMqAi/PznPy+6kErefPPNmDx5cqxYsSLuv//+mDNnTsdzr732Wnz/+9+PK664Ir7whS/0aLtS2Fk7DJ111llFUEvmz58f3/72t2Px4sXrfM3SpUuLKk8KPN/73vdizJgx63R/lQLRu+++G88991xHBSj5z//8z44KUvLHgiXQPQQioNulP/jLly/vtCtt2LBhnX5NCkOpsrTnnnvGfffdF2+//XZxPoWe5OCDDy6qLdOmTSsqRu3t7fHLX/6yRwNRaseVV17Z8fi8886LcePGFffXrFlThLJSGEpdWw0NDbHtttvGs88+Gy+//HKsWrWqGAydusU+9alPFdelqlYav9Ta2lo8TsFp7UD04IMPdtz/zGc+E7vvvnuP/XzA/xGIgG6XKiPp+LgUdjYUiFJX0o9//OPo06dP0bV0+eWXdzyXAsOll15a3E9B6Be/+EVx/5VXXumx394DDzwQU6dOLb5falOqBI0dO7bj+aeeeqqoYiX9+vWLn/3sZ7HLLrt0DNo+/fTTiy7AFIruuuuu+Lu/+7viuYEDBxbBKXUNJk8++WQRjlJImjt3brz++usd30N1CHqPQARUhBQSUvBIdt5553WeW7vLKY0tKmlpaemx9pTWJ+rbt29MmDBhvXDyP//zPx33U7Wo1I3WmVQtWlvqNisFohSYZs6cWQz0TiGsZMCAAXHkkUd2288DdE0gArrdRRddtMnVjaFDh64TBjb0XKrGlKTqTU9LA5o7q2ptShj7ePfh6NGjY7fddovf/va3xeMUhNL71dTUtE5VbLvtttuitgMbTyACKkJXM6nWDkG9Zddddy1mjaUKTgp4aRZcCjIldXV1HfdTN1jqItuQ1B32calKlAaSJy+99NI646YS3WXQuwQigE784z/+YzEgOo0DSoO4L7zwwrj66qs7Bjl/9rOf7bg2haY04PvAAw9c73Vmz569XsWrNJ3++uuvL7rbUqUrjUEqSdP20wBzoPcIRECvzTJLlZLjjjuuKt7x1NY0sPucc84p1kVKXWRpYPU111xTDJ5OXVppPaS04nSSptcfeuihRVdYmjb/+9//Pl588cViFlqqMKUZYx/vBkwDyZ9++uni8UcffdTxXBo7ZO0h6F0CEdBrs8zSYOlqCUSl0JJCUZoh9t5778U777wT3/rWt4pqThpX9M///M8d6xCtXr06HnrooU16/dQtVgpEHz8P9K6+vfz9AKpKqgJddtllsfXWW3csuphCURrvkypFaWp+qiKlLrQ0riiNd9pmm22KrrU0cyx1u6UZdJ1JayuldYvWltYsqpQtTiAnfdp7Y5oGQBl9fJuQtTd3LW2cWg3S9iALFixYby+zq666Kj7/+c+XsWVQ/XSZAdm5+eabi9tRo0ZVVSBKW5g88cQT5W4G1CRdZgBA9nSZAQDZUyECALInEAEA2ROIAIDsCUQAQPYEIgAgewIRAJA9gQgAyJ5ABABkTyACACJ3/w9YEW2NuXHIdQAAAABJRU5ErkJggg==", "text/plain": [ "