File indexing completed on 2025-04-19 09:10:07
0001 #ifndef MODEL_Main_Running_Alpha_HV_H
0002 #define MODEL_Main_Running_Alpha_HV_H
0003
0004 #include "ATOOLS/Phys/Flavour.H"
0005 #include "ATOOLS/Math/Function_Base.H"
0006
0007 namespace MODEL {
0008
0009
0010 struct AsDataSet {
0011 double low_scale,high_scale;
0012 double as_low,as_high;
0013 int nf;
0014 double lambda2;
0015 double b[2];
0016 double beta0;
0017 };
0018
0019
0020
0021 class Running_Alpha_HV : public ATOOLS::Function_Base {
0022 protected:
0023
0024 int m_order;
0025 int m_nth,m_mzset;
0026 double m_TR,m_CF,m_CA;
0027 double m_as_MZ,m_m2_MZ;
0028 std::string m_group;
0029 double m_Nc;
0030 double m_cutq2;
0031
0032 AsDataSet * p_thresh;
0033
0034 double Beta0(const int);
0035 double Beta1(const int);
0036 double Lambda2(const int);
0037 double ZetaOS2(const double,const double,const double,const int);
0038 double InvZetaOS2(const double,const double,const double,const int);
0039 double Alpha_HV_Lam(const double,const int);
0040 void ContinueAlpha_HV(int &);
0041
0042 public:
0043
0044
0045 Running_Alpha_HV(const double as_MZ,const double m2_MZ,const int order=0,
0046 const std::string group="SU", const double Nc=3.);
0047
0048
0049 ~Running_Alpha_HV();
0050
0051
0052 double operator()(double q2);
0053 double Alpha_HV(const double q2);
0054
0055
0056
0057 inline int Order() { return m_order; }
0058 inline double Beta0(const double q2) { return Beta0(Nf(q2)); }
0059 inline double Beta1(const double q2) { return Beta1(Nf(q2)); }
0060 inline double AsMZ() { return m_as_MZ; }
0061 inline double AsFixed() { return m_defval; }
0062 int Nf(const double q2);
0063
0064 inline double CutQ2() { return m_cutq2; }
0065 };
0066
0067 extern Running_Alpha_HV * as_HV;
0068 }
0069
0070
0071
0072 #endif