a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
AmpDS1 Class Reference

#include <AmpDS1.h>

+ Inheritance diagram for AmpDS1:

Detailed Description

Definition at line 17 of file AmpDS1.h.

Public Member Functions

 AmpDS1 (const StandardModel &SM_i)
 compute the amplitude for \( K_L \) decay in 2 pion More...
 

Protected Member Functions

gslpp::complex AmpDS1pp0 (orders order)
 
gslpp::complex AmpDS1pp0pureLAT (orders order)
 
gslpp::complex AmpDS1pp2 (orders order)
 
gslpp::matrix< double > getChiralMatrixpp0 () const
 
gslpp::matrix< double > getChiralMatrixpp2 () const
 
double getReA0 ()
 
double getReA2 ()
 
gslpp::matrix< double > getRIMatrixpp0 () const
 
gslpp::matrix< double > getRISMOMTransMatrix (double mu, orders order) const
 

Private Attributes

const StandardModelmySM
 

Constructor & Destructor Documentation

◆ AmpDS1()

AmpDS1::AmpDS1 ( const StandardModel SM_i)

compute the amplitude for \( K_L \) decay in 2 pion

Parameters
Flavour

Definition at line 14 of file AmpDS1.cpp.

15: mySM(SM_i)
16{
19}
const StandardModel & mySM
Definition: AmpDS1.h:93
void initializeBParameter(std::string name_i) const
A method to initialize B Parameter and the corresponding meson.
Definition: QCD.cpp:211

Member Function Documentation

◆ AmpDS1pp0()

gslpp::complex AmpDS1::AmpDS1pp0 ( orders  order)
protected
Parameters
order
Returns
the amplitude for \( K_L \) decay in 2 pion with 0 isospin change

Definition at line 21 of file AmpDS1.cpp.

