csiborgtools/notebooks/diagnostic/hmf.ipynb

196 lines
187 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
2024-04-08 11:39:41 +02:00
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import csiborgtools\n",
"\n",
"from hmf import *\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
2024-04-08 11:39:41 +02:00
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
2024-04-08 11:39:41 +02:00
"bin_edges = np.arange(11.8, 15.2, 0.25)\n",
"xbin = (bin_edges[1:] + bin_edges[:-1]) / 2\n",
"bin_edges = 10**bin_edges\n",
2024-04-08 11:39:41 +02:00
"xbin = 10**xbin\n",
"\n",
"paths = csiborgtools.read.Paths(**csiborgtools.paths_glamdring)"
]
},
{
"cell_type": "code",
2024-04-08 11:39:41 +02:00
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2024-04-08 11:39:41 +02:00
" 0%| | 0/20 [00:00<?, ?it/s]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 20/20 [00:05<00:00, 3.50it/s]\n",
"100%|██████████| 20/20 [00:05<00:00, 3.58it/s]\n",
"100%|██████████| 20/20 [00:05<00:00, 3.85it/s]\n"
]
}
],
"source": [
"hmf_cb2_main = calculate_hmf(\"csiborg2_main\", bin_edges)\n",
"hmf_cb2_random = calculate_hmf(\"csiborg2_random\", bin_edges)\n",
2024-04-08 11:39:41 +02:00
"hmf_cb2_varysmall = calculate_hmf(\"csiborg2_varysmall\", bin_edges)\n",
"hmf_mpdpl2 = MDPL2_HMF(bin_edges)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## CB2_varysmall HMF"
]
},
{
"cell_type": "code",
2024-04-08 11:39:41 +02:00
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
2024-04-08 11:39:41 +02:00
"image/png": "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
"text/plain": [
"<Figure size 1000x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"k = np.where(paths.get_ics(\"csiborg2_main\") == 16417)[0][0]\n",
"\n",
"fig, axs = plt.subplots(1, 2, figsize=(10, 4))\n",
"lw = plt.rcParams['lines.linewidth']\n",
"fig.subplots_adjust(hspace=0)\n",
"axs[0].plot(xbin, hmf_cb2_main[k], zorder=1, color=\"red\", label=\"CB2 Main\")\n",
"for i in range(len(hmf_cb2_varysmall)):\n",
" axs[0].plot(xbin, hmf_cb2_varysmall[i], lw=lw/2, color=\"black\", zorder=0,\n",
" label=\"CB2 Varysmall\" if i == 0 else None)\n",
"\n",
" axs[1].plot(xbin, hmf_cb2_varysmall[i] / hmf_cb2_main[k], lw=lw/3, color=\"black\", zorder=0)\n",
"\n",
"\n",
"xmin, xmax = xbin.min(), xbin.max()\n",
"for i in range(2):\n",
" axs[i].set_xscale(\"log\")\n",
" axs[i].set_xlabel(r\"$M_{\\mathrm{FoF}}$ $[M_{\\odot}]$\")\n",
" axs[i].set_xlim(xmin, xmax)\n",
"\n",
"axs[0].legend()\n",
"axs[0].set_ylabel(r\"HMF $[1 / (h^{-3} \\mathrm{Mpc}^3~\\mathrm{dex})]$\")\n",
"axs[1].set_ylabel(r\"$\\mathrm{HMF}_{\\mathrm{Varysmall}}~/~\\mathrm{HMF}_{\\mathrm{Main}}$\")\n",
"axs[0].set_yscale(\"log\")\n",
"axs[1].set_ylim(0.9, 1.1)\n",
"axs[1].axhline(1, color=\"red\", lw=lw, zorder=0)\n",
"\n",
"fig.tight_layout()\n",
"fig.savefig(\"../../plots/varysmall_hmf.png\", dpi=450)\n",
"fig.show()"
]
},
{
"cell_type": "code",
2024-04-08 11:39:41 +02:00
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
2024-04-08 11:39:41 +02:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"\n",
"ylow, yhigh = np.percentile(hmf_cb2_main, [16, 84], axis=0)\n",
"plt.fill_between(xbin, ylow, yhigh, alpha=0.75, label=\"CB2 Main\")\n",
"\n",
"ylow, yhigh = np.percentile(hmf_cb2_random, [16, 84], axis=0)\n",
2024-04-08 11:39:41 +02:00
"plt.fill_between(xbin, ylow, yhigh, alpha=0.75, label=\"CB2 Random\")\n",
"\n",
"plt.plot(xbin, hmf_mpdpl2, label=\"MDPL2\", color=\"red\", ls=\"--\")\n",
"\n",
"plt.yscale(\"log\")\n",
"plt.xscale(\"log\")\n",
"plt.xlabel(r\"$M_{\\rm FoF} ~ [M_\\odot / h]$\")\n",
"plt.ylabel(r\"HMF $[1 / (h^{-3} \\mathrm{Mpc}^3~\\mathrm{dex})]$\")\n",
"plt.legend()\n",
"plt.xlim(xbin.min(), xbin.max())\n",
"\n",
"plt.tight_layout()\n",
2024-04-08 11:39:41 +02:00
"plt.savefig(\"../../plots/HMF_comparison.png\", dpi=450)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "venv_csiborg",
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}