Pol_Info::Pol_Info(const ATOOLS::Flavour& fl) { int dof = 1; pol_type='s'; if(fl.IsFermion()) { dof = 2;pol_type='h';}; if(fl.IsVector() && ATOOLS::IsZero(fl.Mass())) { dof = 2;pol_type='c';} if(fl.IsVector() && !ATOOLS::IsZero(fl.Mass())) { #ifdef Explicit_Pols dof=3; #else dof=1; #endif pol_type='c'; } if(fl.IsTensor()) dof=5; Init(dof); if(!fl.IsTensor()) { int tf[3] = {mt::p_m, mt::p_p, mt::p_l }; for(int j=0;j<dof;j++){ type[j] = tf[j]; factor[j] = 1.; } } else { type[0]=mt::p_t1;factor[0]=1.; type[1]=mt::p_t2;factor[1]=1.; type[2]=mt::p_t3;factor[2]=1.; type[3]=mt::p_t4;factor[3]=1.; type[4]=mt::p_t5;factor[4]=1.; } }
double Kinematics_FF::GetKT2(const double &Q2,const double &y,const double &z, const double &mi2,const double &mj2,const double &mk2, const ATOOLS::Flavour &fla,const ATOOLS::Flavour &flc) const { double pipj=(Q2-mi2-mj2-mk2)*y; if (m_evolscheme==0) { return pipj*z*(1.0-z)-sqr(1.0-z)*mi2-sqr(z)*mj2; } double kt2=pipj*z*(1.0-z); if (fla.IsFermion()) kt2=pipj*(flc.IsVector()?(1.0-z):z); else if (flc.IsFermion()) kt2=pipj; return kt2; }