unitarity.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "unitarity.h"
9 #include "StandardModel.h"
10 
12 : ThObservable(SM_i), myTHDM(static_cast<const THDM*> (&SM_i))
13 {}
14 
16 {
17  return 0.0;
18 }
19 
21 : unitarity(SM_i)
22 {}
23 
25 {
26  double mHl=myTHDM->getMHl();
27  double mA2=myTHDM->getmA2();
28  double mHh2=myTHDM->getmHh2();
29  double vev=myTHDM->v();
30  double sina=myTHDM->getsina();
31  double cosa=myTHDM->getcosa();
32  double tanb=myTHDM->gettanb();
33  double sinb=myTHDM->getsinb();
34  double cosb=myTHDM->getcosb();
35  double m12_2=myTHDM->getm12_2();
36 
37  return ((mHl*mHl*cosa*cosa +mHh2*sina*sina -m12_2/tanb)/sinb/sinb
38  +(mHh2*cosa*cosa +mHl*mHl*sina*sina - m12_2*tanb)/cosb/cosb
39  +sqrt(4.0*pow(mA2 -m12_2/(cosb*sinb),2)
40  +pow((mHl*mHl/cosb/cosb -mHh2/sinb/sinb)*sina*sina
41  +(mHh2/cosb/cosb -mHl*mHl/sinb/sinb)*cosa*cosa
42  +m12_2/tanb/sinb/sinb -m12_2*tanb/cosb/cosb,2)))/(2.0*vev*vev);
43 }
44 
46 : unitarity(SM_i)
47 {}
48 
50 {
51  double mHl=myTHDM->getMHl();
52  double mA2=myTHDM->getmA2();
53  double mHh2=myTHDM->getmHh2();
54  double vev=myTHDM->v();
55  double sina=myTHDM->getsina();
56  double cosa=myTHDM->getcosa();
57  double tanb=myTHDM->gettanb();
58  double sinb=myTHDM->getsinb();
59  double cosb=myTHDM->getcosb();
60  double m12_2=myTHDM->getm12_2();
61 
62  return ((mHl*mHl*cosa*cosa +mHh2*sina*sina -m12_2/tanb)/sinb/sinb
63  +(mHh2*cosa*cosa +mHl*mHl*sina*sina - m12_2*tanb)/cosb/cosb
64  -sqrt(4.0*pow(mA2 -m12_2/(cosb*sinb),2)
65  +pow((mHl*mHl/cosb/cosb -mHh2/sinb/sinb)*sina*sina
66  +(mHh2/cosb/cosb -mHl*mHl/sinb/sinb)*cosa*cosa
67  +m12_2/tanb/sinb/sinb -m12_2*tanb/cosb/cosb,2)))/(2.0*vev*vev);
68 }
69 
71 : unitarity(SM_i)
72 {}
73 
75 {
76  double mHl=myTHDM->getMHl();
77  double mA2=myTHDM->getmA2();
78  double mHh2=myTHDM->getmHh2();
79  double mHp2=myTHDM->getmHp2();
80  double vev=myTHDM->v();
81  double sina=myTHDM->getsina();
82  double cosa=myTHDM->getcosa();
83  double tanb=myTHDM->gettanb();
84  double sinb=myTHDM->getsinb();
85  double cosb=myTHDM->getcosb();
86  double m12_2=myTHDM->getm12_2();
87 
88  return ((mHl*mHl*cosa*cosa +mHh2*sina*sina -m12_2/tanb)/sinb/sinb
89  +(mHh2*cosa*cosa +mHl*mHl*sina*sina - m12_2*tanb)/cosb/cosb
90  +sqrt(4.0*pow(mA2 -2*mHp2 +m12_2/(cosb*sinb),2)
91  +pow((mHl*mHl/cosb/cosb -mHh2/sinb/sinb)*sina*sina
92  +(mHh2/cosb/cosb -mHl*mHl/sinb/sinb)*cosa*cosa
93  +m12_2/tanb/sinb/sinb -m12_2*tanb/cosb/cosb,2)))/(2.0*vev*vev);
94 }
95 
97 : unitarity(SM_i)
98 {}
99 
101 {
102  double mHl=myTHDM->getMHl();
103  double mA2=myTHDM->getmA2();
104  double mHh2=myTHDM->getmHh2();
105  double mHp2=myTHDM->getmHp2();
106  double vev=myTHDM->v();
107  double sina=myTHDM->getsina();
108  double cosa=myTHDM->getcosa();
109  double tanb=myTHDM->gettanb();
110  double sinb=myTHDM->getsinb();
111  double cosb=myTHDM->getcosb();
112  double m12_2=myTHDM->getm12_2();
113 
114  return ((mHl*mHl*cosa*cosa +mHh2*sina*sina -m12_2/tanb)/sinb/sinb
115  +(mHh2*cosa*cosa +mHl*mHl*sina*sina - m12_2*tanb)/cosb/cosb
116  -sqrt(4.0*pow(mA2 -2*mHp2 +m12_2/(cosb*sinb),2)
117  +pow((mHl*mHl/cosb/cosb -mHh2/sinb/sinb)*sina*sina
118  +(mHh2/cosb/cosb -mHl*mHl/sinb/sinb)*cosa*cosa
119  +m12_2/tanb/sinb/sinb -m12_2*tanb/cosb/cosb,2)))/(2.0*vev*vev);
120 }
121 
123 : unitarity(SM_i)
124 {}
125 
127 {
128  double mHl=myTHDM->getMHl();
129  double mA2=myTHDM->getmA2();
130  double mHh2=myTHDM->getmHh2();
131  double mHp2=myTHDM->getmHp2();
132  double vev=myTHDM->v();
133  double sina=myTHDM->getsina();
134  double cosa=myTHDM->getcosa();
135  double tanb=myTHDM->gettanb();
136  double sinb=myTHDM->getsinb();
137  double cosb=myTHDM->getcosb();
138  double m12_2=myTHDM->getm12_2();
139 
140  return (3.0*((mHh2/cosb/cosb +mHl*mHl/sinb/sinb)*cosa*cosa
141  +(mHl*mHl/cosb/cosb + mHh2/sinb/sinb)*sina*sina
142  -m12_2*(1.0/tanb/sinb/sinb + tanb/cosb/cosb))
143  +sqrt(4.0*pow(mA2 + 2.0*mHp2
144  -(m12_2 +2.0*(mHl*mHl - mHh2)*cosa*sina)/(cosb*sinb),2)
145  +(9.0*pow((mHl*mHl - mHh2)*(cosa*cosa - sina*sina)
146  +(mHl*mHl + mHh2 -(2.0*m12_2)/(cosb*sinb))
147  *(cosb*cosb - sinb*sinb),2))
148  /(4.0*pow(cosb,4)*pow(sinb,4))))/(2.0*vev*vev);
149 }
150 
152 : unitarity(SM_i)
153 {}
154 
156 {
157  double mHl=myTHDM->getMHl();
158  double mA2=myTHDM->getmA2();
159  double mHh2=myTHDM->getmHh2();
160  double mHp2=myTHDM->getmHp2();
161  double vev=myTHDM->v();
162  double sina=myTHDM->getsina();
163  double cosa=myTHDM->getcosa();
164  double tanb=myTHDM->gettanb();
165  double sinb=myTHDM->getsinb();
166  double cosb=myTHDM->getcosb();
167  double m12_2=myTHDM->getm12_2();
168 
169  return (3.0*((mHh2/cosb/cosb +mHl*mHl/sinb/sinb)*cosa*cosa
170  +(mHl*mHl/cosb/cosb + mHh2/sinb/sinb)*sina*sina
171  -m12_2*(1.0/tanb/sinb/sinb + tanb/cosb/cosb))
172  -sqrt(4.0*pow(mA2 + 2.0*mHp2
173  -(m12_2 +2.0*(mHl*mHl - mHh2)*cosa*sina)/(cosb*sinb),2)
174  +(9.0*pow((mHl*mHl - mHh2)*(cosa*cosa - sina*sina)
175  +(mHl*mHl + mHh2 -(2.0*m12_2)/(cosb*sinb))
176  *(cosb*cosb - sinb*sinb),2))
177  /(4.0*pow(cosb,4)*pow(sinb,4))))/(2.0*vev*vev);
178 }
179 
181 : unitarity(SM_i)
182 {}
183 
185 {
186  double mHl=myTHDM->getMHl();
187  double mA2=myTHDM->getmA2();
188  double mHh2=myTHDM->getmHh2();
189  double vev=myTHDM->v();
190  double sina=myTHDM->getsina();
191  double cosa=myTHDM->getcosa();
192  double sinb=myTHDM->getsinb();
193  double cosb=myTHDM->getcosb();
194 
195  return (mA2 +((mHh2-mHl*mHl)*cosa*sina)/(cosb*sinb))/(vev*vev);
196 }
197 
199 : unitarity(SM_i)
200 {}
201 
203 {
204  double mHl=myTHDM->getMHl();
205  double mA2=myTHDM->getmA2();
206  double mHh2=myTHDM->getmHh2();
207  double mHp2=myTHDM->getmHp2();
208  double vev=myTHDM->v();
209  double sina=myTHDM->getsina();
210  double cosa=myTHDM->getcosa();
211  double sinb=myTHDM->getsinb();
212  double cosb=myTHDM->getcosb();
213  double m12_2=myTHDM->getm12_2();
214 
215  return (-mA2 +4.0*mHp2
216  +((mHh2-mHl*mHl)*cosa*sina -2.0*m12_2)/(cosb*sinb))/(vev*vev);
217 }
218 
220 : unitarity(SM_i)
221 {}
222 
224 {
225  double mHl=myTHDM->getMHl();
226  double mA2=myTHDM->getmA2();
227  double mHh2=myTHDM->getmHh2();
228  double mHp2=myTHDM->getmHp2();
229  double vev=myTHDM->v();
230  double sina=myTHDM->getsina();
231  double cosa=myTHDM->getcosa();
232  double sinb=myTHDM->getsinb();
233  double cosb=myTHDM->getcosb();
234 
235  return (-mA2 +2.0*mHp2
236  +((mHh2-mHl*mHl)*cosa*sina)/(cosb*sinb))/(vev*vev);
237 }
238 
240 : unitarity(SM_i)
241 {}
242 
244 {
245  double mHl=myTHDM->getMHl();
246  double mA2=myTHDM->getmA2();
247  double mHh2=myTHDM->getmHh2();
248  double mHp2=myTHDM->getmHp2();
249  double vev=myTHDM->v();
250  double sina=myTHDM->getsina();
251  double cosa=myTHDM->getcosa();
252  double sinb=myTHDM->getsinb();
253  double cosb=myTHDM->getcosb();
254  double m12_2=myTHDM->getm12_2();
255 
256  return (mA2 +2.0*mHp2
257  +((mHh2-mHl*mHl)*cosa*sina -2.0*m12_2)/(cosb*sinb))/(vev*vev);
258 }
259 
261 : unitarity(SM_i)
262 {}
263 
265 {
266  double mHl=myTHDM->getMHl();
267  double mA2=myTHDM->getmA2();
268  double mHh2=myTHDM->getmHh2();
269  double mHp2=myTHDM->getmHp2();
270  double vev=myTHDM->v();
271  double sina=myTHDM->getsina();
272  double cosa=myTHDM->getcosa();
273  double sinb=myTHDM->getsinb();
274  double cosb=myTHDM->getcosb();
275  double m12_2=myTHDM->getm12_2();
276 
277  return (-mA2 -2.0*mHp2
278  +((mHh2-mHl*mHl)*cosa*sina +4.0*m12_2)/(cosb*sinb))/(vev*vev);
279 }
280 
282 : unitarity(SM_i)
283 {}
284 
286 {
287  double mHl=myTHDM->getMHl();
288  double mA2=myTHDM->getmA2();
289  double mHh2=myTHDM->getmHh2();
290  double mHp2=myTHDM->getmHp2();
291  double vev=myTHDM->v();
292  double sina=myTHDM->getsina();
293  double cosa=myTHDM->getcosa();
294  double sinb=myTHDM->getsinb();
295  double cosb=myTHDM->getcosb();
296  double m12_2=myTHDM->getm12_2();
297 
298  return (5.0*mA2 -2.0*mHp2
299  +((mHh2-mHl*mHl)*cosa*sina -2.0*m12_2)/(cosb*sinb))/(vev*vev);
300 }
double computeThValue()
Definition: unitarity.cpp:126
double computeThValue()
Definition: unitarity.cpp:49
unitarity11(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:260
const THDM * myTHDM
Definition: unitarity.h:44
double computeThValue()
Definition: unitarity.cpp:155
double computeThValue()
Definition: unitarity.cpp:184
double computeThValue()
Definition: unitarity.cpp:285
unitarity2(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:45
double getm12_2() const
Definition: THDM.h:278
double getsina() const
Definition: THDM.h:222
double getsinb() const
Definition: THDM.h:182
complex pow(const complex &z1, const complex &z2)
double getcosb() const
Definition: THDM.h:190
double getmHp2() const
Definition: THDM.h:262
A class for a model prediction of an observable.
Definition: ThObservable.h:22
double computeThValue()
Definition: unitarity.cpp:202
double computeThValue()
Definition: unitarity.cpp:223
unitarity1(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:20
A model class for the Standard Model.
double gettanb() const
Definition: THDM.h:174
unitarity7(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:180
double computeThValue()
Definition: unitarity.cpp:243
double getmHh2() const
Definition: THDM.h:230
unitarity12(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:281
double getmA2() const
Definition: THDM.h:246
unitarity6(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:151
virtual double v() const
The Higgs vacuum expectation value. where is the Fermi constant, measured through muon decays...
double computeThValue()
Definition: unitarity.cpp:74
unitarity9(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:219
unitarity8(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:198
unitarity10(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:239
A base class symmetric Two-Higgs-Doublet models.
Definition: THDM.h:94
unitarity(const StandardModel &SM_i)
Constructor.
Definition: unitarity.cpp:11
double computeThValue()
An empty constructor.
Definition: unitarity.cpp:15
unitarity5(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:122
unitarity3(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:70
An observable class for the requirement of tree level perturbative unitarity.
Definition: unitarity.h:30
double computeThValue()
Definition: unitarity.cpp:264
double computeThValue()
Definition: unitarity.cpp:100
double getMHl() const
A get method to retrieve the Higgs mass .
double computeThValue()
Definition: unitarity.cpp:24
double getcosa() const
Definition: THDM.h:214
unitarity4(const StandardModel &SM_i)
Constructor for from equations (9) in .
Definition: unitarity.cpp:96
complex sqrt(const complex &z)