redback 1.0.2__py3-none-any.whl → 1.0.31__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- redback/__init__.py +1 -1
- redback/constraints.py +15 -0
- redback/eos.py +1 -0
- redback/get_data/fink.py +1 -1
- redback/model_library.py +2 -2
- redback/priors/bazin_sne.prior +5 -0
- redback/priors/csm_shock_and_arnett.prior +11 -0
- redback/priors/csm_shock_and_arnett_bolometric.prior +10 -0
- redback/priors/csm_shock_breakout.prior +7 -0
- redback/priors/nicholl_bns.prior +2 -1
- redback/priors/pwn.prior +7 -0
- redback/priors/shocked_cocoon.prior +6 -6
- redback/priors/sn_fallback.prior +8 -0
- redback/priors/stream_stream_tde.prior +10 -0
- redback/priors/stream_stream_tde_bolometric.prior +9 -0
- redback/priors/tde_fallback.prior +9 -0
- redback/priors/tde_fallback_bolometric.prior +6 -0
- redback/priors/tde_synchrotron.prior +6 -0
- redback/priors/two_comp_kne_rosswog_heatingrate.prior +2 -2
- redback/priors/villar_sne.prior +7 -0
- redback/priors.py +1 -1
- redback/simulate_transients.py +11 -4
- redback/tables/GRBs_w_redshift.txt +430 -413
- redback/tables/LGRB_table.txt +70 -6
- redback/tables/SGRB_table.txt +139 -135
- redback/tables/qdot_rosswogkorobkin24.pck +0 -0
- redback/transient/afterglow.py +14 -5
- redback/transient/kilonova.py +5 -2
- redback/transient/prompt.py +14 -4
- redback/transient/supernova.py +6 -2
- redback/transient/tde.py +5 -2
- redback/transient/transient.py +27 -10
- redback/transient_models/afterglow_models.py +110 -146
- redback/transient_models/combined_models.py +39 -33
- redback/transient_models/extinction_models.py +1 -2
- redback/transient_models/general_synchrotron_models.py +518 -0
- redback/transient_models/integrated_flux_afterglow_models.py +2 -2
- redback/transient_models/kilonova_models.py +88 -72
- redback/transient_models/magnetar_models.py +1 -1
- redback/transient_models/phenomenological_models.py +57 -2
- redback/transient_models/shock_powered_models.py +159 -110
- redback/transient_models/supernova_models.py +161 -7
- redback/transient_models/tde_models.py +849 -4
- redback/utils.py +28 -12
- {redback-1.0.2.dist-info → redback-1.0.31.dist-info}/METADATA +42 -5
- {redback-1.0.2.dist-info → redback-1.0.31.dist-info}/RECORD +49 -35
- {redback-1.0.2.dist-info → redback-1.0.31.dist-info}/WHEEL +1 -1
- {redback-1.0.2.dist-info → redback-1.0.31.dist-info}/LICENCE.md +0 -0
- {redback-1.0.2.dist-info → redback-1.0.31.dist-info}/top_level.txt +0 -0
redback/__init__.py
CHANGED
redback/constraints.py
CHANGED
|
@@ -65,6 +65,21 @@ def general_magnetar_powered_sn_constraints(parameters):
|
|
|
65
65
|
converted_parameters['erot_constraint'] = kinetic_energy/rotational_energy
|
|
66
66
|
return converted_parameters
|
|
67
67
|
|
|
68
|
+
def vacuum_dipole_magnetar_powered_supernova_constraints(parameters):
|
|
69
|
+
"""
|
|
70
|
+
Constraint so that magnetar rotational energy is smaller than some number
|
|
71
|
+
|
|
72
|
+
:param parameters: dictionary of parameters
|
|
73
|
+
:return: converted_parameters dictionary where the violated samples are thrown out
|
|
74
|
+
"""
|
|
75
|
+
converted_parameters = parameters.copy()
|
|
76
|
+
l0 = parameters['l0']
|
|
77
|
+
tau = parameters['tau_sd']
|
|
78
|
+
rotational_energy = l0*tau
|
|
79
|
+
# ensure rotational energy is less than the maximum spin down energy
|
|
80
|
+
converted_parameters['erot_constraint'] = rotational_energy/1e53
|
|
81
|
+
return converted_parameters
|
|
82
|
+
|
|
68
83
|
def general_magnetar_powered_supernova_constraints(parameters):
|
|
69
84
|
"""
|
|
70
85
|
Constraint so that magnetar rotational energy is smaller than some number
|
redback/eos.py
CHANGED
|
@@ -78,6 +78,7 @@ class PiecewisePolytrope(object):
|
|
|
78
78
|
radius, mass, k2 = lalsim.SimNeutronStarTOVODEIntegrate(central_pressure, polytrope)
|
|
79
79
|
|
|
80
80
|
Lambda = (2 / 3) * k2 * (cc.c.si.value ** 2 * radius / (cc.G.si.value * mass)) ** 5
|
|
81
|
+
mass = mass / cc.M_sun.si.value
|
|
81
82
|
return mass, Lambda
|
|
82
83
|
|
|
83
84
|
def lambda_array_of_central_pressure(self, central_pressure_array, maximum_mass_lower_limit=2.01):
|
redback/get_data/fink.py
CHANGED
redback/model_library.py
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from redback.transient_models import afterglow_models, \
|
|
2
2
|
extinction_models, kilonova_models, fireball_models, \
|
|
3
3
|
gaussianprocess_models, magnetar_models, magnetar_driven_ejecta_models, phase_models, phenomenological_models, \
|
|
4
|
-
prompt_models, shock_powered_models, supernova_models, tde_models, integrated_flux_afterglow_models, combined_models
|
|
4
|
+
prompt_models, shock_powered_models, supernova_models, tde_models, integrated_flux_afterglow_models, combined_models, general_synchrotron_models
|
|
5
5
|
from redback.utils import get_functions_dict
|
|
6
6
|
|
|
7
7
|
modules = [afterglow_models, extinction_models, fireball_models,
|
|
8
8
|
gaussianprocess_models, integrated_flux_afterglow_models, kilonova_models,
|
|
9
9
|
magnetar_models, magnetar_driven_ejecta_models,
|
|
10
|
-
phase_models, phenomenological_models, prompt_models, shock_powered_models, supernova_models, tde_models, combined_models]
|
|
10
|
+
phase_models, phenomenological_models, prompt_models, shock_powered_models, supernova_models, tde_models, combined_models, general_synchrotron_models]
|
|
11
11
|
|
|
12
12
|
all_models_dict = dict()
|
|
13
13
|
modules_dict = dict()
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
aa = LogUniform(1e-15,1e15,name='aa', latex_label = r'$A$')
|
|
2
|
+
bb = LogUniform(1e-15,1e15,name='bb', latex_label = r'$B$')
|
|
3
|
+
t0 = Uniform(0,50,name='t0', latex_label = r'$t_0$')
|
|
4
|
+
tau_rise = Uniform(0.01, 50, name='tau_rise', latex_label = r'$\\tau_{\\mathrm{rise}}$')
|
|
5
|
+
tau_fall = Uniform(1, 300, name='tau_fall', latex_label = r'$\\tau_{\\mathrm{fall}}$')
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
redshift = Uniform(0.01, 1, 'redshift', latex_label=r'$z$')
|
|
2
|
+
mej = LogUniform(1e-4, 30, 'mej', latex_label = r'$M_{\mathrm{ej}}~(M_\odot)$')
|
|
3
|
+
f_nickel = LogUniform(1e-3,1,name='f_nickel', latex_label = r'$f_{\mathrm{Ni}}$')
|
|
4
|
+
csm_mass = LogUniform(1e-3, 5, 'csm_mass', latex_label=r'$M_{\mathrm{CSM}}~(M_{\odot})$')
|
|
5
|
+
v_min = LogUniform(1e3, 3e4, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
|
|
6
|
+
beta = Uniform(0.4, 0.5, 'beta', latex_label=r'$\\beta$')
|
|
7
|
+
kappa = Uniform(0.01, 1, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
8
|
+
shell_radius = Uniform(1e-2, 10, 'shell_radius', latex_label=r'$R_{\mathrm{shell}}~(10^{14}~\mathrm{cm})$')
|
|
9
|
+
shell_width_ratio = Uniform(0.1, 0.5, 'shell_width_ratio', latex_label=r'$\\Delta~R_{\mathrm{shell}}/R_{\mathrm{shell}}$')
|
|
10
|
+
kappa_gamma = LogUniform(1e-4, 1e4, 'kappa_gamma', latex_label = r'$\\kappa_{\\gamma}~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
11
|
+
temperature_floor = LogUniform(1e3,1e5,name = 'temperature_floor', latex_label = r'$T_{\mathrm{floor}}~(\mathrm{K})$')
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
mej = LogUniform(1e-4, 30, 'mej', latex_label = r'$M_{\mathrm{ej}}~(M_\odot)$')
|
|
2
|
+
f_nickel = LogUniform(1e-3,1,name='f_nickel', latex_label = r'$f_{\mathrm{Ni}}$')
|
|
3
|
+
csm_mass = LogUniform(1e-3, 5, 'csm_mass', latex_label=r'$M_{\mathrm{CSM}}~(M_{\odot})$')
|
|
4
|
+
v_min = LogUniform(1e3, 3e4, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
|
|
5
|
+
beta = Uniform(0.4, 0.5, 'beta', latex_label=r'$\\beta$')
|
|
6
|
+
kappa = Uniform(0.01, 1, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
7
|
+
shell_radius = Uniform(1e-2, 10, 'shell_radius', latex_label=r'$R_{\mathrm{shell}}~(10^{14}~\mathrm{cm})$')
|
|
8
|
+
shell_width_ratio = Uniform(0.1, 0.5, 'shell_width_ratio', latex_label=r'$\\Delta~R_{\mathrm{shell}}/R_{\mathrm{shell}}$')
|
|
9
|
+
kappa_gamma = LogUniform(1e-4, 1e4, 'kappa_gamma', latex_label = r'$\\kappa_{\\gamma}~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
10
|
+
temperature_floor = LogUniform(1e3,1e5,name = 'temperature_floor', latex_label = r'$T_{\mathrm{floor}}~(\mathrm{K})$')
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
redshift = Uniform(0.01, 1, 'redshift', latex_label=r'$z$')
|
|
2
|
+
csm_mass = LogUniform(1e-3, 2, 'csm_mass', latex_label=r'$M_{\mathrm{CSM}}~(M_{\odot})$')
|
|
3
|
+
v_min = LogUniform(1e3, 3e4, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
|
|
4
|
+
beta = Uniform(0.4, 0.5, 'beta', latex_label=r'$\\beta$')
|
|
5
|
+
kappa = Uniform(0.01, 1, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
6
|
+
shell_radius = Uniform(1e-2, 10, 'shell_radius', latex_label=r'$R_{\mathrm{shell}}~(10^{14}~\mathrm{cm})$')
|
|
7
|
+
shell_width_ratio = Uniform(0.1, 0.5, 'shell_width_ratio', latex_label=r'$\\Delta~R_{\mathrm{shell}}/R_{\mathrm{shell}}$')
|
redback/priors/nicholl_bns.prior
CHANGED
|
@@ -8,7 +8,8 @@ mtov = Uniform(2.05, 2.4, 'mtov', latex_label = r'$M_{\mathrm{TOV}}~(M_\odot)$')
|
|
|
8
8
|
epsilon = Uniform(0.05, 0.6, 'zeta', latex_label = r'$\\epsilon$')
|
|
9
9
|
alpha = Uniform(0.1, 1, 'alpha', latex_label = r'$\\alpha$')
|
|
10
10
|
cos_theta = Uniform(0.0, 1.0, 'cos_theta', latex_label = r'$\cos~\\theta$')
|
|
11
|
-
|
|
11
|
+
cos_theta_open = Uniform(0.707, 0.866, 'cos_theta_open', latex_label = r'$\cos~\\theta_{\mathrm{open}}$')
|
|
12
|
+
cos_theta_cocoon = Uniform(0.866, 1.0, 'cos_theta_cocoon', latex_label = r'$\cos~\\theta_{\mathrm{cocoon}}$')
|
|
12
13
|
temperature_floor_1 = LogUniform(100, 6000, 'temperature_floor_1', latex_label = r'$T_{\mathrm{floor}~1}$ (K)')
|
|
13
14
|
temperature_floor_2 = LogUniform(100, 6000, 'temperature_floor_2', latex_label = r'$T_{\mathrm{floor}~2}$ (K)')
|
|
14
15
|
temperature_floor_3 = LogUniform(100, 6000, 'temperature_floor_3', latex_label = r'$T_{\mathrm{floor}~3}$ (K)')
|
redback/priors/pwn.prior
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
redshift = Uniform(1e-6,3,name='redshift', latex_label = r'$z$')
|
|
2
|
+
l0 = LogUniform(1e40, 1e50, 'l0', latex_label = r'$L_{\mathrm{0}} [erg s^{-1}]$')
|
|
3
|
+
tau_sd = LogUniform(1e2, 1e8, 'tau_sd', latex_label = r'$t_{\mathrm{SD}} [s]$')
|
|
4
|
+
nn = LogUniform(1.5, 10, 'nn', latex_label = r'$n$')
|
|
5
|
+
mej = LogUniform(1e-1, 100, 'mej', latex_label = r'$M_{\mathrm{ej}} [M_{\odot}]$')
|
|
6
|
+
eps_b = LogUniform(1e-7, 1, 'eps_b', latex_label = r'$\epsilon_{\mathrm{B}}$')
|
|
7
|
+
gamma_b = LogUniform(1e2, 1e7, 'gamma_b', latex_label = r'$\gamma_{\mathrm{b}}$')
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
redshift = Uniform(1e-3,3,name='redshift', latex_label = r'$z$')
|
|
2
|
-
mej = Uniform(1e-4, 0.
|
|
3
|
-
vej = Uniform(0.
|
|
2
|
+
mej = Uniform(1e-4, 0.2, 'mej', latex_label = r'$M_{\mathrm{ej} }~(M_\odot)$')
|
|
3
|
+
vej = Uniform(0.01, 0.7, 'vej', latex_label = r'$v_{\mathrm{ej}}~(c)$')
|
|
4
4
|
eta = Uniform(1, 5, '\\eta', latex_label = r'$\\eta$')
|
|
5
|
-
tshock = Uniform(1,
|
|
6
|
-
shocked_fraction = Uniform(0.
|
|
7
|
-
cos_theta_cocoon = Uniform(0.
|
|
8
|
-
kappa = Uniform(1, 30, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
5
|
+
tshock = Uniform(0.1, 10, 'tshock', latex_label = r'$t_{\mathrm{shock}}~(\mathrm{s})$')
|
|
6
|
+
shocked_fraction = Uniform(0.01, 1, 'shocked_fraction', latex_label = r'$f_{\mathrm{shocked}}$')
|
|
7
|
+
cos_theta_cocoon = Uniform(0.866, 1.0, 'cos_theta_cocoon', latex_label = r'$\cos~\\theta_{\mathrm{cocoon}}$')
|
|
8
|
+
kappa = Uniform(0.1, 30, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
redshift = Uniform(1e-3,3,name='redshift', latex_label = r'$z$')
|
|
2
|
+
logl1 = Uniform(51, 57, name='logl1', latex_label=r'$\log_{10}L_{1} [erg~s^{-1}]$')
|
|
3
|
+
tr = LogUniform(1e-4, 100, name='tr', latex_label=r'T_{r} [day]')
|
|
4
|
+
mej = LogUniform(1e-4, 100, 'mej', latex_label = r'$M_{\mathrm{ej}}~(M_\odot)$')
|
|
5
|
+
vej = LogUniform(1e3, 1e5, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
|
|
6
|
+
kappa = Uniform(0.05, 2, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
7
|
+
kappa_gamma = LogUniform(1e-4, 1e4, 'kappa_gamma', latex_label = r'$\\kappa_{\\gamma}~(\mathrm{cm}^{2}/\mathrm{g})$')
|
|
8
|
+
temperature_floor = LogUniform(1e3,1e5,name = 'temperature_floor', latex_label = r'$T_{\mathrm{floor}}~(\mathrm{K})$')
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
redshift = Uniform(1e-6, 3, 'redshift', latex_label = r'$z$')
|
|
2
|
+
peak_time = LogUniform(0.1,60, name='peak_time', latex_label = r'$t_{\mathrm{peak}}~(\mathrm{day})$')
|
|
3
|
+
sigma_t = LogUniform(10,60, name='sigma_t', latex_label = r'$\\sigma~(\mathrm{day})$')
|
|
4
|
+
mbh_6 = LogUniform(0.01, 20, name='mbh_6', latex_label = r'$M_{\mathrm{BH}}~(10^{6}~M_\odot)$')
|
|
5
|
+
mstar = LogUniform(0.1, 10, name='stellar_mass', latex_label = r'$M_{\mathrm{star}}~(M_\odot)$')
|
|
6
|
+
c1 = 1.0
|
|
7
|
+
del_omega = 2.0
|
|
8
|
+
f = 0.2
|
|
9
|
+
h_r = 0.2
|
|
10
|
+
inc_tcool = 1
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
peak_time = LogUniform(0.1,60, name='peak_time', latex_label = r'$t_{\mathrm{peak}}~(\mathrm{day})$')
|
|
2
|
+
sigma_t = LogUniform(10,60, name='sigma_t', latex_label = r'$\\sigma~(\mathrm{day})$')
|
|
3
|
+
mbh_6 = LogUniform(0.01, 20, name='mbh_6', latex_label = r'$M_{\mathrm{BH}}~(10^{6}~M_\odot)$')
|
|
4
|
+
mstar = LogUniform(0.1, 10, name='stellar_mass', latex_label = r'$M_{\mathrm{star}}~(M_\odot)$')
|
|
5
|
+
c1 = 1.0
|
|
6
|
+
del_omega = 2.0
|
|
7
|
+
f = 0.2
|
|
8
|
+
h_r = 0.2
|
|
9
|
+
inc_tcool = 1
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
redshift = Uniform(1e-6, 3, 'redshift', latex_label = r'$z$')
|
|
2
|
+
mbh6 = Uniform(0.01, 20, name='mbh_6', latex_label = r'$M_{\mathrm{BH}}~[10^{6}~M_{\odot}]$')
|
|
3
|
+
mstar = Uniform(0.1, 30, name='mstar', latex_label = r'$M_{\mathrm{star}} [M_{\odot}]$')
|
|
4
|
+
tvisc = LogUniform(1e-3, 1e2, name='tvisc', latex_label = r'$t_{\mathrm{visc}}$')
|
|
5
|
+
bb = Uniform(0, 2, name='bb', latex_label = r'$\\beta^{\star}$')
|
|
6
|
+
eta = LogUniform(1e-4, 0.4, name='eta', latex_label=r'$\eta$')
|
|
7
|
+
leddlimit = 1
|
|
8
|
+
rph0 = LogUniform(1e-4, 1e4, name='rph_0', latex_label = r'$R_{\mathrm{ph-0}}$')
|
|
9
|
+
lphoto = Uniform(0, 2, name='lphoto', latex_label = r'$L_{\mathrm{photo}}^{\star}$')
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
mbh6 = Uniform(0.01, 20, name='mbh_6', latex_label = r'$M_{\mathrm{BH}}~[10^{6}~M_{\odot}]$')
|
|
2
|
+
mstar = Uniform(0.1, 30, name='mstar', latex_label = r'$M_{\mathrm{star}} [M_{\odot}]$')
|
|
3
|
+
tvisc = LogUniform(1e-3, 1e2, name='tvisc', latex_label = r'$t_{\mathrm{visc}}$')
|
|
4
|
+
bb = Uniform(0, 2, name='bb', latex_label = r'$\\beta^{\star}$')
|
|
5
|
+
eta = LogUniform(1e-4, 0.4, name='eta', latex_label=r'$\eta$')
|
|
6
|
+
leddlimit = 1
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
redshift = Uniform(0.01, 3, 'redshift', latex_label=r'$z$')
|
|
2
|
+
Mej = Uniform(0.1, 10, 'Mej', latex_label = r'$M_{\mathrm{ej}}~(M_\odot)$')
|
|
3
|
+
vej = Uniform(1e3, 3e4, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
|
|
4
|
+
logepse = Uniform(-5, 0, 'logepse', latex_label=r'$\log_{10}~\\epsilon_{e}$')
|
|
5
|
+
logepsb = Uniform(-5, 0, 'logepsb', latex_label=r'$\log_{10}~\\epsilon_{B}$')
|
|
6
|
+
p = Uniform(2, 3, 'p', latex_label=r'$p$')
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
redshift = Uniform(1e-6, 0.1, 'redshift', latex_label = r'$z$')
|
|
2
2
|
mej_1 = Uniform(1e-2, 0.05, 'mej', latex_label = r'$M_{\mathrm{ej}~1}~(M_\odot)$')
|
|
3
3
|
vej_1 = Uniform(0.05, 0.3, 'vej', latex_label = r'$v_{\mathrm{ej}~1}~(c)$')
|
|
4
|
-
ye_1 = Uniform(0.05, 0.
|
|
4
|
+
ye_1 = Uniform(0.05, 0.5, 'ye', latex_label = r'$Y_{e~1}$')
|
|
5
5
|
temperature_floor_1 = LogUniform(100, 6000, 'temperature_floor', latex_label = r'$T_{\mathrm{floor}~1}~(\mathrm{K})$')
|
|
6
6
|
mej_2 = Uniform(1e-2, 0.05, 'mej', latex_label = r'$M_{\mathrm{ej}~2}~(M_\odot)$')
|
|
7
7
|
vej_2 = Uniform(0.05, 0.3, 'vej', latex_label = r'$v_{\mathrm{ej}~2}~(c)$')
|
|
8
|
-
ye_2 = Uniform(0.05, 0.
|
|
8
|
+
ye_2 = Uniform(0.05, 0.5, 'ye', latex_label = r'$Y_{e~2}$')
|
|
9
9
|
temperature_floor_2 = LogUniform(100, 6000, 'temperature_floor', latex_label = r'$T_{\mathrm{floor}~2}~(\mathrm{K})$')
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
aa = LogUniform(1e-15,1e15,name='aa', latex_label = r'$A$')
|
|
2
|
+
cc = LogUniform(1e-15,1e15,name='bb', latex_label = r'$C$')
|
|
3
|
+
t0 = Uniform(0,50,name='t0', latex_label = r'$t_0$')
|
|
4
|
+
tau_rise = Uniform(0.01, 50, name='tau_rise', latex_label = r'$\\tau_{\\mathrm{rise}}$')
|
|
5
|
+
tau_fall = Uniform(1, 300, name='tau_fall', latex_label = r'$\\tau_{\\mathrm{fall}}$')
|
|
6
|
+
gamma = Uniform(0.1, 100, name='gamma', latex_label = r'$\\gamma$')
|
|
7
|
+
nu = Uniform(0, 1, name='nu', latex_label = r'$\\nu$')
|
redback/priors.py
CHANGED
|
@@ -20,7 +20,7 @@ def get_priors(model, times=None, y=None, yerr=None, dt=None, **kwargs):
|
|
|
20
20
|
:param kwargs: Extra arguments to be passed to the prior function
|
|
21
21
|
:return: priors: PriorDict object
|
|
22
22
|
"""
|
|
23
|
-
prompt_prior_functions = dict(
|
|
23
|
+
prompt_prior_functions = dict(gaussian_prompt=get_gaussian_priors, skew_gaussian=get_skew_gaussian_priors,
|
|
24
24
|
skew_exponential=get_skew_exponential_priors, fred=get_fred_priors,
|
|
25
25
|
fred_extended=get_fred_extended_priors)
|
|
26
26
|
|
redback/simulate_transients.py
CHANGED
|
@@ -18,7 +18,7 @@ class SimulateGenericTransient(object):
|
|
|
18
18
|
"""
|
|
19
19
|
A generic interface to simulating transients
|
|
20
20
|
|
|
21
|
-
:param model: String corresponding to redback model
|
|
21
|
+
:param model: String corresponding to redback model or a python function that can evaluate an SED.
|
|
22
22
|
:param parameters: Dictionary of parameters describing a single transient
|
|
23
23
|
:param times: Time values that the model is evaluated from
|
|
24
24
|
:param model_kwargs: Additional keyword arguments, must include all the keyword arguments required by the model.
|
|
@@ -35,10 +35,13 @@ class SimulateGenericTransient(object):
|
|
|
35
35
|
Default is 'gaussianmodel' where sigma is noise_term * model.
|
|
36
36
|
Another option is 'gaussian' i.e., a simple Gaussian noise with sigma = noise_term.
|
|
37
37
|
:param noise_term: Float. Factor which is multiplied by the model flux/magnitude to give the sigma
|
|
38
|
-
or is sigma itself for 'gaussian' noise.
|
|
38
|
+
or is sigma itself for 'gaussian' noise. Or the SNR for 'SNRbased' noise.
|
|
39
39
|
:param extra_scatter: Float. Sigma of normal added to output for additional scatter.
|
|
40
40
|
"""
|
|
41
|
-
|
|
41
|
+
if model in redback.model_library.all_models_dict:
|
|
42
|
+
self.model = redback.model_library.all_models_dict[model]
|
|
43
|
+
else:
|
|
44
|
+
self.model = model
|
|
42
45
|
self.parameters = parameters
|
|
43
46
|
self.all_times = times
|
|
44
47
|
self.model_kwargs = model_kwargs
|
|
@@ -95,9 +98,13 @@ class SimulateGenericTransient(object):
|
|
|
95
98
|
noise = np.random.normal(0, self.noise_term, len(true_output))
|
|
96
99
|
output = true_output + noise
|
|
97
100
|
output_error = self.noise_term
|
|
101
|
+
elif noise_type == 'SNRbased':
|
|
102
|
+
sigma = np.sqrt(true_output + np.min(true_output)/self.noise_term)
|
|
103
|
+
output_error = sigma
|
|
104
|
+
output = true_output + np.random.normal(0, sigma, len(true_output))
|
|
98
105
|
else:
|
|
99
106
|
logger.warning(f"noise_type {noise_type} not implemented.")
|
|
100
|
-
raise ValueError('noise_type must be either gaussianmodel or
|
|
107
|
+
raise ValueError('noise_type must be either gaussianmodel, gaussian, or SNRBased')
|
|
101
108
|
|
|
102
109
|
if extra_scatter > 0:
|
|
103
110
|
extra_noise = np.random.normal(0, extra_scatter, len(true_output))
|