Back to home page

EIC code displayed by LXR

 
 

    


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   //! Contains data for alpha_S running up to 2nd order
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   //! coefficients of the Beta functions for QCD
0019   // cf. T. van Ritbergen, J. Vermaseren, S. Larin PLB 400 (1997) 379
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     // constructor
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     // destructor
0049     ~Running_Alpha_HV();
0050 
0051     // member functions
0052     double operator()(double q2); 
0053     double Alpha_HV(const double q2);
0054 
0055     // inline functions
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