QCD Library
alpha_s.hpp
Go to the documentation of this file.
1 
28 #pragma once
29 
30 #include <cassert>
31 
32 #include "threshold.hpp"
33 
35 namespace QCD{
36 
38  constexpr double alpha_s_mz = 0.1184;
40  constexpr double mz = 91.18;
41 
45  double alpha_s = alpha_s_mz;
47  double mu = mz;
49  int nf = 5;
50 
51  reference_coupling() = default;
52  explicit reference_coupling(double alpha_s_mz): alpha_s(alpha_s_mz) {}
53  reference_coupling(double alpha_s_mu0, double mu0, int nf0):
54  alpha_s(alpha_s_mu0), mu(mu0), nf(nf0) {}
55  };
56 
59  double alpha_s_mu0;
60  double mu0;
61  double abserr_, relerr_;
62  int nf0;
63  int running_order;
64 
65  double evolve(
66  double alpha_s, double mu0, double mu, int nf,
67  double abserr, double relerr
68  ) const;
69  double decouple_up(double alpha_s, threshold thr, int nf) const;
70  double decouple_down(double alpha_s, threshold thr, int nf) const;
71  public:
73  static constexpr int max_running_order = 4;
74 
76  static constexpr double default_error = 1e-6;
77 
85  explicit strong_coupling(
87  int order = max_running_order
88  );
89 
96  double operator()(double mu) const;
97 
103  int order() const;
104 
110  int nf() const;
111 
113 
117  strong_coupling decouple_down(threshold thr) const;
119 
123  strong_coupling remove(threshold thr) const;
124 
126 
130  strong_coupling decouple_up(threshold thr) const;
131 
133 
137  strong_coupling add(threshold thr) const;
138 
140 
143  strong_coupling & error(double err);
144 
146 
149  strong_coupling & abs_error(double abs_err);
150 
152 
155  strong_coupling & rel_error(double rel_err);
156 
157  };
158 
160  static const strong_coupling alpha_s_nf5{};
162 
166  static const strong_coupling alpha_s_nf4 =
167  alpha_s_nf5.decouple_down(bottom_threshold);
169 
173  static const strong_coupling alpha_s_nf6 =
174  alpha_s_nf5.decouple_up(top_threshold);
175 
176 }
constexpr double alpha_s_mz
Default value for the strong coupling at the Z scale.
Definition: alpha_s.hpp:38
Definition: alpha_s.hpp:35
double mu
Reference scale.
Definition: alpha_s.hpp:47
double alpha_s
Value of alpha_s at the reference scale mu.
Definition: alpha_s.hpp:45
Decoupling thresholds.
Implements the running and decoupling of the strong coupling constant.
Definition: alpha_s.hpp:58
constexpr double mz
Default value for the Z boson mass.
Definition: alpha_s.hpp:40
int nf
Number of active flavours.
Definition: alpha_s.hpp:49
Threshold for the decoupling of a quark flavour.
Definition: threshold.hpp:42
Value for strong coupling constant at a reference scale.
Definition: alpha_s.hpp:43