#ifndef PLOT_H #define PLOT_H /// c++ includes #include #include /// Forwards class declaration class TCanvas; class TGraphAsymmErrors; class TH1; class TH1D; class THStack; class TLegend; class TPad; class Plot { public: Plot(std::string name="c",int canvasWidth=600,int canvasHeight=700,bool hideRatioPad=false); ~Plot(); void AddSignal(TH1* h,std::string name="Signal"); void AddBackground(TH1* h,std::string name="MC"); std::string fName; TH1* h_data; TGraphAsymmErrors* g_data; TH1* h_mc; std::vector h_bkg; std::vector h_signal; std::vector h_normsig; std::vector h_oversig; THStack* h_stack; TH1* h_tot; TGraphAsymmErrors* g_tot; TH1D* h_blinding; TH1* h_tot_bkg_prefit; TH1* h_dummy; TCanvas* c; TLegend* leg; TLegend* leg1; TPad* pad0; TPad* pad1; std::string xtitle; std::string ytitle; std::string fDataName; std::vector< std::string > fBkgNames; std::vector< std::string > fSigNames; std::vector< std::string > fNormSigNames; std::vector< std::string > fOverSigNames; std::vector< std::string > fLabels; std::string fLumi; std::string fCME; std::string fATLASlabel; float yMaxScale; int NDF; float Chi2val; float Chi2prob; float KSprob; float fYmax; float fYmin; float fRatioYmax; float fRatioYmin; float fBinWidth; bool fIsNjet; bool fShowYields; float fLumiScale; float fBlindingThreshold; int fLegendNColumns; std::vector fXaxisRange; std::string fRatioYtitle; std::string fRatioType; float fLabelX; float fLabelY; float fLegendX1; float fLegendX2; float fLegendY; public: const TH1* GetTotal() const { return h_tot; }; TH1* GetTotBkg() const; }; #endif