File indexing completed on 2025-04-19 09:10:08
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #pragma once
0029
0030 #include <iostream>
0031 #include <vector>
0032 #include <string>
0033 using std::string;
0034 using std::vector;
0035
0036 class NNPDFDriver {
0037
0038 private:
0039
0040
0041 static const int fM = 4;
0042 static const int fN = 4;
0043
0044 int fNFL;
0045 int fNFlavors;
0046 int fNX;
0047 vector<int> fNQ2;
0048 int fMem;
0049 int fRep;
0050 double fAlphas;
0051 double *fXGrid;
0052 double *fLogXGrid;
0053 vector<double*> fQ2Grid;
0054 vector<double*> fLogQ2Grid;
0055 vector<double****> fPDFGrid;
0056 bool fHasPhoton;
0057 bool fSingleMem;
0058
0059 double *fXpdf;
0060
0061 double fxmin;
0062 double fxmax;
0063 double fQmin;
0064 double fQmax;
0065 double fMz;
0066 int forder;
0067
0068 double fMDown;
0069 double fMUp;
0070 double fMStrange;
0071 double fMCharm;
0072 double fMBottom;
0073 double fMTop;
0074
0075
0076 public:
0077
0078 NNPDFDriver(string const& gridfilename = "", int const& rep = -1);
0079
0080 ~NNPDFDriver();
0081
0082
0083 void initPDF(int irep);
0084
0085
0086
0087 double xfx(double const& X, double const& Q2_glob, int const& ID);
0088
0089
0090 int GetNFL() { return fNFL; }
0091 int GetNFlavors() { return fNFlavors; }
0092
0093
0094 double GetAlphaSMz() { return fAlphas; }
0095
0096
0097 double GetXMin() {return fxmin; }
0098
0099
0100 double GetXMax() {return fxmax; }
0101
0102
0103 double GetQMin() {return fQmin; }
0104
0105
0106 double GetQMax() {return fQmax; }
0107
0108
0109 double GetMz() { return fMz; }
0110
0111
0112 double GetMDown() { return fMDown;}
0113 double GetMUp() { return fMUp;}
0114 double GetMStrange() { return fMStrange;}
0115 double GetMCharm() { return fMCharm;}
0116 double GetMBottom() { return fMBottom;}
0117 double GetMTop() { return fMTop;}
0118
0119
0120 int GetOrderAlphaS() { return forder; }
0121
0122
0123 bool hasPhoton() { return fHasPhoton; }
0124
0125
0126 int GetMembers() { return fMem+1; }
0127
0128 private:
0129
0130 void readPDFSet(string const&, int const&);
0131
0132
0133 void lh_polin2(double[],double[],double[][fN],
0134 double,double,double&,double&);
0135
0136 void lh_polint(double[],double[],int,double,double&,double&);
0137 };