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
10RGEvolutor::RGEvolutor(unsigned int dim, schemes scheme, orders order)
11: WilsonTemplate<gslpp::matrix<double> >(dim, scheme, order)
12{}
13
14RGEvolutor::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
21void 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
36void 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
65void RGEvolutor::setEvol(const gslpp::matrix<double>& m, orders order_i)
66{
67 setElem(m, order_i);
68}
69
70void RGEvolutor::setEvol(const gslpp::matrix<double>& m, orders_qed order_qed_i)
71{
72 setElem(m, order_qed_i);
73}
74
75gslpp::matrix<double>** RGEvolutor::getEvol() const
76{
77 return (gslpp::matrix<double>**) elem;
78}
79
80double RGEvolutor::getM() const
81{
82 return M;
83}
84
85void RGEvolutor::setScales(double mu, double M)
86{
87 this->M = M;
88 this->mu = mu;
90 *(elem[LO]) = gslpp::matrix<double>::Id(size);
91}
92
93void RGEvolutor::setM(double M)
94{
95 setScales(mu, M);
96}
97
98void RGEvolutor::setMu(double mu)
99{
100 setScales(mu, M);
101}
102
103gslpp::matrix<double>* RGEvolutor::Evol(orders order)
104{
105 return Elem(order);
106}
107
108gslpp::matrix<double>* RGEvolutor::Evol(orders_qed order_qed)
109{
110 return Elem(order_qed);
111}
@ LO
Definition: OrderScheme.h:34
@ NO_QED
Definition: OrderScheme.h:57
void setMu(double mu)
Sets the lower scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:98
void setEvol(unsigned int i, unsigned int j, double x, orders order_i)
Definition: RGEvolutor.cpp:21
RGEvolutor(unsigned int dim, schemes scheme, orders order)
constructor
Definition: RGEvolutor.cpp:10
double M
Definition: RGEvolutor.h:142
virtual ~RGEvolutor()
destructor
Definition: RGEvolutor.cpp:18
gslpp::matrix< double > ** getEvol() const
Definition: RGEvolutor.cpp:75
void setScales(double mu, double M)
Sets the upper and lower scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:85
void setM(double M)
Sets the upper scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:93
gslpp::matrix< double > * Evol(orders order)
Evolution matrix set at a fixed order of QCD coupling.
Definition: RGEvolutor.cpp:103
double getM() const
Retrieve the upper scale of the Wilson Coefficients.
Definition: RGEvolutor.cpp:80
A template class for the Wilson coefficients.
gslpp::matrix< double > * elem[MAXORDER_QED+1]
gslpp::matrix< double > * Elem(orders order) const
void setElem(const gslpp::matrix< double > &v, orders order_i)
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:33
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:20
orders_qed
An enum type for orders in electroweak.
Definition: OrderScheme.h:56