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
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