12TGraph *grxy, *grin, *grout;
14void DrawSmooth(
Int_t pad,
const char *title,
const char *xt,
const char *yt)
17 TH1F *vFrame =
gPad->DrawFrame(0, 0, 15, 150);
37 Double_t x[] = {1, 2, 3, 4, 5, 6, 6, 6, 8, 9, 10};
38 Double_t y[] = {1, 4, 9, 16, 25, 25, 36, 49, 64, 81, 100};
43 Double_t xout[] = {1.2, 1.7, 2.5, 3.2, 4.4, 5.2, 5.7, 6.5, 7.6, 8.3, 9.7, 10.4, 11.3, 13};
46 vC1 =
new TCanvas(
"vC1",
"square", 200, 10, 700, 700);
53 grout = gs->
Approx(grin,
"linear");
54 DrawSmooth(1,
"Approx: ties = mean",
"X-axis",
"Y-axis");
60 grout = gs->
Approx(grin,
"linear", 14, xout, 0, 130);
61 DrawSmooth(2,
"Approx: ties = mean",
"",
"");
66 for (
Int_t k = 0; k < vNout; k++) {
68 cout <<
"k= " << k <<
" vXout[k]= " << vXout <<
" vYout[k]= " << vYout << endl;
75 grout = gs->
Approx(grin,
"constant", 50, 0, 0, 0, 1, 0.5,
"min");
76 DrawSmooth(3,
"Approx: ties = min",
"",
"");
81 grout = gs->
Approx(grin,
"linear", 14, xout, 0, 0, 2, 0,
"max");
82 DrawSmooth(4,
"Approx: ties = max",
"",
"");
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
TVirtualPad * cd(Int_t subpadnumber=0) override
Set current canvas & pad.
A helper class to smooth TGraph.
TGraph * Approx(TGraph *grin, Option_t *option="linear", Int_t nout=50, Double_t *xout=nullptr, Double_t yleft=0, Double_t yright=0, Int_t rule=0, Double_t f=0, Option_t *ties="mean")
Approximate data points.
A TGraph is an object made of two arrays X and Y with npoints each.
void Draw(Option_t *chopt="") override
Draw this graph with its current attributes.
virtual Int_t GetPoint(Int_t i, Double_t &x, Double_t &y) const
Get x and y values for point number i.
1-D histogram with a float per channel (see TH1 documentation)
virtual void SetTitleSize(Float_t size=0.02, Option_t *axis="X")
Set the axis' title size.
void SetTitle(const char *title) override
Change/set the title.
virtual void SetXTitle(const char *title)
virtual void SetYTitle(const char *title)
virtual TObject * DrawClone(Option_t *option="") const
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
Automatic pad generation by division.