Neutrino Physics: snewpy.neutrino

This module implements basic neutrino properties that are used throughout SNEWPY.

class snewpy.neutrino.FourFlavorMixingParameters(theta12: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")], theta13: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")], theta23: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")], deltaCP: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")], dm21_2: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("eV2")], dm32_2: ~astropy.units.quantity.Quantity | None = None, dm31_2: ~astropy.units.quantity.Quantity | None = None, mass_order: ~snewpy.neutrino.MassHierarchy | None = None, theta14: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")] = <Quantity 0. deg>, theta24: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")] | None = <Quantity 0. deg>, theta34: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")] | None = <Quantity 0. deg>, delta12: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")] | None = <Quantity 0. deg>, delta24: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("deg")] | None = <Quantity 0. deg>, dm41_2: ~astropy.units.quantity.Annotated[~astropy.units.quantity.Quantity, Unit("eV2")] = <Quantity 0. eV2>, dm42_2: ~astropy.units.quantity.Quantity | None = None, dm43_2: ~astropy.units.quantity.Quantity | None = None)[source]

A class for four flavor neutrino mixing. ..Note: it is an extension of ThreeFlavorMixingParameters, and can be constructed using it:

>>> pars_3f = ThreeFlavorMixingParameters() #standard 3flavor mixing
>>> pars_4f = FourFlavorMixingParameters(**pars_3f, theta14=90<<u.deg, dm41_2=1<<u.GeV**2)
ComplexRotationMatrix(i, j, theta, phase)[source]

A complex rotation matrix. N.B. the minus sign in the complex exponential matches PDG convention

Pmf_HighDensityLimit()[source]

The probability that a given flavor state is a particular matter state in the infinite density limit. This method assumes the 4th matter state is the heaviest and that the electron fraction remains larger than 1/3

Returns:

8 x 8 matrix

VacuumMixingMatrix()[source]

The vacuum mixing matrix given the mixing parameters N.B. This is a 8 x 8 matrix

basis_flavor

alias of FourFlavor_FlavorBasis

basis_mass

alias of FourFlavor_MassBasis

get_mass_squared_differences()[source]

Mass squared differences .

Returns:

tuple – dm21_2, dm31_2, dm32_2, dm41_2, dm42_2, dm43_2.

get_mixing_angles()[source]

Mixing angles of the PMNS matrix.

Returns:

tuple – Angles theta12, theta13, theta23, theta14, theta24, theta34.

class snewpy.neutrino.MassHierarchy(value)[source]

Neutrino mass ordering: NORMAL or INVERTED.

classmethod derive_from_dm2(dm12_2, dm32_2, dm31_2)[source]

derive the mass hierarchy based on the given mass squared differences

class snewpy.neutrino.ThreeFlavorMixingParameters(theta12: Annotated[Quantity, Unit('deg')], theta13: Annotated[Quantity, Unit('deg')], theta23: Annotated[Quantity, Unit('deg')], deltaCP: Annotated[Quantity, Unit('deg')], dm21_2: Annotated[Quantity, Unit('eV2')], dm32_2: Quantity | None = None, dm31_2: Quantity | None = None, mass_order: MassHierarchy | None = None)[source]

Mixing angles and mass differences, assuming three neutrino flavors. This class contains the default values used throughout SNEWPY, which are based on NuFIT 6.0 results from September 2024, published in JHEP 12 (2024) 216 [arXiv:2410.05380].

ComplexRotationMatrix(i, j, theta, phase)[source]

A complex rotation matrix. N.B. the minus sign in the complex exponential matches PDG convention

Pmf_HighDensityLimit()[source]

The probability that a given flavor state is a particular matter state in the infinite density limit.

Returns:

6 x 6 matrix

VacuumMixingMatrix()[source]

The vacuum mixing matrix given the mixing paramters N.B. This is a 6 x 6 matrix

basis_flavor

alias of ThreeFlavor_FlavorBasis

basis_mass

alias of ThreeFlavor_MassBasis

get_mass_squared_differences()[source]

Mass squared differences .

Returns:

tuple – dm21_2, dm31_2, dm32_2.

get_mixing_angles()[source]

Mixing angles of the PMNS matrix.

Returns:

tuple – Angles theta12, theta13, theta23.

update(**parameters)[source]

Update the parameters which are provided in the input arguments. Ignore the input parameters, which are not present in this class.