|
|
|||
File indexing completed on 2026-06-02 08:51:45
0001 /* 0002 * GPDVinnikov06.h 0003 * 0004 * Created on: Oct 1, 2015 0005 * Author: Pawel Sznajder (NCBJ) 0006 */ 0007 0008 #ifndef GPD_VINNIKOV06_H 0009 #define GPD_VINNIKOV06_H 0010 0011 #include <ElementaryUtils/parameters/Parameters.h> 0012 #include <string> 0013 0014 #include "GPDModule.h" 0015 0016 namespace PARTONS { 0017 0018 /** 0019 * @class GPDVinnikov06 0020 * 0021 * Module based on the original code from http://hepdata.cedar.ac.uk/pdfs 0022 * 0023 * For the reference, see arxiv:hep-ph/0604248 @cite Vinnikov:2006xw. 0024 * 0025 * Available GPD types: H, Ht. 0026 */ 0027 class GPDVinnikov06: public GPDModule { 0028 0029 public: 0030 0031 static const unsigned int classId; ///< ID assigned by BaseObjectRegistry. 0032 0033 /** 0034 * Constructor. 0035 * See BaseObject::BaseObject and ModuleObject::ModuleObject for more details. 0036 * 0037 * @param className name of child class. 0038 */ 0039 GPDVinnikov06(const std::string &className); 0040 0041 /** 0042 * Default destructor. 0043 */ 0044 virtual ~GPDVinnikov06(); 0045 virtual GPDVinnikov06* clone() const; 0046 virtual void resolveObjectDependencies(); 0047 virtual void configure(const ElemUtils::Parameters ¶meters); 0048 virtual std::string toString() const; 0049 0050 protected: 0051 0052 /** Copy constructor. 0053 @param other Object to be copied. 0054 */ 0055 GPDVinnikov06(const GPDVinnikov06& other); 0056 0057 virtual void isModuleWellConfigured(); 0058 virtual void initModule(); 0059 0060 virtual PartonDistribution computeH(); 0061 virtual PartonDistribution computeHt(); 0062 0063 private: 0064 0065 const double EPS_BETR; ///< Epsilon to avoid the evaluation for x=xi. 0066 const int SIMP_INT; ///< Number of steps used in the integration. 0067 0068 int n_par; ///< Number of model parameters. 0069 double param[6]; ///< Model parameters (double distribution profile function parameter for all partons). 0070 0071 /** Evaluation of GPD H. 0072 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s). 0073 @param x, xi, t GPD variables. 0074 @param n_par Number of input parameters. 0075 @param param Input parameters. 0076 \sa n_par, param 0077 */ 0078 double gpdh(int const i_part, double x, double const xi, double const t, 0079 int const n_par, double* const param); 0080 0081 /** Evaluation of GPD Ht 0082 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s). 0083 @param x, xi, t GPD variables. 0084 @param n_par Number of input parameters. 0085 @param param Input parameters. 0086 \sa n_par, param 0087 */ 0088 double gpdh_pol(int const i_part, double x, double const xi, double const t, 0089 int const n_par, double* const param); 0090 0091 /** %Double distribution for GPD H and x < -xi part 0092 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s) 0093 @param beta %Double distribution variable. 0094 @param x, xi, t GPD variables. 0095 @param n_par Number of input parameters. 0096 @param param Input parameters. 0097 \sa n_par, param 0098 */ 0099 double dd1(int const i_part, double const beta, double const x, 0100 double const xi, double const t, int const n_par, 0101 double* const param); 0102 0103 /** %Double distribution for GPD H and -xi < x < xi part. 0104 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s). 0105 @param beta %Double distribution variable. 0106 @param x, xi, t GPD variables. 0107 @param n_par Number of input parameters. 0108 @param param Input parameters. 0109 \sa n_par, param 0110 */ 0111 double dd2(int const i_part, double const beta, double const x, 0112 double const xi, double const t, int const n_par, 0113 double* const param); 0114 0115 /** %Double distribution for GPD H and x > xi part. 0116 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s) 0117 @param beta %Double distribution variable. 0118 @param x, xi, t GPD variables. 0119 @param n_par Number of input parameters. 0120 @param param Input parameters. 0121 \sa n_par, param 0122 */ 0123 double dd3(int const i_part, double const beta, double const x, 0124 double const xi, double const t, int const n_par, 0125 double* const param); 0126 0127 /** %Double distribution for GPD Ht and x < -xi part. 0128 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s). 0129 @param beta %Double distribution variable. 0130 @param x, xi, t GPD variables. 0131 @param n_par Number of input parameters. 0132 @param param Input parameters. 0133 \sa n_par, param 0134 */ 0135 double dd1_pol(int const i_part, double const beta, double const x, 0136 double const xi, double const t, int const n_par, 0137 double* const param); 0138 0139 /** %Double distribution for GPD Ht and x > xi part. 0140 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s). 0141 @param beta %Double distribution variable. 0142 @param x, xi, t GPD variables. 0143 @param n_par Number of input parameters. 0144 @param param Input parameters. 0145 \sa n_par, param 0146 */ 0147 double dd2_pol(int const i_part, double const beta, double const x, 0148 double const xi, double const t, int const n_par, 0149 double* const param); 0150 0151 /** %Double distribution for GPD Ht and x > xi part. 0152 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s). 0153 @param beta %Double distribution variable. 0154 @param x, xi, t GPD variables. 0155 @param n_par Number of input parameters. 0156 @param param Input parameters. 0157 \sa n_par, param 0158 */ 0159 double dd3_pol(int const i_part, double const beta, double const x, 0160 double const xi, double const t, int const n_par, 0161 double* const param); 0162 0163 /** Unpolarized PDF for quarks uVal convoluted with t-dependence. 0164 @param x, t GPD variables. 0165 */ 0166 double uval(double const x, double const t); 0167 0168 /** Unpolarized PDF for quarks dVal convoluted with t-dependence. 0169 @param x, t GPD variables. 0170 */ 0171 double dval(double const x, double const t); 0172 0173 /** Unpolarized PDF for quarks uSea convoluted with t-dependence. 0174 @param x, t GPD variables. 0175 */ 0176 double usea(double const x, double const t); 0177 0178 /** Unpolarized PDF for quarks dSea convoluted with t-dependence. 0179 @param x, t GPD variables. 0180 */ 0181 double dsea(double const x, double const t); 0182 0183 /** Unpolarized PDF for quarks s convoluted with t-dependence. 0184 @param x, t GPD variables. 0185 */ 0186 double ssea(double const x, double const t); 0187 0188 /** Unpolarized PDF for gluons convoluted with t-dependence. 0189 @param x, t GPD variables. 0190 */ 0191 double glu(double const x, double const t); 0192 0193 /** Polarized PDF for quarks uVal convoluted with t-dependence. 0194 @param x, t GPD variables. 0195 */ 0196 double uval_pol(double const x, double const t); 0197 0198 /** Polarized PDF for quarks dVal convoluted with t-dependence. 0199 @param x, t GPD variables. 0200 */ 0201 double dval_pol(double const x, double const t); 0202 0203 /** Polarized PDF for quarks uSea convoluted with t-dependence. 0204 @param x, t GPD variables. 0205 */ 0206 double usea_pol(double const x, double const t); 0207 0208 /** Polarized PDF for quarks dSea convoluted with t-dependence. 0209 @param x, t GPD variables. 0210 */ 0211 double dsea_pol(double const x, double const t); 0212 0213 /** Polarized PDF for quarks s convoluted with t-dependence. 0214 @param x, t GPD variables. 0215 */ 0216 double ssea_pol(double const x, double const t); 0217 0218 /** Polarized PDF for gluons convoluted with t-dependence. 0219 @param x, t GPD variables. 0220 */ 0221 double glu_pol(double const x, double const t); 0222 0223 /** Integration for %double distribution. 0224 @param bmin Integration limit min. 0225 @param bmax Integration limit max. 0226 @param dd %Double distribution function to be integrated. 0227 @param i_part Parton selection (0 for g, -1/+1 for uSea/uVal, -2/+2 for dSea/dVal, 3 for s). 0228 @param x, xi, t GPD variables. 0229 @param n_par Number of input parameters. 0230 @param param Input parameters. 0231 \sa n_par, param 0232 */ 0233 double dd_int_simp(double const bmin, double const bmax, 0234 double (GPDVinnikov06::*dd)(int, double, double, double, double, 0235 int, double*), int const i_part, double const x, 0236 double const xi, double const t, int const n_par, double* param); 0237 0238 /** Gamma function. 0239 @param x Argument. 0240 */ 0241 double gammf(double const x); 0242 0243 /** %Double distribution profile function. 0244 @param b Profile parameter. 0245 @param beta, alpha %Double distribution variables. 0246 */ 0247 double prof_funct(double const b, double const beta, double const alpha); 0248 0249 /** Exponentiation function. 0250 @param x, y Exponentiation parameters x^y. 0251 */ 0252 double power(double const x, double const y); 0253 }; 0254 0255 } /* namespace PARTONS */ 0256 0257 #endif /* GPD_VINNIKOV06_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|