OscProb
PMNS_OQS.h
Go to the documentation of this file.
1
18
19#ifndef PMNS_OQS_H
20#define PMNS_OQS_H
21
22#include <Eigen/Core>
23
24#include "PMNS_DensityMatrix.h"
25
26namespace OscProb {
27
29 public:
30 PMNS_OQS();
31 virtual ~PMNS_OQS();
32
34 static constexpr int SU3_DIM = 9;
35
38 virtual void SetPower(int n);
40 virtual void SetDecoElement(int i, double val);
42 virtual void SetDecoAngle(int i, int j, double th);
43
45 virtual int GetPower();
47 virtual double GetDecoElement(int i);
49 virtual double GetDecoAngle(int i, int j);
50
52 virtual double GetHGM(int i, int j);
54 virtual double GetDissipatorElement(int i, int j);
55
57 virtual void SetIsNuBar(bool isNuBar);
59 virtual matrixD ProbMatrix(int nflvi, int nflvf);
60
61 protected:
63 virtual void BuildHms();
65 virtual void BuildHVMB(NuPath p);
66
68 virtual void BuildHGM(NuPath p);
70 virtual void BuildDissipator();
72 virtual void BuildM(NuPath p);
73
75 virtual void RotateState(bool to_mass);
77 virtual void BuildR();
79 virtual void UpdateRho();
80
82 virtual void Propagate();
84 virtual void PropagatePath(NuPath p);
85
86 int fPower;
89
96
97 Eigen::MatrixXd fM;
98
100 };
101
102} // namespace OscProb
103
104#endif
105
Base class for methods based on density matrices.
Implements neutrino oscillations using an open quantum system approach.
Definition: PMNS_OQS.h:28
int fPower
Power-law index (n).
Definition: PMNS_OQS.h:86
matrixD fHGM
Effective Hamiltonian in GMB (9x9).
Definition: PMNS_OQS.h:94
vectorD fa
Dissipator parameters |a_i|.
Definition: PMNS_OQS.h:87
vectorD fR
Initial state of density matrix in Gell-Mann basis.
Definition: PMNS_OQS.h:90
virtual int GetPower()
Get the currently set power-law index for decoherence parameters.
Definition: PMNS_OQS.cxx:95
virtual void SetDecoAngle(int i, int j, double th)
Set mixing angle between two decoherence parameters a_i, a_j.
Definition: PMNS_OQS.cxx:75
virtual void SetDecoElement(int i, double val)
Set value of the a_i decoherence element in Gell-Mann basis.
Definition: PMNS_OQS.cxx:58
bool fBuiltDissipator
Flag to rebuild dissipator.
Definition: PMNS_OQS.h:99
virtual matrixD ProbMatrix(int nflvi, int nflvf)
Reimplemented from PMNS_DensityMatrix.
Definition: PMNS_OQS.cxx:514
virtual void BuildR()
Build Gell-Mann representation of density matrix.
Definition: PMNS_OQS.cxx:439
virtual void BuildM(NuPath p)
Build the matrix M used in evolution equations.
Definition: PMNS_OQS.cxx:423
virtual void BuildHVMB(NuPath p)
Build effective Hamiltonian in Vacuum Mass Basis (VMB).
Definition: PMNS_OQS.cxx:203
PMNS_OQS()
Constructor.
Definition: PMNS_OQS.cxx:27
matrixD fD
Off-diagonal, 9x9 dissipator.
Definition: PMNS_OQS.h:95
matrixC fHVMB
Effective Hamiltonian in VMB (3x3).
Definition: PMNS_OQS.h:93
static constexpr int SU3_DIM
Dimension of the SU(3) Gell-Mann basis.
Definition: PMNS_OQS.h:34
vectorD fRt
Time evolution of density matrix in Gell-Mann basis.
Definition: PMNS_OQS.h:91
virtual void PropagatePath(NuPath p)
Reimplemented from PMNS_Base.
Definition: PMNS_OQS.cxx:478
virtual void SetPower(int n)
Definition: PMNS_OQS.cxx:49
virtual void SetIsNuBar(bool isNuBar)
Reimplemented from PMNS_Base.
Definition: PMNS_OQS.cxx:177
virtual double GetDissipatorElement(int i, int j)
Get dissipator element in Gell-Mann basis.
Definition: PMNS_OQS.cxx:161
virtual double GetHGM(int i, int j)
Get element i,j of the dissipator matrix in Gell-Mann basis.
Definition: PMNS_OQS.cxx:142
virtual void UpdateRho()
Update density matrix from Gell-Mann representation.
Definition: PMNS_OQS.cxx:445
virtual void BuildDissipator()
Build the dissipator in Gell-Mann representation.
Definition: PMNS_OQS.cxx:343
virtual void Propagate()
Reimplemented from PMNS_Base.
Definition: PMNS_OQS.cxx:465
virtual ~PMNS_OQS()
Destructor.
Definition: PMNS_OQS.cxx:41
virtual void BuildHGM(NuPath p)
Build effective Hamiltonian in Gell-Mann representation (GM).
Definition: PMNS_OQS.cxx:333
virtual void RotateState(bool to_mass)
Rotate rho to/from mass basis.
Definition: PMNS_OQS.cxx:453
virtual void BuildHms()
Reimplemented from PMNS_Base.
Definition: PMNS_OQS.cxx:187
matrixD fcos
cosines ai . aj
Definition: PMNS_OQS.h:88
Eigen::MatrixXd fM
Buffer matrix for exponential.
Definition: PMNS_OQS.h:97
virtual double GetDecoAngle(int i, int j)
Get mixing angle between two decoherence parameters a_i, a_j.
Definition: PMNS_OQS.cxx:122
matrixC fUM
PMNS Matrix.
Definition: PMNS_OQS.h:92
virtual double GetDecoElement(int i)
Get the value of the a_i decoherence parameter in Gell-Mann basis.
Definition: PMNS_OQS.cxx:105
Some useful general definitions.
Definition: Absorption.h:6
std::vector< double > vectorD
Definition: Definitions.h:18
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