matrix<double>& EvolDF1nlep::Df1Evolnlep(double mu, double M, orders order, orders_ew order_ew, schemes scheme) { switch (scheme) { case NDR: break; case LRI: case HV: default: std::stringstream out; out << scheme; throw std::runtime_error("EvolDF1nlep::Df1Evolnlep_EM(): scheme " + out.str() + " not implemented "); } if (mu == this->mu && M == this->M && scheme == this->scheme && order_ew == NULL_ew) return (*Evol(order)); if (mu == this->mu && M == this->M && scheme == this->scheme && order_ew == NLO_ew) return (*Evol(order_ew)); if (M < mu) { std::stringstream out; out << "M = " << M << " < mu = " << mu; throw out.str(); } setScales(mu, M); // also assign evol to identity double m_down = mu; double m_up = model.AboveTh(m_down); double nf = model.Nf(m_down); while (m_up < M) { Df1Evolnlep(m_down, m_up, nf, scheme); Df1threshold_nlep(m_up, nf+1.); m_down = m_up; m_up = model.AboveTh(m_down); nf += 1.; } Df1Evolnlep(m_down, M, nf, scheme); if(order_ew != NULL_ew){ return (*Evol(order_ew)); } else { return (*Evol(order)); } }
gslpp::matrix<double>& EvolDC1Buras::DC1EvolBuras(double mu, double M, orders order, schemes scheme) { switch (scheme) { case NDR: break; case LRI: case HV: default: std::stringstream out; out << scheme; throw std::runtime_error("EvolDC1::Df1EvolDC1(): scheme " + out.str() + " not implemented "); } double alsMZ = model.getAlsMz(); double Mz = model.getMz(); if(alsMZ == alsMZ_cache && Mz == Mz_cache) { if (mu == this-> mu && M == this->M && scheme == this->scheme) return (*Evol(order)); } alsMZ_cache = alsMZ; Mz_cache = Mz; if (M < mu) { std::stringstream out; out << "M = " << M << " < mu = " << mu; throw out.str(); } setScales(mu, M); // also assign evol to identity double m_down = mu; double m_up = model.AboveTh(m_down); double nf = model.Nf(m_down); while (m_up < M) { DC1EvolBuras(m_down, m_up, nf, scheme); DC1PenguinThresholds(m_up, order); m_down = m_up; m_up = model.AboveTh(m_down); nf += 1.; } DC1EvolBuras(m_down, M, nf, scheme); return (*Evol(order)); }