a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
CKM Class Reference

A class for the CKM matrix elements. More...

#include <CKM.h>

Detailed Description

A class for the CKM matrix elements.

Author
HEPfit Collaboration

This is the class for defining the CKM matrix and its elements with the Wolfenstein and Gilman parameterizations.

Definition at line 23 of file CKM.h.

Public Member Functions

 CKM ()
 
double computeAlpha () const
 The CKM angle \(\alpha\). More...
 
double computeBeta () const
 The CKM angle \(\beta\). More...
 
double computeBetas () const
 The CKM angle \(\beta_s\). More...
 
void computeCKM (double Vus_v, double Vcb_v, double Vub_v, double gamma_v)
 A set method to calculate the CKM matrix from CKM elements and \( \gamma \). More...
 
void computeCKMwithWolfenstein (double Lambda_v, double A_v, double Rho_v, double Eta_v)
 A set method to calculate the CKM matrix from Wolfenstein parameters. More...
 
double computeGamma () const
 The CKM angle \(\gamma\). More...
 
gslpp::complex computelamc () const
 The product of the CKM elements \(V_{cd} V_{cs}^*\). More...
 
gslpp::complex computelamc_d () const
 The product of the CKM elements \(V_{cd} V_{cb}^*\). More...
 
gslpp::complex computelamc_s () const
 The product of the CKM elements \(V_{cs} V_{cb}^*\). More...
 
gslpp::complex computelamt () const
 The product of the CKM elements \(V_{td} V_{ts}^*\). More...
 
gslpp::complex computelamt_d () const
 The product of the CKM elements \(V_{td} V_{tb}^*\). More...
 
gslpp::complex computelamt_s () const
 The product of the CKM elements \(V_{ts} V_{tb}^*\). More...
 
gslpp::complex computelamu () const
 The product of the CKM elements \(V_{ud} V_{us}^*\). More...
 
gslpp::complex computelamu_d () const
 The product of the CKM elements \(V_{ud} V_{ub}^*\). More...
 
gslpp::complex computelamu_s () const
 The product of the CKM elements \(V_{us} V_{ub}^*\). More...
 
double computeRb () const
 \(R_b=|(V_{ud}V_{ub}^*)/(V_{ud}V_{ub}^*)|\). More...
 
double computeRt () const
 \(R_t=|(V_{td} V_{tb}^*)/(V_{cd}V_{cb}^*)|\). More...
 
double computeRts () const
 \(R_{ts}=|(V_{ts}V_{tb}^*)/(V_{cs}V_{cb}^*)|\). More...
 
double getA () const
 A member for returning the value of the Wolfenstein parameter \( A \). More...
 
double getc12 () const
 A member for returning the value of the cosine of the CKM parameter \( \theta_{12} \). More...
 
double getc13 () const
 A member for returning the value of the cosine of the CKM parameter \( \theta_{13} \). More...
 
double getc23 () const
 A member for returning the value of the cosine of the CKM parameter \( \theta_{23} \). More...
 
gslpp::matrix< gslpp::complexgetCKM () const
 A member for returning the CKM matrix. More...
 
double getdelta () const
 A member for returning the value of the CKM parameter \( \delta \). More...
 
double getEta () const
 A member for returning the value of the Wolfenstein parameter \( \eta \). More...
 
double getEtaBar () const
 A member for returning the value of the Wolfenstein parameter \( \bar{\eta} \). More...
 
double getJcp () const
 A member for returning the value of the Jarlskog determinant. More...
 
double getLambda () const
 A member for returning the value of the Wolfenstein parameter \( \lambda \). More...
 
double getRho () const
 A member for returning the value of the Wolfenstein parameter \( \rho \). More...
 
double getRhoBar () const
 A member for returning the value of the Wolfenstein parameter \( \bar{\rho} \). More...
 
double gets12 () const
 A member for returning the value of the sine of the CKM parameter \( \theta_{12} \). More...
 
double gets13 () const
 A member for returning the value of the sine of the CKM parameter \( \theta_{13} \). More...
 
double gets23 () const
 A member for returning the value of the sine of the CKM parameter \( \theta_{23} \). More...
 
gslpp::complex getV_cb () const
 A member for returning the value of the CKM element \( V_{cb} \). More...
 
