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)
 
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 }

◆ ~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 201 of file HeffDF2.cpp.

202 {
203  schemes schin = c_in.getScheme();
204  if (schout == schin || order == LO) return;
205  WilsonCoefficient c_out(5, schout, order);
206  switch(schin) {
207  case NDR:
208  switch(schout) {
209  case LRI:
210  c_out.setCoeff(*c_in.getCoeff(NLO) -
211  model.Als(c_in.getMu()) / 4. / M_PI * drNDRLRI.transpose()*
212  (*c_in.getCoeff(LO)), NLO);
213  c_in.setCoeff(*c_out.getCoeff(NLO),NLO);
214  c_in.setScheme(schout);
215  break;
216  default:
217  throw std::runtime_error("HeffDF2::ChangeScheme(): out scheme not implemented");
218  }
219  break;
220  default:
221  throw std::runtime_error("HeffDF2::ChangeScheme(): in scheme not implemented");
222  }
223 }

◆ ComputeCoeffBd()

gslpp::vector< gslpp::complex > ** HeffDF2::ComputeCoeffBd ( 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 B_d oscillations

Definition at line 38 of file HeffDF2.cpp.

39 {
40 
41  std::vector<WilsonCoefficient> mc = model.getMatching().CMdbd2();
42 
43  coeffbd.setMu(mu);
44 
45  coeffbd.setScheme(mc[0].getScheme());
46 
47  orders ordDF2 = coeffbd.getOrder();
48  for (unsigned int i = 0; i < mc.size(); i++){
49  ChangeScheme(mc[0].getScheme(),mc[i],ordDF2);
50  for (int j = LO; j <= ordDF2; j++){
51  for (int k = LO; k <= j; k++){
53  evolDF2->Df2Evol(mu, mc[i].getMu(), orders(k), mc[i].getScheme()) *
54  (*(mc[i].getCoeff(orders(j - k)))), orders(j));
55  }
56  }
57  }
58 
59  ChangeScheme(scheme, coeffbd, ordDF2);
60 
61  return coeffbd.getCoeff();
62 }

◆ 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 64 of file HeffDF2.cpp.

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

◆ 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 95 of file HeffDF2.cpp.

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

◆ 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 121 of file HeffDF2.cpp.

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

◆ 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 171 of file HeffDF2.cpp.

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

◆ 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:
WilsonTemplate::setScheme
void setScheme(schemes scheme)
Definition: WilsonTemplate.h:103
WilsonCoefficient
A class for the Wilson coefficients.
Definition: WilsonCoefficient.h:22
HeffDF2::drNDRLRI
gslpp::matrix< double > drNDRLRI
Definition: HeffDF2.h:128
HeffDF2::ChangeScheme
void ChangeScheme(schemes schout, WilsonCoefficient &c_in, orders order)
change scheme for a Wilson Coefficient
Definition: HeffDF2.cpp:201
StandardModelMatching::CMdbd2
virtual std::vector< WilsonCoefficient > & CMdbd2()
,
Definition: StandardModelMatching.cpp:999
StandardModelMatching::CMdbs2
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
Definition: StandardModelMatching.cpp:1049
LO
Definition: OrderScheme.h:33
NDR
Definition: OrderScheme.h:21
gslpp::matrix< double >::transpose
matrix< double > transpose() const
Definition: gslpp_matrix_double.cpp:166
WilsonTemplate::getMu
double getMu() const
Definition: WilsonTemplate.h:75
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
EvolDF2
Definition: EvolDF2.h:15
WilsonTemplate::getScheme
schemes getScheme() const
Definition: WilsonTemplate.h:98
HeffDF2::coeffk
WilsonCoefficient coeffk
Definition: HeffDF2.h:132
HeffDF2::coeffbs
WilsonCoefficient coeffbs
Definition: HeffDF2.h:130
WilsonTemplate::getOrder
orders getOrder() const
Definition: WilsonTemplate.h:65
HeffDF2::coeffbd
WilsonCoefficient coeffbd
Definition: HeffDF2.h:129
WilsonCoefficient::setCoeff
void setCoeff(const gslpp::vector< gslpp::complex > &z, orders order_i)
Definition: WilsonCoefficient.h:34
schemes
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:19
HeffDF2::model
const StandardModel & model
Definition: HeffDF2.h:127
StandardModel::Als
double Als(double mu, orders order=FULLNLO, bool qed_flag=false, bool Nf_thr=true) const
The running QCD coupling in the scheme including QED corrections.
Definition: StandardModel.cpp:602
WilsonTemplate::setMu
virtual void setMu(double mu)
Definition: WilsonTemplate.h:92
HeffDF2::coeffDd
WilsonCoefficient coeffDd
Definition: HeffDF2.h:131
orders
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
LRI
Definition: OrderScheme.h:23
StandardModelMatching::CMdd2
virtual std::vector< WilsonCoefficient > & CMdd2()
,
Definition: StandardModelMatching.cpp:1205
StandardModel::getMatching
virtual StandardModelMatching & getMatching() const
A get method to access the member reference of type StandardModelMatching.
Definition: StandardModel.h:952
HeffDF2::coeffmk
WilsonCoefficient coeffmk
Definition: HeffDF2.h:133
HeffDF2::evolDF2
std::unique_ptr< EvolDF2 > evolDF2
Definition: HeffDF2.h:135
WilsonCoefficient::getCoeff
gslpp::vector< gslpp::complex > ** getCoeff() const
Definition: WilsonCoefficient.h:29
QCD::getNc
double getNc() const
A get method to access the number of colours .
Definition: QCD.h:505
NLO
Definition: OrderScheme.h:34
gslpp::vector< gslpp::complex >