a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
HeffDF1bnlep.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include "HeffDF1bnlep.h"
9#include "gslpp.h"
10#include "StandardModel.h"
11#include "EvolDF1nlep.h"
12
14: model(SM),
15 coeffbnlep00qcd (10, NDR, NLO, NLO_QED11), coeffbnlep00 (12, NDR, NLO, NLO_QED11),
16 coeffbnlep10qcd (10, NDR, NLO, NLO_QED11), coeffbnlep10 (12, NDR, NLO, NLO_QED11),
17 coeffbnlep01 (10, NDR, NLO), coeffbnlep01A(10, NDR, NLO), coeffbnlep01B(4, NDR, NLO), coeffbnlep00CC(10, NDR, NLO),
18 coeffbnlep11 (10, NDR, NLO), coeffbnlep11A(10, NDR, NLO), coeffbnlep11B(4, NDR, NLO), coeffbnlep10CC(10, NDR, NLO),
19 u(new EvolDF1nlep(10, NDR, NLO, NLO_QED11, SM)),
20 bnlep (12, 0.), bnlep2(10, 0.), bnlepCC(4, 0.)
21{}
22
24{}
25
26/*******************************************************************************
27 * evolution Wilson Coefficienys b-> nonlep. *
28 * Buras base *
29 * deltaB=1 deltaC=0 deltaS=0 *
30 ******************************************************************************/
31gslpp::vector<gslpp::complex>** HeffDF1bnlep::ComputeCoeffBnlep00(double mu, schemes scheme)
32{
33
34 const std::vector<WilsonCoefficient>& mcb = model.getMatching().CMbnlep( 0);
35 const std::vector<WilsonCoefficient>& mcbCC = model.getMatching().CMbnlepCC( 0);
36
37 coeffbnlep00qcd.setMu(mu); //inizializes to zero the coefficients
40
42 orders ordDF1 = coeffbnlep00.getOrder();
43
44 for (unsigned int i = 0; i < mcb.size(); i++){
45 for (int j = LO; j <= ordDF1; j++){
46 for (int k = LO; k <= j; k++) {
47
48 //Evolves the LO terms and the ones proportional to alpha_s
50 u->Df1Evolnlep(mu, mcb[i].getMu(), orders(k), NO_QED, mcb[i].getScheme())*
51 (*(mcb[i].getCoeff(orders(j - k)))), orders(j));
52
53
54 //Evolves terms proportional to alpha_e and alpha_e/aplha_s
56 u->Df1Evolnlep(mu, mcb[i].getMu(), NNLO, orders_qed(k+4), mcb[i].getScheme()) *
57 (*(mcb[i].getCoeff(orders(j - k)))), orders_qed(j+4));
58
59 }
60 }
61
63 u->Df1Evolnlep(mu, mcb[i].getMu(), orders(LO), NO_QED, mcb[i].getScheme()) *
64 (*(mcb[i].getCoeff(orders_qed(NLO_QED11)))), orders_qed(NLO_QED11));
65
66 }
67
68 //Evolves the current*current part of the hamiltonian (the one non-proportional to lambda_t)
69 for (unsigned int i = 0; i < mcbCC.size(); i++)
70 for (int j = LO; j <= ordDF1; j++)
71 for (int k = LO; k <= j; k++)
73 u->Df1Evolnlep(mu, mcbCC[i].getMu(), orders(k), NO_QED, mcbCC[i].getScheme()) *
74 (*(mcbCC[i].getCoeff(orders(j - k)))), orders(j));
75
78
79 //Puts all together in a wilson coefficient object of 12 component:
80 //the first 10 terms are the ones proportional to lambda_t
81 //the last two are the remainder current*current operators
82 gslpp::complex appoggio[10], appoggio1[10], appoggio2[10], appoggio3[10];
83 for (int i=0; i<10; i++) {
84 appoggio[i] = 0.;
85 appoggio1[i] = 0.;
86 appoggio2[i] = 0.;
87 appoggio3[i] = 0.;
88 }
89 for (int j=LO; j <= ordDF1; j++) {
91 std::cout<< std::endl <<"$$$$$$$$$$$$ "<< j <<" $$$$$$$$$$$"<<std::endl;
92
93 for (int i = 0; i < 10; i++){
94 bnlep.assign(i, bnlep2(i));
95 if(j == LO){ appoggio[i] = bnlep(i);}
96 if( j == NLO){ appoggio1[i] = bnlep(i); }
97 std::cout<<"++++++++++ "<< i <<" -> "<< bnlep(i) <<" ++++++++++++"<<std::endl;
98 }
100 for (int i = 10; i < 12; i++){
101 bnlep.assign(i, bnlep2(i-10));
102 std::cout<<"++++++++++ "<< i <<" -> "<< bnlep(i) <<" ++++++++++++"<<std::endl;
103
104 }
106 }
107 for (int k=LO_QED; k <= ordDF1ew; k++) {
109 std::cout<< std::endl <<"$$$$$$$$$$$$ "<<k<<" $$$$$$$$$$$"<<std::endl;
110
111 for (int l = 0; l < 10; l++){
112 bnlep.assign(l, bnlep2(l));
113 if(k == LO_QED){ appoggio2[l] = bnlep(l); }
114 if(k == NLO_QED11) { appoggio3[l] = bnlep(l); }
115 std::cout<<"++++++++++ "<< l <<" -> "<< bnlep(l) <<" ++++++++++++"<<std::endl;
116 }
117
119 }
120
121 std::cout<< std::endl << " COEFFICIENTI TOTALI " << std::endl;
122 gslpp::complex aaa = 0. ;
123 for (int l = 0; l < 10; l++){
124 aaa = appoggio[l] + appoggio2[l];
125 std::cout<< std::endl << " C_0 + C_ALE/ALPHA_S "<< l <<" -> " << aaa << std::endl;
126 aaa = appoggio1[l] + appoggio3[l];
127 std::cout<< std::endl <<" C_1 + C_ALE " << l <<" -> " << aaa << std::endl;
128 std::cout << std::endl << " ************************************************ " << std::endl;
129 }
130
131 return coeffbnlep00.getCoeff();
132}
133
134/*******************************************************************************
135 * evolution Wilson Coefficienys b-> nonlep. *
136 * Buras base *
137 * deltaB=1 deltaC=0 deltaS=1 *
138 ******************************************************************************/
139gslpp::vector<gslpp::complex>** HeffDF1bnlep::ComputeCoeffBnlep10(double mu, schemes scheme)
140{
141
142 const std::vector<WilsonCoefficient>& mcb = model.getMatching().CMbnlep( 1);
143 const std::vector<WilsonCoefficient>& mcbCC = model.getMatching().CMbnlepCC( 1);
144
148
150 orders ordDF1 = coeffbnlep10.getOrder();
151
152 for (unsigned int i = 0; i < mcb.size(); i++){
153 for (int j = LO; j <= ordDF1; j++){
154 for (int k = LO; k <= j; k++) {
155
156 //Evolves the LO terms and the ones proportional to alpha_s
158 u->Df1Evolnlep(mu, mcb[i].getMu(), orders(k), NO_QED, mcb[i].getScheme()) *
159 (*(mcb[i].getCoeff(orders(j - k)))), orders(j));
160
161 //Evolves terms proportional to alpha_e and alpha_e/aplha_s
163 u->Df1Evolnlep(mu, mcb[i].getMu(), NNLO, orders_qed(k+4), mcb[i].getScheme()) *
164 (*(mcb[i].getCoeff(orders(j - k)))), orders_qed(j+4));
165 }
166 }
167
169 u->Df1Evolnlep(mu, mcb[i].getMu(), orders(LO), NO_QED, mcb[i].getScheme()) *
170 (*(mcb[i].getCoeff(orders(LO_QED)))), orders_qed(NLO_QED11));
171 }
172
173 //Evolves the current*current part of the hamiltonian (the one non-proportional to lambda_t)
174 for (unsigned int i = 0; i < mcbCC.size(); i++)
175 for (int j = LO; j <= ordDF1; j++)
176 for (int k = LO; k <= j; k++)
178 u->Df1Evolnlep(mu, mcbCC[i].getMu(), orders(k), NO_QED, mcbCC[i].getScheme()) *
179 (*(mcbCC[i].getCoeff(orders(j - k)))), orders(j));
180
183
184 //Puts all together in a wilson coefficient object of 12 component:
185 //the first 10 terms are the one proportional to lambda_t
186 //the last two are the remainder current*current operators
187
188 for (int j=LO; j <= ordDF1; j++) {
190 for (int i = 0; i < 10; i++){
191 bnlep.assign(i, bnlep2(i));
192 }
194 for (int i = 10; i < 12; i++){
195 bnlep.assign(i, bnlep2(i-10));
196 }
198 }
199 for (int k=LO_QED; k <= ordDF1ew; k++) {
201 for (int l = 0; l < 10; l++){
202 bnlep.assign(l, bnlep2(l));;
203 }
205 }
206
207 return coeffbnlep10.getCoeff();
208}
209
210/*******************************************************************************
211 * evolution Wilson Coefficienys b-> nonlep. *
212 * Buras base *
213 * deltaB=1 deltaC=1 deltaS=0 *
214 ******************************************************************************/
215gslpp::vector<gslpp::complex>** HeffDF1bnlep::ComputeCoeffBnlep01(double mu, schemes scheme)
216{
217
218 const std::vector<WilsonCoefficient>& mcbCC1 = model.getMatching().CMbnlepCC( 2);
219 const std::vector<WilsonCoefficient>& mcbCC2 = model.getMatching().CMbnlepCC( 3);
220
224
225 orders ordDF1 = coeffbnlep01A.getOrder();
226
227 //evolution of the current*current terms
228 for (unsigned int i = 0; i < mcbCC1.size(); i++)
229 for (int j = LO; j <= ordDF1; j++)
230 for (int k = LO; k <= j; k++)
232 u->Df1Evolnlep(mu, mcbCC1[i].getMu(), orders(k), NO_QED, mcbCC1[i].getScheme()) *
233 (*(mcbCC1[i].getCoeff(orders(j - k)))), orders(j));
234
235 for (unsigned int i = 0; i < mcbCC2.size(); i++)
236 for (int j = LO; j <= ordDF1; j++)
237 for (int k = LO; k <= j; k++)
239 u->Df1Evolnlep(mu, mcbCC2[i].getMu(), orders(k), NO_QED, mcbCC2[i].getScheme()) *
240 (*(mcbCC2[i].getCoeff(orders(j - k)))), orders(j));
241
242 coeffbnlep01A.setScheme(scheme);
243 coeffbnlep01B.setScheme(scheme);
244 coeffbnlep01.setScheme(scheme);
245
246 //Puts all together in a wilson coefficient object of 4 components
247 for (int j=LO; j <= ordDF1; j++) {
249 for (int i = 0; i < 2; i++){
250 bnlep.assign(i, bnlep2(i));
251 }
253 for (int i = 2; i < 4; i++){
254 bnlep.assign(i, bnlep2(i-2));
255 }
257 }
258 return coeffbnlep01.getCoeff();
259
260}
261
262/*******************************************************************************
263 * evolution Wilson Coefficienys b-> nonlep. *
264 * Buras base *
265 * deltaB=1 deltaC=1 deltaS=1 *
266 ******************************************************************************/
267gslpp::vector<gslpp::complex>** HeffDF1bnlep::ComputeCoeffBnlep11(double mu, schemes scheme)
268{
269
270 const std::vector<WilsonCoefficient>& mcbCC1 = model.getMatching().CMbnlepCC( 2);
271 const std::vector<WilsonCoefficient>& mcbCC2 = model.getMatching().CMbnlepCC( 3);
272
276
277 orders ordDF1 = coeffbnlep11A.getOrder();
278
279 for (unsigned int i = 0; i < mcbCC1.size(); i++)
280 for (int j = LO; j <= ordDF1; j++)
281 for (int k = LO; k <= j; k++)
283 u->Df1Evolnlep(mu, mcbCC1[i].getMu(), orders(k), NO_QED, mcbCC1[i].getScheme()) *
284 (*(mcbCC1[i].getCoeff(orders(j - k)))), orders(j));
285
286 for (unsigned int i = 0; i < mcbCC2.size(); i++)
287 for (int j = LO; j <= ordDF1; j++)
288 for (int k = LO; k <= j; k++)
290 u->Df1Evolnlep(mu, mcbCC2[i].getMu(), orders(k), NO_QED, mcbCC2[i].getScheme()) *
291 (*(mcbCC2[i].getCoeff(orders(j - k)))), orders(j));
292
293 coeffbnlep11A.setScheme(scheme);
294 coeffbnlep11B.setScheme(scheme);
295 coeffbnlep11.setScheme(scheme);
296
297 for (int j=LO; j <= ordDF1; j++) {
299 for (int i = 0; i < 2; i++){
300 bnlep.assign(i, bnlep2(i));
301 }
303 for (int i = 2; i < 4; i++){
304 bnlep.assign(i, bnlep2(i-2));
305 }
307 }
308 return coeffbnlep11.getCoeff();
309
310}
@ 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
@ NO_QED
Definition: OrderScheme.h:57
Evolutor Class
Definition: EvolDF1nlep.h:16
WilsonCoefficient coeffbnlep11A
Definition: HeffDF1bnlep.h:94
WilsonCoefficient coeffbnlep11
Definition: HeffDF1bnlep.h:94
WilsonCoefficient coeffbnlep01A
Definition: HeffDF1bnlep.h:93
gslpp::vector< gslpp::complex > bnlep2
Definition: HeffDF1bnlep.h:97
WilsonCoefficient coeffbnlep01
Definition: HeffDF1bnlep.h:93
virtual ~HeffDF1bnlep()
destructor
WilsonCoefficient coeffbnlep01B
Definition: HeffDF1bnlep.h:93
HeffDF1bnlep(const StandardModel &SM)
constructor
gslpp::vector< gslpp::complex > ** ComputeCoeffBnlep01(double mu, schemes scheme=NDR)
WilsonCoefficient coeffbnlep11B
Definition: HeffDF1bnlep.h:94
gslpp::vector< gslpp::complex > ** ComputeCoeffBnlep00(double mu, schemes scheme=NDR)
WilsonCoefficient coeffbnlep10CC
Definition: HeffDF1bnlep.h:94
const StandardModel & model
Definition: HeffDF1bnlep.h:89
std::unique_ptr< EvolDF1nlep > u
Definition: HeffDF1bnlep.h:95
gslpp::vector< gslpp::complex > bnlep
Definition: HeffDF1bnlep.h:97
gslpp::vector< gslpp::complex > ** ComputeCoeffBnlep10(double mu, schemes scheme=NDR)
WilsonCoefficient coeffbnlep10
Definition: HeffDF1bnlep.h:92
WilsonCoefficient coeffbnlep00CC
Definition: HeffDF1bnlep.h:93
WilsonCoefficient coeffbnlep00qcd
Definition: HeffDF1bnlep.h:91
WilsonCoefficient coeffbnlep00
Definition: HeffDF1bnlep.h:91
WilsonCoefficient coeffbnlep10qcd
Definition: HeffDF1bnlep.h:92
gslpp::vector< gslpp::complex > ** ComputeCoeffBnlep11(double mu, schemes scheme=NDR)
virtual std::vector< WilsonCoefficient > & CMbnlep(int a)=0
virtual std::vector< WilsonCoefficient > & CMbnlepCC(const int a)=0
A model class for the Standard Model.
virtual StandardModelMatching & getMatching() const
A get method to access the member reference of type StandardModelMatching.
gslpp::vector< gslpp::complex > ** getCoeff() const
void setCoeff(const gslpp::vector< gslpp::complex > &z, orders order_i)
void setScheme(schemes scheme)
virtual void setMu(double mu)
orders_qed getOrder_qed() const
orders getOrder() const
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:33
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:20
orders_qed
An enum type for orders in electroweak.
Definition: OrderScheme.h:56