#include "TCanvas.h"
#include "TH1.h"
#include "TLine.h"
#include "TString.h"

#include "QFramework/TQGridScanner.h"
#include "QFramework/TQGridScanResults.h"
#include "QFramework/TQGridScanObservable.h"
#include "QFramework/TQTaggable.h"

using std::unique_ptr;

using BoundDirection = TQGridScanBound::Direction;

namespace TQGridScanStyle {
  
  unique_ptr<TH1F> rebinHist(unique_ptr<TH1F> hist, TQGridScanBound::Range range, BoundDirection direction);
  unique_ptr<TCanvas> defaultCanvas();
  void drawLabels(TQTaggable& tags);
  void setStyleAndRangeSignifProfile(TH1F* hist, TH1F* histmax, TQTaggable& tags);
  void setStyleSignifProfileGraphs(TGraph* graph, TGraph* graphmax, TQTaggable& tags);
  void setStyleInputHists(TH1F* hist_sig, TH1F* hist_bkg, TQTaggable& tags);
  void setStyle(TPad* pad, TH1F* hist, TQTaggable& tags);
  void drawLegend(TH1F* hist, TH1F* histmax, TQTaggable& tags, const TString& histlabel, TLine* cutline, TGraph* graph, TGraph* graphmax);
  TString getObsTitleSuffix(TString obsName, BoundDirection direction);
  void fillHists(TH1F* hist, TH1F* histSquares, TH1F* histFills, int nBin, double significance, int topNumber, bool showUnderflow, bool showOverflow);
  void fillErrors(TH1F* hist, TH1F* histSquares, TH1F* histFills);
  void excludeOverflow(TAxis* axis);
  void printDelimiter(int i, int n);
#if 0
  Bound* getBound(TQGridScanObservable* obs, BoundDirection direction);
  Bound* getSplitBound(TQGridScanObservable* obs);
#endif
  
}

 TQGridScanStyle.h:1
 TQGridScanStyle.h:2
 TQGridScanStyle.h:3
 TQGridScanStyle.h:4
 TQGridScanStyle.h:5
 TQGridScanStyle.h:6
 TQGridScanStyle.h:7
 TQGridScanStyle.h:8
 TQGridScanStyle.h:9
 TQGridScanStyle.h:10
 TQGridScanStyle.h:11
 TQGridScanStyle.h:12
 TQGridScanStyle.h:13
 TQGridScanStyle.h:14
 TQGridScanStyle.h:15
 TQGridScanStyle.h:16
 TQGridScanStyle.h:17
 TQGridScanStyle.h:18
 TQGridScanStyle.h:19
 TQGridScanStyle.h:20
 TQGridScanStyle.h:21
 TQGridScanStyle.h:22
 TQGridScanStyle.h:23
 TQGridScanStyle.h:24
 TQGridScanStyle.h:25
 TQGridScanStyle.h:26
 TQGridScanStyle.h:27
 TQGridScanStyle.h:28
 TQGridScanStyle.h:29
 TQGridScanStyle.h:30
 TQGridScanStyle.h:31
 TQGridScanStyle.h:32
 TQGridScanStyle.h:33
 TQGridScanStyle.h:34
 TQGridScanStyle.h:35
 TQGridScanStyle.h:36