{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fischer 2020 Model\n", "\n", "CCSN neutrino model from Tobias Fischer\n", "\n", "The citation is: *Neutrino signal from proto-neutron star evolution: Effects of opacities from charged-current-neutrino interactions and inverse neutron decay*, Fischer, Tobias ; Guo, Gang ; Dzhioev, Alan A. ; Martínez-Pinedo, Gabriel ; Wu, Meng-Ru ; Lohs, Andreas ; Qian, Yong-Zhong, Physical Review C, Volume 101, Issue 2, article id.025804 (https://ui.adsabs.harvard.edu/link_gateway/2020PhRvC.101b5804F/doi:10.1103/PhysRevC.101.025804), [arXiv:1804.10890](https://arxiv.org/abs/1804.10890)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from astropy import units as u \n", "from snewpy.neutrino import Flavor\n", "from snewpy.models.ccsn import Fischer_2020\n", "from snewpy.flavor_transformation import NoTransformation, AdiabaticMSW, ThreeFlavorDecoherence\n", "\n", "mpl.rc('font', size=16)\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Initialize Models\n", "\n", "For the `Fischer_2020` model, there’s just a single progenitor available; so let’s initialize it. If this is the first time you’re using this progenitor, snewpy will automatically download the required data files for you." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "F2020 = Fischer_2020()\n", "\n", "F2020" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the luminosity of different neutrino flavors for this model. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fig, ax = plt.subplots(1, figsize=(8, 6), tight_layout=False)\n", "\n", "for flavor in Flavor:\n", " if flavor.is_electron == True:\n", " color='C0'\n", " else:\n", " color='C1'\n", " ls='-' if flavor.is_neutrino else ':'\n", " lw = 2\n", " \n", " ax.plot(F2020.time, F2020.luminosity[flavor]/1e51, # Report luminosity in units foe/s\n", " label=flavor.to_tex(), color=color, ls=ls, lw=lw)\n", " \n", "ax.set(xlim=(-0.1, 1), xlabel=r'$t-t_{\\rm bounce}$ [s]')\n", "ax.grid()\n", "ax.legend(loc='upper right', ncol=2, fontsize=18)\n", "ax.set(ylabel=r'luminosity [foe s$^{-1}$]');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Initial and Oscillated Spectra\n", "\n", "Plot the neutrino spectra at the source and after the requested flavor transformation has been applied.\n", "\n", "### Adiabatic MSW Flavor Transformation: Normal mass ordering" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Adiabatic MSW effect. NMO is used by default.\n", "xform_nmo = AdiabaticMSW()\n", "\n", "# Energy array and time to compute spectra.\n", "# Note that any convenient units can be used and the calculation will remain internally consistent.\n", "E = np.linspace(0,100,201) * u.MeV\n", "t = 50*u.ms\n", "\n", "ispec = F2020.get_initial_spectra(t, E)\n", "ospec_nmo = F2020.get_transformed_spectra(t, E, xform_nmo)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fig, axes = plt.subplots(1,2, figsize=(12,5), sharex=True, sharey=True, tight_layout=True)\n", "\n", "for i, spec in enumerate([ispec, ospec_nmo]):\n", " ax = axes[i]\n", " for flavor in Flavor:\n", " if flavor.is_electron == True:\n", " color='C0'\n", " else:\n", " color='C1'\n", " ax.plot(E, spec[flavor],\n", " label=flavor.to_tex(),\n", " color=color,\n", " ls='-' if flavor.is_neutrino else ':', lw=2,\n", " alpha=0.7)\n", "\n", " ax.set(xlabel=r'$E$ [{}]'.format(E.unit),\n", " title='Initial Spectra: $t = ${:.1f}'.format(t) if i==0 else 'Oscillated Spectra: $t = ${:.1f}'.format(t))\n", " ax.grid()\n", " ax.legend(loc='upper right', ncol=2, fontsize=16)\n", "\n", "ax = axes[0]\n", "ax.set(ylabel=r'flux [erg$^{-1}$ s$^{-1}$]')\n", "\n", "fig.tight_layout();" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.3" }, "vscode": { "interpreter": { "hash": "e2528887d751495e023d57d695389d9a04f4c4d2e5866aaf6dc03a1ed45c573e" } } }, "nbformat": 4, "nbformat_minor": 4 }