int main()
{
const std::vector<double> Thresholds = {0, 0, 0, sqrt(2), 4.5, 175};
const auto Alphas = [=] (
double const& mu) ->
double{
return tabas.
Evaluate(mu); };
const apfel::Grid g{{
apfel::SubGrid{100, 1e-5, 3},
apfel::SubGrid{100, 1e-1, 3},
apfel::SubGrid{100, 6e-1, 3},
apfel::SubGrid{80, 8.5e-1, 5}}};
const double Vs = 13000;
const double y = 0;
const double x1 = Q * exp(y) / Vs;
const double x2 = Q / exp(y) / Vs;
const std::map<int,apfel::Distribution> xF = QCDEvToPhys(EvTMDPDFs(2 * exp( -
apfel::emc), Q, Q * Q).GetObjects());
double lumimax = 0;
for (int i = 1; i <= nf; i++)
lumimax += Bq[i-1] * ( xF.at(i).Evaluate(x1) * xF.at(-i).Evaluate(x2) + xF.at(-i).Evaluate(x1) * xF.at(i).Evaluate(x2) );
const std::function<double(double const&)> TMDLumib = [=] (double const& b) -> double
{
const double bstar = std::max(b / sqrt( 1 + pow(b / 2 / exp( -
apfel::emc), 2) ), 1e-4);
const std::map<int,apfel::Distribution> xF = QCDEvToPhys(EvTMDPDFs(bstar, Q, Q * Q).GetObjects());
double lumi = 0;
for (int i = 1; i <= nf; i++)
lumi += Bq[i-1] * ( xF.at(i).Evaluate(x1) * xF.at(-i).Evaluate(x2) + xF.at(-i).Evaluate(x1) * xF.at(i).Evaluate(x2) );
return b * ( lumi - lumimax );
};
const int nqT = 100;
const double qTmin = 0.01;
const double qTmax = 30;
const double qTstp = ( qTmax - qTmin ) / ( nqT - 1 );
for (double qT = qTmin; qT <= qTmax; qT += qTstp)
std::cout << std::scientific << Q << " " << y << " " << qT << " "
<< std::endl;
return 0;
}
The AlphaQCD is a specialization class of the MatchedEvolution class for the computation of the QCD c...
Definition alphaqcd.h:21
The Grid class defines ab object that is essentially a collection of "SubGrid" objects plus other glo...
Definition grid.h:22
The OgataQuadrature class implements the Hankel-transform of the input function using the Ogata quadr...
Definition ogataquadrature.h:21
T transform(std::function< T(double const &)> const &func, double const &qT, bool const &Dynh=true, int const &nmax=1000, int const &period=10) const
Function that transform the input function.
T Evaluate(double const &Q) const
Function that interpolates on the grid in Q.
The Set template class allocates a collection of objects of type T along the ConvolutionMap and provi...
Definition set.h:22
Class for the x-space interpolation SubGrids.
Definition subgrid.h:23
The template TabulateObject class is a derived of the QGrid class that tabulates on object of type T ...
Definition tabulateobject.h:26
The Timer class computes the time elapsed between start and stop.
Definition timer.h:20
void stop(bool const &ForceDisplay=false)
This function stops the timer and reports the elapsed time in seconds since the last time the timer w...
Definition timer.h:36
const double emc
Definition constants.h:134
@ NNLO
Definition constants.h:30
@ NNNLL
Definition constants.h:31
const double ZMass
Definition constants.h:203
const double alphaem
Definition constants.h:252
const double ConvFact
Definition constants.h:193
int NF(double const &Q, std::vector< double > const &Thresholds)
Return the number of active flavours at the scale Q given the (ordered) vector of thresholds.
std::map< int, TmdObjects > InitializeTmdObjects(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeTmdObjects function precomputes the perturbative coefficients required for the evolutio...
std::vector< double > ElectroWeakCharges(double const &Q, bool const &virt, int const &Comp=TOTAL)
Utility function for the computation of the electroweak charges, for both time-like and space-like vi...