|
|
|||
File indexing completed on 2026-06-02 08:17:12
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 #include "apfel/matrix.h" 0011 #include "apfel/tools.h" 0012 0013 #include <functional> 0014 0015 namespace apfel 0016 { 0017 /** 0018 * @brief The AlphaQCDQED is a specialization class of the 0019 * MatchedEvolution class for the computation of the mixed evolution 0020 * of QCD and QED. 0021 */ 0022 class AlphaQCDQED: public MatchedEvolution<matrix<double>> 0023 { 0024 public: 0025 /** 0026 * @name Constructors 0027 * List of constructors. 0028 */ 0029 ///@{ 0030 AlphaQCDQED() = delete; 0031 0032 /** 0033 * @brief AlphaQCDQED constructor. 0034 * @param AlphaQCDRef: the reference value of the QCD coupling 0035 * @param AlphaQEDRef: the reference value of the QED coupling 0036 * @param MuRef: the reference value of the scale 0037 * @param QuarkThresholds: vector of quark thresholds 0038 * @param LeptThresholds: vector of lepton thresholds 0039 * @param pt: perturbative order 0040 * @param nsteps: number of steps of the ODE solver 0041 * @note No displaced thresholds allowed. 0042 */ 0043 AlphaQCDQED(double const& AlphaQCDRef, 0044 double const& AlphaQEDRef, 0045 double const& MuRef, 0046 std::vector<double> const& QuarkThresholds, 0047 std::vector<double> const& LeptThresholds, 0048 int const& pt, 0049 int const& nsteps = 10); 0050 ///@} 0051 0052 /** 0053 * @brief Function for the computation of the matching. 0054 * @param Up: tells whether the matching is upward or not (downward) 0055 * @param nfl: total number of active flavours including both quarks and leptons 0056 * @param Coup: value of the coupling to be matched 0057 * @return The matched value of the strong coupling \f$\alpha_s\f$ at the threshold 0058 * @note This is a dummy function required only to instantiate the 0059 * pure-virtual 'MatchObject' of the mother class 0060 * 'MatchedEvolution': it always returns the input coupling. This 0061 * means that the evolution is assumed to be continuos at the 0062 * thresholds. 0063 */ 0064 matrix<double> MatchObject(bool const& Up, int const& nfl, matrix<double> const& Coup) const; 0065 0066 /** 0067 * @brief Function that returns QCDxQED \f$\beta\f$ function matrix. 0068 * @param nfl: total number of active flavours including both quarks and leptons 0069 * @param as: value of the couplings 0070 * @return The the value of the QCDxQED \f$\beta\f$ function matrix 0071 */ 0072 matrix<double> Derivative(int const& nfl, double const&, matrix<double> const& as) const; 0073 0074 /** 0075 * @brief Function for the computation of the single coefficients 0076 * of the expansion of the QCDxQED \f$\beta\f$ function. 0077 * @param pt: perturbative order 0078 * @param nf: number of active quark flavours 0079 * @param nl: number of active lepton flavours 0080 * @return The pt-th coefficient of the QCDxQED \f$\beta\f$ function. 0081 */ 0082 matrix<double> betaQCDQED(int const& pt, int const& nf, int const& nl) const; 0083 0084 /** 0085 * @brief Function that returns the number of active quarks and 0086 * leptons separately given the total number of active partons. 0087 * @param nfl: total number of active partons 0088 * @return The number of active quarks and leptons. 0089 */ 0090 std::pair<int, int> NFL(int const& nfl) const; 0091 0092 private: 0093 std::vector<double> const _QuarkThresholds; //!< Quark thresholds 0094 std::vector<double> const _LeptThresholds; //!< Lepton thresholds 0095 int const _pt; //!< Perturbative order 0096 std::function<matrix<double>(int const&, matrix<double> const&)> _BetaFunction; //!< Beta function 0097 std::function<double(bool const&, int const&, double const&)> _MatchingConditions; //!< Matching condition functions 0098 }; 0099 }
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|