File indexing completed on 2025-04-19 09:09:48
0001 #ifndef AMISIC_Tools_Over_Estimator_H
0002 #define AMISIC_Tools_Over_Estimator_H
0003
0004 #include "AMISIC++/Tools/Lookup_Tables.H"
0005 #include "PDF/Main/ISR_Handler.H"
0006 #include "MODEL/Main/Model_Base.H"
0007 #include "MODEL/Main/Running_AlphaS.H"
0008 #include <array>
0009
0010 namespace AMISIC {
0011 class MI_Processes;
0012
0013 class Over_Estimator {
0014 private:
0015 double m_muR_fac, m_muF_fac, m_pt02, m_ptmin2;
0016 std::array<double, 2> m_xmin;
0017 double m_s, m_pref, m_bfac, m_xsnd;
0018 size_t m_pt2bins;
0019
0020 std::array<PDF::PDF_Base *, 2> p_pdf;
0021 MODEL::One_Running_AlphaS * p_alphaS;
0022 MI_Processes * p_procs;
0023 OneDim_Table * p_prefs;
0024
0025 void FixMaximum();
0026 double ApproxME(const double & pt2,const double & xt);
0027 double ExactME(const double & pt2,const double & xt);
0028 public:
0029 Over_Estimator();
0030 ~Over_Estimator();
0031
0032 void Initialize(MI_Processes * procs);
0033 void UpdateS();
0034
0035 double operator()(const double & pt2, const double & yvol);
0036 double TrialPT2(const double & Q2);
0037
0038 inline void SetBFac(const double & bfac) { m_bfac = bfac; }
0039 inline void SetXSnd(const double & xsnd) { m_xsnd = xsnd; }
0040
0041 void Test(const double & Q2,const long int & n);
0042 };
0043 }
0044
0045 #endif