RGEvolutor.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "RGEvolutor.h"
9 
10 RGEvolutor::RGEvolutor(unsigned int dim, schemes scheme, orders order)
11 : WilsonTemplate<gslpp::matrix<double> >(dim, scheme, order)
12 {}
13 
14 RGEvolutor::RGEvolutor(unsigned int dim, schemes scheme, orders order, orders_ew order_ew)
15 : WilsonTemplate<gslpp::matrix<double> >(dim, scheme, order, order_ew)
16 {}
17 
19 {}
20 
21 void RGEvolutor::setEvol(unsigned int i, unsigned int j, double x, orders order_i)
22 {
23  if (i > size || j > size) {
24  std::stringstream out;
25  out << i << " " << j;
26  throw std::runtime_error("RGEvolutor::setEvol(): matrix indices " + out.str() + " out of range");
27  }
28  if (order_i > order) {
29  std::stringstream out;
30  out << order_i;
31  throw std::runtime_error("RGEvolutor::setEvol(): order " + out.str() +" not implemented ");
32  }
33  (*elem[order_i])(i,j) = x;
34 }
35 
36 void RGEvolutor::setEvol(unsigned int i, unsigned int j, double x, orders order_i, orders_ew order_ew_i)
37 {
38  if (i > size || j > size) {
39  std::stringstream out;
40  out << i << " " << j;
41  throw std::runtime_error("RGEvolutor::setEvol(): matrix indices " + out.str() + " out of range");
42  }
43  if (order_i > order) {
44  std::stringstream out;
45  out << order_i;
46  throw std::runtime_error("RGEvolutor::setEvol(): order " + out.str() +" not implemented ");
47  }
48  (*elem[order_i])(i,j) = x;
49 
50  if (order_ew != NULL_ew){
51  if (i > size || j > size) {
52  std::stringstream out;
53  out << i << " " << j;
54  throw std::runtime_error("RGEvolutor::setEvol(): matrix indices " + out.str() + " out of range");
55  }
56  if (order_ew_i > order_ew) {
57  std::stringstream out;
58  out << order_i;
59  throw std::runtime_error("RGEvolutor::setEvol(): order " + out.str() +" not implemented ");
60  }
61  (*elem[order_ew_i])(i,j) = x;
62  }
63 }
64 
66 {
67  setElem(m, order_i);
68 }
69 
71 {
72  setElem(m, order_ew_i);
73 }
74 
76 {
77  return (gslpp::matrix<double>**) elem;
78 }
79 
80 double RGEvolutor::getM() const
81 {
82  return M;
83 }
84 
85 void RGEvolutor::setScales(double mu, double M)
86 {
87  this->M = M;
88  this->mu = mu;
90  for(int i = NLO; i <= order; i++)
91  *(elem[i]) = 0.;
92 
93  if (order_ew != NULL_ew){
94  for(int i = NLO_ew; i <= order_ew; i++)
95  *(elem[i]) = 0.;
96  }
97 }
98 
99 void RGEvolutor::setM(double M)
100 {
101  this->M = M;
103  for(int i = NLO; i <= order; i++)
104  *(elem[i]) = 0.;
105 
106  if (order_ew != NULL_ew){
107  for(int i = NLO_ew; i <= order_ew; i++)
108  *(elem[i]) = 0.;
109  }
110 }
111 
112 void RGEvolutor::setMu(double mu)
113 {
114  this->mu = mu;
116  for(int i = NLO; i <= order; i++)
117  *(elem[i]) = 0.;
118 
119  if (order_ew != NULL_ew){
120  for(int i = NLO_ew; i <= order_ew; i++)
121  *(elem[i]) = 0.;
122  }
123 }
124 
126 {
127  return Elem(order);
128 }
129 
131 {
132  return Elem(order_ew);
133 }
gslpp::matrix< double > * Elem(orders order) const
void setEvol(unsigned int i, unsigned int j, double x, orders order_i)
Definition: RGEvolutor.cpp:21
A class for constructing and defining operations on real matrices.
A base class for defining operations on matrices, both real and complex.
void setElem(const gslpp::matrix< double > &v, orders order_i)
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
void setMu(double mu)
Sets the lower scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:112
virtual ~RGEvolutor()
destructor
Definition: RGEvolutor.cpp:18
void setScales(double mu, double M)
Sets the upper and lower scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:85
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:19
void setM(double M)
Sets the upper scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:99
A template class for the Wilson coefficients.
gslpp::matrix< double > ** getEvol() const
Definition: RGEvolutor.cpp:75
orders_ew
An enum type for orders in electroweak.
Definition: OrderScheme.h:45
gslpp::matrix< double > * Evol(orders order)
Evolution matrix set at a fixed order of QCD coupling.
Definition: RGEvolutor.cpp:125
Definition: OrderScheme.h:33
double M
Definition: RGEvolutor.h:142
gslpp::matrix< double > * elem[MAXORDER_EW+1]
double getM() const
Retrieve the upper scale of the Wilson Coefficients.
Definition: RGEvolutor.cpp:80
Complex number, vector and matrix manipulation using GSL.
RGEvolutor(unsigned int dim, schemes scheme, orders order)
constructor
Definition: RGEvolutor.cpp:10