Source code for rubin_sim.maf.maf_contrib.gw170817_det_metric
# Metric for kilonova detectability based on GW170817 SED used in Scolnic et
# al. 2018 and Setzer et al. 2019. The chosen detection criteria are related
# to those used in the LSST DESC white paper detectability work and the two
# references above.
#
# Contact for this code:
# christian.setzer@fysik.su.se
from pathlib import Path
from .transient_ascii_sed_metric import TransientAsciiSEDMetric
__all__ = ("GW170817DetMetric",)
base_path = Path(__file__).parent
[docs]
class GW170817DetMetric(TransientAsciiSEDMetric):
"""
Wrapper metric class for GW170817-like kilonovae based on the
TransientAsciiSEDMetric. Defaults are set to those corresponding to similar
detection criteria used in Scolnic et al. 2018 and Setzer et al. 2019.
However, due to the simplified nature of transient distribution for
computing this metric, the criteria have been altered to only include
criteria two and three. The chosen redshift is at the approximate mean
redshift of the detected cosmological redshift distribution shown in
Setzer et al. 2019.
Parameters
-----------
ascii_file : `str`, optional
The ascii file containing the inputs for the SED. The file must
contain three columns - ['phase', 'wave', 'flux'] -
of phase/epoch (in days), wavelength (Angstroms), and
flux (ergs/s/Angstrom). Default, data provided with sims_maf_contrib.
metric_name : `str`, optional
Name of the metric, can be overwritten by user or child metric.
z : `float`, optional
Cosmological redshift at which to consider observations of the
tranisent SED. Default 0.08.
num_filters : `int`, optional
Number of filters that need to be observed for an object to be
counted as detected. Default 2. (if num_per_lightcurve is 0, then
this will be reset to 0).
filter_time : `float`, optional
The time within which observations in at least num_filters are
required (in days). Default 25.0 days.
num_phases_to_run : `int`, optional
Sets the number of phases that should be checked.
One can imagine pathological cadences where many objects pass the
detection criteria, but would not if the observations were offset
by a phase-shift. Default 5.
"""
def __init__(
self,
ascii_file=(base_path / "../data/DECAMGemini_SED.txt").resolve(),
metric_name="GW170817DetMetric",
z=0.08,
num_filters=2,
filter_time=25.0,
num_phases_to_run=5,
**kwargs,
):
""""""
super(GW170817DetMetric, self).__init__(
ascii_file=ascii_file,
metric_name=metric_name,
z=z,
num_filters=num_filters,
filter_time=filter_time,
num_phases_to_run=num_phases_to_run,
**kwargs,
)