22{
23 double GF = mySM.getGF();
24 gslpp::complex Vud = mySM.getCKM().getV_ud();
25 gslpp::complex Vus = mySM.getCKM().getV_us();
26 //CKM parameter for the Wilson coeff.
27 gslpp::complex tau = -((mySM.getCKM().getV_ts()).conjugate() * mySM.getCKM().getV_td())/((mySM.getCKM().getV_us()).conjugate() * mySM.getCKM().getV_ud());
28
29 if (mySM.getFlavour().getHDS1().getCoeffDS1PP().getOrder() < order){
30 std::stringstream out;
31 out << order;
32 throw std::runtime_error("AmpDK1::computeThValue(): requires cofficient of order"
33 + out.str() + "not computed");
34 }
35
36 //Finding Wilson coefficients of the form C=z+tau*y where tau is a CKM parameter (scheme set to MSbar)
37 gslpp::vector<gslpp::complex> ** allcoeffv = mySM.getFlavour().ComputeCoeffDS1PPv(
38 mySM.getBKd1().getMu(), NDR);
39
40 gslpp::vector<gslpp::complex> ** allcoeffz = mySM.getFlavour().ComputeCoeffDS1PPz(
41 mySM.getBKd1().getMu(), NDR);
42
43 gslpp::vector<gslpp::complex> allcoeffzLO = (*allcoeffz[LO]) + (*allcoeffz[LO_QED]);
44 gslpp::vector<gslpp::complex> allcoeffzNLO = (*allcoeffz[NLO]) + (*allcoeffz[NLO_QED11]);
45 gslpp::vector<gslpp::complex> allcoeffyLO = (*allcoeffv[LO]) + (*allcoeffv[LO_QED]);
46 gslpp::vector<gslpp::complex> allcoeffyNLO = (*allcoeffv[NLO]) + (*allcoeffv[NLO_QED11]);
47 for(int i = 0; i<2; i++){
48 allcoeffzLO.assign(i,allcoeffyLO(i));
49 allcoeffzNLO.assign(i,allcoeffyNLO(i));
50 allcoeffyLO.assign(i,0.);
51 allcoeffyNLO.assign(i,0.);
52 }
53 for(int i = 2; i<10; i++){
54 allcoeffyLO.assign(i,allcoeffyLO(i)-allcoeffzLO(i));
55 allcoeffyNLO.assign(i,allcoeffyNLO(i)-allcoeffzNLO(i));
56 }
57
58 gslpp::vector<double> meBKd1(mySM.getBKd1().getBpars());
59
60 switch(order) {
61 case NLO:
62 if ( meBKd1(7) == 0 && meBKd1(8) == 0 && meBKd1(9) == 0 && mySM.getBKd1().getScheme() == LAT ){
63 //If the matrix elements are given in the chiral basis on the lattice
64 //Lattice Wilson coefficients
65 gslpp::vector<gslpp::complex> ReW = ( (allcoeffzLO+allcoeffzNLO) + tau.real() * (allcoeffyLO+allcoeffyNLO) )
67 gslpp::vector<gslpp::complex> ImW = tau.imag() * (allcoeffyLO+allcoeffyNLO) * getChiralMatrixpp0()
69 double CKMprod = (Vus.conjugate()*Vud).real();
70 gslpp::complex ImA0 = M_SQRT1_2 * GF * CKMprod * ( (ImW * meBKd1 ) - ImW(2) * meBKd1(2) ) +
71 ( ImW(2)/ReW(2) ) * (getReA0() - M_SQRT1_2 * GF * CKMprod * ( ( ReW * meBKd1 ) - ReW(2) * meBKd1(2) ) );
72
73 //The returned value for the amplitude is using the expt value of ReA0 to minimize the error on ImA0 (cfr. ArXiv:2004.09440)
74 return gslpp::complex(getReA0() , ImA0.real() );
75
76 } else if ( meBKd1(7) == 0 && meBKd1(8) == 0 && meBKd1(9) == 0 && mySM.getBKd1().getScheme() == LRI) {
77 //If the me are given in the chiral basis renormalised in SMOM
78 //Lattice Wilson coefficients
79 gslpp::vector<gslpp::complex> ReW = ( (allcoeffzLO+allcoeffzNLO) + tau.real() * (allcoeffyLO+allcoeffyNLO) )
81 gslpp::vector<gslpp::complex> ImW = tau.imag() * (allcoeffyLO+allcoeffyNLO) * getChiralMatrixpp0()
83 double CKMprod = (Vus.conjugate()*Vud).real();
84 gslpp::complex ImA0 = M_SQRT1_2 * GF * CKMprod * ( (ImW * meBKd1 ) - ImW(2) * meBKd1(2) ) +
85 ( ImW(2)/ReW(2) ) * (getReA0() - M_SQRT1_2 * GF * CKMprod * ( ( ReW * meBKd1 ) - ReW(2) * meBKd1(2) ) );
86
87 //The returned value for the amplitude is using the expt value of ReA0 to minimize the error on ImA0 (cfr. ArXiv:2004.09440)
88 return gslpp::complex(getReA0() , ImA0.real() );
89
90 } else {
91 //If the me are given in the 10 basis renormalised in MSbar (no optimization for A0 available as of now in this case)
92 return M_SQRT1_2 * GF * (Vus.conjugate() * Vud) * ( (allcoeffzLO + allcoeffzNLO) + tau * (allcoeffyLO + allcoeffyNLO) ) * meBKd1;
93 }
94 case LO:
95 if ( meBKd1(7) == 0 && meBKd1(8) == 0 && meBKd1(9) == 0 && mySM.getBKd1().getScheme() == LAT ){
96 //Lattice Wilson coefficients
97 gslpp::vector<gslpp::complex> ReW = ( allcoeffzLO + tau.real() * allcoeffyLO )
99 gslpp::vector<gslpp::complex> ImW = tau.imag() * allcoeffyLO * getChiralMatrixpp0()
101
102 gslpp::complex ImA0 = M_SQRT1_2 * GF * ( Vus.conjugate() * Vud ).real() * ( (ImW * meBKd1 ) - ImW(2) * meBKd1(2) ) +
103 ( ImW(2)/ReW(2) ) * (getReA0() - M_SQRT1_2 * GF * ( Vus.conjugate() * Vud ).real() * ( ( ReW * meBKd1 ) - ReW(2) * meBKd1(2) ) );
104
105 //The returned value for the amplitude is using the expt value of ReA0 to minimize the error on ImA0 (cfr. ArXiv:2004.09440)
106 return gslpp::complex(getReA0() , ImA0.real() );
107
108 } else if ( meBKd1(7) == 0 && meBKd1(8) == 0 && meBKd1(9) == 0 && mySM.getBKd1().getScheme() == LRI) {
109 //If the me are given in the chiral basis renormalised in SMOM
110 //Lattice Wilson coefficients
111 gslpp::vector<gslpp::complex> ReW = ( allcoeffzLO + tau.real() * allcoeffyLO )
113 gslpp::vector<gslpp::complex> ImW = tau.imag() * allcoeffyLO * getChiralMatrixpp0()
115 double CKMprod = (Vus.conjugate()*Vud).real();
116 gslpp::complex ImA0 = M_SQRT1_2 * GF * CKMprod * ( (ImW * meBKd1 ) - ImW(2) * meBKd1(2) ) +
117 ( ImW(2)/ReW(2) ) * (getReA0() - M_SQRT1_2 * GF * CKMprod * ( ( ReW * meBKd1 ) - ReW(2) * meBKd1(2) ) );
118
119 //The returned value for the amplitude is using the expt value of ReA0 to minimize the error on ImA0 (cfr. ArXiv:2004.09440)
120 return gslpp::complex(getReA0() , ImA0.real() );
121
122 } else {
123 //If the me are given in the 10 basis renormalised in MSbar (no optimization for A0 available as of now in this case)
124 return M_SQRT1_2 * GF * (Vus.conjugate() * Vud) * ( allcoeffzLO + tau * allcoeffyLO ) * meBKd1;
125 }
126 default:
127 std::stringstream out;
128 out << order;
129 throw std::runtime_error("AmpDK1::AmpDK(): order " + out.str() + "not implemented");
130 }
131}
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ FULLNLO
Definition: OrderScheme.h:38
@ LAT
Definition: OrderScheme.h:24
@ LRI
Definition: OrderScheme.h:23
@ NDR
Definition: OrderScheme.h:21
@ NLO_QED11
Definition: OrderScheme.h:59
@ LO_QED
Definition: OrderScheme.h:58
gslpp::matrix< double > getChiralMatrixpp0() const
Definition: AmpDS1.cpp:319
gslpp::matrix< double > getRIMatrixpp0() const
Definition: AmpDS1.cpp:356
gslpp::matrix< double > getRISMOMTransMatrix(double mu, orders order) const
Definition: AmpDS1.cpp:384
double getReA0()
Definition: AmpDS1.cpp:197
const double & getMu() const
A get method for the scale of the bag parameters.
Definition: BParameter.h:204
schemes getScheme() const
A get method for the scheme of the bag parameters.
Definition: BParameter.h:222
const gslpp::vector< double > & getBpars() const
A get method for the vector of the bag parameters.
Definition: BParameter.h:176
const gslpp::complex getV_ud() const
A member for returning the value of the CKM element .
Definition: CKM.h:202
const gslpp::complex getV_us() const
A member for returning the value of the CKM element .
Definition: CKM.h:211
const gslpp::complex getV_td() const
A member for returning the value of the CKM element .
Definition: CKM.h:256
const gslpp::complex getV_ts() const
A member for returning the value of the CKM element .
Definition: CKM.h:265
HeffDS1 & getHDS1() const
The member that returns an object of the class HeffDS1.
Definition: Flavour.cpp:91
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1PPv(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:126
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1PPz(double muc, schemes scheme=NDR) const
Definition: Flavour.cpp:131
WilsonCoefficient getCoeffDS1PP() const
Definition: HeffDS1.h:50
const BParameter & getBKd1() const
Definition: QCD.h:692
const CKM & getCKM() const
A get method to retrieve the member object of type CKM.
const Flavour & getFlavour() const
const double getGF() const
A get method to retrieve the Fermi constant .
orders getOrder() const

◆ AmpDS1pp0pureLAT()

gslpp::complex AmpDS1::AmpDS1pp0pureLAT ( orders  order)
protected
Parameters
order
Returns
the amplitude (pure lattice) for \( K_L \) decay in 2 pion with 0 isospin change

Definition at line 233 of file AmpDS1.cpp.

234{
235 double GF = mySM.getGF();
236 gslpp::complex Vud = mySM.getCKM().getV_ud();
237 gslpp::complex Vus = mySM.getCKM().getV_us();
238 //CKM parameter for the Wilson coeff.
239 gslpp::complex tau = -((mySM.getCKM().getV_ts()).conjugate() * mySM.getCKM().getV_td())/((mySM.getCKM().getV_us()).conjugate() * mySM.getCKM().getV_ud());
240
241 if (mySM.getFlavour().getHDS1().getCoeffDS1PP().getOrder() < order){
242 std::stringstream out;
243 out << order;
244 throw std::runtime_error("AmpDK1::computeThValue(): requires cofficient of order"
245 + out.str() + "not computed");
246 }
247
248 //Finding Wilson coefficients of the form C=z+tau*y where tau is a CKM parameter (scheme set to MSbar)
249 gslpp::vector<gslpp::complex> ** allcoeffv = mySM.getFlavour().ComputeCoeffDS1PPv(
250 mySM.getBKd1().getMu(), NDR);
251
252 gslpp::vector<gslpp::complex> ** allcoeffz = mySM.getFlavour().ComputeCoeffDS1PPz(
253 mySM.getBKd1().getMu(), NDR);
254
255 gslpp::vector<gslpp::complex> allcoeffzLO = (*allcoeffz[LO]) + (*allcoeffz[LO_QED]);
256 gslpp::vector<gslpp::complex> allcoeffzNLO = (*allcoeffz[NLO]) + (*allcoeffz[NLO_QED11]);
257 gslpp::vector<gslpp::complex> allcoeffyLO = (*allcoeffv[LO]) + (*allcoeffv[LO_QED]);
258 gslpp::vector<gslpp::complex> allcoeffyNLO = (*allcoeffv[NLO]) + (*allcoeffv[NLO_QED11]);
259 for(int i = 0; i<2; i++){
260 allcoeffzLO.assign(i,allcoeffyLO(i));
261 allcoeffzNLO.assign(i,allcoeffyNLO(i));
262 allcoeffyLO.assign(i,0.);
263 allcoeffyNLO.assign(i,0.);
264 }
265 for(int i = 2; i<10; i++){
266 allcoeffyLO.assign(i,allcoeffyLO(i)-allcoeffzLO(i));
267 allcoeffyNLO.assign(i,allcoeffyNLO(i)-allcoeffzNLO(i));
268 }
269
270 gslpp::vector<double> meBKd1(mySM.getBKd1().getBpars());
271
272 switch(order) {
273 case NLO:
274 if ( meBKd1(7) == 0 && meBKd1(8) == 0 && meBKd1(9) == 0 && mySM.getBKd1().getScheme() == LAT ){
275
276 gslpp::complex fullA0LAT = M_SQRT1_2*GF*(Vud.conjugate()*Vus)*((allcoeffzLO + allcoeffzNLO) + tau * (allcoeffyLO + allcoeffyNLO))*getChiralMatrixpp0()*getRISMOMTransMatrix(mySM.getBKd1().getMu(), FULLNLO)*getRIMatrixpp0()*meBKd1;
277
278 //The returned value for the amplitude is using the full lattice info (cfr. ArXiv:2004.09440)
279 return gslpp::complex(fullA0LAT.real() , fullA0LAT.imag());
280
281 } else if ( meBKd1(7) == 0 && meBKd1(8) == 0 && meBKd1(9) == 0 && mySM.getBKd1().getScheme() == LRI) {
282
283 gslpp::complex fullA0LAT = M_SQRT1_2*GF*(Vud.conjugate()*Vus)*((allcoeffzLO + allcoeffzNLO) + tau * (allcoeffyLO + allcoeffyNLO))*getChiralMatrixpp0()*getRISMOMTransMatrix(mySM.getBKd1().getMu(), FULLNLO)*meBKd1;
284
285 //The returned value for the amplitude is using the full lattice info (cfr. ArXiv:2004.09440)
286 return fullA0LAT;
287
288 } else {
289 //If the me are given in the 10 basis renormalised in MSbar (no optimization for A0 available as of now in this case)
290 return M_SQRT1_2 * GF * (Vus.conjugate() * Vud) * ( (allcoeffzLO + allcoeffzNLO) + tau * (allcoeffyLO + allcoeffyNLO) ) * meBKd1;
291 }
292
293 case LO:
294 if ( meBKd1(7) == 0 && meBKd1(8) == 0 && meBKd1(9) == 0 && mySM.getBKd1().getScheme() == LAT ){
295
296 gslpp::complex fullA0LAT = M_SQRT1_2*GF*(Vud.conjugate()*Vus)*(allcoeffzLO + tau * allcoeffyLO)*getChiralMatrixpp0()*getRISMOMTransMatrix(mySM.getBKd1().getMu(), FULLNLO)*getRIMatrixpp0()*meBKd1;
297
298 //The returned value for the amplitude is using the full lattice info (cfr. ArXiv:2004.09440)
299 return gslpp::complex(fullA0LAT.real() , fullA0LAT.imag());
300
301 } else if ( meBKd1(7) == 0 && meBKd1(8) == 0 && meBKd1(9) == 0 && mySM.getBKd1().getScheme() == LRI) {
302
303 gslpp::complex fullA0LAT = M_SQRT1_2*GF*(Vud.conjugate()*Vus)*(allcoeffzLO + tau * allcoeffyLO)*getChiralMatrixpp0()*getRISMOMTransMatrix(mySM.getBKd1().getMu(), FULLNLO)*meBKd1;
304
305 //The returned value for the amplitude is using the full lattice info (cfr. ArXiv:2004.09440)
306 return fullA0LAT;
307
308 } else {
309 //If the me are given in the 10 basis renormalised in MSbar
310 return M_SQRT1_2 * GF * (Vus.conjugate() * Vud) * ( allcoeffzLO + tau * allcoeffyLO ) * meBKd1;
311 }
312 default:
313 std::stringstream out;
314 out << order;
315 throw std::runtime_error("AmpDK1::AmpDK(): order " + out.str() + "not implemented");
316 }
317}

◆ AmpDS1pp2()

gslpp::complex AmpDS1::AmpDS1pp2 ( orders  order)
protected
Parameters
order
Returns
the amplitude for \( K_L \) decay in 2 pion with double isospin change

Definition at line 133 of file AmpDS1.cpp.

134{
135 if (mySM.getFlavour().getHDS1().getCoeffDS1PP().getOrder() < order){
136 std::stringstream out;
137 out << order;
138 throw std::runtime_error("AmpDK1::computeThValue(): requires cofficient of "
139 "order" + out.str() + "not computed");
140 }
141
142 double GF = mySM.getGF();
143 gslpp::complex Vud = mySM.getCKM().getV_ud();
144 gslpp::complex Vus = mySM.getCKM().getV_us();
145 //CKM parameter for the Wilson coeff.
146 gslpp::complex tau = -((mySM.getCKM().getV_ts()).conjugate() * mySM.getCKM().getV_td())/((mySM.getCKM().getV_us()).conjugate() * mySM.getCKM().getV_ud());
147
148
149 //Finding Wilson coefficients of the form C=z+tau*y where tau is a CKM parameter (scheme set to MSbar)
150 gslpp::vector<gslpp::complex> ** allcoeffv = mySM.getFlavour().ComputeCoeffDS1PPv(
151 mySM.getBKd3().getMu(), NDR);
152
153 gslpp::vector<gslpp::complex> ** allcoeffz = mySM.getFlavour().ComputeCoeffDS1PPz(
154 mySM.getBKd3().getMu(), NDR);
155
156 gslpp::vector<gslpp::complex> allcoeffzLO = (*allcoeffz[LO]) + (*allcoeffz[LO_QED]);
157 gslpp::vector<gslpp::complex> allcoeffzNLO = (*allcoeffz[NLO]) + (*allcoeffz[NLO_QED11]);
158 gslpp::vector<gslpp::complex> allcoeffyLO = (*allcoeffv[LO]) + (*allcoeffv[LO_QED]);
159 gslpp::vector<gslpp::complex> allcoeffyNLO = (*allcoeffv[NLO]) + (*allcoeffv[NLO_QED11]);
160 for(int i = 0; i<2; i++){
161 allcoeffzLO.assign(i,allcoeffyLO(i));
162 allcoeffzNLO.assign(i,allcoeffyNLO(i));
163 allcoeffyLO.assign(i,0.);
164 allcoeffyNLO.assign(i,0.);
165 }
166 for(int i = 2; i<10; i++){
167 allcoeffyLO.assign(i,allcoeffyLO(i)-allcoeffzLO(i));
168 allcoeffyNLO.assign(i,allcoeffyNLO(i)-allcoeffzNLO(i));
169 }
170
171
172 gslpp::vector<double> meBKd3(mySM.getBKd3().getBpars());
173
174 //If the me are given in the RI scheme, we convert it to MSbar
175 if( mySM.getBKd3().getScheme() == LRI){
176 meBKd3 = getRISMOMTransMatrix(mySM.getBKd3().getMu(), FULLNLO) * meBKd3;
177 }
178
179 //We need to check if the B parameters are given in the chiral basis or not. If so, we convert it to the 10 op. basis
180 if( meBKd3(1) == 0 && meBKd3(2) == 0 && meBKd3(3) == 0 && meBKd3(4) == 0 && meBKd3(8) == 0 && meBKd3(9) == 0 ){
181 //The 1/sqrt(3) is the Clebsh-Gordan for the case where the me are evaluated for the virtual process K+->pi+ pi+
182 meBKd3 = (1./sqrt(3.)) * getChiralMatrixpp2() * meBKd3;
183 }
184
185 switch(order) {
186 case NLO:
187 return M_SQRT1_2 * GF * (Vud.conjugate() * Vus) * ((allcoeffzLO + allcoeffzNLO) + tau * (allcoeffyLO + allcoeffyNLO)) * meBKd3;
188 case LO:
189 return M_SQRT1_2 * GF * (Vud.conjugate() * Vus) * (allcoeffzLO + tau * allcoeffyLO) * meBKd3;
190 default:
191 std::stringstream out;
192 out << order;
193 throw std::runtime_error("AmpDK1::AmpDK(): order " + out.str() + "not implemented");;
194 }
195}
gslpp::matrix< double > getChiralMatrixpp2() const
Definition: AmpDS1.cpp:343
const BParameter & getBKd3() const
Definition: QCD.h:700

◆ getChiralMatrixpp0()

gslpp::matrix< double > AmpDS1::getChiralMatrixpp0 ( ) const
protected
Returns
transformation matrix for the matrix elements in the chiral basis to the ten operator basis for the isospin zero channel (cfr. eqn. 59 ArXiv:1104.4948)

Definition at line 319 of file AmpDS1.cpp.

319 {
320 //Converion from Chiral basis to 10 op. basis
321 gslpp::matrix<double> chiral_to_10(10,10,0);
322
323 chiral_to_10(0,0) = 1./5.;
324 chiral_to_10(0,1) = 1.;
325 chiral_to_10(1,0) = 1./5.;
326 chiral_to_10(1,2) = 1.;
327 chiral_to_10(2,1) = 3.;
328 chiral_to_10(2,2) = 2.;
329 chiral_to_10(3,1) = 2.;
330 chiral_to_10(3,2) = 3.;
331 chiral_to_10(4,3) = 1.;
332 chiral_to_10(5,4) = 1.;
333 chiral_to_10(6,5) = 1.;
334 chiral_to_10(7,6) = 1.;
335 chiral_to_10(8,0) = 3./10.;
336 chiral_to_10(8,2) = -1.;
337 chiral_to_10(9,0) = 3./10.;
338 chiral_to_10(9,1) = -1.;
339
340 return chiral_to_10;
341}

◆ getChiralMatrixpp2()

gslpp::matrix< double > AmpDS1::getChiralMatrixpp2 ( ) const
protected
Returns
transformation matrix for the matrix elements in the chiral basis to the ten operator basis for the isospin two channel (cfr. eqn. 69-70 ArXiv:1502.00263)

Definition at line 343 of file AmpDS1.cpp.

343 {
344 //Conversion to the 10 op. basis from the chiral one
345 gslpp::matrix<double> chiral_to_10(10,10,0);
346 chiral_to_10(0,0) =1./3.;
347 chiral_to_10(1,0) = 1./3.;
348 chiral_to_10(6,5) = 1./2.;
349 chiral_to_10(7,6) = 1./2.;
350 chiral_to_10(8,0) = 1./2.;
351 chiral_to_10(9,0) = 1./2.;
352
353 return chiral_to_10;
354}

◆ getReA0()

double AmpDS1::getReA0 ( )
protected
Returns
the real part of the amplitude for \( K_L \) decay in 2 pion with 0 isospin change from experimental inputs

Definition at line 197 of file AmpDS1.cpp.

197 {
198 double MP0 = mySM.getMesons(QCD::P_0).getMass();
199 double MPp = mySM.getMesons(QCD::P_P).getMass();
200 double MK0 = mySM.getMesons(QCD::K_0).getMass();
201
202 //Evaluate ReA0 from expt input
203 double GammaKstotal(mySM.getMesons(QCD::K_S).computeWidth());
204 double GammaKSP0P0 = mySM.getOptionalParameter("Br_Ks_P0P0") * GammaKstotal;
205 double GammaKSPpPm = mySM.getOptionalParameter("Br_Ks_PpPm") * GammaKstotal;
206
207 double phasespacePpPm = 0.5 * sqrt(MK0*MK0 - 4.*MPp*MPp);
208 double phasespaceP0P0 = 0.5 * sqrt(MK0*MK0 - 4.*MP0*MP0);
209
210 double APpPm = sqrt(GammaKSPpPm * 8. * M_PI * MK0*MK0 / phasespacePpPm);
211 double AP0P0 = sqrt(GammaKSP0P0 * 16. * M_PI * MK0*MK0 / phasespaceP0P0);
212
213 double ReA0 = sqrt((APpPm * APpPm + 0.5 * AP0P0 * AP0P0)/2.);
214
215 return ReA0;
216}
double computeWidth() const
A method to compute the width of the meson from its lifetime.
Definition: Meson.cpp:521
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
@ P_0
Definition: QCD.h:337
@ K_0
Definition: QCD.h:339
@ K_S
Definition: QCD.h:351
@ P_P
Definition: QCD.h:338
const double getOptionalParameter(std::string name) const
A method to get parameters that are specific to only one set of observables.
Definition: QCD.h:450
const Meson & getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
Definition: QCD.h:526

◆ getReA2()

double AmpDS1::getReA2 ( )
protected
Returns
the real part of the amplitude for \( K_L \) decay in 2 pion with double isospin change from experimental inputs

Definition at line 218 of file AmpDS1.cpp.

218 {
219 double MP0 = mySM.getMesons(QCD::P_0).getMass();
220 double MPp = mySM.getMesons(QCD::P_P).getMass();
221 double MKp = mySM.getMesons(QCD::K_P).getMass();
222
223 double GammaKptotal(mySM.getMesons(QCD::K_P).computeWidth());
224 double GammaKp = mySM.getOptionalParameter("Br_Kp_P0Pp") * GammaKptotal;
225
226 double phasespacePpP0 = sqrt((MKp*MKp / 4.) - (MPp*MPp + MP0*MP0)/2. + (MP0*MP0 - MPp*MPp)*(MP0*MP0 - MPp*MPp)/(4.*MKp*MKp));
227
228 double ReA2 = sqrt((2./3.) * 8. * M_PI * GammaKp * MKp * MKp / phasespacePpP0);
229
230 return ReA2;
231}
@ K_P
Definition: QCD.h:340

◆ getRIMatrixpp0()

gslpp::matrix< double > AmpDS1::getRIMatrixpp0 ( ) const
protected
Returns
renormalization matrix for the lattice matrix elements in the chiral basis to the RI-SMOM scheme in the chiral basis

Definition at line 356 of file AmpDS1.cpp.

356 {
357 //Renormalization matrix for the bare lattice matrix elements of the chiral basis in the SMOMqq scheme
358 gslpp::matrix<double> lat_SMOMqq(10,10,0);
359 lat_SMOMqq(0,0) = mySM.getOptionalParameter("Zqq00");
360 lat_SMOMqq(1,1) = mySM.getOptionalParameter("Zqq11");
361 lat_SMOMqq(1,2) = mySM.getOptionalParameter("Zqq12");
362 lat_SMOMqq(1,3) = mySM.getOptionalParameter("Zqq13");
363 lat_SMOMqq(1,4) = mySM.getOptionalParameter("Zqq14");
364 lat_SMOMqq(2,1) = mySM.getOptionalParameter("Zqq21");
365 lat_SMOMqq(2,2) = mySM.getOptionalParameter("Zqq22");
366 lat_SMOMqq(2,3) = mySM.getOptionalParameter("Zqq23");
367 lat_SMOMqq(2,4) = mySM.getOptionalParameter("Zqq24");
368 lat_SMOMqq(3,1) = mySM.getOptionalParameter("Zqq31");
369 lat_SMOMqq(3,2) = mySM.getOptionalParameter("Zqq32");
370 lat_SMOMqq(3,3) = mySM.getOptionalParameter("Zqq33");
371 lat_SMOMqq(3,4) = mySM.getOptionalParameter("Zqq34");
372 lat_SMOMqq(4,1) = mySM.getOptionalParameter("Zqq41");
373 lat_SMOMqq(4,2) = mySM.getOptionalParameter("Zqq42");
374 lat_SMOMqq(4,3) = mySM.getOptionalParameter("Zqq43");
375 lat_SMOMqq(4,4) = mySM.getOptionalParameter("Zqq44");
376 lat_SMOMqq(5,5) = mySM.getOptionalParameter("Zqq55");
377 lat_SMOMqq(5,6) = mySM.getOptionalParameter("Zqq56");
378 lat_SMOMqq(6,5) = mySM.getOptionalParameter("Zqq65");
379 lat_SMOMqq(6,6) = mySM.getOptionalParameter("Zqq66");
380
381 return lat_SMOMqq;
382}

◆ getRISMOMTransMatrix()

gslpp::matrix< double > AmpDS1::getRISMOMTransMatrix ( double  mu,
orders  order 
) const
protected
Returns
transformation matrix for the matrix elements in the chiral basis in the RI-SMOM scheme to the MSbar scheme in the chiral basis (cfr. ArXiv:1104.4948)

Definition at line 384 of file AmpDS1.cpp.

384 {
385 gslpp::matrix<double> smom_ms_conversion(10,10,0);
386 int Nc = 3; //Number of colors
387 double C0 = 2.34391;
388 smom_ms_conversion(0,0) = -12.*log(2.)/Nc+12.*log(2.)+9./Nc-9.;
389 smom_ms_conversion(1,1) = -12.*log(2.)/Nc+8.*Nc/5.+9./Nc-12./5.;
390 smom_ms_conversion(1,2) = 12.*log(2.)+12.*Nc/5.-53./5.;
391 smom_ms_conversion(2,1) = 12.*log(2.)-12.*Nc/5.+2./(3.*Nc)-263./45.;
392 smom_ms_conversion(2,2) = -12.*log(2.)/Nc-18.*Nc/5+85./(9.*Nc)+26./15.;
393 smom_ms_conversion(2,3) = 2./(9.*Nc);
394 smom_ms_conversion(2,4) = -2./9.;
395 smom_ms_conversion(3,3) = 3.*C0/(2.*Nc)-2.*log(2.)/Nc-2./Nc;
396 smom_ms_conversion(3,4) = -3.*C0/2.+2.*log(2.)+2.;
397 smom_ms_conversion(4,1) = 5./Nc-10./3.;
398 smom_ms_conversion(4,2) = 10./(3.*Nc)-5.;
399 smom_ms_conversion(4,3) = 2.*log(2.)+5./(3.*Nc)-2.;
400 smom_ms_conversion(4,4) = -3.*C0*Nc/2.+3.*C0/(2.*Nc)-2.*log(2.)/Nc+4.*Nc-2./Nc-5./3.;
401 smom_ms_conversion(5,5) = 3.*C0/(2.*Nc)-2.*log(2.)/Nc-2./Nc;
402 smom_ms_conversion(5,6) = -3.*C0/2.+2.*log(2.)+2.;
403 smom_ms_conversion(6,5) = 2.*log(2.)-2.;
404 smom_ms_conversion(6,6) = -3.*C0*Nc/2.+3.*C0/(2.*Nc)-2.*log(2.)/Nc+4.*Nc-2./Nc;
405
406 smom_ms_conversion *= mySM.Als(mu, order)/(4.*M_PI);
407 smom_ms_conversion += gslpp::matrix<double>::Id(10);
408
409 return smom_ms_conversion;
410}
const double Als(const double mu, const orders order, const bool Nf_thr, const bool qed_flag) const
The running QCD coupling in the scheme including QED corrections.

Member Data Documentation

◆ mySM

const StandardModel& AmpDS1::mySM
private

Definition at line 93 of file AmpDS1.h.


The documentation for this class was generated from the following files: