#include "ATOOLS/Math/Random.H" #include "ATOOLS/Org/Run_Parameter.H" #include "PHASIC++/Process/External_ME_Args.H" #include "MODEL/Main/Running_AlphaS.H" #include "MODEL/Main/Running_AlphaQED.H" #include "ATOOLS/Phys/Flow.H" #include "MODEL/Main/Model_Base.H" #include "MODEL/UFO/UFO_Model.H" #include "EXTRA_XS/Main/ME2_Base.H" #define PropID(i,j) ((1<ScalarConstant("alpha_QED")) *sqr(sqr(m_flavs[2].Charge())) *(m_flavs[2].Strong()?3.0:1.0); m_m2=sqr(m_flavs[2].Mass()); for (short int i=0;i<4;i++) m_colours[i][0] = m_colours[i][1] = 0; m_oew=2; m_oqcd=0; m_cfls[PropID(0,2)].push_back(m_flavs[2]); m_cfls[PropID(1,2)].push_back(m_flavs[2]); m_cfls[PropID(0,3)].push_back(m_flavs[3]); m_cfls[PropID(1,3)].push_back(m_flavs[3]); } double XS_PP_ffbar::operator()(const Vec4D_Vector& mom) { double s=(mom[0]+mom[1]).Abs2(); double t=(mom[0]-mom[2+m_r]).Abs2(); double u=(mom[0]-mom[3-m_r]).Abs2(); //if (s:: operator()(const External_ME_Args &args) const { if (dynamic_cast(MODEL::s_model)) return NULL; const Flavour_Vector fl=args.Flavours(); if (fl.size()!=4) return NULL; if (fl[0].IsPhoton() && fl[1].IsPhoton() && fl[2].IsFermion() && fl[2].Charge() && fl[3]==fl[2].Bar()) { if (args.m_orders[0]==0 && args.m_orders[1]==2) return new XS_PP_ffbar(args); } return NULL; }