{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
\n", "\n", "**This is a fixed-text formatted version of a Jupyter notebook**\n", "\n", "- Try online[![Binder](https://static.mybinder.org/badge.svg)](https://mybinder.org/v2/gh/gammapy/gammapy-webpage/v0.19?urlpath=lab/tree/tutorials/analysis/1D/spectral_analysis.ipynb)\n", "- You may download all the notebooks in the documentation as a\n", "[tar file](../../../_downloads/notebooks-0.19.tar).\n", "- **Source files:**\n", "[spectral_analysis.ipynb](../../../_static/notebooks/spectral_analysis.ipynb) |\n", "[spectral_analysis.py](../../../_static/notebooks/spectral_analysis.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Spectral analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prerequisites \n", "\n", "- Understanding how spectral extraction is performed in Cherenkov astronomy, in particular regarding OFF background measurements. \n", "- Understanding the basics data reduction and modeling/fitting process with the gammapy library API as shown in the [first gammapy analysis with the gammapy library API tutorial](../../starting/analysis_2.ipynb)\n", "\n", "## Context\n", "\n", "While 3D analyses allow in principle to consider complex field of views containing overlapping gamma-ray sources, in many cases we might have an observation with a single, strong, point-like source in the field of view. A spectral analysis, in that case, might consider all the events inside a source (or ON) region and bin them in energy only, obtaining 1D datasets. \n", "\n", "In classical Cherenkov astronomy, the background estimation technique associated with this method measures the number of events in OFF regions taken in regions of the field-of-view devoid of gamma-ray emitters, where the background rate is assumed to be equal to the one in the ON region. \n", "\n", "This allows to use a specific fit statistics for ON-OFF measurements, the wstat (see `~gammapy.stats.fit_statistics`), where no background model is assumed. Background is treated as a set of nuisance parameters. This removes some systematic effects connected\n", "to the choice or the quality of the background model. But this comes at the expense of larger statistical uncertainties on the fitted model parameters.\n", "\n", "**Objective: perform a full region based spectral analysis of 4 Crab observations of H.E.S.S. data release 1 and fit the resulting datasets.**\n", "\n", "## Introduction\n", "\n", "Here, as usual, we use the `~gammapy.data.DataStore` to retrieve a list of selected observations (`~gammapy.data.Observations`). Then, we define the ON region containing the source and the geometry of the `~gammapy.datasets.SpectrumDataset` object we want to produce. We then create the corresponding dataset Maker. \n", "\n", "We have to define the Maker object that will extract the OFF counts from reflected regions in the field-of-view. To ensure we use data in an energy range where the quality of the IRFs is good enough we also create a safe range Maker.\n", "\n", "We can then proceed with data reduction with a loop over all selected observations to produce datasets in the relevant geometry.\n", "\n", "We can then explore the resulting datasets and look at the cumulative signal and significance of our source. We finally proceed with model fitting. \n", "\n", "In practice, we have to:\n", "- Create a `~gammapy.data.DataStore` poiting to the relevant data \n", "- Apply an observation selection to produce a list of observations, a `~gammapy.data.Observations` object.\n", "- Define a geometry of the spectrum we want to produce:\n", " - Create a `~regions.CircleSkyRegion` for the ON extraction region\n", " - Create a `~gammapy.maps.MapAxis` for the energy binnings: one for the reconstructed (i.e. measured) energy, the other for the true energy (i.e. the one used by IRFs and models)\n", "- Create the necessary makers : \n", " - the spectrum dataset maker : `~gammapy.makers.SpectrumDatasetMaker`\n", " - the OFF background maker, here a `~gammapy.makers.ReflectedRegionsBackgroundMaker`\n", " - and the safe range maker : `~gammapy.makers.SafeRangeMaker`\n", "- Perform the data reduction loop. And for every observation:\n", " - Apply the makers sequentially to produce a `~gammapy.datasets.SpectrumDatasetOnOff`\n", " - Append it to list of datasets\n", "- Define the `~gammapy.modeling.models.SkyModel` to apply to the dataset.\n", "- Create a `~gammapy.modeling.Fit` object and run it to fit the model parameters\n", "- Apply a `~gammapy.estimators.FluxPointsEstimator` to compute flux points for the spectral part of the fit.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup\n", "\n", "As usual, we'll start with some setup ..." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:46.539876Z", "iopub.status.busy": "2021-11-22T21:07:46.538955Z", "iopub.status.idle": "2021-11-22T21:07:46.714795Z", "shell.execute_reply": "2021-11-22T21:07:46.715028Z" } }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:46.717258Z", "iopub.status.busy": "2021-11-22T21:07:46.716950Z", "iopub.status.idle": "2021-11-22T21:07:46.965593Z", "shell.execute_reply": "2021-11-22T21:07:46.965780Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gammapy: 0.19\n", "numpy: 1.21.4\n", "astropy 4.3.1\n", "regions 0.5\n" ] } ], "source": [ "# Check package versions\n", "import gammapy\n", "import numpy as np\n", "import astropy\n", "import regions\n", "\n", "print(\"gammapy:\", gammapy.__version__)\n", "print(\"numpy:\", np.__version__)\n", "print(\"astropy\", astropy.__version__)\n", "print(\"regions\", regions.__version__)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:46.968468Z", "iopub.status.busy": "2021-11-22T21:07:46.968171Z", "iopub.status.idle": "2021-11-22T21:07:47.263297Z", "shell.execute_reply": "2021-11-22T21:07:47.263502Z" } }, "outputs": [], "source": [ "from pathlib import Path\n", "import astropy.units as u\n", "from astropy.coordinates import SkyCoord, Angle\n", "from regions import CircleSkyRegion\n", "from gammapy.maps import MapAxis, RegionGeom, WcsGeom\n", "from gammapy.modeling import Fit\n", "from gammapy.data import DataStore\n", "from gammapy.datasets import (\n", " Datasets,\n", " SpectrumDataset,\n", " SpectrumDatasetOnOff,\n", " FluxPointsDataset,\n", ")\n", "from gammapy.modeling.models import (\n", " ExpCutoffPowerLawSpectralModel,\n", " create_crab_spectral_model,\n", " SkyModel,\n", ")\n", "from gammapy.makers import (\n", " SafeMaskMaker,\n", " SpectrumDatasetMaker,\n", " ReflectedRegionsBackgroundMaker,\n", ")\n", "from gammapy.estimators import FluxPointsEstimator\n", "from gammapy.visualization import plot_spectrum_datasets_off_regions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load Data\n", "\n", "First, we select and load some H.E.S.S. observations of the Crab nebula (simulated events for now).\n", "\n", "We will access the events, effective area, energy dispersion, livetime and PSF for containement correction." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:47.265860Z", "iopub.status.busy": "2021-11-22T21:07:47.265543Z", "iopub.status.idle": "2021-11-22T21:07:47.285736Z", "shell.execute_reply": "2021-11-22T21:07:47.285921Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "No HDU found matching: OBS_ID = 23523, HDU_TYPE = rad_max, HDU_CLASS = None\n", "No HDU found matching: OBS_ID = 23526, HDU_TYPE = rad_max, HDU_CLASS = None\n", "No HDU found matching: OBS_ID = 23559, HDU_TYPE = rad_max, HDU_CLASS = None\n", "No HDU found matching: OBS_ID = 23592, HDU_TYPE = rad_max, HDU_CLASS = None\n" ] } ], "source": [ "datastore = DataStore.from_dir(\"$GAMMAPY_DATA/hess-dl3-dr1/\")\n", "obs_ids = [23523, 23526, 23559, 23592]\n", "observations = datastore.get_observations(obs_ids)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define Target Region\n", "\n", "The next step is to define a signal extraction region, also known as on region. In the simplest case this is just a [CircleSkyRegion](http://astropy-regions.readthedocs.io/en/latest/api/regions.CircleSkyRegion.html)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:47.288665Z", "iopub.status.busy": "2021-11-22T21:07:47.288266Z", "iopub.status.idle": "2021-11-22T21:07:47.289578Z", "shell.execute_reply": "2021-11-22T21:07:47.289736Z" } }, "outputs": [], "source": [ "target_position = SkyCoord(ra=83.63, dec=22.01, unit=\"deg\", frame=\"icrs\")\n", "on_region_radius = Angle(\"0.11 deg\")\n", "on_region = CircleSkyRegion(center=target_position, radius=on_region_radius)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create exclusion mask\n", "\n", "We will use the reflected regions method to place off regions to estimate the background level in the on region.\n", "To make sure the off regions don't contain gamma-ray emission, we create an exclusion mask.\n", "\n", "Using http://gamma-sky.net/ we find that there's only one known gamma-ray source near the Crab nebula: the AGN called [RGB J0521+212](http://gamma-sky.net/#/cat/tev/23) at GLON = 183.604 deg and GLAT = -8.708 deg." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:47.295772Z", "iopub.status.busy": "2021-11-22T21:07:47.295165Z", "iopub.status.idle": "2021-11-22T21:07:47.511786Z", "shell.execute_reply": "2021-11-22T21:07:47.511979Z" }, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQ8AAAEHCAYAAACwfMNTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAStElEQVR4nO3dfbBcdX3H8ffHJEAegBACiiH1XmkxRKqSxkKNE8SnoYLo+MAUhYKobW1EUHwqOlbHh0FTEetUR0dEWlBAiCiMDzw0BWIl0xBCQgxK5UYrZDRehCQYgci3f5zfks3N3t1zf3fPPtz7ec3s7Nlzzp797t69n/2dp99RRGBmNlZP63YBZtafHB4jSFK3axhNL9fWy3r9c+vl+prV5vDY26PdLqCJHd0uYDSS/Lnl6+X6Rq3N4bE3bwQyK8HhYWZZ1M97W+bOnRsDAwNtXebQ0BCDg4NtXWa7uLY8vVwb9HZ9Q0NDADE8PLxXQ2Nq58tpn4GBAdasWdPtMswmtMWLFzfcaOrVFjPL4vAwsywODzPL4vAwsywODzPL4vAwsywODzPL4vAwsywODzPL4vAwsywODzPL4vAwsywODzPL4vAwsywODzPL4vAws6ZSh0B7cXiYWVMPP/xww/EODzPL4vAws6ZG6+fY4WFmTS1atKjheIeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZFoeHmWVxeJhZlkrDQ9J8SSslbZK0UdK5I6a/V1JImls3brmkNZKOr7I2Mxufqlseu4DzI+Io4DhgmaSFUAQL8Argl7WZJS1Ig0uBZRXXZmbjUGl4RMSWiFibhrcDm4B5afLngPcD9RfCnAI8mcapytrMbHw6ts1D0gBwDLBa0inAAxFxd/08EbERmAGsAr7UqdrMrBxJT/2oT+3QC84CrgXOo1iV+RDwykbzRsQ5TZYjYEft8Zw5c9pap5ntbWhoCEmP1h5LmhURUXnLQ9I0iuC4IiJWAEcAg8DdkjYDhwNrJT2j1bKiMLN2GxwcrLJ0MwMGBwep/7+LiICKWx6ppXAJsCkiLgKIiA3AoXXzbAYWR8Rvq6zFzNqr6pbHEuAM4KWS1qXbqyp+TTPrgEpbHhGxihZ7TSJioMoazKwaPsLUzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLI4PMwsi8PDzLJMLTOTpCXAR4FnpecIiIh4dnWlmVkvKxUewCXAu4E7gT9WV46Z9Yuy4fFIRHy/0krMrK+UDY+VkpYDK4DHaiMjYm0lVZlZzysbHsem+8V14wJ4aXvLMbN+USo8IuKEqgsxs/5SaletpAMlXSRpTbp9VtKBVRdnZr2r7HEeXwO2A6em2zbg0qqKMrPeV3abxxER8fq6xx+TtK6CesysT5RteeyU9OLag3TQ2M5qSjKzflC25fEO4LK0nUPAQ8BZVRVlZr2v7N6WdcDzJR2QHm+rsigz631Nw0PS6RFxuaT3jBgPQERcVGFtZtbDWrU8Zqb7/RtMizbXYmZ9pGl4RMSX0+DNEfGj+mlpo6mZTVJl97Z8oeQ4M5skWm3z+CvgRcAhI7Z7HABMqbIwM+ttrbZ57APMSvPVb/fYBryhqqLMrPe12uZxK3CrpK9HxC86VJOZ9YGyB4n9PvXn8Vxgv9rIiPAp+WaTVNkNplcA9wKDwMeAzcD/tHqSpPmSVkraJGmjpHPT+OWS7pW0XtK3Jc2ue87ydObu8WN9M2bWOWXD4+CIuAR4IiJujYizgeNKPG8XcH5EHJXmXyZpIXATcHREPA/4GfBPAJIWpOctBZaN4X2YWYeVXW15It1vkXQS8CBweKsnRcQWYEsa3i5pEzAvIm6sm+0Odm98nQI8SXEAmkrWZmZdUDY8PpFOijuf4viOAyh6Uy9N0gBwDLB6xKSzgasAImKjpBnAKuB9Y1m+mXWWIqo/ylzSLOBW4JMRsaJu/Ico+kV9XZQoRMVJNTtqj+fMmTNjeHi4gorNrObggw/moYce+n3dqFkREWUv+nQI8HZggLrWStr20eq504BrgStGBMeZwMnAy8oER3q9YPf5NixevNjn15hVbHBwkOHh4Zkjx5ddbfkOcDtwM2O46FNqKVwCbKo/A1fSicAHgOMj4vejPd/MelfZ8JgRER/IWP4S4AxgQ123hRcA/wrsC9yUTu+/IyL+IWP5ZtYlZcPjBkmviojvjWXhEbGKxntNxrQcM+s9ZY/zOJciQHZK2iZpuyT3JmY2iZXthrBRZ0BmNom1OiV/QUTcK2lRo+m+Vq3Z5NWq5XE+xS7azzaY5mvVmnVRrS/hRjpx/FarU/Lfnu59rVoz20Or1ZbXNZtef9CXmVWvWWtjtPmqaoW0Wm15dZNpATg8zCpWNjDKPL+dQdJqteUtbXslM5tQSh3nIelTIzrsOUjSJyqrysyA8bc6qlxe2YPE/joiHq49iIjfAa9qWxVmtgdJbQ+Odi+7bHhMkbRv3YtPpzg3xcwmqbLntlwO3CLpUooNpWcDl1VWlZn1vLKHp39G0nrg5RQnun08In5YaWVmk1RVqyuNXmc8e1/KtjwANgG7IuJmSTMk7R8R27Nf2cz6Wtm9LW8HrgFqF76eB1xXUU1m1gfKbjBdRtGxzzaAiLgPOLSqosys95UNj8ci4vHaA0lTKTacmtkkVTY8bpV0ATBd0iuAbwHXV1eWmfW6suHxQWArsAH4e4puBD9cVVFmk1GVB4ZV8Zpld9U+Kek64LqI2Jr1SmbWVG23aScDZDy7apu2PFT4qKTfUlzo+qeStkr6SPYrmtmE0Gq15TyKvSwvjIiDI2IOcCywRNKYLjdpZhNLq/D4W+C0iBiqjYiI+4HT0zQzm6Rahce0iPjtyJFpu8e0akoys37QKjwez5xmZhNcq70tzx/l4k4C9qugHrNJLyI6ssdlvF0StuqGcMq4lm5mE9ZYzqo1sw6p8piPdnWCXPYIUzPrgnZfNqGdy3N4mPW4dvzDR0Tbg8jhYWZZHB5mfWA8LYduXTHOzHpIJy5gXZZbHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkqDQ9J8yWtlLRJ0kZJ56bxcyTdJOm+dH9Q3XOWS1oj6fgqazOz8am65bELOD8ijgKOA5ZJWgh8ELglIv4MuCU9RtKC9LylwLKKazOzcag0PCJiS0SsTcPbgU3APOA1wGVptsuA16bhKcCTQFBclc7MelTHtnlIGgCOAVYDT4+ILVAEDHBoGt4IzABWAV/qVG1mNnYd6QBZ0izgWuC8iNjW7CpYEXFOk+UI2FF7PGfOnHaWaWYNDA0NIenRulGzIiIqb3lImkYRHFdExIo0+teSDkvTDwN+U2ZZUZhZuw0ODlZTtJk9ZXBwkPr/u0hduFe9t0XAJcCmiLiobtJ3gTPT8JnAd6qsw8zar+rVliXAGcAGSevSuAuAC4GrJb0V+CXwxorrMLM2qzQ8ImIVo+81eVmVr21m1fIRpmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWxeFhZlkcHmaWRRHR7RqyzZ07NwYGBrKfPzQ0xODgYPsKqkA/1Aj9UadrzDM0NBTDw8N7NTT6OjzGS9KjETGz23U00w81Qn/U6Rrby6stZpbF4WGTibpdQAn9UCPg1RZFj38A/VBjv+iHz7IfaqyZ1OFhZvkm7GqLpLMkndztOswmqqndLqAdJG0GtgN/BHZFxOI06VRJJwK/joiP180/BVgDPBARJ6dx7wbeBgSwAXhLRPxB0lnACcBOYAswDTgaODUiHm9T/XvUI2k+8O/AM4Anga9ExOc7UUuD2vYDbgP2pfi+XBMR/5ymzQa+mmoI4GzgOT1W44nA54EpwFcj4sJufI6ploZ/17rpI78HXamztIjo+xuwGZg7YtxZwJvT8FUjpr0H+AZwQ3o8DxgCpqfHVwNn1S3nTWn4lnR/AXBMG+sfWc9hwKI0vD/wM2BhJ2ppUJuAWWl4GrAaOC49vgx4WxreB5jdSzVSBMbPgWen+u7u1ufY7O/a5HvQlTrL3ibsakvySLp/asOOpMOBkyh+MetNBaZLmgrMAB6sm7Yt3W9N949T/MqNW6N6ImJLRKxNw9uBTRQBV2ktjURhR3o4Ld1C0gHAUuCSNN/jEfFwL9UI/CXwvxFxfxS/1FcCr+lGjanOUf+uTb6XHa+zrIkSHgHcKOlOSX/XYt6LgfdTNBuLJ0c8APwL8EuK5uEjEXFjRbW2rKeepAHgGIpf066QNEXSOuA3wE0RsZri13wrcKmkuyR9VVLXDm4apcZ5wP/VzfYrdodwVzX4u15Mk+9BT+p206dNzcFnpvtDKZqmS0eZ72Tgi2n4JexuHh4E/CdwCMWv1nXA6R2ou2E9ddNnAXcCr+v2Z5zqmQ2spFjvXgzsAo5N0z4PfLzHanwjxXaO2rQzgC/0QI17/F1bfQ969TYhWh4R8WC6/w3wbYrmaiNLgFPSBtYrgZdKuhx4OTAUEVsj4glgBfCiygsfvR4kTQOuBa6IiBUdqKWlKFZL/gs4keJX/FdR/MIDXAMs6k5luzWocX7d5MPZc3W040b5u476Pehp3U6vNqT4TGD/uuH/Bk4s8byXsLvlcSywkWJbhyg2BJ7T4fdRX48otspf3AOf7yHA7DQ8HbgdODk9vh14Thr+KLC8l2qk2I51PzDI7g2mz+3iZ9ny70oftTwmwq7apwPflgTFl+UbEfGDsSwgIlZLugZYS9EUvwv4SrsLHYMlFE3sDWk9HuCCiPheF2o5DLgs7UZ8GnB1RNyQpp0DXCFpH4p/0rd0ob6mNUp6J/BDij0vX4uIjV2qEXrr7zpuPsLUzLJMiG0eZtZ5Dg8zy+LwMLMsDg8zy+LwMLMsDg8zy+LwMLMsDo8JSNIfJa2TdI+k61O/G0h6ZjoYrtXzd4wy/rWSFrZ47t2SvplVeJuUfZ82Pg6PiWlnRLwgIo4GHgKWQXEOUES8YRzLfS1FfxgNSTqK4ju1tJtn2LbhfVoJDo+J78fs7jNiQNI9aXiGpKslrZd0laTVkmo9sCHpk6kVcYekp0t6EXAKsDy1ao5o8FpvAv4DuDHNW1vWuyT9JL3WlWncLEmXStqQxr8+jX+lpB9LWivpW5JmpfGbJX0sjd8gaUEaf3yqZ13qGmD/Ee9zv7rXuUvSCWn8WZJWSPqBpPskfabNn/vE1+2Ta3xr/w3Yke6nAN8inSgIDAD3pOH3Al9Ow0dTnNOzOD0O4NVp+DPAh9Pw14E3NHndnwHPAl4JfLdu/IPAvml4drr/NHUniFF0izCXojvBmWncB4CPpOHNpJMVgX8knWoPXA8sScOzKM5vqn+f5wOXpuEFFH227EfRS9f9wIHp8S+A+d3+2/XTzS2PiWl6OvFqGJgD3NRgnhdTnP5NRNwDrK+b9jhQO/ntTop/xqYkvRDYGhG/AG4BFkk6KE1eT3EC3ekUIQVFNwj/Vnt+RPyOouvAhcCPUv1nUoRRTe0U9vqafgRcJOldFMG0iz29mKI1RETcSxESR6Zpt0TEIxHxB+AnI17LWnB4TEw7I+IFFP8M+5C2eYzQ7OJCT0T6qaboVLrM2denAQtSnxQ/Bw4AXp+mnUQRFH8B3Jm6ehR13UPW1XRTFNtrXhARCyPirXXTHxtZU0RcSNFx9XTgjtrqTMn3+VjdcNn3aYnDYwKLiEeAdwHvTZ3Q1FsFnAqQ9qD8eYlFbqfouHcPkp5G0WvX8yJiICIGKPoKPS1Nmx8RKym62ZtNsXpxI/DOumUcBNwBLJH0p2ncDElH0oSkIyJiQ0R8mqLn8ZHhcRvw5jTvkcCfAD8t8V6tBYfHBBcRd1F0gvM3IyZ9EThE0nqKbQvr2d1h9GiuBN6XNjzWbzBdSnG5gAfqxt1GsQoyD7hc0gaKflI+F0VvX58ADkq7k+8GToiIrRTbIr6Z6rqDvcNgpPPqlrET+H6D9zklvf5VFL3iPzZyITZ27s9jkkod50yL4to0R1BspzgyeuF6INYXvI43ec0AVqbVGQHvcHDYWLjlYWZZvM3DzLI4PMwsi8PDzLI4PMwsi8PDzLL8P1GMwI0cWB/KAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "exclusion_region = CircleSkyRegion(\n", " center=SkyCoord(183.604, -8.708, unit=\"deg\", frame=\"galactic\"),\n", " radius=0.5 * u.deg,\n", ")\n", "\n", "skydir = target_position.galactic\n", "geom = WcsGeom.create(\n", " npix=(150, 150), binsz=0.05, skydir=skydir, proj=\"TAN\", frame=\"icrs\"\n", ")\n", "\n", "exclusion_mask = ~geom.region_mask([exclusion_region])\n", "exclusion_mask.plot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run data reduction chain\n", "\n", "We begin with the configuration of the maker classes:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:47.516375Z", "iopub.status.busy": "2021-11-22T21:07:47.516078Z", "iopub.status.idle": "2021-11-22T21:07:47.522771Z", "shell.execute_reply": "2021-11-22T21:07:47.523014Z" } }, "outputs": [], "source": [ "energy_axis = MapAxis.from_energy_bounds(\n", " 0.1, 40, nbin=10, per_decade=True, unit=\"TeV\", name=\"energy\"\n", ")\n", "energy_axis_true = MapAxis.from_energy_bounds(\n", " 0.05, 100, nbin=20, per_decade=True, unit=\"TeV\", name=\"energy_true\"\n", ")\n", "\n", "geom = RegionGeom.create(region=on_region, axes=[energy_axis])\n", "dataset_empty = SpectrumDataset.create(\n", " geom=geom, energy_axis_true=energy_axis_true\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:47.525320Z", "iopub.status.busy": "2021-11-22T21:07:47.524984Z", "iopub.status.idle": "2021-11-22T21:07:47.526217Z", "shell.execute_reply": "2021-11-22T21:07:47.526399Z" } }, "outputs": [], "source": [ "dataset_maker = SpectrumDatasetMaker(\n", " containment_correction=True, selection=[\"counts\", \"exposure\", \"edisp\"]\n", ")\n", "bkg_maker = ReflectedRegionsBackgroundMaker(exclusion_mask=exclusion_mask)\n", "safe_mask_masker = SafeMaskMaker(methods=[\"aeff-max\"], aeff_percent=10)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:47.530199Z", "iopub.status.busy": "2021-11-22T21:07:47.529877Z", "iopub.status.idle": "2021-11-22T21:07:48.994620Z", "shell.execute_reply": "2021-11-22T21:07:48.994812Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.65 s, sys: 97.6 ms, total: 1.75 s\n", "Wall time: 1.46 s\n" ] } ], "source": [ "%%time\n", "datasets = Datasets()\n", "\n", "for obs_id, observation in zip(obs_ids, observations):\n", " dataset = dataset_maker.run(\n", " dataset_empty.copy(name=str(obs_id)), observation\n", " )\n", " dataset_on_off = bkg_maker.run(dataset, observation)\n", " dataset_on_off = safe_mask_masker.run(dataset_on_off, observation)\n", " datasets.append(dataset_on_off)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot off regions" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:49.006324Z", "iopub.status.busy": "2021-11-22T21:07:49.006016Z", "iopub.status.idle": "2021-11-22T21:07:49.245123Z", "shell.execute_reply": "2021-11-22T21:07:49.245415Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 8))\n", "ax = exclusion_mask.plot()\n", "on_region.to_pixel(ax.wcs).plot(ax=ax, edgecolor=\"k\")\n", "plot_spectrum_datasets_off_regions(ax=ax, datasets=datasets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Source statistic\n", "\n", "Next we're going to look at the overall source statistics in our signal region." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:49.353559Z", "iopub.status.busy": "2021-11-22T21:07:49.353234Z", "iopub.status.idle": "2021-11-22T21:07:49.354421Z", "shell.execute_reply": "2021-11-22T21:07:49.354712Z" } }, "outputs": [], "source": [ "info_table = datasets.info_table(cumulative=True)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:49.357989Z", "iopub.status.busy": "2021-11-22T21:07:49.357662Z", "iopub.status.idle": "2021-11-22T21:07:49.359248Z", "shell.execute_reply": "2021-11-22T21:07:49.359439Z" } }, "outputs": [ { "data": { "text/html": [ "
Table length=4\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
namecountsbackgroundexcesssqrt_tsnprednpred_backgroundnpred_signalexposure_minexposure_maxlivetimeontimecounts_ratebackground_rateexcess_raten_binsn_fit_binsstat_typestat_sumcounts_offacceptanceacceptance_offalpha
m2 sm2 sss1 / s1 / s1 / s
str7int64float64float32float64float64float64float64float64float64float64float64float64float64float64int64int64str5float64int64float64float64float64
stacked1499.75139.2520.4496837570096320.46153902443202820.461539024432028nan2892003.25841726208.01581.73675841093061687.00.09420025121606880.0061641103983669190.088036140817701892718wstat433.537246059236811718.0216.00.0833333432674408
stacked30322.250001907348633280.7528.4462560711951443.8461557506809443.84615575068094nan13397218.01572412928.03154.42348241806033370.00.09605558723768180.007053587456270340.089002000386069852719wstat823.690948403668526719.0227.99998045503590.08333335071802139
stacked43930.225610733032227408.7743836.17588827538513450.8836434692600150.88364346926001nan19239694.02077411584.04732.5469999313355056.00.092761889106726140.0063867534191357780.086375134478506562719wstat1325.263706076663859419.0373.391958881612650.049657758325338364
stacked55037.864498138427734512.135540.900863460156359.67491168262784459.674911682627844nan21017612.02635248640.06313.8116406202326742.00.087110612622895930.0059970902354489860.0811135217832642719wstat1701.236096596802386919.0436.05490133892460.04170095920562744
" ], "text/plain": [ "\n", " name counts background excess sqrt_ts ... stat_sum counts_off acceptance acceptance_off alpha \n", " ... \n", " str7 int64 float64 float32 float64 ... float64 int64 float64 float64 float64 \n", "------- ------ ------------------ --------- ------------------ ... ------------------ ---------- ---------- ------------------ --------------------\n", "stacked 149 9.75 139.25 20.44968375700963 ... 433.5372460592368 117 18.0 216.0 0.0833333432674408\n", "stacked 303 22.250001907348633 280.75 28.44625607119514 ... 823.6909484036685 267 19.0 227.9999804550359 0.08333335071802139\n", "stacked 439 30.225610733032227 408.77438 36.175888275385134 ... 1325.2637060766638 594 19.0 373.39195888161265 0.049657758325338364\n", "stacked 550 37.864498138427734 512.1355 40.9008634601563 ... 1701.2360965968023 869 19.0 436.0549013389246 0.04170095920562744" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "info_table" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:49.373480Z", "iopub.status.busy": "2021-11-22T21:07:49.373182Z", "iopub.status.idle": "2021-11-22T21:07:49.410579Z", "shell.execute_reply": "2021-11-22T21:07:49.410832Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(\n", " info_table[\"livetime\"].to(\"h\"), info_table[\"excess\"], marker=\"o\", ls=\"none\"\n", ")\n", "plt.xlabel(\"Livetime [h]\")\n", "plt.ylabel(\"Excess\");" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:49.424855Z", "iopub.status.busy": "2021-11-22T21:07:49.424538Z", "iopub.status.idle": "2021-11-22T21:07:49.462216Z", "shell.execute_reply": "2021-11-22T21:07:49.462461Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(\n", " info_table[\"livetime\"].to(\"h\"),\n", " info_table[\"sqrt_ts\"],\n", " marker=\"o\",\n", " ls=\"none\",\n", ")\n", "plt.xlabel(\"Livetime [h]\")\n", "plt.ylabel(\"Sqrt(TS)\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally you can write the extracted datasets to disk using the OGIP format (PHA, ARF, RMF, BKG, see [here](https://gamma-astro-data-formats.readthedocs.io/en/latest/spectra/ogip/index.html) for details):" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:49.464394Z", "iopub.status.busy": "2021-11-22T21:07:49.464094Z", "iopub.status.idle": "2021-11-22T21:07:49.465500Z", "shell.execute_reply": "2021-11-22T21:07:49.465255Z" } }, "outputs": [], "source": [ "path = Path(\"spectrum_analysis\")\n", "path.mkdir(exist_ok=True)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:49.467201Z", "iopub.status.busy": "2021-11-22T21:07:49.466915Z", "iopub.status.idle": "2021-11-22T21:07:49.825658Z", "shell.execute_reply": "2021-11-22T21:07:49.825853Z" } }, "outputs": [], "source": [ "for dataset in datasets:\n", " dataset.write(\n", " filename=path / f\"obs_{dataset.name}.fits.gz\", overwrite=True\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want to read back the datasets from disk you can use:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:49.828024Z", "iopub.status.busy": "2021-11-22T21:07:49.827718Z", "iopub.status.idle": "2021-11-22T21:07:50.355041Z", "shell.execute_reply": "2021-11-22T21:07:50.355235Z" } }, "outputs": [], "source": [ "datasets = Datasets()\n", "\n", "for obs_id in obs_ids:\n", " filename = path / f\"obs_{obs_id}.fits.gz\"\n", " datasets.append(SpectrumDatasetOnOff.read(filename))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fit spectrum\n", "\n", "Now we'll fit a global model to the spectrum. First we do a joint likelihood fit to all observations. If you want to stack the observations see below. We will also produce a debug plot in order to show how the global fit matches one of the individual observations." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:50.360576Z", "iopub.status.busy": "2021-11-22T21:07:50.360227Z", "iopub.status.idle": "2021-11-22T21:07:51.504467Z", "shell.execute_reply": "2021-11-22T21:07:51.504639Z" } }, "outputs": [], "source": [ "spectral_model = ExpCutoffPowerLawSpectralModel(\n", " amplitude=1e-12 * u.Unit(\"cm-2 s-1 TeV-1\"),\n", " index=2,\n", " lambda_=0.1 * u.Unit(\"TeV-1\"),\n", " reference=1 * u.TeV,\n", ")\n", "model = SkyModel(spectral_model=spectral_model, name=\"crab\")\n", "\n", "datasets.models = [model]\n", "\n", "fit_joint = Fit()\n", "result_joint = fit_joint.run(datasets=datasets)\n", "\n", "# we make a copy here to compare it later\n", "model_best_joint = model.copy()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fit quality and model residuals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can access the results dictionary to see if the fit converged:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:51.506529Z", "iopub.status.busy": "2021-11-22T21:07:51.506224Z", "iopub.status.idle": "2021-11-22T21:07:51.507574Z", "shell.execute_reply": "2021-11-22T21:07:51.507748Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OptimizeResult\n", "\n", "\tbackend : minuit\n", "\tmethod : migrad\n", "\tsuccess : True\n", "\tmessage : Optimization terminated successfully.\n", "\tnfev : 244\n", "\ttotal stat : 86.12\n", "\n", "OptimizeResult\n", "\n", "\tbackend : minuit\n", "\tmethod : migrad\n", "\tsuccess : True\n", "\tmessage : Optimization terminated successfully.\n", "\tnfev : 244\n", "\ttotal stat : 86.12\n", "\n", "\n" ] } ], "source": [ "print(result_joint)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and check the best-fit parameters" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:51.510963Z", "iopub.status.busy": "2021-11-22T21:07:51.510644Z", "iopub.status.idle": "2021-11-22T21:07:51.512160Z", "shell.execute_reply": "2021-11-22T21:07:51.512313Z" } }, "outputs": [ { "data": { "text/html": [ "
Table length=5\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
modeltypenamevalueuniterrorminmaxfrozenlink
str4str8str9float64str14float64float64float64boolstr1
crabspectralindex2.2727e+001.566e-01nannanFalse
crabspectralamplitude4.7913e-11cm-2 s-1 TeV-13.600e-12nannanFalse
crabspectralreference1.0000e+00TeV0.000e+00nannanTrue
crabspectrallambda_1.2097e-01TeV-15.382e-02nannanFalse
crabspectralalpha1.0000e+000.000e+00nannanTrue
" ], "text/plain": [ "\n", "model type name value unit error min max frozen link\n", " str4 str8 str9 float64 str14 float64 float64 float64 bool str1\n", "----- -------- --------- ---------- -------------- --------- ------- ------- ------ ----\n", " crab spectral index 2.2727e+00 1.566e-01 nan nan False \n", " crab spectral amplitude 4.7913e-11 cm-2 s-1 TeV-1 3.600e-12 nan nan False \n", " crab spectral reference 1.0000e+00 TeV 0.000e+00 nan nan True \n", " crab spectral lambda_ 1.2097e-01 TeV-1 5.382e-02 nan nan False \n", " crab spectral alpha 1.0000e+00 0.000e+00 nan nan True " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "datasets.models.to_parameters_table()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A simple way to inspect the model residuals is using the function `~SpectrumDataset.plot_fit()`" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:51.532711Z", "iopub.status.busy": "2021-11-22T21:07:51.532393Z", "iopub.status.idle": "2021-11-22T21:07:51.837721Z", "shell.execute_reply": "2021-11-22T21:07:51.837907Z" } }, "outputs": [ { "data": { "text/plain": [ "(0.1, 40)" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgIAAAGtCAYAAABk5xxqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA0IElEQVR4nO3de3xU1b338e+PgEAEo3I5j5WmXJRLQgJK4uVoEa0gLaBUbQFtC4qgPejpg08verQVe44ve1qLl2qrUSzYpw/gpdrGaq034NTScrEoiCg2UIy2hosEEKhcfs8fMxOTMDOZZGYyl/15v155Zfaetdf+zbDJ/u2191rL3F0AACCYOmQ6AAAAkDkkAgAABBiJAAAAAUYiAABAgJEIAAAQYB0zHUB7MrMJkiZ07959xsCBAzMdDgAA7WL16tXb3L1XtPcsiN0HKyoqfNWqVZkOAwCAdmFmq929Itp73BoAACDASAQAAAgwEgEAAAIsUA8LAkA2OHDggGpra7V///5Mh4I806VLF/Xp00edOnVKeBsSAQBoZ7W1terevbv69u0rM8t0OMgT7q7t27ertrZW/fr1S3g7bg0AOWDSA8s16YHlmQ4DKbJ//3716NGDJAApZWbq0aNHq1uaSAQAIANIApAObTmuSASANONqHkA24xkBAMi0O8uk+i2pq6+oWJq9Nm6RgoIClZWV6eDBgxoyZIgWLFigwsLCNu1u2rRpGj9+vC699FJdddVVuv7661VSUhK17JIlS3TUUUfpX//1X1u1j759+2rVqlXq2bNni2W/973vaeTIkTr//PNbtY9UxpBK8+fP15gxY/SpT30qLfWTCABAptVvkebUp66+OUUtFunatavWrFkjSbr88st1//336/rrr294/9ChQyooKGj1rh966KG47y9ZskTdunVrdSLQGt///vfTVncmzJ8/X0OHDk1bIsCtAQAIuM9+9rN65513tGTJEp177rm67LLLVFZWpkOHDulb3/qWKisrVV5ergceeEBS6On0a6+9ViUlJRo3bpzq6uoa6ho1apQiQ7j/7ne/06mnnqphw4bpc5/7nDZv3qz7779fd955p4YPH67/+Z//0datW3XJJZeosrJSlZWVeuWVVyRJ27dv15gxY3TKKafo6quvVrTh8A8dOqRp06Zp6NChKisr05133ikp1ELx+OOPS5KeeeYZDR48WGeffbb+/d//XePHj5ckzZkzR1deeaVGjRql/v3765577mmod+LEiRoxYoRKS0tVVVXV4vfX/HNK0o4dOzRx4kSVl5frjDPO0Ouvv96w3zvuuKNh26FDh2rz5s3avHmzhgwZohkzZqi0tFRjxozRvn379Pjjj2vVqlW6/PLLNXz4cO3bt0833HCDSkpKVF5erm9+85sJ/ivHFqgWgcikQyeddFKmQwEStmX7Xr1Wu1P7DxzW6LlLNW9qpYp7tK0JF2ju4MGDevbZZzV27FhJ0ooVK7Ru3Tr169dPVVVVKioq0sqVK/XPf/5TZ511lsaMGaO//OUveuutt7R27Vp98MEHKikp0ZVXXtmk3q1bt2rGjBlatmyZ+vXrpx07duj444/XNddco27dujWcwC677DLNnj1bZ599trZs2aILLrhAb775pm699VadffbZ+t73vqff/va3UU/Ia9as0Xvvvad169ZJknbu3Nnk/f379+vqq69uiGHKlClN3t+wYYNefvll7d69W4MGDdLXv/51derUSQ8//LCOP/547du3T5WVlbrkkkvUo0ePqN9ftM8pSbfccotOOeUUPfXUU3rppZf0ta99raEFJpaNGzdq4cKFevDBB/XlL39ZTzzxhL7yla/o3nvv1R133KGKigrt2LFDTz75pDZs2CAzO+Izt0WgEgF3r5ZUXVFRMSPTsQCNxXuYMJIESNLGuj0ac9dSDetz7BHlFl99ZrrCQx7at2+fhg8fLinUIjB9+nT98Y9/1GmnndbQB/33v/+9Xn/99Yar6/r6em3cuFHLli3TlClTVFBQoE996lM677zzjqj/T3/6k0aOHNlQ1/HHHx81jhdeeEHr169vWN61a5d2796tZcuW6Ve/+pUkady4cTruuOOO2LZ///6qqanRddddp3HjxmnMmDFN3t+wYYP69+/fEMOUKVOaJBTjxo1T586d1blzZ/Xu3VsffPCB+vTpo3vuuUdPPvmkJOndd9/Vxo0bYyYCsT7nH/7wBz3xxBOSpPPOO0/bt29XfX382z/9+vVr+DcZMWKENm/efESZY445Rl26dNFVV12lcePGNbRwJCNQiQDQ3lJxNR9JAmItA23R+BmBxo4++uiG1+6un/zkJ7rgggualHnmmWda7Kbm7gl1ZTt8+LCWL1+url27HvFeS9sfd9xxeu211/Tcc8/pvvvu06OPPqqHH364SQzxdO7cueF1QUGBDh48qCVLluiFF17Q8uXLVVhYqFGjRsXtlx/rc0bbt5mpY8eOOnz4k//DjetuHs++ffuOqKNjx45asWKFXnzxRS1atEj33nuvXnrppbifsyUkAkAK1P3nyep9qO6I9dP/+UN97CdIKtBf6+o1/Y5f6PnO3z6i3OI4T3mPnrtUG+v2SJI6mDSgVzeu/tEuLrjgAv3sZz/Teeedp06dOuntt9/WiSeeqJEjR+qBBx7Q1772NdXV1enll1/WZZdd1mTbM888U7NmzdKmTZua3Bro3r27du3a1VBuzJgxuvfee/Wtb31LUqi5f/jw4Ro5cqR++ctf6uabb9azzz6rDz/88Ij4tm3bpqOOOkqXXHKJBgwYoGnTpjV5f/DgwaqpqdHmzZvVt29fLV68uMXPXF9fr+OOO06FhYXasGGD/vSnP8UtH+tzRuL/7ne/qyVLlqhnz5465phj1LdvXz399NOSpFdffVWbNm1qMabu3btr9+7dkqQ9e/Zo7969+sIXvqAzzjhDqbjVTSIApEDvQ3WadMLvjli/cdOOhteHVaCN3idqucV/Hxuz7nlTKzXmrqXaf+CwBvTqpnlTK1MTNLJHUXFCT/q3qr4UuOqqq7R582adeuqpcnf16tVLTz31lL74xS/qpZdeUllZmQYOHKhzzjnniG179eqlqqoqXXzxxTp8+LB69+6t559/XhMmTNCll16qX//61/rJT36ie+65R7NmzVJ5ebkOHjyokSNH6v7779ctt9yiKVOm6NRTT9U555yj4uIjP9N7772nK664ouEK+/bbb2/yfteuXfXTn/5UY8eOVc+ePXXaaae1+JnHjh2r+++/X+Xl5Ro0aJDOOOOMuOVjfc45c+boiiuuUHl5uQoLC7VgwQJJ0iWXXKJHHnlEw4cPV2VlpQYOHNhiTNOmTdM111yjrl276tlnn9VFF12k/fv3y90bHpBMhrXUdJKPKioqPPJUKxBP5N59i1fgc4qidv+KdjX//PVH/tGMtX2r40BOePPNNzVkyJBMhxEIe/bsUbdu3eTumjVrlk4++WTNnj0702GlVbTjy8xWu3tFtPJ0HwTSaN7USnXpFPpvxtU80P4efPBBDR8+XKWlpaqvr9fVV1+d6ZCyDrcGgDQq7lHY8IQ/V/NA+5s9e3betwAkixYBAAACjEQAAIAAIxEAACDAeEYAiCGbhvbl+QLQcwTpQiKAwIs1vG+iQ/tKUsvDlADZJTINccTkyZN1ww03ZDCi9Hvqqac0cODAmFMkBxWJABBDuw7tm4oBZRKYgx6IiDXEcD576qmnNH78eBKB5tw9cD8jRoxwoCXn/3iJf+Y7T/tnvvO097vhaT//x0tiF77lmPYLLEMxfPn+P/qX7/9jWvcRFOvXr29V+b9t+8gH3fyMf+Y7oePwb9s+SjqGo48++oh1O3fu9IEDB/qGDRvc3X3y5MleVVXl7u4LFizwsrIyLy8v96985Svu7l5XV+cXX3yxV1RUeEVFhf/hD39wd/clS5b4sGHDfNiwYT58+HDftWuXv//++/7Zz37Whw0b5qWlpb5s2bIj9r9ixQo/88wzvby83CsrK33Xrl2+b98+nzZtmg8dOtSHDx/uL730kru7//znP/dZs2Y1bDtu3Dh/+eWXGz7bf/zHf3h5ebmffvrp/o9//MNfeeUVP+6447xv374+bNgwf+edd/zuu+/2IUOGeFlZmU+aNCnp7zRbRDu+JK3yGOdEWgSAGBjaF5nU+JZVvNtUbX1moPHsg5J04403atKkSbr33ns1bdo0feMb39CHH36oGTNm6I033tBtt92mV155RT179myYavcb3/hG1CmE77jjDt13330666yztGfPHnXp0kVVVVW64IILdNNNN+nQoUPau3dvk3g+/vhjTZo0SYsXL1ZlZaV27dqlrl276u6775YkrV27Vhs2bNCYMWP09ttvx/1sH330kc444wzddttt+va3v60HH3xQN998sy688EKNHz9el156qSTpBz/4gTZt2qTOnTunZDrfXEUiAMTAYECpxcNubZeO21Sxbg2MHj1ajz32mGbNmqXXXntNkvTSSy/p0ksvVc+ePSV9MtVurCmEzzrrLF1//fW6/PLLdfHFF6tPnz6qrKzUlVdeqQMHDmjixIlNkhBJeuutt3TCCSeosjKUcB9zzDGSQtP5XnfddZJCkwh95jOfaTEROOqooxqm5x0xYoSef/75qOXKy8t1+eWXa+LEiZo4cWLcOvMZ3QcBIAstvvrMhp+Te3drWN/BpJN7d2t4L9UOHz6sN998U127dm248vcYU+1GphBes2aN1qxZo/fee0/du3fXDTfcoIceekj79u3TGWecoQ0bNmjkyJFatmyZTjzxRH31q1/VI4880qSuWPvwGPPhxJvOt1OnTg11RaYXjua3v/2tZs2apdWrV2vEiBExy+U7EgEAyHLtOWfFnXfeqSFDhmjhwoUNV/Cf+9zn9Oijj2r79u2S1JAgRKYQjoi0MPz1r39VWVmZvvOd76iiokIbNmzQ3/72N/Xu3VszZszQ9OnT9eqrrzbZ7+DBg/X+++9r5cqVkqTdu3c3zEb4y1/+UpL09ttva8uWLRo0aJD69u2rNWvW6PDhw3r33Xe1YsWKFj9b4+l8I9ude+65+uEPf6idO3dqz549yX15OSpQtwbMbIKkCamYvxkA2ks6blM1f0Zg7NixuvLKK/XQQw9pxYoV6t69u0aOHKn/+q//0q233qqbbrpJ55xzjgoKCnTKKado/vz5MacQvuuuu/Tyyy+roKBAJSUl+vznP69FixbpRz/6kTp16qRu3bod0SJw1FFHafHixbruuuu0b98+de3aVS+88IL+7d/+Tddcc43KysrUsWNHzZ8/X507d9ZZZ52lfv36qaysTEOHDtWpp57a4meePHmyZsyYoXvuuUeLFi3S9OnTVV9fL3fX7Nmzdeyxx6bku801TEMM3Fkm1W9Jro5s6LrXwlTGyUr2Hj/PCHyiLdMQ8/0hUa2dhjhQLQJAVPVbYp5A+eOLbMExiHThGQEALYoMt/znTTs0eu5Sbdm+t+WNAOQEWgSAfJHk6IR1Bb11Xe9Hor6X6HDLXLUmLtZT8kAy2nK7n0QAiCOnTmxJPqPQO04SkWw/9myawCkbdOnSRdu3b1ePHj1IBpAy7q7t27erS5curdqORABAg1iJz+i5S7WxLtS1qoOFurBFK5vsBE45lXgloU+fPqqtrdXWrVszHQryTJcuXdSnT59WbUMiAKBFyQ633K4TOOWATp06qV+/fpkOA5BEIgAgAYn2Y0+2RQFA+6PXAIC0a8+R8QC0Di0CANKOCZyA7EWLAAAAAUaLAPIaIwOGJPQ9tDAOweLIizlxdpQNQy0DaBUSAQAhLZzAE0omkhjQCEBmcGsAAIAAIxEAACDASAQAAAgwnhEAkJCgP3AJ5CtaBAAACDBaBAC0C1oUQujSimxDIgAgdVoYiyCh7RmHAGhXJAJAntuyfW/DNMCj5y7VvKmVKu5RmJ6dJXsSZxwCoN2RCCBvtesJMAtEmpybi3wHkrSxbo/G3LW0Ydz/xmiqBoKJRAA5L+kTYDqDywKR7yDWMoBgIxFA3graCTDWFf3ouUu1sW6PJKmDhaYB5uofQASJAHJe0ifAOWkMLgvMm1qpMXct1f4DhzWgVzfNm1qZ6ZAAZBHGEUDemje1Ul06hQ7xIJ8Ai3sUalifY3V6v+P1/PXn5PVzEi2Z9MDymLeSgKDK+RYBM+sv6SZJRe5+aabjQfaInAAlHoQDgFiyMhEws4cljZdU5+5DG60fK+luSQWSHnL3H7h7jaTpZvZ4ZqIFkDLJjkMQqYOxCICEZWUiIGm+pHslPRJZYWYFku6TNFpSraSVZvYbd1+fkQgBpF4qTuCMRQC0SlY+I+DuyyTtaLb6NEnvuHuNu38saZGki9o9OABoo8jYFn/etEOj5y7Vlu17Mx0SkLUtAtGcKOndRsu1kk43sx6SbpN0ipnd6O63R9vYzGZKmilJxcXF6Y4VQJ5KZK6AZMe2aKl+IJVyKRGwKOvc3bdLuqaljd29SlKVJFVUVHiKYwOAFgVtbAvkhlxKBGolfbrRch9J72coFgCIicGdkEuy8hmBGFZKOtnM+pnZUZImS/pNhmMCgIQxtgWyUVa2CJjZQkmjJPU0s1pJt7j7PDO7VtJzCnUffNjd32hlvRMkTTjppJNSHTIAtIixLZCNsjIRcPcpMdY/I+mZJOqtllRdUVExo611AACQT3Lp1gAAtBld94DosrJFAACSEa37XsLTUtNkj4AhEUBe4496SJC+h7qC3lr897FHrB9w4BcKPV4UcuDAgajldCdDFCNYSAQA5JXe390YdX3/Zl33+vcqkq6vP7IgQxQjYAL1jICZTTCzqvr6KP/5AeQ1uu4B0QUqEXD3anefWVRExg8ETaTr3un9jtfz15+j4h6FmQ4JyAqBSgQAIBn0PEA+4hkBAGgm2UmDgvRwJnIfLQIAkCAmDUI+okUAAJph0iAESaBaBOg1ACAZ9DxAPgpUIkCvAQDJoOcB8hG3BgCgHXErAdmGRAAAGisqjju64OLIizkt1MEwxcgRJAIA0FgLJ/BI18K4V/YMU4wcEqhnBAAAQFMkAgAABFigEgG6DwIA0FSgEgG6DwIA0FSgEgEAANAUiQAABMykB5bHnFgJwUP3QQCBwWA+wJFoEQCQM7iSBVKPRAAAgAAjEQAAIMAClQgwjgAAAE0FKhFgHAEAAJqi1wAApFoLMxgmXAczGKIdkAgAQKql4gTODIZoJyQCANAKjEWAfBOoZwQAAEBTtAgg991ZJtVvafv2RcWpiwUAcgyJAHJf/RZpDl1CAaAtuDUAAECAkQgAABBggUoEGFkQAICmApUIMLIgAABNBSoRAICg27J9r16r3ak/b9qh0XOXasv2vZkOCRlGrwEAyEOTHlgedf1rtTu1/8BhSdLGuj0ac9dSDetzbNSyDJ4UDLQIAMgJXMmmRiQJiLWM4KFFAEDWiHUVKyV+JctVbEis72H03KXaWLdHktTBpAG9uvGdBRwtAgByAleyqTFvaqW6dAr96R/Qq5vmTa3McETINFoEAGSNeFemgbuSTXYq4xjTGBf3KGxoScnr7w8JIxEAkBPmTa3UmLuWav+Bw8G4kk12KmOmMUaCSAQA5ASuZD8ReZYi6N8DUoNnBAAACDASAQAAAoxEAACAAAtUIsCkQwAANBWoRIBJhwAAaCpQiQAAAGiKRAAAgAAjEQAAIMBIBAAACDASAQAAAoxEAACAACMRAAAgwEgEAAAIMBIBAAACjGmIASAfFRVLc6KPoro48mJOAnXMXpvCoJCNSAQAIB/FOYFPemC5JGnx1WfGryNGIoH8wq0BAAACjEQAAIAAIxEAACDASAQAAAgwEgEAAAIsUImAmU0ws6r6+vpMhwIAbbJl+169VrtTf960Q6PnLtWW7XszHRJyXKC6D7p7taTqioqKGZmOBQDiiXTxa+612p3af+CwJGlj3R6NuWuphvU59ohyLXYNBMIC1SIAALkukgTEWgZaK1AtAgCQK2Jd0Y+eu1Qb6/ZIkjqYNKBXN67+2yjhgZXyHC0CAJBD5k2tVJdOoT/dA3p107yplRmOCLmOFgEAyCHFPQobngkI+pUsUoNEAAACJhUJBM3q+YNbAwAABBiJAAAAAcatAQA5g2ZoIPVoEQAAIMBIBAAACDASAQAAAoxnBAAA0RUVS3OKor61OPJiTgvbz16b4qCQaiQCAIDo4pzEExpHIEYSgezCrQEAAAKMRAAAgAAjEQAAIMBIBAAACDASAQAAAoxEAACAACMRAAAgwEgEAAAIMBIBAAACjEQAAIAAIxEAACDASAQAAAgwEgEAAAIs52cfNLOjJf1U0seSlrj7LzMcEgAAOSMrWwTM7GEzqzOzdc3WjzWzt8zsHTO7Ibz6YkmPu/sMSRe2e7AAAOSwrEwEJM2XNLbxCjMrkHSfpM9LKpE0xcxKJPWR9G642KF2jBEAgJyXlYmAuy+TtKPZ6tMkvePuNe7+saRFki6SVKtQMiDF+TxmNtPMVpnZqq1bt6YjbAAAck5WJgIxnKhPrvylUAJwoqRfSbrEzH4mqTrWxu5e5e4V7l7Rq1ev9EYKAECOyKWHBS3KOnf3jyRd0d7BAABy15bte/Va7U7tP3BYo+cu1byplSruUZjpsDIilxKBWkmfbrTcR9L7GYoFAJADJj2wPOr6SBIgSRvr9mjMXUs1rM+xUcsuvvrMdIWXFXIpEVgp6WQz6yfpPUmTJV2W2ZAAADEVFUtzipKvY/ba1MTTSCQJiLUcJFmZCJjZQkmjJPU0s1pJt7j7PDO7VtJzkgokPezub7Sy3gmSJpx00kmpDhkA0FwqTuBJJhKxruZHz12qjXV7JEkdTBrQq1veX/nHkpUPC7r7FHc/wd07uXsfd58XXv+Muw909wHuflsb6q1295lFRUlmqAAQYJH763/etEOj5y7Vlu17Mx1Sq82bWqkunUKnwAG9umne1MoMR5Q5WdkiAADIvGTvr2fzFXZxj8KGmLM5zvaQlS0CAIDsxf31/EKLAAAgKu6vB0OgWgTMbIKZVdXX12c6FADIWdxfzy+BSgR4WBAAkhe5v356v+P1/PXnBHYgnnwRqEQAAAA0RSIAAECAkQgAABBgJAIAAARYoBIBeg0AANBUoBIBeg0AANBUoBIBAADQFIkAAAABRiIAAECAkQgAABBgJAIAAARYoBIBug8CANBUoBIBug8CANBUoBIBAADQFIkAAAABRiIAAECAkQgAABBgHTMdAACgdRZffWamQ2g/RcXSnCQe8C4qlmavTV08eYhEAACQvZI9iSeTRAREoG4NMI4AAABNBSoRYBwBAACaClQiAAAAmiIRAAAgwEgEAAAIMBIBAAACjEQAAIAAIxEAACDASAQAAAgwEgEAAAIsUIkAIwsCANBUoBIBRhYEAKCpQCUCAACgKRIBAAACjEQAAIAAIxEAACDASAQAAAgwEgEAAAKMRAAAgAAjEQAAIMBIBAAACDASAQAAAoxEAACAAOuY6QDak5lNkDThpJNOynQoiLizTKrfklwdRcWpiQUAAihQiYC7V0uqrqiomJHpWBBWv0Waw2yQAJAp3BoAACDAAtUiAAAImKJiaU70qecXR17MSaCO2WtTGFR2IREAAOSvOCfwSQ8slyQtvvrM+HXESCTyBbcGAAAIMBIBAAACjEQAAIAAIxEAACDASAQAAAgwEgEAAAKMRAAAgAAjEQAAIMBIBAAACDASAQAAAoxEAACAACMRAAAgwEgEkLUmPbC8YVIQAPmF/9+fyPR3EahEwMwmmFlVfX19pkMBACArBCoRcPdqd59ZVJTfU0oCAJCoQCUCAACgKRIBAAACjEQAAIAAIxEAACDASAQAAAgwEgEAAAKMRAAAgAAjEQAAIMBIBAAACDASAQAAAoxEAACAACMRAAAgwEgEAAAIMBIBAAACjEQAAIAA65jpAAAAyGpFxdKcouS2n702dfGkGIkAAADxJHsSTyaJaAfcGgAAIMBIBAAACDASAQAAAoxEAACAACMRAAAgwEgEAAAIMBIBAAACjEQAAIAAIxEAACDAcj4RMLP+ZjbPzB7PdCwAAOSajCYCZvawmdWZ2bpm68ea2Vtm9o6Z3RCvDnevcffp6Y0UAID8lOm5BuZLulfSI5EVZlYg6T5JoyXVSlppZr+RVCDp9mbbX+nude0TKgAA+SejiYC7LzOzvs1WnybpHXevkSQzWyTpIne/XdL4dg4RAIC8Zu6e2QBCicDT7j40vHyppLHuflV4+auSTnf3a2Ns30PSbQq1IDwUThiilZspaWZ4caikddHK5agiSfV5st9U1NmWOlq7TaLlEykXr0xPSdtaEVe2y6djNRX1tnX71mzXXseqxPGazfs92d2jT4Po7hn9kdRX0rpGy19S6IQeWf6qpJ+keJ+rMv25U/x5qvJlv6mosy11tHabRMsnUi5eGY7V7N5vsvW2dfvWbNdex2r4fY7XLN1vvDqzsddAraRPN1ruI+n9DMWSK6rzaL+pqLMtdbR2m0TLJ1IuU/9+mZBPx2oq6m3r9q3ZjmO17fLpeI1ZZzbeGugo6W1Jn5P0nqSVki5z9zdSuM9V7l6RqvqAdOFYRS7heM1Nme4+uFDSckmDzKzWzKa7+0FJ10p6TtKbkh5NZRIQVpXi+oB04VhFLuF4zUEZbxEAAACZk43PCAAAgHZCIgAAQICRCAAAEGCZHmI4I3r27Ol9+/bNdBgAALSL1atXb3P3XtHey6tEwMweVmgY4rpId8Tw+rGS7lZovoKHRowYoVWrVmUoSgAA2peZ/S3We/l2a2C+pLGNVzSaxOjzkkokTWn/sAAAyE55lQi4+zJJO5qtbpjEyN0/lrSo/SMDkjNq1CiNGjUq02EAyEN5lQjEcKKkdxst12YqEAAAsk0QEgHLdAAAAGSrICQC0SYxAgAACkYisFLSyWbWz8yOkjQ50wEBAJAtciYRMLOHzazOzNY1Wne8mT1vZhvDvx9XApMYZeYTAACQfXImEVCUroGSbpD0orufLOlFSX919xPcvZO793H3eZLk7s+4+0B3H+Dut7Vv2AAAZK+cSQRidA28SNKC8OsFkia2Z0wAAOS6nEkEYvgXd/+7JIV/945V0MxmmtkqM1u1devWdgsQAIBsluuJQMLcvcrdK9y9olevqMMtAwAQOLmeCHxgZidIUvh3XYbjAQAgp+R6IvAbSVPDr6dK+nUGYwEAIOfkTCJgZgvVrGugpB9IGm1mGyWNDi8DAIAE5cw0xO4ea9bAz7VrIAAA5JGcaREAkNuYQRHITiQCAAAEGIkAALQjWkaQbUgEAAAIsJQ9LGhm18d7393npmpfAAAgNVLZa6B7CusCAADtIGWJgLvfmqq6AABA+0j5MwJmNtDMXjSzdeHlcjO7OdX7AdC+eMgNyE/peFjwQUk3SjogSe7+uqTJadgPEAg1NTVauXKlli5dqtLSUtXU1GQ6JAB5JB0jCxa6+woza7zuYBr2A+SNeFfaK1eu1N69eyVJ69evV1lZmSorK48ot2TJkjRFByCfpaNFYJuZDZDkkmRml0r6exr2AwRCJAmItQwAyUhHi8AsSVWSBpvZe5I2SfpKGvYD5I14V/OlpaVav369JKlDhw4aPHgwV/8AUqbVLQJm1sHMjon1vrvXuPv5knpJGuzuZ7v75iRiBAKturpahYWFkqTBgweruro6wxEByCcJtQiY2f+TdI2kQ5JWSyoys7nu/qNGZaIOKBR5ViCdAwqZ2WZJu8PxHXT3inTtC2hv/fv3b3gmgJYAAKmWaItAibvvkjRR0jOSiiV9tVmZ7uGfCklfl3Ri+OcaSSWpCLYF57r7cJIAANmKHiDIRok+I9DJzDoplAjc6+4HzMwbF4gMKGRmv5d0qrvvDi/PkfRYyiIGgCwXqxdIoj1AJFp/0H4SbRF4QNJmSUdLWmZmn5G0K0bZYkkfN1r+WFLfNsaXKJf0ezNbbWYzoxUws5lmtsrMVm3dujXN4QDAkegBgmyUUIuAu98j6Z5Gq/5mZufGKP4LSSvM7Mnw8kRJC9ocYWLOcvf3zay3pOfNbIO7L2tcwN2rFOrNoIqKCo9WCZAOkavDIF/hRZrE9+7dq9LSUlVXV6t///6ZDittYv1b0wME2ShuItDSjIKSjngA0N1vM7NnJX1WoSv1K9z9L20PsWXu/n74d104ATlN0rL4WwFItWSbxPP9pFhdXa2ysjLt3buXHiDIGi21CLR1RsFDkg4rlAgcbmMdCTGzoyV1cPfd4ddjJH0/nfsE0Do0iYfQAwTZKG4i0JYZBc3sG5JmSHpCkkn6v2ZW5e4/aVuILfoXSU+Guyl2lPT/3P13adoXgDhoEgdyT6LjCHSRNF1SqaQukfXufmWU4tMlne7uH4W3/W9JyyWlJRFw9xpJw9JRN4DUoEkcyF6Jdh/8haQNki5QqNn9cklvxihrCt0aiDgUXgcgoGgSB7JXoonASe7+JTO7yN0XhEcafC5G2Z9L+nOzXgPzkowTALICvUCQbxIdR+BA+PdOMxsqqUgxxgYIDyV8haQdkj5UqNfAXcmFCSCTGBEvv4waNSru1NcIlkRbBKrM7DhJ35X0G0ndJH0vTvlNkg6G6zczO9XdX00qUgBpFe/EQPc/IH8lOqDQQ+GXSyXFHQXEzP5T0jRJf1Wo+6DCv89rW4gAMi1fuv/RrA8cKdFeA1Gv/t09Wn/9L0sa4O4fR3kPQJaKd3Kk+x+QvxJ9RuCjRj+HJH1esecPWCfp2GQDA5A9qqurVVhYKEl0/wPyTKK3Bn7ceNnM7lDoWYFobpf0FzNbJ+mfjeq4sK1BAsgsuv8B+SvRhwWbK1TsZwUWSPpvSWuV5uGFAQBAchJ9RmCtPnnwr0BSL8Uez39beLZCAEAzmW5RCdpMkPHw8GhIoi0C4xu9PijpA3c/GKPsajO7XaFbB41vDdB9EADaSbIzQUqcIIOipWmIjw+/3N3srWPMTO6+I8pmp4R/n9FoHd0HAeS8fLiazpeuoEidlloEVit0EjdJxQqNFGgK9QrYIqlf8w3c/dzUhgiAK7P2ky8DKzETZHz5kNSlSkvTEPeTJDO7X9Jv3P2Z8PLnJZ2f/vASY2ZjJd2t0PMLD7n7DzIcEoA8lA9X00GbCZJbJC1L9BmBSne/JrLg7s+GRxDMODMrkHSfpNGSaiWtNLPfuPv6zEYGIBfl+8BKdAUNyYekLlUSHVBom5ndbGZ9zewzZnaTpO3pDKwVTpP0jrvXhEczXCTporZUVFNTo9LSUnXs2LHNE6skWwcx5FcMyB6pmDiJgZU+kSsTFy1ZsiTqT0lJSUOZDh06qKSkJGbZWPLl75S5e8uFQg8N3iJpZHjVMkm3xnhYsPF2Ve4+s9VRtYKZXSpprLtfFV7+qqTT3f3aWNt0797dR4wYccT6xk1FklRYWBizqSiWZOsghtyMId4fi3zpopQrnyORpmAp9r9nS58vV76HeFLxGXL9e6ipqWm4RVJSUhL3GYFkj6l42uvv1NKlS1e7e0W0OhIdWXCHpG8kHNknou40xSzKuiOyGzObKWmmJHXs2FGbN28+YqNoTUXRysWTbB3EkJsxzJkzJ+r6Dz/8UH/84x914MAB9e7dW1OmTNFxxx2XcAzZJPLZY33WbBHr3yjRf8+WPl82fA/z58+XJE2bNq1N26fiM2T6e/jwww+1cOFCbdu2TT179mzT/61evXpJkr70pS/pkUceiVku2WMqnmz4Wxm3RcDM7nL3/21m1Ypycm1p2GAz+527j21VRK1kZmdKmuPuF4SXbwzHdnusbSoqKnzVqlVHrC8tLdWGDRt0+PDhhvt/b7zxRqviSbYOYsjNGNJ9FZoNcv0KMNr9/dYeU1J2fA/JxpDs9q25mk5WNv/fyqW/U2YWs0WgpWcEfhH+fYekH0f5iSvdSUDYSkknm1k/MztK0mTFngchrurqag0ePFgFBQVtvv+XbB3EkF8x8EBS9uD+futFngNo/hNJAqRPnriPVi6WVNzXzob/W/nydyqhZwSabGB2nKRPu/vrrd5bmpjZFyTdpVD3wYfd/bZ45WO1CACplqqr0GyQDVfCycqXe+PtFUOsk/nSpUuPWHfOOeckXG8qnr9JxdV4kMRrEUh0roElki4Ml18jaauZLXX361MVZDLC4xs8k+k4gOaC1mcb6deeA+EkOyhRrEQiFVfz1dXVmjBhgt566y0NGjSI/1tJSHQcgSJ332VmV0n6ubvfYmZZ0yIAZCv6bKOtkh0IJ53HW6IJbmuu5lsbb//+/WkBSJFEE4GOZnaCpC9LuileQTPrImm6pFJJXSLr3f3KtgYJAAjJhnvjySa4XM1nl0QTge9Lek7SK+6+0sz6S9oYo+wvJG2QdEF4u8slvZlsoAAyixaN9pXtcwUks0+u5rNLQiMLuvtj7l7u7l8PL9e4+yUxip/k7t+V9JG7L5A0TlJZasIFgGCj9wNSLdGHBQdK+pmkf3H3oWZWLulCd/+vKMUPhH/vNLOhkv4hqW8qggWATMt0ywjPnSDVEp1r4EFJNyp8kg93HZwco2xVuIvhzQr1518v6b+TjBMAAKRBos8IFLr7CrMmo/kejFH2RXf/UKH5CPpLkpn1a3uIAAAgXVoz++AAhYcZDk/08/cYZZ+Isu7xNsQGIEVyZaY4AO0v0RaBWZKqJA02s/ckbVKoN0ADMxusUJfBIjO7uNFbx6hRN0IAyJR8uaeeL58D2SHR2QdrJJ1vZkcr1IqwT9IkSX9rVGyQpPGSjpU0odH63ZJmpCJYAACQWnETATM7RqHWgBMl/VrSC+Hlb0p6TdIvI2Xd/deSfm1mZ7r78rRFDAAAUqalFoFfSPpQ0nKFruq/LekoSRPdfU2Mbf5iZrPEyIIAAGS9lhKB/u5eJklm9pCkbZKK3X13nG0YWRAAgBzRUq+ByOBAcvdDkja1kARIjCwIAEDOaCkRGGZmu8I/uyWVR16b2a4Y2zQfWbBIaRpZ0MzmmNl7ZrYm/POFdOwHAIB8FffWgLsXtKHOyMiC31VoZMFukr7XhnoSdae735HG+gEAyFuJjiOQMHd/KPxyqcIjCwIAgOyUskTAzK6P9767z03Vvpq51sy+JmmVpP8THt74CGY2U9JMSSouLk5TKADSKTI6IgPqAKmT6BDDiege/qmQ9HWFxh44UdI1kkraWqmZvWBm66L8XKTQjIgDJA1XaMjjH8eqx92r3L3C3St69erV1nAAAMgrKWsRcPdbJcnMfi/p1EjvAjObI+mxJOo9P5FyZvagpKfbuh8AAIIolS0CEcWSPm60/LHS12vghEaLX5S0Lh37AQAgX6X8YUGFBhRaYWZPKjRb4RclLUjDfiTph2Y2PLyfzZKuTtN+gDbL9P3smpoarVy5Unv37lVpaamqq6vVvz/P8QIISUevgdvM7FlJnw2vusLd/5Lq/YT39dV01AvkoljTDEeSAElav369ysrKVFlZeUS5TCcsADIjHS0CcvdXJb2ajroBtE4kCYi1DCDY0pIIAGh/sa7oS0tLtX79eklShw4dNHjw4Jy8+ucWB5AeJAJAnquurlZZWZn27t2rwYMHq7q6OtMhxRTr9obELQ4gXUgEgDzXv3//hhNmLp8kucUBpAeJAICsES9RyZdbHEC2Scc4AgCQctXV1SosLJSkrL/FAeQSWgQA5IR8ucUBZBtaBAAACDASAQAAAoxEAACAACMRAAAgwEgEAAAIMHoNAMgZ9BYAUi8nWgTM7Etm9oaZHTazimbv3Whm75jZW2Z2QaZiBAAgF+VKi8A6SRdLeqDxSjMrkTRZUqmkT0l6wcwGuvuh9g8RAIDckxMtAu7+pru/FeWtiyQtcvd/uvsmSe9IOq19owMAIHflSotALCdK+lOj5drwuiOY2UxJMyWpuLg4/ZEBWYR76wBiyZpEwMxekPS/orx1k7v/OtZmUdZ5tILuXiWpSpIqKiqilgEAIGiyJhFw9/PbsFmtpE83Wu4j6f2WNlq9evUeM4t2qyFXFUmqz5P9pqLOttTR2m0SLZ9IuXhlekra1oq4sl0+HaupqLet27dmu/Y6ViWO12ze78kx33H3nPmRtERSRaPlUkmvSeosqZ+kGkkFCdSzKtOfJcXfS1W+7DcVdbaljtZuk2j5RMrFK8Oxmt37Tbbetm7fmu3a61gNv8/xmqX7jVdnTjwsaGZfNLNaSWdK+q2ZPSdJ7v6GpEclrZf0O0mzPJg9BjI1H2s69puKOttSR2u3SbR8IuWCNJ9uPh2rqai3rdu3ZjuO1bbLp+M1Zp0WzhQCxcxWuXtFyyWBzOJYRS7heM1NOdEikAZVmQ4ASBDHKnIJx2sOCmSLAAAACAlqiwAAABCJAAAAgUYiAABAgJEIAAAQYCQCzZhZfzObZ2aPZzoWoDkzO9rMFpjZg2Z2eabjAeLh72luyKtEwMweNrM6M1vXbP1YM3vLzN4xsxvi1eHuNe4+Pb2RAp9o5XF7saTH3X2GpAvbPVgEXmuOV/6e5oa8SgQkzZc0tvEKMyuQdJ+kz0sqkTTFzErMrMzMnm7207v9QwYSP24Vmk/j3XCxII6iicybr8SPV+SArJl0KBXcfZmZ9W22+jRJ77h7jSSZ2SJJF7n77ZLGt3OIwBFac9wqNNFWH0lrlH+JPHJAK4/X9e0cHtogCH9ITtQnV1BS6A/pibEKm1kPM7tf0ilmdmO6gwNiiHXc/krSJWb2MwVv3Hdkr6jHK39Pc0NetQjEYFHWxRxO0d23S7omfeEACYl63Lr7R5KuaO9ggBbEOl75e5oDgtAiUCvp042W+0h6P0OxAIniuEUu4XjNYUFIBFZKOtnM+pnZUZImS/pNhmMCWsJxi1zC8ZrD8ioRMLOFkpZLGmRmtWY23d0PSrpW0nOS3pT0qLu/kck4gcY4bpFLOF7zD7MPAgAQYHnVIgAAAFqHRAAAgAAjEQAAIMBIBAAACDASAQAAAoxEAACAACMRAALGzA6Z2ZpGP3Gn5m4vjeL6lJn9Ofx6i5ltbRRr32bbjDKz5c3WdTSzD8zsBDP7kZn9w8y+2a4fBsghQZhrAEBT+9x9eCorNLOO4UFlktE4rtPD9U6TVOHu18bYZpmkPmbW1903h9edL2mdu/9d0rfM7KMk4wLyGi0CACRJZrbZzG41s1fNbK2ZDQ6vP9rMHjazlWb2FzO7KLx+mpk9ZmbVkn5vZoVm9qiZvW5mi8NX9RVmNt3M7my0nxlmNrcN8Q0ws9+Z2Woz+x8zG+zuhyU9JmlSo6KTJS1M6ssAAoREAAiers1uDTQ+iW5z91Ml/UxSpDn9JkkvuXulpHMl/cjMjg6/d6akqe5+nqR/k/Shu5dL+k9JI8JlFkm60Mw6hZevkPTzNsRdJek6dx8Rju2n4fULFTr5y8w6S/qCpCfaUD8QSNwaAIIn3q2BX4V/r5Z0cfj1GIVO5JHEoIuk4vDr5919R/j12ZLuliR3X2dmr4dff2RmL0kab2ZvSurk7mtbE7CZdZP0r5IeM2uY8bZzuP6VZtbNzAZJGiLpT+7+YWvqB4KMRABAY/8M/z6kT/4+mKRL3P2txgXN7HRJje+/R5uTPuIhSf8haYPa1hrQQdLOOAnMIoVaBYaI2wJAq3BrAEBLnpN0nYUvxc3slBjl/iDpy+EyJZLKIm+4+58Vmq/+MrXhRO3uuyRtMrMvhes3MxvWqMhCSV+RdJ6Y/hZoFRIBIHiaPyPwgxbK/6ekTpJeN7N14eVofiqpV/iWwHckvS6pvtH7j0p6JYlm+8slTTez1yS9IemiyBvuvl7SXoWeZaCXANAKTEMMICXMrECh+//7zWyApBclDXT3j8PvPy3pTnd/Mcb2e9y9WxrimiNpj7vfkeq6gXxAiwCAVCmU9IfwFfuTkr7u7h+b2bFm9rZCDylGTQLCdkUGFEpVQGb2I4VuGdBKAMRAiwAAAAFGiwAAAAFGIgAAQICRCAAAEGAkAgAABBiJAAAAAfb/AcNby8WwTukCAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax_spectrum, ax_residuals = datasets[0].plot_fit()\n", "ax_spectrum.set_ylim(0.1, 40)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For more ways of assessing fit quality, please refer to the dedicated [modeling and fitting tutorial](../2D/modeling_2D.ipynb)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compute Flux Points\n", "\n", "To round up our analysis we can compute flux points by fitting the norm of the global model in energy bands. We'll use a fixed energy binning for now:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:51.840124Z", "iopub.status.busy": "2021-11-22T21:07:51.839841Z", "iopub.status.idle": "2021-11-22T21:07:51.840897Z", "shell.execute_reply": "2021-11-22T21:07:51.841128Z" } }, "outputs": [], "source": [ "e_min, e_max = 0.7, 30\n", "energy_edges = np.geomspace(e_min, e_max, 11) * u.TeV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we create an instance of the `~gammapy.estimators.FluxPointsEstimator`, by passing the dataset and the energy binning:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:51.843122Z", "iopub.status.busy": "2021-11-22T21:07:51.842818Z", "iopub.status.idle": "2021-11-22T21:07:58.625037Z", "shell.execute_reply": "2021-11-22T21:07:58.625221Z" } }, "outputs": [], "source": [ "fpe = FluxPointsEstimator(\n", " energy_edges=energy_edges, source=\"crab\", selection_optional=\"all\"\n", ")\n", "flux_points = fpe.run(datasets=datasets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is a the table of the resulting flux points:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:58.627549Z", "iopub.status.busy": "2021-11-22T21:07:58.627255Z", "iopub.status.idle": "2021-11-22T21:07:58.634533Z", "shell.execute_reply": "2021-11-22T21:07:58.634738Z" } }, "outputs": [ { "data": { "text/html": [ "
Table length=10\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
e_refe_mine_maxdndednde_errdnde_errpdnde_errndnde_ultssqrt_tsnpred [4]npred_excess [4]statis_ulcounts [4]successnorm_scan [11]stat_scan [11]
TeVTeVTeV1 / (cm2 s TeV)1 / (cm2 s TeV)1 / (cm2 s TeV)1 / (cm2 s TeV)1 / (cm2 s TeV)
float64float64float64float64float64float64float64float64float64float64float64float32float64boolfloat64boolfloat64float64
0.8230.7370.9206.950e-117.224e-127.462e-127.000e-128.496e-11318.30817.84131.366455739137695 .. 23.8897645682434828.8755 .. 21.7202978.252False30.0 .. 25.0True0.200 .. 5.000140.739 .. 451.124
1.1480.9201.4342.884e-112.581e-122.654e-122.510e-123.430e-11449.77021.20840.72158479422507 .. 29.6274937824000838.46755 .. 27.44932612.649False43.0 .. 35.0True0.200 .. 5.000182.603 .. 693.653
1.7901.4342.2351.104e-111.132e-121.168e-121.096e-121.345e-11350.10918.71131.973730651551723 .. 21.12465596854583429.863085 .. 19.9056176.105False37.0 .. 21.0True0.200 .. 5.000150.799 .. 424.855
2.7902.2353.4833.462e-124.450e-134.631e-134.273e-134.426e-12219.11414.80220.868268731138357 .. 13.38557590954921419.72982 .. 12.43496112.915False13.0 .. 17.0True0.200 .. 5.000102.546 .. 293.446
3.8923.4834.3488.756e-132.576e-132.800e-132.362e-131.482e-1236.2356.0204.959041534302395 .. 2.70248573251928774.1686516 .. 2.53701384.035False8.0 .. 2.0True0.200 .. 5.00013.594 .. 125.092
5.4294.3486.7785.335e-131.079e-131.149e-131.011e-137.776e-1386.9269.3238.520676253068467 .. 5.17315976108213258.258545 .. 4.978136511.815False12.0 .. 6.0True0.200 .. 5.00047.101 .. 132.109
8.4626.77810.5641.623e-134.547e-144.941e-144.186e-142.695e-1338.1086.1735.121378946137629 .. 3.1055529256330154.6203055 .. 2.73134958.980False5.0 .. 5.0True0.200 .. 5.00028.474 .. 55.783
11.80310.56413.1895.214e-143.008e-143.529e-142.546e-141.339e-137.9112.8131.2131431975079712 .. 0.7323869303973991.1362201 .. 0.678332877.934False0.0 .. 0.0True0.200 .. 5.00012.285 .. 18.679
16.46513.18920.5561.177e-147.816e-159.399e-156.393e-153.395e-145.2692.2950.9432260338197485 .. 0.69875824357999750.8475294 .. 0.509569056.611False1.0 .. 0.0True0.200 .. 5.0009.622 .. 17.557
25.66320.55632.040nannan1.094e-15nan4.378e-15-0.000-0.0000.07692307692307691 .. 0.10810810810810809-4.4549585e-17 .. -2.7745514e-170.620True0.0 .. 0.0False0.200 .. 5.0000.866 .. 6.774
" ], "text/plain": [ "\n", " e_ref e_min e_max dnde dnde_err dnde_errp ... stat is_ul counts [4] success norm_scan [11] stat_scan [11] \n", " TeV TeV TeV 1 / (cm2 s TeV) 1 / (cm2 s TeV) 1 / (cm2 s TeV) ... \n", "float64 float64 float64 float64 float64 float64 ... float64 bool float64 bool float64 float64 \n", "------- ------- ------- --------------- --------------- --------------- ... ------- ----- ------------ ------- -------------- ------------------\n", " 0.823 0.737 0.920 6.950e-11 7.224e-12 7.462e-12 ... 8.252 False 30.0 .. 25.0 True 0.200 .. 5.000 140.739 .. 451.124\n", " 1.148 0.920 1.434 2.884e-11 2.581e-12 2.654e-12 ... 12.649 False 43.0 .. 35.0 True 0.200 .. 5.000 182.603 .. 693.653\n", " 1.790 1.434 2.235 1.104e-11 1.132e-12 1.168e-12 ... 6.105 False 37.0 .. 21.0 True 0.200 .. 5.000 150.799 .. 424.855\n", " 2.790 2.235 3.483 3.462e-12 4.450e-13 4.631e-13 ... 12.915 False 13.0 .. 17.0 True 0.200 .. 5.000 102.546 .. 293.446\n", " 3.892 3.483 4.348 8.756e-13 2.576e-13 2.800e-13 ... 4.035 False 8.0 .. 2.0 True 0.200 .. 5.000 13.594 .. 125.092\n", " 5.429 4.348 6.778 5.335e-13 1.079e-13 1.149e-13 ... 11.815 False 12.0 .. 6.0 True 0.200 .. 5.000 47.101 .. 132.109\n", " 8.462 6.778 10.564 1.623e-13 4.547e-14 4.941e-14 ... 8.980 False 5.0 .. 5.0 True 0.200 .. 5.000 28.474 .. 55.783\n", " 11.803 10.564 13.189 5.214e-14 3.008e-14 3.529e-14 ... 7.934 False 0.0 .. 0.0 True 0.200 .. 5.000 12.285 .. 18.679\n", " 16.465 13.189 20.556 1.177e-14 7.816e-15 9.399e-15 ... 6.611 False 1.0 .. 0.0 True 0.200 .. 5.000 9.622 .. 17.557\n", " 25.663 20.556 32.040 nan nan 1.094e-15 ... 0.620 True 0.0 .. 0.0 False 0.200 .. 5.000 0.866 .. 6.774" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "flux_points.to_table(sed_type=\"dnde\", formatted=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we plot the flux points and their likelihood profiles. For the plotting of upper limits we choose a threshold of TS < 4." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:58.641434Z", "iopub.status.busy": "2021-11-22T21:07:58.640803Z", "iopub.status.idle": "2021-11-22T21:07:58.909204Z", "shell.execute_reply": "2021-11-22T21:07:58.909386Z" }, "nbsphinx-thumbnail": { "tooltip": "Perform a full region based on-off spectral analysis and fit the resulting datasets." } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 5))\n", "ax = flux_points.plot(sed_type=\"e2dnde\", color=\"darkorange\")\n", "flux_points.plot_ts_profiles(ax=ax, sed_type=\"e2dnde\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The final plot with the best fit model, flux points and residuals can be quickly made like this: " ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:58.912133Z", "iopub.status.busy": "2021-11-22T21:07:58.911838Z", "iopub.status.idle": "2021-11-22T21:07:58.913072Z", "shell.execute_reply": "2021-11-22T21:07:58.913237Z" } }, "outputs": [], "source": [ "flux_points_dataset = FluxPointsDataset(\n", " data=flux_points, models=model_best_joint\n", ")" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:58.919789Z", "iopub.status.busy": "2021-11-22T21:07:58.919492Z", "iopub.status.idle": "2021-11-22T21:07:59.210036Z", "shell.execute_reply": "2021-11-22T21:07:59.210299Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAGtCAYAAAD9H8XfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABYKUlEQVR4nO3deXicZ3n3/e85i2a077Yl27K8xRuQBSchTQghbIEmhL1A2rKkSdMCffrSUmgpWykNfUppCXsgEJanoSylJBAalhKHNcQmmx3bie14t6zN2rcZzfn+MTOyLEu2pJnRjKzf5zjmmLnvue/rOmVJ41PXau6OiIiIyLkukO8AREREROaCkh4RERFZEJT0iIiIyIKgpEdEREQWBCU9IiIisiCE8h1AvtXV1Xlzc3O+wxAREZEs2LZtW7u710/23oJPepqbm9m6dWu+wxAREZEsMLMDU72n7i0RERFZEJT0iIiIyIIwr5MeM1tlZneY2bfHnSs1s6+Y2RfM7IZ8xiciIiKFI29Jj5l9ycxazWz7hPPXmNluM9tjZu85Uxnuvs/db5xw+lXAt939JuDlWQ5bRERE5ql8DmS+E/gU8NX0CTMLAp8GXgQcBh4ys7uBIHDrhPvf6u6tk5S7DHg89Xo0yzGLiIjIPJW3pMfdHzCz5gmnLwH2uPs+ADP7BnC9u98KXDvNog+TTHweYYqWLDO7GbgZoKmpacaxi4iIyPxTaGN6lgKHxh0fTp2blJnVmtnngAvN7G9Tp/8LeLWZfRa4Z7L73P12d9/s7pvr6yedyi8iIiLnmEJbp8cmOedTXezuHcAtE871A2/JclwiIiIyzxVaS89hYPm442XA0VxUZGbXmdnt3d3duSheRERECkyhJT0PAWvNbKWZFQGvB+7ORUXufo+731xZWZmL4kVERKTA5HPK+l3Ar4F1ZnbYzG509zjwduA+YCfwTXffka8YRURE5NyRz9lbb5ji/L3AvXMcDrFYjMHBQcLhMEVFRQSDwTNe/wef/zUA//mnl81FeCIiIpKhQhvIPGfM7DrgujVr1gDQ39fH3n37xt4PBAJjCVA4HD7ldUtPjEcOtDE0GuBFH9/CHW+6mKbakjx9JSIiIjId5j7l5KgFoWbFBr/2PZ/hjuOvpsvL6PJyuihLvqacE5Mcb2t1euPJliALBIgUFbFhaQ2BYJBAMEQgFMaCoeTr1GMitRCJiIhkn5ltc/fNk723YFt6xjMS3B25jtKBo1RZH1X0sTxwnGr6iFjs9BuWQddolPZEGe2jpbSNlpEYqabLyzgxligln09QzrBFU0lQkEAwTCAYoqWl5bSWpLN1qYmIiMjsLfiWns2bN/vWrVvp6upi7969p77pTmB0kNDwCcLDXannE/zPQzsIjXRTH+yjLthPQ3iA5dFBQrHeSesYDUaJR6qJpR7xSM2419XEUseJ4jqCxRWnJEITu9bC4TCBQKFNuhMRESkMaumZxMQxPRUVFWzatInR0VHi8Tijo6OnvE4/D8XjrG7o40/ufJCRWJzlVVHe/6JNdFZFsUSM0LjkKDxy4uTr4U5CwyeI9h8h1Lmd8Mjk6wONBqPEIjUnE6NoDYORGnrTyVG0hkRxPVa+iFCkZMrESMmRiIjIqdTSk2rpma1EIjGWFI1PkKY6Tj9IxAmPdJ2WFIWHOk++Tp+fogUpHq4gFq1JtRTVpF7XnkyOSuqgbAnBkmrCk7QeqVtNRETONWrpyaFAIDA202smJkuE4vE4sXicwXicWCx2MnEaHiAw2EF4uDP1SCZD4aGOVHLUSVnndsLDHQQSp49BSgSKOD5aTqdX0Lh0ObFIDYPRdHJUS7y4HsoXEyitI1wUmTI5CoX04yIiIvOX/hfLk1AoNKMkYnyLUTohisViDI0/HhkhMXACG2gnPNwx1mo00t3KY08+RV2gl5LDu1gWGSAc7zutjoSFiEdqGInWJluNonUMRWqJRWuJReuIFSdbjgKltWdsOZppAigiIjIXlPTkSXpxw+wL4b6YxGgtPhonMRrn8cOdDA0/HxJxfHSUokCCZ9SHqB7tpIZuauih1rqpsR5q4z3UDvRQw15q7WEW2cBpNYx4kA4q6fRK2r2SDipo96rUcyUdVNEZqCUWLMGCIT77x5dMOvYoFAphNtkes5nRwpEiIjKZBZv0TBzIfC4xM4KhMISSLS7xcCz9EkhuW1+ytIZh4MhonEOjo2MJUmI0RmI0PnYcjA9SkzhBDV3UppKjWusee70ycJTN7KTUhk+Lo8+jtMeqqL5nKSPF9cSidQxE64gV1zMSrSMWrcdK66ZsNZpNcnSwY4BHD3cxFEto4UgRETmFBjJnOJB5PnjRx7fwVGuyOytgsLq+jB+/83nTvt/dicfjjIyMEIvFJn0eHegmONhK0VA74cF2wkPtyddD7bQcPUidJVuUgnbqz1u61ajdq2j3Stqoos2raPcq2kg+d1kFHginFn4MTVj4MTxuDaTQWMKTFg0HOH9ZVVb+HadDrUsiIvmlgcwL3B1vupgX//sWhmIJVteXccebLp7R/WY2rbE6ExOjkZERBmIx/uqrD5KIx2B0hCrvoc66qKM7+Wzd1NHFIuvivMAhLudxiix+arkeoINK2hJVtA1XnZIYtVJNq1fTTSlYkJ6WfiwQgmAIC4ToD4YYqQ4kE6NQMnHKRZeaiIgUPrX0LICWnkIyPiGa7BGPxQiO9FA01EbRYCvhoTaKBtspGmojPNiaOt9GIDFySrmJQJhYtI7tPSXsGyrjSLySo6NVDEfrufn3L2ekeBGJULKba3z3WboLbfxzUVGREiMRkXlKLT1SMNIJR2lp6aTvJxKJ0xKh4ZEReoaHx1qRPJEgNNI9LglqpWiwjaLB46wMHWdx536WBHsJWaqb6/47AIiHyxgpXsxI8aKTzyVL6C9exHDxYuKRarDkgo6hUGgsAZqYHKVfKzESEZlflPRIQQkEAkSjUaLR6KTvuzuxWIzhVBI0MjLC8PAwPannWCyGu3PcRwkPdVI0eDyVFLWmXicfZR2PEYr3n1J2IhAelxAtZrhkCSPFixkoWcyJ4iXEonUQSG00m+rym5gYjX9o0UcRkcKyYJOec3n21rnMzMaSislMTIqGh4cZHh6mf2SEzlRSlBaI9VE02Epk8DhFA8dPJkYDLVS2Pkh4uPPUsi3ISKpVaKRkCSMlSxguTj73ljQQi9aAnUx0gsEgRUVFRCKRU5Kh9LEWexQRmVsa06MxPQtKuvtsYlKUPh4dHR271kZHxlqGIgMtqcSoJfl6sIWioY5Ty7YQIyWLGSlewnBpI8MlSxguaWCkpIHhkgZGw+UwrkssEAiMJUCTPU+npUhrEomInEpjekRSztZ9Fo/HJyRCjcnus1RSNF46KUomRC1EBo8lnweOUXXsgdM2lY2HSpMJUGkjw6lEaLi0kcGSBrqLF0Pg1F/HYDBIJBI5JREaf6wxRSIiM6OkR2Sc9PYgkw20Ht9KdPJRz9DQGnpHRpjYahqIDxAZOEZR/zEiAycf0d79VB7/9Sn7pLkFUuOIGpNJUWkjwyWNDJUupaukEQ+dmqSZGe39cR56dDsjHuLKDx7j0390KasbqqfdSiQistAo6RGZpjO1Erk7IyMjvOGzP2c0PkIiHiMRH2E0FiMRr8S9Alg3dr2RoJYeGq2dBuugwdpp7G2noa+NRttJ/YTtP9q9kqNexxGv46jXcdTr+XVnCTZUzahHeGp/D9fdepi1i8qTsQaDBEJhgqEIgXCYQKiIYChMIFxEIJCdhEhdaiIy3yjpEckCMyMSiRAuLiXM6a1Eo2NJ0MmE6EQsSke8mscSpw+mL2WARuug0dpYSjuNlnxcEthJrfUkL1qcfGqJl/N0vIZ9sVoGAks54vUcSdRzdLiW4eHTB3xPTIiCoSIC4SKCoSIsEMjqv4uISCFR0iOSRTNt/Ui3EA0PDzM0NHTK8/DwqfuZjQD7gYPxQSL9R/jaDx+gYuQYK0OdrAp38NLSJ6kJ/O5k2RgjxYsYKlvOcOkyhsqWM1S6jOGy5YwULxpbk2i89NihdItW+nUkEpnFv4aISGFZsEmPpqxLIUi3EEUiESoqKk55z93HkqD0I3kcYjC0hiuuWcbb7trGcNxpqi7m/S/aRGNpnGj/ESL9h4n2HSLSf4Ro3yHKTvyIYPxkl1kiEGGobClDZU0MlS5PPpctTyZEI8X09vaeFmc6EZr4CKh1SETmCU1Z15R1mYfSs8xu+NzPGY2N8O+v3TSWFE36O+1OaLiTaN8hoqmEKNp3kEjfISIDLRgnN2kdiSZbh4bKmxgsa2KobAVD5U3Ei6pPmXKfVlRUdEoSVFxcTDQa1TpEIpIXZ5qyrqRHSY+cQyZrHUo/xq9BNJ6NjhAZOEq07+BYMhTtPUi07yDB0cGx6+LhCobKmhgsX8FQ+QoGy1YwVN6cXKl6kmQoFAqNJUDjn5UMiUguaZ0ekQVifDfURLFYjKGhIQYHB09JhmLAUHkzQ+XNp97gTniojWjvAYr7DhLtPUC07wDVx35O6OAPxi4bDZWmEqFmBstWMFjezFDFSmKRWnrj8dO6ytLJ0PhEqLi4WNPsRSTnlPSILBDpzV7Ly8tPOR+Px8cSoHRCNDg4SCwWI1a8iFjxInoXXXzKPaHhrlQytJ9o736Kew9Q2fIr6kbuPVluuDyZAJU3M1i+MvmoWEmcCnp7e09LhsLh8FgCNP6hRRhFJFuU9IgscKFQiLKyMsrKyk45Pzo6ekoSlH7E43HikSr6IlX01Z1/alnDXakkaD/FvU8T7d1P9ZH/pX7c5q4j0VoGy1cxWLEy9byaofImYrFka1RPT8/YtemB3sXFxZSUlIwlQlPtvSYiciZKekRkUsFgcNJkKB6Pn5IEpROj0dHRVDJ0AX11F5y8wZ3wUDvFPfso7n06+eh5mvKnHxlbldotyFBZEwMVySRosGI1AxWriUdrxlqhTpw4cUps45Og9Gu1ConImWggswYyi2TFyMjIWBI0MDDA4ODg1LPJABKjRPsPJZOh1KOkZy9FQ21jl8SKqhmsWMVA5RoGKtcwWLGGobJlp+xmn5Yez5ROgtKJkAZOiywsmr11Bkp6RHInkUiMdY+lE6F0F9lUgiM9qQRoD8U9eynp3ku0dz8BT96TCESSLUKVaxioXMtA5XkMljfjwcm7vIqKisaSoPQjHA5P+2vQTvYi84tmb01CixOK5F4gEBhLNGpra8fOp1uFBgYGTmkVAhgtqqCv7tQuMkvEiPYepLhnDyXdT1HSvYeaI/9L/YF7gGT32GB581gSNFB1HgMVq/FghJGREUZGRujq6horLxQKjcVVWlpKSUmJxgmJLABq6VFLj0hBSA+cTidCAwMDDA0NTd095gmKBo5R0p1OhJKP8EhX8m0LMFS2gv6q8xioXEd/1ToGK1ZP2SI0VSKklh6R+UUtPSJSMKZKIiYbOJ1IJE5LhAYHB5OJkAUYKV3KSOlSuhqfl7whtbZQSfdTlHQ9SWn3k1Qef5C6Q/cl37Ygg+Ur6a9aR3/Vegaq1jNY3gyBIPF4nJ6enlNmj4VCIXqPHyIUidLV1UVpaemMusZEpLAo6RGRghUIBCgtLaW09OTO9e7O4OAg/f39DAwM0N/ff7JFyIxY8SK6ixfRveTy9A2Eh9oo7dqdTIS6dlF9bAv1qQUWE4EIA5Vr6a9eT3/VBvqrNzBSvBjMiMfjxIb6iQ31s3fvXiC5nlA6pnSrkBZWFJkflPSIyLxiZmPdUGmJRGKsJai/v5/+/v6Tu9SnEqGu4kV0NTw3ec6dSP8RSrp2U9q1k9KuXdTv/x6LE98GIBappr9qPS3R86jrDvDbgUb+/OvbeP+1m1hSBV1dXaeMEYpGo6ckQiUlJZo+L1KAlPSIyLyS7h47m0RilNHhIeIjg8SHhxgdGSRx2v5j9anHlYSIs9KOsd4OsH70AOuH9rLefs1d9TDqxs7YYh794XK2R9eyM7GSI9QBkyc2ZkawKEKoqJhgpJhQUZRgeOYDpTWOSCS7lPSIyDkpEAgSKC4lXHyya2w0NkJ8eJD4yCCjw0OMxk6uIxQnxFO+nKd8OfdwBYzC4ZYWLowc4dmRQ2yOHOK6kseoCDwEQJeX8oSv5IlEMzt8Jbu9iRjJ8T7uTnx4iPjwEPQmF1UMBEOEIlGCRcWEIlFCRcVYIDDH/yoiC5uSHhGZV7LZ+pFIJOjv76evr2/sefxu9H/+9Rg/O1HCzwbXEjBYXhXhjpfXUXZiB6UndnBR5w5+r//7ybICYQYqz6Ov5hljj9GiyinrNjOKi4spLS2lrKyM0tJSIpFI1r622dBMNTnXKekRkQUrEAhQXl5+yiasg4OD9PX10dfXx4dfdQE3f+U3DMedZVXFvO/aTQxVRBmqWEn7imsBCA53U3ZiO2Wdyceifd9hyd7/TJZVtoK+2mfRW/Ms+mqfSax40Vg97j42DqmtLbkKdXqQdDoJKi0t1dggkSxS0iMic+ZgxwCPHu5iKJbgRR/fwh1vupim2pKz3ziH0vt51dfXs3LlSjY/NkR8eJDbXrOB3t5ehoaGTrl+NFJJ95LLx2aL2egIpV27kklQx2PUHPnp2CKKw8VLkklQ7fn01j6LkZJGGJfUxGKxUwZJm9kpSVBZWZm21RDJgH57RGRWpjugeLx0wgPwVGsfL/73LZy/rGpGZcx110swFCYYCtPU1AQkN1zt7e2lr6+P3t5eBgcHT7neg0X01T6Lvtpnwdo3go9S3LOPso7HKe94lIrWB6k9/CMARqJ19NZeQG/dBfTWnn9aEuTuY61OadFodGw9o7Kysrx3iYnMJ0p6RGTOpBOeqY7ng1AoRHV1NdXV1cDJJCj9mNgShAUZrFzLYOVa2la9CtyJ9u2nvOMxyjoepaJtG7VHfgLASHQRvXUX0FN3Ib11F57SHZaW3nW+vb0dSHaJlZeXjyVBxcXFuf0HEJnHtA2FtqEQmTMv+vgWnmpNtloEDFbXl/Hjdz4vz1FlVywWo7e3l56eHnp7exkZGTnzDe5E+w5Q3v4I5R2PUNbxKOGRbgCGSpfRm0qAemovZDQy9cDotPTK1ulEaCZrBmkgs5wLtMv6JMZtOHrTU089le9wRBaEgx0DvPjftzAUS7B2UVlBjunJtqGhoVOSoNHT1gqawBMU9z5NedvvKO94mPKOxwjGBwAYqFhDT/1meuovoq/mmXjw7F1bgUDglCRoqsHRC/F7I+cmJT1noJYekbm1kFsT3J3+/v6xPb76+/vPeP17vvMYQUY5zw5yoT3FswO72WD7CdsoIx7icV/F1sR6tvl6nvYGploscTwzIxQpIRQtIRwtIVgUxcxOGW8FEA0HZjzeKhOz+XlYyD9LMjVtOCoiUgDMbGzsTWNj49gmp93d3fT09BCPx0+7Z5QgO30lO30l/5F4MVGGeabt5aLAbp5tu/nT0N3A3XR4BdsS69jq69mWWEcPZacHQDLxSu8nNsjJJKj/xAhWVIyFI5jZvBxvJXI2SnpERPIkFApRU1NDTU0NAP39/XR3d9Pd3c3AwAAfffWzprjzYgA6gd7BNiratlLRtpWr27bx4thDOMZA1Tq6F11Cz6JL6K9aB3bmTVH//OvbONjZgVmAYKSYVQ113PnHF2hgtJxTlPSIiBSI9IKEjY2NxGIxuru76erqore3l0Ri8paXWHE9HU0vpaPppeCjlHQ9SWXbQ1S0/paGJ79G45NfJR6uoHvRJXQvvpSe+osZLao4rZz3X7uJt921jeF4gsbiBH9zRT1PPPEEoVCIiooKysvLqaiooKho5nuIiRQKJT0iIgUoHA5TV1dHXV0diURirBusq6tr0m4wACzIQPUGBqo3cOy8PyY40k1F2zYqWx+kovW31B75CU6A/uqNdC9+Dl2LL2OovBnMWFIVZe2i5MrU41uY4vE4nZ2ddHZ2AhCJRKioqBhLhILBM7cgiRQSJT0iIgUuEAhQVVVFVVUVK1asoK+vb2zl5uHh4SnvGy2q5MTSqzmx9OqTrUCtD1J5/Dcs3fVFlu76IsPFS+hechldiy8jTIDYWf5bGB4epq2tjba2NsyMkpKSsSRI22ZIoVPSIyIyz6QHQy9btoyBgQG6uro4ceLE6Qsjjje+FWjdmwkPtVN5/DdUHv81dQfuZdHT3+Vb4Qi/TWyk+sjL6Fl0KaPhyQdDp6Vno/X393Ps2DGCweBYN1hlZaW6wqTgaMq6pqyLyDliaGiIEydO0NnZeeYEaAKLD1HR8TC7f/19Lgtsp8Z6cQvSW3sBXUsup2vJ5cSK62ccTzQaHUuAysrKCAQCMy7jTDRlXSajKesiIgtANBqloaGBhoYGBgcHxxKgM3WBAXgoSvfiy/j30VI+Mfpabnt+mKqWX1LV8kuatt9G0/bb6KveSNeSK+hacgXDZcumFU96y4zW1taxRRIrKyuprKzUnmGSF0p6RETOQend4hsbGxkYGBgbjByLxc54nxOgv2YT/TWbOLLxZqK9B6hq+QVVx37Osp23s2zn7QyUr6Kr8UpONFyZHAg9DenB2D09PRw6dOiUVqDy8nKNBZI5oe4tdW+JyALS29tLZ2cnJ06cOPuWGBMUDbSMJUBlndsxnMGyFZxofF4qAVp5yi7x05UeC1RVVUVlZSWh0PT+Hlf3lkxG3VsiIgJAeXk55eXlNDU10dXVRUdHBz09PUznD+CRkiW0rnoNrateQ3ionapjv6D62AM0PPl1Gp/8aioBuooTjVcxVL5i2jGNjo6OzUaD5HpF6QRIiyNKNinpERFZgMyM6upqqqurx9bi6ejoYGBgYFr3x6J1tK18BW0rX0FouJOqYz+n5uj9NDz5VRqf/AoD5as40XgVnUuvZqS0cUaxpWeEHTlyhEgkQmVlJVVVVZSVlakbTDKipEdEZIELhUIsWrSIRYsWMTAwQEdHB52dnVMvgjhBPFJDe/P1tDdfn2oBeoCaI/ezdPeXWLr7S/RVbaBz6Qs40XgV8WjNjGIbHh6mtbWV1tZWQqHQWAJUUXH6qtIiZ6MxPRrTIyJyGnenq6uL9vZ2enp6ZlVGeOA4NUd/Rs2R/6WkZw9OgN66C+lY9kK6Gp5LIlQy6/iO9wzz9m/vIhYqZt3yxXzpLc+hqXb25cm540xjepT0KOkRETmj4eFh2tvb6ejoOOvsr6lEew9Qc+Sn1Bz5KZGBYyQCEbqW/B4dy15ET/1m3vPdJ2ZU3lOtvQzHT/7/VVxayrNWLSVcXEYgOL1ODA2APjdpILOIiMxaJBJh6dKlNDY20t3dTVtb24xbf4bKV3B0/Vs5uu4tlJ7YQc3hn1Bz9H5qjv6MWFEVtwTP58eJi9nr01sDaHzCAzDY309/RwtmRihSTLiknKKS8mknQLIwzOuWHjNbBbwXqHT310x17kzU0iMiMnPpPbja29tnPPU9zRKx5Eaoh39MZcuvCHicgYrVdCx7MZ3LXkA8MvX4nz//+jYOnhgEIGCwrKqYz/zhs08t34yysrKxAdvTnQov81tBdm+Z2ZeAa4FWd3/GuPPXAJ8AgsAX3f2j0yjr2xMTnMnOTUZJj4jI7CUSCTo7O2lra5v2zK/JBEe6qTnyM2oP30dp127cgnQtfg4dy19K96JLIXDqbu4tXUO87a5tDMedpupi3n/tJpZURacsP50A1dTUUF1drd3hz2GF2r11J/Ap4KvpE2YWBD4NvAg4DDxkZneTTIBunXD/W929dW5CFRGRyQQCAerq6qirq6Ovr4/jx4/T3d09rXV/xhstqhybAh/t3U/tofuoPfwjqlt+SSxSQ8eyF9PedA3DZU0ALKmKsnZROQAfffWzzlq+u9Pb20tvby8HDx6koqKCmpoaqqqqsr4nmBSuvCU97v6AmTVPOH0JsMfd9wGY2TeA6939VpKtQiIiUqDSu7+PjIzQ2to6666vofJmjmz8U46sv5HK1gepO/hDFu/7Jkv2foPemmfRvuL3OdFw5azjdHe6u7vp7u4mEAhQVVVFTU0NFRUVWgfoHFdoHZxLgUPjjg8Dl051sZnVAh8BLjSzv3X3Wyc7N8l9NwM3AzQ1NWUzfhGRBa+oqIhly5bR2NhIe3s7x48fZ2RkZOYFBUJ0L7mc7iWXExrqpPbwfdQdvJeVD9/K8u2f4s+DF3Jv4jLg7C09U0l3z3V2dhIKhaiurqa2tpbS0tJZlymFa1ZjelJdTmfT6e5vPks5zcD302N6zOy1wEvc/U9Sx38EXOLu75hxkNOkMT0iIrnl7pw4cYLjx49nNO4nWViC8o5HqDvwA8qOPECRjdJX/Qzaml/OiYYr8WBRVmKORqPU1NRQW1tLUVF2ypS5kYsxPRuAPzlTnSTH5szUYWD5uONlwNFZlCMiIgXCzKipqaGmpobe3l5aWlpmveAhFqC37iJ66y7in/b/ihcHHuJNI1tZ+fA/sWzHp+lYfg1tK65lpHRpRjEPDQ1x9OhRjh49Snl5ObW1tVRXV2c8/kebpObXbJOe97r7ljNdYGYfmkW5DwFrzWwlcAR4PfDGWZRzVmZ2HXDdmjVrclG8iIhMIr3haX9/Py0tLWObjM5GD2V8O/F8Nj//HZS3/476/feweN+3WLz3m/QsuoTW5lfQs+hisMwSlfEDoKurq6mrq6OsrCyjMiU/ZpX0uPs3M73GzO4CrgLqzOww8AF3v8PM3g7cR3LG1pfcfcdsYpxGfPcA92zevPmmXJQvIiJTKy0tZfXq1QwNDdHS0kJnZ+eMZ3yNsQC99Zvprd9MeLCNuoM/oP7A91n7279lqKSRtubr6Vh+DaNF5RnFnEgk6OjooKOjg0gkQl1dHbW1tYTD4YzKlbkz64HMZrYMeANwBdAIDALbgR8AP3T3xJnud/c3THH+XuDe2cYlIiLzRzQapbm5mYaGBo4dO5ZZ8gPEius5tu7NtKy9gapjP2fR0//N8ic+S+PuL9O57EW0rnwVQ+UrMo57eHiYI0eOcPToUSoqKqirq6OyslKzvwrcrJIeM/syyZlW3wf+GWgFosB5wDXAe83sPe7+QLYCFRGRc1ckEhlLflpaWujo6Mgo+fFAmBNLr+bE0qsp7t7Doqf/i9pD/0P9gXvorr+E1lWvoqd+c8ZdX+Onv4fD4bE1izT4uTDNtqXnX919+yTntwP/ZWZFQEHPBdeYHhGRwhOJRFixYgVLlizJSssPwGDlGg5c8Dcc2XAzdQfuYdH+77H2wfcwWNZE66rX0LHsRXgwknHssViMY8eOcezYMSorK9X6U4BmleJOlvCYWbWZPSv1/oi778k0uFxy93vc/ebKysp8hyIiIhOkW342btxIdXV1VsqMR6poOe+PePyFd/H0hX9HIhhhxWMf55k/eQMNu79CaLgrK/UAdHd3s3fvXrZv386xY8dmvTu9ZFdGixOa2f3Ay1PlPAK0mdkWd39n5qGJiMhCF41GWbVqFYODgxw5coTu7u6My/RAmM5lL6Rz6Qso63iUxfu+SeOTX2HJnrvoWPZijq9+HcNl09vt/WxGRkY4evQox44do7q6mtjQAOFoSVbKlpnLdEXmSnfvMbM/Ab7s7h8ws8eyEZiIiEhacXExa9asoa+vjyNHjtDX15d5oWb01V1AX90FRHsPsGjft1OrPv+Arobn0rLm9QxUrc+8HpJjfzo7O+k9fpBgOEJ7+1pqamq079ccyzTpCZlZA/A64L1ZiGfOaEyPiMj8U1ZWxrp16+jq6iIY3sVobBbbW0xiqHwFB8//K46uewuLnv4u9Qe+R/WxB+ipvYDja96QGvScnbE5o7FhDhw4wJEjR6irq6O+vl4Dn+dIpinmP5BcU2ePuz9kZquApzIPK/c0pkdEZP6qqqqiomElpbVLsrpOTjxaw9ENN/L4C7/BoY23EO0/zNoH3836n/8ZVccegDOvxjKzuuJxWlpa2L59O/v27aO/vz9rZcvkMmrpcfdvAd8ad7wPeHWmQYmIiJyNmREpq2LTpk20tLTQ2tpKIpGdpCQRKqF19etoW/lKag7/mCV77mL11g8yWLaClrVvpLPxaggEs1JXem+yEydOUFpayuLFi6mqqtKsrxxQZ6KIiMxrwWCQpUuXsmnTpqzN9ErzQJiOppex46o72XfRe8ECrHz4Vp7xsz+m9uC9kIhntb7+/n727dvHjh07sprESZKSHhEROScUFRWxatUq1q1bR0lJlmdIBYKcWPoCnnjeF9hz8YeJh8tpfvRjPON//5i6A9/HEtmdkj48PMyhQ4d4/PHHOXr0KPF4dpOrhcoyXfRpvho3kPmmp56aF8OQRERkBtra2nKXMLhT0fogjU9+hdKu3QwXL6JlzQ10NF2DB6YeY/Se7yQnOH/01c+aUXWBQIDa2loWL15MJJL5QornMjPb5u6bJ3tv1i09ZrbezF5gZmUTzl8z2zLnkgYyi4ic2+rr69m0aRP19fXZL9yMnsXPYdcVn+GpSz9KLFrHisf/jU3/+yZqD/4QEqNZrS6RSNDW1saOHTt4+umnGRwczGr5C8Wskh4z+wvge8A7gO1mdv24t/8pG4GJiIhkKhQK0dTUxIYNG7Lf5QXJ5GfRJey+/JM8dek/E49U0vzov7Dp/rdQc/gn4NlNftLr/TzxxBPs3btXM75maFbdW2b2OHCZu/eZWTPwbeBr7v4JM3vY3S/Mcpw5s3nzZt+6dWu+wxARkRxz97Eur9HR7CYj4yqh8vivaNx9JyU9exksW8HR9W+ha8lzaeke5m13bWM47jRVF/P+azexpCqacZUVFRU0NDRQVlZ29osXgDN1b8026XnC3TeOOy4jmfg8AVzt7hfMMtY5p6RHRGRhicViHDp0iD/94pac1WEkuMIe482he2myVnYmmvhwx9X8rH/V2DWRkLF2UXnW6gxHS4hW1hKOlp723n/+6WVZq6fQ5WJMT4uZXZA+cPc+4FqgDnjmLMucU2Z2nZndno19XEREZP4Ih8OsWrWKskXLCISyt7DheE6An/sF3BR7Nx+Lv4Fa6+E/6u/kG4vv5PyiIwAMx7M7kSg2NEDv8UP0Hj9IbEjdXpOZbUvPMiDu7i2TvHe5u/8yG8HNBbX0iIgsXKOjoxw5coS2trac1mOjI2z5zqf546KfUhsc4O7+Z3Bn4vd57xtfkrM6y8vLaWxszEu318GOAW78ykPsa+tnVX0pd7zpYppq52aj1ax3b00ovBpYzrjVnd39dxkVOoeU9IiISG9vLwcOHGB4eDhndbR0DfHub/ySt5b+gj+r/BWRgNPW/HKOrf0jRiO5m0lcWVnJu394iFBR5uOHpuvRw10MxU4urBgNBzh/WdWc1P3NW35vyqQno20ozOzDwJuBvUA6e3Lg6kzKFRERmUvl5eVs3LiRo0ePcvz48ZzUsaQqSkN9PT/klbzwxW+jYfdXWPT0f1N36D6OrXkDratejQezvwZPd3c3Pcf2U1RSRnFVPcFw7tf5GZ/wTHacLxm19JjZbuCZ7p6dbW7zQC09IiIyXl9fH/v3789Jq8/ExQmjvU+zdOcXqDr+G4aLF3Nkw02caHx+1nZ0n8jMqKmpobGxMac7u7/o41t4qrUPgIDB6voyfvzO5+WsvvFysjhhynagKsMyRERECkZZWRkbN26krq4u53UNla9k7yX/xJOXfYzRcBmrfvePrPvlX1ByYmdO6nN3Ojo62LFjB4cPH87Z9hZ3vOliouFkirG6vow73nRxTuqZqYy6t4BbgYfNbDswlhK7+8szLFdERCRvAoEAK1asoKqqigMHDhCLZXdvrYl66y5i55Wfo/bQfSzddQcbfvE2Opa+kCMbbiJWnP0VpROJBMePH6e9vZ0lS5awaNEiAoHsbcfZVFsyNoankKbLZ5r0fAX4Z+BxoDA67ERERLKksrKSjRs3cuDAAbq6unJbmQXpaHoZJxqvYsmeu1i895tUtfyClrU3cHzVa/Fg9rujxs9eW7p0KTU1NVmvo5BkmvS0u/ttWYlkjo3bcDTfoYiISAELhUKsXr2atrY2Dh8+TCKR27/xE6ESjq6/kfaml7Fsx+dYuusO6g7ey6FNf0734t/LyXifkZERnn76aY4fP86yZcsoL8/eoomFJNO2rG1mdquZXWZmF6UfWYksx7ThqIiIzER9fT0bNmyguLh4TuobKWlg38Uf4snn/AuJQBFrHnofax58N5G+gzmrc2BggCeffJK9e/fmdPp+vmTa0pPeY+s5485pyrqIiJyTotEoGzZs4PDhw7S2ts5Jnb31z+aJ532BRfu/R+PuO9l4/59wfPUfcGztDXgoN2vvdHV10d3dzeLFi2loaMjqeJ98yijpcffnZysQERGR+cDMWL58OWVlZRw4cCB3m5eOFwjRuurVdC59Psue+DwNe/4fNUd+wqFnvD1nXV7uTktLCx0dHSxdupTa2tqs1zHXMkrdzOyfzKxq3HG1mf1jxlGJiIgUuOrqajZs2EBJydxsrwAQj9Sw/8K/Zffv/RuJUDFrHnofq3/7XooGjuWszlgsxv79+9m1axcDAwM5q2cuZNpe9VJ370ofuPsJ4GUZlikiIjIvRCIR1q1bNydr+ozXV3s+T1x5O4c23kJ5xyNs+tlbWbznG5DIzbo7AP39/ezcuZODBw/OTetWDmSa9ATNbGw9azMrBnK/vrWIiEiBSK/p09zcPLdjXwIhWle/jh3Pv5Oe+mezbOftbPj5LTlb2DCtra2N7du3097entN6ciHT787XgZ+a2Y1m9lbgxyTX7hEREVlQamtrWbduXU63d5hMrHgRey/5R/Zu/hChkR7W/+LtLH/8EwRi/TmrMx6Pc+DAAXbv3s3g4GDO6sm2jJIed/+/wD8CG4BNwIdT50RERBackpISNmzYkJd1broansuOq75M68pXUr//bjbd/1Yqjv8mp3X29fWxc+dOjhw5kvP1i7JhVkmP2clh4u7+P+7+1+7+V+5+32TXFCIzu87Mbu/u7s53KCIicg4JhUKsXbuWRYsWzXndiXAph5/xdnZd8SlGw6Ws/e3f0fy7jxAa7spZnelZXjt27KDQ/0+dbUvPz8zsHWbWNP6kmRWZ2dVm9hXgTZmHlztanFBERHIlPa29ubmZfLQBDFRvYOeVn+foeW+i+ugWNt7/FqqP/BTcc1bnyMgIe/bsYd++fTnbyDRTs016rgFGgbvM7KiZPWFmTwNPAW8A/s3d78xSjCIiIvNSbW0t5513HqFQpmsBz5wHwhxb9yZ2Xvl5RkoaWPW7j7D6ofcRGurMab0nTpxgx44dDPcVXqvPrJIedx9y98+4++XACuAFwIXuvsLdb3L3R7IZpIiIyHxVVlbG+vXriUZzs3ry2QxVrGTXFZ/k0MZbqGh7iE33vzXnrT7xeJz+jmP0Hj/EyMhIzuqZqYzn1rl7zN2PjV+vR0RERE6KRCKsX7+ecLQ0PwFYkNbVr+OJK7/AUOlSVv3uI6za+kFCwydyWm1sqJ8dO3bQ1taW03qm69zYTENERKTABYNByhYtI1KWv7Gkw+VN7L7iNg5vuJnK1t+w6WdvoeroAzmtM5FIcPDgQZ588sm8t/oo6REREZkjZkZpbQONjY15DCLI8TWvZ+eVn2e4pIHV2z5I88O3Eoj15bTa3t7evLf6zGpklZndB/wP8EN335XdkERERM5N//mnl429DofDHDx4EM/h2JozGSpvZtcVn6Thqa/T8NTXKet4lP0XvIe+ugtyVme61aerq4sVK1bM+UKONpt/bDNbQnIG1zXAecCDJJOgn7p7blPFLNu8ebNv3bo132GIiMgC1N3dzb59+/K+sF/JiZ2sfPhWIv1HaF31Go6svxEPzi4h+cIDe3GH0sjJdpX+4Thmxk1Xrho7FwwGaWpqoqamJuP4xzOzbe6+edL3Ms0wzSwAXAq8lOQsrkHgR/NlZWYlPSIikk/9/f3s2bMn72vbBOKDLH3i8yw6cDcDFat4+qK/Z6i8ecblfP03+/nvh48wFD+ZX0RDAV554VJueM6K066vqamhqamJYDCYSfhjzpT0ZGP2VsLdf+3u709NYX89cCTTckVERBaC0tJS1q1bRzgczmsciVAxh571lzx1yT8RHupkwwO3ULf/ezOe2v7azcspLjp19ExJUZDXbF426fWdnZ088cQT9PT0zDr26cr6QGZ3b3f3/5ftckVERM5V0Wg0L5uVTqZn8XN44nlfpLf2fFY8/glWP/Q+gsPTX2gwEgryf16wlmgomWJEQwH+4gVriYSmbskZGRnhqaee4vDhwzkd47RgZ29p7y0RESkkkUiEdevWEYlE8h0K8WgNey69lUOb/pyKtofYuOVPKG//3bTv39xcw/qGCgIGGxoq2Nw8vXE7x48fZ9euXQwPD8829DNasEmP9t4SEZFCU1RUxLp16yguLs53KGABWle9hl1XfDq5eemv30XD7jvBR6d1+9ufv4Y19WW87flrZlTtwMAATzzxBB0dHbMI+swyGshsZu+c5HQ3sG2+bEWhgcwiIlJo4vE4Tz31FAMDA/kOBUgOcl7++G3UHb6P3toLePqivyMWrct5vbMZ5JzLgcybgVuApanHzcBVwBfM7G8yLFtERGRBCoVCnHfeeZSUlOQ7FCA5yPnAhe/m6QveTUnXLjZsuYmK1t/mvN7Ozk527tzJ4OBgVsrLNOmpBS5y979y978imQTVA1cCb86wbBERkQUrGAyydu3awujqSulc/hJ2PfezxCK1rH3wPTTu/CIkptfdNVvDw8Ps2rUrKys5Z5r0NAHjN9KIASvcfRDIzSgkERGRBSLd4pOvHdonM1S+gl3P/TRtTS+jYc9/sPY37yI03JnTOtMrOT/99NMZLeSYadLzH8BvzOwDZvYB4JfAXWZWCjyRYdkiIiILXiEmPh6McPD8v2b/BX9D2Ykn2LDlTynteDzn9Wba3TXrgcxmZsAyYBFwBWDAL9x9Xo0K1kBmERGZD2KxGLt3787ZdO7ZKu7ey6ptHyQycIzDG26mddVrwSyndQYCAZqbm6murj7tvZxtQ5Eq+NmzLqAAKOkREZH5YmRkhF27dhGLxfIdyikCsT6aH/m/VLf8ghMNV7L/gneTCOV+LNKiRYtYtmwZNi7JyuXsrd+Y2cUZliEiIiLTUFRUxNq1a7O2T1W2JMJl7Nv8IQ5vuJmqY79g/S/eRqQ/9ztStba28uSTT047Ccw06Xk+ycRnr5k9ZmaPm9ljGZYpIiIiUyguLmbNmjUEAgW2vrAZx9e8nqee81HCQ52s//mfUXH8Nzmvtq+vjz179kzr2kz/xV4KrAKuBq4Drk09i4iISI6UlZWxatWqU7p1CkVv/WZ2XvlZRooXs+a372XJk18Hn/2Mq+kYHZ3etPmMkh53PwAsB65OvR7ItEwRERE5u8rKSlasWJHvMCY1UtLArss/SefSq1m6+0us2vohAvHsLDCYiYwSlNQ09XcDf5s6FQa+nmlQIiIicna1tbUsXbo032FMykNR9l/4dxzaeAtVLb9k3S//gqKBlrzGlGmrzCuBlwP9AO5+FCjPNCgRERGZniVLllBXl/t9sGbFjNbVr2PPJR8hMtDC+p//OaWd2/MWTqZJz4gn57w7QGpRQhEREZlDTU1NlJcXbptDz+JL2XXFpxgNl3Ler95J7cEf5iWOTJOeb5rZ54EqM7sJ+AnwhczDEhERkekyM1atWkUkEsl3KFMaKl/Bris+Q1/t+TQ/+i8s3fFZ8Nzu2zVRpgOZPwZ8G/gOsA54v7t/MhuBiYiIyPSFQiHWrFlTcGv4jDdaVM5Tl36U1uZXsGTft1i19YNzOsA545lW7v5jd3+Xu/+1u/84G0GJiIjIzEWjUVavXl2QU9nHBIIceuZfcPAZb6eq5dec96v/j/BQ+9xUPZubzOz72bgmU2a2yszuMLNvjzv3CjP7gpl9z8xenOsYRERECkl5eTnLly/Pdxhn1bbyVey55B+J9h1k/c/fRnH33pzXOduWnivM7O4zPO4BNp6pADP7kpm1mtn2CeevMbPdZrbHzN5zpjLcfZ+73zjh3H+7+03Am4E/mN2XJyIiMn/V19dTW1ub7zDOqmfxc9h9+W2As+6Xf5HzFZxDs7zv+mlcM3KW9+8EPgV8NX3CzILAp4EXAYeBh8zsbiAI3Drh/re6e+sZyv/7VFkiIiILTlNTEwMDAwwO5n9RwDMZrFzDrud+hjUP/h1rHvp7DjzrnXQ0vSwndc0q6XH3LZlW7O4PmFnzhNOXAHvcfR+AmX0DuN7dbyW5xcVZWbIj86PAD939d1NcczNwMyR/KERERM41gUCA1atXs3Pnzmlv05AvsWgduy//d1Zt/RDNj36MosFWjp33Jsjy2KRC2zJiKXBo3PHh1LlJmVmtmX0OuNDM0qtCvwN4IfAaM7tlsvvc/XZ33+zum+vr67MUuoiISGGJRCI0NzfnO4xpSYRK2HPJR2hffg2NT36VFY/+CyTiWa1jtt1buTJZSudTXezuHcAtE87dBtyW5bhERETmpaqqKpYsWUJLS363gJiWQIgD57+LkeJFND75VcJDHezb/AESoZLsFJ9pAWZWbGbrshEMyZad8UPOlwFHs1S2iIjIgtTY2FjQKzafwoxj697M/vP/mor2bZz3q3cSGu7KStGZbjh6HfAI8D+p4wtSA49n6yFgrZmtNLMi4PVAJuVNycyuM7Pbu7u7c1G8iIhIwTAzVq5cSShUaB08U+toehl7Lv5HinsPZG2z0kxbej5IcvBxF4C7PwI0T+dGM7sL+DWwzswOm9mN7h4H3g7cB+wEvunuOzKMcVLufo+731xZWZmL4kVERApKOBxmxYoV+Q5jRnoWP4cnL/sXQiNdrPvlO4j2Pp1ReZkmPXF3n1VTibu/wd0b3D3s7svc/Y7U+Xvd/Tx3X+3uH8kwPhEREUmpqqqaF+v3jNdf8wx2/96/g8O6X/5lRru0Z5r0bDezNwJBM1trZp8EfpVhmXNC3VsiIrIQLV++vKA3Jp3MUMUqdl/xSeJFlZz363dRcfzBWZWTadLzDmATMAzcBfQAf5lhmXNC3VsiIrIQBYNBmpubC3t/rkmMlCxh9+WfYLC8idUPvY+qozNfMjDTXdYH3P297n5xat2b97r7UCZlioiISG6VlZWxZMmSfIcxY/FINU9e9q8MVK1n1bYPU3PovhndP6th3Km9tc60fs7LZ1OuiIiIzI2GhgZ6enro7+/PdygzkgiX8dRz/pnVD72flY/8M8H4ID3rp7fV5mxbej4G/CvwNDAIfCH16ANmP8JoDmlMj4iILGRmNi+7uQASoWL2XPIRuhZfTtP226jb9bVp3WfuUzbYnP1mswfc/cqznStkmzdv9q1bt+Y7DBERkbw4evQox44dy3cYs5OI0/zIP1N75Kdw5bvg6r/HzLa5++bJLs90laJ6M1s1boPQlYA2sxIREZknGhoaOHHiBEND83BIbiDE/gvfA5FyauvXn/XyTJOe/w+438z2pY6bgT/NsEwRERGZI2ZGU1MTTz75ZL5DmR0Lcuyid1H7jGec9dKMkh53/x8zWwuk06td7j6cSZkiIiIyt8rLy6mtraWjoyPfoeRUNjbheDbJFp4QcL6Z4e5fzUK5OZXaN+y6NWvW5DsUERGRvFu2bBnd3d3E4/F8h5IzmW44+jWSM7muAC5OPSYdPFRotDihiIjISaFQiGXLluU7jJzKtKVnM7DRM5kCJiIiIgUh3cXV29ub71ByIuO9t4D5t6SjiIiITKqpqWlert0zHZm29NQBT5jZb0nuvwVoRWYREZH5KhqNUldXR1tbW75DybpMk54PZiMIERERKRwNDQ10dHSQSCTyHUpWZTplfeZbnBYIzd4SERGZXDgcZsmSJRw9ejTfoWTVrMb0mFmvmfVM9ch2kLmg2VsiIiJTW7x4MeFwON9hZNWsWnrcvRzAzP4BaAG+BhhwA1CetehEREQkLwKBAI2NjRw4cCDfoWRNprO3XuLun3H3XnfvcffPAq/ORmAiIiKSX7W1tUSj0XyHkTWZJj2jZnaDmQXNLGBmNwCj2QhMRERE8svMzqkFCzNNet4IvA44nnq8NnVOREREzgGVlZWUl58bI1cynb21H7g+O6GIiIhIIVq6dCm7du3KdxgZm3VLj5m9xMxuNLMVE86/NfOwcs/MrjOz27u7u/MdioiISEErLS09J1p7Zjtl/Z+A9wLPBP7XzN4x7u23ZyOwXNOUdRERkelbvHhxvkPI2Gxbeq4Drnb3vwSeDbzUzP4t9d65uWGHiIjIAlZZWUlxcXG+w8jIbJOekLvHAdy9i2QSVGFm3wKKshSbiIiIFJAlS+b3HuOzTXr2mtnz0gfuPuruNwK7gQ1ZiUxEREQKSnV1NUVF87dtY7ZJz2uB30486e5/DyzPKCIREREpSGY2r8f2zCrpcfdBdx+0pD80s/cDmFkTsDSrEYqIiEjBqKurIxTKaMWbvMl0ccLPAJcBb0gd9wKfzrBMERERKVCBQIBFixblO4xZyTTpudTd3wYMAbj7CTSQWURE5JxWX19PIJBpCjH3Mo04ZmZBwAHMrB5IZBzVHNDihCIiIrMTCoWoq6vLdxgzlmnScxvwXWCRmX0E+AXwTxlHNQe0OKGIiMjszccurkz33vp/ZrYNeAHJRQlf4e47sxKZiIiIFKxIJEJZWRl9fX35DmXaMh5+7e67gPm/C5mIiIjMSG1t7bxKeubfKCQREREpCNXV1fNqQPP8iVREREQKSjAYpKqqKt9hTJuSHhEREZm12trafIcwbUp6REREZNYqKirmzX5cSnpEREQkIzU1NfkOYVqU9IiIiEhG5ksXl5IeERERyUg0GqW0tDTfYZyVkh4RERHJ2HzYlkJJj4iIiGRsPqzZU9jR5ZA2HBUREcme+bBmz4JNerThqIiISHYV+iyuBZv0iIiISHaVl5djZvkOY0pKekRERCQrAoEAZWVl+Q5jSkp6REREJGsqKiryHcKUlPSIiIhI1ijpERERkQWhpKSEUCiU7zAmpaRHREREsqq8vDzfIUxKSY+IiIhkVaF2cSnpERERkaxS0iMiIiILQlFREdFoNN9hnEZJj4iIiGRdIbb2KOkRERGRrCvEwcxKekRERCTrCnFLCiU9IiIiknXBYJDS0tJ8h3EKJT0iIiKSE4U2rkdJj4iIiOREoY3rUdIjIiIiOVFaWkowGMx3GGPmddJjZqvM7A4z+/a4cxvM7HNm9m0z+7N8xiciIrKQmVlBtfbkLekxsy+ZWauZbZ9w/hoz221me8zsPWcqw933ufuNE87tdPdbgNcBm7MfuYiIiExXIY3ryWdLz53ANeNPmFkQ+DTwUmAj8AYz22hmzzSz7094LJqqYDN7OfAL4Ke5C19ERETOppBmcOVt73d3f8DMmiecvgTY4+77AMzsG8D17n4rcO0Myr4buNvMfgD8R5ZCFhERkRkqpO0oCm1Mz1Lg0Ljjw6lzkzKzWjP7HHChmf1t6txVZnabmX0euHeK+242s61mtrWtrS2L4YuIiMh4gUCAcDic7zCAPLb0TGGypRt9qovdvQO4ZcK5+4H7z1SJu98O3A6wefPmKcsXERGRzEUiEWKxWL7DKLiWnsPA8nHHy4CjeYpFREREsqBQurgKLel5CFhrZivNrAh4PXB3Lioys+vM7Pbu7u5cFC8iIiIpkUgk3yEA+Z2yfhfwa2CdmR02sxvdPQ68HbgP2Al809135KJ+d7/H3W+urKzMRfEiIiKSUigtPfmcvfWGKc7fyxQDkEVERGT+WfAtPSIiIrIwFEpLz4JNejSmR0REZG6YGUVFRfkOY+EmPRrTIyIiMncKobVnwSY9IiIiMncKYVyPkh4RERHJObX05JHG9IiIiMwdtfTkkcb0iIiIzB219IiIiMiCUFRUhNlkW2zOHSU9IiIiknNmlvcuLiU9IiIiMieU9OSJBjKLiIjMrXyP61mwSY8GMouIiMwttfSIiIjIgqCWHhEREVkQ1NIjIiIiC0JRURGBQP5SDyU9IiIiMmfy2dqzYJMezd4SERGZe0p68kCzt0REROZePgczL9ikR0REROaeWnpERERkQVBLj4iIiCwISnpERERkQQiFQgSDwbzUraRHRERE5lS+xvUs2KRHU9ZFRETyI19dXAs26dGUdRERkfxQS4+IiIgsCGrpERERkQWhqKgoL/Uq6REREZE5ZWZ5qVdJj4iIiCwISnpERERkQVDSIyIiIguCkh4RERFZEBZs0qPFCUVERBaWBZv0aHFCERGRhWXBJj0iIiKysCjpERERkQVBSY+IiIgsCEp6REREZEFQ0iMiIiILgrl7vmPIKzNrAw5M8/JKIJM57rO9vw5oz6BemZlMv8+FqlC/rnzFlet6c1F+tsrMpBx9js0fhfo7n6mzfV0r3L1+sjcWfNIzE2Z2u7vfPNf3m9lWd98823plZjL9PheqQv268hVXruvNRfnZKjOTcvQ5Nn8U6u98pjL5utS9NTP35Pl+mRvn6vepUL+ufMWV63pzUX62ysyknEL9OZLTnavfq1l/XWrpmQf0F5KIzHf6HJNCoJae+eH2fAcgIpIhfY5J3mWtpcfMeoF0YZZ69tRrd/eKrFQkIiIiMgvq3hIREZEFISfdW2Z2hZm9JfW6zsxW5qIeERERkenKekuPmX0A2Aysc/fzzKwR+Ja7X57VikRERERmIJSDMl8JXAj8DsDdj5pZeQ7qyYq6ujpvbm7OdxgiIiKSBdu2bWufanHCXCQ9I+7uZuYAZlaagzqyprm5ma1bt+Y7DBEREckCM5tyl4VcjOn5ppl9Hqgys5uAnwBfyEE9IiKygF111VVcddVV+Q5D5pGsJz3u/jHg28B3gHXA+939k5mWa2ZfMrNWM9s+xftmZreZ2R4ze8zMLsq0ThERETl35KJ7C3f/MfDjLBd7J/Ap4KtTvP9SYG3qcSnw2dSziIiISPaSngmLE54m08UJ3f0BM2s+wyXXA1/15HS035hZlZk1uPuxTOoVERGRc0PWkh53Lwcws38AWoCvkVyN+QZgLmZvLQUOjTs+nDp3WtJjZjcDNwM0NTXNQWgiIiKSb7kYyPwSd/+Mu/e6e4+7fxZ4dQ7qmcgmOTdpy5O73+7um919c339pLPaRERE5ByTi6Rn1MxuMLOgmQXM7AZgNAf1THQYWD7ueBlwdA7qFRERkXkgF0nPG4HXAceBVuC1qXO5djfwx6lZXM8BujWeR0RERNKyPnvL3feTHFScVWZ2F3AVUGdmh4EPAOFUnZ8D7gVeBuwBBoC3ZDsGERERmb+ynvSY2TLgk8DlJMfU/AL4P+5+OJNy3f0NZ3nfgbdlUoeIiEgupRdTvP/++/Max0KVi+6tL5PsamokOXvqntQ5ERERkbzJRdJT7+5fdvd46nEnoClSIiIikle5SHrazewPU7O3gmb2h0BHDuoRERERmbZcJD1vJTl7q4XkwoCvSZ0TERERyZtczN46CLw82+WKiIiIZCIXs7dWAu8AmseX7+5KhERERCRvcrHL+n8Dd5CctZXIQfkiIiIiM5aLpGfI3W/LQbkiIiIis5aLpOcTZvYB4EfAcPqku/8uB3WJiIiITEsukp5nAn8EXM3J7i1PHYuIiIjkRS6SnlcCq9x9JAdli4iIiMxKLtbpeRSoykG5IiIiIrOWi5aexcAuM3uIU8f0aMq6iIiI5E0ukp4P5KBMAMzsGuATQBD4ort/dML7VwHfA55Onfovd/+HXMUjInIu0Q7gcq7LxYrMW7JdJoCZBYFPAy8CDgMPmdnd7v7EhEt/7u7X5iIGERERmb9yMaYnVy4B9rj7vtQg6W8A1+c5JhEREZkn5lPSsxQ4NO74cOrcRJeZ2aNm9kMz2zRZQWZ2s5ltNbOtbW1tuYhVRERECsyMkx4zC5hZxSTnbzezV5pZeXZCO73qSc75hOPfASvc/XzgkyS3xDj9Jvfb3X2zu2+ur6/PbpQiIiJSkKaV9JjZf5hZhZmVAk8Au83sXRMu+xJwPnCvmf3UzN5tZudnMdbDwPJxx8uAo+MvcPced+9Lvb4XCJtZXRZjEBERkXlqui09G929B3gFcC/QRHLV5THu/ht3/6C7Pxd4HXAQ+Csze9jMvmRmr8sw1oeAtWa20syKgNcDd4+/wMyWmJmlXl9C8uvryLBeEREROQdMd/ZW2MzCJJOeT7l7zMwmdi2NcfcO4K7UAzN7NnBNJoG6e9zM3g7cR3LK+pfcfYeZ3ZJ6/3PAa4A/M7M4MAi83t2njFNEREQWjukmPZ8H9pNcbfkBM1sB9Ey3EnffBmybcXSnl3MvyZam8ec+N+71p4BPZVqPiIiInHumlfS4+23AbeNOHTCz5+cmJBEREZHsO2PSY2bvPMv9H89iLCIiIiI5c7aWnhlPPzezRcDlQCPJcTXbga3unph5eCIiIiLZccakx90/NN2CUt1d7wFqgIeBViBKcvDzajP7NvCvqVlgIiIiGdu/f3++Q5B5ZFpjeswsCtwIbCKZyADg7m8dd9nLgJvc/eAk94eAa0num/WdTAIWERFJO3DgQL5DkHlkurO3vgbsAl4C/ANwA7Bz/AXuPnGxwvHvxZlidWQRESkc+Wo5Se/wPhOPPPLIrO8F7Sa/EE036Vnj7q81s+vd/Stm9h8k18sZc7ZBz+6uQc8iIgVuPrSc7N+//5Q4t2zZAsCKFStobm7OU1QyH0w36YmlnrvM7BlAC9A84Zpc7bklIpI36VaEfLQKzLYFY7YybTnJxGz+fa+66iq2bNmC1qCV6Zpu0nO7mVUD7yO59UMZ8P7xF8xk0LNILuXzPymR+UgtJ7JQTHdxwi+mXm4BVp3pWjM7D/gssNjdn2FmzwJe7u7/mFGkInIaJXjntrn+vs7HlpMVK1bkOwSZR6Y7e+v9k51393+Y5PQXgHeR3LoCd38sNQZISY+IiGSVWqJkJqbbvdU/7nWU5PTznVNcW+Luv01tdp4Wn0VsBU1/YRc2rd0hMjtqOZFz2XS7t/51/LGZfYzk2J7JtJvZasBT174GOJZJkCIzNR9moGSLEjzJJrWc5J5+Z/Nnui09E5Uw9dietwG3A+vN7AjwNPCHs6ynoOkHd3o0AyW3FlKCJ3Iu0O9s/kx3TM/jpFpugCBQT3KRwtO4+z7ghWZWCgTcvTcbgabiuAb4RCqGL7r7Rye8b6n3XwYMAG92999lq/6J9INbWAphBooSvHOT/sA5N+Xj9yZfv7ML6ff1TKbb0nPtuNdx4HhqleUxUy1OmB7bk+nihGYWBD5NciuLw8BDZna3uz8x7rKXAmtTj0tJziK79Ezl7t69e0GsBJrPMUgLaQbKXH2QFUKCt5DoDxzJlH5nC8MZkx4zq0m9nNhaU2FmuHvnuHPpxQnXARdzcszPdcADmQYKXALsSbUkYWbfAK4Hxic91wNf9eT/dr8xsyoza3D3rI0pms8/uPprNfcWUoKXL2pNk2zJ14KTC+13tpCcraVnG8luLQOagBOp11XAQWBl+sL04oRm9iPgonS3lpl9EPhWFmJdChwad3yY01txJrtmKRMGUpvZzcDNALW1tbP6MLvzzjs5cOAAH/jAB2Z8L8AHP/jBWd03W+lkba7rzYf9+/dTWVm5YL5WmPufp3yaq+S9q6uL7u7useP0HziVlZVUVVXNSQz5+JzIR72zNd/ihfkZ87nEppNtmtnngLvd/d7U8UuBF7r7X01y7S7gfHcfTh1HgEfdfX1GgZq9FniJu/9J6viPgEvc/R3jrvkBcKu7/yJ1/FPgb9x921Tlbt682bdu3TrjeDLN1vPx12p3dzfPe97z5rRe0F+ruXTVVVexf/9+teLl0EL6y3y+LcUx3+IF/c7OBTPb5u6bJ3tvumN6Lnb3W9IH7v5DM/vwFNd+DfitmX03dfwK4CvTDfYMDgPLxx0vA47O4pqsmQ/rWczn7jiZHn0fReYX/c7mz3STnnYz+3vg6yS7u/4Q6JjsQnf/iJn9EHhu6tq3uPvDWYj1IWCtma0EjgCvB9444Zq7gbenxvtcCnRnczzPeJn+ZaGxHyLzx3z4A0dEzm66Sc8bgA8A6dabB1LnpjIKJEgmPYlZRzeOu8fN7O3AfSSnrH/J3XeY2S2p9z8H3EtyuvoeklPW35KNukUK1Xxq1p/P9Je5yLlhuisydwL/ZzrXmtn/AW4CvkNy0PPXzex2d//krKM8Gce9JBOb8ec+N+61k1wcUSahv1ZF5EyURMu57mxT1v/d3f/SzO7h5OKEY9z95ZPcdiNwqbv3p8r4Z+DXQMZJj8yePsxERGShO1tLz9dSzx+bQZlGsnsrbTR1TkRkXs64EZFzwxmTnvRUb3ffkj5nZtXAcnd/bIrbvgw8OGH21h2ZhyoiMveUnImcO6a799b9wMtT1z8CtJnZFnc/besJd/946vorSLbwZGv2loiIiMisBaZ5XaW79wCvAr7s7s8GXniG658G7gd+TnIf0IsyilJEREQkQ9Odsh4yswbgdcB7z3RhatHCNwN7OTn42YGrZxmjiIiISMamm/T8A8n1cX7p7g+Z2SrgqSmufR2w2t1HshGgiIiISDZMd52ebzFu09DUTuevnuLy7SQ3JG3NNDgROTdp3yERyYfpDmQ+D/gssNjdn2FmzwJe7u7/OMnltwIPm9l2YDh9coo1fURkARq/H5yIyFyZbvfWF4B3AZ8HcPfHzOw/gMmSnq8A/ww8Tpa2oBCRwpNeb2emHnnkkYzu1xRyEZmt6SY9Je7+W7NT1hiMT3Ftu7vflllYInKu2b9//yktPFu2JJf/WrFihfa2kllRAiwzNZNd1leTmo1lZq8Bptq9fJuZ3Upyx/Px3Vu/yyRQESkss/0P56qrrmLLli0kt8oTEZk700163gbcDqw3syMk1+G5YYprL0w9P2fcOU1ZFxERkbya7uytfcALzayU5IKGg8AfAKeNRnT352c1QsDMaoD/BJqB/cDr3P3EJNftB3pJ7vcVd/fN2Y5FRDK3YsWKfIcgIgvQGVdkNrMKM/tbM/uUmb0IGADeBOwhuR7PXHkP8FN3Xwv8NHU8lee7+wVKeEQKl8bwiEg+nG0biq8B60jOxLoJ+BHwWuAV7n59jmMb73qSs8JIPb9iDusWERGRc8DZurdWufszAczsi0A70OTuvTmP7FSL3f0YgLsfM7NFU1znwI/MzIHPu/vtcxahiIiIFLSzJT2x9At3HzWzp2eS8JjZ7e5+8zSv/QmwZJK3zrjX1wSXu/vRVFL0YzPb5e4PTFLXzcDNAE1NTTMoXkREZPY0zT6/7EzTRs1sFOhPHwLFJMf1GODuXnHGws1+5+4Z77BuZruBq1KtPA3A/e6+7iz3fBDoc/ePnem6zZs3+9atWzMNUURERAqAmW2balzvGcf0uHvQ3StSj3J3D417fcaEJyVb+2/dTXIANann7028wMxKzaw8/Rp4Mcl9wERERETOOpA5I+5+TZaK+ijwIjN7CnhR6hgzazSze1PXLAZ+YWaPAr8FfuDu/5Ol+kVERGSem+7ihHnl7h3ACyY5fxR4Wer1PuD8OQ5NRERE5omctvSIiIiIFAolPSIiIrIgZL17y8yiwI3AJiCaPu/ub812XSIiIiLTlYuWnq+RXG/nJcAWYBnJ/bBERERE8iYXSc8ad38f0O/uXwF+H3hmDuoRERERmbZcJD3pVZy7zOwZQCXJ3dFFRERE8iYXU9ZvN7Nq4O9JLipYBrwvB/WIiIiITFsukp6fuvsJ4AFgFYCZrcxBPSIiIiLTlovure9Mcu7bOahHREREZNqy1tJjZutJTlOvNLNXjXurgnFT10VERETyIZvdW+uAa4Eq4Lpx53uBm7JYj4iIiMiMZS3pcffvAd8zs8vc/dfZKldEREQkG3IxkPlhM3sbWpFZRERECohWZBYREZEFYV6syGxmrzWzHWaWMLPNZ7juGjPbbWZ7zOw9mdQpIiIi55b5siLzduBVJNf+mZSZBYFPAy8FNgJvMLONGdYrIiIi54hcrsj8Pk6uyPz+TAp0950AZnamyy4B9rj7vtS13wCuB57IpG4RERE5N2Q96XH3L6ZebiG1IvMcWQocGnd8GLh0sgvN7GbgZoCmpqbcRyYiIiJ5l83FCd95pvfd/eNnuf8nJAdAT/Te1HT4s4YwWbVTxHI7cDvA5s2bJ71GREREzi3ZbOkpTz2vAy4m2bUFyYUKpxyLk+buL8yw/sPA8nHHy4CjGZYpIiIi54hsLk74IQAz+xFwkbv3po4/CHwrW/WcwUPA2tTmpkeA1wNvnIN6RUREZB7IxeytJmBk3PEIGc7eMrNXmtlh4DLgB2Z2X+p8o5ndC+DuceDtwH3ATuCb7r4jk3pFRETk3JGL2VtfA35rZt8lOabmlcBXMinQ3b8LfHeS80eBl407vhe4N5O6RERE5Nxk7tkfx2tmFwHPTR0+4O4PZ72SLDGzNuDANC+vBLozqG6299cB7RnUKzOT6fe5UBXq15WvuHJdby7Kz1aZmZSjz7H5o1B/5zN1tq9rhbvXT/ZG1pIeMytz975MrylkZna7u9881/eb2VZ3n3IlasmuTL/PhapQv658xZXrenNRfrbKzKQcfY7NH4X6O5+pTL6ubI7p+Z6Z/auZXWlmpemTZrbKzG5MjcO5Jov15cM9eb5f5sa5+n0q1K8rX3Hlut5clJ+tMjMpp1B/juR05+r3atZfV1a7t8zsZcANwOVADcktKXYDPwDucPeWrFW2gOgvJBGZ7/Q5JoUgqwOZNZA4Z27PdwAiIhnS55jkXU4GMouIiIgUmlys0yMiIiJScJT0iIiIyIKgpEdEREQWBCU9IiIisiAo6ZlnzKzUzL5iZl8wsxvyHY+IyGyk1nC7w8y+ne9YZOFQ0lMAzOxLZtZqZtsnnL/GzHab2R4ze0/q9KuAb7v7TcDL5zxYEZEpzOSzzN33ufuN+YlUFiolPYXhTiasVm1mQeDTwEuBjcAbzGwjsAw4lLpsdA5jFBE5mzuZ/meZyJxT0lMA3P0BoHPC6UuAPam/hkaAbwDXA4dJJj6g75+IFJAZfpaJzDn9p1m4lnKyRQeSyc5S4L+AV5vZZzl391URkXPHpJ9lZlZrZp8DLjSzv81PaLLQZHUbCskqm+Scu3s/8Ja5DkZEZJam+izrAG6Z62BkYVNLT+E6DCwfd7wMOJqnWEREZkufZVIwlPQUroeAtWa20syKgNcDd+c5JhGRmdJnmRQMJT0FwMzuAn4NrDOzw2Z2o7vHgbcD9wE7gW+6+458xikicib6LJNCp13WRUREZEFQS4+IiIgsCEp6REREZEFQ0iMiIiILgpIeERERWRCU9IiIiMiCoKRHREREFgQlPSIyp8xs1MweGfd4T75jglPiajSzB1OvD5pZ27hYmyfcc5WZ/XrCuZCZHTezBjP7FzNrMbO/ntMvRkQmpb23RGSuDbr7Bdks0MxCqUXwMjE+rktT5b4Z2Ozub5/ingeAZWbW7O77U+deCGx392PAu8ysP8O4RCRL1NIjIgXBzPab2YfM7Hdm9riZrU+dLzWzL5nZQ2b2sJldnzr/ZjP7lpndA/zIzErM7Jtm9piZ/WeqtWazmd1oZv82rp6bzOzjs4hvtZn9j5ltM7Ofm9l6d08A3wL+YNylrwfuyugfQ0RyQkmPiMy14gndW+MThnZ3vwj4LJDuEnov8L/ufjHwfOBfzKw09d5lwJvc/Wrgz4ET7v4s4MPAs1PXfAN4uZmFU8dvAb48i7hvB97h7s9OxfaZ1Pm7SCY6mFkEeBnwnVmULyI5pu4tEZlrZ+re+q/U8zbgVanXLyaZtKSToCjQlHr9Y3fvTL2+AvgEgLtvN7PHUq/7zex/gWvNbCcQdvfHZxKwmZUBvwd8y8zSpyOp8h8yszIzWwdsAH7j7idmUr6IzA0lPSJSSIZTz6Oc/Hwy4NXuvnv8hWZ2KTB+vIwxtS8CfwfsYnatPAGg6wzJ2jdItvZsQF1bIgVL3VsiUujuA95hqSYWM7twiut+Abwudc1G4JnpN9z9QWA58EZmkZS4ew/wtJm9NlW+mdn54y65C/hD4Grg7pmWLyJzQ0mPiMy1iWN6PnqW6z8MhIHHzGx76ngynwHqU91a7wYeA7rHvf9N4JcZdD3dANxoZo8CO4Dr02+4+xPAAMmxR5qtJVKgzN3zHYOISMbMLEhyvM6Qma0Gfgqc5+4jqfe/D/ybu/90ivv73L0sB3F9EOhz949lu2wRmRm19IjIuaIE+EWqJea7wJ+5+4iZVZnZkyQHUE+a8KT0pBcnzFZAZvYvJLu91PojUgDU0iMiIiILglp6REREZEFQ0iMiIiILgpIeERERWRCU9IiIiMiCoKRHREREFoT/H54EI29qWAi/AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "flux_points_dataset.plot_fit();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Stack observations\n", "\n", "And alternative approach to fitting the spectrum is stacking all observations first and the fitting a model. For this we first stack the individual datasets:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:59.263952Z", "iopub.status.busy": "2021-11-22T21:07:59.263663Z", "iopub.status.idle": "2021-11-22T21:07:59.264808Z", "shell.execute_reply": "2021-11-22T21:07:59.265029Z" } }, "outputs": [], "source": [ "dataset_stacked = Datasets(datasets).stack_reduce()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again we set the model on the dataset we would like to fit (in this case it's only a single one) and pass it to the `~gammapy.modeling.Fit` object:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:59.279230Z", "iopub.status.busy": "2021-11-22T21:07:59.278845Z", "iopub.status.idle": "2021-11-22T21:07:59.340850Z", "shell.execute_reply": "2021-11-22T21:07:59.341038Z" } }, "outputs": [], "source": [ "dataset_stacked.models = model\n", "stacked_fit = Fit()\n", "result_stacked = stacked_fit.run([dataset_stacked])\n", "\n", "# make a copy to compare later\n", "model_best_stacked = model.copy()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:59.342892Z", "iopub.status.busy": "2021-11-22T21:07:59.342556Z", "iopub.status.idle": "2021-11-22T21:07:59.343901Z", "shell.execute_reply": "2021-11-22T21:07:59.344066Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OptimizeResult\n", "\n", "\tbackend : minuit\n", "\tmethod : migrad\n", "\tsuccess : True\n", "\tmessage : Optimization terminated successfully.\n", "\tnfev : 54\n", "\ttotal stat : 8.16\n", "\n", "OptimizeResult\n", "\n", "\tbackend : minuit\n", "\tmethod : migrad\n", "\tsuccess : True\n", "\tmessage : Optimization terminated successfully.\n", "\tnfev : 54\n", "\ttotal stat : 8.16\n", "\n", "\n" ] } ], "source": [ "print(result_stacked)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:59.347101Z", "iopub.status.busy": "2021-11-22T21:07:59.346752Z", "iopub.status.idle": "2021-11-22T21:07:59.348306Z", "shell.execute_reply": "2021-11-22T21:07:59.348479Z" } }, "outputs": [ { "data": { "text/html": [ "
Table length=5\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
typenamevalueuniterrorminmaxfrozenlink
str8str9float64str14float64float64float64boolstr1
spectralindex2.2727e+001.566e-01nannanFalse
spectralamplitude4.7913e-11cm-2 s-1 TeV-13.600e-12nannanFalse
spectralreference1.0000e+00TeV0.000e+00nannanTrue
spectrallambda_1.2097e-01TeV-15.382e-02nannanFalse
spectralalpha1.0000e+000.000e+00nannanTrue
" ], "text/plain": [ "\n", " type name value unit error min max frozen link\n", " str8 str9 float64 str14 float64 float64 float64 bool str1\n", "-------- --------- ---------- -------------- --------- ------- ------- ------ ----\n", "spectral index 2.2727e+00 1.566e-01 nan nan False \n", "spectral amplitude 4.7913e-11 cm-2 s-1 TeV-1 3.600e-12 nan nan False \n", "spectral reference 1.0000e+00 TeV 0.000e+00 nan nan True \n", "spectral lambda_ 1.2097e-01 TeV-1 5.382e-02 nan nan False \n", "spectral alpha 1.0000e+00 0.000e+00 nan nan True " ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_best_joint.parameters.to_table()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:59.351448Z", "iopub.status.busy": "2021-11-22T21:07:59.351163Z", "iopub.status.idle": "2021-11-22T21:07:59.352548Z", "shell.execute_reply": "2021-11-22T21:07:59.352793Z" } }, "outputs": [ { "data": { "text/html": [ "
Table length=5\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
typenamevalueuniterrorminmaxfrozenlink
str8str9float64str14float64float64float64boolstr1
spectralindex2.2785e+001.563e-01nannanFalse
spectralamplitude4.7800e-11cm-2 s-1 TeV-13.566e-12nannanFalse
spectralreference1.0000e+00TeV0.000e+00nannanTrue
spectrallambda_1.1830e-01TeV-15.329e-02nannanFalse
spectralalpha1.0000e+000.000e+00nannanTrue
" ], "text/plain": [ "\n", " type name value unit error min max frozen link\n", " str8 str9 float64 str14 float64 float64 float64 bool str1\n", "-------- --------- ---------- -------------- --------- ------- ------- ------ ----\n", "spectral index 2.2785e+00 1.563e-01 nan nan False \n", "spectral amplitude 4.7800e-11 cm-2 s-1 TeV-1 3.566e-12 nan nan False \n", "spectral reference 1.0000e+00 TeV 0.000e+00 nan nan True \n", "spectral lambda_ 1.1830e-01 TeV-1 5.329e-02 nan nan False \n", "spectral alpha 1.0000e+00 0.000e+00 nan nan True " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_best_stacked.parameters.to_table()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we compare the results of our stacked analysis to a previously published Crab Nebula Spectrum for reference. This is available in `~gammapy.modeling.models.create_crab_spectral_model`." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "execution": { "iopub.execute_input": "2021-11-22T21:07:59.365821Z", "iopub.status.busy": "2021-11-22T21:07:59.365524Z", "iopub.status.idle": "2021-11-22T21:07:59.618815Z", "shell.execute_reply": "2021-11-22T21:07:59.619008Z" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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t/zybW3t2rV8+eWXhIWFMXr0aG655ZZOy4O3Vc59woQJQKD21Jo1a3jiiSd46KGH+NOf/kR2djYfffQRNpuNJUuW8P/+3//jH//4R0t7FouFq666iueff54f//jHLFmyhIkTJxIfH8/ChQt55513GDJkSJul0oMpgb5t2zaeffZZnnjiCd5991127NjBihUrMMYwd+5cPvroIwoLC0lNTeXttwP/xsH2LE866STmzp3L+eefH9RwoFLHHe15DC6ffPIJ8+fPx2q1kpSUxGmnndZS8LC1M888E4/Hg9PpZOzYsezdu7fTttsq597s4osvBgIrvZtLqZeXlzNv3jzGjx/PT37yk6NKqQNcd911/OUvfwHgmWee4dprrwVg1qxZXHPNNTz11FNtFk8MpgR6RkYGJ554IgDvvvsu7777LpMnT2bKlCls3bqVHTt2kJOTw5IlS7j99tv5+OOP6e89S6V6TS/OeWjPo1lHPQVHRMf7XXFd6mkcKdj6Ym2VP+9Ie+Xcj2yvdVu/+MUvOP3003n99dfJzc09augHYOjQoSQlJbF06VK++OKLlsKATz75JF988QVvv/02kyZNOqo31FYJ9Ozs7MOOaV100RjDnXfeyX/9138dFcPq1atZvHgxd955J3PmzOHuu+8+rJy6llJXg5Joz2NQOfXUU3nppZfw+XwUFhby0UcfMWPGjKBf31558PbKuXekvLycIUOGALR7cyqA733ve1x11VV8+9vfxmoNXBu4a9cuTjjhBBYuXEh8fDz79u077DVtlUDvyDe+8Q2eeeaZllvm7t+/n4KCAg4cOEBERARXXXUVP/vZz1rKtmdmZraUPGk91NZa63L3Sg04mjwGB6/XS1hYGBdddBETJkxg4sSJnHHGGfzP//wPycnJQbfTXB78yAnziRMntpRzv+6661rKuXfktttu484772TWrFkd3rdj7ty5VFVVtQxZAdx6663k5OQwfvx4Tj31VCZOnHjYax599NGWCfXw8HDOPbfjap9z5szhiiuuYObMmeTk5HDppZdSWVnJhg0bmDFjBpMmTeLXv/41d911FwD33HMPP/rRjzjllFNaEtqRLr/8ch588EEmT56sE+Zq4OnFOQ8tyd6H1q1bxw033MCKFSv6NI7uWLVqFT/5yU/4+OOP+zqUfqc//N9Sg1fd7sWsXxf4wy+UJdm159FH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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_kwargs = {\n", " \"energy_bounds\": [0.1, 30] * u.TeV,\n", " \"sed_type\": \"e2dnde\",\n", " \"yunits\": u.Unit(\"erg cm-2 s-1\"),\n", "}\n", "\n", "# plot stacked model\n", "model_best_stacked.spectral_model.plot(\n", " **plot_kwargs, label=\"Stacked analysis result\"\n", ")\n", "model_best_stacked.spectral_model.plot_error(\n", " facecolor=\"blue\", alpha=0.3, **plot_kwargs\n", ")\n", "\n", "# plot joint model\n", "model_best_joint.spectral_model.plot(\n", " **plot_kwargs, label=\"Joint analysis result\", ls=\"--\"\n", ")\n", "model_best_joint.spectral_model.plot_error(\n", " facecolor=\"orange\", alpha=0.3, **plot_kwargs\n", ")\n", "\n", "create_crab_spectral_model(\"hess_ecpl\").plot(\n", " **plot_kwargs, label=\"Crab reference\"\n", ")\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises\n", "\n", "Now you have learned the basics of a spectral analysis with Gammapy. To practice you can continue with the following exercises:\n", "\n", "- Fit a different spectral model to the data.\n", " You could try `~gammapy.modeling.models.ExpCutoffPowerLawSpectralModel` or `~gammapy.modeling.models.LogParabolaSpectralModel`.\n", "- Compute flux points for the stacked dataset.\n", "- Create a `~gammapy.estimators.FluxPointsDataset` with the flux points you have computed for the stacked dataset and fit the flux points again with obe of the spectral models. How does the result compare to the best fit model, that was directly fitted to the counts data?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What next?\n", "\n", "The methods shown in this tutorial is valid for point-like or midly extended sources where we can assume that the IRF taken at the region center is valid over the whole region. If one wants to extract the 1D spectrum of a large source and properly average the response over the extraction region, one has to use a different approach explained in [the extended source spectral analysis tutorial](extended_source_spectral_analysis.ipynb)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.9.0" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1.0, "eqLabelWithNumbers": true, "eqNumInitial": 1.0, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "nbsphinx": { "orphan": true } }, "nbformat": 4, "nbformat_minor": 4 }