gslpp::complex getV_cd () const
 A member for returning the value of the CKM element \( V_{cd} \). More...
 
gslpp::complex getV_cs () const
 A member for returning the value of the CKM element \( V_{cs} \). More...
 
gslpp::complex getV_tb () const
 A member for returning the value of the CKM element \( V_{tb} \). More...
 
gslpp::complex getV_td () const
 A member for returning the value of the CKM element \( V_{td} \). More...
 
gslpp::complex getV_ts () const
 A member for returning the value of the CKM element \( V_{ts} \). More...
 
gslpp::complex getV_ub () const
 A member for returning the value of the CKM element \( V_{ub} \). More...
 
gslpp::complex getV_ud () const
 A member for returning the value of the CKM element \( V_{ud} \). More...
 
gslpp::complex getV_us () const
 A member for returning the value of the CKM element \( V_{us} \). More...
 

Private Member Functions

void computeCKMfromAngles ()
 

Private Attributes

double A
 The Wolfenstein parameters. More...
 
double c12
 
double c13
 The cosine of the three mixing angles. More...
 
double c23
 
double delta
 The CP violating phase in the CKM matrix. More...
 
double Eta
 
double Lambda
 
double Rho
 
double s12
 
double s13
 
double s23
 The sine of the three mixing angles. More...
 
gslpp::matrix< gslpp::complexV
 The CKM matrix. More...
 

Constructor & Destructor Documentation

◆ CKM()

CKM::CKM ( )

Definition at line 10 of file CKM.cpp.

10  : V(3, 3)
11 {}

Member Function Documentation

◆ computeAlpha()

double CKM::computeAlpha ( ) const

The CKM angle \(\alpha\).

Returns
\(\alpha\) in radians

Definition at line 92 of file CKM.cpp.

93 {
94  return (-V(2, 0)*V(2, 2).conjugate()/(V(0, 0)*V(0, 2).conjugate())).arg();
95 }

◆ computeBeta()

double CKM::computeBeta ( ) const

The CKM angle \(\beta\).

Returns
\(\beta\) in radians

Definition at line 82 of file CKM.cpp.

83 {
84  return (-V(1, 0)*V(1, 2).conjugate()/(V(2, 0)*V(2, 2).conjugate())).arg();
85 }

◆ computeBetas()

double CKM::computeBetas ( ) const

The CKM angle \(\beta_s\).

Returns
\(\beta_s\) in radians

Definition at line 97 of file CKM.cpp.

98 {
99  return (-V(2, 1)*V(2, 2).conjugate()/(V(1, 1)*V(1, 2).conjugate())).arg();
100 }

◆ computeCKM()

void CKM::computeCKM ( double  Vus_v,
double  Vcb_v,
double  Vub_v,
double  gamma_v 
)

A set method to calculate the CKM matrix from CKM elements and \( \gamma \).

Parameters
[in]Vus_vthe CKM element \( V_{us} \)
[in]Vcb_vthe CKM element \( V_{cb} \)
[in]Vub_vthe CKM element \( V_{ub} \)
[in]gamma_vthe CKM element \( \gamma \)

Definition at line 55 of file CKM.cpp.

56 {
57  s13 = Vub_v;
58  c13 = sqrt(1.-s13*s13);
59  s12 = Vus_v / c13;
60  s23 = Vcb_v / c13;
61 
62  c12 = sqrt(1. - s12 * s12);
63  c23 = sqrt(1. - s23 * s23);
64 
65  double a = c12 * s13 * s23 / s12 / c23;
66  if ( fabs(gamma_v) < 1.e-10 )
67  delta = 0.;
68  else
69  delta = 2. * atan((1. + sqrt(1. - (a * a - 1.) * pow(tan(gamma_v), 2.))*(cos(gamma_v) < 0. ? 1. : (-1.))) / (a - 1.) / tan(gamma_v));
70 
72 
73  // Wolfenstein to all orders
74  Lambda = s12;
75  A = s23 / Lambda / Lambda;
76  gslpp::complex Rb = V(0, 0) * V(0, 2).conjugate() / (V(1, 0) * V(1, 2).conjugate());
77  Rho = -Rb.real();
78  Eta = -Rb.imag();
79  return;
80 }

