APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
observable.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 "apfel/set.h"
10#include "apfel/operator.h"
11
12namespace apfel
13{
22 template<class T = Distribution>
24 {
25 public:
31 {
32 ConvolutionPair(std::function<Set<Operator>(double const&)> const& C, std::function<Set<T>(double const&)> const& O): CoefficientFunctions(C), Objects(O) {}
33 std::function<Set<Operator>(double const&)> CoefficientFunctions;
34 std::function<Set<T>(double const&)> Objects;
35 };
36
41
46 Observable(std::vector<ConvolutionPair> ConvPair);
47
53 Observable(std::function<Set<Operator>(double const&)> const& CoefficientFunctions,
54 std::function<Set<T>(double const&)> const& Objects);
55
61 void AddConvolutionPair(std::function<Set<Operator>(double const&)> const& CoefficientFunctions,
62 std::function<Set<T>(double const&)> const& Objects);
63
69
74 T Evaluate(double const& Q) const;
75
82 double Evaluate(double const& x, double const& Q) const;
84
91 void SetObjects(std::function<Set<T>(double const&)> const& Objects, int const& ip = 0);
92
98 std::function<Set<Operator>(double const&)> GetCoefficientFunctions(int const& ip = 0) const;
99
100 private:
101 std::vector<ConvolutionPair> _ConvPair;
102 };
103}
The Observable class encapsulates sets of operators and sets of T-type objects for an easy computatio...
Definition observable.h:24
void AddConvolutionPair(std::function< Set< Operator >(double const &)> const &CoefficientFunctions, std::function< Set< T >(double const &)> const &Objects)
Function to add a convolution pair.
std::function< Set< Operator >(double const &) GetCoefficientFunctions)(int const &ip=0) const
Get the set of coefficient functions.
std::vector< ConvolutionPair > _ConvPair
Definition observable.h:101
double Evaluate(double const &x, double const &Q) const
This function returns the observable in Q interpolated in x.
T Evaluate(double const &Q) const
This function returns the observable as a distribution.
Observable()
The Observable empty constructor.
void SetObjects(std::function< Set< T >(double const &)> const &Objects, int const &ip=0)
Set the set of ditributions keeping the same set of coefficient functions.
Observable(std::vector< ConvolutionPair > ConvPair)
The Observable constructor.
Observable(std::function< Set< Operator >(double const &)> const &CoefficientFunctions, std::function< Set< T >(double const &)> const &Objects)
The Observable constructor.
The Set template class allocates a collection of objects of type T along the ConvolutionMap and provi...
Definition set.h:22
Namespace for all APFEL++ functions and classes.
Definition alphaqcd.h:14
This structure contains a pair of sets of coefficient functions and of objects.
Definition observable.h:31
std::function< Set< T >(double const &) Objects)
Definition observable.h:34
ConvolutionPair(std::function< Set< Operator >(double const &)> const &C, std::function< Set< T >(double const &)> const &O)
Definition observable.h:32
std::function< Set< Operator >(double const &) CoefficientFunctions)
Definition observable.h:33