a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
EvolDF1.h
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 
8 #ifndef EVOLDF1_H
9 #define EVOLDF1_H
10 
11 #include <string>
12 #include "RGEvolutorNew.h"
13 #include "StandardModel.h"
15 #include <map>
16 #include "boost/multi_array.hpp"
17 
18 #define NF 4
19 
20 typedef unsigned int uint;
21 typedef unsigned int indices;
22 
23 class EvolDF1 : public RGEvolutorNew {
34 public:
43  EvolDF1(std::string reqblocks, schemes scheme, const StandardModel& model_i, qcd_orders order_qcd, qed_orders order_qed);
47  virtual ~EvolDF1();
56 
65  const Expanded<gslpp::matrix<double> >& DF1Evol(double mu, double M, schemes scheme = NDR);
66 
74  //gslpp::matrix<double> ToRescaleBasis(orders order, uint n_u, uint n_d) const;
80  //gslpp::matrix<double> ToEffectiveBasis(gslpp::matrix<double> mat)const;
81 
82  // std::map<std::string,uint> blocks_nops;
83 
84  // {{"C",2},{"CP",6},{"CPM",8},{"L",2},{"CPML",10},{"CPQB",11},{"CPMQB",13},{"CPMLQB",15}};
85  // std::map<std::string,orders> blocks_ord;// = {{"C",NNLO},{"CP",NNLO},{"CPM",NNLO},{"L",NNLO},{"CPML",NNLO},{"CPQB",NLO},{"CPMQB",NLO},{"CPMLQB",NLO}};
86 
87 
88 private:
89 
96  //double a[4][13],
97  //double b[4][13][13][13], c[4][13][13][13], d[4][13][13][13];
98 
99  // typedef boost::multi_array<double, 4> array_type4;
100  // typedef boost::multi_array<double, 2> array_type2;
101  // array_type2 mn_a;
102  // array_type4 mn_b,mn_c,mn_d;
103 
104 
110  void CheckNf(indices nm, uint nf) const;
111 
119  // void DF1Evol(double mu, double M, double nf, schemes scheme);
120  void DF1Ev(double mu, double M, int nf, schemes scheme);
121 
122  friend double gslpp_special_functions::zeta(int i);
123 
131  gslpp::matrix<double> GammaCC(indices nm, uint n_u, uint n_d) const;
139  gslpp::matrix<double> GammaCP(indices nm, uint n_u, uint n_d) const;
147  gslpp::matrix<double> GammaCM(indices nm, uint n_u, uint n_d) const;
155  gslpp::matrix<double> GammaCL(indices nm, uint n_u, uint n_d) const;
163  gslpp::matrix<double> GammaCQ(indices nm, uint n_u, uint n_d) const;
164 
172  gslpp::matrix<double> GammaPP(indices nm, uint n_u, uint n_d) const;
180  gslpp::matrix<double> GammaPM(indices nm, uint n_u, uint n_d) const;
188  gslpp::matrix<double> GammaPL(indices nm, uint n_u, uint n_d) const;
196  gslpp::matrix<double> GammaPQ(indices nm, uint n_u, uint n_d) const;
197 
205  gslpp::matrix<double> GammaMM(indices nm, uint n_u, uint n_d) const;
206 
214  gslpp::matrix<double> GammaLL(indices nm, uint n_u, uint n_d) const;
215 
223  gslpp::matrix<double> GammaQP(indices nm, uint n_u, uint n_d) const;
231  gslpp::matrix<double> GammaQM(indices nm, uint n_u, uint n_d) const;
239  gslpp::matrix<double> GammaQL(indices nm, uint n_u, uint n_d) const;
247  gslpp::matrix<double> GammaQQ(indices nm, uint n_u, uint n_d) const;
248 
256  gslpp::matrix<double> GammaBP(indices nm, uint n_u, uint n_d) const;
264  gslpp::matrix<double> GammaBL(indices nm, uint n_u, uint n_d) const;
272  gslpp::matrix<double> GammaBQ(indices nm, uint n_u, uint n_d) const;
280  gslpp::matrix<double> GammaBB(indices nm, uint n_u, uint n_d) const;
281 
290  double f_f(uint nf, uint i, uint j, int k, double eta);
291 
300  double f_r(uint nf, uint i, uint j, int k, double eta);
301 
312  double f_g(uint nf, uint i, uint p, uint j, int k, int l, double eta);
313 
326  double f_h(uint nf, uint i, uint p, uint q, uint j, int k, int l, int m, double eta);
327 
328  std::map< uint, double > ai[NF];
329  std::map< std::vector<uint>, double > vM0vi[NF], vM1vi[NF], vM2vi[NF], vM3vi[NF], vM4vi[NF], vM5vi[NF],
330  vM6vi[NF], vM11vi[NF], vM33vi[NF], vM31vi[NF], vM13vi[NF], vM34vi[NF], vM43vi[NF], vM23vi[NF], vM32vi[NF],
331  vM14vi[NF], vM41vi[NF], vM113vi[NF], vM131vi[NF], vM311vi[NF], vM133vi[NF], vM313vi[NF], vM331vi[NF];
332 
334 
335  // operators to include {C, P, M, L, Q, b} Huber et al., hep-ph/0512066
337  std::string blocks;
338 
344 
345  //caching
346 #define F_iCacheSize 5
347  int f_f_c[4][F_iCacheSize];
348  double f_f_d[2][F_iCacheSize];
349 };
350 
351 #endif /* EVOLDF1_H */
EvolDF1::vM13vi
std::map< std::vector< uint >, double > vM13vi[NF]
Definition: EvolDF1.h:329
gslpp_special_functions::zeta
double zeta(int i)
Definition: gslpp_special_functions.cpp:20
EvolDF1::GammaBP
gslpp::matrix< double > GammaBP(indices nm, uint n_u, uint n_d) const
BP block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:1116
EvolDF1::vM43vi
std::map< std::vector< uint >, double > vM43vi[NF]
Definition: EvolDF1.h:329
EvolDF1::f_f_c
int f_f_c[4][F_iCacheSize]
Definition: EvolDF1.h:347
EvolDF1::s_s
gslpp::matrix< double > s_s
Definition: EvolDF1.h:339
EvolDF1::vM1vi
std::map< std::vector< uint >, double > vM1vi[NF]
Definition: EvolDF1.h:329
EvolDF1::GammaCC
gslpp::matrix< double > GammaCC(indices nm, uint n_u, uint n_d) const
CC block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:279
EvolDF1::GammaQP
gslpp::matrix< double > GammaQP(indices nm, uint n_u, uint n_d) const
QP block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:883
EvolDF1::vM34vi
std::map< std::vector< uint >, double > vM34vi[NF]
Definition: EvolDF1.h:329
gslpp::matrix< double >
A class for constructing and defining operations on real matrices.
Definition: gslpp_matrix_double.h:48
EvolDF1::vM33vi
std::map< std::vector< uint >, double > vM33vi[NF]
Definition: EvolDF1.h:329
EvolDF1::GammaQM
gslpp::matrix< double > GammaQM(indices nm, uint n_u, uint n_d) const
QM block of the QCD anomalous dimension.
Definition: EvolDF1.cpp:959
EvolDF1::vM31vi
std::map< std::vector< uint >, double > vM31vi[NF]
Definition: EvolDF1.h:329
EvolDF1::gg
gslpp::matrix< double > gg
Definition: EvolDF1.h:339
EvolDF1::f_r
double f_r(uint nf, uint i, uint j, int k, double eta)
auxiliary function r - eq. (51) of Huber, Lunghi, Misiak, Wyler, hep-ph/0512066
Definition: EvolDF1.cpp:233
EvolDF1::vM2vi
std::map< std::vector< uint >, double > vM2vi[NF]
Definition: EvolDF1.h:329
EvolDF1::evec
gslpp::matrix< double > evec
Definition: EvolDF1.h:339
EvolDF1::vM41vi
std::map< std::vector< uint >, double > vM41vi[NF]
Definition: EvolDF1.h:329
EvolDF1::GammaMM
gslpp::matrix< double > GammaMM(indices nm, uint n_u, uint n_d) const
MM block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:796
EvolDF1::DF1Evol
const Expanded< gslpp::matrix< double > > & DF1Evol(double mu, double M, schemes scheme=NDR)
a method returning the evolutor related to the high scale and the low scale
Definition: EvolDF1.cpp:1359
EvolDF1::GammaCQ
gslpp::matrix< double > GammaCQ(indices nm, uint n_u, uint n_d) const
CQ block of the QED anomalous dimension.
Definition: EvolDF1.cpp:484
qcd_orders
qcd_orders
Definition: OrderScheme.h:65
RGEvolutorNew::M
double M
Definition: RGEvolutorNew.h:107
StandardModel.h
EvolDF1::vM133vi
std::map< std::vector< uint >, double > vM133vi[NF]
Definition: EvolDF1.h:329
RGEvolutorNew.h
NDR
Definition: OrderScheme.h:21
gslpp::matrix< gslpp::complex >
EvolDF1::AnomalousDimension
gslpp::matrix< double > AnomalousDimension(indices nm, uint n_u, uint n_d) const
a method returning the anomalous dimension matrix given in the Misiak basis
Definition: EvolDF1.cpp:1251
EvolDF1::blocks
std::string blocks
Definition: EvolDF1.h:337
EvolDF1::vM11vi
std::map< std::vector< uint >, double > vM11vi[NF]
Definition: EvolDF1.h:329
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:477
EvolDF1::eval
gslpp::vector< double > eval
Definition: EvolDF1.h:340
EvolDF1::f_g
double f_g(uint nf, uint i, uint p, uint j, int k, int l, double eta)
auxiliary function g - eq. (52) of Huber, Lunghi, Misiak, Wyler, hep-ph/0512066
Definition: EvolDF1.cpp:243
EvolDF1::GammaPQ
gslpp::matrix< double > GammaPQ(indices nm, uint n_u, uint n_d) const
PQ block of the QED anomalous dimension.
Definition: EvolDF1.cpp:742
WilsonTemplateNew< gslpp::matrix< double > >::order_qed
qed_orders order_qed
Definition: WilsonTemplateNew.h:123
EvolDF1::f_h
double f_h(uint nf, uint i, uint p, uint q, uint j, int k, int l, int m, double eta)
auxiliary function h - eq. (53) of Huber, Lunghi, Misiak, Wyler, hep-ph/0512066
Definition: EvolDF1.cpp:253
WilsonTemplateNew< gslpp::matrix< double > >::order_qcd
qcd_orders order_qcd
Definition: WilsonTemplateNew.h:122
EvolDF1::vM313vi
std::map< std::vector< uint >, double > vM313vi[NF]
Definition: EvolDF1.h:329
EvolDF1::evalc
gslpp::vector< gslpp::complex > evalc
Definition: EvolDF1.h:342
EvolDF1::vM4vi
std::map< std::vector< uint >, double > vM4vi[NF]
Definition: EvolDF1.h:329
EvolDF1::vij
gslpp::matrix< double > vij
Definition: EvolDF1.h:339
RGEvolutorNew
Definition: RGEvolutorNew.h:24
schemes
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:19
EvolDF1::vM32vi
std::map< std::vector< uint >, double > vM32vi[NF]
Definition: EvolDF1.h:329
EvolDF1::GammaPP
gslpp::matrix< double > GammaPP(indices nm, uint n_u, uint n_d) const
PP block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:521
EvolDF1::vM6vi
std::map< std::vector< uint >, double > vM6vi[NF]
Definition: EvolDF1.h:329
EvolDF1::GammaQQ
gslpp::matrix< double > GammaQQ(indices nm, uint n_u, uint n_d) const
QQ block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:1030
EvolDF1
Definition: EvolDF1.h:23
EvolDF1::evecc
gslpp::matrix< gslpp::complex > evecc
Definition: EvolDF1.h:341
EvolDF1::MAls_cache
double MAls_cache
Definition: EvolDF1.h:343
EvolDF1::model
const StandardModel & model
Definition: EvolDF1.h:333
qed_orders
qed_orders
Definition: OrderScheme.h:81
EvolDF1::EvolDF1
EvolDF1(std::string reqblocks, schemes scheme, const StandardModel &model_i, qcd_orders order_qcd, qed_orders order_qed)
EvolDF1 constructor.
Definition: EvolDF1.cpp:29
Expanded
A template class for Taylor double expansion of several objects.
Definition: Expanded.h:55
EvolDF1::vM131vi
std::map< std::vector< uint >, double > vM131vi[NF]
Definition: EvolDF1.h:329
indices
unsigned int indices
Definition: EvolDF1.h:21
uint
unsigned int uint
Definition: EvolDF1.h:20
EvolDF1::jv
gslpp::matrix< double > jv
Definition: EvolDF1.h:339
EvolDF1::nops
uint nops
Definition: EvolDF1.h:336
gslpp_special_functions.h
EvolDF1::vM331vi
std::map< std::vector< uint >, double > vM331vi[NF]
Definition: EvolDF1.h:329
gslpp::vector< double >
A class for constructing and defining operations on real vectors.
Definition: gslpp_vector_double.h:33
EvolDF1::vM0vi
std::map< std::vector< uint >, double > vM0vi[NF]
Definition: EvolDF1.h:329
WilsonTemplateNew< gslpp::matrix< double > >::scheme
schemes scheme
Definition: WilsonTemplateNew.h:121
EvolDF1::GammaBB
gslpp::matrix< double > GammaBB(indices nm, uint n_u, uint n_d) const
BB block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:1215
EvolDF1::h
gslpp::matrix< double > h
Definition: EvolDF1.h:339
EvolDF1::vM311vi
std::map< std::vector< uint >, double > vM311vi[NF]
Definition: EvolDF1.h:329
WilsonTemplateNew< gslpp::matrix< double > >::mu
double mu
Definition: WilsonTemplateNew.h:120
EvolDF1::ai
std::map< uint, double > ai[NF]
Definition: EvolDF1.h:328
EvolDF1::vM113vi
std::map< std::vector< uint >, double > vM113vi[NF]
Definition: EvolDF1.h:329
EvolDF1::CheckNf
void CheckNf(indices nm, uint nf) const
a method returning the anomalous dimension in the Chetyrkin, Misiak and Munz operator basis
Definition: EvolDF1.cpp:269
EvolDF1::nfmin
uint nfmin
Definition: EvolDF1.h:336
EvolDF1::jss
gslpp::matrix< double > jss
Definition: EvolDF1.h:339
EvolDF1::vM5vi
std::map< std::vector< uint >, double > vM5vi[NF]
Definition: EvolDF1.h:329
EvolDF1::vM14vi
std::map< std::vector< uint >, double > vM14vi[NF]
Definition: EvolDF1.h:329
EvolDF1::f_f_d
double f_f_d[2][F_iCacheSize]
Definition: EvolDF1.h:348
EvolDF1::GammaLL
gslpp::matrix< double > GammaLL(indices nm, uint n_u, uint n_d) const
LL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:850
EvolDF1::vM23vi
std::map< std::vector< uint >, double > vM23vi[NF]
Definition: EvolDF1.h:329
EvolDF1::~EvolDF1
virtual ~EvolDF1()
EvolDF1 destructor.
Definition: EvolDF1.cpp:192
EvolDF1::alsM_cache
double alsM_cache
Definition: EvolDF1.h:343
EvolDF1::GammaPL
gslpp::matrix< double > GammaPL(indices nm, uint n_u, uint n_d) const
PL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:689
EvolDF1::evec_i
gslpp::matrix< double > evec_i
Definition: EvolDF1.h:339
EvolDF1::GammaCP
gslpp::matrix< double > GammaCP(indices nm, uint n_u, uint n_d) const
CP block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:330
EvolDF1::vM3vi
std::map< std::vector< uint >, double > vM3vi[NF]
Definition: EvolDF1.h:329
EvolDF1::GammaCL
gslpp::matrix< double > GammaCL(indices nm, uint n_u, uint n_d) const
CL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:442
EvolDF1::GammaBL
gslpp::matrix< double > GammaBL(indices nm, uint n_u, uint n_d) const
BL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:1154
EvolDF1::jssv
gslpp::matrix< double > jssv
Definition: EvolDF1.h:339
EvolDF1::f_f
double f_f(uint nf, uint i, uint j, int k, double eta)
auxiliary function f - eq. (50) of Huber, Lunghi, Misiak, Wyler, hep-ph/0512066
Definition: EvolDF1.cpp:206
EvolDF1::GammaCM
gslpp::matrix< double > GammaCM(indices nm, uint n_u, uint n_d) const
CM block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:384
gslpp::vector< gslpp::complex >
EvolDF1::nfmax
uint nfmax
Definition: EvolDF1.h:336
EvolDF1::GammaBQ
gslpp::matrix< double > GammaBQ(indices nm, uint n_u, uint n_d) const
BQ block of the QED anomalous dimension.
Definition: EvolDF1.cpp:1184
EvolDF1::GammaQL
gslpp::matrix< double > GammaQL(indices nm, uint n_u, uint n_d) const
QL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:994
EvolDF1::DF1Ev
void DF1Ev(double mu, double M, int nf, schemes scheme)
a void type method storing properly the magic numbers for the implementation of the evolutor
Definition: EvolDF1.cpp:1453
EvolDF1::GammaPM
gslpp::matrix< double > GammaPM(indices nm, uint n_u, uint n_d) const
PM block of the QCD+QED anomalous dimension.
Definition: EvolDF1.cpp:611
EvolDF1::js
gslpp::matrix< double > js
Definition: EvolDF1.h:339