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

#include <HeffDS1.h>

Detailed Description

Definition at line 19 of file HeffDS1.h.

Public Member Functions

gslpp::vector< gslpp::complex > ** ComputeCoeffDS1mumu ()
 
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1pnunu ()
 
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1pnunuC ()
 
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1PPv (double mu, schemes scheme=NDR)
 the effective Hamiltonian at the scale mu for \( K \rightarrow \pi \pi \) More...
 
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1PPz (double muc, schemes scheme=NDR)
 
WilsonCoefficient getCoeffDS1cc () const
 
WilsonCoefficient getCoeffDS1mumu () const
 
WilsonCoefficient getCoeffDS1pnunu () const
 
WilsonCoefficient getCoeffDS1PP () const
 
const StandardModelGetModel () const
 
EvolDF1nlepgetUDF1B () const
 
EvolDB1MllgetUDF1M () const
 
 HeffDS1 (const StandardModel &SM)
 constructor More...
 
virtual ~HeffDS1 ()
 destructor More...
 

Private Member Functions

void CharmMatch ()
 compute the matching at the charm threshold within the SM, NDR scheme implemented More...
 

Private Attributes

WilsonCoefficient coeffds1
 
WilsonCoefficient coeffds1cc
 
WilsonCoefficient coeffds1mumu
 
WilsonCoefficient coeffds1pnunu
 
WilsonCoefficient coeffds1pnunuC
 
gslpp::vector< gslpp::complex > DS1ccLO
 
gslpp::vector< gslpp::complex > DS1ccLO_QED
 
gslpp::vector< gslpp::complex > DS1ccNLO
 
gslpp::vector< gslpp::complex > DS1ccNLO_QED
 
const StandardModelmodel
 
std::unique_ptr< EvolDF1nlepu
 
std::unique_ptr< Charm_KpnunuuKpnunu
 
std::unique_ptr< EvolDB1MlluM
 

Constructor & Destructor Documentation

◆ HeffDS1()

HeffDS1::HeffDS1 ( const StandardModel SM)

constructor

Parameters
SM
modelmatching

Definition at line 14 of file HeffDS1.cpp.

15: model(SM),
18u(new EvolDF1nlep(10, NDR, NLO, NLO_QED11, SM)), uM(new EvolDB1Mll(13, NDR, NLO, SM)), uKpnunu(new Charm_Kpnunu(SM)),
19DS1ccLO(10, 0.),DS1ccLO_QED(10, 0.),DS1ccNLO(10, 0.),DS1ccNLO_QED(10, 0.)
20{
21}
@ NNLO
Definition: OrderScheme.h:36
@ NLO
Definition: OrderScheme.h:35
@ NDR
Definition: OrderScheme.h:21
@ NLO_QED11
Definition: OrderScheme.h:59
Evolutor Class
Definition: EvolDF1nlep.h:16
gslpp::vector< gslpp::complex > DS1ccNLO_QED
Definition: HeffDS1.h:86
gslpp::vector< gslpp::complex > DS1ccLO
Definition: HeffDS1.h:86
const StandardModel & model
Definition: HeffDS1.h:79
WilsonCoefficient coeffds1cc
Definition: HeffDS1.h:81
gslpp::vector< gslpp::complex > DS1ccLO_QED
Definition: HeffDS1.h:86
WilsonCoefficient coeffds1pnunuC
Definition: HeffDS1.h:81
std::unique_ptr< Charm_Kpnunu > uKpnunu
Definition: HeffDS1.h:84
WilsonCoefficient coeffds1mumu
Definition: HeffDS1.h:81
WilsonCoefficient coeffds1
Definition: HeffDS1.h:81
gslpp::vector< gslpp::complex > DS1ccNLO
Definition: HeffDS1.h:86
WilsonCoefficient coeffds1pnunu
Definition: HeffDS1.h:81
std::unique_ptr< EvolDB1Mll > uM
Definition: HeffDS1.h:83
std::unique_ptr< EvolDF1nlep > u
Definition: HeffDS1.h:82

◆ ~HeffDS1()

HeffDS1::~HeffDS1 ( )
virtual

destructor

Definition at line 23 of file HeffDS1.cpp.

24{
25}

Member Function Documentation

◆ CharmMatch()

void HeffDS1::CharmMatch ( )
private

compute the matching at the charm threshold within the SM, NDR scheme implemented

Returns
the SM effective hamiltonian below the charm threshold for \( K \rightarrow \pi \pi \)

Definition at line 253 of file HeffDS1.cpp.

