Listening for events…

Cosmic-Messenger v2 — Directional Cross-Match

Status: BUILT 2026-06-15 (Mike) · Owner: Mike + Claude (engine room) Parent: the cosmic-messenger trio scope docs (scope-gravitational-wave-eventdex.md, scope-uhecr-eventdex.md, scope-neutrino-eventdex.md), each of which deferred its real sweep to this shared v2.

The three cosmic-messenger Eventdex kinds (gw, uhecr, neutrino) all ship catalog-only: each slot holds the event's own reconstruction, and the per-kind sweep is empty because no terrestrial sensor can see an extragalactic source. Their real sweep is not terrestrial, it is each other — the multi-messenger question of whether different messengers point at the same place on the sky, and at the same time. This module is that cross-match.

What it does

For every pair of cosmic-messenger events that carry a point arrival direction, compute the great-circle angular separation on the sky and the time separation, and flag the pairs that fall within a directional threshold (and, more strongly, within a directional and temporal window).

The marquee precedent: IceCube-170922A, a neutrino that arrived pointing at the blazar TXS 0506+056 while it was flaring in 2017, the first single neutrino tied to a likely source.

Who participates (verified 2026-06-15)

  • neutrino — 348/348 events have RA/Dec (+ asymmetric error). Full directional.
  • uhecr — 99/109 have RA/Dec (Auger angular resolution ~1 deg). Full directional.
  • gw — HELD OUT. 0/431 GW events have a point direction: a gravitational-wave localization is a large probability region on the sky (tens to thousands of square degrees), not a point. GW can only join this cross-match once its healpix skymaps are fetched and matched as regions, which is the separately-deferred GW v2 skymap sweep. Until then GW is honestly excluded (a temporal-only coincidence with no direction would be pure noise).

So v1 is the neutrino x uhecr directional cross-match, plus same-kind self-clustering (anisotropy) which the identical machinery yields for free.

Method + frozen settings

  • Angular separation: great-circle (spherical law of cosines) between RA/Dec, in degrees.
  • Primary threshold: THETA_DEG = 3.0. Sensitivity sweep: 1, 3, 5 deg (reported together, so no single threshold is load-bearing).
  • Spacetime window: DT_DAYS = 14.0. A pair within the angular threshold AND within 14 days is flagged spacetime_coincident — the physically interesting, much rarer case.
  • Honesty about chance: at a few degrees over the whole sky the random-coincidence rate is not small. The catalog reports the random expectation at each threshold (N_a * N_b * (1 - cos theta) / 2) next to the observed count, so a directional-only excess is never read as a signal when it is consistent with chance.

Output

data/event_storehouse/cosmic_coincidences.json — the cross-match catalog: directional-event counts per kind, the sensitivity table (observed vs random at each threshold), every pair within the primary threshold (sorted by separation), and the spacetime-coincident subset. Decoupled from the per-kind dossiers (which keep their deferred-v2-directional marker) so a per-kind live re-sweep never races it. Refreshed by a daily scheduler job (cosmic_messenger) as new neutrino/uhecr events arrive.

First result (2026-06-15) — an honest null plus a real clustering signal

  • Cross-messenger (neutrino x uhecr) directional correlation: NULL. Observed pair counts are at or below the random expectation at every threshold (3 deg: 13 observed vs ~24 expected by chance; 5 deg: 47 vs ~66). No evidence of a neutrino-UHECR directional association in this data.
  • One spacetime coincidence (<=3 deg and <=14 d): it is same-kind, two gold neutrinos (IC220627A x IC220629A) 1.9 deg and 2.25 days apart, a neutrino self-clustering candidate, not a multi-messenger pair.
  • TXS 0506+056 direction: IceCube-170922A has two other gold neutrinos within 3 deg (IC160104A, IC180123A) over months-to-years, neutrino self-clustering around the known TXS source direction, echoing IceCube's own result that TXS is a neutrino source. No UHECR neighbour.

The cross-messenger null is a finding, not a failure: at these catalog sizes and the whole-sky chance rate, the trio's directional correlation is consistent with isotropy. The clustering around TXS is the real astrophysics the machinery surfaces.

Follow-ups (noted, not v1)

  • GW v2 skymap sweep — fetch the per-event healpix localizations so GW joins the cross-match as a region (point-in-region tests against neutrino/uhecr directions). This is the biggest unlock.
  • Wire coincidences into dossiers — stamp each event's coincidences into its slot (per-kind build_dossier reads this catalog) so the slot accretes the result, durably across re-sweeps.
  • Same-kind anisotropy significance — a proper p-value (sky-scramble / isotropic Monte Carlo) for the neutrino self-clustering, rather than the random-expectation comparison alone.
Live Feed