a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
LeftRightSymmetricModelMatching.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
10#include <stdexcept>
11
13
14 StandardModelMatching(LeftRightSymmetricModel_i),
15 myLeftRightSymmetricModel(LeftRightSymmetricModel_i),
16 myCKM(3, 3, 0.),
17 myCKMR(3, 3, 0.),
18 mcbsg(8, NDR, NLO),
19 mcprimebsg(8, NDR, NLO),
20 mcBMll(13, NDR, NLO),
21 mcprimeBMll(13, NDR, NLO)
22{}
23
25{
35 gW = sqrt(8.0*myLeftRightSymmetricModel.getGF() / sqrt(2.0)) * mW;
41}
42
44{
45// if ( tanbsg == tan && mtbsg == mt && mhpbsg == mhp && mubsg == mu){
46// switch (order){
47// case NNLO:
48// return ( CWbsgArrayNNLO[i] );
49// case NLO:
50// return ( CWbsgArrayNLO[i] );
51// break;
52// case LO:
53// return ( CWbsgArrayLO[i] );
54// break;
55// default:
56// std::stringstream out;
57// out << order;
58// throw std::runtime_error("order" + out.str() + "not implemeted");
59// }
60// }
61
62// tanbsg = tan; mtbsg = mt; mhpbsg = mhp; mubsg = mu;
63 double xt = mtop * mtop / (mW * mW);
64 double xtm1sq = (xt - 1.0)*(xt - 1.0);
65 double kappa = vev * sqrt(0.5 / (1.0 + xi * xi));
66 double kappaprime = xi*kappa;
67 double kappaR = mWR / gW;
68 gslpp::complex Atb = (mtop / mbottom) * kappaprime * kappa / (kappaR * kappaR)*(cos(alpha) + gslpp::complex::i() * sin(alpha))*(myCKMR(2, 2) / myCKM(2, 2));
69 gslpp::complex DeltaC7_LR = Atb * ((1.5 * xt * xt - xt) * log(xt) / ((1.0 - xt) * xtm1sq) + (-5.0 * xt * xt + 31.0 * xt - 20.0) / (12.0 * xtm1sq));
70 gslpp::complex DeltaC8_LR = Atb * (-1.5 * xt * log(xt) / ((1.0 - xt) * xtm1sq) + (-xt * xt - xt - 4.0) / (4.0 * xtm1sq));
71
72
73 switch (order) {
74 case NNLO:
75 case NLO:
76 case LO:
77
78 CWbsgArrayLO[6] = DeltaC7_LR;
79 CWbsgArrayLO[7] = DeltaC8_LR;
80
81 break;
82 default:
83 std::stringstream out;
84 out << order;
85 throw std::runtime_error("order" + out.str() + "not implemeted");
86 }
87
88 /*std::cout << "CWbsgArrayLO[6] = " << CWbsgArrayLO[6] << std::endl;
89 std::cout << "CWbsgArrayLO[7] = " << CWbsgArrayLO[7] << std::endl << std::endl;*/
90
91
92 switch (order) {
93 // case NNLO:
94 // case NLO:
95 case LO:
96 return ( CWbsgArrayLO[i]);
97 break;
98 default:
99 std::stringstream out;
100 out << order;
101 throw std::runtime_error("order" + out.str() + "not implemeted");
102 }
103}
104
106{
107// if ( tanbsg == tan && mtbsg == mt && mhpbsg == mhp && mubsg == mu){
108// switch (order){
109// case NNLO:
110// return ( CWbsgArrayNNLO[i] );
111// case NLO:
112// return ( CWbsgArrayNLO[i] );
113// break;
114// case LO:
115// return ( CWbsgArrayLO[i] );
116// break;
117// default:
118// std::stringstream out;
119// out << order;
120// throw std::runtime_error("order" + out.str() + "not implemeted");
121// }
122// }
123
124// tanbsg = tan; mtbsg = mt; mhpbsg = mhp; mubsg = mu;
125 double yt = mtop * mtop / mH2psq;
126 double ytm1sq = (yt - 1.0)*(yt - 1.0);
127 double kappa = vev * sqrt(0.5 / (1.0 + xi * xi));
128 double kappaprime = xi*kappa;
129 double sinb = kappaprime * sqrt(2.0) / vev;
130
131 double A1Hp = ((yt * yt - 2.0 / 3.0 * yt) * log(yt) / ((1.0 - yt) * ytm1sq) + (5.0 * yt * yt - 3.0 * yt) / (6.0 * ytm1sq));
132 double A2Hp = -((0.5 * yt * yt * yt - yt * yt / 3.0) * log(yt) / (ytm1sq * ytm1sq)+(-8.0 * yt * yt * yt - 5.0 * yt * yt + 7.0 * yt) / (36.0 * ytm1sq * (yt - 1.0))) - A1Hp;
133 gslpp::complex DeltaC7_Hp = -(sinb * kappa * sqrt(2.0) / vev * mtop / mbottom * (cos(alpha) + gslpp::complex::i() * sin(alpha))*(myCKMR(2, 2) / myCKM(2, 2)) * A1Hp
134 + 4.0 * sinb * sinb * kappa * kappa / (vev * vev) * A2Hp)
135 / (1.0 - 4.0 * sinb * sinb + 4.0 * sinb * sinb * sinb * sinb);
136 gslpp::complex DeltaC8_Hp = 0.0;
137
138 switch (order) {
139 case NNLO:
140 case NLO:
141 case LO:
142
143 CWbsgArrayLO[6] = DeltaC7_Hp;
144 CWbsgArrayLO[7] = DeltaC8_Hp;
145
146 break;
147 default:
148 std::stringstream out;
149 out << order;
150 throw std::runtime_error("order" + out.str() + "not implemeted");
151 }
152
153 /*std::cout << "CWbsgArrayLO[6] = " << CWbsgArrayLO[6] << std::endl;
154 std::cout << "CWbsgArrayLO[7] = " << CWbsgArrayLO[7] << std::endl << std::endl;*/
155
156
157 switch (order) {
158 // case NNLO:
159 // case NLO:
160 case LO:
161 return ( CWbsgArrayLO[i]);
162 break;
163 default:
164 std::stringstream out;
165 out << order;
166 throw std::runtime_error("order" + out.str() + "not implemeted");
167 }
168}
169
171{
172
174
175 switch (mcbsg.getScheme()) {
176 case NDR:
177 break;
178 default:
179 std::stringstream out;
180 out << mcbsg.getScheme();
181 throw std::runtime_error("LeftRightSymmetricModelMatching::CMbsg(): scheme " + out.str() + "not implemented");
182 }
183
184 mcbsg.setMu(mWR);
185
186 switch (mcbsg.getOrder()) {
187 case NNLO:
188 case NLO:
189 case LO: {
190// std::cout<<"LRSM matching"<<std::endl;
191// gslpp::complex dummy7 = setWCbsg(6, 100.0, LO);
192// gslpp::complex dummy8 = setWCbsg(7, 100.0, LO);
193// std::cout<<"C7 = "<<dummy7<<std::endl;
194// std::cout<<"C8 = "<<dummy8<<std::endl;
195 mcbsg.setCoeff(6, setWCbsgWR(6, LO), LO);
196 mcbsg.setCoeff(7, setWCbsgWR(7, LO), LO);
197 break;
198 }
199 default:
200 std::stringstream out;
201 out << mcbsg.getOrder();
202 throw std::runtime_error("LeftRightSymmetricModelMatching::CMbsg(): order " + out.str() + "not implemented");
203 }
204
205 vmcbsg.push_back(mcbsg);
206// return (vmcbsg);
207}
208
209std::vector<WilsonCoefficient>& LeftRightSymmetricModelMatching::CMbsg()
210{
211
212 setCMbsgWR();
213 switch (mcbsg.getScheme()) {
214 case NDR:
215 break;
216 default:
217 std::stringstream out;
218 out << mcbsg.getScheme();
219 throw std::runtime_error("LeftRightSymmetricModelMatching::CMbsg(): scheme " + out.str() + "not implemented");
220 }
221
222 mcbsg.setMu(sqrt(mH2psq));
223
224 switch (mcbsg.getOrder()) {
225 case NNLO:
226 case NLO:
227 case LO: {
228 mcbsg.setCoeff(6, setWCbsgHp(6, LO), LO);
229 mcbsg.setCoeff(7, setWCbsgHp(7, LO), LO);
230 break;
231 }
232 default:
233 std::stringstream out;
234 out << mcbsg.getOrder();
235 throw std::runtime_error("LeftRightSymmetricModelMatching::CMbsg(): order " + out.str() + "not implemented");
236 }
237
238 vmcbsg.push_back(mcbsg);
239 return (vmcbsg);
240}
241
242std::vector<WilsonCoefficient>& LeftRightSymmetricModelMatching::CMprimebsg()
243{
244
246
247 switch (mcprimebsg.getScheme()) {
248 case NDR:
249
250 break;
251 default:
252 std::stringstream out;
253 out << mcprimebsg.getScheme();
254 throw std::runtime_error("LeftRightSymmetricModelMatching::CMprimebsg(): scheme " + out.str() + "not implemented");
255 }
256
258
259 switch (mcprimebsg.getOrder()) {
260 case NNLO:
261 case NLO:
262 mcprimebsg.setCoeff(6, 0., NLO);
263 case LO:
264 mcprimebsg.setCoeff(6, 0., LO);
265 break;
266 default:
267 std::stringstream out;
268 out << mcprimebsg.getOrder();
269 throw std::runtime_error("LeftRightSymmetricModelMatching::CMprimebsg(): order " + out.str() + "not implemented");
270 }
271
272 vmcprimebsg.push_back(mcprimebsg);
273 return (vmcprimebsg);
274}
275
276std::vector<WilsonCoefficient>& LeftRightSymmetricModelMatching::CMBMll(QCD::lepton lepton)
277{
278
280
281 switch (mcbsg.getScheme()) {
282 case NDR:
283
284 break;
285 default:
286 std::stringstream out;
287 out << mcBMll.getScheme();
288 throw std::runtime_error("LeftRightSymmetricModelMatching::CMBMll(): scheme " + out.str() + "not implemented");
289 }
290
292
293 switch (mcBMll.getOrder()) {
294 case NNLO:
295 case NLO:
296 //mcBMll.setCoeff(6, 0., NLO);
297 case LO:
298 mcBMll.setCoeff(6, 0., LO);
299 mcBMll.setCoeff(8, 0., LO);
300 mcBMll.setCoeff(9, 0., LO);
301 break;
302 default:
303 std::stringstream out;
304 out << mcBMll.getOrder();
305 throw std::runtime_error("LeftRightSymmetricModelMatching::CMBMll(): order " + out.str() + "not implemented");
306 }
307
308 vmcBMll.push_back(mcBMll);
309 return (vmcBMll);
310}
311
312std::vector<WilsonCoefficient>& LeftRightSymmetricModelMatching::CMprimeBMll(QCD::lepton lepton)
313{
314
316
317 switch (mcprimebsg.getScheme()) {
318 case NDR:
319
320 break;
321 default:
322 std::stringstream out;
323 out << mcprimeBMll.getScheme();
324 throw std::runtime_error("LeftRightSymmetricModelMatching::CMprimeBMll(): scheme " + out.str() + "not implemented");
325 }
326
328
329 switch (mcprimeBMll.getOrder()) {
330 case NNLO:
331 case NLO:
332 //mcprimeBMll.setCoeff(6, 0., NLO);
333 case LO:
334 mcprimeBMll.setCoeff(6, 0., LO);
335 mcprimeBMll.setCoeff(8, 0., LO);
336 mcprimeBMll.setCoeff(9, 0., LO);
337 break;
338 default:
339 std::stringstream out;
340 out << mcprimeBMll.getOrder();
341 throw std::runtime_error("LeftRightSymmetricModelMatching::CMprimeBMll(): order " + out.str() + "not implemented");
342 }
343
344 vmcprimeBMll.push_back(mcprimeBMll);
345 return (vmcprimeBMll);
346}
@ NNLO
Definition: OrderScheme.h:36
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ FULLNNLO
Definition: OrderScheme.h:39
@ NDR
Definition: OrderScheme.h:21
A base class for generic Left Right Symmetric Models.
gslpp::matrix< gslpp::complex > getVCKMR() const
A get method to retrieve the CKMR matrix.
const LeftRightSymmetricModel & myLeftRightSymmetricModel
std::vector< WilsonCoefficient > vmcprimebsg
std::vector< WilsonCoefficient > vmcBMll
gslpp::complex setWCbsgWR(int i, orders order)
std::vector< WilsonCoefficient > vmcprimeBMll
LeftRightSymmetricModelMatching(const LeftRightSymmetricModel &LeftRightSymmetricModel_i)
std::vector< WilsonCoefficient > & CMprimebsg()
virtual std::vector< WilsonCoefficient > & CMbsg()
std::vector< WilsonCoefficient > vmcbsg
std::vector< WilsonCoefficient > & CMprimeBMll(QCD::lepton lepton)
void updateLeftRightSymmetricModelParameters()
Updates to new LeftRightSymmetricModel parameter sets.
std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)
gslpp::complex setWCbsgHp(int i, orders order)
gslpp::matrix< gslpp::complex > myCKMR
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficient > & CMprimebsg()=0
virtual std::vector< WilsonCoefficient > & CMprimeBMll(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficient > & CMbsg()=0
double getMass_scale() const
A get method to access the scale at which the particle mass is defined.
Definition: Particle.h:133
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
const double Mrun(const double mu, const double m, const quark q, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1353
@ BOTTOM
Definition: QCD.h:329
@ TOP
Definition: QCD.h:328
const double getMut() const
A get method to access the threshold between six- and five-flavour theory in GeV.
Definition: QCD.h:573
lepton
An enum type for leptons.
Definition: QCD.h:310
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:536
const double getMuw() const
A get method to retrieve the matching scale around the weak scale.
const gslpp::matrix< gslpp::complex > getVCKM() const
A get method to retrieve the CKM matrix.
virtual const double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
const double getGF() const
A get method to retrieve the Fermi constant .
const double v() const
The Higgs vacuum expectation value.
A class for the matching in the Standard Model.
void updateSMParameters()
Updates to new Standard Model parameter sets.
void setCoeff(const gslpp::vector< gslpp::complex > &z, orders order_i)
schemes getScheme() const
virtual void setMu(double mu)
orders getOrder() const
A class for , relevant for mesons mixing in the Standard Model.
Definition: xi.h:23
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:33