254{
256 double alphaSmuC = model.Als(model.getMuc());
257 double logmc2OmuC2 = log(mc * mc / model.getMuc() / model.getMuc());
258
259 DS1ccNLO.assign(2, (-alphaSmuC / 24. / M_PI)*(-2. / 3. * (logmc2OmuC2 + 1.) * DS1ccLO(1)));
260 DS1ccNLO.assign(3, (alphaSmuC / 8. / M_PI)*(-2. / 3. * (logmc2OmuC2 + 1.) * DS1ccLO(1)));
261 DS1ccNLO.assign(4, (-alphaSmuC / 24. / M_PI)*(-2. / 3. * (logmc2OmuC2 + 1.) * DS1ccLO(1)));
262 DS1ccNLO.assign(5, (alphaSmuC / 8. / M_PI)*(-2. / 3. * (logmc2OmuC2 + 1.) * DS1ccLO(1)));
263
264 DS1ccNLO_QED.assign(2, (-alphaSmuC / 24. / M_PI)*(-2. / 3. * (logmc2OmuC2 + 1.) * DS1ccLO_QED(1)));
265 DS1ccNLO_QED.assign(3, (alphaSmuC / 8. / M_PI)*(-2. / 3. * (logmc2OmuC2 + 1.) * DS1ccLO_QED(1)));
266 DS1ccNLO_QED.assign(4, (-alphaSmuC / 24. / M_PI)*(-2. / 3. * (logmc2OmuC2 + 1.) * DS1ccLO_QED(1)));
267 DS1ccNLO_QED.assign(5, (alphaSmuC / 8. / M_PI)*(-2. / 3. * (logmc2OmuC2 + 1.) * DS1ccLO_QED(1)));
268 DS1ccNLO_QED.assign(6, -model.getAle() / 6. / M_PI * 4. / 9. * (logmc2OmuC2 + 1.)*(3. * DS1ccLO(0) + DS1ccLO(1)));
269 DS1ccNLO_QED.assign(8, -model.getAle() / 6. / M_PI * 4. / 9. * (logmc2OmuC2 + 1.)*(3. * DS1ccLO(0) + DS1ccLO(1)));
270}
@ FULLNNLO
Definition: OrderScheme.h:39
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
const double getMuc() const
A get method to access the threshold between four- and three-flavour theory in GeV.
Definition: QCD.h:591
const double Mrun(const double mu, const double m, const quark q, const orders order=FULLNNLO) const
Computes a running quark mass from .
Definition: QCD.cpp:1353
@ CHARM
Definition: QCD.h:326
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 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.
const double getAle() const
A get method to retrieve the fine-structure constant .

◆ ComputeCoeffDS1mumu()

gslpp::vector< gslpp::complex > ** HeffDS1::ComputeCoeffDS1mumu ( )

Definition at line 236 of file HeffDS1.cpp.

237{
238
239 const std::vector<WilsonCoefficient>& mcb = model.getMatching().CMkmm();
240
241 orders ordDF1 = coeffds1mumu.getOrder();
242
243 for (unsigned int i = 0; i < mcb.size(); i++) {
244 for (int j = LO; j <= ordDF1; j++) {
246 + *mcb[i].getCoeff(orders(j)), orders(j));
247 }
248 }
249
250 return coeffds1mumu.getCoeff();
251}
@ LO
Definition: OrderScheme.h:34
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)
orders getOrder() const
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:33

◆ ComputeCoeffDS1pnunu()

gslpp::vector< gslpp::complex > ** HeffDS1::ComputeCoeffDS1pnunu ( )

Definition at line 194 of file HeffDS1.cpp.

195{
196 const std::vector<WilsonCoefficient>& mcb = model.getMatching().CMkpnn();
198 orders ordDF1 = coeffds1pnunu.getOrder();
200
201 for (unsigned int i = 0; i < mcb.size(); i++) {
202 for (int j = LO; j <= ordDF1; j++) {
204 + *mcb[i].getCoeff(orders(j)), orders(j));
205 }
206 for (int j = LO_QED; j <= ordDF1_ew; j++) {
208 + *mcb[i].getCoeff(orders_qed(j)), orders_qed(j));
209 }
210 }
211
212 return coeffds1pnunu.getCoeff();
213}
@ LO_QED
Definition: OrderScheme.h:58
orders_qed getOrder_qed() const
virtual void resetCoefficient()
orders_qed
An enum type for orders in electroweak.
Definition: OrderScheme.h:56

◆ ComputeCoeffDS1pnunuC()

