PMNS.h
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 #ifndef PMNS_H
33 #define PMNS_H
34 #include <list>
35 #include <complex>
36 
37 namespace osc {
38  class PMNS {
39  public:
40  PMNS();
41 
42  PMNS(double th12,
43  double th23,
44  double th13,
45  double deltacp,
46  double dms12,
47  double dms23);
48 
49  void PrintMix() const;
50 
51  void PrintDeltaMsqrs() const;
52 
53  double P(int i, int j) const;
54 
55  void SetMix(double th12, double th23, double th13, double deltacp);
56 
57  void SetMixBWCP(double th1, double th2, double th3, double deltacp);
58 
59  void SetDeltaMsqrs(double dm21, double dm32);
60 
61  void PropVacuum(double L, double E, int anti);
62 
63  void PropMatter(double L, double E, double Ne, int anti);
64  void PropMatter(const std::list<double>& L,
65  double E,
66  const std::list<double>& Ne,
67  int anti);
68 
69  void Reset();
70 
71  private:
72  // A shorthand...
73  typedef std::complex<double> complex;
74 
75  private:
76  void Multi(complex A[][3], const complex B[][3], const complex C[][3]);
77 
78  void EvalEqn2(complex A[][3],
79  const complex U[][3],
80  const complex Udagg[][3],
81  const double dmsqr[][3],
82  double L,
83  double E);
84 
85  void EvalEqn5(complex twoEH[][3],
86  const complex U[][3],
87  const complex Udagg[][3],
88  const double dmsqr[][3],
89  double E,
90  double Gf,
91  double Ne);
92 
93  void EvalEqn10(complex A[][3],
94  const complex U[][3],
95  const complex X[][3],
96  const complex Udagg[][3]);
97 
98  void EvalEqn11(complex X[][3],
99  double L, double E,
100  const complex twoEH[][3],
101  const double Msqr[],
102  const double dMsqr[][3]);
103 
104  void EvalEqn21(double Msqr[],
105  double alpha,
106  double beta,
107  double gamma);
108 
109  void EvalEqn22(double& alpha,
110  double& beta,
111  double& gamma,
112  double E,
113  double Gf,
114  double Ne,
115  const double dmsqr[][3],
116  const complex U[][3]);
117 
118  void SortEigenvalues(double dMsqr[][3],
119  const double dmsqr[][3],
120  const double MsqrVac[],
121  double Msqr[]);
122 
123  void DumpMatrix(const complex M[][3]) const;
124 
125  private:
126  double fdmsqr[3][3];
127  complex fU[3][3];
128  complex fUdagg[3][3];
129  complex fUstar[3][3];
130  complex fUtran[3][3];
131  complex fA[3][3];
132  };
133 }
134 #endif
135 
void PrintMix() const
Definition: PMNS.cxx:82
PMNS()
Definition: PMNS.cxx:52
void EvalEqn2(complex A[][3], const complex U[][3], const complex Udagg[][3], const double dmsqr[][3], double L, double E)
Definition: PMNS.cxx:202
complex fU[3][3]
Definition: PMNS.h:127
void EvalEqn21(double Msqr[], double alpha, double beta, double gamma)
Definition: PMNS.cxx:312
void SetMixBWCP(double th1, double th2, double th3, double deltacp)
Definition: PMNS.cxx:117
void PrintDeltaMsqrs() const
Definition: PMNS.cxx:149
void DumpMatrix(const complex M[][3]) const
Definition: PMNS.cxx:71
complex fUdagg[3][3]
Definition: PMNS.h:128
complex fUstar[3][3]
Definition: PMNS.h:129
void PropMatter(double L, double E, double Ne, int anti)
Definition: PMNS.cxx:432
complex fUtran[3][3]
Definition: PMNS.h:130
Definition: PMNS.h:38
Definition: EarthModel.h:12
void SetDeltaMsqrs(double dm21, double dm32)
Definition: PMNS.cxx:159
void EvalEqn5(complex twoEH[][3], const complex U[][3], const complex Udagg[][3], const double dmsqr[][3], double E, double Gf, double Ne)
Definition: PMNS.cxx:222
void SetMix(double th12, double th23, double th13, double deltacp)
Definition: PMNS.cxx:86
std::complex< double > complex
Definition: PMNS.h:73
void EvalEqn11(complex X[][3], double L, double E, const complex twoEH[][3], const double Msqr[], const double dMsqr[][3])
Definition: PMNS.cxx:253
void SortEigenvalues(double dMsqr[][3], const double dmsqr[][3], const double MsqrVac[], double Msqr[])
Definition: PMNS.cxx:380
void EvalEqn22(double &alpha, double &beta, double &gamma, double E, double Gf, double Ne, const double dmsqr[][3], const complex U[][3])
Definition: PMNS.cxx:357
double fdmsqr[3][3]
Definition: PMNS.h:126
void PropVacuum(double L, double E, int anti)
Definition: PMNS.cxx:415
double P(int i, int j) const
Definition: PMNS.cxx:519
void EvalEqn10(complex A[][3], const complex U[][3], const complex X[][3], const complex Udagg[][3])
Definition: PMNS.cxx:242
void Reset()
Definition: PMNS.cxx:507
void Multi(complex A[][3], const complex B[][3], const complex C[][3])
Definition: PMNS.cxx:188
complex fA[3][3]
Definition: PMNS.h:131