OscProb
PMNS_DensityMatrix.h
Go to the documentation of this file.
1
12
13#ifndef PMNS_DensityMatrix_H
14#define PMNS_DensityMatrix_H
15
16#include "PMNS_Fast.h"
17
18namespace OscProb {
19
21 public:
23 virtual ~PMNS_DensityMatrix();
24
27 virtual matrixD ProbMatrix(int nflvi, int nflvf);
28
29 protected:
30 // Resetting and propagating
32 virtual void ResetToFlavour(int flv);
34 virtual void SetPureState(vectorC nu_in);
36 virtual void SetInitialRho(matrixC rho_in);
37
39 virtual void PropagatePath(NuPath p) = 0;
40
42 virtual double P(int flv);
43
45 virtual void RotateState(bool to_basis, matrixC U);
46
48
50 };
51
52} // namespace OscProb
53
54#endif
55
virtual matrixD ProbMatrix(int nflvi, int nflvf)
Compute the probability matrix.
Definition: PMNS_Base.cxx:1387
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.
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.
Definition: PMNS_Fast.h:40
Some useful general definitions.
Definition: Absorption.h:6
std::vector< complexD > vectorC
Definition: Definitions.h:22
std::vector< vectorD > matrixD
Definition: Definitions.h:19
std::vector< vectorC > matrixC
Definition: Definitions.h:23
A struct representing a neutrino path segment.
Definition: NuPath.h:34