ePDF  1.1.0
A QED evolution library
ndistributions.h
Go to the documentation of this file.
1 //
2 // ePDF
3 //
4 
5 #pragma once
6 
7 #include "ePDF/alphaem.h"
8 #include "ePDF/matrix.h"
9 
10 #include <yaml-cpp/yaml.h>
11 #include <complex>
12 #include <vector>
13 
14 namespace ePDF
15 {
20  {
21  public:
26  NDistributions(YAML::Node const& config);
27 
31  virtual ~NDistributions() {};
32 
38  virtual std::vector<std::complex<double>> Evolve(std::complex<double> const& N, double const& Q) const;
39 
46  std::pair<std::complex<double>, Matrix<std::complex<double>>> UMatrix(std::complex<double> const& N, double const& Q) const;
47 
54  std::pair<std::complex<double>, Matrix<std::complex<double>>> PathOrdering(std::complex<double> const& N, double const& Q) const;
55 
62  std::pair<std::complex<double>, Matrix<std::complex<double>>> AlphaFixed(std::complex<double> const& N, double const& Q) const;
63 
68  std::pair<std::complex<double>, Matrix<std::complex<double>>> InitialDistributions(std::complex<double> const& N) const;
69 
74  std::complex<double> fde(std::complex<double> const& N) const;
75  std::complex<double> fdgm(std::complex<double> const& N) const;
76 
80  Matrix<std::complex<double>> Integrandsg(Matrix<std::complex<double>> const& G0,
81  Matrix<std::complex<double>> const& G1,
82  Matrix<std::complex<double>> const& J,
83  double const& a) const;
84  std::complex<double> Integrandns(std::complex<double> const& G0,
85  std::complex<double> const& G1,
86  std::complex<double> const& J,
87  double const& a) const;
88  Matrix<std::complex<double>> Minv(Matrix<std::complex<double>> const& M) const;
89 
90  private:
91  AlphaQED const _aQED;
92  int const _ipt;
93  int const _nl;
94  double const _Qi;
95  double const _ai;
96  double const _bt0;
97  double const _bt1;
98  std::string const _method;
99  bool const _expand;
100  std::string const _scheme;
101  };
102 }
ePDF::NDistributions::Integrandns
std::complex< double > Integrandns(std::complex< double > const &G0, std::complex< double > const &G1, std::complex< double > const &J, double const &a) const
ePDF::NDistributions::fde
std::complex< double > fde(std::complex< double > const &N) const
Scheme functions.
ePDF::NDistributions::_ipt
const int _ipt
Definition: ndistributions.h:92
ePDF::NDistributions::PathOrdering
std::pair< std::complex< double >, Matrix< std::complex< double > > > PathOrdering(std::complex< double > const &N, double const &Q) const
function that returns the evolution operators in N space using the path-ordering method.
ePDF::NDistributions::_nl
const int _nl
Definition: ndistributions.h:93
ePDF::AlphaQED
The "Alpha QED" class.
Definition: alphaem.h:17
ePDF::NDistributions::UMatrix
std::pair< std::complex< double >, Matrix< std::complex< double > > > UMatrix(std::complex< double > const &N, double const &Q) const
function that returns the evolution operators in N space using the iterative U matrix method.
ePDF::NDistributions::AlphaFixed
std::pair< std::complex< double >, Matrix< std::complex< double > > > AlphaFixed(std::complex< double > const &N, double const &Q) const
function that returns the evolution operators in N space using for the alpha-fixed case.
ePDF::NDistributions::_bt0
const double _bt0
Definition: ndistributions.h:96
ePDF::NDistributions::~NDistributions
virtual ~NDistributions()
The "NDistribution" destructor.
Definition: ndistributions.h:31
ePDF::NDistributions::Integrandsg
Matrix< std::complex< double > > Integrandsg(Matrix< std::complex< double >> const &G0, Matrix< std::complex< double >> const &G1, Matrix< std::complex< double >> const &J, double const &a) const
Helper functions.
matrix.h
ePDF::NDistributions::_scheme
const std::string _scheme
Definition: ndistributions.h:100
ePDF::NDistributions::_aQED
const AlphaQED _aQED
Definition: ndistributions.h:91
ePDF::NDistributions::_bt1
const double _bt1
Definition: ndistributions.h:97
ePDF::NDistributions::fdgm
std::complex< double > fdgm(std::complex< double > const &N) const
ePDF::NDistributions::Evolve
virtual std::vector< std::complex< double > > Evolve(std::complex< double > const &N, double const &Q) const
function that returns the N-th (complex) moment of PDFs.
ePDF::NDistributions::InitialDistributions
std::pair< std::complex< double >, Matrix< std::complex< double > > > InitialDistributions(std::complex< double > const &N) const
function that returns the initial distributions in N space
ePDF::NDistributions::_expand
const bool _expand
Definition: ndistributions.h:99
alphaem.h
ePDF::NDistributions
The "NDistribution" class.
Definition: ndistributions.h:19
ePDF
Definition: alphaem.h:12
ePDF::NDistributions::Minv
Matrix< std::complex< double > > Minv(Matrix< std::complex< double >> const &M) const
ePDF::NDistributions::_Qi
const double _Qi
Definition: ndistributions.h:94
ePDF::NDistributions::_method
const std::string _method
Definition: ndistributions.h:98
ePDF::Matrix
Definition: matrix.h:19
ePDF::NDistributions::NDistributions
NDistributions(YAML::Node const &config)
The "NDistribution" constructor.
ePDF::NDistributions::_ai
const double _ai
Definition: ndistributions.h:95