top of page

Project Introduction

This project explores the fascinating world of neutrino oscillations, focusing on a three-flavor neutrino oscillation model. Neutrinos, which come in electron, muon, and tau flavors, oscillate from one flavor to another as they travel through space. The goal is to understand these oscillations by fitting the observed data to theoretical models.

Project Structure

This project is structured into four key components.

​

  • PMNS Matrix Class​

    • Develops the foundational class handling neutrino properties and their interactions within the PMNS framework.

  • Neutrino Oscillations

    • Focuses on modeling and calculating the probabilities of neutrino flavor transitions over distance and time.​

  • Neutrino Flux and Cross-Section Data Analysis

    • Involves analyzing the distribution and interaction probabilities of neutrinos to understand their behavior and detect their presence.​

  • Fitting Neutrino Oscillation Parameters

    • ​Utilizes statistical methods to adjust model parameters for the best fit to experimental data, refining our understanding of neutrino oscillations.​

​

Each section builds on the previous, creating a comprehensive framework for neutrino physics analysis.

PMNS Matrix Class

This code snippet defines a Python class PMNS dedicated to computing the oscillation probabilities of neutrinos, a fundamental aspect of neutrino physics. The class leverages the arbitrary precision capabilities of mpmath to handle complex calculations that demand high numerical accuracy. Users can specify parameters of the PMNS matrix, which encapsulates the flavor mixing of neutrinos. Functions within the class, such as calcOsc_E, allow for the calculation of oscillation probabilities based on neutrino energy (E) and travel distance (L), providing essential insights for experiments and theoretical studies in particle physics.

Neutrino Oscillations

In the first part of the project, we delve into the fascinating world of neutrino oscillations. Neutrino oscillation is the phenomenon where these neutrinos spontaneously change from one flavor to another as they propagate through space.

 

We explore the theory behind neutrino oscillations using the Pontecorvo-Maki-Nakagawa-Sakata (PMNS) matrix, which describes how these flavor transformations occur. By adjusting parameters such as the mixing angles and mass splittings, we calculate the oscillation probabilities and visualize how the neutrino flavor composition changes with respect to energy. This allows us to gain insights into the fundamental properties of neutrinos.

​

  •  Setting Up PMNS Parameters:

We start by initializing a PMNS instance and setting parameters for the delta CP (the CP violation phase) and the mass ordering (normal or inverted).

​

​

​

​

​

​

​

 

Output:

​

​

​

​

​

​

​

  •  Calculation of Neutrino Oscillation Probabilities:

We calculate the oscillation probabilities for a muon neutrino changing into an electron neutrino

(νμ → νe) as a function of the ratio of the distance traveled (L) to the neutrino energy (E), which is a crucial parameter in neutrino experiments.

​

The calculated probabilities are plotted to visualize how they change concerning L/E.

​

​

​

​

​

​

​

​

​

​

  •  Exploring the One-Mass Scale Approximation:

We explore the one-mass scale approximation by assuming that two of the mass-squared differences (δm12 and δm13) are approximately equal. We recalculate and visualize the oscillation probabilities.

​

​

​

​

​

​

​

​

​

  •  T2K Neutrino Beam Energy Spectrum:

We focus on the T2K experiment, with a baseline of 295 km and an off-axis neutrino beam with a peak energy of 0.6 GeV. The oscillation probabilities are calculated as a function of neutrino energy (E) and plotted.

​

​

​​

​

​

​

​

​

​

​

​

​

  •  T2K Baseline vs. Probability:

We explore how the oscillation probability changes with the baseline (L) at a fixed neutrino energy (0.6 GeV). This analysis helps us understand the dependence of neutrino oscillation on the distance traveled.

​

​

​

​

​

​

​

​

​

​

​

​

​

  •  DUNE Neutrino Beam Energy Spectrum:

We shift our focus to the Deep Underground Neutrino Experiment (DUNE) with a 1300 km baseline and a higher peak neutrino energy of 2.5 GeV. We calculate and visualize the oscillation probabilities.

​

​

​

​

​

​

​

​

​

​

​

