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

#include <EvolDF1_diujlknu.h>

+ Inheritance diagram for EvolDF1_diujlknu:

Detailed Description

Definition at line 15 of file EvolDF1_diujlknu.h.

Public Member Functions

gslpp::matrix< double > AnomalousDimension (orders order, unsigned int nf) const
 ADM in the JMS basis, in the order CnueduVLLkkij, CnueduVLRkkij, CnueduSRRkkij, CnueduSRLkkij, CnueduTRRkkij, from 1706.00410. More...
 
gslpp::matrix< double > AnomalousDimension (orders_qed order_qed, unsigned int nf) const
 QED ADM in the JMS basis, in the order CnueduVLLkkij, CnueduVLRkkij, CnueduSRRkkij, CnueduSRLkkij, CnueduTRRkkij, from 1706.00410. More...
 
gslpp::matrix< double > & Df1diujlknuEvol (double mu, double M, orders order, schemes scheme=NDR)
 
 EvolDF1_diujlknu (unsigned int dim_i, schemes scheme, orders order, const StandardModel &model)
 constructor More...
 
virtual ~EvolDF1_diujlknu ()
 
- Public Member Functions inherited from RGEvolutor
gslpp::matrix< double > * Evol (orders order)
 Evolution matrix set at a fixed order of QCD coupling. More...
 
gslpp::matrix< double > * Evol (orders_qed order_qed)
 Evolution matrix set at a fixed order of Electroweak coupling. More...
 
gslpp::matrix< double > ** getEvol () const
 
double getM () const
 Retrieve the upper scale of the Wilson Coefficients. More...
 
 RGEvolutor (unsigned int dim, schemes scheme, orders order)
 constructor More...
 
 RGEvolutor (unsigned int dim, schemes scheme, orders order, orders_qed order_qed)
 constructor More...
 
void setEvol (const gslpp::matrix< double > &m, orders order_i)
 
void setEvol (const gslpp::matrix< double > &m, orders_qed order_qed_i)
 
void setEvol (unsigned int i, unsigned int j, double x, orders order_i)
 
void setEvol (unsigned int i, unsigned int j, double x, orders order_i, orders_qed order_qed)
 
void setM (double M)
 Sets the upper scale for the running of the Wilson Coefficients. More...
 
void setMu (double mu)
 Sets the lower scale for the running of the Wilson Coefficients. More...
 
void setScales (double mu, double M)
 Sets the upper and lower scale for the running of the Wilson Coefficients. More...
 
virtual ~RGEvolutor ()
 destructor More...
 
- Public Member Functions inherited from WilsonTemplate< gslpp::matrix< double > >
double getMu () const
 
orders getOrder () const
 
orders_qed getOrder_qed () const
 
schemes getScheme () const
 
unsigned int getSize () const
 
virtual void resetCoefficient ()
 
void setScheme (schemes scheme)
 
 WilsonTemplate (const WilsonTemplate< gslpp::matrix< double > > &orig)
 
 WilsonTemplate (unsigned int dim, schemes scheme_i, orders order_i, orders_qed order_qed_i=NO_QED)
 
virtual ~WilsonTemplate ()
 

Private Member Functions

void Df1diujlknuEvol (double mu, double M, double nf, schemes scheme)
 

Private Attributes

double a [5]
 
double alsMZ_cache
 
double b [5][5][5]
 
double c [3][5][5][5]
 
double d [3][5][5][5]
 
unsigned int dim
 
const StandardModelmodel
 
double Mz_cache
 

Additional Inherited Members

- Protected Member Functions inherited from WilsonTemplate< gslpp::matrix< double > >
gslpp::matrix< double > * Elem (orders order) const
 
gslpp::matrix< double > * Elem (orders_qed order_qed) const
 
void setElem (const gslpp::matrix< double > &v, orders order_i)
 
void setElem (const gslpp::matrix< double > &v, orders_qed order_qed_i)
 
- Protected Attributes inherited from RGEvolutor
double M
 
- Protected Attributes inherited from WilsonTemplate< gslpp::matrix< double > >
gslpp::matrix< double > * elem [MAXORDER_QED+1]
 
double mu
 
orders order
 
orders_qed order_qed
 
schemes scheme
 
unsigned int size
 

Constructor & Destructor Documentation

