{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Galaxy-Galaxy Lensing\n", "\n", "in this notebook we show how to use `glasz` to compute $\\Delta \\Sigma$ given a halo profile. This is really just a wrapper of a few functions from the `pyccl.halos` package which can be found [here](https://ccl.readthedocs.io/en/latest/api/pyccl.halos.profiles.profile_base.html)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# preamble\n", "from __future__ import annotations\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pyccl as ccl\n", "from init_halo_model import ( # halo model\n", " a_arr,\n", " bM,\n", " cM_relation,\n", " cosmo,\n", " hmc,\n", " hmd,\n", " k_arr,\n", " r_arr,\n", ")\n", "\n", "import glasz\n", "\n", "# CMASS PARAMETERS\n", "z_lens = 0.55 # Mean z for CMASS\n", "a_sf = 1 / (1 + z_lens)\n", "\n", "# constituent fractions\n", "fb = cosmo[\"Omega_b\"] / cosmo[\"Omega_m\"] # Baryon fraction\n", "fc = cosmo[\"Omega_c\"] / cosmo[\"Omega_m\"] # CDM fraction\n", "\n", "# define 2-halo term\n", "xi_mm_2h = glasz.profiles.calc_xi_mm_2h(\n", " cosmo, hmd, cM_relation, hmc, k_arr, a_arr, r_arr, a_sf\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can simply use the `glasz.GGL` subpackage to compute $\\Delta \\Sigma$ from an NFW profile. To speed up calculation, we make sure to turn on `fourier_analytic` which will compute the Fourier transform of the NFW profile analytically. The underlying functions used to compute $\\Delta \\Sigma$ rely on the `pyccl` implementation of the `fftlog` algorithm which is blazingly fast.\n", "\n", "We note a subtlety here, the `pyccl` profiles and `glasz.GGL` functions assume comoving units without factors of $h$. If we want to match the observations of [Amon & Robertson et al. 2022](https://arxiv.org/pdf/2202.07440), we need to properly account for this." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "M_halo = 3e13 # solar masses\n", "R = np.geomspace(\n", " 1e-2, 6e1, 100\n", ") # Mpc/h comoving units (like observations of Amon & Robertson et al. 2022)\n", "\n", "prof_nfw = ccl.halos.HaloProfileNFW(\n", " mass_def=hmd,\n", " concentration=cM_relation,\n", " truncated=False,\n", " cumul2d_analytic=True,\n", " projected_analytic=True,\n", " fourier_analytic=True,\n", ")\n", "\n", "ds_nfw = (\n", " glasz.GGL.calc_ds(\n", " cosmo,\n", " R / cosmo[\"h\"], # convert from Mpc/h to Mpc\n", " M_halo,\n", " a_sf,\n", " prof_nfw,\n", " )\n", " / cosmo[\"h\"]\n", ") # convert from Msun/pc^2 to h Msun/pc^2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot it!" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhsAAAF7CAYAAAB7O0l6AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAR4BJREFUeJzt3XdUFOf+BvBnl96l10UFEUVUpIjGEjUauzGJKTY0xnYtiZrEEmPa9cY0NYkl9mCJaIoYTW5ijLFErIAoiKIoKkVEROkssDu/PzD8wrWtyw6zyz6fc/Z4dnZm9gsj7MM7b5EJgiCAiIiISCRyqQsgIiKixo1hg4iIiETFsEFERESiYtggIiIiUTFsEBERkagYNoiIiEhUDBtEREQkKlOpC5CaWq1GTk4O7OzsIJPJpC6HiIjIYAiCgOLiYnh5eUEuf3D7hdGHjZycHCgUCqnLICIiMliZmZnw8fF54OtGHzbs7OwA1Hyj7O3tJa6GiIjIcBQVFUGhUNR+lj6I0YeNv2+d2NvbM2wQERFp4VHdENhBlIiIiETFsEFERESiYtggIiIiUTFsEBERkagYNoiIiEhUDBtEREQkKoYNIiIiEhXDBhEREYmKYYOIiIhExbBBREREomLYICIiIlExbBAREZGoGDaIiIhIVAwbREREJCq9DhuHDh3C4MGD4eXlBZlMhp07dz5w30mTJkEmk+GLL75osPqIiIjo0fQ6bJSWlqJ9+/ZYvnz5Q/fbuXMnjh8/Di8vrwaqjIiIiDRlKnUBD9O/f3/079//oftkZ2dj2rRp2LNnDwYOHNhAlREREZGm9DpsPIparcbo0aPx1ltvoU2bNhodo1QqoVQqa58XFRWJVR4RERFBz2+jPMonn3wCU1NTvPbaaxofs2jRIjg4ONQ+FAqFiBUSERGRwYaNhIQEfPnll4iOjoZMJtP4uHnz5qGwsLD2kZmZKWKVREREZLBh46+//kJeXh58fX1hamoKU1NTXL16FW+88QaaNWv2wOMsLCxgb29f50FERETiMdg+G6NHj0bv3r3rbOvbty9Gjx6NV155RaKqiIiI6H/pddgoKSlBenp67fOMjAwkJSXByckJvr6+cHZ2rrO/mZkZPDw8EBgY2NClEhER0QPoddiIj49Hz549a5/PmjULADBmzBhER0dLVBURERE9Dr0OGz169IAgCBrvf+XKFfGKISIiIq0YbAdRIiIiMgwMG0RERCQqhg0iIiISFcMGERERiYphg4iIiETFsEFERESiYtggIiIiUTFsEBERkagYNoiIiEhUDBtEREQkKoYNIiIiEhXDBhEREYmKYYOIiIhExbBBREREomLYICIiIlExbBAREZGoGDaIiIhIVAwbREREJCqGDSIiIhIVwwYRERGJimGDiIiIRMWwQURERKJi2CAiIiJRMWwQERGRqBg2iIiISFQMG0RERCQqhg0iIiISFcMGERERiYphg4iIiETFsEFERESiYtggIiIiUel12Dh06BAGDx4MLy8vyGQy7Ny5s/a1qqoqzJkzB23btoWNjQ28vLwQFRWFnJwc6QomIiKie+h12CgtLUX79u2xfPnye14rKytDYmIiFixYgMTEROzYsQMXLlzAkCFDJKiUiIiIHkQmCIIgdRGakMlkiI2NxdChQx+4z8mTJ9GxY0dcvXoVvr6+991HqVRCqVTWPi8qKoJCoUBhYSHs7e11XTYREVGjVVRUBAcHh0d+hup1y8bjKiwshEwmQ5MmTR64z6JFi+Dg4FD7UCgUDVcgERGREWo0YaOiogJz587FiBEjHpqu5s2bh8LCwtpHZmZmA1ZJRERkfEylLkAXqqqq8PLLL0OtVmPlypUP3dfCwgIWFhYNVBkREREZfNioqqrCiy++iIyMDPz555/sd0FERKRnDDps/B00Ll68iP3798PZ2VnqkoiIiOh/6HXYKCkpQXp6eu3zjIwMJCUlwcnJCV5eXhg2bBgSExPx888/Q6VSITc3FwDg5OQEc3NzqcomIiKif9Droa8HDhxAz54979k+ZswYvP/++2jevPl9j9u/fz969Oih0XtoOmyHiIiI6tL0M1SvWzZ69OiBh2UhPc5JREREdFejGfpKRERE+olhg4iIiETFsEFERESiYtggIiIiUTFsEBERkagYNoiIiEhUDBtEREQkKoYNIiIiEhXDBhEREYmKYYOIiIhExbBBREREomLYICIiIlExbBAREZGoGDaIiIhIVAwbREREJCqGDSIiIhIVwwYRERGJimGDiIiIRMWwQURERKJi2CAiIiJRMWwQERGRqBg2iIiISFQMG0RERCQqU20O2rVr12Mf06dPH1hZWWnzdkRERGTAtAobQ4cOfaz9ZTIZLl68CD8/P23ejoiIiAyY1rdRcnNzoVarNXpYW1vrsmYiIiIyIFqFjTFjxjzWLZFRo0bB3t5em7ciIiIiAycTBEGQuggpFRUVwcHBAYWFhQxEREREj0HTz9DHbtkoLy9Hdnb2PdvPnj37uKciIiIiI/BYYeOHH35Ay5YtMWDAALRr1w7Hjx+vfW306NE6L46IiIgM32OFjYULFyIxMRGnT5/Ghg0bMG7cOGzduhUAIMbdmEOHDmHw4MHw8vKCTCbDzp0767wuCALef/99eHl5wcrKCj169GALCxERkZ55rLBRVVUFV1dXAEB4eDgOHTqE1atX48MPP4RMJtN5caWlpWjfvj2WL19+39c//fRTLFmyBMuXL8fJkyfh4eGBPn36oLi4WOe1EBERkXYeK2y4ubnhzJkztc+dnZ2xd+9enDt3rs52Xenfvz8WLlyI55577p7XBEHAF198gfnz5+O5555DcHAwNm7ciLKystrWlvtRKpUoKiqq8yAiIiLxPFbY2Lx5M9zc3OpsMzc3R0xMDA4ePKjTwh4lIyMDubm5ePrpp2u3WVhY4Mknn8SRI0ceeNyiRYvg4OBQ+1AoFA1RLhERkdF6rLDh4+MDDw+P+77WpUsXnRSkqdzcXACAu7t7ne3u7u61r93PvHnzUFhYWPvIzMwUtU4iIiJjp9V05f+0aNEiuLu7Y9y4cXW2b9iwATdv3sScOXPq+xYP9b99RQRBeGj/EQsLC1hYWIhaExEREf2/eq/6unr1arRq1eqe7W3atMGqVavqe/oH+ruF5X9bMfLy8u5p7SAiIiLp1Dts5ObmwtPT857trq6uuH79en1P/0DNmzeHh4cH9u7dW7utsrISBw8exBNPPCHa+xIREdHjqfdtFIVCgbi4ODRv3rzO9ri4OHh5edXr3CUlJUhPT699npGRgaSkJDg5OcHX1xczZszARx99hICAAAQEBOCjjz6CtbU1RowYUa/3JSIiIt2pd9gYP348ZsyYgaqqKvTq1QsAsG/fPsyePRtvvPFGvc4dHx+Pnj171j6fNWsWgJqF4KKjozF79myUl5djypQpuH37NiIjI/H777/Dzs6uXu9LREREulPvhdgEQcDcuXPx1VdfobKyEgBgaWmJOXPm4N1339VJkWLiQmxERETa0fQzVGervpaUlODcuXOwsrJCQECAwYz4YNggIiLSjqafofW+jfI3W1tbhIeHA7h3OCoREREZr3qPRgGA9evXIzg4GJaWlrC0tERwcDDWrVuni1MTERGRgat3y8aCBQuwdOlSTJ8+HZ07dwYAHD16FDNnzsSVK1ewcOHCehdJREREhqvefTZcXFywbNkyDB8+vM72mJgYTJ8+Hfn5+fUqUGzss0FERKQdTT9D630bRaVS1fbV+KewsDBUV1fX9/RERERk4OodNkaNGoWvv/76nu1r1qzByJEj63t6IiIiMnA6GY2yfv16/P777+jUqRMA4NixY8jMzERUVFTtRFwAsGTJEl28HRERERmQeoeNlJQUhIaGAgAuXboEoGZdFFdXV6SkpNTux+GwRERExknrsPH2229j6NCh2L9/vy7rISIiokZG6z4b169fx6BBg+Dp6YmJEyfiv//9L5RKpS5rIyIiokZA67DxzTff4MaNG/juu+/QpEkTzJo1Cy4uLnjuuecQHR2t90NeiYiIqGHobG0UADh37hx2796Nn376CfHx8YiMjMSQIUMwfPhweHt76+ptdIrzbBAREWmnwRdi+183b97Erl27sGvXLnTr1g1vvvmmGG9TbwwbRERE2pE8bBgKhg0iIiLtNNgMokREREQPw7BBREREotLJDKIP8vckX/7+/mK+DRE9piqVGrfLKnGnrAqV1WpYmZvAyswE1uYmsDI3gYWpidQlElEjIkrYKCgoQFRUFFq0aAFBEJCeno4tW7bA0dFRjLcjovsQBAFZt8txNqcQZ3OKcDanCOl5JbhdWoli5cMXSXS0NoOfqy38XW3g52qLFq62CGvqCEcb8waqnogaE1E6iE6aNAkvvfQSevXqBQDYt28ftm7divXr1+v6reqNHUSpMSlVVuPQhZvYm3oDBy7cREFp5QP3lckAByszmJvIUVGlQnmVClWqB/86kMmAIE97dGnhgif8ndGxuROszUVtHCUiPSfpaJSuXbvi8OHD+PDDDzFt2jQ4OTnhiSeewJEjR3T9VvXGsEGGrqJKhV/OXMcvyddxOD0fldXq2tfMTGRo6W6HNl72CPZ2QKC7HVztLOBobQ57KzOYyOuuWVSlUqOsUoWs22W4dLMUl2+W4PLNUpy7XoSLeSV19rUwlePpNh54LtQb3Vq4wNSEXcCIjI2mn6Gi/lnyzxyjVqsfsicRPa6cO+XYcuwqtp3MrNOC0dTZGn1au6NPkDs6+DrC3FTzEGBmIoeDlRwOVg5o4+VQ57W84gocvXQLcen5iEu/hew75dh9Oge7T+fAxdYCQ9p74aUIBQI97HT2NRJR4yBKy8bs2bMREhKCESNGAABiYmIQHx+PxYsX6/qt6o0tG2RoTmfewaqDl/B76g2o1DU/vt5NrPBShAJ923igpbut6KssC4KA5OxC7EjMxq7TOXXCTs9AV0x60h+RzZ242jNRIyfpbZTy8nJMmzYNd+7cAQA4ODhg5cqVsLS01PVb1RvDBhmKjPxSfL4nDb8kX6/d1tnPGWOeaIberd0ku41RpVLjYNpNfJ+Qid9Tb+Dv3yghiiaY/KQfng7ygFzO0EHUGOnFDKIVFRUQBAFWVlZivUW9MWyQvssrrsBX+y4i5kQmVGoBMhnwbAdvTOrur3e3LK7kl2LtX5fxfUJWbd+RIE97zB/YGl1auEhcHRHpml6EDUPAsEH6SqUW8E1cBpbsvYCyShUAoFcrN8zuF4hWHvr9f/VmsRIbj1zBxiNXaofZ9gh0xbz+rfUuIBGR9hg2NMSwQfooLbcYs388g9OZdwDU3JKY278VOvk5S1vYYyoorcRX+y5iy7GrqFYLkMuAlyIUeKtvKzhxzg4ig8ewoSGGDdInldVqrDyQjhX701GlEmBnYYq3B7bGyxEKg+5smZFfik9/O49fU3IBAE425nh3UBCeCfEy6K+LyNiJHjbGjRun0X4bNmzQ5vQNhmGD9EV6XgmmbU3E+dxiAEDv1m5YOLQtPBz0r2O1tk5eKcA7sSlIu1HzNXZv6Yr/DA2Gwsla4sqISBuihw25XI6mTZuiQ4cOeNgpYmNjtTl9g2HYIH2w81Q23o5NRlmlCk425nh/SBsMbufZKP/qr6xWY82hS/jqz/SadVnMTPDG0y0xrktzjlohMjCih40pU6Zg27Zt8PX1xbhx4zBq1Cg4OTlpXbA2qqur8f777+Pbb79Fbm4uPD09MXbsWLzzzjuQyzUbBsiwQVKqqFLhg91nEXMiEwDwhL8zvng5BG52jac140Eu3SzBvB3JOJFRAADo2sIFi19sD3f7xv+1EzUWmn6Gaj0wf+XKlbh+/TrmzJmD3bt3Q6FQ4MUXX8SePXse2tKhS5988glWrVqF5cuX49y5c/j000/x2WefYdmyZQ3y/kT1kZFfimdXHkHMiUzIZMDrTwVg86uRRhE0AMDf1RbbJnTCwqHBsDST43B6Pvp+cQh7zuZKXRoR6ZjOOohevXoV0dHR2LRpE6qqqpCamgpbW1tdnPqBBg0aBHd39zoLvD3//POwtrbG5s2bNToHWzZICkfS8zF5SwKKKqrhYmuOL17qgK4BxjsPRXpeCWZsP4WU7CIAwPCOvlgwqDUXeiPSc6K3bPwvmUwGmUwGQRAabB2Url27Yt++fbhw4QIA4PTp0zh8+DAGDBjwwGOUSiWKiorqPIga0vaT1xC14QSKKqoR6tsEv7zWzaiDBgC0cLPFjn91weQn/SGTATEnrmHoijhcvlny6IOJSO/VK2wolUrExMSgT58+CAwMRHJyMpYvX45r166J3qoBAHPmzMHw4cPRqlUrmJmZoUOHDpgxYwaGDx/+wGMWLVoEBweH2odCoRC9TiIAUKsFLPr1HOb8mIxqtYAh7b2wdUIn9lG4y9xUjrn9W+Hb8ZFws7PAhRslGLI8Dr+lXH/0wUSk13TSQfSVV17BqFGj4OzcsBMObdu2DW+99RY+++wztGnTBklJSZgxYwaWLFmCMWPG3PcYpVIJpVJZ+7yoqAgKhYK3UUhU5ZUqzNyehN/u9kd4/akAzOgd0ChHm+hCXnEFpm89heN3O49O6u6Ht/oGchl7Ij3TIENffX190aFDh4f+wtyxY4c2p9eIQqHA3LlzMXXq1NptCxcuxJYtW3D+/HmNzsE+GyS2wvIqvBp9EvFXb8PcRI5Ph7XD0A7eUpel96pVany6Jw1rDl0GAHTyc8KKEaFwtrWQuDIi+pumn6Fa976KioqS/K+ysrKye4a4mpiYNFifEaJHyS9RImr9CaReL4KdpSnWj4lAx+YNO0TcUJmayPH2gNYIUTTBW9+fxrHLBXhmRRw2jI1AS3eur0JkSLQOG9HR0TosQzuDBw/Gf/7zH/j6+qJNmzY4deoUlixZovHspkRiul5YjpHrjuPyzVK42Jpj07hIBHmx9exxDWjriZbutnh1Yzyu3irDcyuPYNmIDugZ6CZ1aUSkIYNeG6W4uBgLFixAbGws8vLy4OXlheHDh+Pdd9+FublmizzxNgqJ4Up+KUauO47sO+XwcrDElvGR8HMVv9N0Y3a7tBKTtyTgeEYB5DLgnYFBeKVLM8lbWImMGRdi0xDDBulael4Jhq89hpvFSjR3scGW8ZHwbmIldVmNQmW1Ggt2pmB7fM2MqyMjffHBkDbsOEokkQafZ4OIamYFHXE3aLTysMN3kzozaOiQuakcHz/fFvMHtIZMBnx7/Bombk5AWWW11KUR0UMwbBDpyNVbpRi+5hjy7gaNrRM6wdWOIyd0TSaTYUJ3P6weFQYLUzn+PJ+H4WuP41aJ8tEHE5EkGDaIdCCzoAwj1h5HblEFAtxssWV8JJxsNOs3RNp5uo0Htk7oBEdrM5zOvIPnvz6Cq7dKpS6LiO6j3mFj0aJF2LBhwz3bN2zYgE8++aS+pyfSezl3yjFi3TFk3ymHn6sNvp0QCRfOBdEgwpo64od/PQEfRytcuTtS5UzWHanLIqL/Ue+wsXr1arRq1eqe7W3atMGqVavqe3oivXazWImR644js6AczZytETOhk9Gs2qov/F1tsWPKE2jjZY9bpZUYvuYYjlzKl7osIvqHeoeN3NxceHp63rPd1dUV169zTQNqvIorqjD2mxPIyC+FdxMrrnMiITc7S2yf1BldWjijtFKFsd+cxN7UG1KXRUR31TtsKBQKxMXF3bM9Li4OXl5e9T09kV6qqFJhwqZ4nM0pgoutObaMj4QXR51IytaiZobWp4PcUVmtxuQtCYg9lSV1WUSEeswg+rfx48djxowZqKqqQq9evQAA+/btw+zZs/HGG2/Uu0AifVOtUuP1badw7HIBbC1MEf1KRzR3sZG6LAJgaWaClSNDMfvHM9iRmI2Z20+jqLwaY55oJnVpREat3mFj9uzZKCgowJQpU1BZWQkAsLS0xJw5czBv3rx6F0ikTwRBwPzYFOw5ewPmJnKsiQpDsLeD1GXRP5iayPH5sPawtzRD9JEreG/XWZQoqzG1ZwupSyMyWjqbQbSkpATnzp2DlZUVAgICYGFhGL3xOYMoPY7P96Rh+f50yGXAypFh6BfsIXVJ9ACCIOCLPy7iy30XAQCv9WqBmX1acnpzIh0SfdXX/2Vra4vw8HAA4A8zNUrbTlzD8v3pAICPnm3LoKHnZDIZZvZpCStzE3z863l89Wc6lCo15vZrxd9RRA1MJ5N6rV+/HsHBwbC0tISlpSWCg4Oxbt06XZyaSC8cunAT83emAKj5C/nljr4SV0SamvykP94bHAQAWH3wMj7YnQojXxKKqMHVu2VjwYIFWLp0KaZPn47OnTsDAI4ePYqZM2fiypUrWLhwYb2LJJJSak4RpnybCJVawHMdvDGzT0upS6LH9EqX5jA3lWN+bAqij1xBpUqNhc8EQy5nCwdRQ6h3nw0XFxcsW7YMw4cPr7M9JiYG06dPR36+fk+uwz4b9DDXC8vx7IojyC2qQCc/J2waFwlzU87yb6i+j8/E7B/PQBCAlyMU+OjZtgwcRPXQYKu+qlSq2r4a/xQWFobqaq7ESIarRFmNV745idyiCrRws8XqUeEMGgbuhXAFvngpBHIZsO1kJubtSIZazVsqRGKr92/OUaNG4euvv75n+5o1azBy5Mj6np5IEiq1gNdjTuF8bjFcbC3wzdgIOFibSV0W6cAzId5YejdwbI9n4CBqCDoZjbJ+/Xr8/vvv6NSpEwDg2LFjyMzMRFRUFGbNmlW735IlS3TxdkSi+/S389h3Pg8WpnKsGxMOhZO11CWRDj0T4g0AmLk9CdvjMyFAwMfPteMtFSKR1DtspKSkIDQ0FABw6dIlADXrori6uiIlJaV2Pw41I0PxfXwmVh+6DAD47IX2CFE0kbYgEsU/A8d38VkQBOCT5xk4iMRQ77Cxf/9+XdRBpBdOXinA27HJAGqGuA5pz/V9GrNnQrwhk8kwY9spfJ+QBVMTGf4zlJ1GiXSNvd2I7sosKMOkzQmoUgnoH+yBGb05xNUYDGnvVduHI+ZEJt7dlcJ5OIh0TOuWjXHjxmm034YNG7R9C6IGU6qsxoRN8SgorUSwtz0Wv9ief90akWdCvKFSC3jj+9PYcuwaTOVyvDc4iLd/iXRE67ARHR2Npk2bokOHDvwrgAyaWi3gje9O43xuMVztLLA2KhzW5jqbyZ8MxHOhPqhWCZj94xlEH7kCU7kM8we2ZuAg0gGtf6NOnjwZ27Ztw+XLlzFu3DiMGjUKTk5OuqyNqEEs35+O387mwtxEjlWjwuDpYCV1SSSRFyMUqFYLeDs2GesOZ8DMVI7ZfQMZOIjqSes+GytXrsT169cxZ84c7N69GwqFAi+++CL27NnDlg4yGHtTb2DJ3gsAgH8PbYOwpo4SV0RSGxHpi38/0wYA8PWBS/hqX7rEFREZvnp1ELWwsMDw4cOxd+9epKamok2bNpgyZQqaNm2KkpISXdVIJIr0vGLM3J4EAIjq3BQvRXBxNaoxunMzvDOwNQBg6R8X8PWBSxJXRGTYdDYaRSaTQSaTQRAEqNVqXZ2WSBSFZVWYsCkBJcpqRDZ3woJBQVKXRHpmfDc/zO4XCAD45Lfz2HA4Q+KKiAxXvcKGUqlETEwM+vTpg8DAQCQnJ2P58uW4du0abG1tdVUjkU6p1AJe334KGfml8G5ihZUjQ2FmwlHgdK8pPVrgtacCAAAf/pyKLceuSlwRkWHSuoPolClTsG3bNvj6+uKVV17Btm3b4OzsrMvaiETx5R8XcCDtJixM5Vg9OgzOthZSl0R6bGbvACirVVh98DLe2ZkCSzMTDAvzkbosIoOi9RLzcrkcvr6+6NChw0N7au/YsUPr4hoCl5g3Lr+fzcXEzQkAgCUvtsdzofzQoEcTBAEf7E5F9JErkMuAL1/ugMGcXZZI489QrVs2oqKiOByMDMqlmyWY9d1pAMDYJ5oxaJDGZDIZ3hscBGW1CjEnMjFzexIszUzQJ8hd6tKIDILWLRuNBVs2jEOJshpDV8QhPa8EHZs54dsJkeynQY9NpRbw5venEXsqG+YmNSsCd2/pKnVZRJLR9DNUq9+2Z86ceawRJ2fPnkV1dbU2b/VI2dnZGDVqFJydnWFtbY2QkBAkJCSI8l5kmARBwFvfn0Z6Xgnc7S2wfGQHBg3Siolchs+GtUP/YA9UqtSYuDkexy7fkrosIr2n1W/cDh064NYtzX/AOnfujGvXrmnzVg91+/ZtdOnSBWZmZvj111+RmpqKxYsXo0mTJjp/LzJcqw9dxq8puTAzkWHlyDC42VlKXRIZMFMTOb58uQN6BrqiokqNV6NPIvHabanLItJrWvXZEAQBCxYsgLW1tUb7V1ZWavM2j/TJJ59AoVDgm2++qd3WrFmzhx6jVCqhVCprnxcVFYlSG+mHI+n5+PS38wCA9wZzhlDSDXNTOb4eFYZXN55EXPotjN1wAjETO6GNl4PUpRHpJa36bPTo0eOxO4du3boVnp6ej/tWDxUUFIS+ffsiKysLBw8ehLe3N6ZMmYIJEyY88Jj3338fH3zwwT3b2Wej8cm5U47Byw7jVmklhoX54LNh7dipmXSqrLIaUetPIP7qbTjZmGP7xE4IcLeTuiyiBqNpnw2D7iBqaVnTHD5r1iy88MILOHHiBGbMmIHVq1cjKirqvsfcr2VDoVAwbDQyymoVXlp9DEmZdxDkaY8dU56ApZmJ1GVRI1RUUYVR647jTFYh3Ows8N2kzmjmYiN1WUQNwijChrm5OcLDw3HkyJHaba+99hpOnjyJo0ePanQOjkZpnN7ZmYwtx67BwcoMu6d1ha+zZrf8iLRxu7QSL685hrQbxfBuYoXtkzrBx5H/56jxE3U0ir7w9PREUFDdNS1at24tSmdUMhw/JGRhy7FrkMmAL14OYdAg0TnamGPL+Ej4udgg+045Rq47jhtFFVKXRaQ3DDpsdOnSBWlpaXW2XbhwAU2bNpWoIpLa2ZxCzI9NBgC8/lQAega6SVwRGQtXOwt8OyESCicrXL1VhpHrjuNWifLRBxIZAYMOGzNnzsSxY8fw0UcfIT09HVu3bsWaNWswdepUqUsjCRSWVWHylgQoq9XoEeiK13oFSF0SGRlPBytsHd8JHvaWSM8rwej1J1BYViV1WUSSM+iwERERgdjYWMTExCA4OBj//ve/8cUXX2DkyJFSl0YNTK0WMPO7JGQWlMPH0QpfvBQCuZwjT6jhKZyssXVCJFxsLZB6vQhR35xAcQUDBxk3rcNGr169cOfOnQe+np+fDz8/P21Pr7FBgwYhOTkZFRUVOHfu3EOHvVLjtWJ/Ov48nwdzUzlWjQpDE2tzqUsiI+bnaotvx0eiibUZTmfewavR8SivVEldFpFktA4bBw4cqDNZ1z+HkwKASqXC1atXta+MSEOHLtzEkj8uAAAWPhOMYG9OrETSC/Sww+ZxkbCzMMWJKwWYsCkeFVUMHGScdHIbJSUlBS1atMA777wDAx5JSwYo63YZXtt2CoIADO+owIsRCqlLIqrV1scB0eM6wtrcBIfT8zHl20RUVmu+rhRRY1HvsPHXX3+he/fu6NmzJ9auXYunnnoKeXl5uqiN6KEqqlSY8m0i7pRVoa23A94b3EbqkojuEdbUEevHRMDCVI4/z+fhtZhTqFYxcJBxqVfYiI2NRb9+/fDOO+9g06ZNSExMRGVlJUJCQnDgwAEdlUh0fx/sTsWZrEI0sTbDypGhnCGU9FZnf2esjQqHuYkcv53NxazvTkOlZiswGY96hY3XX38da9aswaxZswAA3t7eOHjwIIYPH44RI0bopECi+/nuZCZiTtRM3PXlyx2gcOLEXaTfurd0xcqRoTCVy7DrdA7m/ngGagYOMhJah40xY8Zg9+7d9wwzNTExweLFi/Hjjz8+cH0SovpIyS7EOz+lAABm9W6JJ1u6SlwRkWZ6B7lj2fAOMJHL8H1CFubvTGE/NzIKBr02ii5wbRTDcru0EoOXH0bW7XI81coNa6PCOZ8GGZyfkrIxY3sSBAEY07kp3h/ShisSk0HSi7VRkpKSxDw9GRmVWsCM7UnIul0OXydrLHmRE3eRYXomxBufDWsPmQzYePQqFv5yji0c1KjpPGwUFhZi5cqVCAsLQ3h4uK5PT0bsy30XcfDCTVjcnbjLwdpM6pKItDYszAeLnm0LAFh/OAOf/JbGwEGNls7Cxp9//olRo0bB09MTH3zwAZo1a8YfHNKZP1Jv4Kt9FwEAHz3bFkFevOVFhu/ljr7499BgAMCqg5ewdO8FiSsiEke9wkZWVhYWLlwIf39/DBkyBIIg4IcffkBOTg4++OADXdVIRi4jvxQztycBqLm//XyYj7QFEenQ6E5N8e6gIADAV3+mM3BQo2Sq7YEDBgzA/v370atXL3z44YcYOnQobGxsal9nZyfShVJlNSZvTkCxshrhTR0xf2CQ1CUR6dy4rs2hFgQs/OUcvtx3ETIZMKN3S6nLItIZrcPGb7/9hhEjRmDGjBnsm0GiEAQBc348g7QbxXC1s8DKkaEwNzXohYqJHmh8Nz+oBQEf/fc8vvjjIuQyGV57KkDqsoh0Quvf3HFxcbCyskKvXr0QGBiIDz/8EOnp6bqsjYzc+sMZ+PnMdZjKZfh6ZCjc7C2lLolIVBO7+2Nu/1YAgCV7L2D5nxclrohIN7QOG507d8batWuRm5uLOXPm4Pfff0dgYCA6deqEZcuW4caNG7qsk4zMkUv5WPTreQDAu4ODEN7MSeKKiBrG5Cf9MbtfIADg898vYMV+/hFHhk+nk3qlpaVh/fr12Lx5M27cuAGZTAaVSr+XVOakXvon63YZhiyPQ0FpJZ4L9cbiF9qzDxAZnRX70/HZnjQAwKw+LXlLhfSSJJN6BQYG4tNPP0VWVhZ27NiBgQMH6vL0ZATKK1WYtDkBBaWVaOvtgI+ebcugQUZpas8WeKtvTQvHkr0X8MUfHKVChkvrDqIAcPXqVaSlpaFt27bw9PSs3W5iYoKhQ4eiY8eO9S6QjIcgCJi34wzO5hTB2cYcq0aHcSVXMmpTe7aAiVyGj3+t6TSqFoCZvQMYwMngaN2yERMTgxYtWqBfv37w9/fH5s2bAdQEkI8//hiRkZHw9fXVWaHU+K0/nIGdSTkwkcuwfEQovJtYSV0SkeQmP+mP+QNaAwC+2ncRi3+/wAkTyeBoHTb+/e9/Y/r06UhOTkafPn3wr3/9C/Pnz4e/vz+io6PRsWNH7NixQ5e1UiMWl56Pj/57DgCwYGBrdPZ3lrgiIv0xobsf3hlYEziW70/Hx7+eZ+Agg6L1bZRLly7h9ddfR9OmTbFixQr4+vri6NGjSE5ORuvWrXVZIzVy126VYdrWRKgF4PlQH4x5opnUJRHpnfHd/GAql+H93alYfegylNVqvDsoiIsRkkHQumWjqqoKVlY1zdw+Pj6wsrLC559/zqBBj6VEWY0Jm+Jxu6wK7X0c8J9ng3k/mugBxnZpfrfTNBB95Arm70yGWs0WDtJ/9RqNsnXrVpw/XzMXglwuh6Ojo06KIuOgVguYuT0JaTeK4WZngdWjw9khlOgRRkT64rNh7SGXATEnMvHmD6ehYuAgPad12OjatSvee+89tGnTBi4uLqioqMCXX36J7777DqmpqaiurtZlndQILf3jAvam3oC5qRyrR4fBw4EzhBJpYliYD5a+FAITuQw7ErPx2rZTqKxWS10W0QNp3Wfj0KFDAICLFy8iISEBiYmJSEhIwKZNm3Dnzh2YmZkhMDAQZ86c0Vmx1Hj8fCYHy/6smRnx4+faooMvW8WIHsczId6wMJVjeswp/HLmOsorVVg5MpStg6SXdDqD6N8yMjIQHx+PU6dO4aOPPtL16XWKM4g2vJTsQgxbdQQVVWpM7O6Htwewnw+Rtvan5WHy5gQoq9Xo7OeMtWPCYWtRrymUiDSm6WeoKGHDkDBsNKwbRRV4Znkccosq8GRLV2wYGwET9qYnqpdjl29h/MZ4lCirEaJoguhXItDE2lzqssgISDJdOdHDlFeqMGFTPHKLKtDCzRbLRnRg0CDSgU5+zvh2fCSaWJshKfMOXl5zDHnFFVKXRVSLYYMahFot4I3vk3AmqxCO1mbYMCYC9pZmUpdF1Gi0VzTB9omd4WJrgfO5xXhh1VFkFpRJXRYRAIYNaiBL9l7Af5NzYW4ix5qocPg6W0tdElGjE+hhhx8md4aPoxWu3irD818fwfncIqnLImpcYWPRokWQyWSYMWOG1KXQP+xIzMLy/TUjTxY91xYRzZwkroio8WrmYoMf//UEAt3tkFesxIurjiLhaoHUZZGRazRh4+TJk1izZg3atWsndSn0DycyCjD3x2QAwJQe/ng+zEfiiogaP3d7S3w3qTPCmjqiqKIaI9cdx/7zeVKXRUasUYSNkpISjBw5EmvXruUspnokPa8EEzbFo1KlRv9gD7z5dKDUJREZDQdrM2x5NRI9Al1RUaXGhE3x+CEhS+qyyEg1irAxdepUDBw4EL17937kvkqlEkVFRXUepHs3i5V4JfoECsur0MG3CZa+FMIFo4gamJW5CdZGhWNoiBeq1QLe/P40VuxP54qx1OAMPmxs27YNiYmJWLRokUb7L1q0CA4ODrUPhUIhcoXGp6yyGuM3nkRmQTmaOltjXRTXPCGSipmJHEteDMGk7n4AgM/2pOG9XWe5ngo1KIMOG5mZmXj99dexZcsWWFpqtq7GvHnzUFhYWPvIzMwUuUrjolILeC0mCaezCtHE2gzfjI2As62F1GURGTW5XIZ5A1rj3UFBkMmATUevYuq3iaioUkldGhkJg55BdOfOnXj22WdhYvL/fzWrVCrIZDLI5XIolco6r90PZxDVHUEQ8MHuVEQfuQJzUzm2jo9EOEeeEOmVn8/kYNb206hUqRHe1BFro8LhaMPZRkk7RjGD6FNPPYXk5GQkJSXVPsLDwzFy5EgkJSU9MmiQbn198BKij1wBACx9MYRBg0gPDWrnhU2vdoSdpSnir97Gc18fwZX8UqnLokbOoMOGnZ0dgoOD6zxsbGzg7OyM4OBgqcszKt/FZ+LT39IAAAsGBWFgO0+JKyKiB+nk54wd/3oC3k2skJFfimdXxnEuDhKVQYcN0g/7zt3AvB01c2lMftIfr3ZtLnFFRPQoAe52iJ36BNr5OOB2WRWGrz2On8/kSF0WNVIG3WdDF9hno34SrhZg5LrjqKhS4/lQH3z+QjvIZBziSmQoyiqr8fq2JOxNvQEAeKtvIKb08OfPMWnEKPpskLQu3ijGuOh4VFSp0auVGz5+vi1/QREZGGtzU6waFYZxXWpaJD/bk4ZZ353mSBXSKYYN0kpmQRlGrT9eO2nXihGhMDPhfyciQ2Qil+HdwUFYODQYJnIZYk9lY/jaY7hZrJS6NGok+OlAjy23sAIj1h3DjSIlWrrbYsOYCFiZc+QPkaEb1akpNo3rCAcrM5y6dgfPLD+M1BzOskz1x7BBj6WgtBKj1h+vnR10y6uRHKNP1Ih0aeGC2ClPwM/FBjmFFRi26gh+Tb4udVlk4Bg2SGNFFVWI2nAc6Xkl8HSwxJZXI+Fmr9nMrURkOPxcbRE7pQu6tnBBWaUK//o2EYt/T4OaU5yTlhg2SCNlldUY981JpGQXwdnGHJtfjYTCyVrqsohIJA7WZoh+JaJ2KPuyP9MxYVM8iiqqJK6MDBHDBj1SeaUKr0bHI/7qbdhZmmLTqx3Rws1W6rKISGSmJnIsGBSEJS+2h7mpHPvO52Hoijik55VIXRoZGIYNeqjyShVe3XgSRy/fgq2FKTaO64g2Xg5Sl0VEDei5UB/8MLkzPB0scflmKYauiMNvKezHQZpj2KAHqqhSYcKmeBy5dAs25ibYOC4Cob6OUpdFRBJo59MEu6Z1RcfmTihRVmPylkR89N9zqFappS6NDADDBt3X30HjcHo+rM1NED2uI8KacmE1ImPmameBb8dHYmJ3PwDAmkOXMWLdceQVV0hcGek7hg26R0WVCpM2J+Cvi/mwMjPBN2MjEMEVXIkIgJmJHG8PaI2vR4bC1sIUJzIKMPCrwzh++ZbUpZEeY9igOkqV1Xjlm5M4eOEmLM3k2DA2ApF+zlKXRUR6pn9bT/w0rQtautviZrESw9cew7J9F6Hi8Fi6D4YNqlUzj8YJHL18t4/GKx3R2Z9Bg4juz9/VFjundsFzHbyhFoDFey9gzIYTnOac7sGwQQCA26WVGLn2OBKu3oa9pSm2jI9kiwYRPZK1uSmWvBSCz4a1g5WZCQ6n56P/l38hLj1f6tJIjzBsEPJLappAk7ML4WRjjpiJndCBo06I6DG8EK7ArmldEOhuh/wSJUatP45PfzuPKo5WITBsGL3MgjK8sOoozucWw83OAtsnduI8GkSklQB3O+yc2gUvRyggCMDKA5fw/NdHkJFfKnVpJDGGDSN27npR7S8C7yZW+G5SZwS420ldFhEZMCtzE3z8fDusHBkKBysznMkqxMCv/sJ3JzMhCOw8aqwYNozU8cu38OLqo8grVqKVhx12THkCzVxspC6LiBqJAW098duMbujs54yyShVm/3gGU75NREFppdSlkQQYNozQnrO5GL3hBIorqhHRzBHbJ3WGO1dvJSId83SwwpbxkZjbvxVM5TL8mpKLp5cewh+pN6QujRoYw4aR2XLsKv61JQGV1Wr0bu2Oza9GwsHKTOqyiKiRMpHLMPlJf+yc2gUBbrbIL1Fi/KZ4vPn9aa4ga0QYNoyESi1g4c+peGdnCtQC8FK4AqtGhcLSzETq0ojICAR7O2D39K6Y1N0PMhnwQ0IW+n/xFw5f5BBZYyATjLzHTlFRERwcHFBYWAh7e3upyxFFWWU1ZmxLwu93my7ffLolpvZsAZlMJnFlRGSMTl4pwBvfnca1gjIAwMsRCswb0JqtrAZI089Qtmw0cnnFFXh5zTH8nnoD5qZyfPlyCKb1CmDQICLJRDRzwq+vd0NU56YAgG0nM/H00oPYy74cjRZbNhpxy0ZKdiEmbU5A9p1yOFqbYW1UOMK5oBoR6ZHjl29h7o7k2rk4Brf3wnuDg+BiayFxZaQJtmwYuZ+SsjFs1RFk3ymHn4sNYqd0YdAgIr0T6eeMX1/vhklP+kEuA3afzsFTiw9i24lrUHNRt0aDLRuNrGVDpRbw6Z7zWH3wMgDgyZau+Gp4B94LJSK9dybrDub8mIxz14sAABHNHPGfZ9uiJScb1FuafoYybDSisFFYVoXp207h0IWbAIDJT/rjrb6BMJGzfwYRGYZqlRrRR65gyd4LKKtUwVQuw8TufpjWqwWszU2lLo/+B8OGhhpL2EjJLsSUbxNxraAMlmZyfDasPQa395K6LCIirWTfKcd7P53FH+dqOo16OVjinUFB6B/swQ7ueoRhQ0OGHjYEQcDWE9fwwe5UVFar4eNohdWjw7iYGhE1CnvO5uLD3anIvlMOAOjSwhnvD27DdZz0BMOGhgw5bJQqq/F2bDJ+SsoBAPRu7YbFL4TAwZr9M4io8SivVGHVwUv4+uAlVFarYSqXIapzM7z+VAB/30nMKEajLFq0CBEREbCzs4ObmxuGDh2KtLQ0qctqEOdzi/DMijj8lJQDE7kMbw9ohbVR4fzBI6JGx8rcBDP7tMQfM59EnyB3VKsFbIjLwJOf70d0XAaqVGqpS6RHMOiWjX79+uHll19GREQEqqurMX/+fCQnJyM1NRU2NpqtYGpoLRtqtYDoI1fw8W/nUVmthoe9JZaP6MBhrURkNA5duImFv6Tiwo0SAICfqw3mD2iNXq3c2J+jgRnlbZSbN2/Czc0NBw8eRPfu3TU6xpDCRl5RBd784UztaJOnWrnh02Ht4MzJb4jIyFSr1Ngen4klv1/ArbvL1nfyc8Lc/q0RomgibXFGRNPP0EY1jqiwsBAA4OT04L/ylUollEpl7fOioiLR69KFvak3MOfHMygorYSFqRzvDArCqEhfpngiMkqmJnKMjGyKwe29sHL/JWyIy8CxywUYuiIO/YM98GbfQPi72kpdJt3VaFo2BEHAM888g9u3b+Ovv/564H7vv/8+Pvjgg3u262vLRmFZFT78ORU/JmYBAII87fHV8BC0cGNPbCKiv2XfKcfSvRfwY2IWBKFmafsXw30wvVcAvJpYSV1eo2V0t1GmTp2KX375BYcPH4aPj88D97tfy4ZCodDLsPFH6g28HZuMvGIlZDJgYjc/zHq6JSxMuSw8EdH9pOUW47M95/HHuTwAgLmJHMM7KjC1Zwu42VtKXF3jY1RhY/r06di5cycOHTqE5s2bP9ax+thn405ZJT7cnYodp7IB1HR++mxYe4Q1dZS4MiIiw3DySgE+25OGExkFAAALUzlGdWqKyU/6w9WO/dx0xSjChiAImD59OmJjY3HgwAEEBAQ89jn0KWwIgoCfknKw8JdU5JdUQi4DJnTzw8w+LWFpxtYMIqLHIQgCjl66hcV7LyDh6m0AgKWZHMM7+mJSd394OLClo76MImxMmTIFW7duxU8//YTAwMDa7Q4ODrCy0uwenb6EjUs3S7BgZwqOXLoFAGjhZovPhrVDB1+2ZhAR1YcgCDh0MR9L9l7A6cw7AGpurwwL98G/nvSHwsla2gINmFGEjQeNxPjmm28wduxYjc4hddioqFJh5YFLWHXgEipValiYyvHaUwGY0M0P5qYGPecaEZFeEQQBh9PzsezP9NrbKyZyGYa098KEbn4I8tKPW+mGxCjChi5IFTYEQcBvKbn4z3/PIet2zZz/T7Z0xb+fCYavM1M2EZGYTmQUYPn+9Np5iwCgW4ALJnX3R5cWzpxWQEMMGxqSImyk5hThg91ncfxusvawt8SCQUEY0JarGRIRNaTkrEKs+esyfjmTA/XdT8M2XvYY16U5BrX35Oi/R2DY0FBDho284gos3XsR209eg1qo6R09qbsfJvfwh7V5o5pfjYjIoGQWlGH94QxsP5mJ8ioVAMDF1gIjI30xspMv3OzYmfR+GDY01BBho6iiCmsOXsb6wxm1/4kHtvPEvP6t4OPIWyZERPridmkltp64hs1HryK3qAIAYGYiw6B2XhjVyRehvo5sgf4Hhg0NiRk2KqpU2HLsKlbsT8ftsioAQIiiCeb1b4VIP2edvhcREelOlUqN31JyEX3kSu2wWQBo7WmPkZG+GNrBG7YWbJFm2NCQGGGjokqF7+Iz8fWBS7heWJOM/V1t8FbfVujbxp2pmIjIgJzJuoPNR69i1+kcKKtrlrO3MTfBkBBvvByhQDsfB6P9vc6woSFdho2KKhW2nbiGVQcv1za/eTpYYmbvlngu1BumJhzKSkRkqArLqvBDYha+PXYVl/NLa7e38rDDi+EKPNvBG4425hJW2PAYNjSki7BRoqzGthPXsPavy7hRVLPuiqeDJab08McL4QrO/klE1IgIgoCjl29h+8lM/JqSi8q7rR3mJnI81doNz3bwRo9AN6OYK4lhQ0P1CRt5xRWIjruCzceuoriiGgDg5WCJKT1b4IVwHw6ZIiJq5ArLqvDT6WxsP5mJszlFtdsdrc0wuL0Xnu3gjRBFk0Z7m4VhQ0PahI3zuUWIjruCHYnZqFTVJFo/VxtM7OaHZ0O9GTKIiIxQak4RYk9lYWdSDm4W///q4gonKwxu54XB7b3QysOuUQUPhg0NafqNqlapsTf1BjYevYJjlwtqt4c3dcTE7n7o3dodcnnj+Q9ERETaqVapEXfpFnYkZuH3szdqpzwAata9GtTOE/2DPdHS3dbggwfDhoYe9Y26UVSB7+Mz8e3xa7UjS0zkMvRr44FxXZshrKlTQ5dMREQGoqyyGn+ez8OupBwcSLtZ2xoOAH4uNugX7IH+wZ4I9rY3yODBsKGh+32jqlVqHEi7iW0nM7E/LQ+qu3PYOtuYY3jHmtnkPB00W1WWiIgIqJng8fezN/Br8nX8dTG/TvDwcrBE7yB39AlyR2RzZ4PpXMqwoaF/fqNulMuw41Q2diRm1Y4qAYCIZo54OcIXA9t5cmQJERHVW3FFFf48n4ffUnJxIO1mnVstdham6B7oip6BbniypStc7SwkrPThGDY09Pc36ulPfkVawf9fbCcbczwf6o2XIhRo4WYnYYVERNSYVVSpEJeejz/O3cDe1DzklyjrvN7OxwE97gaP9j4OejVnE8OGhv7+RilmfAdzKxv0CHTDc6HeeKq1G0eVEBFRg1KrBSRl3cH+83nYn5aHlOyiOq/bWZqis58zugW4oGuAK5o5W0va14NhQ0N/f6NW7T2DFzoHwsnIZn8jIiL9lVdcgYNpN3Eg7SYOp+ejsLyqzuteDpbo7O+Czv7O6OzvDO8mDdufkGFDQw25xDwREZG2VGoBKdmF+OviTfx1MR+J126jSlX3I9zXyRodmzuhYzMnRDR3Er3lg2FDQwwbRERkiMoqqxF/5TaOXr6Fo5duITm7sHb05N9c7SwQ0cwRob6OCG3qiDZe9jrtIsCwoSGGDSIiagyKK6oQf/U2TmYU4OSVApzOLKwzvBYAzE3laOvtgA6KJmivaIIQRRP4OFpp3frBsKEhhg0iImqMKqpUOJ15BwnXbiPx6m0kXruDgtLKe/ZzsjFHOx8HtPV2QPDdh5eDpUYBhGFDQwwbRERkDARBwJVbZUi8ehtnsu4gKasQ53KK7mn9AGoCSBsvewR52qP13Yefqw3M/mfYLcOGhhg2iIjIWCmrVTh/vRins+4gJbsQydlFuHijGNXqe6OBuakcAW62CHS3Q6CHHVp62MHbWkCgr8cjP0NNxfwiiIiISH9ZmJqg/d3+G3+rqFIhLbcYqdeLkJpThHPXax6llSqczSnC2Zz/n/tDrSzT6H0YNoiIiKiWpdm9AUStFpB5uwznc4txIbcY52/U/JueXa7ROXkbhbdRiIiItHKz4DbcnJ0e+RmqPxOsExERkUHRdM4Ohg0iIiISFcMGERERiYphg4iIiETFsEFERESiYtggIiIiURn9PBt/j/wtKip6xJ5ERET0T39/dj5qFg2jDxu3bt0CACgUCokrISIiMkzFxcVwcHB44OtGHzacnJwAANeuXXvoN6qhRURE4OTJk3p1zsc9XpP967vPg1673/aioiIoFApkZmbq1QRuvNaa7cNrLc45ea3FYSzXWhAEhIWFwcvL66H7GX3YkMtruq04ODjo1X9UExMTnddT33M+7vGa7F/ffR702sOOsbe357XW8fG81prhtdZsH15rcc4pxrUGAHNz89rP0gdhB1E9NXXqVL075+Mer8n+9d3nQa+J8f0TC6+1ZvvwWotzTl5rcRjLtdZ0P66NwrVRjAavtfHgtTYevNaGwehbNiwsLPDee+/BwsJC6lJIZLzWxoPX2njwWhsGo2/ZICIiInEZfcsGERERiYthg4iIiETFsEFERESiYtggIiIiUTFsEBERkagYNjSUmZmJHj16ICgoCO3atcP3338vdUkkomeffRaOjo4YNmyY1KWQjv38888IDAxEQEAA1q1bJ3U5JCL+HOsPDn3V0PXr13Hjxg2EhIQgLy8PoaGhSEtLg42NjdSlkQj279+PkpISbNy4ET/88IPU5ZCOVFdXIygoCPv374e9vT1CQ0Nx/Pjx2jWSqHHhz7H+YMuGhjw9PRESEgIAcHNzg5OTEwoKCqQtikTTs2dP2NnZSV0G6diJEyfQpk0beHt7w87ODgMGDMCePXukLotEwp9j/dFowsahQ4cwePBgeHl5QSaTYefOnffss3LlSjRv3hyWlpYICwvDX3/9pdV7xcfHQ61Wc1l6iTTktSb9Ut9rn5OTA29v79rnPj4+yM7ObojS6THx57xxaTRho7S0FO3bt8fy5cvv+/r27dsxY8YMzJ8/H6dOnUK3bt3Qv39/XLt2rXafsLAwBAcH3/PIycmp3efWrVuIiorCmjVrRP+a6P4a6lqT/qnvtb/fXWOZTCZqzaQdXfyckx4RGiEAQmxsbJ1tHTt2FCZPnlxnW6tWrYS5c+dqfN6KigqhW7duwqZNm3RRJumAWNdaEARh//79wvPPP1/fEkkk2lz7uLg4YejQobWvvfbaa8K3334req1UP/X5OefPsX5oNC0bD1NZWYmEhAQ8/fTTdbY//fTTOHLkiEbnEAQBY8eORa9evTB69GgxyiQd0MW1JsOkybXv2LEjUlJSkJ2djeLiYvz3v/9F3759pSiX6oE/54bHVOoCGkJ+fj5UKhXc3d3rbHd3d0dubq5G54iLi8P27dvRrl272nuHmzdvRtu2bXVdLtWDLq41APTt2xeJiYkoLS2Fj48PYmNjERERoetySYc0ufampqZYvHgxevbsCbVajdmzZ8PZ2VmKcqkeNP0558+x/jCKsPG3/703KwiCxvdru3btCrVaLUZZJIL6XGsAHKFgwB517YcMGYIhQ4Y0dFkkgkdda/4c6w+juI3i4uICExOTe/6yzcvLuycZk2HjtTZevPbGg9fa8BhF2DA3N0dYWBj27t1bZ/vevXvxxBNPSFQViYHX2njx2hsPXmvD02huo5SUlCA9Pb32eUZGBpKSkuDk5ARfX1/MmjULo0ePRnh4ODp37ow1a9bg2rVrmDx5soRVkzZ4rY0Xr73x4LVuZCQdC6ND+/fvFwDc8xgzZkztPitWrBCaNm0qmJubC6GhocLBgwelK5i0xmttvHjtjQevdePCtVGIiIhIVEbRZ4OIiIikw7BBREREomLYICIiIlExbBAREZGoGDaIiIhIVAwbREREJCqGDSIiIhIVwwYRERGJimGDiIiIRMWwQURERKJi2CAiIiJRMWwQkSh69OgBmUwGmUyGpKQkqcup1aNHD8yYMeOh+4wdO7a29p07dzZIXUSNGcMGET1S9+7daz98zc3N0bp1a2zduvWRx02YMAHXr19HcHAwgP//EL/fMuBTpkyBTCbD2LFjdV0+xo4di7lz52q8/5dffonr16/rvA4iY8WwQUQPJQgCkpKS8Pnnn+P69etIS0tDv379EBUVhYyMjIcea21tDQ8PD5iamtZuUygU2LZtG8rLy2u3VVRUICYmBr6+vjqvX61W45dffsEzzzyj8TEODg7w8PDQeS1Exophg4ge6uLFiyguLka/fv3g4eGB5s2b49VXX4VKpUJaWtpjny80NBS+vr7YsWNH7bYdO3ZAoVCgQ4cOdfbt0aMHpk2bhmnTpqFJkyZwdnbGO++8A0EQavdRq9X45JNP0KJFC1hYWMDX1xf/+c9/al+Pi4uDXC5HZGRknWNmz54NJycneHh44P3333/sr4OINMewQUQPlZCQAEdHRwQFBQEAsrKyMH/+fFhYWKBt27ZanfOVV17BN998U/t8w4YNGDdu3H333bhxI0xNTXH8+HF89dVXWLp0KdatW1f7+rx58/DJJ59gwYIFSE1NxdatW+Hu7l77+q5duzB48GDI5fI657SxscHx48fx6aef4sMPP8TevXu1+lqI6NFMH70LERmzxMREFBYWws7ODmq1GuXl5bCyssKqVavg7e2t1TlHjx6NefPm4cqVK5DJZIiLi8O2bdtw4MCBe/ZVKBRYunQpZDIZAgMDkZycjKVLl2LChAkoLi7Gl19+ieXLl2PMmDEAAH9/f3Tt2rX2+F27duHzzz+vc8527drhvffeAwAEBARg+fLl2LdvH/r06aPV10NED8ewQUQPlZCQgKlTp+K1117DnTt38Oabb6Jz58716sjp4uKCgQMHYuPGjRAEAQMHDoSLi8t99+3UqRNkMlnt886dO2Px4sVQqVQ4d+4clEolnnrqqfsee+7cOWRlZaF37951trdr167Oc09PT+Tl5Wn99RDRwzFsENFDnTp1ChMnTkSLFi0AACtXrkTbtm0xceJENG/eXOvzjhs3DtOmTQMArFixQqtzWFlZPfT1Xbt2oU+fPvfsZ2ZmVue5TCaDWq3WqgYiejT22SCiB7p8+TLu3LlTO3QVAIKCgtCiRQvExMTU69z9+vVDZWUlKisr0bdv3wfud+zYsXueBwQEwMTEBAEBAbCyssK+ffvue+xPP/2EIUOG1KtOIqo/hg0ieqCEhASYmpqiZcuWdbb36dMHsbGx9Tq3iYkJzp07h3PnzsHExOSB+2VmZmLWrFlIS0tDTEwMli1bhtdffx0AYGlpiTlz5mD27NnYtGkTLl26hGPHjmH9+vXIy8vDyZMnMWjQoHrVSUT1x9soRPRAiYmJaNmyJczNzets79OnD1auXImsrCz4+PhofX57e/tH7hMVFYXy8nJ07NgRJiYmmD59OiZOnFj7+oIFC2Bqaop3330XOTk58PT0xOTJk7F7925ERkbCzc1N6/qISDdkwj8HrBMR6UiPHj0QEhKCL774QpJzDBkyBF27dsXs2bO1fn+ZTIbY2FgMHTpU63MQEW+jEJGIVq5cCVtbWyQnJzf4e3ft2hXDhw/X6tjJkyfD1tZWxxURGS+2bBCRKLKzs2unJPf19b3nVowmdNE6oo28vDwUFRUBqBkWa2Nj06DvT9TYMGwQERGRqHgbhYiIiETFsEFERESiYtggIiIiUTFsEBERkagYNoiIiEhUDBtEREQkKoYNIiIiEhXDBhEREYmKYYOIiIhExbBBREREovo/sRRMJ/AaZz8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots(1, 1, figsize=(6, 4))\n", "ax.semilogx(R, ds_nfw * R)\n", "ax.set_xlabel(r\"$R$ [Mpc/h]\")\n", "ax.set_ylabel(r\"$R \\Delta\\Sigma$ [Mpc M$_\\odot$/pc$^2$]\")\n", "ax.set_ylim(0.1, 15)\n", "ax.set_xlim(1e-2, 6e1)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We designed `glasz.GGL` to take in any `pyccl` halo profile, one can see this in action below. For more details of what is happening with the creation of these profiles, visit the `profiles` notebook in the documentation." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# Halo Mass\n", "M_halo = 3e13\n", "\n", "# 2-halo Amplitude\n", "A_2h = 0.7\n", "\n", "# GNFW Parameters\n", "alpha = 1.0\n", "beta = 3.0\n", "gamma = 0.2\n", "x_c = 0.5\n", "\n", "Rb = 10 * (hmd.get_radius(cosmo, M_halo, a_sf) / a_sf)\n", "\n", "# COMPUTE GNFW AMPLITUDE\n", "prof_nfw = ccl.halos.HaloProfileNFW(\n", " mass_def=hmd, concentration=cM_relation, truncated=False, fourier_analytic=True\n", ")\n", "\n", "prof_baryons = glasz.profiles.HaloProfileGNFW(\n", " hmd,\n", " rho0=1.0,\n", " alpha=alpha,\n", " beta=beta,\n", " gamma=gamma,\n", " x_c=x_c,\n", ")\n", "\n", "prof_baryons.normalize(cosmo, Rb, M_halo, a_sf, prof_nfw)\n", "\n", "\n", "# COMPUTE 3D DENSITY PROFILES\n", "def rho_2h(r):\n", " return (\n", " xi_mm_2h(r)\n", " * bM(cosmo, M_halo, a_sf)\n", " * ccl.rho_x(cosmo, a_sf, \"matter\", is_comoving=True)\n", " * A_2h\n", " )\n", "\n", "\n", "prof_baryons.rho_2h = rho_2h # add 2-halo term to baryon profile\n", "\n", "prof_matter = glasz.profiles.MatterProfile(\n", " mass_def=hmd, concentration=cM_relation, rho_2h=rho_2h\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once the baryon and matter profiles have been created, we can feed them into `glasz.GGL.calc_ds` like the NFW profile from earlier." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "# COMPUTE ΔΣ PROFILE\n", "ds_b = (\n", " fb\n", " * glasz.GGL.calc_ds(\n", " cosmo,\n", " R / cosmo[\"h\"], # convert from Mpc/h to Mpc\n", " M_halo,\n", " a_sf,\n", " prof_baryons,\n", " )\n", " / cosmo[\"h\"]\n", ") # convert from Msun/pc^2 to h Msun/pc^2\n", "\n", "\n", "ds_dm = (\n", " fc\n", " * glasz.GGL.calc_ds(\n", " cosmo,\n", " R / cosmo[\"h\"], # convert from Mpc/h to Mpc\n", " M_halo,\n", " a_sf,\n", " prof_matter,\n", " )\n", " / cosmo[\"h\"]\n", ") # convert from Msun/pc^2 to h Msun/pc^2\n", "\n", "ds = ds_b + ds_dm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can plot this example!" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "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ZswYvPfee6hZsybeeust7NixA5s3b8aBAwf03v/kyZNRq1YtVKpUCYmJidi5c2emk5WczOKTjeTkZLz33nu4ffs2Dh06lGGrBhER5V579uyBt7c3AGXkSfny5fHLL7+gadOmAICRI0di2LBhSExMxNtvv41JkyZh6tSpeu3bzc0NXbp0wa5du9CpUyedxzp16oT58+dj1qxZGD58OPz8/LBq1SrtcfVhZ2eHCRMm4M6dO3B0dESTJk2wceNGvZ+f06lEsjm+yERUKhW2bNmi8yZrEo0bN24gMDAwXacefURHR8Pd3R1RUVFMVIgoT0tISMDt27fh5+cHBwcHc4eT47Ro0QIVKlTAggULzB2KSWX0d6HvOTRHt2zExMQgODhYe//27ds4f/488ufPjyJFiqBr1644e/Ysdu7cidTUVG3zWf78+WFnZ2eusImIKBeJjIzEvn37cOjQISxcuNDc4VikHJ1snDlzBv7+/tr7mo6dffv2xdSpU7VFVqpXr67zvMDAwEw1XxEREb1KzZo18eTJE3z99dcoV66cucOxSDk62WjatCkyuspjIVeAiIjIgt25c8fcIVi8HF2unIiIiCwfkw0iItLBVmN6niH+HphsEBERgLQKl3FxcWaOhHISzd/DixVQMyNH99kgIiLTsba2Rr58+bTzdTg5OaUruU15h4ggLi4OERERyJcvH6ytrbO8LyYbRESk5eXlBQDahIMoX7582r+LrGKyQUREWiqVCt7e3vD09ERycrK5wyEzs7W1zVaLhgaTDSIiSsfa2togJxkigB1EiYiIyMiYbBAREZFRMdkgIiIio2KyQUREREbFZIOIiIiMiskGERERGRWTDSIiIjIqJhtERERkVEw2iIiIyKiYbBAREZFRMdkgIiIio2KyQUREREbFZIOIiIiMiskGERERGRWTDSIiIjIqJhtERERkVDZZedL27dsz/ZwWLVrA0dExK4cjIiIiC5alZKNTp06Z2l6lUuHGjRsoWbJkVg5HREREFizLl1HCw8OhVqv1WpycnAwZMxEREVmQLCUbffv2zdQlkV69esHNzS0rhyIiIiILpxIRMXcQ5hQdHQ13d3dERUUxISIiIsoEfc+hmW7ZiI+Px4MHD9Kt//vvvzO7KyIiIsoDMpVs/Prrryhbtizatm2LqlWr4tSpU9rHevfubfDgiIiIyPJlKtmY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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots(1, 1, figsize=(6, 4))\n", "\n", "ax.semilogx(R, ds * R, color=\"black\", label=\"Total Matter\")\n", "\n", "ax.semilogx(R, ds_dm * R, ls=\"-\", color=\"blue\", label=\"Dark Matter\")\n", "ax.semilogx(R, fc * ds_nfw * R, ls=\"--\", color=\"blue\")\n", "\n", "ax.semilogx(R, ds_b * R, ls=\"-\", color=\"red\", label=\"Baryons\")\n", "\n", "ax.set_xlabel(r\"$R$ [Mpc/h]\")\n", "ax.set_ylabel(r\"$R \\Delta\\Sigma$ [Mpc M$_\\odot$/pc$^2$]\")\n", "\n", "ax.set_ylim(0.1, 15)\n", "ax.set_xlim(1e-2, 6e1)\n", "ax.legend()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "glasz_docs", "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.11.11" } }, "nbformat": 4, "nbformat_minor": 2 }