13#ifndef PMNS_DensityMatrix_H
14#define PMNS_DensityMatrix_H
42 virtual double P(
int flv);
virtual matrixD ProbMatrix(int nflvi, int nflvf)
Compute the probability matrix.
Base class for methods based on density matrices.
virtual void SetPureState(vectorC nu_in)
Set the density matrix from a pure state.
virtual void ResetToFlavour(int flv)
Reset neutrino state to pure flavour flv.
PMNS_DensityMatrix()
Constructor.
virtual void RotateState(bool to_basis, matrixC U)
Rotate rho to/from a given basis.
virtual ~PMNS_DensityMatrix()
Destructor.
virtual matrixD ProbMatrix(int nflvi, int nflvf)
matrixC fMBuffer
Some memory buffer for matrix operations.
virtual double P(int flv)
Return the probability of final state in flavour flv.
virtual void PropagatePath(NuPath p)=0
Propagate neutrino through a single path.
virtual void SetInitialRho(matrixC rho_in)
Set the density matrix from an arbitrary state.
matrixC fRho
The neutrino density matrix state.
Implementation of oscillations of neutrinos in matter in a three-neutrino framework.
Some useful general definitions.
std::vector< complexD > vectorC
std::vector< vectorD > matrixD
std::vector< vectorC > matrixC
A struct representing a neutrino path segment.