GENIEGenerator
Loading...
Searching...
No Matches
PDF.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::PDF
5
6\brief A class to store PDFs.
7
8 This class is using the \b Strategy Pattern. \n
9 It can accept requests to calculate itself, for a given (x,q^2) pair,
10 that it then delegates to the algorithmic object, implementing the
11 PDFModelI interface, that it finds attached to itself.
12
13\author Costas Andreopoulos <c.andreopoulos \at cern.ch>
14 University of Liverpool
15
16\created May 04, 2004
17
18\cpright Copyright (c) 2003-2025, The GENIE Collaboration
19 For the full text of the license visit http://copyright.genie-mc.org
20*/
21//____________________________________________________________________________
22
23#ifndef _PDF_H_
24#define _PDF_H_
25
26#include <iostream>
27
29
30using std::ostream;
31
32namespace genie {
33
34class PDF;
35ostream & operator << (ostream & stream, const PDF & pdf_set);
36
37class PDF {
38
39public:
40
41 PDF();
42 PDF(const PDF & pdf_set);
43 virtual ~PDF();
44
45 //-- methods to set a PDFModelI and compute PDFs
46 void SetModel (const PDFModelI * model);
47 void Calculate (double x, double q2);
48
49 //-- methods to access the computed PDFs
50 double UpValence (void) const { return fUpValence; }
51 double DownValence (void) const { return fDownValence; }
52 double UpSea (void) const { return fUpSea; }
53 double DownSea (void) const { return fDownSea; }
54 double Strange (void) const { return fStrange; }
55 double Charm (void) const { return fCharm; }
56 double Bottom (void) const { return fBottom; }
57 double Top (void) const { return fTop; }
58 double Gluon (void) const { return fGluon; }
59
60 //-- methods to scale sea and valence PDFs (eg used to apply
61 // corrections from non-QCD based fits / etc see Bodek Yang model)
62 void ScaleValence (double kscale);
63 void ScaleSea (double kscale);
64 void ScaleUpValence (double kscale);
65 void ScaleDownValence (double kscale);
66 void ScaleUpSea (double kscale);
67 void ScaleDownSea (double kscale);
68 void ScaleStrange (double kscale);
69 void ScaleCharm (double kscale);
70
71 //-- reseting/copying methods
72 void Reset (void);
73 void Copy (const PDF & pdf_set);
74
75 //-- printing methods & operators
76 void Print(ostream & stream) const;
77 friend ostream & operator << (ostream & stream, const PDF & pdf_set);
78
79protected:
80
81 void Init(void);
82
83 double fUpValence;
85 double fUpSea;
86 double fDownSea;
87 double fStrange;
88 double fCharm;
89 double fBottom;
90 double fTop;
91 double fGluon;
92
94};
95
96} // genie namespace
97
98#endif // _PDF_H_
Pure abstract base class. Defines the PDFModelI interface to be implemented by wrapper classes to exi...
Definition PDFModelI.h:28
A class to store PDFs.
Definition PDF.h:37
double UpSea(void) const
Definition PDF.h:52
void SetModel(const PDFModelI *model)
Definition PDF.cxx:42
void ScaleSea(double kscale)
Definition PDF.cxx:70
virtual ~PDF()
Definition PDF.cxx:37
double Charm(void) const
Definition PDF.h:55
void ScaleDownValence(double kscale)
Definition PDF.cxx:86
void Print(ostream &stream) const
Definition PDF.cxx:154
void Reset(void)
Definition PDF.cxx:111
double fUpSea
Definition PDF.h:85
double fGluon
Definition PDF.h:91
const PDFModelI * fModel
Definition PDF.h:93
void Init(void)
Definition PDF.cxx:139
void ScaleUpValence(double kscale)
Definition PDF.cxx:81
void ScaleValence(double kscale)
Definition PDF.cxx:64
double fDownSea
Definition PDF.h:86
double Gluon(void) const
Definition PDF.h:58
double DownSea(void) const
Definition PDF.h:53
double Top(void) const
Definition PDF.h:57
void Calculate(double x, double q2)
Definition PDF.cxx:49
void ScaleUpSea(double kscale)
Definition PDF.cxx:91
void ScaleStrange(double kscale)
Definition PDF.cxx:101
friend ostream & operator<<(ostream &stream, const PDF &pdf_set)
Definition PDF.cxx:20
double fStrange
Definition PDF.h:87
void ScaleCharm(double kscale)
Definition PDF.cxx:106
double Bottom(void) const
Definition PDF.h:56
double fUpValence
Definition PDF.h:83
double fCharm
Definition PDF.h:88
double UpValence(void) const
Definition PDF.h:50
double fBottom
Definition PDF.h:89
double fDownValence
Definition PDF.h:84
void Copy(const PDF &pdf_set)
Definition PDF.cxx:124
void ScaleDownSea(double kscale)
Definition PDF.cxx:96
double DownValence(void) const
Definition PDF.h:51
double fTop
Definition PDF.h:90
double Strange(void) const
Definition PDF.h:54
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)