File indexing completed on 2026-06-02 08:51:48
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef RUNNING_ALPHA_STRONG_APFEL_H
0009 #define RUNNING_ALPHA_STRONG_APFEL_H
0010
0011 #include "RunningAlphaStrongModule.h"
0012 #include "../../beans/PerturbativeQCDOrderType.h"
0013
0014 #include <vector>
0015 #include <functional>
0016
0017 namespace PARTONS {
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 class RunningAlphaStrongApfel: public RunningAlphaStrongModule {
0032
0033 public:
0034
0035
0036
0037
0038 static const std::string PARAM_NAME_ALPHAS_REF;
0039 static const std::string PARAM_NAME_MU_REF;
0040
0041 static const std::string PARAM_NAME_THRESHOLDS;
0042
0043 static const std::string PARAM_NAME_TAB_NODES;
0044 static const std::string PARAM_NAME_TAB_LOWER_BOUND;
0045 static const std::string PARAM_NAME_TAB_UPPER_BOUND;
0046 static const std::string PARAM_NAME_TAB_INTER_DEGREE;
0047
0048
0049
0050
0051 static const unsigned int classId;
0052
0053
0054
0055
0056
0057 RunningAlphaStrongApfel(const std::string &className);
0058
0059
0060
0061
0062 virtual ~RunningAlphaStrongApfel();
0063 virtual RunningAlphaStrongApfel* clone() const;
0064 virtual void configure(const ElemUtils::Parameters ¶meters);
0065 virtual double compute();
0066
0067
0068
0069 void setPertOrder(const PerturbativeQCDOrderType::Type& pertOrder);
0070 void setAlphasRef(const double& alphasRef);
0071 void setMuRef(const double& muRef);
0072
0073 void setThresholds(const std::vector<double>& thresholds);
0074
0075 void setTabNodes(const int& tabNodes);
0076 void setTabLowerBound(const double& tabLowerBound);
0077 void setTabUpperBound(const double& tabUpperBound);
0078 void setTabInterDegree(const int& tabInterDegree);
0079
0080 PerturbativeQCDOrderType::Type getPertOrder() const;
0081 double getAlphasRef() const;
0082 double getMuRef() const;
0083
0084 std::vector<double> getThresholds() const;
0085
0086 int getTabNodes() const;
0087 double getTabLowerBound() const;
0088 double getTabUpperBound() const;
0089 int getTabInterDegree() const;
0090
0091 protected:
0092
0093
0094
0095
0096
0097 RunningAlphaStrongApfel(const RunningAlphaStrongApfel &other);
0098
0099 virtual void initModule();
0100 virtual void isModuleWellConfigured();
0101
0102 private:
0103
0104 PerturbativeQCDOrderType::Type m_pertOrder;
0105 double m_alphasRef;
0106 double m_muRef;
0107 std::vector<double> m_thresholds;
0108 int m_tabNodes;
0109 double m_tabLowerBound;
0110 double m_tabUpperBound;
0111 int m_tabInterDegree;
0112
0113 void setAlphasFunc(const std::function<double(double const&)>& alphasFunc);
0114 std::function<double(double const&)> getAlphasFunc() const;
0115 std::function<double(double const&)> m_alphasFunc;
0116 };
0117
0118 }
0119
0120 #endif
0121