#ifndef __GFDSTARDRAWXSEC_H #define __GFDSTARDRAWXSEC_H ////////////////////////////////////////////////////////////////////////// // // // GFDstarDrawXSec // // // // // // Author: Gero Flucke // // Date: Nov 9th, 2004 // // last update: $Date: 2005/11/17 12:50:23 $ // by: $Author: flucke $ // // ////////////////////////////////////////////////////////////////////////// #include #include class TH1; class TFile; class TLegend; class GFHistArray; class GFHistManager; class GFDstarFmnr; class GFDstarVirtualTheory; class GFDstarZmvfns; class GFDstarCascade; class GFDstarPythia; class GFDstarHistsAnalysisMc; class GFDstarDrawXSec : public TObject { public: GFDstarDrawXSec(const char *fileNameData, const char *fmnrDirInc = "", const char *fmnrDirDsJet = "GFcyeq6mSlice032",//"all2D", const char *mcLabel = "jetAsym", //"haCoDijetFix", const char *masslessFileAdd = "_mrst04_grv"); // GFDstarDrawXSec(const char *fileNameData, const char *fmnrDirInc = "q", const char *fmnrDirDsJet = "q2d", const char *mcLabel = "m2D_2", const char *masslessFileAdd = "_cteq5_grv"); virtual ~GFDstarDrawXSec(); TFile* SetFileOutput(const char *name); TH1 *DrawNloDstar(const char *var, GFDstarVirtualTheory *nlo, GFDstarVirtualTheory *nlo2 = NULL, Bool_t norm = kFALSE); TH1 *DrawNloDstarJet(const char *var, const char *forwBack, GFDstarVirtualTheory *nlo, GFDstarVirtualTheory *nlo2 = NULL, Bool_t norm = kFALSE); TH1 *DrawNloDirRes(const char *var, GFDstarVirtualTheory *nlo, Bool_t direct = kTRUE); TH1 *DrawFmnrDstar(const char *var); TH1 *DrawFmnrDstarJet(const char *var, const char *forwBack = ""); TH1 *DrawMasslessDstar(const char *var); TH1 *DrawMasslessDstarJet(const char *var, const char *forwBack = ""); TH1 *DrawCascade(const char *var); // also working with jets (no had. corr needed!) TH1 *DrawCascadePythia(const char *var, Bool_t direct = kFALSE);// also working with jets (no had. corr needed!) TH1 *DrawPythia(const char *var, Bool_t direct); TH1 *DrawFmnrPythia(const char *var, Bool_t direct = kFALSE); TH1 *DrawFmnrCascDstar(const char *var); TH1 *DrawFmnrCascDstarJet(const char *var, const char *forwBack = ""); TH1 *DrawFmnrMasslessDstar(const char *var); TH1 *DrawFmnrMasslessDstarJet(const char *var, const char *forwBack = ""); TArrayD TotalFmnrDstarJet(); TArrayD TotalDstarJet(GFDstarVirtualTheory *nlo) const; TArrayD TotalDstarDiJet(GFDstarVirtualTheory *nlo) const; void DrawNloDataRatio(const char *var, GFDstarVirtualTheory *nlo, GFDstarVirtualTheory *nlo2 = NULL, Bool_t hadCorr = kFALSE, Int_t dirResFlag = 0); void SetColourCode(Int_t code) {fColourCode = code;}//1 or other virtual void Clear(Option_t *opt = ""); GFDstarFmnr* GetDstarFmnr() {return fFmnr;} GFDstarFmnr* GetDstarNloFmnr() {return this->GetDstarFmnr();}// backward compatib. GFDstarZmvfns* GetDstarZmvfns() {return fZmvfns;} GFDstarZmvfns* GetDstarNloMassless() {return this->GetDstarZmvfns();}// backward com. GFDstarCascade* GetDstarCascade() {return fCascade;} GFDstarPythia* GetDstarPythia() {return fPythia;} GFDstarHistsAnalysisMc* GetAnalysisMc() {return fAnalysisMc;} GFHistManager* GetHistManager() {return fHistManager;} private: GFDstarDrawXSec(){} GFDstarDrawXSec(const GFDstarDrawXSec& other) : TObject(other) {} GFDstarDrawXSec& operator = (const GFDstarDrawXSec&) {return *this;} Int_t AddHistsNlo(TH1 *hData, GFHistArray *nloHists, const char *nloLabel, TH1 *hPlain = NULL, const char *plainLabel = NULL); Int_t AddHistsNlo2(GFHistArray *nloHists, const char *nloLabel, TH1 *hPlain = NULL, const char *plainLabel = NULL); Int_t AddExtraHist(TH1 *hRes, const char *label); TLegend* AddHistsData(TH1 *hData, TH1 *hDataAllErr, Int_t layer, Bool_t log, const char *header); Bool_t GetMinMax(const char *var, Float_t &min, Float_t &max, Bool_t norm = kFALSE) const; void SetLegendPos(TLegend *leg, const char *var) const; Bool_t Divide(const GFHistArray *histsToScale, const TH1 *hScaleBy) const; TH1* GetHistData(const char *var, Option_t *option); TFile *fFileData; GFDstarFmnr *fFmnr; GFDstarZmvfns *fZmvfns; GFDstarCascade *fCascade; GFDstarPythia *fPythia; GFDstarHistsAnalysisMc *fAnalysisMc; GFHistManager *fHistManager; Int_t fColourCode; TFile *fFileOutput; ClassDef(GFDstarDrawXSec,0) // draw final plots... }; #endif