14 #include "Framework/Conventions/GBuild.h"
18 using namespace genie;
85 #ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
87 <<
"Inputs: x = " << x <<
", |q2| = " << TMath::Abs(q2);
93 double uv = uncorrected_pdfs.uval;
94 double us = uncorrected_pdfs.usea;
95 double dv = uncorrected_pdfs.dval;
96 double ds = uncorrected_pdfs.dsea;
99 double delta = this->
DeltaDU(x);
100 #ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
101 LOG(
"BodekYang",
pDEBUG) <<
"delta(d/u) = " << delta;
107 double rv = (val==0) ? 0. : uv/val;
108 double rs = (sea==0) ? 0. : us/sea;
110 #ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
112 <<
"valence[u/(u+d)] = " << rv <<
", sea[u/(u+d)] = " << rs;
116 double uv_c = uv / ( 1 + delta*rv);
117 double dv_c = (dv + uv*delta) / ( 1 + delta*rv);
118 double us_c = us / ( 1 + delta*rs);
119 double ds_c = (ds + us*delta) / ( 1 + delta*rs);
121 #ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
122 LOG(
"BodekYang",
pDEBUG) <<
"Bodek-Yang PDF correction:";
123 LOG(
"BodekYang",
pDEBUG) <<
"uv: " << uv <<
" --> " << uv_c;
124 LOG(
"BodekYang",
pDEBUG) <<
"dv: " << dv <<
" --> " << dv_c;
125 LOG(
"BodekYang",
pDEBUG) <<
"us: " << us <<
" --> " << us_c;
126 LOG(
"BodekYang",
pDEBUG) <<
"ds: " << ds <<
" --> " << ds_c;
130 PDF_t corrected_pdfs;
132 corrected_pdfs.uval = uv_c;
133 corrected_pdfs.dval = dv_c;
134 corrected_pdfs.usea = us_c;
135 corrected_pdfs.dsea = ds_c;
136 corrected_pdfs.str = uncorrected_pdfs.str;
137 corrected_pdfs.chm = uncorrected_pdfs.chm;
138 corrected_pdfs.bot = uncorrected_pdfs.bot;
139 corrected_pdfs.top = uncorrected_pdfs.top;
140 corrected_pdfs.gl = uncorrected_pdfs.gl;
142 return corrected_pdfs;
149 double d =
fX0 +
fX1 * x +
fX2 * TMath::Power(x,2);
static constexpr double us
double Bottom(double x, double q2) const
double DownValence(double x, double q2) const
void Configure(const Registry &config)
double fX1
correction param X1
double DownSea(double x, double q2) const
virtual PDF_t AllPDFs(double x, double Q2) const =0
double fX0
correction param X0
Pure abstract base class. Defines the PDFModelI interface to be implemented by wrapper classes to exi...
double Charm(double x, double q2) const
double fQ2min
min. Q2 for PDF evaluation
PDF_t AllPDFs(double x, double q2) const
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
double Top(double x, double q2) const
virtual void Configure(const Registry &config)
double DeltaDU(double x) const
A struct to hold PDF set data.
A registry. Provides the container for algorithm configuration parameters.
double Gluon(double x, double q2) const
double fX2
correction param X2
const PDFModelI * fBasePDFModel
configuration parameters
double UpValence(double x, double q2) const
PDFModelI interface implementation.
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
double UpSea(double x, double q2) const
double Strange(double x, double q2) const
const Algorithm * SubAlg(const RgKey ®istry_key) const