GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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-2024, 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 namespace genie {
36 
37 class GRV98LO: public PDFModelI {
38 
39 public:
40  GRV98LO();
41  GRV98LO(string config);
42  ~GRV98LO();
43 
44  // implement the PDFModelI interface
45 
46  double UpValence (double x, double Q2) const;
47  double DownValence (double x, double Q2) const;
48  double UpSea (double x, double Q2) const;
49  double DownSea (double x, double Q2) const;
50  double Strange (double x, double Q2) const;
51  double Charm (double x, double Q2) const;
52  double Bottom (double x, double Q2) const;
53  double Top (double x, double Q2) const;
54  double Gluon (double x, double Q2) const;
55  PDF_t AllPDFs (double x, double Q2) const;
56 
57  // override the default "Configure" implementation
58  // of the Algorithm interface
59 
60  void Configure (const Registry & config);
61  void Configure (string config);
62 
63 private:
64 
65  void Initialize (void);
66 
68 
69  // >> Information about the PDF grid
70 
71  static const int kNQ2 = 27;
72  static const int kNXbj = 68;
73  static const int kNParton = 6;
74 
75  // >> Information read from the PDF grid file
76  //
77  // grid points
78  //
79  double fGridQ2 [kNQ2]; // Q^2 (GeV^2) values in grid; between 0.8 and 1E6
80  double fGridLogQ2 [kNQ2]; // log(Q^2/GeV^2) values in grid
81  double fGridXbj [kNXbj]; // Bjorken-x values in grid; between 1E-9 and 1
82  double fGridLogXbj[kNXbj]; // log(Bjorken-x) values in grid
83  double fParton [kNParton][kNQ2][kNXbj-1]; // PARTON (NPART,NQ,NX-1) array in original code
84  //
85  // arrays for the interpolation routine
86  //
87  Interpolator2D * fXUVF; // = f(logx,logQ2)
93 };
94 
95 } // genie namespace
96 #endif // _GRV98LO_H_
double Top(double x, double Q2) const
Definition: GRV98LO.cxx:96
double Charm(double x, double Q2) const
Definition: GRV98LO.cxx:86
double fGridLogQ2[kNQ2]
Definition: GRV98LO.h:80
PDF_t AllPDFs(double x, double Q2) const
Definition: GRV98LO.cxx:106
Interpolator2D * fXDVF
Definition: GRV98LO.h:88
double Bottom(double x, double Q2) const
Definition: GRV98LO.cxx:91
double Q2(const Interaction *const i)
Definition: KineUtils.cxx:1077
void Initialize(void)
Definition: GRV98LO.cxx:179
double DownSea(double x, double Q2) const
Definition: GRV98LO.cxx:76
double fGridLogXbj[kNXbj]
Definition: GRV98LO.h:82
Interpolator2D * fXUVF
Definition: GRV98LO.h:87
Pure abstract base class. Defines the PDFModelI interface to be implemented by wrapper classes to exi...
Definition: PDFModelI.h:28
void Configure(const Registry &config)
Definition: GRV98LO.cxx:167
double fGridQ2[kNQ2]
Definition: GRV98LO.h:79
Interpolator2D * fXGF
Definition: GRV98LO.h:92
double DownValence(double x, double Q2) const
Definition: GRV98LO.cxx:66
static const int kNXbj
Definition: GRV98LO.h:72
Interpolator2D * fXDEF
Definition: GRV98LO.h:89
Interpolator2D * fXUDF
Definition: GRV98LO.h:90
double Strange(double x, double Q2) const
Definition: GRV98LO.cxx:81
double fGridXbj[kNXbj]
Definition: GRV98LO.h:81
bool fInitialized
Definition: GRV98LO.h:67
double UpValence(double x, double Q2) const
Definition: GRV98LO.cxx:61
A struct to hold PDF set data.
Interpolator2D * fXSF
Definition: GRV98LO.h:91
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
A 2D interpolator using the GSL spline type If GSL version is not sufficient, does an inefficient ver...
double fParton[kNParton][kNQ2][kNXbj-1]
Definition: GRV98LO.h:83
double UpSea(double x, double Q2) const
Definition: GRV98LO.cxx:71
static const int kNParton
Definition: GRV98LO.h:73
static const int kNQ2
Definition: GRV98LO.h:71
double Gluon(double x, double Q2) const
Definition: GRV98LO.cxx:101