◆ computeCKMfromAngles()

void CKM::computeCKMfromAngles ( )
private

Definition at line 40 of file CKM.cpp.

41 {
42  V.assign(0, 0, c12*c13);
43  V.assign(0, 1, s12*c13);
44  V.assign(0, 2, gslpp::complex(s13, -delta, true));
45 
46  V.assign(1, 0 , -s12 * c23 - gslpp::complex(c12 * s23*s13, delta, true));
47  V.assign(1, 1, c12 * c23 - gslpp::complex(s12 * s23*s13, delta, true));
48  V.assign(1, 2, s23*c13);
49 
50  V.assign(2, 0, s12 * s23 - gslpp::complex(c12 * c23*s13, delta, true));
51  V.assign(2, 1, -c12 * s23 - gslpp::complex(s12 * c23*s13, delta, true));
52  V.assign(2, 2, c23*c13);
53 }

◆ computeCKMwithWolfenstein()

void CKM::computeCKMwithWolfenstein ( double  Lambda_v,
double  A_v,
double  Rho_v,
double  Eta_v 
)

A set method to calculate the CKM matrix from Wolfenstein parameters.

Parameters
[in]Lambda_vthe Wolfenstein parameter \( \lambda \)
[in]A_vthe Wolfenstein parameter \( A \)
[in]Rho_vthe Wolfenstein parameter \( \bar{\rho} \)
[in]Rho_vthe Wolfenstein parameter \( \bar{\eta} \)

Definition at line 13 of file CKM.cpp.

14 {
15  Rho = Rho_v;
16  Eta = Eta_v;
17  Lambda = Lambda_v;
18  A = A_v;
19 
20  gslpp::complex num(Rho, Eta);
21  num = num * sqrt(1. - pow(A, 2.) * pow(Lambda, 4.));
22  gslpp::complex den = sqrt(1. - pow(Lambda, 2.)) * gslpp::complex(1. - pow(A, 2.) * pow(Lambda, 4.) * Rho, -pow(A, 2.) * pow(Lambda, 4.) * Eta);
23  gslpp::complex ratio = num / den;
24 
25  double rho_nb = ratio.real();
26  double eta_nb = ratio.imag();
27 
28  s12 = Lambda;
29  s23 = A * pow(Lambda, 2.);
30  s13 = (gslpp::complex(A * pow(Lambda, 3.) * rho_nb, -A * pow(Lambda, 3.) * eta_nb)).abs();
31  delta = -(gslpp::complex(A * pow(Lambda, 3.) * rho_nb, -A * pow(Lambda, 3.) * eta_nb)).arg();
32 
33  c12 = sqrt(1. - s12 * s12);
34  c13 = sqrt(1. - s13 * s13);
35  c23 = sqrt(1. - s23 * s23);
36 
38 }

◆ computeGamma()

double CKM::computeGamma ( ) const

The CKM angle \(\gamma\).

Returns
\(\gamma\) in radians

Definition at line 87 of file CKM.cpp.

88 {
89  return (-V(0, 0)*V(0, 2).conjugate()/(V(1, 0)*V(1, 2).conjugate())).arg();
90 }

◆ computelamc()

gslpp::complex CKM::computelamc ( ) const

The product of the CKM elements \(V_{cd} V_{cs}^*\).

Returns
\(V_{cd} V_{cs}^*\)

Definition at line 109 of file CKM.cpp.

110 {
111  return V(1, 0)*V(1, 1).conjugate();
112 }

◆ computelamc_d()

gslpp::complex CKM::computelamc_d ( ) const

The product of the CKM elements \(V_{cd} V_{cb}^*\).

Returns
\(V_{cd} V_{cb}^*\)

Definition at line 125 of file CKM.cpp.

126 {
127  return V(1, 0)*V(1, 2).conjugate();
128 }

◆ computelamc_s()

gslpp::complex CKM::computelamc_s ( ) const

The product of the CKM elements \(V_{cs} V_{cb}^*\).

Returns
\(V_{cs} V_{cb}^*\)

Definition at line 141 of file CKM.cpp.

142 {
143  return V(1, 1)*V(1, 2).conjugate();
144 }

◆ computelamt()

