Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef EXTAMP_BVI_Process_H
0002 #define EXTAMP_BVI_Process_H
0003 
0004 #include "EXTAMP/Process.H"
0005 
0006 namespace PHASIC {
0007   class Virtual_ME2_Base;
0008   class Color_Correlated_ME2;
0009   class Process_Info;
0010   class KP_Terms;
0011 }
0012 
0013 namespace EXTAMP {
0014 
0015   class BVI_Process : public Process {
0016 
0017   public :
0018 
0019     BVI_Process(const PHASIC::Process_Info& pi,
0020         const double& vfrac,
0021     const ATOOLS::subscheme::code& subtraction_type);
0022     
0023     ~BVI_Process();
0024 
0025     double Partonic(const ATOOLS::Vec4D_Vector&,
0026                     ATOOLS::Variations_Mode varmode,
0027                     int mode);
0028 
0029     void SetNLOMC(PDF::NLOMC_Base *const mc);
0030 
0031   private :
0032 
0033     /* Subtraction scheme: plain CS, Dire, or CSS (modfied CS, as used in CSS) */
0034     ATOOLS::subscheme::code m_subtype;
0035 
0036     /* Evaluate virtuals only for a fraction m_vfrac of PS points */
0037     double m_vfrac;
0038 
0039     PHASIC::Virtual_ME2_Base*     p_loop_me;
0040     PHASIC::Color_Correlated_ME2* p_corr_me;
0041     PHASIC::KP_Terms*             p_kpterms;
0042 
0043     double Calc_V(const ATOOLS::Vec4D_Vector& p,
0044           const double& born,
0045           const double& mur) const;
0046 
0047     double Calc_I(const ATOOLS::Vec4D_Vector& p,
0048           const double& mur) const;
0049 
0050     /* Can't be const because we need to store momentum fractions
0051        m_x0,m_x1,m_eta0,m_eta1 of KP_Terms for reweighting */
0052     double Calc_KP(const ATOOLS::Vec4D_Vector& p);
0053     double m_x0, m_x1, m_eta0, m_eta1;
0054 
0055     /* Used by PHASIC::Single_Process for reweighting op KP terms */
0056     double KPTerms(int mode, double scalefac2=1.0);
0057 
0058 
0059     /* Calc all terms explicitly dependent on renormalization scale
0060        for on-the-fly reweighting. First item: first derivative of all
0061        terms with respect to scale log, second item: second derivative
0062        of all terms with respect to scale log. */
0063     std::pair<double,double>
0064     Calc_ScaleDependenceTerms_I(const ATOOLS::Vec4D_Vector& p,
0065                 const double& mur) const;
0066     std::pair<double,double>
0067     Calc_ScaleDependenceTerms_V(const ATOOLS::Vec4D_Vector& p,
0068                 const double& B,
0069                 const double& mur) const;
0070 
0071     /* epsilon^0, epsilon^{-1}, epsilon^{-2} coefficients of eq.
0072        (5.32) through (5.34) of arXiv:hep-ph/9605323, linearly
0073        combined according to (8.13) and (8.14) */
0074     static double Vi_eps0(const ATOOLS::Flavour& fl,
0075                           ATOOLS::subscheme::code subtype);
0076     static double Vi_eps1(const ATOOLS::Flavour& fl);
0077     static double Vi_eps2(const ATOOLS::Flavour& fl);
0078 
0079     constexpr static double m_CF = 4./3.;
0080     constexpr static double m_CA = 3.0;
0081     constexpr static double m_TR = 1./2.;
0082     static double m_NF;
0083 
0084     /* beta0 = 11/3 CA - 4/3 TR nf*/
0085     double m_beta0;
0086     
0087     static double Ti2(const ATOOLS::Flavour& fl);
0088 
0089   };
0090 
0091 }
0092 
0093 #endif