a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
EpsilonP_O_Epsilon.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
9#include "StandardModel.h"
10#include "std_make_vector.h"
11
13: ThObservable(SM_i), AmpDS1(SM_i)
14{
15 setParametersForObservable(make_vector<std::string>() << "Br_Ks_P0P0" << "Br_Ks_PpPm" << "Br_Kp_P0Pp" << "Omega_eta_etap" << "Delta_0" << "Delta_2" << "EpsK" << "phiEpsK"
16 << "Zqq00" << "Zqq11" << "Zqq12" << "Zqq13" << "Zqq14" << "Zqq21" << "Zqq22" << "Zqq23" << "Zqq24"
17 << "Zqq31" << "Zqq32" << "Zqq33" << "Zqq34" << "Zqq41" << "Zqq42" << "Zqq43" << "Zqq44" << "Zqq55"
18 << "Zqq56" << "Zqq65" << "Zqq66");
19 part = part_i;
20}
21
23{
24 double phase = -sin(((SM.getOptionalParameter("Delta_2")-SM.getOptionalParameter("Delta_0"))-SM.getOptionalParameter("phiEpsK"))*M_PI/180.);
25 switch (part) {
26 case 0:
27 // return ReA0 using exp info
28 return getReA0();
29 case 1:
30 // return ReA2 using exp info
31 return getReA2();
32 case 2:
33 // return ReA0 using lattice info
34 return AmpDS1pp0pureLAT(NLO).real();
35 case 3:
36 // return ReA2 using lattice info
37 return AmpDS1pp2(NLO).real();
38 case 4:
39 // eps'/eps: state-of-the-art from lattice + exp measurement of ReA0,2
40 ReA0 = getReA0();
41 ImA0 = AmpDS1pp0(NLO).imag();
42 ReA2 = getReA2();
43 ImA2 = AmpDS1pp2(NLO).imag();
44 break;
45 case 5:
46 // eps'/eps: prediction solely based on lattice results
47 ReA0 = AmpDS1pp0pureLAT(NLO).real();
48 ImA0 = AmpDS1pp0pureLAT(NLO).imag();
49 ReA2 = AmpDS1pp2(NLO).real();
50 ImA2 = AmpDS1pp2(NLO).imag();
51 break;
52 case 6:
53 // return Im A0 using exp info
54 return AmpDS1pp0(NLO).imag();
55 case 7:
56 // return Im A0 using pure lattice
57 return AmpDS1pp0pureLAT(NLO).imag();
58 case 8:
59 // return Im A2
60 return AmpDS1pp2(NLO).imag();
61 default:
62 throw ("incorrect value of part in EpsilonP_O_Epsilon");
63 }
64 //Evaluate Re(eps'/eps) as defined in ArXiv:2004.09440
65 return M_SQRT1_2 * phase * (ReA2/ReA0) * ( (ImA2/ReA2) - ((1.-SM.getOptionalParameter("Omega_eta_etap")) * (ImA0/ReA0)))/SM.getOptionalParameter("EpsK");
66}
@ NLO
Definition: OrderScheme.h:35
Definition: AmpDS1.h:17
double getReA2()
Definition: AmpDS1.cpp:218
gslpp::complex AmpDS1pp2(orders order)
Definition: AmpDS1.cpp:133
gslpp::complex AmpDS1pp0pureLAT(orders order)
Definition: AmpDS1.cpp:233
gslpp::complex AmpDS1pp0(orders order)
Definition: AmpDS1.cpp:21
double getReA0()
Definition: AmpDS1.cpp:197
EpsilonP_O_Epsilon(const StandardModel &SM_i, unsigned int part_i)
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
A model class for the Standard Model.
A class for a model prediction of an observable.
Definition: ThObservable.h:25
void setParametersForObservable(std::vector< std::string > parametersForObservable_i)
A set method to get the parameters for the specific observable.
Definition: ThObservable.h:109
const StandardModel & SM
A reference to an object of StandardMode class.
Definition: ThObservable.h:121