​

  •  Investigating Non-Zero CP Violation Phase:

We explore the effect of a non-zero CP violation phase on the oscillation probabilities. The probabilities are calculated and compared for both the normal and the CP conjugate cases, highlighting the impact of CP violation.

​

​

​

​

​

​

​

​

​

​

​

​

​

​

  •  Unity PMNS Matrix:

In the absence of complex PMNS matrix elements, we investigate the oscillation probabilities with a unity PMNS matrix. This scenario serves as a reference for no CP violation.

​

​

​

​

​

​

​

​

​

​

​

​

 

 

 

Throughout this section, we use Python and the PMNS matrix to simulate and visualize how neutrino oscillation phenomena change based on different parameters and experimental setups. These calculations are vital for understanding neutrino oscillation and designing experiments to measure neutrino properties accurately.

oscillation1.png
oscillation3.png
oscillation 4.png
oscillation5.png
oscillation6.png

Neutrino Flux and Cross-Section Data Analysis

The second part of the project focuses on neutrino-nucleon interactions. To understand these interactions, we examine the cross-section, a fundamental quantity that measures the probability of a neutrino colliding with a nucleon.

​

We utilize data on the energy-dependent cross-section to gain insights into the strength of these interactions as a function of neutrino energy. By plotting the cross-section, we can visualize how it varies across different energy ranges, providing critical information for understanding the likelihood of neutrino interactions with matter.

​

Here's a breakdown of the code:

​​

  •  Initialization:

We begin by importing the required libraries, and we set some normalization constants for the flux and cross-section data.

​

​

​

​

 

  •  Flux Data:

We define an array Flux representing the neutrino flux as a function of energy. This data models the neutrino count per energy unit for the ND280 detector, specifically for muon neutrinos. The E array represents the corresponding energy values.

​

​

​

​

​

​

​

​

​

  •  Flux Data Visualization:

We create a plot of the neutrino flux data as a function of energy. This provides a visual representation of the neutrino flux for different energy levels.

​

​

​

​

Output:

​

​

​

​

​

​

 

​

​

​

​

​

​

  •  Cross-Section Data:

We define an array representing the neutrino-nucleon cross-section data as a function of energy. This data models the probability of neutrinos interacting with nucleons at different energy levels. The 'e' array represents the corresponding energy values.

​

​

​

​

​

​

​

​

​

​

​

  •  Cross-Section Data Visualization:

We create a plot of the neutrino-nucleon cross-section data as a function of energy. This provides a visual representation of how the cross-section varies with energy.

​

​

​

​

​

Output:

 

​

​

​

fit2.png
cross2.png

Fitting Neutrino Oscillation Parameter

In the final part of the project, we bring together the knowledge from neutrino oscillations and cross-sections. We use a neutrino oscillation model to predict the mean number of events at a detector, considering the distance between the neutrino source and the detector, the flux of neutrinos, and their energy.

 

To add a layer of realism, we incorporate statistical fluctuations by generating pseudo-experimental data using a Poisson distribution. With this data in hand, we perform a fit to determine how well the neutrino oscillation model aligns with the observed events. This allows us to extract valuable information about the oscillation parameters, ultimately shedding light on the properties of neutrinos.

​

  • The Neutrino Oscillation Model:

Neutrino oscillations are described by the PMNS (Pontecorvo-Maki-Nakagawa-Sakata) matrix, which introduces parameters such as mixing angles and mass differences. The 3-flavor neutrino oscillation probability is calculated as a function of neutrino energy and distance traveled.

​

In this section, two different values for the mixing angle are considered: the standard value from the Particle Data Group (PDG) and an alternative, slightly larger value. The oscillation probabilities are plotted as a function of neutrino energy, showing how the mixing angle affects the energy spectrum.

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

  •  Unoscillated Flux and Cross-Section Models:

To measure neutrino oscillation probabilities, one needs an unoscillated flux model, target volume information, and a cross-section model. The project uses a fixed neutrino flux model provided by T2K, given in units of flux per Protons on Target (POT).

 

