Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:51:48

0001 /**

0002  * @file RunningAlphaStrongStandard.h

0003  * @author Bryan BERTHOU (SPhN / CEA Saclay)

0004  * @date July 13th, 2011.

0005  * @version 1.0

0006  */
0007 
0008 #ifndef RUNNING_ALPHA_STRONG_STANDARD_H
0009 #define RUNNING_ALPHA_STRONG_STANDARD_H
0010 
0011 #include <string>
0012 #include <vector>
0013 
0014 #include "RunningAlphaStrongModule.h"
0015 
0016 namespace PARTONS {
0017 
0018 /*!

0019  * \class RunningAlphaStrongStandard

0020  * 

0021  * \brief Evaluation of the strong running coupling constant in the \f$\overline{MS}\f$ scheme.

0022  *

0023  * This module evaluates the strong running coupling constant in the \f$\overline{MS}\f$ scheme.

0024  * It takes \f$\alpha(M_Z)\f$ and quark masses (c, b and t) as inputs and computes the evolution downwards to get \f$\Lambda_{QCD}\f$ for different numbers of active flavors. Then \f$\alpha(M_Z)\f$ is computed at the required scale.

0025  *

0026  * For an example of usage of this module see the abstract class documentation.

0027  * 

0028  * Note 1: Quark masses and \f$\alpha(M_Z)\f$ are defined in FundamentalPhysicalConstants.h. These values come from Ref. @cite Nakamura:2010zzi

0029  *

0030  * Note 2: The convention for the QCD beta function is the following: <br>

0031  * \f$\frac{d \alpha_{s}(n_{f})}{d \ln(\mu^2)} = \beta ( \alpha_{s} ) = - \sum_{n=1}^\infty \beta_{n-1} \times ( \alpha_{s} / \pi )^{(n+1)}\f$

0032  */
0033 class RunningAlphaStrongStandard: public RunningAlphaStrongModule {
0034 
0035 public:
0036 
0037     /**

0038      * Unique ID to automatically register the class in the registry.

0039      */
0040     static const unsigned int classId;
0041 
0042     /**

0043      * Constructor.

0044      * @param className Name of class.

0045      */
0046     RunningAlphaStrongStandard(const std::string &className);
0047 
0048     virtual RunningAlphaStrongStandard* clone() const;
0049 
0050     /**

0051      * Destructor.

0052      */
0053     virtual ~RunningAlphaStrongStandard();
0054 
0055     virtual double compute();
0056 
0057     /**

0058      * Get number of colors (SU(\f$n_{c}\f$))

0059      */
0060     unsigned int GetColourNumber() const;
0061 
0062 protected:
0063 
0064     /**

0065      * Copy constructor.

0066      * @param other Object to be copied.

0067      */
0068     RunningAlphaStrongStandard(const RunningAlphaStrongStandard &other);
0069 
0070     virtual void initModule();
0071     virtual void isModuleWellConfigured();
0072 
0073 private:
0074 
0075     /**

0076      * Evaluate beta function coefficients for a fixed number of flavors.

0077      * \f$n_{c}\f$-independent expressions (not used) are given in @cite Chetyrkin:1997un.<br>

0078      * \f$n_{c}\f$-dependent expressions (used) are given in @cite Czakon:2004bu.

0079      * @param NFlavour Number of flavors.

0080      */
0081     void ComputeExpansionCoefficients(unsigned int NFlavour);
0082 
0083     /**

0084      *  Evaluate \f$\Lambda_{QCD}\f$ for different number of flavors.

0085      */
0086     void ComputeLambdaQCD();
0087 
0088     /**

0089      *  Evaluate \f$\alpha_s\f$ at four loops.

0090      */
0091     void Running(double Mu, double Lambda, unsigned int NFlavour);
0092 
0093     /**

0094      *  Returns \f$\Lambda_{QCD}\f$ from \f$\alpha_s\f$ at given scale.

0095      */
0096     double FindLambda(double Lambda, std::vector<double> Parameters);
0097 
0098     /**

0099      * Number of colors (SU(\f$n_{c}\f$)).

0100      */
0101     unsigned int fNc;
0102 
0103     //TODO voir s'il ne serait pas pertinent de faire une classe pour les coeff de renormalisation

0104 
0105     double fBeta0;              ///< 1st coefficient of beta function expansion.

0106     double fBeta1;              ///< 2nd coefficient of beta function expansion.

0107     double fBeta2;              ///< 3rd coefficient of beta function expansion.

0108     double fBeta3;              ///< 4th coefficient of beta function expansion.

0109 
0110     double fB1; ///< Reduced coefficient RunningAlphaStrong::fBeta1 / RunningAlphaStrong::fBeta0.

0111     double fB2; ///< Reduced coefficient RunningAlphaStrong::fBeta2 / RunningAlphaStrong::fBeta0.

0112     double fB3; ///< Reduced coefficient RunningAlphaStrong::fBeta3 / RunningAlphaStrong::fBeta0.

0113     double fLambdaQCD3;                     ///< \f$\Lambda_{QCD}(n_{f} = 3)\f$.

0114     double fLambdaQCD4;                     ///< \f$\Lambda_{QCD}(n_{f} = 4)\f$.

0115     double fLambdaQCD5;                     ///< \f$\Lambda_{QCD}(n_{f} = 5)\f$.

0116     double fLambdaQCD6;                     ///< \f$\Lambda_{QCD}(n_{f} = 6)\f$.

0117     double fAlphaSMZ;                   ///< Reference value of strong coupling.

0118     double fAlphaS;                       ///< Current value of strong coupling.

0119 };
0120 
0121 } /* namespace PARTONS */
0122 
0123 #endif /* RUNNING_ALPHA_STRONG_STANDARD_H */
0124