Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:17:14

0001 //
0002 // APFEL++ 2017
0003 //
0004 // Author: Valerio Bertone: valerio.bertone@cern.ch
0005 //
0006 
0007 #pragma once
0008 
0009 #include "apfel/matchedevolution.h"
0010 
0011 #include <functional>
0012 
0013 namespace apfel
0014 {
0015   /**
0016    * @brief The MSbarMass is a specialization class of the
0017    * MatchedEvolution class for the evolution of masses renormalised
0018    * in the MSbar scheme.
0019    */
0020   class MSbarMass: public MatchedEvolution<double>
0021   {
0022   public:
0023     /**
0024      * @name Constructors
0025      * List of constructors.
0026      */
0027     ///@{
0028     MSbarMass() = delete;
0029 
0030     /**
0031      * @brief MSbarMass constructor.
0032      * @param MRef: the reference value of the mass
0033      * @param MuRef: the reference value of the scale
0034      * @param Masses: vector of masses
0035      * @param pt: perturbative order
0036      * @param Alphas: the function returning the strong coupling
0037      * @param nsteps: number of steps of the ODE solver
0038      * @note Matching conditions assume that the matching thresholds
0039      * coincide with the RGI values mh(mh).
0040      */
0041     MSbarMass(double                               const& MRef,
0042               double                               const& MuRef,
0043               std::vector<double>                  const& Masses,
0044               int                                  const& pt,
0045               std::function<double(double const&)> const& Alphas,
0046               int                                  const& nsteps = 10);
0047     ///@}
0048 
0049     /**
0050      * @brief Function for the computation of the matching.
0051      * @param Up: tells whether the matching is upward or not (downward)
0052      * @param nf: number of active flavours
0053      * @param Coup: value of the coupling to be matched
0054      * @return The matched value of the mass at the threshold
0055      */
0056     double MatchObject(bool const& Up, int const& nf, double const& Coup) const;
0057 
0058     /**
0059      * @brief Function that returns QCD \f$\beta\f$ function.
0060      * @param nf: number of active flavours
0061      * @param as: value of the coupling
0062      * @return The the value of the QCD \f$\beta\f$ function
0063      */
0064     double Derivative(int const& nf, double const&, double const& as) const;
0065 
0066     /**
0067      * @brief Function for the computation of the \f$\gamma_m\f$
0068      * anomalous dimension.
0069      * @param pt: perturbative order
0070      * @param nf: number of active flavours
0071      * @return The pt-th coefficient of the QCD \f$\beta\f$ function.
0072      */
0073     double AnomalouDimension(int const& pt, int const& nf) const;
0074 
0075   private:
0076     int                                                           const _pt;                    //!< Perturbative order
0077     std::function<double(double const&)>                          const _Alphas;                //!< Running coupling
0078     std::function<double(bool const&, int const&, double const&)>       _MatchingConditions;    //!< Matching condition functions
0079     std::function<double(int const&, double const&)>                    _AnomalousDimension;    //!< Anomalous dimension
0080   };
0081 }