a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
LoopMediatorsMatching.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
9#include "LoopMediators.h"
10#include <stdexcept>
11
13
14 StandardModelMatching(LoopMediators_i),
15 myLoopMediators(LoopMediators_i),
16 mcbsg(8, NDR, NNLO),
17 mcprimebsg(8, NDR, NNLO),
18 mcBMll(13, NDR, NLO),
19 mcprimeBMll(13, NDR, NLO),
20 mcdbs2(5, NDR, NLO)
21{}
22
24{
25
26 C1NP = myLoopMediators.getC1();
28 C3NP = myLoopMediators.getC3();
30 C5NP = myLoopMediators.getC5();
31
33 C2pNP = myLoopMediators.getC2p();
35
36 C7NP = myLoopMediators.getC7();
38 C9NPmu = myLoopMediators.getC9();
40 CSNPmu = myLoopMediators.getCS();
42
43 C7pNP = myLoopMediators.getC7p();
45 C9pNPmu = myLoopMediators.getC9p();
47 CSpNPmu = myLoopMediators.getCSp();
49
50 WCscale = myLoopMediators.getWCscale();
51
53}
54
56{}
57
58
59std::vector<WilsonCoefficient>& LoopMediatorsMatching::CMbsg()
60{
61 vmcbsg.clear();
62 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMbsg().begin(); it != StandardModelMatching::CMbsg().end(); it++ ) vmcbsg.push_back(*it);
63
64 switch (mcbsg.getScheme()) {
65 case NDR:
66
67 break;
68 default:
69 std::stringstream out;
70 out << mcbsg.getScheme();
71 throw std::runtime_error("LoopMediatorsMatching::CMbsg(): scheme " + out.str() + "not implemented");
72 }
73
75
76 switch (mcbsg.getOrder()) {
77 case NNLO:
78 mcbsg.setCoeff(6, 0., NNLO);
79 case NLO:
80 mcbsg.setCoeff(6, 0., NLO);
81 case LO:
82 mcbsg.setCoeff(6, C7NP, LO);
83 break;
84 default:
85 std::stringstream out;
86 out << mcbsg.getOrder();
87 throw std::runtime_error("LoopMediatorsMatching::CMbsg(): order " + out.str() + "not implemented");
88 }
89
90 vmcbsg.push_back(mcbsg);
91 return (vmcbsg);
92}
93
94std::vector<WilsonCoefficient>& LoopMediatorsMatching::CMprimebsg()
95{
96 vmcprimebsg.clear();
97 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMprimebsg().begin(); it != StandardModelMatching::CMprimebsg().end(); it++ ) vmcprimebsg.push_back(*it);
98
99 switch (mcprimebsg.getScheme()) {
100 case NDR:
101
102 break;
103 default:
104 std::stringstream out;
105 out << mcprimebsg.getScheme();
106 throw std::runtime_error("LoopMediatorsMatching::CMprimebsg(): scheme " + out.str() + "not implemented");
107 }
108
110
111 switch (mcprimebsg.getOrder()) {
112 case NNLO:
113 mcprimebsg.setCoeff(6, 0., NNLO);
114 case NLO:
115 mcprimebsg.setCoeff(6, 0., NLO);
116 case LO:
118 break;
119 default:
120 std::stringstream out;
121 out << mcprimebsg.getOrder();
122 throw std::runtime_error("LoopMediatorsMatching::CMprimebsg(): order " + out.str() + "not implemented");
123 }
124
125 vmcprimebsg.push_back(mcprimebsg);
126 return (vmcprimebsg);
127}
128
129std::vector<WilsonCoefficient>& LoopMediatorsMatching::CMBMll(QCD::lepton lepton)
130{
131 vmcBMll.clear();
132 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMBMll(lepton).begin(); it != StandardModelMatching::CMBMll(lepton).end(); it++ ) vmcBMll.push_back(*it);
133
134 switch (mcbsg.getScheme()) {
135 case NDR:
136
137 break;
138 default:
139 std::stringstream out;
140 out << mcBMll.getScheme();
141 throw std::runtime_error("LoopMediatorsMatching::CMBMll(): scheme " + out.str() + "not implemented");
142 }
143
145
146 switch (mcBMll.getOrder()) {
147 case NNLO:
148 case NLO:
149 mcBMll.setCoeff(6, 0., NLO);
150 mcBMll.setCoeff(8, 0., NLO);
151 mcBMll.setCoeff(9, 0., NLO);
152 mcBMll.setCoeff(10, 0., NLO);
153 mcBMll.setCoeff(11, 0., NLO);
154 case LO:
155 mcBMll.setCoeff(6, C7NP, LO);
156 if(lepton == LoopMediators::MU){
159 mcBMll.setCoeff(10, CSNPmu, LO);
160 mcBMll.setCoeff(11, CPNPmu, LO);
161 }
162 break;
163 default:
164 std::stringstream out;
165 out << mcBMll.getOrder();
166 throw std::runtime_error("LoopMediatorsMatching::CMBMll(): order " + out.str() + "not implemented");
167 }
168
169 vmcBMll.push_back(mcBMll);
170 return (vmcBMll);
171}
172
173std::vector<WilsonCoefficient>& LoopMediatorsMatching::CMprimeBMll(QCD::lepton lepton)
174{
175 vmcprimeBMll.clear();
176 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMprimeBMll(lepton).begin(); it != StandardModelMatching::CMprimeBMll(lepton).end(); it++ ) vmcprimeBMll.push_back(*it);
177
178 switch (mcprimebsg.getScheme()) {
179 case NDR:
180
181 break;
182 default:
183 std::stringstream out;
184 out << mcprimeBMll.getScheme();
185 throw std::runtime_error("LoopMediatorsMatching::CMprimeBMll(): scheme " + out.str() + "not implemented");
186 }
187
189
190 switch (mcprimeBMll.getOrder()) {
191 case NNLO:
192 case NLO:
193 mcprimeBMll.setCoeff(6, 0., NLO);
194 mcprimeBMll.setCoeff(8, 0., NLO);
195 mcprimeBMll.setCoeff(9, 0., NLO);
196 mcprimeBMll.setCoeff(10, 0., NLO);
197 mcprimeBMll.setCoeff(11, 0., NLO);
198 case LO:
200 if(lepton == LoopMediators::MU){
205 }
206 break;
207 default:
208 std::stringstream out;
209 out << mcprimeBMll.getOrder();
210 throw std::runtime_error("LoopMediatorsMatching::CMprimeBMll(): order " + out.str() + "not implemented");
211 }
212
213 vmcprimeBMll.push_back(mcprimeBMll);
214 return (vmcprimeBMll);
215}
216
217std::vector<WilsonCoefficient>& LoopMediatorsMatching::CMdbs2()
218{
219 vmcdbs2.clear();
220 for (std::vector<WilsonCoefficient>::const_iterator it = StandardModelMatching::CMdbs2().begin(); it != StandardModelMatching::CMdbs2().end(); it++ ) vmcdbs2.push_back(*it);
221
222 switch (mcdbs2.getScheme()) {
223 case NDR:
224
225 break;
226 default:
227 std::stringstream out;
228 out << mcdbs2.getScheme();
229 throw std::runtime_error("LoopMediatorsMatching::CMdbs2(): scheme " + out.str() + "not implemented");
230 }
231
233
234 /*std::cout << "high scale :" << std::endl;
235 std::cout << "C1 :" << C1NP + C1pNP << std::endl;
236 std::cout << "C2 :" << C2NP + C2pNP << std::endl;
237 std::cout << "C3 :" << C3NP + C3pNP << std::endl;
238 std::cout << "C4 :" << C4NP << std::endl;
239 std::cout << "C5 :" << C5NP << std::endl << std::endl;*/
240
241 switch (mcdbs2.getOrder()) {
242 case NNLO:
243 case NLO:
244 mcdbs2.setCoeff(0, 0., NLO);
245 mcdbs2.setCoeff(1, 0., NLO);
246 mcdbs2.setCoeff(2, 0., NLO);
247 mcdbs2.setCoeff(3, 0., NLO);
248 mcdbs2.setCoeff(4, 0., NLO);
249 case LO:
250 mcdbs2.setCoeff(0, C1NP + C1pNP, LO);
251 mcdbs2.setCoeff(1, C2NP + C2pNP, LO);
252 mcdbs2.setCoeff(2, C3NP + C3pNP, LO);
253 mcdbs2.setCoeff(3, C4NP, LO);
254 mcdbs2.setCoeff(4, C5NP, LO);
255 break;
256 default:
257 std::stringstream out;
258 out << mcdbs2.getOrder();
259 throw std::runtime_error("LoopMediatorsMatching::CMdbs2(): order " + out.str() + "not implemented");
260 }
261
262 vmcdbs2.push_back(mcdbs2);
263 return (vmcdbs2);
264}
265
@ NNLO
Definition: OrderScheme.h:36
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ NDR
Definition: OrderScheme.h:21
Model for NP contributions to flavour.
Definition: LoopMediators.h:20
gslpp::complex getCPp() const
gslpp::complex getC8() const
gslpp::complex getCP() const
gslpp::complex getC1p() const
gslpp::complex getC8p() const
gslpp::complex getC4() const
Definition: LoopMediators.h:90
gslpp::complex getC10p() const
gslpp::complex getC10() const
gslpp::complex getC3p() const
gslpp::complex getC2() const
Definition: LoopMediators.h:74
std::vector< WilsonCoefficient > vmcprimebsg
WilsonCoefficient mcprimeBMll
WilsonCoefficient mcprimebsg
std::vector< WilsonCoefficient > vmcBMll
std::vector< WilsonCoefficient > & CMbsg()
std::vector< WilsonCoefficient > & CMdbs2()
std::vector< WilsonCoefficient > vmcprimeBMll
void updateLoopMediatorsParameters()
Updates to new FlavourWilsonCoefficient parameter sets.
std::vector< WilsonCoefficient > vmcdbs2
std::vector< WilsonCoefficient > & CMprimeBMll(QCD::lepton lepton)
const LoopMediators & myLoopMediators
std::vector< WilsonCoefficient > & CMprimebsg()
std::vector< WilsonCoefficient > vmcbsg
std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)
LoopMediatorsMatching(const LoopMediators &LoopMediators_i)
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
lepton
An enum type for leptons.
Definition: QCD.h:310
@ MU
Definition: QCD.h:314
A class for the matching in the Standard Model.
void updateSMParameters()
Updates to new Standard Model parameter sets.
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
void setCoeff(const gslpp::vector< gslpp::complex > &z, orders order_i)
schemes getScheme() const
virtual void setMu(double mu)
orders getOrder() const