◆ EvolDF1_diujlknu()

EvolDF1_diujlknu::EvolDF1_diujlknu ( unsigned int  dim_i,
schemes  scheme,
orders  order,
const StandardModel model 
)

constructor

Parameters
dim
scheme
order
model

Definition at line 13 of file EvolDF1_diujlknu.cpp.

13 :
14RGEvolutor(dim_i, scheme, order),
15 model(model),
16 dim(dim_i){
17
18 gslpp::matrix<double> g0t(AnomalousDimension(LO, 3).transpose());
19
20 gslpp::matrix<gslpp::complex>vv(dim, dim, 0.);
21 gslpp::vector<gslpp::complex>ee(dim, 0.);
22
23 g0t.eigensystem(vv, ee);
24
25 gslpp::matrix<double> v(vv.real());
26 gslpp::vector<double> e(ee.real());
27
28 gslpp::matrix<double> vi = v.inverse();
29 for (unsigned int k = 0; k < dim; k++) {
30 a[k] = e(k);
31// std::cout << "a[" << k << "] = " << a[k] << std::endl;
32 for (unsigned int j = 0; j < dim; j++) {
33 for (unsigned int i = 0; i < dim; i++) {
34 b[i][j][k] = v(i, k) * vi(k, j);
35// if (b[i][j][k] != 0.)
36// std::cout << "b[" << i << "][" << j << "][" << k << "] = " << b[i][j][k] << std::endl;
37 }
38 }
39 }
40
41 gslpp::matrix<double> h(dim, dim, 0.);
42 for (int l = 0; l < 2; l++) {
43 gslpp::matrix<double> gg = vi * (AnomalousDimension(NLO, 5 - l).transpose()) * v;
44 double b0 = model.Beta0(5 - l);
45 for (unsigned int i = 0; i < dim; i++)
46 for (unsigned int j = 0; j < dim; j++)
47 h(i, j) = (i == j) * e(i) * model.Beta1(5 - l) / (2. * b0 * b0) -
48 gg(i, j) / (2. * b0 + e(i) - e(j));
49 gslpp::matrix<double> j = v * h * vi;
50 gslpp::matrix<double> jv = j*v;
51 gslpp::matrix<double> vij = vi*j;
52 for (unsigned int i = 0; i < dim; i++)
53 for (unsigned int j = 0; j < dim; j++)
54 for (unsigned int k = 0; k < dim; k++) {
55 c[l][i][j][k] = jv(i, k) * vi(k, j);
56// if (c[l][i][j][k] != 0.)
57// std::cout << "c[" << l << "][" << i << "][" << j << "][" << k << "] = " << c[l][i][j][k] << std::endl;
58 d[l][i][j][k] = -v(i, k) * vij(k, j);
59// if (d[l][i][j][k] != 0.)
60// std::cout << "d[" << l << "][" << i << "][" << j << "][" << k << "] = " << d[l][i][j][k] << std::endl;
61 }
62 }
63
64}
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
gslpp::matrix< double > AnomalousDimension(orders order, unsigned int nf) const
ADM in the JMS basis, in the order CnueduVLLkkij, CnueduVLRkkij, CnueduSRRkkij, CnueduSRLkkij,...
unsigned int dim
double c[3][5][5][5]
double d[3][5][5][5]
const StandardModel & model
double b[5][5][5]
const double Beta1(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:606
const double Beta0(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:601
RGEvolutor(unsigned int dim, schemes scheme, orders order)
constructor
Definition: RGEvolutor.cpp:10

◆ ~EvolDF1_diujlknu()

EvolDF1_diujlknu::~EvolDF1_diujlknu ( )
virtual

Definition at line 66 of file EvolDF1_diujlknu.cpp.

66 {
67}

Member Function Documentation

◆ AnomalousDimension() [1/2]

gslpp::matrix< double > EvolDF1_diujlknu::AnomalousDimension ( orders  order,
unsigned int  nf 
) const

ADM in the JMS basis, in the order CnueduVLLkkij, CnueduVLRkkij, CnueduSRRkkij, CnueduSRLkkij, CnueduTRRkkij, from 1706.00410.

Parameters
order
nfnumber of active flavours
Returns
Anomalous dimension for \( \bar{d}_i u_j \bar{\nu} \ell_k \) operators in the JMS basis ordered as CnueduVLLkkij, CnueduVLRkkij, CnueduSRRkkij, CnueduSRLkkij, CnueduTRRkkij

Definition at line 69 of file EvolDF1_diujlknu.cpp.

70{
71 gslpp::matrix<double> ad(dim, dim, 0.);
72 switch (order) {
73 case LO:
74 ad(2, 2) = -4.;
75 ad(3, 3) = -4.;
76 ad(4, 4) = 4./3.;
77 break;
78 case NLO:
79 ad(2, 2) = 2./9.*(-303.+10.*nf);
80 ad(3, 3) = ad(2,2);
81 ad(4, 4) = 2./27.*(543.-26.*nf);
82 break;
83 default:
84 throw std::runtime_error("EvolDF1_diujlknu::AnomalousDimension(): order not implemented");
85 }
86 return (ad);
87}

◆ AnomalousDimension() [2/2]

gslpp::matrix< double > EvolDF1_diujlknu::AnomalousDimension ( orders_qed  order_qed,
unsigned int  nf 
) const

QED ADM in the JMS basis, in the order CnueduVLLkkij, CnueduVLRkkij, CnueduSRRkkij, CnueduSRLkkij, CnueduTRRkkij, from 1706.00410.

Parameters
order
nfnumber of active flavours
Returns
QED Anomalous dimension for \( \bar{d}_i u_j \bar{\nu} \ell_k \) operators in the JMS basis ordered as CnueduVLLkkij, CnueduVLRkkij, CnueduSRRkkij, CnueduSRLkkij, CnueduTRRkkij

Definition at line 89 of file EvolDF1_diujlknu.cpp.

90{
91 gslpp::matrix<double> ad(dim, dim, 0.);
92 switch (order_qed) {
93 case LO_QED:
94 ad(0, 0) = -2.;
95 ad(1, 1) = -1.;
96 ad(2, 2) = 2./3.;
97 ad(3, 3) = 2./3.;
98 ad(3, 4) = 1./12.;
99 ad(4, 3) = 4.;
100 ad(4, 4) = -20./9.;
101 break;
102 default:
103 throw std::runtime_error("EvolDF1_diujlknu::AnomalousDimension(): order_qed not implemented");
104 }
105 return (ad);
106}
@ LO_QED
Definition: OrderScheme.h:58

◆ Df1diujlknuEvol() [1/2]

void EvolDF1_diujlknu::Df1diujlknuEvol ( double  mu,
double  M,
double  nf,
schemes  scheme 
)
private

Definition at line 157 of file EvolDF1_diujlknu.cpp.

158{
159
160 gslpp::matrix<double> resLO(dim, 0.), resNLO(dim, 0.), resNNLO(dim, 0.);
161
162 int l = 5 - (int) nf;
163 double alsM = model.Als(M, FULLNLO) / 4. / M_PI;
164 double alsmu = model.Als(mu, FULLNLO) / 4. / M_PI;
165
166 double eta = alsM / alsmu;
167
168 for (unsigned int k = 0; k < dim; k++) {
169 double etap = pow(eta, a[k] / 2. / model.Beta0(nf));
170 for (unsigned int i = 0; i < dim; i++)
171 for (unsigned int j = 0; j < dim; j++) {
172 resNNLO(i, j) += 0.;
173 resNLO(i, j) += c[l][i][j][k] * etap * alsmu;
174 resNLO(i, j) += d[l][i][j][k] * etap * alsM;
175 resLO(i, j) += b[i][j][k] * etap;
176 }
177 }
178 switch (order) {
179 case NNLO:
180 *elem[NNLO] = 0.; // Marco can implement it if he wishes to!
181 case NLO:
182 *elem[NLO] = (*elem[LO]) * resNLO + (*elem[NLO]) * resLO;
183 case LO:
184 *elem[LO] = (*elem[LO]) * resLO;
185 break;
186 case FULLNNLO:
187 case FULLNLO:
188 default:
189 throw std::runtime_error("Error in EvolDF1_diujlknu::Df1diujlknuEvol()");
190 }
191}
@ NNLO
Definition: OrderScheme.h:36
@ FULLNNLO
Definition: OrderScheme.h:39
@ FULLNLO
Definition: OrderScheme.h:38
double M
Definition: RGEvolutor.h:142
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.
gslpp::matrix< double > * elem[MAXORDER_QED+1]

◆ Df1diujlknuEvol() [2/2]

gslpp::matrix< double > & EvolDF1_diujlknu::Df1diujlknuEvol ( double  mu,
double  M,
orders  order,
schemes  scheme = NDR 
)
Parameters
mulow energy scale
Mmatching scale
order
scheme
Returns
the Wilson coefficients evolved from the scale M to the scale mu

Definition at line 108 of file EvolDF1_diujlknu.cpp.

109{
110 switch (scheme) {
111 case NDR:
112 break;
113 case LRI:
114 case HV:
115 default:
116 std::stringstream out;
117 out << scheme;
118 throw std::runtime_error("EvolDF1_diujlknu::Df1diujlknuEvol(): scheme " + out.str() + " not implemented ");
119 }
120
121 double alsMZ = model.getAlsMz();
122 double Mz = model.getMz();
123 if(alsMZ == alsMZ_cache && Mz == Mz_cache) {
124 if (mu == this->mu && M == this->M && scheme == this->scheme)
125 return (*Evol(order));
126 }
127 alsMZ_cache = alsMZ;
128 Mz_cache = Mz;
129
130 if (M < mu) {
131 std::stringstream out;
132 out << "M = " << M << " < mu = " << mu;
133 throw out.str();
134 }
135
136 setScales(mu, M); // also assign evol to identity
137 if (M != mu) {
138 double m_down = mu;
139 double m_up = model.AboveTh(m_down);
140 double nf = model.Nf(m_down);
141
142 while (m_up < M) {
143 Df1diujlknuEvol(m_down, m_up, nf, scheme);
144 m_down = m_up;
145 m_up = model.AboveTh(m_down);
146 nf += 1.;
147 }
148 Df1diujlknuEvol(m_down, M, nf, scheme);
149 }
150
151 //add the leading QED log without resumming it for the moment, to be improved later
152 *elem[LO] = (*elem[LO]) + AnomalousDimension(LO_QED,3).transpose()*model.getAle()/2./M_PI*log(mu/M);
153
154 return (*Evol(order));
155}
@ HV
Definition: OrderScheme.h:22
@ LRI
Definition: OrderScheme.h:23
@ NDR
Definition: OrderScheme.h:21
gslpp::matrix< double > & Df1diujlknuEvol(double mu, double M, orders order, schemes scheme=NDR)
const double AboveTh(const double mu) const
The active flavour threshold above the scale as defined in QCD::Thresholds().
Definition: QCD.cpp:547
const double Nf(const double mu) const
The number of active flavour at scale .
Definition: QCD.cpp:571
void setScales(double mu, double M)
Sets the upper and lower scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:85
gslpp::matrix< double > * Evol(orders order)
Evolution matrix set at a fixed order of QCD coupling.
Definition: RGEvolutor.cpp:103
const double getMz() const
A get method to access the mass of the boson .
const double getAlsMz() const
A get method to access the value of .
const double getAle() const
A get method to retrieve the fine-structure constant .

Member Data Documentation

◆ a

double EvolDF1_diujlknu::a[5]
private

Definition at line 61 of file EvolDF1_diujlknu.h.

◆ alsMZ_cache

double EvolDF1_diujlknu::alsMZ_cache
private

Definition at line 67 of file EvolDF1_diujlknu.h.

◆ b

double EvolDF1_diujlknu::b[5][5][5]
private

Definition at line 62 of file EvolDF1_diujlknu.h.

◆ c

double EvolDF1_diujlknu::c[3][5][5][5]
private

Definition at line 63 of file EvolDF1_diujlknu.h.

◆ d

double EvolDF1_diujlknu::d[3][5][5][5]
private

Definition at line 64 of file EvolDF1_diujlknu.h.

◆ dim

unsigned int EvolDF1_diujlknu::dim
private

Definition at line 66 of file EvolDF1_diujlknu.h.

◆ model

const StandardModel& EvolDF1_diujlknu::model
private

Definition at line 65 of file EvolDF1_diujlknu.h.

◆ Mz_cache

double EvolDF1_diujlknu::Mz_cache
private

Definition at line 68 of file EvolDF1_diujlknu.h.


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