lhapdf
is hosted by
Hepforge
,
IPPP Durham
LHAPDF
6.5.4
Loading...
Searching...
No Matches
include
LHAPDF
Reweighting.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_Reweighting_H
8
#define LHAPDF_Reweighting_H
9
10
#include "LHAPDF/PDF.h"
11
#include "LHAPDF/PDFSet.h"
12
13
namespace
LHAPDF
{
14
15
18
19
namespace
{
20
inline
bool
_checkAlphasQ2(
double
Q2,
const
PDF& pdfa,
const
PDF& pdfb,
double
aschk) {
21
if
(aschk < 0)
return
true
;
22
const
double
as_a = pdfa.alphasQ2(Q2);
23
const
double
as_b = pdfb.alphasQ2(Q2);
24
if
(2 * std::abs(as_a - as_b) / (std::abs(as_a) + std::abs(as_b)) < aschk)
return
true
;
25
std::cerr <<
"WARNING: alpha_s(Q2) mismatch in PDF reweighting "
26
<<
"at Q2 = "
<< Q2 <<
" GeV2:\n "
27
<< as_a <<
" for "
<< pdfa.set().name() <<
"/"
<< pdfa.memberID() <<
" vs. "
28
<< as_b <<
" for "
<< pdfb.set().name() <<
"/"
<< pdfb.memberID()
29
<< std::endl;
30
return
false
;
31
}
32
}
33
34
37
41
inline
double
weightxQ2
(
int
id
,
double
x,
double
Q2,
const
PDF
& basepdf,
const
PDF
& newpdf,
double
aschk=5e-2) {
42
if
(aschk >= 0) _checkAlphasQ2(Q2, basepdf, newpdf, aschk);
43
const
double
xf_base = basepdf.
xfxQ2
(
id
, x, Q2);
44
const
double
xf_new = newpdf.
xfxQ2
(
id
, x, Q2);
45
return
xf_new / xf_base;
46
}
47
51
template
<
typename
PDFPTR>
52
inline
double
weightxQ2
(
int
id
,
double
x,
double
Q2,
const
PDFPTR basepdf,
const
PDFPTR newpdf,
double
aschk=5e-2) {
53
return
weightxQ2
(
id
, x, Q2, *basepdf, *newpdf, aschk);
54
}
55
59
inline
double
weightxQ
(
int
id
,
double
x,
double
Q,
const
PDF
& basepdf,
const
PDF
& newpdf,
double
aschk=5e-2) {
60
return
weightxQ2
(
id
, x,
sqr
(Q), basepdf, newpdf, aschk);
61
}
62
66
template
<
typename
PDFPTR>
67
inline
double
weightxQ
(
int
id
,
double
x,
double
Q,
const
PDFPTR basepdf,
const
PDFPTR newpdf,
double
aschk=5e-2) {
68
return
weightxQ
(
id
, x, Q, *basepdf, *newpdf, aschk);
69
}
70
72
73
76
80
inline
double
weightxxQ2
(
int
id1,
int
id2,
double
x1,
double
x2,
double
Q2,
const
PDF
& basepdf,
const
PDF
& newpdf,
double
aschk=5e-2) {
81
if
(aschk >= 0) _checkAlphasQ2(Q2, basepdf, newpdf, aschk);
82
const
double
w1 =
weightxQ2
(id1, x1, Q2, basepdf, newpdf, -1);
83
const
double
w2 =
weightxQ2
(id2, x2, Q2, basepdf, newpdf, -1);
84
return
w1 * w2;
85
}
86
90
template
<
typename
PDFPTR>
91
inline
double
weightxxQ2
(
int
id1,
int
id2,
double
x1,
double
x2,
double
Q2,
const
PDFPTR basepdf,
const
PDFPTR newpdf,
double
aschk=5e-2) {
92
return
weightxxQ2
(id1, id2, x1, x2, Q2, *basepdf, *newpdf, aschk);
93
}
94
98
inline
double
weightxxQ
(
int
id1,
int
id2,
double
x1,
double
x2,
double
Q,
const
PDF
& basepdf,
const
PDF
& newpdf,
double
aschk=5e-2) {
99
return
weightxxQ2
(id1, id2, x1, x2,
sqr
(Q), basepdf, newpdf, aschk);
100
}
101
105
template
<
typename
PDFPTR>
106
inline
double
weightxxQ
(
int
id1,
int
id2,
double
x1,
double
x2,
double
Q,
const
PDFPTR basepdf,
const
PDFPTR newpdf,
double
aschk=5e-2) {
107
return
weightxxQ
(id1, id2, x1, x2, Q, *basepdf, *newpdf, aschk);
108
}
109
111
113
114
}
115
#endif
LHAPDF::PDF
PDF is the general interface for access to parton density information.
Definition
PDF.h:40
LHAPDF::PDF::xfxQ2
double xfxQ2(int id, double x, double q2) const
Get the PDF xf(x) value at (x,q2) for the given PID.
LHAPDF::weightxxQ2
double weightxxQ2(int id1, int id2, double x1, double x2, double Q2, const PDF &basepdf, const PDF &newpdf, double aschk=5e-2)
Definition
Reweighting.h:80
LHAPDF::weightxxQ
double weightxxQ(int id1, int id2, double x1, double x2, double Q, const PDF &basepdf, const PDF &newpdf, double aschk=5e-2)
Definition
Reweighting.h:98
LHAPDF::weightxQ2
double weightxQ2(int id, double x, double Q2, const PDF &basepdf, const PDF &newpdf, double aschk=5e-2)
Definition
Reweighting.h:41
LHAPDF::weightxQ
double weightxQ(int id, double x, double Q, const PDF &basepdf, const PDF &newpdf, double aschk=5e-2)
Definition
Reweighting.h:59
LHAPDF::sqr
N sqr(const N &x)
Convenience function for squaring (of any type)
Definition
Utils.h:208
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