gslpp::vector< gslpp::complex > ** HeffDS1::ComputeCoeffDS1pnunuC ( )

Definition at line 215 of file HeffDS1.cpp.

216{
217 const std::vector<WilsonCoefficient>& mcbC = uKpnunu->EVOCkpnn();
219 orders ordDF1 = coeffds1pnunuC.getOrder();
221
222 for (unsigned int i = 0; i < mcbC.size(); i++) {
223 for (int j = LO; j <= ordDF1; j++) {
225 + *mcbC[i].getCoeff(orders(j)), orders(j));
226 }
227 for (int j = LO_QED; j <= ordDF1_ew; j++) {
229 + *mcbC[i].getCoeff(orders_qed(j)), orders_qed(j));
230 }
231 }
232
233 return coeffds1pnunuC.getCoeff();
234}

◆ ComputeCoeffDS1PPv()

gslpp::vector< gslpp::complex > ** HeffDS1::ComputeCoeffDS1PPv ( double  mu,
schemes  scheme = NDR 
)

the effective Hamiltonian at the scale mu for \( K \rightarrow \pi \pi \)

with the current current open-charm operator contribution.

Parameters
muis the low energy scale
schemeindicates the renormalization scheme
Returns
the effective Hamiltonian at the scale mu for \( K \rightarrow \pi \pi \)

Definition at line 27 of file HeffDS1.cpp.

28{
29
30 const std::vector<WilsonCoefficient>& mcb = model.getMatching().CMK();
31
32 coeffds1.setMu(mu); //inizializes to zero the coefficients
33
34 orders ordDF1 = coeffds1.getOrder();
35 orders_qed ordqedDF1 = coeffds1.getOrder_qed();
36
37 switch (scheme) {
38 case NDR:
39 for (unsigned int i = 0; i < mcb.size(); i++) {
40 if (i == 0) {
41 for (int j = LO; j <= ordDF1; j++) {
42 for (int k = LO; k <= j; k++) {
43 //Evolves the LO terms and the ones proportional to alpha_s
45 u->Df1Evolnlep(mu, mcb[i].getMu(),
46 orders(k), NO_QED, mcb[i].getScheme())*
47 (*(mcb[i].getCoeff(orders(j - k)))), orders(j));
48 }
49 }
50 switch (ordqedDF1) {
51 case NLO_QED11:
52 coeffds1.setCoeff(u->Df1Evolnlep(mu, mcb[i].getMu(),
53 LO, LO_QED, mcb[i].getScheme()) * (*(mcb[i].getCoeff(NLO))) +
54 u->Df1Evolnlep(mu, mcb[i].getMu(),
55 LO, NO_QED, mcb[i].getScheme()) * (*(mcb[i].getCoeff(NLO_QED11))) +
56 u->Df1Evolnlep(mu, mcb[i].getMu(),
57 LO, NLO_QED11, mcb[i].getScheme()) * (*(mcb[i].getCoeff(LO))) +
58 u->Df1Evolnlep(mu, mcb[i].getMu(),
59 NLO, NO_QED, mcb[i].getScheme()) * (*(mcb[i].getCoeff(LO_QED))), NLO_QED11);
60 case LO_QED:
61 coeffds1.setCoeff(u->Df1Evolnlep(mu, mcb[i].getMu(),
62 LO, LO_QED, mcb[i].getScheme()) * (*(mcb[i].getCoeff(LO))) +
63 u->Df1Evolnlep(mu, mcb[i].getMu(),
64 LO, NO_QED, mcb[i].getScheme()) * (*(mcb[i].getCoeff(LO_QED))), LO_QED);
65 break;
66 default:
67 throw std::runtime_error("Error in EvolDF1nlep::Df1Evolnlep()");
68 }
69 }
70 }
71 return coeffds1.getCoeff();
72 default:
73 throw "HeffDS1::ComputeCoeffDS1PPv(double mu, schemes scheme): scheme not implemented";
74 }
75}
@ NO_QED
Definition: OrderScheme.h:57
virtual void setMu(double mu)

◆ ComputeCoeffDS1PPz()

gslpp::vector< gslpp::complex > ** HeffDS1::ComputeCoeffDS1PPz ( double  muc,
schemes  scheme = NDR 
)

Definition at line 77 of file HeffDS1.cpp.

