PDFxTMDLib  1.0.0
YamlCouplingInterp.h
Go to the documentation of this file.
1 #pragma once
2 #include "PDFxTMDLib/Interface/ICoupling.h"
3 #include <array>
4 #include <memory>
5 
6 namespace PDFxTMD
7 {
8 class YamlCouplingInterp : public ICoupling<YamlCouplingInterp>
9 {
10  public:
11  YamlCouplingInterp() = default;
12  void SetParamters(const std::vector<double> &mu2_vec, const std::vector<double> &alsphasVec)
13  {
14  m_mu2_vec = mu2_vec;
15  m_alsphasVec_vec = alsphasVec;
16  initialize();
17  }
18  YamlCouplingInterp(std::vector<double> mu2_vec, std::vector<double> alphasVec);
19  double AlphaQCDMu2(double mu2);
20  // Move constructor
21  YamlCouplingInterp(const YamlCouplingInterp &other) = default;
23 
24  private:
25  void initialize();
26 
27  private:
28  double m_mu2Min = 0;
29  double m_mu2Max = 0;
30  std::vector<double> m_mu2_vec;
31  std::vector<double> m_logMu2_vec;
32  std::vector<double> m_alsphasVec_vec;
33  std::array<int, 1> m_dimensions;
34  mutable bool m_isInitialized = false;
35 };
36 } // namespace PDFxTMD
Definition: YamlCouplingInterp.h:9
void SetParamters(const std::vector< double > &mu2_vec, const std::vector< double > &alsphasVec)
Definition: YamlCouplingInterp.h:12
YamlCouplingInterp(std::vector< double > mu2_vec, std::vector< double > alphasVec)
YamlCouplingInterp(const YamlCouplingInterp &other)=default
double AlphaQCDMu2(double mu2)
YamlCouplingInterp & operator=(const YamlCouplingInterp &other)=default
Definition: AllFlavorsShape.h:14
int mu2
Definition: pdfset_tutorial.py:14