PMNS.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include <stdexcept>
9 #include "PMNS.h"
10 
11 PMNS::PMNS(std::string H_i)
12 {
13  H = H_i;
14 }
15 
16 PMNS::PMNS(const PMNS& orig)
17 {
18  s12 = orig.s12;
19  s13 = orig.s13;
20  s23 = orig.s23;
21  delta = orig.delta;
22  c12 = orig.c12;
23  c23 = orig.c23;
24  c13 = orig.c13;
25 
26  U11 = orig.U11;
27  U12 = orig.U12;
28  U13 = orig.U13;
29  U21 = orig.U21;
30  U22 = orig.U22;
31  U23 = orig.U23;
32  U31 = orig.U31;
33  U32 = orig.U32;
34  U33 = orig.U33;
35 
36 }
37 
39 {
40 }
41 
43 {
44  x.assign(0, 0, U11);
45  x.assign(0, 1, U12);
46  x.assign(0, 2, U13);
47  x.assign(1, 0, U21);
48  x.assign(1, 1, U22);
49  x.assign(1, 2, U23);
50  x.assign(2, 0, U31);
51  x.assign(2, 1, U32);
52  x.assign(2, 2, U33);
53 }
54 
55 void PMNS::setPMNS(double s12, double s13, double s23, double delta)
56 {
57  c12 = sqrt(1. - pow(s12, 2.));
58  c23 = sqrt(1. - pow(s23, 2.));
59  c13 = sqrt(1. - pow(s13, 2.));
60 
61  U11 = gslpp::complex(c12*c13, 0.);
62  U12 = gslpp::complex(s12*c13, 0.);
63  U13 = gslpp::complex(s13, -delta, true);
64 
65  U21 = -s12 * c23 - gslpp::complex(c12 * s23*s13, delta, true);
66  U22 = c12 * c23 - gslpp::complex(s12 * s23*s13, delta, true);
67  U23 = gslpp::complex(s23*c13, 0.);
68 
69  U31 = s12 * s23 - gslpp::complex(c12 * c23*s13, delta, true);
70  U32 = -c12 * s23 - gslpp::complex(s12 * c23*s13, delta, true);
71  U33 = gslpp::complex(c23*c13, 0.);
72 
73  return;
74 }
75 
76 // Gilman parameterization
77 
78 double PMNS::gets12()
79 {
80  return s12;
81 }
82 
83 double PMNS::gets13()
84 {
85  return s13;
86 }
87 
88 double PMNS::gets23()
89 {
90  return s23;
91 }
92 
93 double PMNS::getc12()
94 {
95  return c12;
96 }
97 
98 double PMNS::getc23()
99 {
100  return c23;
101 }
102 
103 double PMNS::getc13()
104 {
105  return c13;
106 }
107 
109 {
110  return delta;
111 }
112 
113 std::string PMNS::getHierarchy()
114 {
115  return H;
116 }
117 
118 // J_CP
119 
120 double PMNS::getJcp()
121 {
122  throw std::runtime_error("PMNS()::Jcp Not implemented!");
123  return 1;
124 }
125 
126 // Sides
127 /*double CKM::getRt()
128 {
129  return (Vtd*Vtb.conjugate()/(Vcd*Vcb.conjugate())).abs();
130 }
131 
132 double CKM::getRb()
133 {
134  return (Vud*Vub.conjugate()/(Vcd*Vcb.conjugate())).abs();
135 }
136 
137 double CKM::getRts()
138 {
139  return (Vts*Vtb.conjugate()/(Vcs*Vcb.conjugate())).abs();
140 }*/
gslpp::complex U31
Definition: PMNS.h:66
double s13
Definition: PMNS.h:53
gslpp::complex U13
Definition: PMNS.h:62
gslpp::complex U22
Definition: PMNS.h:64
double getJcp()
Definition: PMNS.cpp:120
double getc13()
Definition: PMNS.cpp:103
double gets12()
Definition: PMNS.cpp:78
gslpp::complex U23
Definition: PMNS.h:65
complex pow(const complex &z1, const complex &z2)
double s23
Definition: PMNS.h:54
gslpp::complex U32
Definition: PMNS.h:67
double getc12()
Definition: PMNS.cpp:93
double c13
Definition: PMNS.h:58
void setPMNS(double, double, double, double)
Definition: PMNS.cpp:55
double delta
Definition: PMNS.h:55
gslpp::complex U21
Definition: PMNS.h:63
PMNS(std::string H_i)
Definition: PMNS.cpp:11
double gets23()
Definition: PMNS.cpp:88
gslpp::complex U11
Definition: PMNS.h:60
A class for the PMNS matrix elements.
Definition: PMNS.h:22
std::string getHierarchy()
Definition: PMNS.cpp:113
std::string H
Definition: PMNS.h:70
double c23
Definition: PMNS.h:57
double getc23()
Definition: PMNS.cpp:98
double c12
Definition: PMNS.h:56
gslpp::complex U12
Definition: PMNS.h:61
double s12
Definition: PMNS.h:52
gslpp::complex U33
Definition: PMNS.h:68
double gets13()
Definition: PMNS.cpp:83
~PMNS()
Definition: PMNS.cpp:38
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
double getdelta()
Definition: PMNS.cpp:108
void getPMNS(gslpp::matrix< gslpp::complex > &) const
Definition: PMNS.cpp:42
complex sqrt(const complex &z)