lhapdf
is hosted by
Hepforge
,
IPPP Durham
LHAPDF
6.5.4
Loading...
Searching...
No Matches
include
LHAPDF
Interpolator.h
1
// -*- C++ -*-
2
//
3
// This file is part of LHAPDF
4
// Copyright (C) 2012-2023 The LHAPDF collaboration (see AUTHORS for details)
5
//
6
#pragma once
7
#ifndef LHAPDF_Interpolator_H
8
#define LHAPDF_Interpolator_H
9
10
#include "LHAPDF/Utils.h"
11
#include "LHAPDF/KnotArray.h"
12
13
namespace
LHAPDF
{
14
15
16
// Forward declaration
17
class
GridPDF;
18
19
21
class
Interpolator
{
22
public
:
23
25
virtual
~Interpolator
() { }
26
27
30
32
void
bind
(
const
GridPDF
*
pdf
) { _pdf =
pdf
; }
33
35
void
unbind
() { _pdf = 0; }
36
38
bool
hasPDF
() {
return
_pdf != 0; }
39
41
const
GridPDF
&
pdf
()
const
{
return
*_pdf; }
42
44
45
48
50
double
interpolateXQ
(
int
id
,
double
x,
double
q)
const
{
51
return
interpolateXQ2
(
id
, x, q*q);
52
}
53
55
double
interpolateXQ2
(
int
id
,
double
x,
double
q2)
const
;
56
57
void
interpolateXQ2
(
double
x,
double
q2, std::vector<double>& ret)
const
;
58
60
62
66
std::string
type
()
const
{
67
return
_type;
68
}
69
71
void
setType
(std::string t) {
72
_type = t;
73
}
74
75
76
protected
:
77
84
virtual
double
_interpolateXQ2
(
const
KnotArray
& grid,
double
x,
size_t
ix,
double
q2,
size_t
iq2,
int
id
)
const
= 0;
85
86
virtual
void
_interpolateXQ2
(
const
KnotArray
& grid,
double
x,
size_t
ix,
double
q2,
size_t
iq2, std::vector<double>& ret)
const
= 0;
87
88
89
private
:
90
const
GridPDF
* _pdf;
91
std::string _type;
92
};
93
94
95
}
96
97
#endif
LHAPDF::GridPDF
A PDF defined via an interpolation grid.
Definition
GridPDF.h:19
LHAPDF::Interpolator
The general interface for interpolating between grid points.
Definition
Interpolator.h:21
LHAPDF::Interpolator::interpolateXQ2
double interpolateXQ2(int id, double x, double q2) const
Interpolate a single-point in (x,Q2)
LHAPDF::Interpolator::_interpolateXQ2
virtual double _interpolateXQ2(const KnotArray &grid, double x, size_t ix, double q2, size_t iq2, int id) const =0
Interpolate a single-point in (x,Q2), given x/Q2 values and subgrid indices.
LHAPDF::Interpolator::setType
void setType(std::string t)
Set the interpolation type.
Definition
Interpolator.h:71
LHAPDF::Interpolator::type
std::string type() const
Definition
Interpolator.h:66
LHAPDF::Interpolator::unbind
void unbind()
Unbind from GridPDF.
Definition
Interpolator.h:35
LHAPDF::Interpolator::hasPDF
bool hasPDF()
Identify whether this Interpolator has an associated PDF.
Definition
Interpolator.h:38
LHAPDF::Interpolator::bind
void bind(const GridPDF *pdf)
Bind to a GridPDF.
Definition
Interpolator.h:32
LHAPDF::Interpolator::~Interpolator
virtual ~Interpolator()
Destructor to allow inheritance.
Definition
Interpolator.h:25
LHAPDF::Interpolator::interpolateXQ
double interpolateXQ(int id, double x, double q) const
Interpolate a single-point in (x,Q)
Definition
Interpolator.h:50
LHAPDF::Interpolator::pdf
const GridPDF & pdf() const
Get the associated GridPDF.
Definition
Interpolator.h:41
LHAPDF::KnotArray
Internal storage class for PDF data point grids.
Definition
KnotArray.h:46
LHAPDF
Namespace for all LHAPDF functions and classes.
Definition
AlphaS.h:14
Generated on Thu Sep 26 2024 15:19:26 for LHAPDF by
1.12.0