gslpp::complex CKM::computelamt ( ) const

The product of the CKM elements \(V_{td} V_{ts}^*\).

Returns
\(V_{td} V_{ts}^*\)

Definition at line 104 of file CKM.cpp.

105 {
106  return V(2, 0)*V(2, 1).conjugate();
107 }

◆ computelamt_d()

gslpp::complex CKM::computelamt_d ( ) const

The product of the CKM elements \(V_{td} V_{tb}^*\).

Returns
\(V_{td} V_{tb}^*\)

Definition at line 120 of file CKM.cpp.

121 {
122  return V(2, 0)*V(2, 2).conjugate();
123 }

◆ computelamt_s()

gslpp::complex CKM::computelamt_s ( ) const

The product of the CKM elements \(V_{ts} V_{tb}^*\).

Returns
\(V_{ts} V_{tb}^*\)

Definition at line 136 of file CKM.cpp.

137 {
138  return V(2, 1)*V(2, 2).conjugate();
139 }

◆ computelamu()

gslpp::complex CKM::computelamu ( ) const

The product of the CKM elements \(V_{ud} V_{us}^*\).

Returns
\(V_{ud} V_{us}^*\)

Definition at line 114 of file CKM.cpp.

115 {
116  return V(0, 0)*V(0, 1).conjugate();
117 }

◆ computelamu_d()

gslpp::complex CKM::computelamu_d ( ) const

The product of the CKM elements \(V_{ud} V_{ub}^*\).

Returns
\(V_{ud} V_{ub}^*\)

Definition at line 130 of file CKM.cpp.

131 {
132  return V(0, 0)*V(0, 2).conjugate();
133 }

◆ computelamu_s()

gslpp::complex CKM::computelamu_s ( ) const

The product of the CKM elements \(V_{us} V_{ub}^*\).

Returns
\(V_{us} V_{ub}^*\)

Definition at line 146 of file CKM.cpp.

147 {
148  return V(0, 1)*V(0, 2).conjugate();
149 }

◆ computeRb()

double CKM::computeRb ( ) const

\(R_b=|(V_{ud}V_{ub}^*)/(V_{ud}V_{ub}^*)|\).

Returns
\(R_b\)

Definition at line 161 of file CKM.cpp.

162 {
163  return (V(0, 0)*V(0, 2).conjugate()/(V(1, 0)*V(1, 2).conjugate())).abs();
164 }

◆ computeRt()

double CKM::computeRt ( ) const

\(R_t=|(V_{td} V_{tb}^*)/(V_{cd}V_{cb}^*)|\).

Returns
\(R_t\)

Definition at line 152 of file CKM.cpp.

153 {
154  return (V(2, 0)*V(2, 2).conjugate()/(V(1, 0)*V(1, 2).conjugate())).abs();
155 }

◆ computeRts()

double CKM::computeRts ( ) const

\(R_{ts}=|(V_{ts}V_{tb}^*)/(V_{cs}V_{cb}^*)|\).

Returns
\(R_{ts}\)

Definition at line 156 of file CKM.cpp.

157 {
158  return (V(2, 1)*V(2, 2).conjugate()/(V(1, 1)*V(1, 2).conjugate())).abs();
159 }

◆ getA()

double CKM::getA ( ) const
inline

A member for returning the value of the Wolfenstein parameter \( A \).

Returns
the value of \( A \)

Definition at line 87 of file CKM.h.

88  {
89  return A;
90  }

◆ getc12()

double CKM::getc12 ( ) const
inline

A member for returning the value of the cosine of the CKM parameter \( \theta_{12} \).

Returns
the value of \( \cos\theta_{12} \)

Definition at line 143 of file CKM.h.

144  {
145  return c12;
146  }

◆ getc13()

double CKM::getc13 ( ) const
inline

A member for returning the value of the cosine of the CKM parameter \( \theta_{13} \).

Returns
the value of \( \cos\theta_{13} \)

Definition at line 161 of file CKM.h.

162  {
163  return c13;
164  }

◆ getc23()

double CKM::getc23 ( ) const
inline

A member for returning the value of the cosine of the CKM parameter \( \theta_{23} \).

Returns
the value of \( \cos\theta_{23} \)

