gwcelery.tasks.external_triggers module

This module listens to the GCNs from SNEWS and the Fermi, Swift, INTEGRAL, and AGILE missions. It is also responsible for carrying out tasks related to external trigger-gravitational wave coincidences, including looking for temporal coincidences, creating combined GRB-GW sky localization probability maps, and computing their joint temporal and spatio-temporal false alarm rates.

There are two GCN and two LVAlert message handlers in the ~gwcelery.tasks.external_triggers module:

Flow Chart

digraph exttrig { compound = true nodesep = 0.1 ranksep = 0.1 node [ fillcolor = white shape = box style = filled target = "_top" ] graph [ labeljust = "left" style = filled target = "_top" ] SNEWS_GCN [ style="rounded" label="SNEWS GCN recieved" ] GRB_GCN [ style="rounded" label="GRB\nGCN recieved" ] subgraph cluster_gcn_handle { href = "../gwcelery.tasks.external_triggers.html#gwcelery.tasks.external_triggers.handle_gcn" label = <<B><FONT face="monospace">handle_gcn</FONT></B>> Ignore_gcn [ label="Ignore" ] Likely_noise [ shape=diamond label="Is the event\nlikely non-astrophysical?" ] Event_exists_in_Gracedb [ shape=diamond label="Does the event already\nexist in gracedb" ] Update_existing_event_in_gracedb [ label="Update the existing\nevent in gracedb" ] Create_new_event_in_gracedb [ label="Create a new event\nin gracedb" ] Grab_create_skymap [ label="Grab and/or\ncreate external sky map" ] } SNEWS_GCN -> Likely_noise [ lhead = cluster_gcn_handle ] GRB_GCN -> Likely_noise [ lhead = cluster_gcn_handle ] Likely_noise -> Event_exists_in_Gracedb[label="no"] Likely_noise -> Ignore_gcn[label="yes"] Event_exists_in_Gracedb -> Update_existing_event_in_gracedb[label="yes"] Event_exists_in_Gracedb -> Create_new_event_in_gracedb[label="no"] Update_existing_event_in_gracedb -> Grab_create_skymap Create_new_event_in_gracedb -> Grab_create_skymap GRB_External_Trigger_or_Superevent_LVAlert [ style="rounded" label="GRB external trigger or\nSuperevent LVAlert received" ] subgraph cluster_grb_lvalert_handle { href = "../gwcelery.tasks.external_triggers.html#gwcelery.tasks.external_triggers.handle_grb_lvalert" label = <<B><FONT face="monospace">handle_grb_lvalert</FONT></B>> Ignore [ label="Ignore" ] Is_New_LVAlert [ shape=diamond label="Is this a\nnew type LVAlert?" ] Is_Swift_Subthresh_LVAlert [ shape=diamond label="Is this a\nSwift Targeted Subthreshold\nLVAlert?" ] Create_Swift_Skymap [ label="Create Swift sky map" ] Is_Label_Exttrig_LVAlert [ shape=diamond label="Is this a label type\nexternal event LVAlert?" ] Perform_Raven_Search [ label="Perform Raven\ncoincidence search(es)" ] Does_Label_Launch_Pipeline [ shape=diamond label="Does label complete the\nset indicating a coincidence and both\nsky maps are available?" ] Launch_Raven_Pipeline [ label="Launch Raven\nPipeline" ] Does_Label_Launch_Combined_Skymaps [ shape=diamond label="Does label complete the\nset indicating RAVEN alert and both\nsky maps are available?" ] Create_Combined_Skymap [ label="Create combined GW-GRB\nsky map" ] } GRB_External_Trigger_or_Superevent_LVAlert -> Is_New_LVAlert [ lhead = cluster_grb_lvalert_handle ] Is_New_LVAlert -> Is_Swift_Subthresh_LVAlert[label="yes"] Is_Swift_Subthresh_LVAlert -> Create_Swift_Skymap[label="yes"] Create_Swift_Skymap -> Perform_Raven_Search Is_Swift_Subthresh_LVAlert -> Perform_Raven_Search[label="no"] Is_New_LVAlert -> Is_Label_Exttrig_LVAlert[label="no"] Is_Label_Exttrig_LVAlert -> Does_Label_Launch_Pipeline[label="yes"] Is_Label_Exttrig_LVAlert -> Ignore[label="no"] Does_Label_Launch_Pipeline -> Launch_Raven_Pipeline[label="yes"] Does_Label_Launch_Pipeline -> Does_Label_Launch_Combined_Skymaps[label="no"] Launch_Raven_Pipeline -> Does_Label_Launch_Combined_Skymaps Does_Label_Launch_Combined_Skymaps -> Create_Combined_Skymap[label="yes"] Does_Label_Launch_Combined_Skymaps -> Ignore[label="no"] SNEWS_External_Trigger_or_Superevent_LVAlert [ style="rounded" label="SNEWS external trigger or\nSuperevent LVAlert received" ] subgraph cluster_snews_lvalert_handle { href = "../gwcelery.tasks.external_triggers.html#gwcelery.tasks.external_triggers.handle_snews_lvalert" label = <<B><FONT face="monospace">handle_snews_lvalert</FONT></B>> ignore [ label="Ignore" ] is_new_exttrig_lvalert [ shape=diamond label="Is this a new type SNEWS\nexternal trigger LVAlert?" ] is_new_superevent_lvalert [ shape=diamond label="Is this a new type\nsuperevent LVAlert?" ] perform_raven_search [ label="Perform Raven\ncoincidence search" ] } SNEWS_External_Trigger_or_Superevent_LVAlert -> is_new_exttrig_lvalert [ lhead = cluster_snews_lvalert_handle ] is_new_exttrig_lvalert -> perform_raven_search[label="yes"] is_new_exttrig_lvalert -> is_new_superevent_lvalert[label="no"] is_new_superevent_lvalert -> perform_raven_search[label="yes"] is_new_superevent_lvalert -> ignore[label="no"] }

