Nanga Parbat 1.1.0
A TMD fitting framework
fastinterface.h
Go to the documentation of this file.
1//
2// Author: Valerio Bertone: valerio.bertone@cern.ch
3//
4
5#pragma once
6
8
9#include <utility>
10#include <memory>
11#include <yaml-cpp/yaml.h>
12#include <apfel/apfelxx.h>
13
14namespace NangaParbat
15{
21 {
22 public:
27 FastInterface(YAML::Node const& config);
28
37 apfel::DoubleObject<apfel::Distribution> LuminosityDY(double const& bT, double const& Q, double const& targetiso) const;
38
46 std::vector<std::string> ComputeTables(std::vector<DataHandler> const& DHVect) const;
47
56 std::vector<YAML::Emitter> ComputeTablesDY(std::vector<DataHandler> const& DHVect) const;
57
65 std::vector<YAML::Emitter> ComputeTablesSIDIS(std::vector<DataHandler> const& DHVect) const;
66
75 std::vector<double> NormalisationFactorsSIDIS(std::vector<DataHandler> const& DHVect) const;
76
77 private:
78 YAML::Node _config;
79 std::vector<double> _Thresholds;
80 std::unique_ptr<apfel::TabulateObject<double>> _TabAlphas;
81 std::unique_ptr<apfel::TabulateObject<double>> _TabAlphaem;
82 std::map<int, apfel::TmdObjects> _TmdPdfObjs;
83 std::map<int, apfel::TmdObjects> _TmdFfObjs;
84 std::unique_ptr<const apfel::Grid> _gpdf;
85 std::unique_ptr<const apfel::Grid> _gff;
86 std::unique_ptr<apfel::TabulateObject<apfel::Set<apfel::Distribution>>> _TabPDFs;
87 std::unique_ptr<apfel::TabulateObject<apfel::Set<apfel::Distribution>>> _TabFFs;
88 std::function<apfel::Set<apfel::Distribution>(double const&, double const&, double const&)> _EvTMDPDFs;
89 std::function<apfel::Set<apfel::Distribution>(double const&, double const&, double const&)> _EvTMDFFs;
90 std::function<apfel::Set<apfel::Distribution>(double const&)> _MatchTMDPDFs;
91 std::function<apfel::Set<apfel::Distribution>(double const&)> _MatchTMDFFs;
92 std::function<double(double const&, double const&, double const&)> _QuarkSudakov;
93 std::function<double(double const&)> _HardFactorDY;
94 std::function<double(double const&)> _HardFactorSIDIS;
95 std::function<double(double const&, double const&)> _bstar;
96 };
97}
Class that implements the methods of the computation of the interpolation tables.
Definition: fastinterface.h:21
std::vector< std::string > ComputeTables(std::vector< DataHandler > const &DHVect) const
Function that computes the interpolation tables given as an input vector of "DataHandler" objects.
std::map< int, apfel::TmdObjects > _TmdPdfObjs
Space-like TMD objects.
Definition: fastinterface.h:82
std::unique_ptr< apfel::TabulateObject< double > > _TabAlphaem
Fine-structure coupling.
Definition: fastinterface.h:81
YAML::Node _config
Configuration YAML::Node.
Definition: fastinterface.h:78
std::map< int, apfel::TmdObjects > _TmdFfObjs
Time-like TMD objects.
Definition: fastinterface.h:83
std::function< apfel::Set< apfel::Distribution >(double const &)> _MatchTMDFFs
TMD FFs w/o/ Sudakov evolution.
Definition: fastinterface.h:91
std::vector< double > _Thresholds
Heavy-quark thresholds.
Definition: fastinterface.h:79
apfel::DoubleObject< apfel::Distribution > LuminosityDY(double const &bT, double const &Q, double const &targetiso) const
Function returns the luminosity for the Drell-Yan process as a "DoubleObject" for a fixed values of "...
std::unique_ptr< apfel::TabulateObject< apfel::Set< apfel::Distribution > > > _TabFFs
Collinear FFs.
Definition: fastinterface.h:87
std::unique_ptr< const apfel::Grid > _gff
APFEL x-space grid for FFs.
Definition: fastinterface.h:85
std::function< double(double const &, double const &, double const &)> _QuarkSudakov
Quark evolution factor.
Definition: fastinterface.h:92
std::function< double(double const &)> _HardFactorDY
Hard factor for Drell-Yan.
Definition: fastinterface.h:93
std::function< apfel::Set< apfel::Distribution >(double const &)> _MatchTMDPDFs
TMD PDFs w/o/ Sudakov evolution.
Definition: fastinterface.h:90
std::unique_ptr< apfel::TabulateObject< apfel::Set< apfel::Distribution > > > _TabPDFs
Collinear PDFs.
Definition: fastinterface.h:86
std::function< double(double const &)> _HardFactorSIDIS
Hard factor for SIDIS.
Definition: fastinterface.h:94
std::unique_ptr< const apfel::Grid > _gpdf
APFEL x-space grid for PDFs.
Definition: fastinterface.h:84
std::function< apfel::Set< apfel::Distribution >(double const &, double const &, double const &)> _EvTMDFFs
TMD FFs.
Definition: fastinterface.h:89
std::function< apfel::Set< apfel::Distribution >(double const &, double const &, double const &)> _EvTMDPDFs
TMD PDFs.
Definition: fastinterface.h:88
FastInterface(YAML::Node const &config)
The "FastInterface" constructor.
std::unique_ptr< apfel::TabulateObject< double > > _TabAlphas
Strong coupling.
Definition: fastinterface.h:80
std::vector< YAML::Emitter > ComputeTablesDY(std::vector< DataHandler > const &DHVect) const
Function that computes the interpolation tables given as an input vector of "DataHandler" objects for...
std::vector< YAML::Emitter > ComputeTablesSIDIS(std::vector< DataHandler > const &DHVect) const
Function that computes the interpolation tables given as an input vector of "DataHandler" objects for...
std::function< double(double const &, double const &)> _bstar
b* prescription
Definition: fastinterface.h:95
std::vector< double > NormalisationFactorsSIDIS(std::vector< DataHandler > const &DHVect) const
Function that computes the normalisation factors to be applied to SIDIS to normalise the integral of ...
Definition: bstar.h:12