Definition at line 152 of file CKM.h.

153  {
154  return c23;
155  }

◆ getCKM()

gslpp::matrix<gslpp::complex> CKM::getCKM ( ) const
inline

A member for returning the CKM matrix.

Returns
the CKM matrix

Definition at line 49 of file CKM.h.

50  {
51  return V;
52  }

◆ getdelta()

double CKM::getdelta ( ) const
inline

A member for returning the value of the CKM parameter \( \delta \).

Returns
the value of \( \delta \)

Definition at line 170 of file CKM.h.

171  {
172  return delta;
173  }

◆ getEta()

double CKM::getEta ( ) const
inline

A member for returning the value of the Wolfenstein parameter \( \eta \).

Returns
the value of \( \eta \)

Definition at line 105 of file CKM.h.

106  {
107  return (s13 * sin(delta) / s12 / s23);
108  }

◆ getEtaBar()

double CKM::getEtaBar ( ) const
inline

A member for returning the value of the Wolfenstein parameter \( \bar{\eta} \).

Returns
the value of \( \bar{\eta} \)

Definition at line 69 of file CKM.h.

70  {
71  return Eta;
72  }

◆ getJcp()

double CKM::getJcp ( ) const
inline

A member for returning the value of the Jarlskog determinant.

Returns
the value of \( J \)

Definition at line 181 of file CKM.h.

182  {
183  return Eta * pow(A * pow(Lambda, 3), 2);
184  }

◆ getLambda()

double CKM::getLambda ( ) const
inline

A member for returning the value of the Wolfenstein parameter \( \lambda \).

Returns
the value of \( \lambda \)

Definition at line 78 of file CKM.h.

79  {
80  return Lambda;
81  }

◆ getRho()

double CKM::getRho ( ) const
inline

A member for returning the value of the Wolfenstein parameter \( \rho \).

Returns
the value of \( \rho \)

Definition at line 96 of file CKM.h.

97  {
98  return (s13 * cos(delta) / s12 / s23);
99  }

◆ getRhoBar()

double CKM::getRhoBar ( ) const
inline

A member for returning the value of the Wolfenstein parameter \( \bar{\rho} \).

Returns
the value of \( \bar{\rho} \)

Definition at line 60 of file CKM.h.

61  {
62  return Rho;
63  }

◆ gets12()

double CKM::gets12 ( ) const
inline

A member for returning the value of the sine of the CKM parameter \( \theta_{12} \).

Returns
the value of \( \sin\theta_{12} \)

Definition at line 116 of file CKM.h.

117  {
118  return s12;
119  }

◆ gets13()

double CKM::gets13 ( ) const
inline

A member for returning the value of the sine of the CKM parameter \( \theta_{13} \).

Returns
the value of \( \sin\theta_{13} \)

Definition at line 125 of file CKM.h.

126  {
127  return s13;
128  }

◆ gets23()

double CKM::gets23 ( ) const
inline

A member for returning the value of the sine of the CKM parameter \( \theta_{23} \).

Returns
the value of \( \sin\theta_{23} \)

Definition at line 134 of file CKM.h.

135  {
136  return s23;
137  }

◆ getV_cb()

gslpp::complex CKM::getV_cb ( ) const
inline

A member for returning the value of the CKM element \( V_{cb} \).

Returns
the value of \( V_{cb} \)

Definition at line 237 of file CKM.h.

238  {
239  return V(1, 2);
240  }

◆ getV_cd()

gslpp::complex CKM::getV_cd ( ) const
inline

A member for returning the value of the CKM element \( V_{cd} \).

Returns
the value of \( V_{cd} \)

Definition at line 219 of file CKM.h.

220  {
221  return V(1, 0);
222  }

◆ getV_cs()

gslpp::complex CKM::getV_cs ( ) const
inline

A member for returning the value of the CKM element \( V_{cs} \).

Returns
the value of \( V_{cs} \)

Definition at line 228 of file CKM.h.

229  {
230  return V(1, 1);
231  }

◆ getV_tb()

gslpp::complex CKM::getV_tb ( ) const
inline

A member for returning the value of the CKM element \( V_{tb} \).

Returns
the value of \( V_{tb} \)

Definition at line 264 of file CKM.h.

