Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
TGraph2D.h
Go to the documentation of this file.
1// @(#)root/hist:$Id: TGraph2D.h,v 1.00
2// Author: Olivier Couet
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
12#ifndef ROOT_TGraph2D
13#define ROOT_TGraph2D
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TGraph2D //
19// //
20// Graph 2D graphics class. //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24#include "TNamed.h"
25#include "TAttLine.h"
26#include "TAttFill.h"
27#include "TAttMarker.h"
28
29class TAxis;
30class TList;
31class TF2;
32class TH1;
33class TH2;
34class TH2D;
35class TView;
36class TDirectory;
38
39#include "TFitResultPtr.h"
40
41class TGraph2D : public TNamed, public TAttLine, public TAttFill, public TAttMarker {
42
43protected:
44
45 Int_t fNpoints; ///< Number of points in the data set
46 Int_t fNpx; ///< Number of bins along X in fHistogram
47 Int_t fNpy; ///< Number of bins along Y in fHistogram
48 Int_t fMaxIter; ///< Maximum number of iterations to find Delaunay triangles
49 Int_t fSize; ///<!Real size of fX, fY and fZ
50 Double_t *fX; ///<[fNpoints]
51 Double_t *fY; ///<[fNpoints] Data set to be plotted
52 Double_t *fZ; ///<[fNpoints]
53 Double_t fMinimum; ///< Minimum value for plotting along z
54 Double_t fMaximum; ///< Maximum value for plotting along z
55 Double_t fMargin; ///< Extra space (in %) around interpolated area for fHistogram
56 Double_t fZout; ///< fHistogram bin height for points lying outside the interpolated area
57 TList *fFunctions; ///< Pointer to list of functions (fits and user)
58 TH2D *fHistogram; ///<!2D histogram of z values linearly interpolated on the triangles
59 TObject *fDelaunay; ///<! Pointer to Delaunay interpolator object
60 TDirectory *fDirectory; ///<!Pointer to directory holding this 2D graph
61 TVirtualHistPainter *fPainter; ///<!Pointer to histogram painter
62
63 void Build(Int_t n);
64
65private:
66
67 Bool_t fUserHisto; // True when SetHistogram has been called
68
72
73 void CreateInterpolator(Bool_t oldInterp);
74
75public:
76
83 TGraph2D(const char *name, const char *title, Int_t n, Double_t *x, Double_t *y, Double_t *z);
84 TGraph2D(const char *filename, const char *format="%lg %lg %lg", Option_t *option="");
86
87 ~TGraph2D() override;
88
90
91 virtual void AddPoint(Double_t x, Double_t y, Double_t z) { SetPoint(fNpoints, x, y, z); } ///< Append a new point to the graph.
92 virtual void Add(TF2 *f, Double_t c1=1);
93 virtual void Apply(TF2 *f);
94 void Browse(TBrowser *) override;
95 void Clear(Option_t *option="") override;
98 void Draw(Option_t *option="P0") override;
99 void ExecuteEvent(Int_t event, Int_t px, Int_t py) override;
100 TObject *FindObject(const char *name) const override;
101 TObject *FindObject(const TObject *obj) const override;
102 virtual TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Option_t *goption=""); // *MENU*
103 virtual TFitResultPtr Fit(TF2 *f2 ,Option_t *option="" ,Option_t *goption=""); // *MENU*
104 virtual void FitPanel(); // *MENU*
107 TF2 *GetFunction(const char *name) const;
108 Int_t GetNpx() const {return fNpx;}
109 Int_t GetNpy() const {return fNpy;}
112 virtual Double_t GetErrorX(Int_t bin) const;
113 virtual Double_t GetErrorY(Int_t bin) const;
114 virtual Double_t GetErrorZ(Int_t bin) const;
115 Double_t GetMargin() const {return fMargin;}
116 Double_t GetMaximum() const {return fMaximum;};
117 Double_t GetMinimum() const {return fMinimum;};
118 TAxis *GetXaxis() const ;
119 TAxis *GetYaxis() const ;
120 TAxis *GetZaxis() const ;
121 Int_t GetN() const {return fNpoints;}
122 Double_t *GetX() const {return fX;}
123 Double_t *GetY() const {return fY;}
124 Double_t *GetZ() const {return fZ;}
125 virtual Double_t *GetEX() const {return nullptr;}
126 virtual Double_t *GetEY() const {return nullptr;}
127 virtual Double_t *GetEZ() const {return nullptr;}
128 virtual Double_t *GetEXlow() const {return nullptr;}
129 virtual Double_t *GetEXhigh() const {return nullptr;}
130 virtual Double_t *GetEYlow() const {return nullptr;}
131 virtual Double_t *GetEYhigh() const {return nullptr;}
132 virtual Double_t *GetEZlow() const {return nullptr;}
133 virtual Double_t *GetEZhigh() const {return nullptr;}
140 virtual Double_t GetXmaxE() const {return GetXmax();}
141 virtual Double_t GetXminE() const {return GetXmin();}
142 virtual Double_t GetYmaxE() const {return GetYmax();}
143 virtual Double_t GetYminE() const {return GetYmin();}
144 virtual Double_t GetZmaxE() const {return GetZmax();}
145 virtual Double_t GetZminE() const {return GetZmin();}
146 virtual Int_t GetPoint(Int_t i, Double_t &x, Double_t &y, Double_t &z) const;
148 void Paint(Option_t *option="") override;
149 void Print(Option_t *chopt="") const override;
150 TH1 *Project(Option_t *option="x") const; // *MENU*
151 void RecursiveRemove(TObject *obj) override;
152 Int_t RemovePoint(Int_t ipoint); // *MENU*
154 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
155 virtual void Scale(Double_t c1=1., Option_t *option="z"); // *MENU*
156 virtual void Set(Int_t n);
157 virtual void SetDirectory(TDirectory *dir);
158 virtual void SetHistogram(TH2 *h, Option_t *option="");
159 void SetMargin(Double_t m=0.1); // *MENU*
160 void SetMarginBinsContent(Double_t z=0.); // *MENU*
161 void SetMaximum(Double_t maximum=-1111); // *MENU*
162 void SetMinimum(Double_t minimum=-1111); // *MENU*
163 void SetMaxIter(Int_t n=100000) {fMaxIter = n;} // *MENU*
164 void SetName(const char *name) override; // *MENU*
165 void SetNameTitle(const char *name, const char *title) override;
166 void SetNpx(Int_t npx=40); // *MENU*
167 void SetNpy(Int_t npx=40); // *MENU*
168 virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z); // *MENU*
169 void SetTitle(const char *title="") override; // *MENU*
170
171 ClassDefOverride(TGraph2D,1) //Set of n x[n],y[n],z[n] points with 3-d graphics including Delaunay triangulation
172};
173
174#endif
#define f(i)
Definition RSha256.hxx:104
#define h(i)
Definition RSha256.hxx:106
int Int_t
Signed integer 4 bytes (int).
Definition RtypesCore.h:59
bool Bool_t
Boolean (0=false, 1=true) (bool).
Definition RtypesCore.h:77
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
float Float_t
Float 4 bytes (float).
Definition RtypesCore.h:71
const char Option_t
Option string (const char).
Definition RtypesCore.h:80
#define BIT(n)
Definition Rtypes.h:91
#define ClassDefOverride(name, id)
Definition Rtypes.h:348
char name[80]
Definition TGX11.cxx:148
Class to manage histogram axis.
Definition TAxis.h:32
Using a TBrowser one can browse all ROOT objects.
Definition TBrowser.h:37
Describe directory structure in memory.
Definition TDirectory.h:45
Definition TF2.h:29
Provides an indirection to the TFitResult class and with a semantics identical to a TFitResult pointe...
Int_t fMaxIter
Maximum number of iterations to find Delaunay triangles.
Definition TGraph2D.h:48
TF2 * GetFunction(const char *name) const
TObject * FindObject(const char *name) const override
Must be redefined in derived classes.
virtual Double_t * GetEZhigh() const
Definition TGraph2D.h:133
Double_t GetMaximum() const
Definition TGraph2D.h:116
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z)
virtual Double_t GetErrorZ(Int_t bin) const
void SetNameTitle(const char *name, const char *title) override
Set all the TNamed parameters (name and title).
virtual Double_t GetYminE() const
Definition TGraph2D.h:143
void Build(Int_t n)
Double_t Interpolate(Double_t x, Double_t y)
Int_t fNpoints
Number of points in the data set.
Definition TGraph2D.h:45
virtual Double_t GetZminE() const
Definition TGraph2D.h:145
Double_t GetMinimum() const
Definition TGraph2D.h:117
Double_t * GetY() const
Definition TGraph2D.h:123
TGraph2D(Int_t n, Int_t *x, Int_t *y, Int_t *z)
virtual Double_t GetErrorX(Int_t bin) const
virtual void Add(TF2 *f, Double_t c1=1)
void SetMarginBinsContent(Double_t z=0.)
Int_t fNpx
Number of bins along X in fHistogram.
Definition TGraph2D.h:46
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
virtual Double_t GetYmaxE() const
Definition TGraph2D.h:142
Double_t GetYmin() const
Bool_t fUserHisto
Definition TGraph2D.h:67
Double_t GetZmin() const
void Browse(TBrowser *) override
Browse object. May be overridden for another default action.
TGraph2D(const char *name, const char *title, Int_t n, Double_t *x, Double_t *y, Double_t *z)
virtual void Scale(Double_t c1=1., Option_t *option="z")
Double_t * GetX() const
Definition TGraph2D.h:122
virtual Double_t GetZmaxE() const
Definition TGraph2D.h:144
void RecursiveRemove(TObject *obj) override
Recursively remove this object from a list.
virtual TFitResultPtr Fit(TF2 *f2, Option_t *option="", Option_t *goption="")
virtual Double_t GetErrorY(Int_t bin) const
Double_t * fZ
[fNpoints]
Definition TGraph2D.h:52
Double_t fMargin
Extra space (in %) around interpolated area for fHistogram.
Definition TGraph2D.h:55
Double_t fMinimum
Minimum value for plotting along z.
Definition TGraph2D.h:53
TGraph2D(const char *filename, const char *format="%lg %lg %lg", Option_t *option="")
Double_t GetXmin() const
void Print(Option_t *chopt="") const override
This method must be overridden when a class wants to print itself.
virtual Double_t * GetEZ() const
Definition TGraph2D.h:127
TH2D * GetHistogram(Option_t *option="")
TVirtualHistPainter * fPainter
!Pointer to histogram painter
Definition TGraph2D.h:61
Double_t GetMargin() const
Definition TGraph2D.h:115
Double_t GetZmax() const
Int_t RemovePoint(Int_t ipoint)
Double_t fMaximum
Maximum value for plotting along z.
Definition TGraph2D.h:54
~TGraph2D() override
TAxis * GetZaxis() const
void SetMargin(Double_t m=0.1)
void SetName(const char *name) override
Set the name of the TNamed.
void SetNpy(Int_t npx=40)
Double_t fZout
fHistogram bin height for points lying outside the interpolated area
Definition TGraph2D.h:56
void SetTitle(const char *title="") override
Set the title of the TNamed.
TH2D * fHistogram
!2D histogram of z values linearly interpolated on the triangles
Definition TGraph2D.h:58
virtual Double_t GetXminE() const
Definition TGraph2D.h:141
TList * GetContourList(Double_t contour)
Double_t GetXmax() const
virtual void DirectoryAutoAdd(TDirectory *)
TAxis * GetYaxis() const
virtual Double_t * GetEYhigh() const
Definition TGraph2D.h:131
virtual Double_t * GetEY() const
Definition TGraph2D.h:126
TList * GetListOfFunctions() const
Definition TGraph2D.h:111
TObject * fDelaunay
! Pointer to Delaunay interpolator object
Definition TGraph2D.h:59
virtual Int_t GetPoint(Int_t i, Double_t &x, Double_t &y, Double_t &z) const
TH1 * Project(Option_t *option="x") const
Int_t GetN() const
Definition TGraph2D.h:121
virtual void Apply(TF2 *f)
virtual Double_t GetXmaxE() const
Definition TGraph2D.h:140
void SetMinimum(Double_t minimum=-1111)
TGraph2D(TH2 *h2)
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="")
TGraph2D & operator=(const TGraph2D &)
TObject * FindObject(const TObject *obj) const override
Must be redefined in derived classes.
virtual Double_t * GetEXhigh() const
Definition TGraph2D.h:129
TGraph2D(Int_t n, Double_t *x, Double_t *y, Double_t *z)
virtual void FitPanel()
Double_t * fX
[fNpoints]
Definition TGraph2D.h:50
Double_t * fY
[fNpoints] Data set to be plotted
Definition TGraph2D.h:51
void SetMaximum(Double_t maximum=-1111)
virtual Double_t * GetEXlow() const
Definition TGraph2D.h:128
Double_t GetYmax() const
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Computes distance from point (px,py) to the object.
virtual void Set(Int_t n)
TDirectory * fDirectory
!Pointer to directory holding this 2D graph
Definition TGraph2D.h:60
TGraph2D(const TGraph2D &)
void Clear(Option_t *option="") override
TGraph2D(Int_t n, Float_t *x, Float_t *y, Float_t *z)
virtual Double_t * GetEX() const
Definition TGraph2D.h:125
virtual void SetDirectory(TDirectory *dir)
void CreateInterpolator(Bool_t oldInterp)
Int_t GetNpy() const
Definition TGraph2D.h:109
TDirectory * GetDirectory() const
Definition TGraph2D.h:106
Int_t fNpy
Number of bins along Y in fHistogram.
Definition TGraph2D.h:47
virtual void AddPoint(Double_t x, Double_t y, Double_t z)
Append a new point to the graph.
Definition TGraph2D.h:91
virtual void SetHistogram(TH2 *h, Option_t *option="")
TList * fFunctions
Pointer to list of functions (fits and user).
Definition TGraph2D.h:57
void Paint(Option_t *option="") override
This method must be overridden if a class wants to paint itself.
virtual Double_t * GetEZlow() const
Definition TGraph2D.h:132
Int_t GetNpx() const
Definition TGraph2D.h:108
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to an event at (px,py).
void Draw(Option_t *option="P0") override
Default Draw method for all objects.
Int_t fSize
!Real size of fX, fY and fZ
Definition TGraph2D.h:49
void SetMaxIter(Int_t n=100000)
Definition TGraph2D.h:163
@ kOldInterpolation
Definition TGraph2D.h:70
Int_t RemoveDuplicates()
TAxis * GetXaxis() const
TGraph2D(Int_t n)
virtual Double_t * GetEYlow() const
Definition TGraph2D.h:130
Double_t * GetZ() const
Definition TGraph2D.h:124
void SetNpx(Int_t npx=40)
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:109
2-D histogram with a double per channel (see TH1 documentation)
Definition TH2.h:400
Service class for 2-D histogram classes.
Definition TH2.h:30
A doubly linked list.
Definition TList.h:38
TNamed()
Definition TNamed.h:38
TObject()
TObject constructor.
Definition TObject.h:259
See TView3D.
Definition TView.h:25
Abstract interface to a histogram painter.
return c1
Definition legend1.C:41
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16
TMarker m
Definition textangle.C:8