Skip to content
Snippets Groups Projects

HIGH_PROFILE label for RRT

Compare and
1 file
+ 45
0
Compare changes
  • Side-by-side
  • Inline
+ 45
0
from . import gracedb
import json
import tempfile
from ligo.skymap.io import read_sky_map
from ligo.skymap.postprocess.crossmatch import crossmatch
def high_profile_label(filecontents, superevent):
skymap, em_bright, p_astro = filecontents
superevent_id = superevent['superevent_id']
# conditions are defined in L2100046
# Raven alert condition
if 'RAVEN_ALERT' in superevent['labels']:
gracedb.create_label.si('HIGH_PROFILE', superevent_id)
# low-far burst condition
far_dict = {}
gw_events = superevent["gw_events"]
for events in gw_events:
events_dict = gracedb.get_event._orig_run(events).json()
far_dict[events_dict["group"]] = events_dict["far"]
if min(far_dict, key=far_dict.get) == "Burst":
gracedb.create_label.si('HIGH_PROFILE', superevent_id)
# annotation number condition
em_bright_dict = json.loads(em_bright)
has_remnant = em_bright_dict['HasRemnant']
pastro_dict = json.loads(p_astro)
p_bns = pastro_dict['BNS']
p_terr = pastro_dict['Terrestrial']
p_nsbh = pastro_dict['NSBH']
with tempfile.NamedTemporaryFile(content=skymap) as skymap_file:
gw_skymap = read_sky_map(skymap_file.name, moc=True)
cl = 90
result = crossmatch(gw_skymap, contours=[cl / 100])
sky_area = result.contour_areas[0]
if p_terr < 0.5:
if (p_bns > 0.1 | p_nsbh > 0.1 | has_remnant > 0.1 | sky_area < 100):
gracedb.create_label.si('HIGH_PROFILE', superevent_id)
Loading