APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
structurefunctionbuilder.h
Go to the documentation of this file.
1//
2// APFEL++ 2017
3//
4// Author: Valerio Bertone: valerio.bertone@cern.ch
5//
6
7#pragma once
8
9#include "apfel/grid.h"
10#include "apfel/dglap.h"
11#include "apfel/observable.h"
12#include "apfel/disbasis.h"
13#include "apfel/dglapbuilder.h"
14
15namespace apfel
16{
24 {
25 int nf;
27 std::vector<int> skip;
28 std::map<int, ConvolutionMap> ConvBasis;
29 std::map<int, Set<Operator>> C0;
30 std::map<int, Set<Operator>> C1;
31 std::map<int, Set<Operator>> C2;
32 std::map<int, Set<Operator>> C3;
33 };
34
42
51 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF2NCObjectsZM(Grid const& g,
52 std::vector<double> const& Thresholds,
53 double const& IntEps = 1e-5);
54
64 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeFLNCObjectsZM(Grid const& g,
65 std::vector<double> const& Thresholds,
66 double const& IntEps = 1e-5);
67
77 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF3NCObjectsZM(Grid const& g,
78 std::vector<double> const& Thresholds,
79 double const& IntEps = 1e-5);
80
90 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> Initializeg4NCObjectsZM(Grid const& g,
91 std::vector<double> const& Thresholds,
92 double const& IntEps = 1e-5);
93
103 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializegLNCObjectsZM(Grid const& g,
104 std::vector<double> const& Thresholds,
105 double const& IntEps = 1e-5);
106
116 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> Initializeg1NCObjectsZM(Grid const& g,
117 std::vector<double> const& Thresholds,
118 double const& IntEps = 1e-5);
119
130 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF2CCPlusObjectsZM(Grid const& g,
131 std::vector<double> const& Thresholds,
132 double const& IntEps = 1e-5);
133
144 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF2CCMinusObjectsZM(Grid const& g,
145 std::vector<double> const& Thresholds,
146 double const& IntEps = 1e-5);
147
158 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeFLCCPlusObjectsZM(Grid const& g,
159 std::vector<double> const& Thresholds,
160 double const& IntEps = 1e-5);
161
172 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeFLCCMinusObjectsZM(Grid const& g,
173 std::vector<double> const& Thresholds,
174 double const& IntEps = 1e-5);
175
186 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF3CCPlusObjectsZM(Grid const& g,
187 std::vector<double> const& Thresholds,
188 double const& IntEps = 1e-5);
189
200 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF3CCMinusObjectsZM(Grid const& g,
201 std::vector<double> const& Thresholds,
202 double const& IntEps = 1e-5);
203
219 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF2NCObjectsMassive(Grid const& g,
220 std::vector<double> const& Masses,
221 double const& IntEps = 1e-5,
222 int const& nxi = 150,
223 double const& ximin = 0.01,
224 double const& ximax = 10000,
225 int const& intdeg = 3,
226 double const& lambda = 0.0005);
227
243 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeFLNCObjectsMassive(Grid const& g,
244 std::vector<double> const& Masses,
245 double const& IntEps = 1e-5,
246 int const& nxi = 150,
247 double const& ximin = 0.01,
248 double const& ximax = 10000,
249 int const& intdeg = 3,
250 double const& lambda = 0.0005);
251
267 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF2NCObjectsMassiveZero(Grid const& g,
268 std::vector<double> const& Masses,
269 double const& IntEps = 1e-5,
270 int const& nxi = 150,
271 double const& ximin = 0.01,
272 double const& ximax = 10000,
273 int const& intdeg = 3,
274 double const& lambda = 0.0005);
275
291 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeFLNCObjectsMassiveZero(Grid const& g,
292 std::vector<double> const& Masses,
293 double const& IntEps = 1e-5,
294 int const& nxi = 150,
295 double const& ximin = 0.01,
296 double const& ximax = 10000,
297 int const& intdeg = 3,
298 double const& lambda = 0.0005);
300
310
320 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF2NCObjectsZMT(Grid const& g,
321 std::vector<double> const& Thresholds,
322 double const& IntEps = 1e-5);
323
334 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeFLNCObjectsZMT(Grid const& g,
335 std::vector<double> const& Thresholds,
336 double const& IntEps = 1e-5);
337
348 std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> InitializeF3NCObjectsZMT(Grid const& g,
349 std::vector<double> const& Thresholds,
350 double const& IntEps = 1e-5);
352
360
372 std::map<int, Observable<>> BuildStructureFunctions(std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> const& FObj,
373 std::function<std::map<int, double>(double const&, double const&)> const& InDistFunc,
374 int const& PerturbativeOrder,
375 std::function<double(double const&)> const& Alphas,
376 std::function<std::vector<double>(double const&)> const& Couplings,
377 double const& xiR = 1,
378 double const& xiF = 1);
379
392 std::map<int, Observable<>> BuildStructureFunctions(std::function<StructureFunctionObjects(double const&, std::vector<double> const&)> const& FObj,
393 std::function<double(int const&, double const&, double const&)> const& InDistFunc,
394 int const& PerturbativeOrder,
395 std::function<double(double const&)> const& Alphas,
396 std::function<std::vector<double>(double const&)> const& Couplings,
397 double const& xiR = 1,
398 double const& xiF = 1);
399
413 std::map<int, Distribution> const& InDistFuncQ,
414 int const& PerturbativeOrder,
415 double const& AlphasQ,
416 int const& k,
417 double const& xiR = 1,
418 double const& xiF = 1);
419
431 std::map<int, Distribution> BuildStructureFunctions(StructureFunctionObjects const& FObjQ,
432 std::map<int, Distribution> const& InDistFuncQ,
433 int const& PerturbativeOrder,
434 double const& AlphasQ,
435 double const& xiR = 1,
436 double const& xiF = 1);
438}
The Distribution class defines one of the basic objects of APFEL++. This is essentially the discretis...
Definition distribution.h:22
The Grid class defines ab object that is essentially a collection of "SubGrid" objects plus other glo...
Definition grid.h:22
Namespace for all APFEL++ functions and classes.
Definition alphaqcd.h:14
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) Initializeg4NCObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The Initializeg4NCObjectsZM precomputes the perturbative coefficients of coefficient functions for NC...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF2NCObjectsZMT)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeF2NCObjectsZMT precomputes the perturbative coefficients of coefficient functions for N...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF2CCMinusObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeF2CCMinusObjectsZM precomputes the perturbative coefficients of coefficient functions f...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeFLNCObjectsZMT)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeFLNCObjectsZMT precomputes the perturbative coefficients of coefficient functions for N...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeFLNCObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeFLNCObjectsZM precomputes the perturbative coefficients of coefficient functions for NC...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF2NCObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeF2NCObjectsZM precomputes the perturbative coefficients of coefficient functions for NC...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeFLNCObjectsMassiveZero)(Grid const &g, std::vector< double > const &Masses, double const &IntEps=1e-5, int const &nxi=150, double const &ximin=0.01, double const &ximax=10000, int const &intdeg=3, double const &lambda=0.0005)
The InitializeFLNCObjectsMassiveZero precomputes the perturbative coefficients of coefficient functio...
std::map< int, Observable<> > BuildStructureFunctions(std::function< StructureFunctionObjects(double const &, std::vector< double > const &)> const &FObj, std::function< std::map< int, double >(double const &, double const &)> const &InDistFunc, int const &PerturbativeOrder, std::function< double(double const &)> const &Alphas, std::function< std::vector< double >(double const &)> const &Couplings, double const &xiR=1, double const &xiF=1)
The BuildStructureFunctions function constructs a map of "Observable" objects.
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF2NCObjectsMassive)(Grid const &g, std::vector< double > const &Masses, double const &IntEps=1e-5, int const &nxi=150, double const &ximin=0.01, double const &ximax=10000, int const &intdeg=3, double const &lambda=0.0005)
The InitializeF2NCObjectsMassive precomputes the perturbative coefficients of coefficient functions f...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF3NCObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeF3NCObjectsZM precomputes the perturbative coefficients of coefficient functions for NC...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeFLCCMinusObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeFLCCMinusObjectsZM precomputes the perturbative coefficients of coefficient functions f...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeFLCCPlusObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeFLCCPlusObjectsZM precomputes the perturbative coefficients of coefficient functions fo...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) Initializeg1NCObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The Initializeg1NCObjectsZM precomputes the perturbative coefficients of coefficient functions for NC...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF3CCPlusObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeF3CCPlusObjectsZM precomputes the perturbative coefficients of coefficient functions fo...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF2NCObjectsMassiveZero)(Grid const &g, std::vector< double > const &Masses, double const &IntEps=1e-5, int const &nxi=150, double const &ximin=0.01, double const &ximax=10000, int const &intdeg=3, double const &lambda=0.0005)
The InitializeF2NCObjectsMassiveZero precomputes the perturbative coefficients of coefficient functio...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF3NCObjectsZMT)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeF3NCObjectsZMT precomputes the perturbative coefficients of coefficient functions for N...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF2CCPlusObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeF2CCPlusObjectsZM precomputes the perturbative coefficients of coefficient functions fo...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializegLNCObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializegLNCObjectsZM precomputes the perturbative coefficients of coefficient functions for NC...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeF3CCMinusObjectsZM)(Grid const &g, std::vector< double > const &Thresholds, double const &IntEps=1e-5)
The InitializeF3CCMinusObjectsZM precomputes the perturbative coefficients of coefficient functions f...
std::function< StructureFunctionObjects(double const &, std::vector< double > const &) InitializeFLNCObjectsMassive)(Grid const &g, std::vector< double > const &Masses, double const &IntEps=1e-5, int const &nxi=150, double const &ximin=0.01, double const &ximax=10000, int const &intdeg=3, double const &lambda=0.0005)
The InitializeFLNCObjectsMassive precomputes the perturbative coefficients of coefficient functions f...
Structure that contains all the precomputed quantities needed to perform the DGLAP evolution,...
Definition dglapbuilder.h:23
Structure that contains all the precomputed quantities needed to compute the DIS structure functions,...
Definition structurefunctionbuilder.h:24
int nf
Definition structurefunctionbuilder.h:25
std::map< int, Set< Operator > > C0
Definition structurefunctionbuilder.h:29
std::map< int, Set< Operator > > C3
Definition structurefunctionbuilder.h:32
std::map< int, ConvolutionMap > ConvBasis
Definition structurefunctionbuilder.h:28
DglapObjects P
Definition structurefunctionbuilder.h:26
std::map< int, Set< Operator > > C1
Definition structurefunctionbuilder.h:30
std::vector< int > skip
Definition structurefunctionbuilder.h:27
std::map< int, Set< Operator > > C2
Definition structurefunctionbuilder.h:31