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"
14#include "gslpp_special_functions.h"
15#include <map>
16#include "boost/multi_array.hpp"
17
18#define NF 4
19
20typedef unsigned int uint;
21typedef unsigned int indices;
22
23class EvolDF1 : public RGEvolutorNew {
34public:
43 EvolDF1(std::string reqblocks, schemes scheme, const StandardModel& model_i, qcd_orders order_qcd, qed_orders order_qed);
47 virtual ~EvolDF1();
55 gslpp::matrix<double> AnomalousDimension(indices nm, uint n_u, uint n_d) const;
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
88private:
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
339 gslpp::matrix<double> evec, evec_i, js, h, gg, s_s, jssv, jss, jv, vij;
340 gslpp::vector<double> eval;
341 gslpp::matrix<gslpp::complex> evecc;
342 gslpp::vector<gslpp::complex> evalc;
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 */
unsigned int uint
Definition: EvolDF1.h:20
unsigned int indices
Definition: EvolDF1.h:21
@ NDR
Definition: OrderScheme.h:21
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
gslpp::matrix< double > gg
Definition: EvolDF1.h:339
std::map< std::vector< uint >, double > vM131vi[NF]
Definition: EvolDF1.h:331
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
std::map< std::vector< uint >, double > vM14vi[NF]
Definition: EvolDF1.h:331
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
std::map< std::vector< uint >, double > vM34vi[NF]
Definition: EvolDF1.h:330
std::map< std::vector< uint >, double > vM2vi[NF]
Definition: EvolDF1.h:329
uint nfmin
Definition: EvolDF1.h:336
std::map< std::vector< uint >, double > vM3vi[NF]
Definition: EvolDF1.h:329
std::map< std::vector< uint >, double > vM5vi[NF]
Definition: EvolDF1.h:329
gslpp::matrix< double > jv
Definition: EvolDF1.h:339
gslpp::matrix< double > GammaBL(indices nm, uint n_u, uint n_d) const
BL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:1154
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
std::map< std::vector< uint >, double > vM311vi[NF]
Definition: EvolDF1.h:331
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
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
gslpp::matrix< double > evec
Definition: EvolDF1.h:339
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
gslpp::matrix< double > GammaQL(indices nm, uint n_u, uint n_d) const
QL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:994
std::map< std::vector< uint >, double > vM133vi[NF]
Definition: EvolDF1.h:331
double f_f_d[2][F_iCacheSize]
Definition: EvolDF1.h:348
gslpp::matrix< double > GammaCL(indices nm, uint n_u, uint n_d) const
CL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:442
gslpp::matrix< double > js
Definition: EvolDF1.h:339
std::map< std::vector< uint >, double > vM331vi[NF]
Definition: EvolDF1.h:331
uint nops
Definition: EvolDF1.h:336
double MAls_cache
Definition: EvolDF1.h:343
gslpp::matrix< gslpp::complex > evecc
Definition: EvolDF1.h:341
gslpp::matrix< double > GammaBQ(indices nm, uint n_u, uint n_d) const
BQ block of the QED anomalous dimension.
Definition: EvolDF1.cpp:1184
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
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
gslpp::matrix< double > GammaPL(indices nm, uint n_u, uint n_d) const
PL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:689
double alsM_cache
Definition: EvolDF1.h:343
virtual ~EvolDF1()
EvolDF1 destructor.
Definition: EvolDF1.cpp:192
std::map< std::vector< uint >, double > vM33vi[NF]
Definition: EvolDF1.h:330
std::map< std::vector< uint >, double > vM43vi[NF]
Definition: EvolDF1.h:330
gslpp::matrix< double > jssv
Definition: EvolDF1.h:339
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
gslpp::vector< gslpp::complex > evalc
Definition: EvolDF1.h:342
gslpp::matrix< double > jss
Definition: EvolDF1.h:339
std::map< std::vector< uint >, double > vM11vi[NF]
Definition: EvolDF1.h:330
const StandardModel & model
Definition: EvolDF1.h:333
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
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
friend double gslpp_special_functions::zeta(int i)
std::map< std::vector< uint >, double > vM13vi[NF]
Definition: EvolDF1.h:330
int f_f_c[4][F_iCacheSize]
Definition: EvolDF1.h:347
std::map< std::vector< uint >, double > vM313vi[NF]
Definition: EvolDF1.h:331
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
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
gslpp::matrix< double > GammaPQ(indices nm, uint n_u, uint n_d) const
PQ block of the QED anomalous dimension.
Definition: EvolDF1.cpp:742
std::map< std::vector< uint >, double > vM1vi[NF]
Definition: EvolDF1.h:329
std::map< std::vector< uint >, double > vM32vi[NF]
Definition: EvolDF1.h:330
gslpp::matrix< double > vij
Definition: EvolDF1.h:339
gslpp::matrix< double > h
Definition: EvolDF1.h:339
std::map< std::vector< uint >, double > vM41vi[NF]
Definition: EvolDF1.h:331
std::string blocks
Definition: EvolDF1.h:337
std::map< std::vector< uint >, double > vM6vi[NF]
Definition: EvolDF1.h:330
std::map< std::vector< uint >, double > vM0vi[NF]
Definition: EvolDF1.h:329
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
EvolDF1(std::string reqblocks, schemes scheme, const StandardModel &model_i, qcd_orders order_qcd, qed_orders order_qed)
EvolDF1 constructor.
Definition: EvolDF1.cpp:29
gslpp::matrix< double > GammaCQ(indices nm, uint n_u, uint n_d) const
CQ block of the QED anomalous dimension.
Definition: EvolDF1.cpp:484
std::map< std::vector< uint >, double > vM23vi[NF]
Definition: EvolDF1.h:330
uint nfmax
Definition: EvolDF1.h:336
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
std::map< std::vector< uint >, double > vM4vi[NF]
Definition: EvolDF1.h:329
std::map< std::vector< uint >, double > vM113vi[NF]
Definition: EvolDF1.h:331
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
gslpp::matrix< double > GammaLL(indices nm, uint n_u, uint n_d) const
LL block of the QED anomalous dimension.
Definition: EvolDF1.cpp:850
gslpp::matrix< double > s_s
Definition: EvolDF1.h:339
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
gslpp::matrix< double > GammaQM(indices nm, uint n_u, uint n_d) const
QM block of the QCD anomalous dimension.
Definition: EvolDF1.cpp:959
gslpp::matrix< double > evec_i
Definition: EvolDF1.h:339
std::map< std::vector< uint >, double > vM31vi[NF]
Definition: EvolDF1.h:330
std::map< uint, double > ai[NF]
Definition: EvolDF1.h:328
gslpp::vector< double > eval
Definition: EvolDF1.h:340
A model class for the Standard Model.
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:20
qed_orders
An enum type for qed_orders in electroweak.
Definition: OrderScheme.h:90
qcd_orders
An enum type for qcd_orders in QCD.
Definition: OrderScheme.h:74