#ifndef BCR_PDF_h #define BCR_PDF_h #include "Riostream.h" #include #include //me #include //me #include #include "TNamed.h" #include "TMath.h" #include "TGraphAsymmErrors.h" using namespace std; class BCR_PDF : public TNamed { private: // data members defining the grid for the fast parameterization static const Int_t n_grid = 20; // number of grids static const Int_t n_bin_q2 = 86; // q2-bins of grid static const Int_t n_bin_x = 130; // x-bins of grid Double_t xl_bin[n_grid][n_bin_x]; // x sampling points Double_t q2l_bin[n_grid][n_bin_q2]; // q2 sampling poins Double_t f[n_grid][n_bin_x][n_bin_q2]; // pdf at sampling points // private utility functions static TString GetCycleString(UInt_t iCycle); void Reset(); protected: // TString fName; // PDF identifier // TString fTitle; // PDF description title public: BCR_PDF() : TNamed() { } BCR_PDF(const char *name, const char *title) : TNamed(name,title) {Reset();} BCR_PDF(const TString &name, const TString &title) : TNamed(name,title) {Reset();} BCR_PDF(const BCR_PDF &other); BCR_PDF& operator=(const BCR_PDF& other); virtual ~BCR_PDF() { } void SelfTest(); void FullDump(); virtual void Print(const Option_t * Opt="") const {TNamed::Print(Opt);} virtual void Print(Double_t x,Double_t q2=4.) const; void ReadGrids(TString chPDF="gluon",TString chPath="format_h1x",Int_t iOff=0); void ReadZeusKN(TString chPDF="f2",TString chPath="/data/zenmpis2a/reisert/hector/tab"); void ReadHector(TString chPDF="cteq5d_f2",TString chPath="/data/zenmpis2a/reisert/hector/tab"); Double_t Eval(const Double_t xin, const Double_t q2in, const Int_t iGrid=0) const; Double_t Value(const Double_t xin, const Double_t q2in) const; Double_t ErrExp(const Double_t xin, const Double_t q2in) const; Double_t ErrModP(const Double_t xin, const Double_t q2in) const; Double_t ErrModM(const Double_t xin, const Double_t q2in) const; Double_t ErrTotP(const Double_t xin, const Double_t q2in) const; Double_t ErrTotM(const Double_t xin, const Double_t q2in) const; TGraphAsymmErrors * ErrBand(TString chMode="Exp", // Exp, Mod or Tot TString asFunOf="x", // x or Q2 (y in future?, need to think about s) Double_t rMin=0.0001, // range minimum Double_t rMax=0.095, // range maximum TString forFixed="Q2", // fixed kin variable Double_t rFix=4., // value of fixed variable Double_t s=4*920*27.5); // cms energy squared ClassDef(BCR_PDF,1) }; #endif #if !defined (__CINT__) ClassImp(BCR_PDF); #endif #ifdef BCR_BCR_PDF_cxx #endif // #ifdef BCR_PDF_cxx