GENIEGenerator
Loading...
Searching...
No Matches
GRV98LO.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::GRV89LO
5
6\brief GRV98LO parton density functions (pdf).
7 Concrete implementation of the PDFModelI interface.
8
9\ref This is a straighforward adaptation of the fortran code in
10 http://hepdata.cedar.ac.uk//hepdata/pdflib/grv/grv98/grv98.f
11
12 The original code contains NLO (MSbar and DIS schemes) and LO pdf
13 implementations. Only the LO pdfs are implemented here.
14
15 Reference listed in original code:
16 M. Glueck, E. Reya, A. Vogt,
17 Eur. Phys. J. C5 (1998) 461-470; hep-ph/9806404
18
19\author Costas Andreopoulos <c.andreopoulos \at cern.ch>
20 University of Liverpool
21
22\created Ocrober 29, 2014
23
24\cpright Copyright (c) 2003-2025, The GENIE Collaboration
25 For the full text of the license visit http://copyright.genie-mc.org
26*/
27//____________________________________________________________________________
28
29#ifndef _GRV98LO_H_
30#define _GRV98LO_H_
31
34
35#include <memory>
36
37namespace genie {
38
39class GRV98LO: public PDFModelI {
40
41public:
42 GRV98LO();
43 GRV98LO(string config);
44 ~GRV98LO();
45
46 // implement the PDFModelI interface
47
48 double UpValence (double x, double Q2) const;
49 double DownValence (double x, double Q2) const;
50 double UpSea (double x, double Q2) const;
51 double DownSea (double x, double Q2) const;
52 double Strange (double x, double Q2) const;
53 double Charm (double x, double Q2) const;
54 double Bottom (double x, double Q2) const;
55 double Top (double x, double Q2) const;
56 double Gluon (double x, double Q2) const;
57 PDF_t AllPDFs (double x, double Q2) const;
58
59 // override the default "Configure" implementation
60 // of the Algorithm interface
61
62 void Configure (const Registry & config);
63 void Configure (string config);
64
65private:
66
67 void Initialize (void);
68
70
71 // >> Information about the PDF grid
72
73 static const int kNQ2 = 27;
74 static const int kNXbj = 68;
75 static const int kNParton = 6;
76
77 // >> Information read from the PDF grid file
78 //
79 // grid points
80 //
81 double fGridQ2 [kNQ2]; // Q^2 (GeV^2) values in grid; between 0.8 and 1E6
82 double fGridLogQ2 [kNQ2]; // log(Q^2/GeV^2) values in grid
83 double fGridXbj [kNXbj]; // Bjorken-x values in grid; between 1E-9 and 1
84 double fGridLogXbj[kNXbj]; // log(Bjorken-x) values in grid
85 double fParton [kNParton][kNQ2][kNXbj-1]; // PARTON (NPART,NQ,NX-1) array in original code
86 //
87 // arrays for the interpolation routine
88 //
89 std::unique_ptr<Interpolator2D> fXUVF; // = f(logx,logQ2)
90 std::unique_ptr<Interpolator2D> fXDVF;
91 std::unique_ptr<Interpolator2D> fXDEF;
92 std::unique_ptr<Interpolator2D> fXUDF;
93 std::unique_ptr<Interpolator2D> fXSF;
94 std::unique_ptr<Interpolator2D> fXGF;
95};
96
97} // genie namespace
98#endif // _GRV98LO_H_
std::unique_ptr< Interpolator2D > fXUDF
Definition GRV98LO.h:92
void Initialize(void)
Definition GRV98LO.cxx:160
double Charm(double x, double Q2) const
Definition GRV98LO.cxx:67
double Strange(double x, double Q2) const
Definition GRV98LO.cxx:62
double UpSea(double x, double Q2) const
Definition GRV98LO.cxx:52
PDF_t AllPDFs(double x, double Q2) const
Definition GRV98LO.cxx:87
double fParton[kNParton][kNQ2][kNXbj-1]
Definition GRV98LO.h:85
std::unique_ptr< Interpolator2D > fXDVF
Definition GRV98LO.h:90
double DownSea(double x, double Q2) const
Definition GRV98LO.cxx:57
std::unique_ptr< Interpolator2D > fXDEF
Definition GRV98LO.h:91
bool fInitialized
Definition GRV98LO.h:69
static const int kNParton
Definition GRV98LO.h:75
double fGridXbj[kNXbj]
Definition GRV98LO.h:83
std::unique_ptr< Interpolator2D > fXSF
Definition GRV98LO.h:93
std::unique_ptr< Interpolator2D > fXGF
Definition GRV98LO.h:94
double Gluon(double x, double Q2) const
Definition GRV98LO.cxx:82
static const int kNXbj
Definition GRV98LO.h:74
double Bottom(double x, double Q2) const
Definition GRV98LO.cxx:72
double fGridLogXbj[kNXbj]
Definition GRV98LO.h:84
double fGridLogQ2[kNQ2]
Definition GRV98LO.h:82
double DownValence(double x, double Q2) const
Definition GRV98LO.cxx:47
double fGridQ2[kNQ2]
Definition GRV98LO.h:81
std::unique_ptr< Interpolator2D > fXUVF
Definition GRV98LO.h:89
double UpValence(double x, double Q2) const
Definition GRV98LO.cxx:42
static const int kNQ2
Definition GRV98LO.h:73
double Top(double x, double Q2) const
Definition GRV98LO.cxx:77
void Configure(const Registry &config)
Definition GRV98LO.cxx:148
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
struct genie::EPDF PDF_t