78{
79
80 const std::vector<WilsonCoefficient>& mcbCC = model.getMatching().CMKCC();
81 coeffds1cc.setMu(muc);
82 double mu = 0.;
83 /*
84 if(muc < model.getMuc()){
85 mu = model.getMuc();
86 }
87 else{
88 mu = muc;
89 }*/
90 // here below assuming a theory of 3 flavours even above muc in light of current lattice results
91 mu = model.getMuc();
92
93 orders ordDF1 = coeffds1cc.getOrder();
95
96 switch (scheme) {
97 case NDR:
98 for (unsigned int i = 0; i < mcbCC.size(); i++) {
99 if (i == 0) {
100 for (int j = LO; j <= ordDF1; j++) {
101 for (int k = LO; k <= j; k++) {
102 //Evolves the LO terms and the ones proportional to alpha_s
104 u->Df1Evolnlep(mu, mcbCC[i].getMu(),
105 orders(k), NO_QED, mcbCC[i].getScheme())*
106 (*(mcbCC[i].getCoeff(orders(j - k)))), orders(j));
107 }
108 }
109 switch (ordqedDF1) {
110 case NLO_QED11:
111 coeffds1cc.setCoeff(u->Df1Evolnlep(mu, mcbCC[i].getMu(),
112 LO, LO_QED, mcbCC[i].getScheme()) * (*(mcbCC[i].getCoeff(NLO))) +
113 u->Df1Evolnlep(mu, mcbCC[i].getMu(),
114 LO, NO_QED, mcbCC[i].getScheme()) * (*(mcbCC[i].getCoeff(NLO_QED11))) +
115 u->Df1Evolnlep(mu, mcbCC[i].getMu(),
116 LO, NLO_QED11, mcbCC[i].getScheme()) * (*(mcbCC[i].getCoeff(LO))) +
117 u->Df1Evolnlep(mu, mcbCC[i].getMu(),
118 NLO, NO_QED, mcbCC[i].getScheme()) * (*(mcbCC[i].getCoeff(LO_QED))), NLO_QED11);
119 case LO_QED:
120 coeffds1cc.setCoeff(u->Df1Evolnlep(mu, mcbCC[i].getMu(),
121 LO, LO_QED, mcbCC[i].getScheme()) * (*(mcbCC[i].getCoeff(LO))) +
122 u->Df1Evolnlep(mu, mcbCC[i].getMu(),
123 LO, NO_QED, mcbCC[i].getScheme()) * (*(mcbCC[i].getCoeff(LO_QED))), LO_QED);
124 break;
125 default:
126 throw std::runtime_error("Error in HeffDS1::ComputeCoeffDS1PPz()");
127 }
132 for (int l = 2; l < 10; l++){
133 DS1ccLO.assign(l, 0.);
134 DS1ccLO_QED.assign(l, 0.);
135 DS1ccNLO.assign(l, 0.);
136 DS1ccNLO_QED.assign(l, 0.);
137 }
138 if(mu == model.getMuc()) CharmMatch();
139 // if(muc < mu){
140 if(muc != mu){
141 switch (ordDF1) {
142 case NLO:
143 coeffds1cc.setCoeff(u->Df1Evolnlep3flav(muc,mu,LO, NO_QED, mcbCC[i].getScheme()) * DS1ccNLO +
144 u->Df1Evolnlep3flav(muc,mu,NLO, NO_QED, mcbCC[i].getScheme()) * DS1ccLO,NLO);
145 case LO:
146 coeffds1cc.setCoeff(u->Df1Evolnlep3flav(muc,mu,LO, NO_QED, mcbCC[i].getScheme()) * DS1ccLO,LO);
147 break;
148 default:
149 throw std::runtime_error("Error in HeffDS1::ComputeCoeffDS1PPz()");
150 }
151 switch (ordqedDF1) {
152 case NLO_QED11:
153 coeffds1cc.setCoeff(u->Df1Evolnlep3flav(muc,mu,LO, LO_QED, mcbCC[i].getScheme()) * DS1ccNLO +
154 u->Df1Evolnlep3flav(muc,mu,LO, NO_QED, mcbCC[i].getScheme()) * DS1ccNLO_QED +
155 u->Df1Evolnlep3flav(muc,mu,LO, NLO_QED11, mcbCC[i].getScheme()) * DS1ccLO +
156 u->Df1Evolnlep3flav(muc,mu,NLO, NO_QED, mcbCC[i].getScheme()) * DS1ccLO_QED, NLO_QED11);
157 case LO_QED:
158 coeffds1cc.setCoeff(u->Df1Evolnlep3flav(muc,mu,LO, LO_QED, mcbCC[i].getScheme()) * DS1ccLO +
159 u->Df1Evolnlep3flav(muc,mu,LO, NO_QED, mcbCC[i].getScheme()) * DS1ccLO_QED, LO_QED);
160 break;
161 default:
162 throw std::runtime_error("Error in HeffDS1::ComputeCoeffDS1PPz()");
163 }
164 }
165 else{
166 switch (ordDF1) {
167 case NLO:
169 case LO:
171 break;
172 default:
173 throw std::runtime_error("Error in HeffDS1::ComputeCoeffDS1PPz()");
174 }
175 switch (ordqedDF1) {
176 case NLO_QED11:
178 case LO_QED:
180 break;
181 default:
182 throw std::runtime_error("Error in HeffDS1::ComputeCoeffDS1PPz()");
183 }
184 }
185 }
186 }
187 return coeffds1cc.getCoeff();
188 default:
189 throw "HeffDS1::ComputeCoeffDS1PPz(double mu, schemes scheme): scheme not implemented";
190 }
191}
void CharmMatch()
compute the matching at the charm threshold within the SM, NDR scheme implemented
Definition: HeffDS1.cpp:253

