APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
initialiseevolution.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
11#include "apfel/dglapbuilder.h"
12#include "apfel/config.h"
13
14namespace apfel
15{
23 {
24 std::vector<double> xs;
25 std::vector<double> q2s;
26 std::vector<double> xfs;
27 };
28
37 {
38 public:
45 InitialiseEvolution(EvolutionSetup const& setup, bool const& WriteGrid = false, std::string const& GridHeader = "");
46
56 bool CheckSetup() const;
57
62 void ReportSetup() const;
63
69
76
84 void TabulateEvolution(std::function<std::map<int, double>(double const&, double const&)> const& InSet);
85
91
100 void WriteGrid();
101
107 double Alphas(double const& mu) const { return _as(mu); }
108
114 std::map<double, std::map<int, LHKnotArray>> KnotArray() const { return _KnotArray; }
115
122
128
129 private:
132 std::string _GridHeader;
133 std::unique_ptr<const Grid> _g;
134 std::function<double(double const&)> _as;
135 std::map<int, DglapObjects> _DglapObj;
136 std::map<double, std::map<int, LHKnotArray>> _KnotArray;
137 std::unique_ptr<const TabulateObject<Set<Distribution>>> _TabulatedDists;
138 };
139}
The InitialiseEvolution performs all the operations to initialise a DGLAP evolution using an Evolutio...
Definition initialiseevolution.h:37
TabulateObject< Set< Distribution > > TabulatedDistributions() const
Function that returns the full set of distributions as a TabulateObject object.
Definition initialiseevolution.h:121
void WriteGrid()
The WriteGrid function dumps to file in the LHAPDF format the actual PDF grid.
std::unique_ptr< const Grid > _g
x-space grid
Definition initialiseevolution.h:133
double Alphas(double const &mu) const
Function that returns the evolved strong coupling.
Definition initialiseevolution.h:107
void InitialiseDglapObject()
The InitialiseDglapObject function intialises the relevant objects for the DGLAP evolution and constr...
void InitialiseCouplings()
The InitialiseCouplings function intialises and tabulates the running coupling(s).
std::map< double, std::map< int, LHKnotArray > > KnotArray() const
Function that returns the full set of distributions tabulated on the (x,Q2) grid.
Definition initialiseevolution.h:114
std::string _GridHeader
Part of the LHAPDF grid header that can be set externally (the format is resposibility of the user)
Definition initialiseevolution.h:132
InitialiseEvolution(EvolutionSetup const &setup, bool const &WriteGrid=false, std::string const &GridHeader="")
The InitialiseEvolution constructor.
EvolutionSetup GetEvolutionSetup() const
Function that returns the EvolutionSetup object.
Definition initialiseevolution.h:127
std::unique_ptr< const TabulateObject< Set< Distribution > > > _TabulatedDists
Tabulated distributions.
Definition initialiseevolution.h:137
void TabulateEvolution(std::function< std::map< int, double >(double const &, double const &)> const &InSet)
The TabulateEvolution function computes the DGLAP evolution and tabulates the distributions over and ...
bool CheckSetup() const
The CheckSetup function checks that the input setup is meaningful and compatible with the current cap...
std::function< double(double const &) _as)
Strong coupling function.
Definition initialiseevolution.h:134
std::map< int, DglapObjects > _DglapObj
Dglap evolution objects.
Definition initialiseevolution.h:135
void WriteGridInfo()
The WriteGridInfo function creates the folder and writes the info file of the LHAPDF grid.
bool _WriteGrid
Switch to write LHAPDF grids.
Definition initialiseevolution.h:131
void ReportSetup() const
The ReportSetup function reports the parameters in a human readable format.
std::map< double, std::map< int, LHKnotArray > > _KnotArray
Object that emulates the KnotArray of LHAPDF to be fed to LHAPDF itself.
Definition initialiseevolution.h:136
EvolutionSetup _setup
Evolution setup object.
Definition initialiseevolution.h:130
The template TabulateObject class is a derived of the QGrid class that tabulates on object of type T ...
Definition tabulateobject.h:26
Namespace for all APFEL++ functions and classes.
Definition alphaqcd.h:14
The EvolutionSetup structure is a collection of all possible evolution parameters.
Definition evolutionsetup.h:24
The LHKnotArray structure emulates the KnotArray1F class of LHAPDF and contains the grids in x,...
Definition initialiseevolution.h:23
std::vector< double > q2s
List of Q2 knots.
Definition initialiseevolution.h:25
std::vector< double > xfs
List of xf values across the 2D knot array, stored as a strided [ix][iQ2] 1D array.
Definition initialiseevolution.h:26
std::vector< double > xs
List of x knots.
Definition initialiseevolution.h:24