691 if (
gPad->GetLogx()) {
699 if (!opt &&
gPad->GetLogy()) {
781 else distance =
f->DistancetoPrimitive(px,py);
783 gPad->SetSelected(
f);
799 Error(
"DrawPanel",
"need to draw graph first");
804 gROOT->ProcessLine(
TString::Format(
"((TCanvas*)0x%zx)->Selected((TVirtualPad*)0x%zx,(TObject*)0x%zx,1)",
830 static Int_t px1,px2,py1,py2;
833 static std::vector<Int_t>
x,
y;
840 if (!
gPad->IsEditable())
return;
851 px1 =
gPad->XtoAbsPixel(
gPad->GetX1());
852 py1 =
gPad->YtoAbsPixel(
gPad->GetY1());
853 px2 =
gPad->XtoAbsPixel(
gPad->GetX2());
854 py2 =
gPad->YtoAbsPixel(
gPad->GetY2());
858 if (!
x.empty() || !
y.empty())
break;
991 dxr =
dx/(1 -
gPad->GetLeftMargin() -
gPad->GetRightMargin());
992 dyr =
dy/(1 -
gPad->GetBottomMargin() -
gPad->GetTopMargin());
1022 if (
theGraph->InheritsFrom(
"TCutG")) {
1042 if (
gROOT->IsEscaped()) {
1056 dxr =
dx/(1 -
gPad->GetLeftMargin() -
gPad->GetRightMargin());
1057 dyr =
dy/(1 -
gPad->GetBottomMargin() -
gPad->GetTopMargin());
1077 if (
theGraph->InheritsFrom(
"TCutG")) {
1123 if (
theGraph->IsHighlight())
return;
1181 if (
gPad->GetLogx()) {
1185 if (
gPad->GetLogy()) {
1285 if (
theGraph->InheritsFrom(
"TGraphPolar"))
1301 Error(
"PaintGraph",
"illegal number of points (%d)",
npoints);
1404 if (!
theGraph->GetHistogram())
return;
1409 theGraph->GetHistogram()->SetDirectory(
nullptr);
1413 if (
gPad->GetLogy()) {
1459 for (i=1;i<=
nloop;i++) {
1509 for (i=1;i<=
nloop;i++) {
1534 for (i=1;i<=
nloop;i++) {
1597 if (
gPad->GetFrameFillColor()==1) {
1625 xlow =
x[i-1] -
dbar;
1633 else ylow =
gPad->GetUymin();
1649 ylow =
y[i-1] -
dbar;
1705 const char *
where =
"PaintGrapHist";
1719 Int_t first, last, nbins;
1761 nbins = last - first + 1;
1790 if (
gPad->GetGridx()) {
1794 if (
gPad->GetLogx()) {
1821 if (
gPad->GetGridy()) {
1825 if (
gPad->GetLogy()) {
1881 for (
j=first;
j<=last;
j++) {
1890 if (
j != last)
Error(
where,
"X must be in increasing order");
1891 else Error(
where,
"X must have N+1 values with option N");
1924 for (
j=first;
j<=last;
j++) {
1931 if (
j != last)
Error(
where,
"Y must be in increasing order");
1932 else Error(
where,
"Y must have N+1 values with option N");
1967 for (i=first; i<=last;i++) {
1972 xi1 =
x[i]; xi =
x[i-1];
1974 if (i != last)
Error(
where,
"X must be in increasing order");
1975 else Error(
where,
"X must have N+1 values with option N");
2034 for (i=first; i<=last;i++) {
2041 if (i != last)
Error(
where,
"Y must be in increasing order");
2042 else Error(
where,
"Y must have N+1 values with option N");
2073 for (i=first; i<=last;i++) {
2078 xi1 =
x[i]; xi =
x[i-1];
2080 if (i != last)
Error(
where,
"X must be in increasing order");
2081 else Error(
where,
"X must have N+1 values with option N");
2117 for (i=first; i<=last;i++) {
2124 if (i != last)
Error(
where,
"Y must be in increasing order");
2125 else Error(
where,
"Y must have N+1 values with option N");
2167 for (i=first; i<=last;i++) {
2172 xi1 =
x[i]; xi =
x[i-1];
2174 if (i != last)
Error(
where,
"X must be in increasing order");
2175 else Error(
where,
"X must have N+1 values with option N");
2220 for (i=first; i<=last;i++) {
2227 if (i != last)
Error(
where,
"Y must be in increasing order");
2228 else Error(
where,
"Y must have N+1 values with option N");
2267 offset = delta*baroffset;
dbar = delta*barwidth;
2271 dbar = (
x[1]-
x[0])*barwidth;
2274 dbar = (
y[1]-
y[0])*barwidth;
2284 else ylow =
gPad->GetUymin();
2286 for (i=first; i<=last;i++) {
2300 xi1 =
x[i]; xi =
x[i-1];
2302 Error(
where,
"X must be in increasing order");
2306 dbar = (
x[i+1]-
x[i])*barwidth;
2316 else xlow =
gPad->GetUxmin();
2317 for (i=first; i<=last;i++) {
2327 ylow = ylow + delta;
2333 Error(
where,
"Y must be in increasing order");
2337 dbar = (
y[i+1]-
y[i])*barwidth;
2356 for (i=first; i<=last;i++) {
2358 else xm =
x[i-1] + 0.5*(
x[i]-
x[i-1]);
2385 for (i=first; i<=last;i++) {
2387 else ym =
y[i-1] + 0.5*(
y[i]-
y[i-1]);
2437 static Float_t cxx[30] = {1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.6,1.0,0.5,0.5,1.0,0.5,0.6,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
2438 static Float_t cyy[30] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
2487 Error(
"PaintGraphAsymmErrors",
"too many points, out of memory");
2513 if (mark >= 20 && mark <= 49) {
2531 Double_t x,
y,
exl,
exh,
eyl,
eyh,
xl1,
xl2,
xr1,
xr2, yup,
yup1,
yup2, ylow,
ylow1,
ylow2;
2543 if (
x >
gPad->GetUxmax())
x =
gPad->GetUxmax();
2545 if (
y >
gPad->GetUymax())
y =
gPad->GetUymax();
2548 if (
x >
gPad->GetUxmax())
continue;
2550 if (
y >
gPad->GetUymax())
continue;
2629 if (
exl != 0. ||
exh != 0.) {
2662 if (
eyl != 0. ||
eyh != 0.) {
2711 gPad->SetLogx(logx);
2712 gPad->SetLogy(logy);
2737 std::vector<TString> options(
NYErrors + 1);
2753 options[filled] =
tsOpt.Copy();
2760 std::vector<Double_t>
xline;
2767 static Float_t cxx[30] = {1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.6,1.0,0.5,0.5,1.0,0.5,0.6,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
2768 static Float_t cyy[30] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
2787 std::vector<Bool_t> DrawErrors(
NYErrors);
2803 std::vector<Double_t> Scale(
NYErrors);
2808 if (options[
j + 1].Contains(
"s=")) {
2814 DrawErrors[
j] = !options[
j + 1].Contains(
"x");
2820 if (options[
j + 1].Contains(
"|>"))
2822 else if (options[
j + 1].Contains(
">"))
2827 Option5[
j] = options[
j + 1].Contains(
"5");
2828 Option4[
j] = options[
j + 1].Contains(
"4");
2832 Option0[
j] = options[
j + 1].Contains(
"0");
2842 options[0].ReplaceAll(
"x0",
"");
2843 options[0].ReplaceAll(
"y0",
"");
2851 if (options[0].Contains(
"|>"))
2853 else if (options[0].Contains(
">"))
2857 if (options[0].Contains(
"s=")) {
2859 options[0].ReplaceAll(options[0](
ScaleRegExp),
"");
2867 Bool_t DrawAxis = options[0].Contains(
"a");
2888 if (
xline.empty()) {
2889 Error(
"PaintGraphMultiErrors",
"too many points, out of memory");
2902 Error(
"PaintGraphMultiErrors",
"too many points, out of memory");
2908 tg->TAttLine::Modify();
2911 arrow.SetLineWidth(
tg->GetLineWidth());
2912 arrow.SetLineColor(
tg->GetLineColor());
2913 arrow.SetFillColor(
tg->GetFillColor());
2917 box.SetLineWidth(
tg->GetLineWidth());
2918 box.SetLineColor(
tg->GetLineColor());
2919 box.SetFillColor(
tg->GetFillColor());
2920 box.SetFillStyle(
tg->GetFillStyle());
2928 if (mark >= 20 && mark <= 49) {
2929 cx = cxx[mark - 20];
2930 cy =
cyy[mark - 20];
2958 x =
gPad->GetUxmin();
2959 if (
x >
gPad->GetUxmax())
2960 x =
gPad->GetUxmax();
2962 y =
gPad->GetUymin();
2963 if (
y >
gPad->GetUymax())
2964 y =
gPad->GetUymax();
2981 box.SetLineWidth(
tg->GetLineWidth(
j));
2982 box.SetLineColor(
tg->GetLineColor(
j));
2983 box.SetFillColor(
tg->GetFillColor(
j));
2984 box.SetFillStyle(
tg->GetFillStyle(
j));
3025 tg->GetAttLine(
j)->Modify();
3027 arrow.SetLineWidth(
tg->GetLineWidth(
j));
3028 arrow.SetLineColor(
tg->GetLineColor(
j));
3029 arrow.SetFillColor(
tg->GetFillColor(
j));
3089 tg->TAttLine::Modify();
3091 arrow.SetLineWidth(
tg->GetLineWidth());
3092 arrow.SetLineColor(
tg->GetLineColor());
3093 arrow.SetFillColor(
tg->GetFillColor());
3172 gPad->SetLogx(logx);
3173 gPad->SetLogy(logy);
3190 static Float_t cxx[30] = {1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.6,1.0,0.5,0.5,1.0,0.5,0.6,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
3191 static Float_t cyy[30] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
3244 Error(
"PaintGraphBentErrors",
"too many points, out of memory");
3270 if (mark >= 20 && mark <= 49) {
3288 Double_t x,
y,
exl,
exh,
eyl,
eyh,
xl1,
xl2,
xr1,
xr2, yup,
yup1,
yup2, ylow,
ylow1,
ylow2;
3305 if (
x >
gPad->GetUxmax())
x =
gPad->GetUxmax();
3307 if (
y >
gPad->GetUymax())
y =
gPad->GetUymax();
3310 if (
x >
gPad->GetUxmax())
continue;
3312 if (
y >
gPad->GetUymax())
continue;
3406 if (
exl != 0. ||
exh != 0.) {
3439 if (
eyl != 0. ||
eyh != 0.) {
3489 gPad->SetLogx(logx);
3490 gPad->SetLogy(logy);
3507 static Float_t cxx[30] = {1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.6,1.0,0.5,0.5,1.0,0.5,0.6,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
3508 static Float_t cyy[30] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
3555 Error(
"PaintGraphErrors",
"too many points, out of memory");
3582 if (mark >= 20 && mark <= 49) {
3600 Double_t x,
y,
ex,
ey,
xl1,
xl2,
xr1,
xr2, yup,
yup1,
yup2, ylow,
ylow1,
ylow2;
3612 if (
x >
gPad->GetUxmax())
x =
gPad->GetUxmax();
3614 if (
y >
gPad->GetUymax())
y =
gPad->GetUymax();
3617 if (
x >
gPad->GetUxmax())
continue;
3619 if (
y >
gPad->GetUymax())
continue;
3779 gPad->SetLogx(logx);
3780 gPad->SetLogy(logy);
3899 if (!
gPad->GetLogx() && !
gPad->GetLogy()) {
3900 Double_t a,
b,
c = 1,
x1,
x2,
y1,
y2,
discr,
norm1,
norm2,
xts,
yts;
3992 TIter next(
gPad->GetListOfPrimitives());
3993 while (
auto obj = next()) {
3996 if (obj->GetName() && !
strcmp(obj->GetName(),
"title")) {
4002 if (title)
delete title;
4008 if (
ht <= 0)
ht = 0.05;
4047 ptitle->SetName(
"title");
4076 Error(
"TGraphQQ::Paint",
"2nd dataset or theoretical function not specified");
4081 theGraphQQ->GetXaxis()->SetTitle(
"theoretical quantiles");
4082 theGraphQQ->GetYaxis()->SetTitle(
"data quantiles");
4099 line3.SetLineStyle(2);
4145 theHist->GetXaxis()->SetTickLength(0.);
4146 theHist->GetXaxis()->SetLabelOffset(999.);
4147 theHist->GetXaxis()->SetAxisColor(
gPad->GetFrameFillColor());
4150 theHist->GetYaxis()->SetTickLength(0.);
4151 theHist->GetYaxis()->SetLabelOffset(999.);
4152 theHist->GetYaxis()->SetAxisColor(
gPad->GetFrameFillColor());
4217 theHist->GetXaxis()->SetTickLength(0.);
4218 theHist->GetXaxis()->SetLabelOffset(999.);
4221 if (
gPad->GetGridx()) {
4222 if (
gPad->GetLogy()) {
4234 if (
gPad->GetLogx()) {
4265 if (
gPad->GetLogx()) {
4269 for (i=0; i<
N; i++)
rX[i] =
dX-
X[i];
4289 if (
gPad->GetGridy()) {
4290 if (
gPad->GetLogx()) {
4302 if (
gPad->GetLogy()) {
4332 if (
gPad->GetLogy()) {
4336 for (i=0; i<
N; i++)
rY[i] =
dY-Y[i];
4397 for (
int i=0; i<
n; i++) {
4415 if (
theX[0] == 0.) {
4425 if (
theY[0] == 0.) {
4461 if (
h->GetMinimum() !=
h->GetMaximum()) {
4463 if (
maxc>
h->GetMaximum())
maxc =
h->GetMaximum();
4495 palette->SetLabelColor(
h->GetZaxis()->GetLabelColor());
4496 palette->SetLabelFont(
h->GetZaxis()->GetLabelFont());
4497 palette->SetLabelOffset(
h->GetZaxis()->GetLabelOffset());
4498 palette->SetLabelSize(
h->GetZaxis()->GetLabelSize());
4499 palette->SetTitleOffset(
h->GetZaxis()->GetTitleOffset());
4500 palette->SetTitleSize(
h->GetZaxis()->GetTitleSize());
4501 palette->SetNdivisions(
h->GetZaxis()->GetNdivisions());
4502 palette->SetTitle(
h->GetZaxis()->GetTitle());
4503 palette->SetTitleColor(
h->GetZaxis()->GetTitleColor());
4504 palette->SetTitleFont(
h->GetZaxis()->GetTitleFont());
4513 int logx =
gPad->GetLogx();
4514 int logy =
gPad->GetLogy();
4515 int logz =
gPad->GetLogz();
4524 for (
int i=0; i<
n; i++) {
4532 if (
c<
minc)
continue;
4533 if (
c>
maxc)
continue;
4555 gPad->PaintPolyMarker(1,&
x,&
y);
4580 auto obj =
lnk->GetObject();
4585 obj->Paint(
lnk->GetOption());
4605 std::vector<Double_t>
xf(2*
n);
4606 std::vector<Double_t>
yf(2*
n);
4607 std::vector<Double_t>
xt(
n);
4608 std::vector<Double_t>
yt(
n);
4609 Double_t x1,
x2,
y1,
y2,
x3,
y3,
xm,
ym,
a,
a1,
a2,
a3;
4641 for (i=1; i<
n; i++) {
4642 if (
x[i]==
x[i-1] &&
y[i]==
y[i-1])
continue;
4645 if (
xf[i]==
xf[i-1])
xf[i] += 0.000001;
4679 for (i=1; i<
nf; i++) {
4749 for (i=
nf2; i>0; i--) {
4750 for (
j=i-1;
j>0;
j--) {
4751 if (
xt[i-1]==
xt[i] ||
xt[
j-1]==
xt[
j])
continue;
4785 for (i=0; i<
nf+1; i++) {
4791 gPad->PaintFillArea(
nf+1,
xf.data(),
yf.data());
4806 while (
auto obj = next()) {
4816 if (!
dofit) fit =
nullptr;
4827 else nlinesf += fit->GetNpar();
4844 stats->SetOptStat(0);
4853 stats->SetName(
"stats");
4856 stats->SetTextAlign(12);
4874 for (
Int_t ipar=0;ipar<fit->GetNpar();ipar++) {
4880 ,fit->GetParError(ipar));
4949 if (
qlx.empty() ||
qly.empty()) {
4950 Error(
"Smooth",
"not enough space in memory");
4990 if ((
x[i]-
x[i-1])*(
x[i-1]-
x[i-2]) < 0)
six++;
4991 if ((
y[i]-
y[i-1])*(
y[i-1]-
y[i-2]) < 0)
siy++;
5037 if (
x[0] ==
x[1] &&
y[0] ==
y[1])
goto L40;
5064 if (
x[k-1] ==
x[k-2] &&
y[k-1] ==
y[k-2])
goto L50;
5086 if (
x[k-1] ==
x[k] &&
y[k-1] ==
y[k])
goto L80;
5109 dx1 =
x[k-1] -
x[km-1];
5110 dy1 =
y[k-1] -
y[km-1];
5156 if (k <= 1)
goto L120;
5251 z = z*z/((
a*
a+
b*
b)*(delta*delta));
5252 z = (z+2.642937)*z/((.3715652*z+3.063444)*z+.2441889)-
cc;
5257 if (z > err)
goto L240;
5262 if (
iw+2 == 0)
goto L190;
5284 Error(
"Smooth",
"Attempt to plot outside plot limits");
5362 if (finished > 0)
goto L390;
5363 if (finished < 0) { finished = 0;
goto L110;}
5364 if (s > 0)
goto L180;
const Int_t kMaxPixel
Max value for an int.
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t wmin
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void xpos
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void ypos
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t wmax
Option_t Option_t TPoint TPoint const char y1
static Int_t gHighlightPoint
static TGraph * gHighlightGraph
static std::unique_ptr< TMarker > gHighlightMarker
R__EXTERN TStyle * gStyle
Draw all kinds of Arrows.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual Width_t GetLineWidth() const
Return the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Int_t DistancetoLine(Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
Compute distance from point px,py to a line.
static Style_t GetMarkerStyleBase(Style_t style)
Internal helper function that returns the corresponding marker style with line width 1 for the given ...
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
virtual void PaintAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, Double_t &wmin, Double_t &wmax, Int_t &ndiv, Option_t *chopt="", Double_t gridlength=0, Bool_t drawGridOnly=kFALSE)
Control function to draw an axis.
void SetLabelOffset(Float_t labeloffset)
void SetTickSize(Float_t ticksize)
void SetLabelSize(Float_t labelsize)
TGraph with asymmetric error bars and multiple y error dimensions.
void PaintGraphPolar(TGraph *theGraph, Option_t *option)
Paint this TGraphPolar with its current attributes.
void PaintGraph(TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) override
Control function to draw a graph.
void PaintGraphErrors(TGraph *theGraph, Option_t *option)
Paint this TGraphErrors with its current attributes.
void PaintGraphAsymmErrors(TGraph *theGraph, Option_t *option)
Paint this TGraphAsymmErrors with its current attributes.
void PaintGraphMultiErrors(TGraph *theGraph, Option_t *option)
Paint this TGraphMultiErrors with its current attributes.
virtual void PaintHighlightPoint(TGraph *theGraph, Option_t *option)
Paint highlight point as TMarker object (open circle)
void PaintGraphReverse(TGraph *theGraph, Option_t *option)
Paint theGraph reverting values along X and/or Y axis. a new graph is created.
void PaintGrapHist(TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) override
This is a service method used by THistPainter to paint 1D histograms.
static Int_t fgMaxPointsPerLine
Number of points per chunks' line when drawing a graph.
void PaintStats(TGraph *theGraph, TF1 *fit) override
Paint the statistics box with the fit info.
void PaintPolyLineHatches(TGraph *theGraph, Int_t n, const Double_t *x, const Double_t *y)
Paint a polyline with hatches on one side showing an exclusion zone.
void DrawPanelHelper(TGraph *theGraph) override
Display a panel with all histogram drawing options.
char * GetObjectInfoHelper(TGraph *theGraph, Int_t px, Int_t py) const override
void ExecuteEventHelper(TGraph *theGraph, Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
virtual void HighlightPoint(TGraph *theGraph, Int_t hpoint, Int_t distance)
Check on highlight point.
void ComputeLogs(Int_t npoints, Int_t opt)
Compute the logarithm of variables gxwork and gywork according to the value of Options and put the re...
std::vector< Double_t > gxworkl
Int_t DistancetoPrimitiveHelper(TGraph *theGraph, Int_t px, Int_t py) override
Compute distance from point px,py to a graph.
std::vector< Double_t > gxwork
std::vector< Double_t > gywork
void PaintScatter(TScatter *theScatter, Option_t *option) override
Paint a scatter plot.
void Smooth(TGraph *theGraph, Int_t npoints, Double_t *x, Double_t *y, Int_t drawtype)
Smooth a curve given by N points.
std::vector< Double_t > gyworkl
Internal buffers for coordinates. Used for graphs painting.
void SetHighlight(TGraph *theGraph) override
Set highlight (enable/disable) mode for theGraph.
virtual Int_t GetHighlightPoint(TGraph *theGraph) const
Return the highlighted point for theGraph.
void PaintGraphSimple(TGraph *theGraph, Option_t *option)
Paint a simple graph, without errors bars.
void PaintGraphQQ(TGraph *theGraph, Option_t *option)
Paint this graphQQ. No options for the time being.
~TGraphPainter() override
Destructor.
static void SetMaxPointsPerLine(Int_t maxp=50)
Static function to set fgMaxPointsPerLine for graph painting.
void PaintGraphBentErrors(TGraph *theGraph, Option_t *option)
Paint this TGraphBentErrors with its current attributes.
TGraphPainter()
Default constructor.
void PaintHelper(TGraph *theGraph, Option_t *option) override
Paint a any kind of TGraph.
This class allows to draw quantile-quantile plots.
A TGraph is an object made of two arrays X and Y with npoints each.
@ kClipFrame
Clip to the frame boundary.
@ kNoStats
Don't draw stats box.
1-D histogram with a float per channel (see TH1 documentation)
@ kNoTitle
Don't draw the histogram title.
@ kNoStats
Don't draw stats box.
2-D histogram with a float per channel (see TH1 documentation)
To draw Mathematical Formula.
Use the TLine constructor to create a simple line.
virtual void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Draw this line with new coordinates.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual const char * GetTitle() const
Returns title of object.
@ kCannotPick
if object in a pad cannot be picked
@ kCanDelete
if object in a list can be deleted
@ kMustCleanup
if object destructor must call RecursiveRemove()
The palette painting class.
The histogram statistics painter class.
A Pave (see TPave) with text, lines or/and boxes inside.
virtual TText * GetLine(Int_t number) const
Get Pointer to line number in this pavetext.
Double_t GetX1NDC() const
virtual void SetX2NDC(Double_t x2)
Regular expression class.
A TScatter is able to draw four variables scatter plot on a single plot.
void ToLower()
Change string to lower-case.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
void ToUpper()
Change string to upper case.
TString & Append(const char *cs)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Color_t GetLabelColor(Option_t *axis="X") const
Return the label color number in the axis.
Color_t GetStatTextColor() const
Float_t GetTitleX() const
Int_t GetOptTitle() const
Int_t GetNdivisions(Option_t *axis="X") const
Return number of divisions.
Float_t GetStatFontSize() const
Float_t GetBarOffset() const
Float_t GetLabelSize(Option_t *axis="X") const
Return label size.
Float_t GetTickLength(Option_t *axis="X") const
Return tick length.
Style_t GetLabelFont(Option_t *axis="X") const
Return label font.
Float_t GetTitleY() const
Style_t GetTitleFont(Option_t *axis="X") const
Return title font.
Color_t GetTitleFillColor() const
Style_t GetTitleStyle() const
Float_t GetLabelOffset(Option_t *axis="X") const
Return label offset.
Color_t GetStatColor() const
Float_t GetBarWidth() const
void SetDrawBorder(Int_t drawborder=1)
Width_t GetTitleBorderSize() const
Int_t GetColorPalette(Int_t i) const
Return color number i in current palette.
Float_t GetEndErrorSize() const
Int_t GetDrawBorder() const
Width_t GetStatBorderSize() const
Color_t GetTitleTextColor() const
Float_t GetTitleH() const
Style_t GetStatStyle() const
const char * GetFitFormat() const
const char * GetStatFormat() const
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
Style_t GetStatFont() const
Float_t GetTitleFontSize() const
Int_t GetTitleAlign() const
Color_t GetAxisColor(Option_t *axis="X") const
Return the axis color number in the axis.
Float_t GetTitleW() const
Base class for several text objects.
Abstract base class used by ROOT graphics editor.
static TVirtualPadEditor * GetPadEditor(Bool_t load=kTRUE)
Returns the pad editor dialog. Static method.
small helper class to store/restore gPad context in TPad methods
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Double_t Prob(Double_t chi2, Int_t ndf)
Computation of the probability for a certain Chi-squared (chi2) and number of degrees of freedom (ndf...
Bool_t IsInside(T xp, T yp, Int_t np, T *x, T *y)
Function which returns kTRUE if point xp,yp lies inside the polygon defined by the np points in array...
Double_t ATan(Double_t)
Returns the principal value of the arc tangent of x, expressed in radians.
constexpr Double_t PiOver2()
Double_t Sqrt(Double_t x)
Returns the square root of x.
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Returns x raised to the power y.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
Double_t Log10(Double_t x)
Returns the common (base-10) logarithm of x.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.