File indexing completed on 2026-06-02 08:51:43
0001 #ifndef DDVCS_CFF_STANDARD_H
0002 #define DDVCS_CFF_STANDARD_H
0003
0004 #include <complex>
0005 #include <string>
0006 #include <vector>
0007
0008 #include "DDVCSConvolCoeffFunctionModule.h"
0009
0010 namespace PARTONS {
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 class DDVCSCFFStandard: public DDVCSConvolCoeffFunctionModule {
0021
0022 public:
0023
0024 static const unsigned int classId;
0025
0026
0027
0028
0029 DDVCSCFFStandard(const std::string &className);
0030
0031 virtual DDVCSCFFStandard* clone() const;
0032
0033
0034
0035
0036 virtual ~DDVCSCFFStandard();
0037
0038 virtual void resolveObjectDependencies();
0039
0040 protected:
0041
0042
0043
0044
0045 DDVCSCFFStandard(const DDVCSCFFStandard &other);
0046
0047 virtual void initModule();
0048 virtual void isModuleWellConfigured();
0049
0050 virtual std::complex<double> computeUnpolarized();
0051 virtual std::complex<double> computePolarized();
0052
0053 private:
0054
0055
0056
0057
0058 double convolutionUnpolarized(double x, std::vector<double> params);
0059
0060
0061
0062
0063 double convolution(double x, std::vector<double> params);
0064 double convolutionNoSubtraction(double x, std::vector<double> params);
0065
0066 NumA::FunctionType1D* m_pConvolution;
0067 NumA::FunctionType1D* m_pConvolutionNoSubtraction;
0068
0069
0070
0071
0072 double computeSquareChargeAveragedGPD(
0073 const PartonDistribution &partonDistribution) const;
0074
0075
0076
0077
0078 void initFunctorsForIntegrations();
0079
0080 double m_partonDistributionRhoXiSummed;
0081 };
0082
0083 }
0084
0085 #endif