The cross-section, which measures the probability of neutrino-nucleon interactions, is also considered. These models are visualized, providing essential data for predicting the number of detected events.

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​​

  •  Calculating Mean Predictions for the Far Detector (FD):

With the unoscillated flux model, cross-section data, and oscillation parameters, the project calculates the mean predictions for the FD. These predictions are made as a function of neutrino energy, considering the distance between the neutrino source and the FD, the flux of neutrinos, and their energy.

​

This analysis provides a baseline prediction for the number of events expected at the FD. The results are visualized, showing how the prediction varies with energy.

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

Output:

​

​

​

​

​

​

​

​

​

​

​

​

​

​

  •  Incorporating Statistical Fluctuations:

In reality, observations fluctuate around the mean prediction. To account for these fluctuations, the project uses a Poisson distribution to generate pseudo-experimental data. The Poisson distribution simulates random sampling around the mean prediction.

 

The section concludes by plotting the observed events at the FD, taking into account the statistical errors associated with the Poisson distribution.​

​

​

​

​

​

​

​

​

​

​​​

​

​

 

Output:

​

​

​

​

​

​

​

​

​

​

​

​

​
Fitting Neutrino Oscillation Parameters with Bayesian Inference

The journey to unveil the intricacies of neutrino oscillations continues by employing Bayesian inference techniques. In this endeavor, PyMC3, a probabilistic programming library, is leveraged to fit the observed data to the PMNS (Pontecorvo-Maki-Nakagawa-Sakata) model.

 

This three-flavor neutrino oscillation model provides a probabilistic framework to describe how neutrinos of one flavor transform into another as they travel through space.

​

  •  Creating a New PMNS Instance:

Before delving into Bayesian modeling, a new instance of the PMNS class is generated. This instance is vital for exploring how variations in two essential parameters, influence the predicted energy spectrum.

​​

To streamline the Bayesian modeling process, utility functions are introduced: GetVectorMeans

​

This function calculates the predicted mean energy spectrum based on given values of Θ23 and Δm32. Notably, it is annotated with 'as_op', allowing it to be incorporated as a deterministic variable within the PyMC3 model.

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

  •  Constructing the Bayesian Model

With the necessary components in place, a Bayesian model is thoughtfully constructed to fit the observed data. The model follows these key steps:

 

​1. Prior Distributions:

Priors are established for the parameters of interest:

theta_p: A prior distribution for the mixing angle Θ23 with a uniform distribution over a defined range.

dm32_p: A prior distribution for Δm32 with a specified uniform distribution.

​

2. Likelihood Function:

A likelihood function is defined using a Poisson distribution, labeled as y. This likelihood relates the observed data to the predicted outcomes based on the PMNS model, with Θ23 and Δm32 as parameters.

​

3. Sampling:

The model is instantiated, and a Metropolis sampler is employed to draw posterior samples. The results are stored in a trace.

​

​

​

​

​

​

​

​

​

​

  •  Visualizing the Results

Following the Bayesian modeling phase, the focus shifts to visualizing the outcomes:

​

1. Trace Plot:

The trace of the Markov Chain Monte Carlo (MCMC) samples for Θ23 and Δm32 is elegantly presented using the arviz library.

​

​

 

 

 

 

 

 

 

 

2. Pair Plot:

A pair plot is crafted to provide an intuitive glimpse into the joint distribution of the model parameters, shedding light on their interdependencies.

​

​

​

​

​

​

​

​

​

​

​

​

​

3. Histogram:

A histogram showcasing the distribution of Δm32 is thoughtfully designed. This histogram incorporates lines indicating the mean and the 2.5th and 97.5th percentiles, offering a clear understanding of the parameter's uncertainty.

​

​

​

​

​

​

​

​

​

​

​

​

​

​

 

To round off this segment, the project offers the mean and credible intervals for Δm32. These statistics serve as a concise and informative summary of the Bayesian parameter fitting process, empowering scientists and researchers to better grasp the complexities of neutrino oscillation phenomena.

fit1.png
fit2.png
fit3.png
fit4.png
fit5.png
fit6.png
fit7.png
fit8.png
bottom of page