◆ getCoeffDS1cc()

WilsonCoefficient HeffDS1::getCoeffDS1cc ( ) const
inline

Definition at line 54 of file HeffDS1.h.

54 {
55 return coeffds1cc;
56 }

◆ getCoeffDS1mumu()

WilsonCoefficient HeffDS1::getCoeffDS1mumu ( ) const
inline

Definition at line 62 of file HeffDS1.h.

62 {
63 return coeffds1mumu;
64 }

◆ getCoeffDS1pnunu()

WilsonCoefficient HeffDS1::getCoeffDS1pnunu ( ) const
inline

Definition at line 58 of file HeffDS1.h.

58 {
59 return coeffds1pnunu;
60 }

◆ getCoeffDS1PP()

WilsonCoefficient HeffDS1::getCoeffDS1PP ( ) const
inline

Definition at line 50 of file HeffDS1.h.

50 {
51 return coeffds1;
52 }

◆ GetModel()

const StandardModel & HeffDS1::GetModel ( ) const
inline

Definition at line 74 of file HeffDS1.h.

74 {
75 return model;
76 }

◆ getUDF1B()

EvolDF1nlep & HeffDS1::getUDF1B ( ) const
inline

Definition at line 66 of file HeffDS1.h.

66 {
67 return *u;
68 }

◆ getUDF1M()

EvolDB1Mll & HeffDS1::getUDF1M ( ) const
inline

Definition at line 70 of file HeffDS1.h.

70 {
71 return *uM;
72 }

Member Data Documentation

◆ coeffds1

WilsonCoefficient HeffDS1::coeffds1
private

Definition at line 81 of file HeffDS1.h.

◆ coeffds1cc

WilsonCoefficient HeffDS1::coeffds1cc
private

Definition at line 81 of file HeffDS1.h.

◆ coeffds1mumu

WilsonCoefficient HeffDS1::coeffds1mumu
private

Definition at line 81 of file HeffDS1.h.

◆ coeffds1pnunu

WilsonCoefficient HeffDS1::coeffds1pnunu
private

Definition at line 81 of file HeffDS1.h.

◆ coeffds1pnunuC

WilsonCoefficient HeffDS1::coeffds1pnunuC
private

Definition at line 81 of file HeffDS1.h.

◆ DS1ccLO

gslpp::vector<gslpp::complex> HeffDS1::DS1ccLO
private

Definition at line 86 of file HeffDS1.h.

◆ DS1ccLO_QED

gslpp::vector<gslpp::complex> HeffDS1::DS1ccLO_QED
private

Definition at line 86 of file HeffDS1.h.

◆ DS1ccNLO

gslpp::vector<gslpp::complex> HeffDS1::DS1ccNLO
private

Definition at line 86 of file HeffDS1.h.

◆ DS1ccNLO_QED

gslpp::vector<gslpp::complex> HeffDS1::DS1ccNLO_QED
private

Definition at line 86 of file HeffDS1.h.

◆ model

const StandardModel& HeffDS1::model
private

Definition at line 79 of file HeffDS1.h.

◆ u

std::unique_ptr<EvolDF1nlep> HeffDS1::u
private

Definition at line 82 of file HeffDS1.h.

◆ uKpnunu

std::unique_ptr<Charm_Kpnunu> HeffDS1::uKpnunu
private

Definition at line 84 of file HeffDS1.h.

◆ uM

std::unique_ptr<EvolDB1Mll> HeffDS1::uM
private

Definition at line 83 of file HeffDS1.h.


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