APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
matchedevolution.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 <cmath>
10#include <vector>
11
12namespace apfel
13{
21 template<class T>
23 {
24 public:
25 MatchedEvolution() = delete;
26
27 virtual ~MatchedEvolution() = default;
28
36 MatchedEvolution(T const& ObjRef,
37 double const& MuRef,
38 std::vector<double> const& Thresholds,
39 int const& nsteps = 10);
40
49 virtual T EvolveObject(int const& nf, double const& t0, double const& t1, T const& Obj0) const;
50
58 virtual T MatchObject(bool const& Up, int const& nf, T const& Obj) const = 0;
59
67 virtual T Derivative(int const& nf, double const& Mu, T const& Obj) const = 0;
68
74 T Evaluate(double const& mu) const;
75
80
83 T GetObjectRef() const { return _ObjRef; }
84
88 double GetMuRef() const { return _MuRef; }
89
93 std::vector<double> GetThresholds() const { return _Thresholds; }
94
98 int GetNumberOfSteps() const { return _nsteps; }
100
105
109 void SetObjectRef(T ObjRef) { _ObjRef = std::move(ObjRef); }
110
115 void SetMuRef(double const& MuRef) { _MuRef2 = MuRef * MuRef; _LogMuRef2 = log(_MuRef2); }
116
121 void SetNumberOfSteps(int const& nsteps) { _nsteps = nsteps; }
123 protected:
124 T _ObjRef; //<! Reference value of the object
125 double _MuRef; //<! Reference scale of the object
126 double _MuRef2; //<! Squared reference scale of the object
127 double _LogMuRef2; //<! Log of the squared reference scale of the object
128 std::vector<double> _Thresholds; //<! Values of the thresholds
129 int _nsteps; //<! Number of steps of the RK algorithm
130 std::vector<double> _Thresholds2; //<! Squared quark threholds
131 std::vector<double> _LogThresholds2; //<! Log of the squared quark threholds
132 };
133}
The MatchedEvolution class is a template mother class for the computation of the running of a generic...
Definition matchedevolution.h:23
int _nsteps
Definition matchedevolution.h:129
T GetObjectRef() const
Function that returns the reference value of the object.
Definition matchedevolution.h:83
virtual ~MatchedEvolution()=default
std::vector< double > _Thresholds
Definition matchedevolution.h:128
std::vector< double > GetThresholds() const
Function that returns the values of the thresholds.
Definition matchedevolution.h:93
void SetObjectRef(T ObjRef)
Function that sets the reference value of the object.
Definition matchedevolution.h:109
virtual T EvolveObject(int const &nf, double const &t0, double const &t1, T const &Obj0) const
Virtual function for the computation of the evolution.
double GetMuRef() const
Function that returns the reference scale.
Definition matchedevolution.h:88
double _LogMuRef2
Definition matchedevolution.h:127
virtual T MatchObject(bool const &Up, int const &nf, T const &Obj) const =0
Pure virtual function for the computation of the matching.
std::vector< double > _LogThresholds2
Definition matchedevolution.h:131
T Evaluate(double const &mu) const
Function that returns the evolved object.
double _MuRef2
Definition matchedevolution.h:126
void SetNumberOfSteps(int const &nsteps)
Function that sets the number of steps of the RK algorithm.
Definition matchedevolution.h:121
void SetMuRef(double const &MuRef)
Function that sets the reference scale.
Definition matchedevolution.h:115
virtual T Derivative(int const &nf, double const &Mu, T const &Obj) const =0
Pure virtual function for the computation of the r.h.s. of a ODE (the derivative).
int GetNumberOfSteps() const
Function that returns the number of steps.
Definition matchedevolution.h:98
MatchedEvolution(T const &ObjRef, double const &MuRef, std::vector< double > const &Thresholds, int const &nsteps=10)
The MatchedEvolution constructor.
std::vector< double > _Thresholds2
Definition matchedevolution.h:130
T _ObjRef
Definition matchedevolution.h:124
double _MuRef
Definition matchedevolution.h:125
Namespace for all APFEL++ functions and classes.
Definition alphaqcd.h:14