ePDF  1.1.0
A QED evolution library
analyticsolutions.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/constants.h"
9 
10 namespace ePDF
11 {
15  const std::vector<bool> orderRLL{true, true, true, false, false, false};
16  const std::vector<bool> orderRNLL{true, true, true, true, true, true};
17 
23  {
24  public:
25 
31  AnalyticSolutions(YAML::Node const& config);
32 
40  AnalyticSolutions(YAML::Node const& config, int const& orderA, std::vector<bool> const orderR);
41 
45  void SetPhotonMatching(std::vector<double> const& vec);
46 
51  void SetNumInt(bool const& numint);
52 
56  void SetRecHat(bool const& rechatON);
57 
64  double GetSolution(double const& x, double const& Q, int const& id, std::string const& term);
65 
72  double Evolve(double const& x, double const& Q, int const& id);
73 
79  std::vector<double> Evolve(double const& x, double const& Q);
80 
87  double TestPhoton(double const& x, double const& Q, std::string test);
88 
89  private:
91  double const _Qi;
92  double const _nl;
93 
99  double const _b0;
101  double const _b1;
103 
107  double const _a0twopi;
109  double const _L0;
110  double _atwopi;
111  double _t;
112  double _eta0;
114 
118  std::vector<bool> _orderR;
120  int _orderA;
122 
126  double _x0photon;
128  double _x1photon;
129  double _pphoton;
131 
135  bool _numint;
136 
140  bool _rechatON;
141 
145 
149  double RecSeries(std::vector<double> const& series) const;
150 
154  void Warmup(double const& Q);
155 
160  double AsySolution(double const& x, int const& id) const;
161  double AsyBarSolution(double const& x, int const& id) const;
162  double RecSolution(double const& x, int const& id) const;
163  double RecBarSolution(double const& x, int const& id) const;
164 
169  std::vector<double> RecBarNS(double const& z) const;
170  std::vector<double> RecBarS(double const& z) const;
171  std::vector<double> RecBarG(double const& z) const;
172 
177  std::vector<double> RecHatNS(double const& z) const;
178  std::vector<double> RecHatS(double const& z) const;
179  std::vector<double> RecHatG(double const& z) const;
180 
181  double AsyEleAF(double const& z) const;
182  double AsyEleAR(double const& z) const;
183  std::vector<double> AsyEleBarAF(double const& z) const;
184  std::vector<double> AsyEleBarAR(double const& z) const;
185 
189  double AsyPhoton(double const& z) const;
190 
194  double sumRiMi(double const& C1, double const& C2, double const& C3,
195  double const& C4, double const& C5,
196  double const& z, double const& k, double const& M1, double const& M2) const;
197 
201  std::vector<double> AsyPhotonBar(double const& z) const;
202 
206  double AsyPhotonSIMPLIFIED(double const& z) const;
208  };
209 }
ePDF::AnalyticSolutions::RecBarSolution
double RecBarSolution(double const &x, int const &id) const
ePDF::AnalyticSolutions::_L0
const double _L0
Definition: analyticsolutions.h:109
ePDF::AnalyticSolutions::_a0twopi
const double _a0twopi
Definition: analyticsolutions.h:108
ePDF::AnalyticSolutions
The "AnalyticSolutions" class that return the analytic solutions.
Definition: analyticsolutions.h:22
ePDF::AnalyticSolutions::_orderA
int _orderA
Definition: analyticsolutions.h:120
ePDF::AnalyticSolutions::_b0
const double _b0
Definition: analyticsolutions.h:100
ePDF::AnalyticSolutions::_numint
bool _numint
If true, numerical contributions calculated.
Definition: analyticsolutions.h:135
ePDF::AnalyticSolutions::AsyEleAF
double AsyEleAF(double const &z) const
ePDF::AnalyticSolutions::RecSolution
double RecSolution(double const &x, int const &id) const
ePDF::AlphaQED
The "Alpha QED" class.
Definition: alphaem.h:17
ePDF::AnalyticSolutions::_x0photon
double _x0photon
Definition: analyticsolutions.h:127
ePDF::AnalyticSolutions::AsySolution
double AsySolution(double const &x, int const &id) const
Returns the different solutions. N.B. only the x-dependent part, should be called after Warmup.
ePDF::AnalyticSolutions::SetRecHat
void SetRecHat(bool const &rechatON)
Turn on or off the terms vanishing in the z->1 limit.
ePDF::AnalyticSolutions::RecBarS
std::vector< double > RecBarS(double const &z) const
ePDF::AnalyticSolutions::RecHatS
std::vector< double > RecHatS(double const &z) const
ePDF::AnalyticSolutions::Evolve
double Evolve(double const &x, double const &Q, int const &id)
Function that returns the PDFs in x space.
ePDF::AnalyticSolutions::sumRiMi
double sumRiMi(double const &C1, double const &C2, double const &C3, double const &C4, double const &C5, double const &z, double const &k, double const &M1, double const &M2) const
Auxiliary function used in AsyPhoton.
ePDF::AnalyticSolutions::TestPhoton
double TestPhoton(double const &x, double const &Q, std::string test)
Function that returns the photon PDF in x space.
ePDF::AnalyticSolutions::AsyBarSolution
double AsyBarSolution(double const &x, int const &id) const
ePDF::AnalyticSolutions::RecSeries
double RecSeries(std::vector< double > const &series) const
Build the perturbative series.
ePDF::AnalyticSolutions::RecBarG
std::vector< double > RecBarG(double const &z) const
ePDF::AnalyticSolutions::Warmup
void Warmup(double const &Q)
Set up the Q dependent terms.
ePDF::AnalyticSolutions::AnalyticSolutions
AnalyticSolutions(YAML::Node const &config)
The "AnalyticSolutions" constructor.
ePDF::AnalyticSolutions::_nl
const double _nl
Active number of.
Definition: analyticsolutions.h:92
ePDF::AnalyticSolutions::_eta0
double _eta0
Definition: analyticsolutions.h:112
ePDF::AnalyticSolutions::_atwopi
double _atwopi
Definition: analyticsolutions.h:110
ePDF::AnalyticSolutions::AsyEleBarAF
std::vector< double > AsyEleBarAF(double const &z) const
alphaem.h
ePDF::AnalyticSolutions::AsyPhotonBar
std::vector< double > AsyPhotonBar(double const &z) const
This contains AR and AF.
ePDF::AnalyticSolutions::RecHatG
std::vector< double > RecHatG(double const &z) const
ePDF::AnalyticSolutions::AsyPhotonSIMPLIFIED
double AsyPhotonSIMPLIFIED(double const &z) const
ePDF::AnalyticSolutions::_Qi
const double _Qi
Initial scale.
Definition: analyticsolutions.h:91
ePDF::AnalyticSolutions::AsyPhoton
double AsyPhoton(double const &z) const
This contains AR and AF.
ePDF::AnalyticSolutions::AsyEleAR
double AsyEleAR(double const &z) const
ePDF::AnalyticSolutions::_t
double _t
Definition: analyticsolutions.h:111
ePDF::AnalyticSolutions::_aQED
AlphaQED _aQED
Coupling object.
Definition: analyticsolutions.h:90
constants.h
ePDF
Definition: alphaem.h:12
ePDF::AnalyticSolutions::SetNumInt
void SetNumInt(bool const &numint)
Turn on or off the numeric integrals (which vanish in the z->1 limit)
ePDF::AnalyticSolutions::RecBarNS
std::vector< double > RecBarNS(double const &z) const
Returns a vector with the \bar{J}_k(z) for k = LL1, LL2, LL3, NLL0, NLL1, NLL2.
ePDF::AnalyticSolutions::SetPhotonMatching
void SetPhotonMatching(std::vector< double > const &vec)
Set the parameters for photon matching.
ePDF::AnalyticSolutions::GetSolution
double GetSolution(double const &x, double const &Q, int const &id, std::string const &term)
Return only part of the solution.
ePDF::AnalyticSolutions::_pphoton
double _pphoton
Definition: analyticsolutions.h:129
ePDF::AnalyticSolutions::_rechatON
bool _rechatON
If true, hat terms retained.
Definition: analyticsolutions.h:140
ePDF::orderRNLL
const std::vector< bool > orderRNLL
Definition: analyticsolutions.h:16
ePDF::orderRLL
const std::vector< bool > orderRLL
Utility definitions.
Definition: analyticsolutions.h:15
ePDF::AnalyticSolutions::AsyEleBarAR
std::vector< double > AsyEleBarAR(double const &z) const
ePDF::AnalyticSolutions::_b1
const double _b1
Definition: analyticsolutions.h:101
ePDF::AnalyticSolutions::_x1photon
double _x1photon
Definition: analyticsolutions.h:128
ePDF::AnalyticSolutions::RecHatNS
std::vector< double > RecHatNS(double const &z) const
Returns a vector with the \hat{J}_k(z) for k = LL1, LL2, LL3, NLL0, NLL1, NLL2.
ePDF::AnalyticSolutions::_orderR
std::vector< bool > _orderR
Definition: analyticsolutions.h:119