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

A class for the \(\Delta F = 2\) effective Hamiltonian. More...

#include <HeffDF2.h>

Detailed Description

A class for the \(\Delta F = 2\) effective Hamiltonian.

Author
HEPfit Collaboration

This class is used to compute the contributions to the \(\Delta F = 2\) by taking the values of the Wilson coefficients from the model matching classes and runs them down to the relevant scale for the observables.

Definition at line 28 of file HeffDF2.h.

Public Member Functions

gslpp::matrix< double > AnomalousDimension (orders order, unsigned int nf=0) const
 
void ChangeScheme (schemes schout, WilsonCoefficient &c_in, orders order)
 change scheme for a Wilson Coefficient More...
 
gslpp::vector< gslpp::complex > ** ComputeCoeffBd (double mu, schemes scheme=NDR, bool SM=false)
 
gslpp::vector< gslpp::complex > ** ComputeCoeffBs (double mu, schemes scheme=NDR, bool SM=false)
 
gslpp::vector< gslpp::complex > ** ComputeCoeffdd (double mu, schemes scheme=NDR)
 
gslpp::vector< gslpp::complex > ** ComputeCoeffK (double mu, schemes scheme=NDR)
 
gslpp::vector< gslpp::complex > ** ComputeCoeffmK (double mu, schemes scheme=NDR)
 for Delta M_K the SM contribution is set to zero More...
 
WilsonCoefficient getCoeffBd () const
 
WilsonCoefficient getCoeffBs () const
 
WilsonCoefficient getCoeffDD () const
 
WilsonCoefficient getCoeffK () const
 
WilsonCoefficient getCoeffmK () const
 
EvolDF2getUDF2 () const
 
 HeffDF2 (const StandardModel &SM)
 constructor More...
 
virtual ~HeffDF2 ()
 destructor More...
 

Private Member Functions

gslpp::complex S0tt (double mu) const
 

Private Attributes

WilsonCoefficient coeffbd
 
WilsonCoefficient coeffbs
 
WilsonCoefficient coeffDd
 
WilsonCoefficient coeffk
 
WilsonCoefficient coeffmk
 
gslpp::matrix< double > drNDRLRI
 
std::unique_ptr< EvolDF2evolDF2
 
const StandardModelmodel
 

Constructor & Destructor Documentation

◆ HeffDF2()

HeffDF2::HeffDF2 ( const StandardModel SM)

constructor

Parameters
SM
SM_Matching

Definition at line 12 of file HeffDF2.cpp.

13: model(SM),
14 drNDRLRI(5, 5, 0),
15 coeffbd(5, NDR, NLO),
16 coeffbs(5, NDR, NLO),
17 coeffDd(5, NDR, NLO),
18 coeffk(5, NDR, NLO),
19 coeffmk(5, NDR, NLO),
20 evolDF2(new EvolDF2(5, NDR, NLO, SM))
21{
22
23 double Nc = SM.getNc();
24 drNDRLRI(0,0) = -(((-1. + Nc) * (-7. + log(4096.))) / Nc);
25 drNDRLRI(1,1) = (-2. * (-1. + 6. * Nc * Nc - 8. * log(2.) + Nc * (-13. + log(1024.)))) / (3. * Nc);
26 drNDRLRI(1,2) = (-2. * (13. - 10. * log(2.) + Nc * (-5. + log(256.)))) / (3. * Nc);
27 drNDRLRI(2,1) = (-8. + 6. * Nc * Nc + 20. * log(2.) - 8. * Nc * (1. + log(4.))) / (3. * Nc);
28 drNDRLRI(2,2) = (2. * (4. + Nc - 10. * Nc * log(2.) + log(256.))) / (3. * Nc);
29 drNDRLRI(3,3) = (2. - 4. * Nc * Nc + log(4.)) / Nc;
30 drNDRLRI(3,4) = 2. - log(4.);
31 drNDRLRI(4,3) = -2. * (1. + log(2.));
32 drNDRLRI(4,4) = (2. + log(4.)) / Nc;
33}
@ NLO
Definition: OrderScheme.h:35
@ NDR
Definition: OrderScheme.h:21
std::unique_ptr< EvolDF2 > evolDF2
Definition: HeffDF2.h:135
WilsonCoefficient coeffbd
Definition: HeffDF2.h:129
WilsonCoefficient coeffDd
Definition: HeffDF2.h:131
WilsonCoefficient coeffmk
Definition: HeffDF2.h:133
const StandardModel & model
Definition: HeffDF2.h:127
WilsonCoefficient coeffbs
Definition: HeffDF2.h:130
gslpp::matrix< double > drNDRLRI
Definition: HeffDF2.h:128
WilsonCoefficient coeffk
Definition: HeffDF2.h:132

