magnus.oscprobstd
oscprobstd.py
Closed-form (non-Magnus) two- and three-neutrino oscillation probabilities, computed from the standard analytical expressions rather than from the Magnus expansion. Used by the test suite to validate oscprob.py’s Magnus-based results against an independent method, not intended as a general-purpose replacement for it (it does not cover matter with non-constant density, NSI, LIV, or more than three flavors).
Routine listings
osc_prob_2nu_vacuum_std - Returns 2nu vacuum probabilities, closed form
- osc_prob_2nu_matter_std - Returns 2nu constant-density matter
probabilities, closed form
delta - Kronecker delta
- J - Returns U*_ak * U_bk * U_aj * U*_bj, a building block of the
3nu vacuum probability
osc_prob_3nu_vacuum_std - Returns 3nu vacuum probabilities, closed form
Functions
|
Returns 2nu oscillation vacuum probabilities, std. computation. |
|
Returns 2nu oscillation matter probabilities, std. computation. |
|
Returns the Kronecker delta function. |
|
Returns U*_ak * U_bk * U_aj * U*_bj, with U the PMNS matrix. |
|
Returns 3nu oscillation vacuum probabilities, std. computation. |
Module Contents
- magnus.oscprobstd.osc_prob_2nu_vacuum_std(sth: float, Dm2: float, energy: float, L: float) numpy.ndarray[source]
Returns 2nu oscillation vacuum probabilities, std. computation.
Returns the probabilities for two-neutrino oscillations in vacuum, computed using the standard analytical expression of the probabilities.
Added in version 1.0.0.
- Parameters:
- Returns:
List of probabilities [Pee, Pem, Pme, Pmm].
- Return type:
np.ndarray
Examples
import numpy as np import magnus.globaldefs as gd from magnus import oscprobstd P = oscprobstd.osc_prob_2nu_vacuum_std( np.sqrt(0.308), 7.49e-5, 1.0*gd.UNIT_GEV, 1300.0*gd.UNIT_KM) print('P_ee = %.6f' % P[0][0])
P_ee = 0.987092
- magnus.oscprobstd.osc_prob_2nu_matter_std(sth: float, Dm2: float, VCC: float, energy: float, L: float) numpy.ndarray[source]
Returns 2nu oscillation matter probabilities, std. computation.
Returns the probabilities for two-neutrino oscillations in matter, computed using the standard analytical expression of the probabilities.
Added in version 1.0.0.
- Parameters:
- Returns:
List of probabilities [Pee, Pem, Pme, Pmm].
- Return type:
np.ndarray
Examples
import numpy as np import magnus.globaldefs as gd from magnus import oscprobstd P = oscprobstd.osc_prob_2nu_matter_std( np.sqrt(0.308), 7.49e-5, 1.0e-13, 1.0*gd.UNIT_GEV, 1300.0*gd.UNIT_KM) print('P_ee in matter = %.6f' % P[0][0])
P_ee in matter = 0.987421
- magnus.oscprobstd.delta(a: int, b: int) int[source]
Returns the Kronecker delta function.
Returns the delta function delta(a, b) = 1 if a == b and 0 if a != b.
Added in version 1.0.0.
- magnus.oscprobstd.J(U: list | numpy.ndarray, alpha: int, beta: int, k: int, j: int) complex[source]
Returns U*_ak * U_bk * U_aj * U*_bj, with U the PMNS matrix.
Returns the product U*_ak * U_bk * U_aj * U*_bj, where U is the PMNS mixing matrix. This product appears in the standard expression for the three-neutrino oscillation probability in vacuum.
Added in version 1.0.0.
- Parameters:
U (list or np.ndarray) – 3x3 PMNS complex mixing matrix.
alpha (int) – Index of the initial flavor (0: e, 1: mu, 2: tau).
beta (int) – Index of the final flavor (0: e, 1: mu, 2: tau).
k (int) – First index of the sum over mass eigenstates (k = 0, 1, 2).
j (int) – Second index of the sum over mass eigenstates (j = 0, 1, 2).
- Returns:
J(U, alpha, beta, k, j)
- Return type:
- magnus.oscprobstd.osc_prob_3nu_vacuum_std(U: list | numpy.ndarray, D21: float, D31: float, energy: float, L: float, nubar: bool | None = False) numpy.ndarray[source]
Returns 3nu oscillation vacuum probabilities, std. computation.
Returns the probabilities for three-neutrino oscillations in vacuum, computed using the standard analytical expression of the probabilities.
Added in version 1.0.0.
- Parameters:
U (list or np.ndarray) – 3x3 PMNS complex mixing matrix.
D21 (float) – Mass-squared difference \(\Delta m_{21}^2\).
D31 (float) – Mass-squared difference \(\Delta m_{31}^2\).
energy (float) – Neutrino energy.
L (float) – Baseline.
nubar (bool, optional) – If True, compute the probability for antineutrinos (flips the sign of the CP-violating term). Default: False.
- Returns:
List of probabilities [Pee, Pem, Pet, Pme, Pmm, Pmt, Pte, Ptm, Ptt].
- Return type:
np.ndarray