ROOT  6.06/09
Reference Guide
THistPainter.h
Go to the documentation of this file.
1 // @(#)root/histpainter:$Id$
2 // Author: Rene Brun 26/08/99
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 #ifndef ROOT_THistPainter
12 #define ROOT_THistPainter
13 
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // THistPainter //
18 // //
19 // helper class to draw histograms //
20 // //
21 //////////////////////////////////////////////////////////////////////////
22 
23 
24 #ifndef ROOT_TVirtualHistPainter
25 #include "TVirtualHistPainter.h"
26 #endif
27 #ifndef ROOT_TString
28 #include "TString.h"
29 #endif
30 
31 
32 class TH1;
33 class TAxis;
34 class TCutG;
35 class TGaxis;
37 class TGraph2DPainter;
38 class TPie;
39 const Int_t kMaxCuts = 16;
40 
42 
43 protected:
44  TH1 *fH; //pointer to histogram to paint
45  TAxis *fXaxis; //pointer to X axis
46  TAxis *fYaxis; //pointer to Y axis
47  TAxis *fZaxis; //pointer to Z axis
48  TList *fFunctions; //pointer to histogram list of functions
49  TPainter3dAlgorithms *fLego; //pointer to a TPainter3dAlgorithms object
50  TGraph2DPainter *fGraph2DPainter; //pointer to a TGraph2DPainter object
51  TPie *fPie; //pointer to a TPie in case of option PIE
52  Double_t *fXbuf; //X buffer coordinates
53  Double_t *fYbuf; //Y buffer coordinates
54  Int_t fNcuts; //Number of graphical cuts
55  Int_t fCutsOpt[kMaxCuts]; //sign of each cut
56  TCutG *fCuts[kMaxCuts]; //Pointers to graphical cuts
57  TList *fStack; //Pointer to stack of histograms (if any)
58  Int_t fShowProjection; //True if a projection must be drawn
59  TString fShowOption; //Option to draw the projection
60 
61 public:
62  THistPainter();
63  virtual ~THistPainter();
64  virtual void DefineColorLevels(Int_t ndivz);
65  virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
66  virtual void DrawPanel();
67  virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
68  virtual TList *GetContourList(Double_t contour) const;
69  virtual char *GetObjectInfo(Int_t px, Int_t py) const;
70  virtual TList *GetStack() const {return fStack;}
71  virtual Bool_t IsInside(Int_t x, Int_t y);
72  virtual Bool_t IsInside(Double_t x, Double_t y);
73  virtual Int_t MakeChopt(Option_t *option);
74  virtual Int_t MakeCuts(char *cutsopt);
75  virtual void Paint(Option_t *option="");
76  virtual void PaintArrows(Option_t *option);
77  virtual void PaintAxis(Bool_t drawGridOnly=kFALSE);
78  virtual void PaintBar(Option_t *option);
79  virtual void PaintBarH(Option_t *option);
80  virtual void PaintBoxes(Option_t *option);
81  virtual void PaintCandlePlot(Option_t *option);
82  virtual void PaintViolinPlot(Option_t *option);
83  virtual void PaintColorLevels(Option_t *option);
84  virtual void PaintTH2PolyBins(Option_t *option);
85  virtual void PaintTH2PolyColorLevels(Option_t *option);
86  virtual void PaintTH2PolyScatterPlot(Option_t *option);
87  virtual void PaintTH2PolyText(Option_t *option);
88  virtual void PaintContour(Option_t *option);
89  virtual Int_t PaintContourLine(Double_t elev1, Int_t icont1, Double_t x1, Double_t y1,
90  Double_t elev2, Int_t icont2, Double_t x2, Double_t y2,
91  Double_t *xarr, Double_t *yarr, Int_t *itarr, Double_t *levels);
92  virtual void PaintErrors(Option_t *option);
93  virtual void Paint2DErrors(Option_t *option);
94  virtual void PaintFrame();
95  virtual void PaintFunction(Option_t *option);
96  virtual void PaintHist(Option_t *option);
97  virtual void PaintH3(Option_t *option="");
98  virtual void PaintH3Iso();
99  virtual Int_t PaintInit();
100  virtual Int_t PaintInitH();
101  virtual void PaintLego(Option_t *option);
102  virtual void PaintLegoAxis(TGaxis *axis, Double_t ang);
103  virtual void PaintPalette();
104  virtual void PaintScatterPlot(Option_t *option);
105  virtual void PaintStat(Int_t dostat, TF1 *fit);
106  virtual void PaintStat2(Int_t dostat, TF1 *fit);
107  virtual void PaintStat3(Int_t dostat, TF1 *fit);
108  virtual void PaintSurface(Option_t *option);
109  virtual void PaintTriangles(Option_t *option);
110  virtual void PaintTable(Option_t *option);
111  virtual void PaintText(Option_t *option);
112  virtual void PaintTitle();
113  virtual void PaintTF3();
114  virtual void ProcessMessage(const char *mess, const TObject *obj);
119  virtual void RecalculateRange();
120  virtual void RecursiveRemove(TObject *) {;}
121  virtual void SetHistogram(TH1 *h);
122  virtual void SetStack(TList *stack) {fStack = stack;}
123  virtual void SetShowProjection(const char *option,Int_t nbins);
124  virtual void ShowProjectionX(Int_t px, Int_t py);
125  virtual void ShowProjectionY(Int_t px, Int_t py);
126  virtual void ShowProjection3(Int_t px, Int_t py);
127  virtual Int_t TableInit();
128 
129  static const char * GetBestFormat(Double_t v, Double_t e, const char *f);
130  static void PaintSpecialObjects(const TObject *obj, Option_t *option);
131 
132  ClassDef(THistPainter,0) //Helper class to draw histograms
133 };
134 
135 #endif
Double_t * fYbuf
Definition: THistPainter.h:53
virtual void PaintFrame()
Calculate range and clear pad (canvas).
virtual void PaintArrows(Option_t *option)
Control function to draw a table as an arrow plot
virtual void PaintStat2(Int_t dostat, TF1 *fit)
Draw the statistics box for 2D histograms.
virtual void PaintContour(Option_t *option)
Control function to draw a 2D histogram as a contour plot.
static Int_t ProjectAitoff2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function.
const Int_t kMaxCuts
Definition: THistPainter.h:39
virtual void PaintTH2PolyColorLevels(Option_t *option)
Control function to draw a TH2Poly as a color plot.
const char Option_t
Definition: RtypesCore.h:62
virtual void PaintViolinPlot(Option_t *option)
static const char * GetBestFormat(Double_t v, Double_t e, const char *f)
This function returns the best format to print the error value (e) knowing the parameter value (v) an...
TH1 * h
Definition: legend2.C:5
virtual void SetHistogram(TH1 *h)
Set current histogram to h
virtual TList * GetStack() const
Definition: THistPainter.h:70
virtual void PaintTH2PolyBins(Option_t *option)
Control function to draw a TH2Poly bins' contours.
Basic string class.
Definition: TString.h:137
virtual Int_t PaintInit()
Compute histogram parameters used by the drawing routines.
virtual void Paint2DErrors(Option_t *option)
Draw 2D histograms errors.
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
int nbins[3]
TAxis * fYaxis
Definition: THistPainter.h:46
static Int_t ProjectMercator2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function.
virtual void PaintHist(Option_t *option)
Control routine to draw 1D histograms
virtual void PaintTriangles(Option_t *option)
Control function to draw a table using Delaunay triangles.
virtual void PaintPalette()
Paint the color palette on the right side of the pad.
static const double x2[5]
virtual void PaintBoxes(Option_t *option)
Control function to draw a 2D histogram as a box plot
Graphical cut class.
Definition: TCutG.h:29
Double_t x[n]
Definition: legend1.C:17
virtual void ProcessMessage(const char *mess, const TObject *obj)
Process message mess.
virtual void PaintCandlePlot(Option_t *option)
Control function to draw a 2D histogram as a candle (box) plot.
#define ClassDef(name, id)
Definition: Rtypes.h:254
TCutG * fCuts[kMaxCuts]
Definition: THistPainter.h:56
virtual void PaintSurface(Option_t *option)
Control function to draw a 2D histogram as a surface plot.
virtual void PaintStat(Int_t dostat, TF1 *fit)
Draw the statistics box for 1D and profile histograms.
Abstract interface to a histogram painter.
virtual Int_t MakeCuts(char *cutsopt)
Decode string choptin and fill Graphical cuts structure.
virtual Int_t MakeChopt(Option_t *option)
Decode string choptin and fill Hoption structure.
virtual void PaintH3(Option_t *option="")
Control function to draw a 3D histograms.
virtual void PaintColorLevels(Option_t *option)
virtual void RecursiveRemove(TObject *)
Recursively remove this object from a list.
Definition: THistPainter.h:120
TAxis * fZaxis
Definition: THistPainter.h:47
virtual Bool_t IsInside(Int_t x, Int_t y)
Return kTRUE if the cell ix, iy is inside one of the graphical cuts.
virtual void PaintTH2PolyScatterPlot(Option_t *option)
Control function to draw a TH2Poly as a scatter plot.
virtual void PaintTH2PolyText(Option_t *option)
Control function to draw a TH2Poly as a text plot.
TList * fFunctions
Definition: THistPainter.h:48
A doubly linked list.
Definition: TList.h:47
virtual Int_t PaintInitH()
Compute histogram parameters used by the drawing routines for a rotated pad.
virtual void RecalculateRange()
Recompute the histogram range following graphics operations.
virtual void SetStack(TList *stack)
Definition: THistPainter.h:122
virtual void PaintText(Option_t *option)
Control function to draw a 1D/2D histograms with the bin values.
virtual Int_t TableInit()
Initialize various options to draw 2D histograms.
Class to manage histogram axis.
Definition: TAxis.h:36
Int_t fShowProjection
Definition: THistPainter.h:58
SVector< double, 2 > v
Definition: Dict.h:5
virtual void PaintTF3()
Control function to draw a 3D implicit functions.
virtual void Paint(Option_t *option="")
Control routine to paint any kind of histograms
virtual void PaintStat3(Int_t dostat, TF1 *fit)
Draw the statistics box for 3D histograms.
virtual void PaintTable(Option_t *option)
Control function to draw 2D/3D histograms (tables).
TString fShowOption
Definition: THistPainter.h:59
virtual ~THistPainter()
Default destructor.
TLine * l
Definition: textangle.C:4
virtual void PaintH3Iso()
Control function to draw a 3D histogram with Iso Surfaces.
The axis painter class.
Definition: TGaxis.h:39
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute the actions corresponding to event.
virtual void PaintBar(Option_t *option)
Draw a bar-chart in a normal pad.
virtual void PaintFunction(Option_t *option)
Paint functions associated to an histogram.
virtual void PaintAxis(Bool_t drawGridOnly=kFALSE)
Draw axis (2D case) of an histogram.
virtual void PaintBarH(Option_t *option)
Draw a bar char in a rotated pad (X vertical, Y horizontal)
The histogram painter class.
Definition: THistPainter.h:41
Int_t fCutsOpt[kMaxCuts]
Definition: THistPainter.h:55
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Display the histogram info (bin number, contents, integral up to bin corresponding to cursor position...
virtual void PaintLegoAxis(TGaxis *axis, Double_t ang)
Draw the axis for legos and surface plots.
static const double x1[5]
double f(double x)
double Double_t
Definition: RtypesCore.h:55
TGraph2DPainter * fGraph2DPainter
Definition: THistPainter.h:50
The Legos and Surfaces painter class.
virtual void ShowProjectionX(Int_t px, Int_t py)
Show projection onto X.
Double_t * fXbuf
Definition: THistPainter.h:52
Double_t y[n]
Definition: legend1.C:17
The TH1 histogram class.
Definition: TH1.h:80
Draw a Pie Chart,.
Definition: TPie.h:31
virtual void PaintTitle()
Draw the histogram title.
virtual void SetShowProjection(const char *option, Int_t nbins)
Set projection.
virtual void PaintLego(Option_t *option)
Control function to draw a 2D histogram as a lego plot.
virtual void ShowProjectionY(Int_t px, Int_t py)
Show projection onto Y.
TList * fStack
Definition: THistPainter.h:57
Mother of all ROOT objects.
Definition: TObject.h:58
virtual TList * GetContourList(Double_t contour) const
Get a contour (as a list of TGraphs) using the Delaunay triangulation.
virtual void DrawPanel()
Display a panel with all histogram drawing options.
static Int_t ProjectSinusoidal2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function code from Ernst-Jan Buis.
static Int_t ProjectParabolic2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function code from Ernst-Jan Buis.
virtual Int_t PaintContourLine(Double_t elev1, Int_t icont1, Double_t x1, Double_t y1, Double_t elev2, Int_t icont2, Double_t x2, Double_t y2, Double_t *xarr, Double_t *yarr, Int_t *itarr, Double_t *levels)
Fill the matrix xarr and yarr for Contour Plot.
TPainter3dAlgorithms * fLego
Definition: THistPainter.h:49
virtual void ShowProjection3(Int_t px, Int_t py)
Show projection (specified by fShowProjection) of a TH3.
1-Dim function class
Definition: TF1.h:149
static void PaintSpecialObjects(const TObject *obj, Option_t *option)
Static function to paint special objects like vectors and matrices.
virtual void PaintErrors(Option_t *option)
Draw 1D histograms error bars.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute the distance from the point px,py to a line.
virtual void PaintScatterPlot(Option_t *option)
Control function to draw a 2D histogram as a scatter plot.
The TGraphDelaunay painting class.
TObject * obj
TAxis * fXaxis
Definition: THistPainter.h:45
virtual void DefineColorLevels(Int_t ndivz)
Define the color levels used to paint legos, surfaces etc..