a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
RGEvolutor.cpp
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 #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_qed order_qed)
15 : WilsonTemplate<gslpp::matrix<double> >(dim, scheme, order, order_qed)
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_qed order_qed_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_qed != NO_QED){
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_qed_i > order_qed) {
57  std::stringstream out;
58  out << order_i;
59  throw std::runtime_error("RGEvolutor::setEvol(): order " + out.str() +" not implemented ");
60  }
61  (*elem[order_qed_i])(i,j) = x;
62  }
63 }
64 
66 {
67  setElem(m, order_i);
68 }
69 
71 {
72  setElem(m, order_qed_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;
91 }
92 
93 void RGEvolutor::setM(double M)
94 {
95  setScales(mu, M);
96 }
97 
98 void RGEvolutor::setMu(double mu)
99 {
100  setScales(mu, M);
101 }
102 
104 {
105  return Elem(order);
106 }
107 
109 {
110  return Elem(order_qed);
111 }
WilsonTemplate< gslpp::matrix< double > >::Elem
gslpp::matrix< double > * Elem(orders order) const
Definition: WilsonTemplate.h:121
RGEvolutor::getEvol
gslpp::matrix< double > ** getEvol() const
Definition: RGEvolutor.cpp:75
WilsonTemplate< gslpp::matrix< double > >::order_qed
orders_qed order_qed
Definition: WilsonTemplate.h:119
NO_QED
Definition: OrderScheme.h:49
RGEvolutor::setM
void setM(double M)
Sets the upper scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:93
gslpp::matrix< double >
A class for constructing and defining operations on real matrices.
Definition: gslpp_matrix_double.h:48
WilsonTemplate< gslpp::matrix< double > >::mu
double mu
Definition: WilsonTemplate.h:116
RGEvolutor::M
double M
Definition: RGEvolutor.h:142
WilsonTemplate< gslpp::matrix< double > >::size
unsigned int size
Definition: WilsonTemplate.h:115
WilsonTemplate< gslpp::matrix< double > >::order
orders order
Definition: WilsonTemplate.h:118
LO
Definition: OrderScheme.h:33
gslpp::matrix
A base class for defining operations on matrices, both real and complex.
Definition: gslpp_matrix_base.h:21
schemes
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:19
WilsonTemplate
A template class for the Wilson coefficients.
Definition: WilsonTemplate.h:23
RGEvolutor::getM
double getM() const
Retrieve the upper scale of the Wilson Coefficients.
Definition: RGEvolutor.cpp:80
orders_qed
orders_qed
An enum type for orders in electroweak.
Definition: OrderScheme.h:47
WilsonTemplate< gslpp::matrix< double > >::resetCoefficient
virtual void resetCoefficient()
Definition: WilsonTemplate.h:80
RGEvolutor::~RGEvolutor
virtual ~RGEvolutor()
destructor
Definition: RGEvolutor.cpp:18
WilsonTemplate< gslpp::matrix< double > >::setElem
void setElem(const gslpp::matrix< double > &v, orders order_i)
Definition: WilsonTemplate.h:143
orders
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
RGEvolutor::Evol
gslpp::matrix< double > * Evol(orders order)
Evolution matrix set at a fixed order of QCD coupling.
Definition: RGEvolutor.cpp:103
RGEvolutor::setEvol
void setEvol(unsigned int i, unsigned int j, double x, orders order_i)
Definition: RGEvolutor.cpp:21
RGEvolutor::setScales
void setScales(double mu, double M)
Sets the upper and lower scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:85
RGEvolutor::RGEvolutor
RGEvolutor(unsigned int dim, schemes scheme, orders order)
constructor
Definition: RGEvolutor.cpp:10
RGEvolutor.h
gslpp
Complex number, vector and matrix manipulation using GSL.
Definition: gslpp_complex.cpp:16
RGEvolutor::setMu
void setMu(double mu)
Sets the lower scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:98
WilsonTemplate< gslpp::matrix< double > >::elem
gslpp::matrix< double > * elem[MAXORDER_QED+1]
Definition: WilsonTemplate.h:114