GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LHAPDF6.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::LHAPDF6
5 
6 \brief LHAPDF6 library interface.
7  Concrete implementation of the PDFModelI interface.
8 
9 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
10  University of Liverpool
11 
12 \created March 20, 2018
13 
14 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
15  For the full text of the license visit http://copyright.genie-mc.org
16 */
17 //____________________________________________________________________________
18 
19 #ifndef _GENIE_LHAPDF6_INTERFACE_H_
20 #define _GENIE_LHAPDF6_INTERFACE_H_
21 
22 #include "Framework/Conventions/GBuild.h"
24 #include <string>
25 using std::string;
26 
27 namespace LHAPDF
28 {
29  class PDF;
30 }
31 
32 namespace genie {
33 
34 class LHAPDF6 : public PDFModelI {
35 
36 public:
37 
38  LHAPDF6();
39  LHAPDF6(string config);
40  virtual ~LHAPDF6();
41 
42  // Implement the PDFModelI interface
43 
44  double UpValence (double x, double Q2) const;
45  double DownValence (double x, double Q2) const;
46  double UpSea (double x, double Q2) const;
47  double DownSea (double x, double Q2) const;
48  double Strange (double x, double Q2) const;
49  double Charm (double x, double Q2) const;
50  double Bottom (double x, double Q2) const;
51  double Top (double x, double Q2) const;
52  double Gluon (double x, double Q2) const;
53  PDF_t AllPDFs (double x, double Q2) const;
54 
55  // Override the default "Configure" implementation
56  // of the Algorithm interface
57 
58  void Configure (const Registry & config);
59  void Configure (string config);
60 
61 private:
62 
63  void LoadConfig (void);
64 
65  string fSetName;
66  int fMemberID;
67 
68 #ifdef __GENIE_LHAPDF6_ENABLED__
69  LHAPDF::PDF * fLHAPDF;
70 #endif
71 
72 };
73 
74 } // genie namespace
75 #endif // _GENIE_LHAPDF6_INTERFACE_H_
void LoadConfig(void)
Definition: LHAPDF6.cxx:140
void Configure(const Registry &config)
Definition: LHAPDF6.cxx:126
double Bottom(double x, double Q2) const
Definition: LHAPDF6.cxx:86
double Q2(const Interaction *const i)
Definition: KineUtils.cxx:1077
double Strange(double x, double Q2) const
Definition: LHAPDF6.cxx:76
double Charm(double x, double Q2) const
Definition: LHAPDF6.cxx:81
double Top(double x, double Q2) const
Definition: LHAPDF6.cxx:91
double UpSea(double x, double Q2) const
Definition: LHAPDF6.cxx:66
Pure abstract base class. Defines the PDFModelI interface to be implemented by wrapper classes to exi...
Definition: PDFModelI.h:28
PDF_t AllPDFs(double x, double Q2) const
Definition: LHAPDF6.cxx:119
string fSetName
Definition: LHAPDF6.h:65
double UpValence(double x, double Q2) const
Definition: LHAPDF6.cxx:56
LHAPDF6 library interface. Concrete implementation of the PDFModelI interface.
Definition: LHAPDF6.h:34
A struct to hold PDF set data.
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
double DownSea(double x, double Q2) const
Definition: LHAPDF6.cxx:71
virtual ~LHAPDF6()
Definition: LHAPDF6.cxx:49
int fMemberID
Definition: LHAPDF6.h:66
double DownValence(double x, double Q2) const
Definition: LHAPDF6.cxx:61
double Gluon(double x, double Q2) const
Definition: LHAPDF6.cxx:96