◆ ~HeffDF2()

HeffDF2::~HeffDF2 ( )
virtual

destructor

Definition at line 35 of file HeffDF2.cpp.

36{}

Member Function Documentation

◆ AnomalousDimension()

gslpp::matrix< double > HeffDF2::AnomalousDimension ( orders  order,
unsigned int  nf = 0 
) const
Parameters
order
nfis the number of active flavours
Returns
the anomalous dimension for DeltaF=2 processes

◆ ChangeScheme()

void HeffDF2::ChangeScheme ( schemes  schout,
WilsonCoefficient c_in,
orders  order 
)

change scheme for a Wilson Coefficient

Parameters
schoutis the renormalization scheme in output
c_inis the Wilson Coefficient to be converted to scheme schout
order

Definition at line 205 of file HeffDF2.cpp.

206{
207 schemes schin = c_in.getScheme();
208 if (schout == schin || order == LO) return;
209 WilsonCoefficient c_out(5, schout, order);
210 switch(schin) {
211 case NDR:
212 switch(schout) {
213 case LRI:
214 c_out.setCoeff(*c_in.getCoeff(NLO) -
215 model.Als(c_in.getMu()) / 4. / M_PI * drNDRLRI.transpose()*
216 (*c_in.getCoeff(LO)), NLO);
217 c_in.setCoeff(*c_out.getCoeff(NLO),NLO);
218 c_in.setScheme(schout);
219 break;
220 default:
221 throw std::runtime_error("HeffDF2::ChangeScheme(): out scheme not implemented");
222 }
223 break;
224 default:
225 throw std::runtime_error("HeffDF2::ChangeScheme(): in scheme not implemented");
226 }
227}
@ LO
Definition: OrderScheme.h:34
@ LRI
Definition: OrderScheme.h:23
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.
A class for the Wilson coefficients.
gslpp::vector< gslpp::complex > ** getCoeff() const
void setCoeff(const gslpp::vector< gslpp::complex > &z, orders order_i)
double getMu() const
void setScheme(schemes scheme)
schemes getScheme() const
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:20

◆ ComputeCoeffBd()

gslpp::vector< gslpp::complex > ** HeffDF2::ComputeCoeffBd ( double  mu,
schemes  scheme = NDR,
bool  SM = false 
)
Parameters
muis the low energy scale
schemeindicates the renormalization scheme (Default: NDR)
Returns
the effective hamiltonian at the scale mu for B_d oscillations

Definition at line 38 of file HeffDF2.cpp.

39{
40 std::vector<WilsonCoefficient> mc;
41
42 if (SM)
43 mc = model.getMatching().StandardModelMatching::CMdbd2();
44 else
45 mc = model.getMatching().CMdbd2();
46
47 coeffbd.setMu(mu);
48
49 coeffbd.setScheme(mc[0].getScheme());
50
51 orders ordDF2 = coeffbd.getOrder();
52 for (unsigned int i = 0; i < mc.size(); i++){
53 ChangeScheme(mc[0].getScheme(),mc[i],ordDF2);
54 for (int j = LO; j <= ordDF2; j++){
55 for (int k = LO; k <= j; k++){
57 evolDF2->Df2Evol(mu, mc[i].getMu(), orders(k), mc[i].getScheme()) *
58 (*(mc[i].getCoeff(orders(j - k)))), orders(j));
59 }
60 }
61 }
62
63 ChangeScheme(scheme, coeffbd, ordDF2);
64
65 return coeffbd.getCoeff();
66}
void ChangeScheme(schemes schout, WilsonCoefficient &c_in, orders order)
change scheme for a Wilson Coefficient
Definition: HeffDF2.cpp:205
virtual StandardModelMatching & getMatching() const
A get method to access the member reference of type StandardModelMatching.
virtual std::vector< WilsonCoefficient > & CMdbd2()
,
virtual void setMu(double mu)
orders getOrder() const
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:33

◆ ComputeCoeffBs()

gslpp::vector< gslpp::complex > ** HeffDF2::ComputeCoeffBs ( double  mu,
schemes  scheme = NDR,
bool  SM = false 
)
Parameters
muis the low energy scale
schemeindicates the renormalization scheme (Default: NDR)
SMboolean to select only the SM contributions to the coefficients (Default: false)
Returns
the effective hamiltonian at the scale mu for B_s oscillations

