File indexing completed on 2026-06-02 08:51:45
0001 #ifndef GPD_GK16_H
0002 #define GPD_GK16_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <ElementaryUtils/parameters/Parameters.h>
0013 #include <string>
0014 #include <vector>
0015
0016 #include "GPDModule.h"
0017
0018
0019
0020
0021
0022 namespace PARTONS {
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 class GPDGK16: public GPDModule {
0048 public:
0049
0050 static const unsigned int classId;
0051
0052
0053
0054
0055
0056
0057
0058 GPDGK16(const std::string &className);
0059
0060
0061
0062
0063 virtual ~GPDGK16();
0064
0065 virtual GPDGK16* clone() const;
0066
0067 virtual void configure(const ElemUtils::Parameters ¶meters);
0068
0069 virtual std::string toString() const;
0070
0071
0072
0073 double getB0() const;
0074 double getC1() const;
0075 double getC2() const;
0076 double getC3() const;
0077 double getC4() const;
0078 double getC5() const;
0079 double getC6() const;
0080 double getC7() const;
0081 double getC8() const;
0082 const std::vector<double>& getEdval1mtab() const;
0083 const std::vector<double>& getEdval1tab() const;
0084 const std::vector<double>& getEi1tab() const;
0085 const std::vector<double>& getEs1tab() const;
0086 const std::vector<double>& getEtdval1mtab() const;
0087 const std::vector<double>& getEtdval1tab() const;
0088 const std::vector<double>& getEtuval1mtab() const;
0089 const std::vector<double>& getEtuval1tab() const;
0090 const std::vector<double>& getEuval1mtab() const;
0091 const std::vector<double>& getEuval1tab() const;
0092 double getEdValMx() const;
0093 double getEtdValMx() const;
0094 double getEtuValMx() const;
0095 double getEuValMx() const;
0096 double getHdValMx() const;
0097 double getHtdValMx() const;
0098 double getHtuValMx() const;
0099 double getHuValMx() const;
0100 double getL() const;
0101 const std::vector<double>& getHdval1mtab() const;
0102 const std::vector<double>& getHdval1tab() const;
0103 const std::vector<double>& getHi1tab() const;
0104 const std::vector<double>& getHs1tab() const;
0105 const std::vector<double>& getHtdval1mtab() const;
0106 const std::vector<double>& getHtdval1tab() const;
0107 const std::vector<double>& getHti1tab() const;
0108 const std::vector<double>& getHtuval1mtab() const;
0109 const std::vector<double>& getHtuval1tab() const;
0110 const std::vector<double>& getHuval1mtab() const;
0111 const std::vector<double>& getHuval1tab() const;
0112 double getKappaS() const;
0113 double getEdval() const;
0114 double getEgluon() const;
0115 double getEsea() const;
0116 double getEtdval() const;
0117 double getEtgluon() const;
0118 double getEtsea() const;
0119 double getEtuval() const;
0120 double getEuval() const;
0121 double getHdval() const;
0122 double getHgluon() const;
0123 double getHsea() const;
0124 double getHtdval() const;
0125 double getHtgluon() const;
0126 double getHtsea() const;
0127 double getHtuval() const;
0128 double getHuval() const;
0129
0130 protected:
0131
0132
0133
0134
0135
0136
0137
0138 GPDGK16(const GPDGK16& other);
0139
0140 virtual void isModuleWellConfigured();
0141 virtual void initModule();
0142
0143
0144
0145 virtual PartonDistribution computeH();
0146 virtual PartonDistribution computeE();
0147 virtual PartonDistribution computeHt();
0148 virtual PartonDistribution computeEt();
0149
0150
0151
0152
0153
0154 void calculateHCoefs();
0155 void calculateECoefs();
0156 void calculateHtCoefs();
0157 void calculateEtCoefs();
0158
0159 double c1, c2, c3, c4, c5, c6, c7, c8;
0160 double b0;
0161 double fL;
0162
0163 std::vector<double> Hi1tab;
0164
0165 private:
0166
0167 double kappa_s;
0168
0169 double fHuValMx;
0170 double fHdValMx;
0171 double fEuValMx;
0172 double fEdValMx;
0173 double fHtuValMx;
0174 double fHtdValMx;
0175 double fEtuValMx;
0176 double fEtdValMx;
0177
0178 double kHgluon;
0179 double kHsea;
0180 double kHuval;
0181 double kHdval;
0182
0183 double kEgluon;
0184 double kEsea;
0185 double kEuval;
0186 double kEdval;
0187
0188 double kHtgluon;
0189 double kHtsea;
0190 double kHtuval;
0191 double kHtdval;
0192
0193 double kEtgluon;
0194 double kEtsea;
0195 double kEtuval;
0196 double kEtdval;
0197
0198 std::vector<double> Huval1tab;
0199 std::vector<double> Hdval1tab;
0200 std::vector<double> Huval1mtab;
0201 std::vector<double> Hdval1mtab;
0202 std::vector<double> Hs1tab;
0203
0204 std::vector<double> Euval1tab;
0205 std::vector<double> Edval1tab;
0206 std::vector<double> Euval1mtab;
0207 std::vector<double> Edval1mtab;
0208 std::vector<double> Es1tab;
0209 std::vector<double> Ei1tab;
0210
0211 std::vector<double> Htuval1tab;
0212 std::vector<double> Htdval1tab;
0213 std::vector<double> Htuval1mtab;
0214 std::vector<double> Htdval1mtab;
0215 std::vector<double> Hti1tab;
0216
0217 std::vector<double> Etuval1tab;
0218 std::vector<double> Etdval1tab;
0219 std::vector<double> Etuval1mtab;
0220 std::vector<double> Etdval1mtab;
0221
0222 void calculateHKas();
0223 void calculateEKas();
0224 void calculateHtKas();
0225 void calculateEtKas();
0226
0227 double Et_pole(double x);
0228
0229 double Hi1(double x, double i, double k);
0230 double Hs1(double x, double i, double k);
0231 double Hval1(double x, double i, double k);
0232 double Ei1(double x, double i, double k);
0233 double Es1(double x, double i, double k);
0234 double Eval1(double x, double i, double k);
0235 double Hti1(double x, double i, double k);
0236 double Htval1(double x, double i, double k);
0237 double Etval1(double x, double i, double k);
0238
0239 double Hi1_alt(double x, double i, double k);
0240 double Hs1_alt(double x, double i, double k);
0241 double Hval1_alt(double x, double i, double k);
0242 double Ei1_alt(double x, double i, double k);
0243 double Es1_alt(double x, double i, double k);
0244 double Eval1_alt(double x, double i, double k);
0245 double Hti1_alt(double x, double i, double k);
0246 double Htval1_alt(double x, double i, double k);
0247 double Etval1_alt(double x, double i, double k);
0248
0249 };
0250
0251 }
0252
0253 #endif