Exemplo n.º 1
0
import numpy as np
import astropy.time as astrotime

from _paths import PATHS
from _loader import runlist_loader


src_path = os.path.join(PATHS.local, "hese_scan_maps_truncated")
runlist_path = os.path.join(PATHS.local, "runlists")

outpath = os.path.join(PATHS.local, "source_list")
if not os.path.isdir(outpath):
    os.makedirs(outpath)

# Load runlists
runlists = runlist_loader("all")

# Load sources up to HESE 6yr, list from:
#   https://wiki.icecube.wisc.edu/index.php/Analysis_of_pre-public_alert_HESE/EHE_events#HESE
# Last Run ID is 127853 from late 86V (2015) run, next from 7yr is 128290
src_files = sorted(glob(os.path.join(src_path, "*.json.gz")))

sources = []
for src_file in src_files:
    with gzip.open(src_file) as _f:
        src_dict = json.load(_f)
        # Build a compact version with all relevant infos
        src_i = {}
        for key in ["run_id", "event_id", "mjd"]:
            src_i[key] = src_dict[key]
        # Store best fit from direct local trafo and map maximum
Exemplo n.º 2
0
hor = np.sin(np.deg2rad(30))
sd_lo, sd_hi = -1., 1.
sindec_bins = np.unique(
    np.concatenate([
        np.linspace(sd_lo, -hor, 3 + 1),  # south
        np.linspace(-hor, +hor, 14 + 1),  # horizon
        np.linspace(+hor, sd_hi, 3 + 1),  # north
    ]))

# Make settings for each module per sample
sample_names = source_list_loader()
for key in sample_names:
    print("Building settings file for sample '{}'".format(key))
    # Load data that settings depend on
    srcs = source_list_loader(key)[key]
    runlist = runlist_loader(key)[key]
    exp_off = off_data_loader(key)[key]
    exp_on = on_data_loader(key)[key]
    mc = mc_loader(key)[key]

    # :: BG injector ::
    # Rebinning for the rate model fits, use monthly bins
    if key == "IC86_2012-2014":
        n_rate_bins = 36
    else:
        n_rate_bins = 12
    rate_rebins = np.linspace(np.amin(exp_off["time"]),
                              np.amax(exp_off["time"]), n_rate_bins)
    # We want the parameter spline to stick a little bit to the points
    spl_s = len(sindec_bins) / 2
    bg_inj_opts = {
# Load files and build the models one after another to save memory
bg_injs = {}
sig_injs = {}
llhs = {}

# Load files and build the models one after another to save memory
sample_names = _loader.source_list_loader()
for key in sample_names:
    print("\n" + 80 * "#")
    print("# :: Setup for sample {} ::".format(key))
    opts = _loader.settings_loader(key)[key].copy()
    exp_off = _loader.off_data_loader(key)[key]
    mc = _loader.mc_loader(key)[key]
    srcs = _loader.source_list_loader(key)[key]
    runlist = _loader.runlist_loader(key)[key]
    # Process to tdepps format
    srcs_rec = make_src_records(srcs, dt0=dt0, dt1=dt1)

    # Setup BG injector
    bg_inj_i = TimeDecDependentBGDataInjector(inj_opts=opts["bg_inj_opts"],
                                              random_state=rndgen)
    bg_inj_i.fit(X=exp_off, srcs=srcs_rec, run_list=runlist)
    bg_injs[key] = bg_inj_i

    # Setup LLH model and LLH
    fmod = opts["model_energy_opts"].pop("flux_model")
    flux_model = flux_model_factory(fmod["model"], **fmod["args"])
    opts["model_energy_opts"]["flux_model"] = flux_model
    llhmod = GRBModel(X=exp_off,
                      MC=mc,