QCD Library
QCD Library Documentation

Introduction

The QCD library is an implementation of fundamental QCD parameters and the evolution of the strong coupling and the $\overline{\rm MS}$ quark masses in C++. Functionally the QCD library is very similar to the Mathematica package RunDec [1] and its C++ counterpart CRunDec [2], but offers a quite different interface.

Installation

The QCD library can be installed together with qqbar_threshold with the help of a script. After downloading the script unpack and run it, e.g. by using the commands

tar xzf install.tar.gz
cd qqbar_threshold
./install.sh

in a terminal.

For manual installation you can download the sources from github and run the shell commands

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=<your install path>
make && make test && make install

in the directory that contains the file CMakeLists.txt. You may also have to adjust environment variables such as LIBRARY_PATH, LD_LIBRARY_PATH, and CPLUS_INCLUDE_PATH.

Installation requires the following programs and libraries:

To test your installation you can compile one of the below programs. For example you could save the program code in some file tst.cpp and compile it with a recent version of the g++ compiler with the command

g++ -o tst -std=c++11 -Wall -Wextra tst.cpp -lQCD

Quick start

The main classes are strong_coupling for the evolution of the coupling constant and MSbar_mass for the evolution of quark masses. These classes and all other public parts of this library are in the QCD namespace.

Strong coupling evolution

The easiest way to obtain the strong coupling at a given scale is to use the predefined constant alpha_s:

#include <iostream>
#include "QCD/alpha_s.hpp"
int main(){
/* alpha_s at 10 GeV */
std::cout << QCD::alpha_s(10) << '\n';
/* alpha_s at 500 GeV - the top quark is decoupled automatically */
std::cout << QCD::alpha_s(500) << '\n';
}

You can easily change the standard settings:

#include <iostream>
#include "QCD/alpha_s.hpp"
int main(){
auto alpha_s = QCD::alpha_s;
/* change the value of alpha_s(MZ) */
alpha_s.ref_coupling(0.1180);
/* use five massless quark flavours, so no decoupling takes place */
alpha_s.thresholds(
QCD::threshold_set{
{}, {}, {}, {}, {}
}
);
/* alpha_s at 500 GeV in the five-flavour theory */
std::cout << alpha_s(500) << '\n';
}

Evolution of quark masses

Similar to the evolution of the strong coupling also the $\overline{\rm MS}$ can be evolved from one scale to another. The following example computes the mass of the bottom quark at the scale of the Z boson mass using the default strong coupling for the running.

#include <iostream>
int main(){
/* bottom mass at a scale of 10 GeV */
QCD::MSbar_mass mb = {3.613, 10};
std::cout << mb(QCD::mz) << '\n';
}

By default, the quark masses will use the same decoupling thresholds as the strong coupling. In some cases, it can be useful to use a different set of thresholds. Here is a more complicated example, where the bottom quark mass was determined with a four-flavour strong coupling, but is still defined in the theory with five active flavours. This means that during the evolution to the Z scale it is necessary to perform decoupling for the coupling constant, but not for the bottom mass itself:

#include <iostream>
int main(){
/* scale-invariant bottom mass mb(mb) */
4.193, 4.193,
/* default strong coupling */
QCD::alpha_s,
/* five flavours, no decoupling of the quark mass */
QCD::threshold_set{
{}, {}, {}, {}, {}
}
};
std::cout << mb(QCD::mz) << '\n';
}