Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef YFS_Main_FORM_H
0002 #define YFS_Main_FORM_H
0003 #include "ATOOLS/Math/Vector.H"
0004 #include "YFS/Main/YFS_Base.H"
0005 #include "METOOLS/Loops/Divergence_Array.H"
0006 
0007 using namespace METOOLS;
0008 
0009 namespace YFS {
0010 class YFS_Form_Factor : public YFS_Base
0011 {
0012 public:
0013     YFS_Form_Factor();
0014     ~YFS_Form_Factor();
0015     double BVR_full(double p1p2, double E1, double E2,
0016                     double Mas1, double Mas2, double Kmax, double MasPhot, int mode);
0017     double BVR_full(ATOOLS::Vec4D p1, ATOOLS::Vec4D p2,  double Kmax, double MasPhot, int mode);
0018     double BVR_full(ATOOLS::Vec4D p1, ATOOLS::Vec4D p2, double omega);
0019     double BR_full(ATOOLS::Vec4D p1, ATOOLS::Vec4D p2, double omega);
0020     double BVR_cru(double p1p2, double E1, double E2,
0021                    double Mas1, double Mas2, double Kmax);
0022     double BVR_cru(ATOOLS::Vec4D p1, ATOOLS::Vec4D p2, double E2);
0023     double A(double p1p2, double mass1, double mass2);
0024     double A(ATOOLS::Vec4D p1, ATOOLS::Vec4D p2);
0025     double A4(double p1p2, double En1, double En2,
0026               double mass1, double mass2);
0027     double A4light(double p1p2, double En1, double En2,
0028                    double mass1, double mass2);
0029     double A4_eq(double E, double mass);
0030     double YijEta(double eta, double y1, double y2, double y3, double y4);
0031     double Zij(double eta, double yi, double yj);
0032     double Chi(double eta, double yi, double yj, double yk, double yl);
0033     double BVV_full(const ATOOLS::Vec4D p1, const ATOOLS::Vec4D p2, double MasPhot, double Kmax, int mode);
0034     double Full(const ATOOLS::Vec4D p1, const ATOOLS::Vec4D p2, double MasPhot, double Kmax, int mode);
0035     DivArrC BVV_full_eps(const ATOOLS::Vec4D p1, const ATOOLS::Vec4D p2, double MasPhot, double Kmax, int mode);
0036     double BVV_WW(const ATOOLS::Vec4D_Vector born, const ATOOLS::Vec4D_Vector k, const ATOOLS::Vec4D p1, const ATOOLS::Vec4D p2, double MasPhot, double Kmax);
0037     double WW_t(double t, double m, double M, double k);
0038     double WW_s(ATOOLS::Vec4D p1, ATOOLS::Vec4D p2);
0039     double BVirtT(const Vec4D &p1, const Vec4D &p2, double kmax=0);
0040     double R1(const Vec4D &p1, const Vec4D &p2);
0041     double R2(const Vec4D &p1, const Vec4D &p2);
0042     // double C0(double p1, double p2, double p3);
0043     double C0(double p1, double p2, double p3,double m1, double m2, double m3);
0044     double B0(double s, double m1, double m2);
0045     Complex tsub(const Vec4D &p1, const Vec4D &p2, int mode, double QiQj, double theta1, double theta2);
0046     void WW_u();
0047     double  m_ww_s, m_ww_u, m_ww_t;
0048     double m_kmax, m_t1, m_t2, m_u1, m_u2;
0049     int m_useCoulomb;
0050     ATOOLS::Vec4D m_wp, m_wm, m_p1, m_p2;
0051     double m_xx1, m_xx2, m_m1, m_m2;
0052     bool m_use_model_alpha;
0053     inline void SetCharge(double ch) {
0054         m_alpha = m_alpha * ch;
0055         m_alpi = m_alpi * ch;
0056     }
0057     inline void SetCoulomb(int c) {m_useCoulomb = c;}
0058 };
0059 
0060 }
0061 
0062 
0063 #endif