Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Testing Lorentz invariance violation with the Pierre Auger fluorescence-detector data

Nickolay S. Martynenko 1, 2, *, Grigory I. Rubtsov 2, Petr S. Satunin 2, 1, 3, Andrey K. Sharofeev 1, 2, Sergey V. Troitsky 2, 1

1 Lomonosov Moscow State University, 1-2 Leninskie Gory, Moscow 119991, Russia
2 Institute for Nuclear Research of the Russian Academy of Sciences, 60th October Anniversary Prospect 7a, Moscow 117312, Russia
3 Branch of Lomonosov Moscow State University in Sarov, Parkovaya 2, Sarov 607328, Russia
* Corresponding author: martynenko@inr.ac.ru

Public NumPy data products for the study Constraining Lorentz invariance violation from the depth of air-shower maximum.

This repository provides processed simulation tables, forward-folded probability tables, and likelihood-scan outputs for a toy-model sensitivity study of subluminal photon-sector Lorentz invariance violation (LIV) using Pierre Auger fluorescence-detector reconstructed shower-maximum distributions.

Large files are stored with GitHub LFS under data/.

Requirements

To work with the datasets, you will need:

  • Git LFS — for downloading large NumPy files.
  • Python 3 (recommended: 3.12.7) — for running the demo script.
  • NumPy (recommended: 2.4.4) — for handling the structured data.

Files

File Content
data/dataset.npy Preprocessed CONEX shower table and Gaisser–Hillas fit results
data/binned_probas.npz Forward-folded Auger-bin probabilities
data/likelihood_ratio_test.npy Likelihood-ratio scan and mock calibration

data/dataset.npy

Load:

import numpy as np
dataset = np.load("data/dataset.npy").view(np.recarray)

Schema:

dataset: (414720,)

event:
  epsilon  (414720,)       true primary energy variable
  Y        (414720,)       mass variable, ln(A)
  eta      (414720,)       LIV-scale variable
  zeta     (414720,)       combined energy–mass–LIV variable

profile:
  depth    (414720, 200)   slant depth [g cm^-2]
  e_dep    (414720, 200)   deposited energy [GeV g^-1 cm^2]

fit_inputs:
  fluctuated_e_dep  (414720, 200)   fluctuated deposited energy [GeV g^-1 cm^2]
  sqroot_var_e_dep  (414720, 200)   square root of profile-point variance [GeV g^-1 cm^2]

fit_outputs:
  epsilon_cal  (414720,)   fitted calorimetric-energy variable
  depth_max    (414720,)   fitted shower maximum [g cm^-2]
  shape_r      (414720,)   fitted Gaisser–Hillas shape parameter R
  shape_l      (414720,)   fitted Gaisser–Hillas shape parameter L [g cm^-2]
  success      (414720,)   fit convergence flag

data/binned_probas.npz

Load:

import numpy as np
binned = np.load("data/binned_probas.npz")

Contents:

eta: (2002,)
  tested LIV-scale grid
  eta[-1] = +∞ is the Lorentz-invariant limit

Y: (4,)
  fitted mass-group grid: H(1,1), He(4,2), N(14, 7), Fe(56,26)

depth_max_reco_bins: (100,)
  left   (100,)   Xmax,reco bin left edges [g cm^-2]
  right  (100,)   Xmax,reco bin right edges [g cm^-2]

epsilon_reco_bins: (20,)
  left   (20,)   epsilon_reco bin left edges
  right  (20,)   epsilon_reco bin right edges
  slope  (20,)   local power-law slope inside the bin

counts: (20, 100)
  Auger binned Xmax,reco counts

probas: (2002, 20, 4, 100)
  val              forward-folded bin probabilities
  err.model        model uncertainty
  err.detector     detector-response uncertainty
  err.integration  numerical-integration uncertainty
  err.total        total uncertainty

data/likelihood_ratio_test.npy

Load:

import numpy as np
scan = np.load("data/likelihood_ratio_test.npy").view(np.recarray)

Schema:

scan: (201,)

eta: (201,)
  tested LIV-scale grid

hat_F: (201, 20, 4)
  fitted composition fractions

D_obs: (201,)
  observed likelihood-ratio statistic

D_mock: (201, 10000)
  mock-data-set statistic values

p_value:
  val       (201,)   calibrated p-value
  err       (201,)   estimated p-value uncertainty
  reliable  (201,)   reliability flag (if `False`,
                     the p-value is saturated by the
                     finite mock sample: no mock data
                     set generated under the tested
                     LIV hypothesis produced a statistic
                     at least as large as the observed one)

Physics scope

The analysis tests subluminal photon-sector LIV through its effect on electromagnetic shower development. Suppressed Bethe–Heitler pair production modifies the longitudinal shower profile and the reconstructed-energy response. The reported result should be interpreted as a toy-model shower-maximum-based sensitivity estimate, not as a full detector-level experimental limit.

Citation

If you use these data products, cite:

@article{Martynenko2026LIVAugerFD,
  title         = {Constraining Lorentz invariance violation 
                   from the depth of air-shower maximum},
  author        = {Martynenko, Nickolay S. and 
                   Rubtsov, Grigory I. and 
                   Satunin, Petr S. and 
                   Sharofeev, Andrey K. and 
                   Troitsky, Sergey V.},
  year          = {2026},
  eprint        = {2608.05106},
  archivePrefix = {arXiv},
  reportNumber  = {INR-TH-2026-007},
  note          = {16 pages, 4 figures. Submitted to Physical Review D}
}

License

MIT License, see LICENSE