Definition at line 68 of file HeffDF2.cpp.

69{
70
71 std::vector<WilsonCoefficient> mc;
72
73 if (SM)
74 mc = model.getMatching().StandardModelMatching::CMdbs2();
75 else
76 mc = model.getMatching().CMdbs2();
77
78 coeffbs.setMu(mu);
79
80 coeffbs.setScheme(mc[0].getScheme());
81
82 orders ordDF2 = coeffbs.getOrder();
83 for (unsigned int i = 0; i < mc.size(); i++){
84 ChangeScheme(mc[0].getScheme(),mc[i],ordDF2);
85 for (int j = LO; j <= ordDF2; j++){
86 for (int k = LO; k <= j; k++){
88 evolDF2->Df2Evol(mu, mc[i].getMu(), orders(k), mc[i].getScheme()) *
89 (*(mc[i].getCoeff(orders(j - k)))), orders(j));
90 }
91 }
92 }
93
94 ChangeScheme(scheme, coeffbs, ordDF2);
95
96 return coeffbs.getCoeff();
97}
virtual std::vector< WilsonCoefficient > & CMdbs2()
,

◆ ComputeCoeffdd()

gslpp::vector< gslpp::complex > ** HeffDF2::ComputeCoeffdd ( double  mu,
schemes  scheme = NDR 
)
Parameters
muis the low energy scale
schemeindicates the renormalization scheme (Default: NDR)
Returns
the effective hamiltonian at the scale mu for D oscillations

Definition at line 99 of file HeffDF2.cpp.

100{
101
102 std::vector<WilsonCoefficient> mc = model.getMatching().CMdd2();
103
104 coeffDd.setMu(mu);
105
106 coeffDd.setScheme(mc[0].getScheme());
107
108 orders ordDF2 = coeffDd.getOrder();
109 for (unsigned int i = 0; i < mc.size(); i++){
110 ChangeScheme(mc[0].getScheme(),mc[i],ordDF2);
111 for (int j = LO; j <= ordDF2; j++){
112 for (int k = LO; k <= j; k++){
114 evolDF2->Df2Evol(mu, mc[i].getMu(), orders(k), mc[i].getScheme()) *
115 (*(mc[i].getCoeff(orders(j - k)))), orders(j));
116 }
117 }
118 }
119
120 ChangeScheme(scheme, coeffDd, ordDF2);
121
122 return coeffDd.getCoeff();
123}
virtual std::vector< WilsonCoefficient > & CMdd2()
,

◆ ComputeCoeffK()

gslpp::vector< gslpp::complex > ** HeffDF2::ComputeCoeffK ( double  mu,
schemes  scheme = NDR 
)
Parameters
muis the low energy scale
schemeindicates the renormalization scheme (Default: NDR)
Returns
the effective hamiltonian at the scale mu for K oscillations

Definition at line 125 of file HeffDF2.cpp.

126{
127
128 std::vector<WilsonCoefficient> mc = model.getMatching().CMdk2();
129 gslpp::vector<gslpp::complex> zero(5,0.);
130
131 coeffk.setScheme(mc[0].getScheme());
132
133 coeffk.setMu(mu);
134 coeffk.setCoeff(zero,LO);
135 coeffk.setCoeff(zero,NLO);
136
137 orders ordDF2 = coeffk.getOrder();
138 for (unsigned int i = 0; i < mc.size(); i++){
139 if (i == 0){
140 coeffk.setCoeff(0, evolDF2->etatt(mu) * model.getMatching().S0tt() * (1. - model.getOptionalParameter("DeltattEpsK")) //EW correction from 2108.00017
141 + evolDF2->etacc(mu) * model.getMatching().S0c()
142 + evolDF2->etact(mu) * model.getMatching().S0ct(),
143 NLO);
144#if SUSYFIT_DEBUG & 2
145 std::cout << "mu = " << mu<< ", S0tt = " << model.getMatching().S0tt() <<
146 ", S0cc = " << model.getMatching().S0c() <<
147 ", S0ct = " << model.getMatching().S0ct() << std::endl;
148 std::cout << ", etatt = " << evolDF2->etatt(mu) <<
149 ", etacc = " << evolDF2->etacc(mu) <<
150 ", etact = " << evolDF2->etact(mu) << std::endl;
151 std::cout << "tt = " << evolDF2->etatt(mu)*model.getMatching().S0tt() <<
152 ", cc = " << evolDF2->etacc(mu)*model.getMatching().S0c() <<
153 ", ct = " << evolDF2->etact(mu)*model.getMatching().S0ct() << std::endl;
154#endif
155
156 }
157 else {
158 ChangeScheme(mc[0].getScheme(),mc[i],ordDF2);
159 for (int j = LO; j <= ordDF2; j++){
160 for (int k = LO; k <= j; k++){
162 evolDF2->Df2Evol(mu, mc[i].getMu(), orders(k), mc[i].getScheme()) *
163 (*(mc[i].getCoeff(orders(j - k)))), orders(j));
164 }
165 }
166 }
167 }
168
169 ChangeScheme(scheme, coeffk, ordDF2);
170
171 return coeffk.getCoeff();
172}
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