265  {
266  return V(2, 2);
267  }

◆ getV_td()

gslpp::complex CKM::getV_td ( ) const
inline

A member for returning the value of the CKM element \( V_{td} \).

Returns
the value of \( V_{td} \)

Definition at line 246 of file CKM.h.

247  {
248  return V(2, 0);
249  }

◆ getV_ts()

gslpp::complex CKM::getV_ts ( ) const
inline

A member for returning the value of the CKM element \( V_{ts} \).

Returns
the value of \( V_{ts} \)

Definition at line 255 of file CKM.h.

256  {
257  return V(2, 1);
258  }

◆ getV_ub()

gslpp::complex CKM::getV_ub ( ) const
inline

A member for returning the value of the CKM element \( V_{ub} \).

Returns
the value of \( V_{ub} \)

Definition at line 210 of file CKM.h.

211  {
212  return V(0, 2);
213  }

◆ getV_ud()

gslpp::complex CKM::getV_ud ( ) const
inline

A member for returning the value of the CKM element \( V_{ud} \).

Returns
the value of \( V_{ud} \)

Definition at line 192 of file CKM.h.

193  {
194  return V(0, 0);
195  }

◆ getV_us()

gslpp::complex CKM::getV_us ( ) const
inline

A member for returning the value of the CKM element \( V_{us} \).

Returns
the value of \( V_{us} \)

Definition at line 201 of file CKM.h.

202  {
203  return V(0, 1);
204  }

Member Data Documentation

◆ A

double CKM::A
private

The Wolfenstein parameters.

Definition at line 368 of file CKM.h.

◆ c12

double CKM::c12
private

Definition at line 370 of file CKM.h.

◆ c13

double CKM::c13
private

The cosine of the three mixing angles.

Definition at line 370 of file CKM.h.

◆ c23

double CKM::c23
private

Definition at line 370 of file CKM.h.

◆ delta

double CKM::delta
private

The CP violating phase in the CKM matrix.

Definition at line 371 of file CKM.h.

◆ Eta

double CKM::Eta
private

Definition at line 368 of file CKM.h.

◆ Lambda

double CKM::Lambda
private

Definition at line 368 of file CKM.h.

◆ Rho

double CKM::Rho
private

Definition at line 368 of file CKM.h.

◆ s12

double CKM::s12
private

Definition at line 369 of file CKM.h.

◆ s13

double CKM::s13
private

Definition at line 369 of file CKM.h.

◆ s23

double CKM::s23
private

The sine of the three mixing angles.

Definition at line 369 of file CKM.h.

◆ V

gslpp::matrix<gslpp::complex> CKM::V
private

The CKM matrix.

Definition at line 373 of file CKM.h.


The documentation for this class was generated from the following files:
gslpp::cos
complex cos(const complex &z)
Definition: gslpp_complex.cpp:429
CKM::c13
double c13
The cosine of the three mixing angles.
Definition: CKM.h:370
CKM::computeCKMfromAngles
void computeCKMfromAngles()
Definition: CKM.cpp:40
CKM::A
double A
The Wolfenstein parameters.
Definition: CKM.h:368
gslpp::sin
complex sin(const complex &z)
Definition: gslpp_complex.cpp:420
CKM::s12
double s12
Definition: CKM.h:369
CKM::s13
double s13
Definition: CKM.h:369
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
CKM::delta
double delta
The CP violating phase in the CKM matrix.
Definition: CKM.h:371
gslpp::complex::imag
const double & imag() const
Definition: gslpp_complex.cpp:59
gslpp::tan
complex tan(const complex &z)
Definition: gslpp_complex.cpp:438
CKM::c23
double c23
Definition: CKM.h:370
CKM::Lambda
double Lambda
Definition: CKM.h:368
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
CKM::V
gslpp::matrix< gslpp::complex > V
The CKM matrix.
Definition: CKM.h:373
CKM::c12
double c12
Definition: CKM.h:370
gslpp::complex::real
const double & real() const
Definition: gslpp_complex.cpp:53
CKM::Eta
double Eta
Definition: CKM.h:368
CKM::s23
double s23
The sine of the three mixing angles.
Definition: CKM.h:369
CKM::Rho
double Rho
Definition: CKM.h:368