a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
STU.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2015 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include "STU.h"
9#include "THDM.h"
10#include "THDMcache.h"
11
13: ThObservable(SM_i), myTHDM(static_cast<const THDM*> (&SM_i))
14
15{
16 mycache = new THDMcache(SM_i);
17};
18
20{
21 return 0.0;
22}
23
25
26double STU::F(const double m02, const double m12) const {
27 double F;
28
29 if(m02 == 0. && m12 != 0.) {
30 F=0.5 * m12;
31 } else if(m02 != 0. && m12 == 0.){
32 F=0.5 * m02;
33 } else if((m02 == 0. && m12 == 0.) || (fabs(m02-m12) < LEPS)){
34 F=0.;
35 } else if (m02 != 0 && m12 != 0){
36 F=0.5 * (m02 + m12) - (m02 * m12) / (m02 - m12) * log(m02 / m12);
37 } else
38 throw std::runtime_error("Error in THDM::F()");
39 return (F);
40}
41
43
45: STU(SM_i)
46{}
47
49{
50 double mHl2=myTHDM->getmHl2();
51 double mHh2=myTHDM->getmHh2();
52 double mA2=myTHDM->getmA2();
53 double mHp2=myTHDM->getmHp2();
54 double sin_ba=myTHDM->getsin_ba();
55 double sin2_ba = sin_ba*sin_ba;
56 double cos2_ba = 1. - sin2_ba;
57 double MZ=myTHDM->getMz();
58 double MZ2 = MZ*MZ;
59
60 gslpp::complex B00prime_MZ2_MZ2_mHh2_mA2;
61 gslpp::complex B00prime_MZ2_MZ2_mHp2_mHp2;
62 gslpp::complex B00prime_MZ2_MZ2_mHl2_mA2;
63 gslpp::complex B00prime_MZ2_MZ2_MZ2_mHh2;
64 gslpp::complex B00prime_MZ2_MZ2_MZ2_mHl2;
65 gslpp::complex B0prime_MZ2_MZ2_MZ2_mHh2;
66 gslpp::complex B0prime_MZ2_MZ2_MZ2_mHl2;
67
68 B00prime_MZ2_MZ2_mHh2_mA2 = mycache->B00_MZ2_MZ2_mHh2_mA2(MZ2,mHh2,mA2) - mycache->B00_MZ2_0_mHh2_mA2(MZ2,mHh2,mA2);
69 B00prime_MZ2_MZ2_mHp2_mHp2 = mycache->B00_MZ2_MZ2_mHp2_mHp2(MZ2,mHp2) - mycache->B00_MZ2_0_mHp2_mHp2(MZ2,mHp2);
70 B00prime_MZ2_MZ2_mHl2_mA2 = mycache->B00_MZ2_MZ2_mHl2_mA2(MZ2,mHl2,mA2) - mycache->B00_MZ2_0_mHl2_mA2(MZ2,mHl2,mA2);
71 B00prime_MZ2_MZ2_MZ2_mHh2 = mycache->B00_MZ2_MZ2_MZ2_mHh2(MZ2,mHh2) - mycache->B00_MZ2_0_MZ2_mHh2(MZ2,mHh2);
72 B00prime_MZ2_MZ2_MZ2_mHl2 = mycache->B00_MZ2_MZ2_MZ2_mHl2(MZ2,mHl2) - mycache->B00_MZ2_0_MZ2_mHl2(MZ2,mHl2);
73 B0prime_MZ2_MZ2_MZ2_mHh2 = mycache->B0_MZ2_MZ2_MZ2_mHh2(MZ2,mHh2) - mycache->B0_MZ2_0_MZ2_mHh2(MZ2,mHh2);
74 B0prime_MZ2_MZ2_MZ2_mHl2 = mycache->B0_MZ2_MZ2_MZ2_mHl2(MZ2,mHl2) - mycache->B0_MZ2_0_MZ2_mHl2(MZ2,mHl2);
75
76 return 1./MZ2/M_PI*(sin2_ba * B00prime_MZ2_MZ2_mHh2_mA2.real() - B00prime_MZ2_MZ2_mHp2_mHp2.real()
77 + cos2_ba * (B00prime_MZ2_MZ2_mHl2_mA2.real() + B00prime_MZ2_MZ2_MZ2_mHh2.real()
78 - B00prime_MZ2_MZ2_MZ2_mHl2.real() - MZ2 * B0prime_MZ2_MZ2_MZ2_mHh2.real()
79 + MZ2 * B0prime_MZ2_MZ2_MZ2_mHl2.real()));
80}
81
83: STU(SM_i)
84{}
85
87{
88 double mHl2=myTHDM->getmHl2();
89 double mHh2=myTHDM->getmHh2();
90 double mA2=myTHDM->getmA2();
91 double mHp2=myTHDM->getmHp2();
92 double sin_ba=myTHDM->getsin_ba();
93 double sin2_ba = sin_ba*sin_ba;
94 double cos2_ba = 1. - sin2_ba;
95 double MZ=myTHDM->getMz();
96 double MZ2 = MZ*MZ;
97 double MW=mycache->MWTHDM(myTHDM->Mw_tree());
98 double MW2 = MW*MW;
99 double s_W2 = 1.0-mycache->cW2THDM(myTHDM->c02());
100
101 gslpp::complex B0_MZ2_0_MZ2_mHh2;
102 gslpp::complex B0_MZ2_0_MZ2_mHl2;
103 gslpp::complex B0_MZ2_0_MW2_mHh2;
104 gslpp::complex B0_MZ2_0_MW2_mHl2;
105
106 B0_MZ2_0_MZ2_mHh2 = mycache->B0_MZ2_0_MZ2_mHh2(MZ2,mHh2);
107 B0_MZ2_0_MZ2_mHl2 = mycache->B0_MZ2_0_MZ2_mHl2(MZ2,mHl2);
108 B0_MZ2_0_MW2_mHh2 = mycache->B0_MZ2_0_MW2_mHh2(MZ2,MW2,mHh2);
109 B0_MZ2_0_MW2_mHl2 = mycache->B0_MZ2_0_MW2_mHl2(MZ2,MW2,mHl2);
110
111 return 1. / 16. / M_PI / MW2 / s_W2 * (F(mHp2,mA2)
112 + sin2_ba * (F(mHp2,mHh2) - F(mA2,mHh2)) + cos2_ba * (F(mHp2,mHl2)
113 - F(mA2,mHl2) + F(MW2,mHh2) - F(MW2,mHl2) - F(MZ2,mHh2)
114 + F(MZ2,mHl2) + 4. * MZ2 * (B0_MZ2_0_MZ2_mHh2.real() - B0_MZ2_0_MZ2_mHl2.real())
115 - 4. * MW2 * (B0_MZ2_0_MW2_mHh2.real() - B0_MZ2_0_MW2_mHl2.real())));
116}
117
119: STU(SM_i)
120{
121 myDeltaS = new DeltaS(SM_i);
122}
123
125{
126 double mHl2=myTHDM->getmHl2();
127 double mHh2=myTHDM->getmHh2();
128 double mA2=myTHDM->getmA2();
129 double mHp2=myTHDM->getmHp2();
130 double sin_ba=myTHDM->getsin_ba();
131 double sin2_ba = sin_ba*sin_ba;
132 double cos2_ba = 1. - sin2_ba;
133 double MZ=myTHDM->getMz();
134 double MZ2 = MZ*MZ;
135 double MW =mycache->MWTHDM(myTHDM->Mw_tree());
136 double MW2 = MW*MW;
137
138 gslpp::complex B00prime_MZ2_MW2_mA2_mHp2;
139 gslpp::complex B00prime_MZ2_MW2_mHp2_mHp2;
140 gslpp::complex B00prime_MZ2_MW2_mHh2_mHp2;
141 gslpp::complex B00prime_MZ2_MW2_mHl2_mHp2;
142 gslpp::complex B00prime_MZ2_MW2_MW2_mHh2;
143 gslpp::complex B00prime_MZ2_MW2_MW2_mHl2;
144 gslpp::complex B0prime_MZ2_MW2_MW2_mHh2;
145 gslpp::complex B0prime_MZ2_MW2_MW2_mHl2;
146
147 B00prime_MZ2_MW2_mA2_mHp2 = mycache->B00_MZ2_MW2_mA2_mHp2(MZ2,MW2,mA2,mHp2) - mycache->B00_MZ2_0_mA2_mHp2(MZ2,mA2,mHp2);
148 B00prime_MZ2_MW2_mHp2_mHp2 = mycache->B00_MZ2_MW2_mHp2_mHp2(MZ2,MW2,mHp2) - mycache->B00_MZ2_0_mHp2_mHp2(MZ2,mHp2);
149 B00prime_MZ2_MW2_mHh2_mHp2 = mycache->B00_MZ2_MW2_mHh2_mHp2(MZ2,MW2,mHh2,mHp2) - mycache->B00_MZ2_0_mHh2_mHp2(MZ2,mHh2,mHp2);
150 B00prime_MZ2_MW2_mHl2_mHp2 = mycache->B00_MZ2_MW2_mHl2_mHp2(MZ2,MW2,mHl2,mHp2) - mycache->B00_MZ2_0_mHl2_mHp2(MZ2,mHl2,mHp2);
151 B00prime_MZ2_MW2_MW2_mHh2 = mycache->B00_MZ2_MW2_MW2_mHh2(MZ2,MW2,mHh2) - mycache->B00_MZ2_0_MW2_mHh2(MZ2,MW2,mHh2);
152 B00prime_MZ2_MW2_MW2_mHl2 = mycache->B00_MZ2_MW2_MW2_mHl2(MZ2,MW2,mHl2) - mycache->B00_MZ2_0_MW2_mHl2(MZ2,MW2,mHl2);
153 B0prime_MZ2_MW2_MW2_mHh2 = mycache->B0_MZ2_MW2_MW2_mHh2(MZ2,MW2,mHh2) - mycache->B0_MZ2_0_MW2_mHh2(MZ2,MW2,mHh2);
154 B0prime_MZ2_MW2_MW2_mHl2 = mycache->B0_MZ2_MW2_MW2_mHl2(MZ2,MW2,mHl2) - mycache->B0_MZ2_0_MW2_mHl2(MZ2,MW2,mHl2);
155
156 return - myDeltaS->computeThValue() + 1. / M_PI / MZ2 * (B00prime_MZ2_MW2_mA2_mHp2.real()
157 - 2. * B00prime_MZ2_MW2_mHp2_mHp2.real() + sin2_ba * B00prime_MZ2_MW2_mHh2_mHp2.real()
158 + cos2_ba * (B00prime_MZ2_MW2_mHl2_mHp2.real() + B00prime_MZ2_MW2_MW2_mHh2.real()
159 - B00prime_MZ2_MW2_MW2_mHl2.real() - MW2 * B0prime_MZ2_MW2_MW2_mHh2.real()
160 + MW2 * B0prime_MZ2_MW2_MW2_mHl2.real()));
161}
An observable class for the THDM contribution to the electroweak Peskin-Takeuchi pseudo-observable .
Definition: STU.h:58
double computeThValue()
THDM contribution to .
Definition: STU.cpp:48
DeltaS(const StandardModel &SM_i)
Constructor for DeltaS.
Definition: STU.cpp:44
double computeThValue()
THDM contribution to .
Definition: STU.cpp:86
DeltaT(const StandardModel &SM_i)
Constructor for DeltaT.
Definition: STU.cpp:82
DeltaS * myDeltaS
Definition: STU.h:113
double computeThValue()
Definition: STU.cpp:124
DeltaU(const StandardModel &SM_i)
THDM contribution to .
Definition: STU.cpp:118
An observable class for the electroweak Peskin-Takeuchi pseudo-observables.
Definition: STU.h:24
double computeThValue()
Empty constructor.
Definition: STU.cpp:19
THDMcache * mycache
Definition: STU.h:49
double F(const double m02, const double m12) const
Function used for THDM. Remember that this function is defined for THDM while for SUSY we have a mul...
Definition: STU.cpp:26
const THDM * myTHDM
Definition: STU.h:37
STU(const StandardModel &SM_i)
Constructor.
Definition: STU.cpp:12
A model class for the Standard Model.
const double getMz() const
A get method to access the mass of the boson .
const double c02() const
The square of the cosine of the weak mixing angle defined without weak radiative corrections.
const double Mw_tree() const
The tree-level mass of the boson, .
A base class for symmetric Two-Higgs-Doublet models.
Definition: THDM.h:120
double getmHh2() const
A method get the squared mass of the "non-125 GeV" neutral scalar Higgs.
Definition: THDM.h:365
double getmHl2() const
A method get the squared mass of the lighter neutral scalar Higgs.
Definition: THDM.h:339
double getmHp2() const
A method get the squared charged Higgs mass.
Definition: THDM.h:457
double getsin_ba() const
A method get .
Definition: THDM.h:315
double getmA2() const
A method get the squared mass of the pseudoscalar Higgs A.
Definition: THDM.h:423
A class for the caching of some THDM objects.
Definition: THDMcache.h:29
gslpp::complex B00_MZ2_0_mHl2_mHp2(const double MZ2, const double mHl2, const double mHp2) const
.
Definition: THDMcache.cpp:1372
gslpp::complex B00_MZ2_MZ2_MZ2_mHl2(const double MZ2, const double mHl2) const
.
Definition: THDMcache.cpp:1596
double cW2THDM(const double c02) const
Definition: THDMcache.cpp:7451
gslpp::complex B0_MZ2_0_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const
.
Definition: THDMcache.cpp:332
gslpp::complex B00_MZ2_MZ2_mHh2_mA2(const double MZ2, const double mHh2, const double mA2) const
.
Definition: THDMcache.cpp:1540
gslpp::complex B00_MZ2_0_mHp2_mHp2(const double MZ2, const double mHp2) const
.
Definition: THDMcache.cpp:1386
gslpp::complex B0_MZ2_MZ2_MZ2_mHh2(const double MZ2, const double mHh2) const
.
Definition: THDMcache.cpp:402
gslpp::complex B00_MZ2_0_mHh2_mA2(const double MZ2, const double mHh2, const double mA2) const
.
Definition: THDMcache.cpp:1330
gslpp::complex B0_MZ2_MW2_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const
.
Definition: THDMcache.cpp:388
gslpp::complex B00_MZ2_0_mHh2_mHp2(const double MZ2, const double mHh2, const double mHp2) const
.
Definition: THDMcache.cpp:1344
gslpp::complex B00_MZ2_MW2_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const
.
Definition: THDMcache.cpp:1526
gslpp::complex B00_MZ2_MW2_mA2_mHp2(const double MZ2, const double MW2, const double mA2, const double mHp2) const
.
Definition: THDMcache.cpp:1456
gslpp::complex B00_MZ2_0_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const
.
Definition: THDMcache.cpp:1400
gslpp::complex B00_MZ2_MW2_mHh2_mHp2(const double MZ2, const double MW2, const double mHh2, const double mHp2) const
.
Definition: THDMcache.cpp:1470
gslpp::complex B00_MZ2_0_MZ2_mHh2(const double MZ2, const double mHh2) const
.
Definition: THDMcache.cpp:1428
gslpp::complex B0_MZ2_0_MZ2_mHh2(const double MZ2, const double mHh2) const
.
Definition: THDMcache.cpp:346
double MWTHDM(const double MW) const
Definition: THDMcache.cpp:7457
gslpp::complex B00_MZ2_MZ2_MZ2_mHh2(const double MZ2, const double mHh2) const
.
Definition: THDMcache.cpp:1582
gslpp::complex B00_MZ2_0_MZ2_mHl2(const double MZ2, const double mHl2) const
.
Definition: THDMcache.cpp:1442
gslpp::complex B0_MZ2_MW2_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const
.
Definition: THDMcache.cpp:374
gslpp::complex B00_MZ2_MW2_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const
.
Definition: THDMcache.cpp:1512
gslpp::complex B00_MZ2_MZ2_mHl2_mA2(const double MZ2, const double mHl2, const double mA2) const
.
Definition: THDMcache.cpp:1554
gslpp::complex B00_MZ2_MW2_mHp2_mHp2(const double MZ2, const double MW2, const double mHp2) const
.
Definition: THDMcache.cpp:1498
gslpp::complex B00_MZ2_0_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const
.
Definition: THDMcache.cpp:1414
gslpp::complex B0_MZ2_0_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const
.
Definition: THDMcache.cpp:318
gslpp::complex B00_MZ2_MW2_mHl2_mHp2(const double MZ2, const double MW2, const double mHl2, const double mHp2) const
.
Definition: THDMcache.cpp:1484
gslpp::complex B00_MZ2_0_mHl2_mA2(const double MZ2, const double mHl2, const double mA2) const
.
Definition: THDMcache.cpp:1358
gslpp::complex B0_MZ2_0_MZ2_mHl2(const double MZ2, const double mHl2) const
.
Definition: THDMcache.cpp:360
gslpp::complex B00_MZ2_0_mA2_mHp2(const double MZ2, const double mA2, const double mHp2) const
.
Definition: THDMcache.cpp:1316
gslpp::complex B0_MZ2_MZ2_MZ2_mHl2(const double MZ2, const double mHl2) const
.
Definition: THDMcache.cpp:416
gslpp::complex B00_MZ2_MZ2_mHp2_mHp2(const double MZ2, const double mHp2) const
.
Definition: THDMcache.cpp:1568
A class for a model prediction of an observable.
Definition: ThObservable.h:25