◆ ComputeCoeffmK()

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

for Delta M_K the SM contribution is set to zero

Parameters
muis the low energy scale
schemeindicates the renormalization scheme (Default: NDR)
Returns
the effective hamiltonian at the scale mu for Delta M_K

Definition at line 175 of file HeffDF2.cpp.

176{
177
178 const std::vector<WilsonCoefficient>& mc = model.getMatching().CMdk2();
179 gslpp::vector<gslpp::complex> zero(5,0.);
180
181 coeffmk.setMu(mu);
182
183 orders ordDF2 = coeffmk.getOrder();
184 for (unsigned int i = 0; i < mc.size(); i++){
185 if (i == 0){
186 coeffmk.setCoeff(zero, NLO);
187 coeffmk.setCoeff(zero, LO);
188 }
189 else {
190 for (int j = LO; j <= ordDF2; j++){
191 for (int k = LO; k <= j; k++){
193 evolDF2->Df2Evol(mu, mc[i].getMu(), orders(k), mc[i].getScheme()) *
194 (*(mc[i].getCoeff(orders(j - k)))), orders(j));
195 }
196 }
197 }
198 }
199
200 ChangeScheme(scheme, coeffmk, ordDF2);
201
202 return coeffmk.getCoeff();
203}

◆ getCoeffBd()

WilsonCoefficient HeffDF2::getCoeffBd ( ) const
inline

Definition at line 100 of file HeffDF2.h.

100 {
101 return coeffbd;
102 }

◆ getCoeffBs()

WilsonCoefficient HeffDF2::getCoeffBs ( ) const
inline

Definition at line 104 of file HeffDF2.h.

104 {
105 return coeffbs;
106 }

◆ getCoeffDD()

WilsonCoefficient HeffDF2::getCoeffDD ( ) const
inline

Definition at line 108 of file HeffDF2.h.

108 {
109 return coeffDd;
110 }

◆ getCoeffK()

WilsonCoefficient HeffDF2::getCoeffK ( ) const
inline

Definition at line 112 of file HeffDF2.h.

112 {
113 return coeffk;
114 }

◆ getCoeffmK()

WilsonCoefficient HeffDF2::getCoeffmK ( ) const
inline

Definition at line 116 of file HeffDF2.h.

116 {
117 return coeffmk;
118 }

◆ getUDF2()

EvolDF2 & HeffDF2::getUDF2 ( ) const
inline

Definition at line 120 of file HeffDF2.h.

120 {
121 return *evolDF2;
122 }

◆ S0tt()

gslpp::complex HeffDF2::S0tt ( double  mu) const
private

Member Data Documentation

◆ coeffbd

WilsonCoefficient HeffDF2::coeffbd
private

Definition at line 129 of file HeffDF2.h.

◆ coeffbs

WilsonCoefficient HeffDF2::coeffbs
private

Definition at line 130 of file HeffDF2.h.

◆ coeffDd

WilsonCoefficient HeffDF2::coeffDd
private

Definition at line 131 of file HeffDF2.h.

◆ coeffk

WilsonCoefficient HeffDF2::coeffk
private

Definition at line 132 of file HeffDF2.h.

◆ coeffmk

WilsonCoefficient HeffDF2::coeffmk
private

Definition at line 133 of file HeffDF2.h.

◆ drNDRLRI

gslpp::matrix<double> HeffDF2::drNDRLRI
private

Definition at line 128 of file HeffDF2.h.

◆ evolDF2

std::unique_ptr<EvolDF2> HeffDF2::evolDF2
private

Definition at line 135 of file HeffDF2.h.

◆ model

const StandardModel& HeffDF2::model
private

Definition at line 127 of file HeffDF2.h.


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