a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
GeneralTHDMunitarity.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "GeneralTHDMunitarity.h"
9 #include "GeneralTHDM.h"
10 #include "GeneralTHDMcache.h"
11 
13 : myGTHDM(static_cast<const GeneralTHDM&> (SM_i)), Smat21(3,3,0.), Smat01(4,4,0.), Smat00(4,4,0.),
14  Seigvec21(3,3,0.), Seigvec01(4,4,0.), Seigvec00(4,4,0.), Seigval21(3,0.), Seigval01(4,0.), Seigval00(4,0.)
15 {}
16 
18 {}
19 
21 {
22  double lambda1 = myGTHDM.getMyGTHDMCache()->lambda1;
23  double lambda2 = myGTHDM.getMyGTHDMCache()->lambda2;
24  double lambda3 = myGTHDM.getMyGTHDMCache()->lambda3;
25  double lambda4 = myGTHDM.getMyGTHDMCache()->lambda4;
26  double Relambda5 = myGTHDM.getRelambda5();
27  double Imlambda5 = myGTHDM.getImlambda5();
28  double Relambda6 = myGTHDM.getRelambda6();
29  double Relambda7 = myGTHDM.getRelambda7();
30  double Imlambda6 = myGTHDM.getMyGTHDMCache()->Imlambda6;
31  double Imlambda7 = myGTHDM.getMyGTHDMCache()->Imlambda7;
32 
34 
35  Smat21.assign(0,0, lambda1);
36  Smat21.assign(0,1, Relambda5 + i*Imlambda5);
37  Smat21.assign(0,2, sqrt(2)*(Relambda6 + i*Imlambda6));
38  Smat21.assign(1,0, Relambda5 - i*Imlambda5);
39  Smat21.assign(1,1, lambda2);
40  Smat21.assign(1,2, sqrt(2)*(Relambda7 - i*Imlambda7));
41  Smat21.assign(2,0, sqrt(2)*(Relambda6 - i*Imlambda6));
42  Smat21.assign(2,1, sqrt(2)*(Relambda7 + i*Imlambda7));
43  Smat21.assign(2,2, lambda3 + lambda4);
44 
45  Smat21.eigensystem(Seigvec_i, Seigval_i);
46 
47  return true;
48 }
49 
51 {
52  double lambda1 = myGTHDM.getMyGTHDMCache()->lambda1;
53  double lambda2 = myGTHDM.getMyGTHDMCache()->lambda2;
54  double lambda3 = myGTHDM.getMyGTHDMCache()->lambda3;
55  double lambda4 = myGTHDM.getMyGTHDMCache()->lambda4;
56  double Relambda5 = myGTHDM.getRelambda5();
57  double Imlambda5 = myGTHDM.getImlambda5();
58  double Relambda6 = myGTHDM.getRelambda6();
59  double Relambda7 = myGTHDM.getRelambda7();
60  double Imlambda6 = myGTHDM.getMyGTHDMCache()->Imlambda6;
61  double Imlambda7 = myGTHDM.getMyGTHDMCache()->Imlambda7;
62 
64 
65  Smat01.assign(0,0, lambda1);
66  Smat01.assign(0,1, lambda4);
67  Smat01.assign(0,2, Relambda6 + i*Imlambda6);
68  Smat01.assign(0,3, Relambda6 - i*Imlambda6);
69  Smat01.assign(1,0, lambda4);
70  Smat01.assign(1,1, lambda2);
71  Smat01.assign(1,2, Relambda7 + i*Imlambda7);
72  Smat01.assign(1,3, Relambda7 - i*Imlambda7);
73  Smat01.assign(2,0, Relambda6 - i*Imlambda6);
74  Smat01.assign(2,1, Relambda7 - i*Imlambda7);
75  Smat01.assign(2,2, lambda3);
76  Smat01.assign(2,3, Relambda5 - i*Imlambda5);
77  Smat01.assign(3,0, Relambda6 + i*Imlambda6);
78  Smat01.assign(3,1, Relambda7 + i*Imlambda7);
79  Smat01.assign(3,2, Relambda5 + i*Imlambda5);
80  Smat01.assign(3,3, lambda3);
81 
82  Smat01.eigensystem(Seigvec_i, Seigval_i);
83 
84  return true;
85 }
86 
88 {
89  double lambda1 = myGTHDM.getMyGTHDMCache()->lambda1;
90  double lambda2 = myGTHDM.getMyGTHDMCache()->lambda2;
91  double lambda3 = myGTHDM.getMyGTHDMCache()->lambda3;
92  double lambda4 = myGTHDM.getMyGTHDMCache()->lambda4;
93  double Relambda5 = myGTHDM.getRelambda5();
94  double Imlambda5 = myGTHDM.getImlambda5();
95  double Relambda6 = myGTHDM.getRelambda6();
96  double Relambda7 = myGTHDM.getRelambda7();
97  double Imlambda6 = myGTHDM.getMyGTHDMCache()->Imlambda6;
98  double Imlambda7 = myGTHDM.getMyGTHDMCache()->Imlambda7;
99 
101 
102  Smat00.assign(0,0, 3.*lambda1);
103  Smat00.assign(0,1, 2.*lambda3 + lambda4);
104  Smat00.assign(0,2, 3.*(Relambda6 + i*Imlambda6));
105  Smat00.assign(0,3, 3.*(Relambda6 - i*Imlambda6));
106  Smat00.assign(1,0, 2.*lambda3 + lambda4);
107  Smat00.assign(1,1, 3.*lambda2);
108  Smat00.assign(1,2, 3.*(Relambda7 + i*Imlambda7));
109  Smat00.assign(1,3, 3.*(Relambda7 - i*Imlambda7));
110  Smat00.assign(2,0, 3.*(Relambda6 - i*Imlambda6));
111  Smat00.assign(2,1, 3.*(Relambda7 - i*Imlambda7));
112  Smat00.assign(2,2, lambda3 + 2.*lambda4);
113  Smat00.assign(2,3, 3.*(Relambda5 - i*Imlambda5));
114  Smat00.assign(3,0, 3.*(Relambda6 + i*Imlambda6));
115  Smat00.assign(3,1, 3.*(Relambda7 + i*Imlambda7));
116  Smat00.assign(3,2, 3.*(Relambda5 + i*Imlambda5));
117  Smat00.assign(3,3, lambda3 + 2.*lambda4);
118 
119  Smat00.eigensystem(Seigvec_i, Seigval_i);
120 
121  return true;
122 }
123 
125 {
127 
128  return Seigval21;
129 }
130 
132 {
134 
135  return Seigval01;
136 }
137 
139 {
141 
142  return Seigval00;
143 }
144 
145 
147 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
148 {}
149 
151 {
152  return (myunitarity_GTHDM.getSeigen21())(0);
153 }
154 
155 
157 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
158 {}
159 
161 {
162  return (myunitarity_GTHDM.getSeigen21())(1);
163 }
164 
165 
167 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
168 {}
169 
171 {
172  return (myunitarity_GTHDM.getSeigen21())(2);
173 }
174 
175 
177 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
178 {}
179 
181 {
182  return (myunitarity_GTHDM.getSeigen01())(0);
183 }
184 
185 
187 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
188 {}
189 
191 {
192  return (myunitarity_GTHDM.getSeigen01())(1);
193 }
194 
195 
197 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
198 {}
199 
201 {
202  return (myunitarity_GTHDM.getSeigen01())(2);
203 }
204 
205 
207 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
208 {}
209 
211 {
212  return (myunitarity_GTHDM.getSeigen01())(3);
213 }
214 
215 
217 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
218 {}
219 
221 {
222  return (myunitarity_GTHDM.getSeigen00())(0);
223 }
224 
225 
227 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
228 {}
229 
231 {
232  return (myunitarity_GTHDM.getSeigen00())(1);
233 }
234 
235 
237 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
238 {}
239 
241 {
242  return (myunitarity_GTHDM.getSeigen00())(2);
243 }
244 
245 
247 : ThObservable(SM_i), myunitarity_GTHDM(SM_i)
248 {}
249 
251 {
252  return (myunitarity_GTHDM.getSeigen00())(3);
253 }
254 
255 
257 : ThObservable(SM_i), myGTHDM(static_cast<const GeneralTHDM&> (SM_i))
258 {}
259 
261 {
262  double lambda3 = myGTHDM.getMyGTHDMCache()->lambda3;
263  double lambda4 = myGTHDM.getMyGTHDMCache()->lambda4;
264  return (lambda3-lambda4);
265 }
unitarity3_GTHDM::unitarity3_GTHDM
unitarity3_GTHDM(const StandardModel &SM_i)
unitarity3_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:166
unitarity5_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:180
unitarity_GTHDM::Smat21
gslpp::matrix< gslpp::complex > Smat21
Definition: GeneralTHDMunitarity.h:67
unitarity4_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:260
GeneralTHDMunitarity.h
unitarity12_GTHDM::unitarity12_GTHDM
unitarity12_GTHDM(const StandardModel &SM_i)
unitarity12_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:246
unitarity_GTHDM::CalcSeigen01
bool CalcSeigen01(gslpp::matrix< gslpp::complex > &Seigvec_i, gslpp::vector< double > &Seigval_i)
Computes the eigenvalues of the S matrix with .
Definition: GeneralTHDMunitarity.cpp:50
unitarity6_GTHDM::unitarity6_GTHDM
unitarity6_GTHDM(const StandardModel &SM_i)
unitarity6_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:186
unitarity8_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:210
unitarity1_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:150
unitarity12_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:250
unitarity8_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:211
unitarity_GTHDM::Seigvec00
gslpp::matrix< gslpp::complex > Seigvec00
Definition: GeneralTHDMunitarity.h:68
unitarity1_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:90
GeneralTHDM::getMyGTHDMCache
GeneralTHDMcache * getMyGTHDMCache() const
Definition: GeneralTHDM.h:564
unitarity_GTHDM::Seigvec01
gslpp::matrix< gslpp::complex > Seigvec01
Definition: GeneralTHDMunitarity.h:68
unitarity9_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:220
lambda3
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:428
unitarity4_GTHDM::unitarity4_GTHDM
unitarity4_GTHDM(const StandardModel &SM_i)
unitarity4_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:256
unitarity_GTHDM::Smat00
gslpp::matrix< gslpp::complex > Smat00
Definition: GeneralTHDMunitarity.h:67
unitarity2_GTHDM::unitarity2_GTHDM
unitarity2_GTHDM(const StandardModel &SM_i)
unitarity2_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:156
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
unitarity2_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:160
unitarity_GTHDM::~unitarity_GTHDM
virtual ~unitarity_GTHDM()
Destructor.
Definition: GeneralTHDMunitarity.cpp:17
gslpp::matrix< gslpp::complex >
unitarity_GTHDM::unitarity_GTHDM
unitarity_GTHDM(const StandardModel &SM_i)
Constructor.
Definition: GeneralTHDMunitarity.cpp:12
GeneralTHDM::getRelambda7
double getRelambda7() const
A getter for the Real part of the Higgs potential parameter .
Definition: GeneralTHDM.h:809
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
unitarity9_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:231
unitarity9_GTHDM::unitarity9_GTHDM
unitarity9_GTHDM(const StandardModel &SM_i)
unitarity9_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:216
unitarity_GTHDM::Seigval21
gslpp::vector< double > Seigval21
Definition: GeneralTHDMunitarity.h:69
unitarity10_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:230
lambda1
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:382
unitarity_GTHDM::getSeigen21
gslpp::vector< double > getSeigen21()
Assigns to a vector the eigenvalues of the S matrix with .
Definition: GeneralTHDMunitarity.cpp:124
lambda4
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:451
unitarity_GTHDM::Seigval01
gslpp::vector< double > Seigval01
Definition: GeneralTHDMunitarity.h:69
unitarity11_GTHDM::unitarity11_GTHDM
unitarity11_GTHDM(const StandardModel &SM_i)
unitarity11_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:236
unitarity10_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:251
GeneralTHDM::getImlambda5
double getImlambda5() const
A getter for the Imaginary part of the Higgs potential parameter .
Definition: GeneralTHDM.h:788
unitarity6_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:190
unitarity_GTHDM::getSeigen01
gslpp::vector< double > getSeigen01()
Assigns to a vector the eigenvalues of the S matrix with .
Definition: GeneralTHDMunitarity.cpp:131
unitarity1_GTHDM::unitarity1_GTHDM
unitarity1_GTHDM(const StandardModel &SM_i)
unitarity1_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:146
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
gslpp::complex::i
static const complex & i()
Definition: gslpp_complex.cpp:154
GeneralTHDM.h
unitarity7_GTHDM::unitarity7_GTHDM
unitarity7_GTHDM(const StandardModel &SM_i)
unitarity7_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:196
unitarity_GTHDM::getSeigen00
gslpp::vector< double > getSeigen00()
Assigns to a vector the eigenvalues of the S matrix with .
Definition: GeneralTHDMunitarity.cpp:138
unitarity10_GTHDM::unitarity10_GTHDM
unitarity10_GTHDM(const StandardModel &SM_i)
unitarity10_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:226
unitarity5_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:151
lambda2
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:405
GeneralTHDM
A class for general Two-Higgs-Doublet models.
Definition: GeneralTHDM.h:463
unitarity4_GTHDM::myGTHDM
const GeneralTHDM & myGTHDM
Definition: GeneralTHDMunitarity.h:311
gslpp::vector< double >
A class for constructing and defining operations on real vectors.
Definition: gslpp_vector_double.h:33
GeneralTHDMcache.h
GeneralTHDM::getRelambda5
double getRelambda5() const
A getter for the Real part of the Higgs potential parameter .
Definition: GeneralTHDM.h:780
unitarity11_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:271
unitarity12_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:291
unitarity5_GTHDM::unitarity5_GTHDM
unitarity5_GTHDM(const StandardModel &SM_i)
unitarity5_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:176
ThObservable
A class for a model prediction of an observable.
Definition: ThObservable.h:25
unitarity_GTHDM::CalcSeigen00
bool CalcSeigen00(gslpp::matrix< gslpp::complex > &Seigvec_i, gslpp::vector< double > &Seigval_i)
Computes the eigenvalues of the S matrix with .
Definition: GeneralTHDMunitarity.cpp:87
unitarity11_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:240
unitarity7_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:200
unitarity_GTHDM::Seigvec21
gslpp::matrix< gslpp::complex > Seigvec21
Definition: GeneralTHDMunitarity.h:68
unitarity6_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:171
unitarity3_GTHDM::computeThValue
double computeThValue()
Definition: GeneralTHDMunitarity.cpp:170
unitarity8_GTHDM::unitarity8_GTHDM
unitarity8_GTHDM(const StandardModel &SM_i)
unitarity8_GTHDM constructor.
Definition: GeneralTHDMunitarity.cpp:206
unitarity_GTHDM::CalcSeigen21
bool CalcSeigen21(gslpp::matrix< gslpp::complex > &Seigvec_i, gslpp::vector< double > &Seigval_i)
Computes the eigenvalues of the S matrix with .
Definition: GeneralTHDMunitarity.cpp:20
GeneralTHDM::getRelambda6
double getRelambda6() const
A getter for the Real part of the Higgs potential parameter .
Definition: GeneralTHDM.h:801
unitarity_GTHDM::myGTHDM
const GeneralTHDM & myGTHDM
Definition: GeneralTHDMunitarity.h:65
unitarity7_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:191
unitarity3_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:131
unitarity2_GTHDM::myunitarity_GTHDM
unitarity_GTHDM myunitarity_GTHDM
Definition: GeneralTHDMunitarity.h:111
unitarity_GTHDM::Smat01
gslpp::matrix< gslpp::complex > Smat01
Definition: GeneralTHDMunitarity.h:67
unitarity_GTHDM::Seigval00
gslpp::vector< double > Seigval00
Definition: GeneralTHDMunitarity.h:69