gwcelery.tasks.superevents module
Superevents are a new abstraction of gravitational-wave candidates
introduced in the third LIGO/Virgo observing (O3). Each superevent is
intended to represent a single astrophysical event. A superevent
consists of one or more event candidates, possibly from different
pipelines, that are neighbors in gpstime
. One event belonging
to the superevent is identified as the preferred event.
Flow Chart
The flow chart below illustrates the decision process for selection of the
preferred event.
digraph superevents {
compound = true
nodesep = 0.1
ranksep = 0.5
node [
fillcolor = white
shape = box
style = filled
target = "_top"
]
graph [
labeljust = "left"
style = filled
target = "_top"
]
lvalert [
label = "LVAlert\nmessage"
style = rounded
]
subgraph cluster_handle {
href = "../gwcelery.tasks.superevents.html#gwcelery.tasks.superevents.handle"
label = <<B><FONT face="monospace">handle</FONT></B>>
far_check [
label = "FAR <\nthreshold?"
shape = diamond
]
fetch_superevents [
label = "Fetch superevents\nwith nearby trigger\ntimes from GraceDb"
]
{
rank = same
associated_superevent [
label = "Event intersects\nany superevent\nwindow?"
shape = diamond
]
create_superevent [
label = "Create\nsuperevent"
]
}
{
rank = same
preferred_event_multi_ifo [
label = "Preferred event\n#detectors > 1"
shape = diamond
]
new_event_multi_ifo [
label = "New event\n#detectors > 1"
shape = diamond
]
}
{
rank = same
d1 [
label="New event\npreferred"
]
d2 [
shape=point
margin = "3.20,0.05"
]
}
add_to_superevent [
label = "Add to\nsuperevent"
]
{
rank = same
group_tie [
label = "New event group\n= preferred event\ngroup?"
shape = diamond
]
cbc_preferred [
label = "CBC is\npreferred"
]
}
cbc_burst [
label = "Tie between\nCBC or Burst?"
shape = diamond
]
far_tie_breaker [
label = "FAR <\npreferred event\nFAR?"
shape = diamond
]
snr_tie_breaker [
label = "SNR >\npreferred event\nSNR?"
shape = diamond
]
set_preferred [label = "Set as preferred event"]
}
lvalert -> far_check [
label = "proceed if new\ntype alert"
lhead = cluster_handle
]
far_check -> fetch_superevents [label = Yes]
fetch_superevents -> associated_superevent
associated_superevent -> create_superevent [label = No]
associated_superevent -> add_to_superevent [label = Yes]
add_to_superevent -> preferred_event_multi_ifo
add_to_superevent -> new_event_multi_ifo
new_event_multi_ifo -> d1 [label = Yes]
preferred_event_multi_ifo -> d1 [label = No]
d1 -> set_preferred
new_event_multi_ifo -> d2 [label = Yes]
preferred_event_multi_ifo -> d2 [label = Yes]
d2 -> group_tie
group_tie -> cbc_preferred [label = No]
group_tie -> cbc_burst [label = Yes]
cbc_burst -> snr_tie_breaker [label = CBC]
cbc_burst -> far_tie_breaker [label = Burst]
far_tie_breaker -> set_preferred [label = Yes]
snr_tie_breaker -> set_preferred [label = Yes]
}
Tasks
Module containing the functionality for creation and management of
superevents.
There is serial processing of triggers from low latency
pipelines.
Dedicated superevent queue for this purpose.
Primary logic to respond to low latency triggers contained
in handle()
function.
(task) gwcelery.tasks.superevents.
handle
( payload ) [source]
LVAlert handler for superevent manager.
Recieves payload from test and production nodes and
serially processes them to create/modify superevents
gwcelery.tasks.superevents.
get_instruments
( event_info ) [source]
Get the participating instruments from the lvalert packet
Parameters: event_info (dict ) – Dictionary storing event information
Returns: The set of instruments that contributed to the ranking statistic for
the event.
Return type: set
Notes
The number of instruments that contributed data to an event is given by
the instruments
key of the GraceDB event JSON structure. However, some
pipelines (e.g. gstlal) have a distinction between which instruments
contributed data and which were considered in the ranking of the
candidate. For such pipelines, we infer which pipelines contributed to the
ranking by counting only the SingleInspiral records for which the chi
squared field is non-empty.
gwcelery.tasks.superevents.
should_publish
( event_info ) [source]
Determine whether an event should be published as a public alert.