void EvolDF1nlep::Df1Evolnlep(double mu, double M, double nf, schemes scheme) { matrix<double> resLO(dim, 0.), resNLO(dim, 0.), resLO_ew(dim,0.), resNLO_ew(dim,0.); int L = 6 - (int) nf; double alsM = model.Als(M) / 4. / M_PI; double alsmu = model.Als(mu) / 4. / M_PI; double ale = model.getAle()/ 4. / M_PI ; double eta = alsM / alsmu; for (unsigned int k = 0; k < dim; k++) { double etap = pow(eta, a[L][k]); for (unsigned int i = 0; i < dim; i++) { for (unsigned int j = 0; j < dim; j++) { resLO(i,j) += b[L][i][j][k] * etap; resNLO(i,j) += c[L][i][j][k] * etap * alsmu; resNLO(i,j) += d[L][i][j][k] * etap * alsM; resLO_ew(i,j) += m[L][i][j][k] * etap * ale/alsmu; resLO_ew(i,j) += n[L][i][j][k] * etap * ale/alsM; resNLO_ew(i,j) += o[L][i][j][k] * etap * ale; resNLO_ew(i,j) += p[L][i][j][k] * etap * ale; resNLO_ew(i,j) += u[L][i][j][k] * etap * ale * log(eta); resNLO_ew(i,j) += q[L][i][j][k] * etap * ale; resNLO_ew(i,j) += r[L][i][j][k] * etap * ale; resNLO_ew(i,j) += s[L][i][j][k] * etap * ale / eta; resNLO_ew(i,j) += t[L][i][j][k] * etap * ale * eta; } } } switch(order_ew) { case NLO_ew: *elem[NLO_ew] = (*elem[NLO]) * resLO_ew + (*elem[NLO_ew]) * resLO + (*elem[LO]) *resNLO_ew; case LO_ew: *elem[LO_ew] = (*elem[LO]) * resLO_ew; break; default: throw std::runtime_error("Error in EvolDF1nlep::Df1Evolnlep()"); } switch(order) { case NNLO: *elem[NNLO] = 0.; case NLO: *elem[NLO] = (*elem[LO]) * resNLO + (*elem[NLO]) * resLO; case LO: *elem[LO] = (*elem[LO]) * resLO; break; default: throw std::runtime_error("Error in EvolDF1nlep::Df1Evolnlep()"); } }
void EvolDC1Buras::DC1EvolBuras(double mu, double M, double nf, schemes scheme) { gslpp::matrix<double> resLO(dim, 0.), resNLO(dim, 0.), resNNLO(dim, 0.); int L = 6 - (int) nf; double alsM = model.Als(M) / 4. / M_PI; double alsmu = model.Als(mu) / 4. / M_PI; double eta = alsM / alsmu; for (unsigned int k = 0; k < dim; k++) { double etap = pow(eta, a[L][k] / 2. / model.Beta0(nf)); for (unsigned int i = 0; i < dim; i++){ for (unsigned int j = 0; j < dim; j++) { resNNLO(i, j) += 0.; if(fabs(e(i).real() - e(j).real() + 2. * model.Beta0(nf))>0.000000000001) { resNLO(i, j) += c[L][i][j][k] * etap * alsmu; resNLO(i, j) += d[L][i][j][k] * etap * alsM; } else{ resNLO(i, j) += - c[L][i][j][k] * etap * alsmu * log(eta); } resLO(i, j) += b[L][i][j][k] * etap; } } } switch(order) { case NNLO: *elem[NNLO] = 0.; case NLO: *elem[NLO] = (*elem[LO]) * resNLO + (*elem[NLO]) * resLO; case LO: *elem[LO] = (*elem[LO]) * resLO; break; case FULLNNLO: case FULLNLO: default: throw std::runtime_error("Error in EvolDC1Buras::DC1EvolBuras()"); } }