Skip to content

Commit

Permalink
I can has FRB?
Browse files Browse the repository at this point in the history
  • Loading branch information
robertdstein committed Aug 13, 2020
1 parent cb65458 commit df58b0a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 2 deletions.
7 changes: 5 additions & 2 deletions flarestack/cosmo/rates/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from flarestack.cosmo.rates.tde_rates import get_tde_rate
from flarestack.cosmo.rates.grb_rates import get_grb_rate
from flarestack.cosmo.rates.fbot_rates import get_fbot_rate
from flarestack.cosmo.rates.frb_rates import get_frb_rate

logger = logging.getLogger(__name__)

Expand All @@ -12,15 +13,17 @@
"sfr": ["SFR", "star_formation_rate"],
"ccsn": ["CCSN", "sn", "supernova", "core_collapse_supernova"],
"grb": ["GRB", "gamma_ray_burst"],
"fbot": ["FBOT", "fast_blue_optical_transient"]
"fbot": ["FBOT", "fast_blue_optical_transient"],
"frb": ["FRB", "fast_radio_bursts"]
}

sources = {
"tde": get_tde_rate,
"sfr": get_sfr_rate,
"ccsn": get_ccsn_rate,
"grb": get_grb_rate,
"fbot": get_fbot_rate
"fbot": get_fbot_rate,
"frb": get_frb_rate
}

def get_rate(source_name, evolution_name=None, rate_name=None, fraction=1.0, **kwargs):
Expand Down
42 changes: 42 additions & 0 deletions flarestack/cosmo/rates/frb_rates.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import logging
import numpy as np
from astropy.cosmology import Planck15 as cosmo
from astropy import units as u
from flarestack.cosmo.rates.sfr_rates import get_sfr_evolution

local_frb_rates = {
"bochenek_20": (7.23 * 10**7. / (u.Gpc**3 * u.yr), "https://arxiv.org/abs/2005.10828"),
}

def get_local_frb_rate(rate_name=None):
"""Returns a local rate of Fast Radio Bursts (FBBs).
:param rate_name: Name of local FRB rate to be used
:return: Local rate
"""

if rate_name is None:
logging.info("No rate specified. Assuming default rate.")
rate_name = "bochenek_20"

if rate_name not in local_frb_rates.keys():
raise Exception(f"Rate name '{rate_name}' not recognised. "
f"The following rates are available: {local_frb_rates.keys()}")
else:
local_rate, ref = local_frb_rates[rate_name]
logging.info(f"Loaded rate '{rate_name}' ({ref})")

return local_rate.to("Mpc-3 yr-1")

def get_frb_rate(evolution_name=None, rate_name=None, **kwargs):
"""Returns a local rate of core-collapse supernovae (CCSNe) as a function of redshift.
:param evolution_name: Name of Star Formation evolution to use
:param rate_name: Name of local FRB rate to be used
:return: Rate as a function of redshift
"""

normed_evolution = get_sfr_evolution(evolution_name, **kwargs)
local_rate = get_local_frb_rate(rate_name)

return lambda z: normed_evolution(z) * local_rate

0 comments on commit df58b0a

Please sign in to comment.