All-Sky Scan¶
The all-sky scan is the core component of the time-integrated point source search. It tests every direction on the sky for evidence of a localized neutrino excess above the atmospheric background, using the unbinned likelihood framework described in The Likelihood.
Overview¶
The procedure can be summarized in four stages:
-
Per-pixel hypothesis testing: The sky is discretized into a HEALPix grid. At each pixel, the point-source likelihood is maximized over \(n_s\) and \(\gamma\), yielding a test statistic \(\mathrm{TS}\) that quantifies the evidence for a localized excess.
-
Local p-value conversion: Each pixel’s TS is converted to a pre-trial (local) p-value using the background TS distribution at that declination. This accounts for the declination dependence of the background and the TS distribution.
-
Trial correction: The pre-trial p-values must be corrected for the large number of independent hypothesis tests performed across the sky. This is done empirically by repeating the full scan on many RA-randomized pseudo-experiments and recording the most extreme pre-trial p-value in each scan.
-
Hotspot identification: The most significant pixels in the northern and southern hemispheres are reported with their trial-corrected p-values. If no significant excess is found, the result is consistent with the background-only hypothesis.
The remainder of this page describes each stage in detail.
Samples¶
We perform the all-sky scan independently for three sample configurations (Table 1).
| Configuration | Components | Notes |
|---|---|---|
| LT + DNNC | SLT + TLT + DNNC | Primary analysis result |
| LT | SLT + TLT | Tracks-only combined |
| DNNC | DNNC (IceMan) | Independent cascade sub-sample |
The LT + DNNC combination is the primary analysis result, combining the starting and throughgoing Lightning Tracks channels with DNN Cascades to maximize sensitivity across the full energy range and sky. The LT and DNNC scans serve as cross-checks.
For the combined LT + DNNC scan, the per-pixel likelihood is the product of the individual sample likelihoods with shared \(n_s\) and \(\gamma\), the signal distributed among components by relative acceptance, exactly as described in Combining Datasets. The scrambling configuration differs between components: SLT and TLT use RA-only randomization (appropriate for tracks), while DNNC uses Gaussian declination randomization (appropriate for cascades with degree-scale angular resolution). This per-component configuration is enforced at every stage of the scan—both during background trial generation and during per-pixel fitting—through a custom trial runner factory that wraps the standard multi-selection trial runner.
Sky Discretization¶
The sky is discretized using a HEALPix grid at resolution \(N_\mathrm{side} = 128\), corresponding to 196,608 equal-area pixels with a characteristic pixel spacing of approximately \(0.46°\). This resolution is standard across IceCube point source analyses and is sufficient given the angular resolution of the event samples: even the best-resolved tracks have median angular errors of \(\gtrsim 0.3°\), so the pixel spacing is comparable to or smaller than the PSF width.
The scan covers the declination range \(-80° < \delta < 80°\), yielding 193,584 pixels. The polar regions are excluded because the background TS distribution becomes poorly defined near the poles (vanishing solid angle per declination band, minimal event statistics). The hemisphere boundary is placed at \(\delta = -5°\), slightly south of the celestial equator, to keep the muon horizon region—where the track samples’ background conditions change most rapidly—entirely within the southern hemisphere. This yields 105,240 northern pixels (\(\delta > -5°\)) and 88,344 southern pixels (\(\delta < -5°\)). Hotspot identification, trial correction, and post-trial p-values are computed separately for each hemisphere.
The likelihood is evaluated at the center of each pixel, with the hypothesized source position \(\mathbf{x}_s\) set to the pixel center coordinates \((\alpha_\mathrm{pix}, \delta_\mathrm{pix})\).
Pixel Grid Effects¶
At \(N_\mathrm{side} = 128\), the worst-case angular offset between a true source position and the nearest pixel center is \({\sim}0.23° \times \sqrt{2} \approx 0.33°\), corresponding to a source located at the corner of four adjacent pixels. A finer grid at \(N_\mathrm{side} = 256\) (\(0.23°\) spacing) would reduce this worst case to \({\sim}0.16°\) but at \(4\times\) the computational cost for all trial generation stages (background trials per ring, background sky scans, and the data scan itself).
For the current analysis we adopt \(N_\mathrm{side} = 128\), consistent with IceCube precedent and commensurate with the angular resolution of the samples. The effect of pixelization on sensitivity is under investigation: injecting a point source at the worst-case position (pixel corner) versus the best-case position (pixel center) and comparing post-trial p-values will quantify the resolution loss and determine whether a finer grid offers meaningful benefit.
Per-Pixel Hypothesis Testing¶
At each pixel, the point-source likelihood is maximized over the free parameters \(n_s\) (signal strength) and \(\gamma\) (spectral index), subject to the constraint \(n_s \geq 0\). The test statistic
quantifies the evidence for a point source at that pixel’s position. Each pixel is an independent hypothesis test—the same data are reanalyzed with a different hypothesized source position, and the likelihood selects a different subset of nearby events via the declination band cut (see below).
Local p-Value Conversion¶
The raw TS value at each pixel is not directly comparable across declinations because the background TS distribution varies with declination—the event density, energy spectrum, and angular resolution all depend on \(\delta\). A TS of 15 at the celestial equator does not carry the same statistical significance as a TS of 15 near the pole.
To place all pixels on a common significance scale, we convert each pixel’s TS to a pre-trial p-value using the background TS distribution at that pixel’s declination. The pre-trial p-value is the probability of observing a TS at least as large as the observed value under the background-only hypothesis:
where \(F_\mathrm{TS}(\cdot \mid \delta)\) is the CDF of the background TS distribution at declination \(\delta\).
Why Not Interpolation?¶
The standard csky ts_to_p function converts TS values to p-values by interpolating between pre-computed declination nodes, using either \(\chi^2\) mixture model fits or empirical survival functions. Both approaches are problematic for the all-sky scan:
- \(\chi^2\) fits are unreliable, especially with signal subtraction enabled (see the signal subtraction investigation slides). Interpolating unreliable fits compounds the error.
- Empirical survival functions are step functions—interpolating between discrete survival functions at different declinations is not statistically well-defined.
- The TS distribution has fine declination structure in tracks that varies significantly even between adjacent HEALPix rings. This structure is real, not statistical noise: each ring’s TS distribution is based on \(10^6\) background trials, so the statistical uncertainty on the \(3\sigma\) TS threshold is negligible. Interpolation between declination nodes would smear out this structure, introducing systematic errors in the local p-values. Figure 1 illustrates this for several selections.
Moreover, ts_to_p always interpolates between its declination knots—the only way to recover the exact empirical survival function at a node is to pass a bit-identical floating-point value, in which case the interpolation trivially returns the knot value. Recovering exact node values requires the caller to guarantee bit-identical floating-point declinations—a fragile contract that is easy to violate silently. This motivated the integer-indexed approach described below.
RingIndexTsToP: Exact Per-Ring Matching¶
We replace the standard interpolation approach with RingIndexTsToP, a custom csky class that provides exact per-ring empirical survival functions with no interpolation, no silent \(\chi^2\) fallback, and no float-comparison ambiguity. A \(\chi^2\) fit is stored alongside each ring’s empirical survival function for diagnostic purposes but is never used in the conversion.
The method is straightforward:
-
Generate background trials at every HEALPix ring declination. At \(N_\mathrm{side} = 128\), there are 457 unique ring declinations spanning the scan range. For each ring, \(\sim 10^7\) RA-randomized background trials are generated at the ring’s central declination, producing an empirical TS distribution specific to that ring.
-
Build an empirical survival function per ring. Each ring’s background TS samples are sorted and stored as a lookup table. The survival function \(\mathrm{sf}(\mathrm{TS}) = P(\mathrm{TS}' \geq \mathrm{TS} \mid H_0)\) is computed by counting the fraction of background trials at or above the query TS value.
-
Convert pixels by integer ring index. During the scan, each pixel is mapped to its HEALPix ring index via
healpy.pix2ring—an integer operation with no floating-point ambiguity. The pixel’s TS is then evaluated against the exact survival function for that ring.
This design eliminates all sources of approximation in the TS-to-p conversion. Every pixel uses the empirical survival function built from background trials generated at precisely the same declination that the scan evaluates.
Pre-Trial vs. Post-Trial
The term “pre-trial” emphasizes that these p-values have not been corrected for the number of hypothesis tests performed. A pre-trial p-value of \(10^{-6}\) at a single pixel does not mean there is strong evidence for a source at that position—it means that, under the null hypothesis, a fluctuation this large or larger would occur at that specific pixel with probability \(10^{-6}\). Since we test \(\sim 2 \times 10^5\) pixels, we expect \(\sim 0.2\) pixels to reach this level by chance. Trial correction (described below) accounts for this multiplicity.
Trial Correction¶
The all-sky scan tests \(\sim 2 \times 10^5\) hypotheses simultaneously. Even under the background-only hypothesis, the most significant pixel will have a small pre-trial p-value simply by chance. Trial correction quantifies how extreme the observed hottest pixel is relative to what is expected from pure background fluctuations across the entire sky.
Method¶
We adopt the standard IceCube approach: an empirical trial correction based on the distribution of the maximum pre-trial significance across many background-only sky scans.
The procedure is:
- Generate many full background sky scans, each using independently RA-randomized data.
- For each scan, record the maximum \(-\log_{10}(p_\mathrm{pre})\) across all pixels. This yields one entry in the trial-correction distribution.
- The collection of maxima defines the distribution of the most extreme fluctuation expected under \(H_0\), fully accounting for pixel-to-pixel correlations induced by overlapping declination bands, shared events between neighboring pixels, and any other spatial structure in the scan.
The post-trial p-value of the observed hottest pixel is then:
which is estimated empirically as the fraction of background sky scans in which the hottest pixel is at least as significant as the observed one.
Hemisphere Split¶
As described in Sky Discretization, the scan is split into northern (\(\delta > -5°\)) and southern (\(\delta < -5°\)) hemispheres, each with its own trial-correction distribution. This accounts for the fundamentally different background conditions: the northern sky is dominated by atmospheric neutrinos, while the southern sky has substantial atmospheric muon contamination despite selection cuts. Combining both hemispheres into a single trial-correction distribution would allow the noisier southern sky to dilute the significance of genuine northern excesses (or vice versa).
In practice, each background sky scan contributes two values to the trial-correction distributions: the maximum \(-\log_{10}(p_\mathrm{pre})\) among northern pixels and the maximum among southern pixels. The observed data scan is then compared against the appropriate hemisphere-specific distribution.
Why Not Bonferroni or Sidak?¶
Analytic trial correction methods such as the Bonferroni correction (\(p_\mathrm{post} = N_\mathrm{trials} \times p_\mathrm{pre}\)) or the Sidak correction (\(p_\mathrm{post} = 1 - (1 - p_\mathrm{pre})^{N_\mathrm{trials}}\)) assume independent tests. In the all-sky scan, neighboring pixels share events and have correlated TS values, so the effective number of independent tests is much smaller than the number of pixels. Applying these corrections with \(N_\mathrm{trials} = N_\mathrm{pix}\) would be overly conservative. The empirical approach automatically accounts for all correlations without requiring an estimate of the effective number of independent tests.
Hotspot Identification¶
After the data scan and trial correction, the final results are:
-
A full-sky pre-trial significance map: the value \(-\log_{10}(p_\mathrm{pre})\) at every pixel, providing a visual summary of fluctuations across the entire sky.
-
The hottest northern pixel and hottest southern pixel, each characterized by:
- Sky coordinates \((\alpha, \delta)\)
- Fitted parameters \((\hat{n}_s, \hat{\gamma})\)
- Pre-trial p-value \(p_\mathrm{pre}\)
- Post-trial p-value \(p_\mathrm{post}\), computed from the hemisphere-specific trial-correction distribution
If neither hotspot achieves a post-trial p-value below a predefined threshold (typically \(p_\mathrm{post} < 0.05\) for evidence, \(p_\mathrm{post} < 2.87 \times 10^{-7}\) for discovery), the result is consistent with the background-only hypothesis.
Unblinding Plan¶
The unblinding procedure applies the full analysis pipeline to the real (unscrambled) data. Three independent all-sky scans are performed: LT + DNNC (the primary result), LT, and DNNC. The component scans serve as cross-checks.
For each scan, the hottest pixel in the northern hemisphere (\(\delta > -5°\)) and southern hemisphere (\(\delta < -5°\)) are reported separately with hemisphere-specific trial corrections. No additional trial factor of 2 is applied for the hemisphere split.
Trial statistics target: all empirical survival functions—both the per-ring local TS-to-p and the hemisphere trial-correction distributions—must contain at least 10 entries above the observed threshold. If the unblinded TS of either hemisphere’s hotspot exceeds the coverage of the local or trial-correction survival function, additional background trials or scans will be generated until the 10-entry criterion is met before computing the final post-trial p-value.
Deliverables: full real-data TS and pre-trial significance sky maps for all three samples, post-trial p-values for the hottest northern and southern spots in each sample. The same procedure is applied identically to all three samples.
Results¶
Background Diagnostics¶
The following plots are derived from the independent background sky scans and are shared across all mock unblindings.
Mock Unblindings¶
Each mock unblinding applies the full analysis pipeline—sky scan, local p-value conversion, trial correction, and hotspot identification—to an independently RA-randomized dataset. The scan selector allows browsing individual mock realizations.
Signal Injection Gallery¶
Work in Progress
The injection gallery currently uses only a single background and π⁰ injection seed. There is large scan-to-scan variance that is not yet covered. Additional seeds and KRA-γ (5 PeV and 50 PeV) template injections will be added soon.
The injection seeds between the samples are currently not synced. When switching between LT + DNNC and DNNC, for example, with π⁰ injected, the injected events are not the same. We plan to fix that.
The injection grid systematically probes the sky scan’s ability to recover injected signals. A custom point source is placed at various sky locations with a specified spectral index and flux level, scaled relative to the selection’s sensitivity at that declination. Optionally, a diffuse Galactic plane template (π⁰) and/or the NGC 1068 best-fit flux are overlaid.