fast pQCD calculations for hadron-induced processes
fastNLODiffReader.h
1 // Author: Daniel Britzger
2 // DESY, 02/04/2012
3 
4 #ifndef fASTNLODIFFREADER
5 #define fASTNLODIFFREADER
6 
7 
9 // //
10 // fastNLODiffReader //
11 // //
12 // fastNLODiffReader is a standalone code for reading //
13 // diffractive FastNLO tables of version 2.0 for DIS processes //
14 // //
15 // http://projects.hepforge.org/fastnlo //
16 // //
18 
19 
20 #include <string>
21 #include <vector>
22 #include "fastnlotk/fastNLOReader.h"
23 
24 
26 
27 public:
28 
29  fastNLODiffReader(std::string filename);
30  virtual ~fastNLODiffReader(void) {};
31 
32  void SetXPomSlicing(int nStep, double* xpom, double* dxpom);
33  void SetXPomLogSlicing(int nStep, double xpommin, double xpommax);
34  void SetXPomLinSlicing(int nStep, double xpommin, double xpommax);
35  void SetXPomExpSlicing(int nStep, double xpommin, double xpommax);
36  void SetZRange(double zmin , double zmax) {
37  fzmin = zmin ;
38  fzmax = zmax;
39  };
40  double GetZRangeMin() {
41  return fzmin;
42  };
43  double GetZRangeMax() {
44  return fzmax;
45  };
46 
47  std::vector < double > GetCrossSection();
48  void CalcCrossSection();
49  std::vector < double > GetDiffCrossSection();
50  void FillPDFCache(bool ReCalcCrossSection = false);
51  std::vector < double > GetReferenceCrossSection();
52 
53  // ---- Print outs must be overwritten ---- //
54  void PrintCrossSectionsWithReference();
55 
56 
57 protected:
58 
59  double fxpom;
60  double fzmin;
61  double fzmax;
62 
63  std::vector < double > fxPoms;
64  std::vector < double > fdxPoms;
65 
66  // inherited functions
67  virtual double EvolveAlphas(double Q) const = 0;
68  virtual bool InitPDF() = 0;
69  std::vector<double> GetXFX(double xp, double muf) const;
70  virtual std::vector<double> GetDiffXFX(double xpom, double zpom, double muf) const = 0;
71 
72 };
73 
74 #endif
75 
Definition: fastNLODiffReader.h:25
Definition: fastNLOReader.h:17