Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:07

0001 #ifndef MODEL_Main_Strong_Coupling_H
0002 #define MODEL_Main_Strong_Coupling_H
0003 
0004 #include "MODEL/Main/Running_AlphaS.H"
0005 #include "ATOOLS/Math/Function_Base.H"
0006 #include "ATOOLS/Org/Return_Value.H"
0007 
0008 namespace MODEL {
0009 
0010   struct asform {
0011     enum code {
0012       constant     = 0,
0013       frozen       = 1,
0014       smooth       = 2,
0015       IR0          = 3,
0016       GDH_inspired = 10
0017     };
0018   };
0019 
0020   class Strong_Coupling : public ATOOLS::Function_Base {
0021   private:
0022     Running_AlphaS * p_as; 
0023     asform::code     m_form;
0024     double           m_pt02;
0025     double           m_beta0, m_Lambda, m_Lambda2, m_kappa2, m_pt2max;
0026     //m_Qas2,m_maxalphaS
0027     double       m_lastpt2, m_asmax, m_eta;
0028     double       m_gamma, m_a, m_b, m_c, m_d, m_m2;
0029     double mg2(const double) const;
0030     double n(const double)   const;
0031   public:
0032     Strong_Coupling(Running_AlphaS * as,const asform::code & asf,
0033             const double & pt02);
0034     double operator()(double q2,bool reweight=false) const;     
0035     double Weight(const double & pt2,const bool & noless=false) const { 
0036       return (*this)(noless?ATOOLS::Max(m_pt02,pt2):pt2)/m_asmax; 
0037     }
0038     double MaxValue() const { return m_asmax; }
0039     double PT02()     const { return m_pt02; }
0040     asform::code Form() const { return m_form; }
0041   };
0042 }
0043 
0044 #endif