a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
NPSMEFTd6Matching.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include "NPSMEFTd6Matching.h"
9#include "NPSMEFTd6.h"
10#include <stdexcept>
11
13
14 StandardModelMatching(NPSMEFTd6_i),
15 myNPSMEFTd6(NPSMEFTd6_i),
16 mcbsg(8, NDR, NNLO),
17 mcprimebsg(8, NDR, NNLO),
18 mcbsmm(8, NDR, NNLO, NLO_QED22),
19 mcbdmm(8, NDR, NNLO, NLO_QED22),
20 mcBMll(13, NDR, NLO),
21 mcprimeBMll(13, NDR, NLO),
22 mcbsnn(2, NDR, NLO, NLO_QED11)
23{}
24
26{
27
30
32 loop_factor = myNPSMEFTd6.getCKM().computelamt_s()*ytop*ytop/(16.*M_PI*M_PI);
34
35 C7NP = 0.; // to be implemented
36 C8NP = 0.; // to be implemented
37 C7pNP = 0.; // to be implemented
38 C8pNP = 0.; // to be implemented
39
40 double logLambdaomu = log(myNPSMEFTd6.getLambda_NP()/Muw);
41
47 //CLQ1_3323_tot -= loop_factor*logLambdaomu*(myNPSMEFTd6.getCHL1_33()-myNPSMEFTd6.getCLu_3333());
55 //CLQ3_3323_tot += loop_factor*logLambdaomu*myNPSMEFTd6.getCHL3_33();
62
71
80
87
89}
90
92{}
93
94std::vector<WilsonCoefficient>& NPSMEFTd6Matching::CMbsmm()
95{
96 vmcbsmm.clear();
97 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMbsmm().begin(); it != StandardModelMatching::CMbsmm().end(); it++ ) vmcbsmm.push_back(*it);
98
99 switch (mcbsmm.getScheme()) {
100 case NDR:
101
102 break;
103 default:
104 std::stringstream out;
105 out << mcbsmm.getScheme();
106 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMbsmm(): scheme " + out.str() + "not implemented");
107 }
108
110
111 switch (mcbsmm.getOrder()) {
112 case NNLO:
113 case NLO:
114 mcbsmm.setCoeff(7, 0., NLO);
115 case LO:
116 mcbsmm.setCoeff(7, 0., LO);
117 break;
118 default:
119 std::stringstream out;
120 out << mcbsmm.getOrder();
121 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMbsmm(): order " + out.str() + "not implemented");
122 }
123
124 vmcbsmm.push_back(mcbsmm);
125 return (vmcbsmm);
126}
127
128std::vector<WilsonCoefficient>& NPSMEFTd6Matching::CMbdmm()
129{
130 vmcbdmm.clear();
131 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMbdmm().begin(); it != StandardModelMatching::CMbdmm().end(); it++ ) vmcbdmm.push_back(*it);
132
133 switch (mcbdmm.getScheme()) {
134 case NDR:
135
136 break;
137 default:
138 std::stringstream out;
139 out << mcbdmm.getScheme();
140 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMbdmm(): scheme " + out.str() + "not implemented");
141 }
142
144
145 switch (mcbdmm.getOrder()) {
146 case NNLO:
147 case NLO:
148 mcbdmm.setCoeff(7, 0., NLO);
149 case LO:
150 mcbdmm.setCoeff(7, 0., LO);
151 break;
152 default:
153 std::stringstream out;
154 out << mcbdmm.getOrder();
155 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMbdmm(): order " + out.str() + "not implemented");
156 }
157
158 vmcbdmm.push_back(mcbdmm);
159 return (vmcbdmm);
160}
161
162std::vector<WilsonCoefficient>& NPSMEFTd6Matching::CMbsg()
163{
164 vmcbsg.clear();
165 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMbsg().begin(); it != StandardModelMatching::CMbsg().end(); it++ ) vmcbsg.push_back(*it);
166
167 switch (mcbsg.getScheme()) {
168 case NDR:
169
170 break;
171 default:
172 std::stringstream out;
173 out << mcbsg.getScheme();
174 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMbsg(): scheme " + out.str() + "not implemented");
175 }
176
177 mcbsg.setMu(Muw);
178
179 switch (mcbsg.getOrder()) {
180 case NNLO:
181 mcbsg.setCoeff(6, 0., NNLO);
182 case NLO:
183 mcbsg.setCoeff(6, 0., NLO);
184 case LO:
185 mcbsg.setCoeff(6, C7NP, LO);
186 break;
187 default:
188 std::stringstream out;
189 out << mcbsg.getOrder();
190 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMbsg(): order " + out.str() + "not implemented");
191 }
192
193 vmcbsg.push_back(mcbsg);
194 return (vmcbsg);
195}
196
197std::vector<WilsonCoefficient>& NPSMEFTd6Matching::CMprimebsg()
198{
199 vmcprimebsg.clear();
200 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMprimebsg().begin(); it != StandardModelMatching::CMprimebsg().end(); it++ ) vmcprimebsg.push_back(*it);
201
202 switch (mcprimebsg.getScheme()) {
203 case NDR:
204
205 break;
206 default:
207 std::stringstream out;
208 out << mcprimebsg.getScheme();
209 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMprimebsg(): scheme " + out.str() + "not implemented");
210 }
211
213
214 switch (mcprimebsg.getOrder()) {
215 case NNLO:
216 mcprimebsg.setCoeff(6, 0., NNLO);
217 case NLO:
218 mcprimebsg.setCoeff(6, 0., NLO);
219 case LO:
221 break;
222 default:
223 std::stringstream out;
224 out << mcprimebsg.getOrder();
225 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMprimebsg(): order " + out.str() + "not implemented");
226 }
227
228 vmcprimebsg.push_back(mcprimebsg);
229 return (vmcprimebsg);
230}
231
232std::vector<WilsonCoefficient>& NPSMEFTd6Matching::CMBMll(QCD::lepton lepton)
233{
234 vmcBMll.clear();
235 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMBMll(lepton).begin(); it != StandardModelMatching::CMBMll(lepton).end(); it++ ) vmcBMll.push_back(*it);
236
237 switch (mcbsg.getScheme()) {
238 case NDR:
239
240 break;
241 default:
242 std::stringstream out;
243 out << mcBMll.getScheme();
244 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMBMll(): scheme " + out.str() + "not implemented");
245 }
246
248
249 switch (mcBMll.getOrder()) {
250 case NNLO:
251 case NLO:
252 mcBMll.setCoeff(6, 0., NLO);
253 mcBMll.setCoeff(8, 0., NLO);
254 mcBMll.setCoeff(9, 0., NLO);
255 mcBMll.setCoeff(10, 0., NLO);
256 mcBMll.setCoeff(11, 0., NLO);
257 case LO:
258 mcBMll.setCoeff(6, C7NP, LO);
259 if(lepton == NPSMEFTd6::ELECTRON){
260 mcBMll.setCoeff(8, C9NPe, LO);
262 mcBMll.setCoeff(10, CSNPe, LO);
263 mcBMll.setCoeff(11, CPNPe, LO);
264 }
265 else{
268 mcBMll.setCoeff(10, CSNPmu, LO);
269 mcBMll.setCoeff(11, CPNPmu, LO);
270 }
271 break;
272 default:
273 std::stringstream out;
274 out << mcBMll.getOrder();
275 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMBMll(): order " + out.str() + "not implemented");
276 }
277
278 vmcBMll.push_back(mcBMll);
279 return (vmcBMll);
280}
281
282std::vector<WilsonCoefficient>& NPSMEFTd6Matching::CMprimeBMll(QCD::lepton lepton)
283{
284 vmcprimeBMll.clear();
285 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMprimeBMll(lepton).begin(); it != StandardModelMatching::CMprimeBMll(lepton).end(); it++ ) vmcprimeBMll.push_back(*it);
286
287 switch (mcprimebsg.getScheme()) {
288 case NDR:
289
290 break;
291 default:
292 std::stringstream out;
293 out << mcprimeBMll.getScheme();
294 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMprimeBMll(): scheme " + out.str() + "not implemented");
295 }
296
298
299 switch (mcprimeBMll.getOrder()) {
300 case NNLO:
301 case NLO:
302 mcprimeBMll.setCoeff(6, 0., NLO);
303 mcprimeBMll.setCoeff(8, 0., NLO);
304 mcprimeBMll.setCoeff(9, 0., NLO);
305 mcprimeBMll.setCoeff(10, 0., NLO);
306 mcprimeBMll.setCoeff(11, 0., NLO);
307 case LO:
309 if(lepton == NPSMEFTd6::ELECTRON){
314 }
315 else{
320 }
321 break;
322 default:
323 std::stringstream out;
324 out << mcprimeBMll.getOrder();
325 throw std::runtime_error("FlavourWilsonCoefficientMatching::CMprimeBMll(): order " + out.str() + "not implemented");
326 }
327
328 vmcprimeBMll.push_back(mcprimeBMll);
329 return (vmcprimeBMll);
330}
331
332std::vector<WilsonCoefficient>& NPSMEFTd6Matching::CMBXsnn(QCD::lepton lepton) {
333
334 vmcbsnn.clear();
335 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMBXsnn(lepton).begin(); it != StandardModelMatching::CMBXsnn(lepton).end(); it++ ) vmcbsnn.push_back(*it);
336
338
339 switch (mcbsnn.getOrder()) {
340 case NNLO:
341 case NLO:
342 mcbsnn.setCoeff(0, 0., NLO);
343 mcbsnn.setCoeff(1, 0., NLO);
344 case LO:
345 if(lepton == NPSMEFTd6::NEUTRINO_1){
348 }
349 else if(lepton == NPSMEFTd6::NEUTRINO_2){
352 }
353 else if(lepton == NPSMEFTd6::NEUTRINO_3){
356 }
357 break;
358 default:
359 std::stringstream out;
360 out << mcbsnn.getOrder();
361 throw std::runtime_error("NPSMEFTd6Matching::CMBXsnn(): order " + out.str() + "not implemented");
362 }
363
364 switch (mcbsnn.getOrder_qed()) {
365 case NLO_QED11:
366 mcbsnn.setCoeff(0, 0., NLO_QED11);
367 mcbsnn.setCoeff(1, 0., NLO_QED11);
368 case LO_QED:
369 mcbsnn.setCoeff(0, 0., LO_QED);
370 mcbsnn.setCoeff(1, 0., LO_QED);
371 break;
372 default:
373 std::stringstream out;
374 out << mcbsnn.getOrder_qed();
375 throw std::runtime_error("NPSMEFTd6Matching::CMXsnn(): qed order " + out.str() + " not implemented");
376 }
377
378 vmcbsnn.push_back(mcbsnn);
379 return (vmcbsnn);
380}
@ NNLO
Definition: OrderScheme.h:36
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ NDR
Definition: OrderScheme.h:21
@ NLO_QED11
Definition: OrderScheme.h:59
@ LO_QED
Definition: OrderScheme.h:58
@ NLO_QED22
Definition: OrderScheme.h:63
const gslpp::complex computelamt_s() const
The product of the CKM elements .
Definition: CKM.cpp:174
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficient > & CMBXsnn(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
A model class for new physics in the form of the dimension-six effective Lagrangian.
Definition: NPSMEFTd6.h:1052
const double getCHL1_11() const
Return NP coeff CHL1_11.
Definition: NPSMEFTd6.h:1250
const double getCLQ3_1123() const
Return NP coeff CLQ3_1123.
Definition: NPSMEFTd6.h:1186
const double getCHe_11() const
Return NP coeff CHe_11.
Definition: NPSMEFTd6.h:1282
const double getCLd_3323() const
Return NP coeff CLd_3323.
Definition: NPSMEFTd6.h:1226
const double getCLQ1_3323() const
Return NP coeff CLQ1_3323.
Definition: NPSMEFTd6.h:1178
const double getCLedQ_22() const
Return NP coeff CLedq_22.
Definition: NPSMEFTd6.h:1338
const double getCQe_2311() const
Return NP coeff CQe_2322.
Definition: NPSMEFTd6.h:1146
const double getCHL3_22() const
Return NP coeff CHL3_22.
Definition: NPSMEFTd6.h:1274
const double getCLd_2223() const
Return NP coeff CLd_2223.
Definition: NPSMEFTd6.h:1218
const double getCLd_1123() const
Return NP coeff CLd_1123.
Definition: NPSMEFTd6.h:1210
const double getCLu_2233() const
Return NP coeff CLu_2233.
Definition: NPSMEFTd6.h:1322
const double getLambda_NP() const
Return Lambda_NP.
Definition: NPSMEFTd6.h:1138
const double getCHe_22() const
Return NP coeff CHe_22.
Definition: NPSMEFTd6.h:1290
const double getCHL3_11() const
Return NP coeff CHL3_11.
Definition: NPSMEFTd6.h:1266
const double getCLedQ_11() const
Return NP coeff CLedq_11.
Definition: NPSMEFTd6.h:1330
const double getCed_1123() const
Return NP coeff Ced_1123.
Definition: NPSMEFTd6.h:1234
const double getCLQ3_3323() const
Return NP coeff CLQ3_3323.
Definition: NPSMEFTd6.h:1202
const double getCHL1_22() const
Return NP coeff CHL1_22.
Definition: NPSMEFTd6.h:1258
const double getCLu_1133() const
Return NP coeff CLu_1133.
Definition: NPSMEFTd6.h:1314
const double getCLQ3_2223() const
Return NP coeff CLQ3_2223.
Definition: NPSMEFTd6.h:1194
const double getCLQ1_1123() const
Return NP coeff CLQ1_1123.
Definition: NPSMEFTd6.h:1162
const double getCQe_2322() const
Return NP coeff CQe_2322.
Definition: NPSMEFTd6.h:1154
const double getCeu_2233() const
Return NP coeff Ceu_2233.
Definition: NPSMEFTd6.h:1306
const double getCpLedQ_22() const
Return NP coeff CpLedq_22.
Definition: NPSMEFTd6.h:1354
const double getCLQ1_2223() const
Return NP coeff CLQ1_2223.
Definition: NPSMEFTd6.h:1170
const double getCeu_1133() const
Return NP coeff Ceu_1133.
Definition: NPSMEFTd6.h:1298
const double getCpLedQ_11() const
Return NP coeff CpLedq_11.
Definition: NPSMEFTd6.h:1346
const double getCed_2223() const
Return NP coeff Ced_2223.
Definition: NPSMEFTd6.h:1242
gslpp::complex SMEFT_factor
std::vector< WilsonCoefficient > & CMbdmm()
gslpp::complex CSpNPmu
gslpp::complex CQe_2322_tot
gslpp::complex CQe_2311_tot
gslpp::complex C10NPmu
WilsonCoefficient mcprimebsg
std::vector< WilsonCoefficient > vmcprimeBMll
const NPSMEFTd6 & myNPSMEFTd6
std::vector< WilsonCoefficient > & CMbsg()
gslpp::complex loop_factor_2
gslpp::complex CRnunuNPtau
the Wilson Coefficient .
gslpp::complex CLQ1_3323_tot
gslpp::complex C10NPe
gslpp::complex CSNPe
std::vector< WilsonCoefficient > & CMprimeBMll(QCD::lepton lepton)
gslpp::complex CLQ3_1123_tot
std::vector< WilsonCoefficient > vmcBMll
gslpp::complex C7pNP
gslpp::complex CLQ3_3323_tot
std::vector< WilsonCoefficient > & CMprimebsg()
std::vector< WilsonCoefficient > & CMbsmm()
gslpp::complex C10pNPmu
gslpp::complex C9pNPe
std::vector< WilsonCoefficient > vmcbsmm
gslpp::complex CPNPe
gslpp::complex CLQ3_2223_tot
gslpp::complex CLnunuNPtau
the Wilson Coefficient .
gslpp::complex C9pNPmu
gslpp::complex CLnunuNPe
the Wilson Coefficient .
std::vector< WilsonCoefficient > vmcprimebsg
gslpp::complex CLQ1_1123_tot
std::vector< WilsonCoefficient > & CMBXsnn(QCD::lepton lepton)
std::vector< WilsonCoefficient > vmcbsnn
gslpp::complex C8pNP
void updateNPSMEFTd6Parameters()
Updates to new FlavourWilsonCoefficient parameter sets.
gslpp::complex CSNPmu
gslpp::complex CPpNPe
WilsonCoefficient mcprimeBMll
gslpp::complex C9NPe
gslpp::complex CRnunuNPe
the Wilson Coefficient .
gslpp::complex CSpNPe
gslpp::complex CPNPmu
WilsonCoefficient mcbsg
WilsonCoefficient mcbdmm
gslpp::complex CLnunuNPmu
the Wilson Coefficient .
gslpp::complex C7NP
gslpp::complex CLQ1_2223_tot
gslpp::complex C10pNPe
std::vector< WilsonCoefficient > vmcbsg
WilsonCoefficient mcbsnn
WilsonCoefficient mcbsmm
NPSMEFTd6Matching(const NPSMEFTd6 &NPSMEFTd6_i)
gslpp::complex C8NP
gslpp::complex C9NPmu
gslpp::complex CPpNPmu
gslpp::complex CRnunuNPmu
the Wilson Coefficient .
std::vector< WilsonCoefficient > vmcbdmm
std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)
WilsonCoefficient mcBMll
gslpp::complex loop_factor
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
@ TOP
Definition: QCD.h:328
lepton
An enum type for leptons.
Definition: QCD.h:310
@ NEUTRINO_2
Definition: QCD.h:313
@ NEUTRINO_1
Definition: QCD.h:311
@ ELECTRON
Definition: QCD.h:312
@ NEUTRINO_3
Definition: QCD.h:315
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 CKM & getCKM() const
A get method to retrieve the member object of type CKM.
const double v() const
The Higgs vacuum expectation value.
const double getAle() const
A get method to retrieve the fine-structure constant .
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_qed getOrder_qed() const
orders getOrder() const