Tasks

gwcelery.tasks.external_triggers.REQUIRED_LABELS_BY_TASK = {'combine': {'EXT_SKYMAP_READY', 'RAVEN_ALERT', 'SKYMAP_READY'}, 'compare': {'EM_COINC', 'EXT_SKYMAP_READY', 'SKYMAP_READY'}}

These labels should be present on an external event to consider it to be ready for sky map comparison.

gwcelery.tasks.external_triggers.FERMI_GRB_CLASS_VALUE = 4

This is the index that denote GRBs within Fermi’s Flight Position classification.

gwcelery.tasks.external_triggers.FERMI_GRB_CLASS_THRESH = 50

This values denotes the threshold of the most likely Fermi source classification, above which we will consider a Fermi Flight Position notice.

(task)gwcelery.tasks.external_triggers.handle_snews_gcn(payload)[source]

Handles the payload from SNEWS alerts.

Prepares the alert to be sent to graceDB as ‘E’ events.

(task)gwcelery.tasks.external_triggers.handle_grb_gcn(payload)[source]

Handles the payload from Fermi, Swift, INTEGRAL, and AGILE MCAL GCN notices.

Filters out candidates likely to be noise. Creates external events from the notice if new notice, otherwise updates existing event. Then creates and/or grabs external sky map to be uploaded to the external event.

(task)gwcelery.tasks.external_triggers.handle_grb_lvalert(alert)[source]

Parse an LVAlert message related to superevents/GRB external triggers and dispatch it to other tasks.

Notes

This LVAlert message handler is triggered by creating a new superevent or GRB external trigger event, or a label associated with completeness of sky maps:

(task)gwcelery.tasks.external_triggers.handle_snews_lvalert(alert)[source]

Parse an LVAlert message related to superevents/SN external triggers and dispatch it to other tasks.

Notes

This LVAlert message handler is triggered by creating a new superevent or SN external trigger event: