OscProb
PMNS_NUNM.h
Go to the documentation of this file.
1
20
21#ifndef PMNS_NUNM_H
22#define PMNS_NUNM_H
23
24#include "Definitions.h"
25#include "PMNS_Fast.h"
26#include <Eigen/Dense>
27
28namespace OscProb {
29
30 class PMNS_NUNM : public PMNS_Fast {
31 public:
32 PMNS_NUNM(int scale = 0);
33 virtual ~PMNS_NUNM();
34
36 virtual void SetAlpha(int i, int j, double val,
37 double phase); // i, j between 0 and 2
38
40 virtual complexD GetAlpha(int i, int j);
41
43 void SetNUNM(double alpha_11, double alpha_21, double alpha_31,
44 double alpha_22, double alpha_32, double alpha_33);
45
46 // Set the diagonal real NUNM parameters
47 virtual void SetAlpha_11(double a);
48 virtual void SetAlpha_22(double a);
49 virtual void SetAlpha_33(double a);
50
51 // Set the off-diagonal complex NUNM parameters
52 virtual void SetAlpha_21(double a,
53 double phi);
54 virtual void SetAlpha_31(double a,
55 double phi);
56 virtual void SetAlpha_32(double a,
57 double phi);
58 virtual void SetFracVnc(double f);
59 virtual matrixD ProbMatrix(int nflvi, int nflvf);
60
61 virtual void SetIsOscProbAvg(bool isOscProbAvg)
62 {
63 fIsOscProbAvg = true;
64 }
65
66 protected:
67 virtual void UpdateHam();
68 virtual void Propagate();
69 virtual void PropagatePath(NuPath p);
72 void InitMatrix();
73
74 int fscale;
75 double fracVnc; // set fraction of matter potential affecting NC
77
78 Eigen::Matrix<std::complex<double>, 3, 3> X;
79 Eigen::Matrix<std::complex<double>, 3, 3> Alpha;
80 Eigen::Matrix<std::complex<double>, 3, 3> V;
81 Eigen::Matrix<std::complex<double>, 3, 3> Ham;
82 };
83
84} // namespace OscProb
85
86#endif
87
Implementation of oscillations of neutrinos in matter in a three-neutrino framework.
Definition: PMNS_Fast.h:40
bool fIsOscProbAvg
Flag to call OscProb default or Maltoni average.
Definition: PMNS_Maltoni.h:219
Implementation of oscillations of neutrinos in matter in a three-neutrino framework with Non unitary ...
Definition: PMNS_NUNM.h:30
virtual void SetAlpha_21(double a, double phi)
Set alpha_21 parameter.
Definition: PMNS_NUNM.cxx:203
virtual void SetFracVnc(double f)
Definition: PMNS_NUNM.cxx:240
void SetNUNM(double alpha_11, double alpha_21, double alpha_31, double alpha_22, double alpha_32, double alpha_33)
Set the NUNM parameters all at once.
Definition: PMNS_NUNM.cxx:59
virtual void SetAlpha_31(double a, double phi)
Set alpha_31 parameter.
Definition: PMNS_NUNM.cxx:215
PMNS_NUNM(int scale=0)
Constructor.
Definition: PMNS_NUNM.cxx:29
virtual void SetAlpha(int i, int j, double val, double phase)
Set any given NUNM parameter.
Definition: PMNS_NUNM.cxx:94
Eigen::Matrix< std::complex< double >, 3, 3 > Alpha
Definition: PMNS_NUNM.h:79
virtual void Propagate()
Definition: PMNS_NUNM.cxx:339
virtual matrixD ProbMatrix(int nflvi, int nflvf)
Definition: PMNS_NUNM.cxx:265
Eigen::Matrix< std::complex< double >, 3, 3 > Ham
Definition: PMNS_NUNM.h:81
virtual void SetAlpha_11(double a)
Set alpha_11 parameter.
Definition: PMNS_NUNM.cxx:169
virtual ~PMNS_NUNM()
Destructor.
Definition: PMNS_NUNM.cxx:43
virtual void PropagatePath(NuPath p)
Definition: PMNS_NUNM.cxx:353
Eigen::Matrix< std::complex< double >, 3, 3 > X
Definition: PMNS_NUNM.h:78
virtual void SetIsOscProbAvg(bool isOscProbAvg)
Deactivate Maltoni.
Definition: PMNS_NUNM.h:61
virtual void SetAlpha_32(double a, double phi)
Set alpha_32 parameter.
Definition: PMNS_NUNM.cxx:227
vectorC ApplyAlphaDagger(vectorC fState)
Definition: PMNS_NUNM.cxx:308
virtual void SetAlpha_22(double a)
Set alpha_22 parameter.
Definition: PMNS_NUNM.cxx:180
virtual complexD GetAlpha(int i, int j)
Get any given NUNM parameter.
Definition: PMNS_NUNM.cxx:140
vectorC fNuStateBuffer
Definition: PMNS_NUNM.h:76
virtual void UpdateHam()
Definition: PMNS_NUNM.cxx:389
virtual void SetAlpha_33(double a)
Set alpha_33 parameter.
Definition: PMNS_NUNM.cxx:191
Eigen::Matrix< std::complex< double >, 3, 3 > V
Definition: PMNS_NUNM.h:80
vectorC ApplyAlpha(vectorC fState)
Definition: PMNS_NUNM.cxx:324
Some useful general definitions.
Definition: Absorption.h:6
std::complex< double > complexD
Definition: Definitions.h:21
std::vector< complexD > vectorC
Definition: Definitions.h:22
std::vector< vectorD > matrixD
Definition: Definitions.h:19
A struct representing a neutrino path segment.
Definition: NuPath.h:34