3267 return fPie->DistancetoPrimitive(px, py);
3381 if (
gPad->IsVertical()) {
3437 if (
f->InheritsFrom(
TF1::Class())) dist =
f->DistancetoPrimitive(-px,py);
3438 else dist =
f->DistancetoPrimitive(px,py);
3452 Error(
"DrawPanel",
"need to draw histogram first");
3457 gROOT->ProcessLine(
TString::Format(
"((TCanvas*)0x%zx)->Selected((TVirtualPad*)0x%zx,(TObject*)0x%zx,1)",
3458 (
size_t)
gPad->GetCanvas(), (
size_t)
gPad, (
size_t)
fH).Data());
3473 static std::unique_ptr<TBox>
zoombox;
3480 if (!
gPad->IsEditable())
return;
3483 fPie->ExecuteEvent(event, px, py);
3501 if (IsSame.
Index(
"same")>=0) {
3503 TIter next(
gPad->GetListOfPrimitives());
3504 while ((
h1 = (
TH1 *)next())) {
3522 fH->TAttLine::Modify();
3524 if (
opaque && dimension ==2) {
3531 if (
gPad->GetLogx()) {
3535 if (
gPad->GetLogy()) {
3539 if (
zoombox)
Error(
"ExecuteEvent",
"Last zoom box was not deleted");
3557 if (dimension ==1) {
3565 x =
gPad->AbsPixeltoX(px);
3570 ylow =
gPad->GetUymin();
3571 px1 =
gPad->XtoAbsPixel(xlow);
3572 px2 =
gPad->XtoAbsPixel(xup);
3573 py1 =
gPad->YtoAbsPixel(ylow);
3583 if (dimension ==1) {
3584 if (
gROOT->GetEditHistograms()) {
3600 if (
opaque && dimension ==2) {
3619 if (dimension ==2) {
3638 if (dimension == 2) {
3660 if (dimension ==1) {
3661 if (
gROOT->GetEditHistograms()) {
3670 if (
opaque && dimension ==2) {
3698 event =
gVirtualX->RequestLocator(1, 1, px, py);
3722 if (!
dt && !
dtOld)
return nullptr;
3727 ((
THistPainter*)
this)->fGraph2DPainter =
dt ? std::make_unique<TGraph2DPainter>(
dt) : std::make_unique<TGraph2DPainter>(
dtOld);
3739 if (!
gPad)
return (
char*)
"";
3763 if (
gPad->IsVertical()) {
3767 TIter next(
gPad->GetListOfPrimitives());
3768 while ((
h1 = (
TH1 *)next())) {
3795 TIter next(
gPad->GetListOfPrimitives());
3796 while ((
h1 = (
TH1 *)next())) {
3843 fObjectInfo.
Form(
"(x=%g, y=%g, binx=%d, biny=%d, binc=%g, bine=%g, binn=%d)",
3925 if (
gPad->GetLogx()) {
3929 if (
gPad->GetLogy()) {
3936 if (
gPad->IsVertical()) {
3950 if (
gPad->IsVertical()) {
4145 Warning(
"MakeChopt",
"option SCAT is deprecated.");
4413 Warning(
"MakeChopt",
"option SURF5 is not supported in Cartesian and Polar modes");
4435 if (!left)
return 0;
4437 if (!right)
return 0;
4439 if (
nch < 2)
return 0;
4440 char *cuts = left+1;
4449 while (*cuts ==
' ') cuts++;
4451 while (cuts[nc-1] ==
' ') {cuts[nc-1] = 0; nc--;}
4455 while ((obj = next())) {
4470 for (i=0;i<=
nch;i++) left[i] =
' ';
4498 gROOT->ProcessLineFast(
TString::Format(
"TSpectrum2Painter::PaintSpectrum((TH2F*)0x%zx,\"%s\",%d)",
4511 fPie = std::make_unique<TPie>(
fH);
4514 Error(
"Paint",
"Option PIE is for 1D histograms only");
4585 gPad->RangeAxisChanged();
4603 if (gridx)
gPad->SetGridx(0);
4604 if (gridy)
gPad->SetGridy(0);
4606 if (gridx)
gPad->SetGridx(1);
4607 if (gridy)
gPad->SetGridy(1);
4642 if (gridx)
gPad->SetGridx(0);
4643 if (gridy)
gPad->SetGridy(0);
4645 if (gridx)
gPad->SetGridx(1);
4646 if (gridy)
gPad->SetGridy(1);
4655 while ((obj = next())) {
4663 if (!
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode())
4690 arrow->SetAngle(30);
4691 arrow->SetFillStyle(1001);
4711 for (
Int_t id=1;
id<=2;
id++) {
4736 }
else if (
id == 2) {
4790 TIter next(
gPad->GetListOfPrimitives());
4793 while ((obj = next())) {
4799 if (
strstr(opt,
"hbar")) {
4813 static char chopt[10] =
"";
4833 TIter next(
gPad->GetListOfPrimitives());
4834 while ((obj=next())) {
4845 if (
gPad->PadInSelectionMode())
4849 if (
gPad->PadInSelectionMode() || !
gPad->PadInHighlightMode() || (
gPad->PadInHighlightMode() &&
gPad->GetSelected() ==
fXaxis)) {
4862 if (
gPad->GetGridx()) {
4929 if (
gPad->GetTickx() && !
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode()) {
4947 if (
gPad->PadInSelectionMode())
4951 if (
gPad->PadInSelectionMode() || !
gPad->PadInHighlightMode() || (
gPad->PadInHighlightMode() &&
gPad->GetSelected() ==
fYaxis)) {
4958 if (
gPad->GetGridy()) {
5025 if (
gPad->GetTicky() && !
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode()) {
5026 if (
gPad->GetTicky() < 2) {
5161 while ((obj = next())) {
5182 fH->TAttLine::Modify();
5183 fH->TAttFill::Modify();
5185 Double_t z,
xk,
xstep,
yk,
ystep,
xcent,
ycent, xlow, xup, ylow, yup;
5202 TIter next(
gPad->GetListOfPrimitives());
5203 while ((h2 = (
TH2 *)next())) {
5204 if (!h2->InheritsFrom(
TH2::Class()))
continue;
5272 if (
dz == 0)
continue;
5274 if (
zratio == 0)
continue;
5301 if (xlow >= xup)
continue;
5302 if (ylow >= yup)
continue;
5306 fH->TAttFill::Modify();
5307 gPad->PaintBox(xlow, ylow, xup, yup);
5309 gPad->PaintLine(xlow, ylow, xup, yup);
5310 gPad->PaintLine(xlow, yup, xup, ylow);
5315 fH->TAttFill::Modify();
5316 gPad->PaintBox(xlow, ylow, xup, yup);
5321 x[0] = xlow;
y[0] = ylow;
5322 x[1] = xlow +
bwidth*(xup-xlow);
y[1] = ylow +
bwidth*(yup-ylow);
5323 x[2] =
x[1];
y[2] = yup -
bwidth*(yup-ylow);
5324 x[3] = xup -
bwidth*(xup-xlow);
y[3] =
y[2];
5325 x[4] = xup;
y[4] = yup;
5326 x[5] = xlow;
y[5] = yup;
5327 x[6] = xlow;
y[6] = ylow;
5330 fH->TAttFill::Modify();
5331 gPad->PaintFillArea(7,
x,
y);
5334 x[0] = xlow;
y[0] = ylow;
5335 x[1] = xlow +
bwidth*(xup-xlow);
y[1] = ylow +
bwidth*(yup-ylow);
5336 x[2] = xup -
bwidth*(xup-xlow);
y[2] =
y[1];
5337 x[3] =
x[2];
y[3] = yup -
bwidth*(yup-ylow);
5338 x[4] = xup;
y[4] = yup;
5339 x[5] = xup;
y[5] = ylow;
5340 x[6] = xlow;
y[6] = ylow;
5343 fH->TAttFill::Modify();
5344 gPad->PaintFillArea(7,
x,
y);
5352 fH->TAttFill::Modify();
5388 hproj = h2->ProjectionY(
"_px", i, i);
5394 hproj = h2->ProjectionY(
"_px", i, i);
5395 if (
hproj->GetEntries() != 0) {
5425 hproj = h2->ProjectionX(
"_py", i, i);
5431 hproj = h2->ProjectionX(
"_py", i, i);
5432 if (
hproj->GetEntries() != 0) {
5478std::vector<THistRenderingRegion>
5481 std::vector<THistRenderingRegion>
regions;
5527 std::make_pair(bin, bin+1)};
5542 std::make_pair(binLow, binHigh)};
5562 std::make_pair(bin, bin+1)};
5572 std::make_pair(binLow, binHigh)};
5588 Error(
"THistPainter::PaintColorLevelsFast(Option_t*)",
5589 "Only cartesian coordinates supported by 'COL2' option. Using 'COL' option instead.");
5602 if ((zmin == -1111) && (zmax == -1111)) {
5606 }
else if (zmin == -1111) {
5609 }
else if (zmax == -1111) {
5627 Error(
"THistPainter::PaintColorLevelsFast(Option_t*)",
5628 "Cannot plot logz because bin content is less than 0.");
5640 std::vector<Double_t>
contours(ndiv, 0);
5648 for (
Int_t i=0; i<ndiv; ++i) {
5665 Error(
"THistPainter::PaintColorLevelFast(Option_t*)",
5666 "Encountered error while computing rendering regions.");
5689 if (z > zmax) z = zmax;
5690 if (z < zmin) z = zmin;
5699 index = 0.001 + ((z - zmin)/
dz)*ndiv;
5746 buffer[buffer.size()-
nXPixels] = 0.95;
5775 Double_t z,
e,
zc,
xk,
xstep,
yk,
ystep, xlow, xup, ylow, yup;
5791 TIter next(
gPad->GetListOfPrimitives());
5792 while ((h2 = (
TH2 *)next())) {
5793 if (!h2->InheritsFrom(
TH2::Class()))
continue;
5794 zmin = h2->GetMinimum();
5795 zmax = h2->GetMaximum();
5824 fH->TAttFill::Modify();
5857 if (z == 0 &&
e == 0) {
5886 if (xlow >
gPad->GetUxmax())
continue;
5887 if (ylow >
gPad->GetUymax())
continue;
5890 if (xup >
gPad->GetUxmax()) xup =
gPad->GetUxmax();
5891 if (yup >
gPad->GetUymax()) yup =
gPad->GetUymax();
5895 if (z <
zc)
continue;
5897 for (
Int_t k=0; k<ndiv; k++) {
5914 fH->TAttFill::Modify();
5915 gPad->PaintBox(xlow, ylow, xup, yup);
5919 a1 = (xlow -
gPad->GetUxmin()) / (
gPad->GetUxmax() -
gPad->GetUxmin()) * 360,
5920 a2 = (xup -
gPad->GetUxmin()) / (
gPad->GetUxmax() -
gPad->GetUxmin()) * 360,
5921 rx =
gPad->GetUxmax() -
gPad->GetUxmin(),
5922 ry =
gPad->GetUymax() -
gPad->GetUymin(),
5923 r1 = (ylow -
gPad->GetUymin()) / (
gPad->GetUymax() -
gPad->GetUymin()) * rx / 2,
5924 r2 = (yup -
gPad->GetUymin()) / (
gPad->GetUymax() -
gPad->GetUymin()) * rx / 2;
5927 crown.SetYXRatio(rx > 0 ? ry / rx : 1);
5941 fH->TAttFill::Modify();
5951 Int_t i,
j, count,
ncontour,
icol,
n,
lj,
m, ix,
jx,
ljfill;
5961 gPad->SetTheta(90.);
5975 TIter next(
gPad->GetListOfPrimitives());
5976 while ((obj=next())) {
6016 Warning(
"PaintContour",
"maximum number of contours is %d, asked for %d",
6027 fH->TAttLine::Modify();
6030 std::vector<std::unique_ptr<TPolyLine>>
polys;
6032 TList *list =
nullptr;
6034 std::vector<Int_t>
np;
6040 polys.emplace_back(std::make_unique<TPolyLine>(100));
6046 for (i=0;i<count;i++) {
6048 if (list) list->Delete();
6091 if (
ir[0] !=
ir[1] ||
ir[1] !=
ir[2] ||
ir[2] !=
ir[3] ||
ir[3] !=
ir[0]) {
6096 if (
zc[0] <=
zc[1])
n = 0;
else n = 1;
6097 if (
zc[2] <=
zc[3])
m = 2;
else m = 3;
6101 for (ix=1;ix<=4;ix++) {
6109 if (
zc[0] <=
zc[1])
n = 0;
else n = 1;
6110 if (
zc[2] <=
zc[3])
m = 2;
else m = 3;
6114 for (ix=1;ix<=4;ix++) {
6126 for (ix=1; ix<=
lj-5; ix +=2) {
6140 if (count > 100)
break;
6145 if (count > 100)
continue;
6146 for (ix=1; ix<=
lj-2; ix +=2) {
6158 fH->TAttLine::Modify();
6159 gPad->PaintPolyLine(2,
xarr.data()+ix-1,
yarr.data()+ix-1);
6176 std::vector<Double_t>
xp,
yp;
6237 if (
nadd == 0)
break;
6242 fH->TAttFill::Modify();
6336 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
return;
6353 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};
6354 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};
6390 fH->TAttLine::Modify();
6391 fH->TAttFill::Modify();
6392 fH->TAttMarker::Modify();
6410 Error(
"PaintErrors",
"too many points, out of memory");
6440 for (k=first; k<=last; k++) {
6464 if (
xp <= 0)
goto L30;
6617 for (i=1; i<
if1; i++) {
6625 gPad->SetLogx(logx);
6626 gPad->SetLogy(logy);
6636 fH->TAttMarker::Modify();
6637 fH->TAttLine::Modify();
6646 fLego = std::make_unique<TPainter3dAlgorithms>(
fXbuf.data(),
fYbuf.data());
6649 Error(
"Paint2DErrors",
"no TView in current pad");
6659 fLego->SetFillStyle(
gPad->GetFrameFillStyle());
6660 fLego->SetFillColor(
gPad->GetFrameFillColor());
6661 fLego->TAttFill::Modify();
6667 fLego->TAttFill::Modify();
6671 fLego->InitMoveScreen(-1.1,1.1);
6776 fLego->InitMoveScreen(-1.1,1.1);
6778 fLego->FrontBox(90);
6803 if (frame)
gPad->Remove(frame);
6809 if (!
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode())
6821 auto obj =
lnk->GetObject();
6830 f2->
Paint(
"surf same");
6832 obj->Paint(
"cont3 same");
6835 }
else if (obj->InheritsFrom(
TF1::Class())) {
6839 gPad->PushSelectableObject(obj);
6843 if (!
gPad->PadInHighlightMode() || (
gPad->PadInHighlightMode() && obj ==
gPad->GetSelected()))
6844 obj->Paint(
lnk->GetOption());
6858 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
6883 nbins = last - first + 1;
6889 else keepx.resize(nbins+1);
6890 keepy.resize(nbins);
6896 for (
j=first;
j<=last;
j++) {
7036 cmd.Form(
"TPolyMarker3D::PaintH3((TH1 *)0x%zx,\"%s\");",(
size_t)
fH,
option);
7081 while (
auto obj = next()) {
7104 static const char *
where =
"PaintInit";
7125 Error(
where,
"cannot set X axis to log scale");
7132 TIter next(
gPad->GetListOfPrimitives());
7133 while ((obj = (
TObject *)next())) {
7144 Error(
where,
"undefined user's coordinates. Cannot use option SAME");
7148 for (i=first; i<=last; i++) {
7160 Error(
where,
"cannot set X axis to log scale");
7186 for (i=first; i<=last;i++) {
7247 Error(
where,
"log scale requested with a negative argument (%f)",
xm);
7268 }
else if (
ymin < 0) {
7288 if (allchan) factor /= allchan;
7289 if (factor == 0) factor = 1;
7307 Error(
where,
"Cannot set Y axis to log scale");
7353 static const char *
where =
"PaintInitH";
7378 Error(
where,
"cannot set Y axis to log scale");
7400 for (i=first; i<=last;i++) {
7437 Error(
where,
"log scale requested with zero or negative argument (%f)",
xm);
7453 }
else if (
xmin < 0) {
7467 if (allchan) factor /= allchan;
7468 if (factor == 0) factor = 1;
7479 Error(
where,
"Cannot set Y axis to log scale");
7518 Double_t wxyz[8][3] = { {-1,-1,-1}, {1,-1,-1}, {1,1,-1}, {-1,1,-1},
7519 {-1,-1, 1}, {1,-1, 1}, {1,1, 1}, {-1,1, 1} };
7521 {0,1,5,4}, {1,2,6,5}, {2,3,7,6}, {3,0,4,7} };
7535 fLego = std::make_unique<TPainter3dAlgorithms>(
fXbuf.data(),
fYbuf.data());
7540 Error(
"PaintH3",
"no TView in current pad");
7553 fLego->InitMoveScreen(-1.1,1.1);
7582 fH->TAttFill::Modify();
7583 fH->TAttLine::Modify();
7609 if (
w <
wmin)
continue;
7612 if (
scale == 0)
continue;
7613 for (
Int_t i=0; i<3; ++i) {
7616 for (
Int_t k=0; k<8; ++k) {
7620 for (
Int_t k=0; k<8; ++k) {
7624 for (
Int_t k=0; k<6; ++k) {
7625 for (
Int_t i=0; i<4; ++i) {
7630 x[4] =
x[0] ;
y[4] =
y[0];
7632 x[5] =
x[2] ;
y[5] =
y[2];
7633 x[6] =
x[3] ;
y[6] =
y[3];
7634 x[7] =
x[1] ;
y[7] =
y[1];
7640 if (z <= 0.)
continue;
7645 if (k == 3 || k == 5) {
7647 }
else if (k == 0 || k == 1) {
7653 fH->TAttFill::Modify();
7654 gPad->PaintFillArea(4,
x,
y);
7684 while (
auto obj = next()) {
7700 fH->TAttFill::Modify();
7710 {-1,-1,-1}, {1,-1,-1}, {1,1,-1}, {-1,1,-1},
7711 {-1,-1, 1}, {1,-1, 1}, {1,1, 1}, {-1,1, 1}
7714 {0,3,2,1}, {4,5,6,7},
7715 {0,1,5,4}, {1,2,6,5}, {2,3,7,6}, {3,0,4,7}
7719 {0,-1,0}, {1,0,0}, {0,1,0}, {-1,0,0}
7734 fLego = std::make_unique<TPainter3dAlgorithms>(
fXbuf.data(),
fYbuf.data());
7739 Error(
"PaintH3",
"no TView in current pad");
7753 fLego->InitMoveScreen(-1.1,1.1);
7758 fLego->InitRaster(-1.1,-1.1,1.1,1.1,1000,800);
7774 fH->TAttLine::Modify();
7798 if (
w <
wmin)
continue;
7801 if (
scale == 0)
continue;
7802 for (
Int_t i=0; i<3; ++i) {
7805 for (
Int_t k=0; k<8; ++k) {
7809 for (
Int_t k=0; k<8; ++k) {
7812 for (
Int_t k=0; k<6; ++k) {
7815 if (
zn <= 0)
continue;
7816 for (
Int_t i=0; i<4; ++i) {
7821 for (
Int_t i=0; i<4; ++i) {
7823 Int_t i2 = (i == 3) ? 0 : i + 1;
7829 for (
Int_t it = 0; it <
nt; ++it) {
7834 gPad->PaintPolyLine(2,
x,
y);
7845 for (
Int_t it = 0; it <
nt; ++it) {
7850 gPad->PaintPolyLine(2,
x,
y);
7857 for (
Int_t it = 0; it <
nt; ++it) {
7862 gPad->PaintPolyLine(2,
x,
y);
7865 fLego->FillPolygonBorder(4, &pp[0][0]);
7890 while (
auto obj = next()) {
7932 std::vector<Double_t>
x(
nx);
7933 std::vector<Double_t>
y(
ny);
7934 std::vector<Double_t> z(
nz);
7936 for (i=0; i<
nx; i++)
x[i] =
xaxis->GetBinCenter(i+1);
7937 for (i=0; i<
ny; i++)
y[i] =
yaxis->GetBinCenter(i+1);
7938 for (i=0; i<
nz; i++) z[i] =
zaxis->GetBinCenter(i+1);
7952 fLego = std::make_unique<TPainter3dAlgorithms>(
fXbuf.data(),
fYbuf.data());
7956 Error(
"PaintH3Iso",
"no TView in current pad");
7983 fLego->InitMoveScreen(-1.1,1.1);
7998 fLego->IsoSurface(1, s,
nx,
ny,
nz,
x.data(),
y.data(), z.data(),
"BF");
8001 fLego->InitMoveScreen(-1.1,1.1);
8003 fLego->FrontBox(90);
8015 while (
auto obj = next()) {
8125 fLego->SetEdgeAtt(
hid->GetLineColor(),
hid->GetLineStyle(),
hid->GetLineWidth(),
id);
8151 Error(
"PaintLego",
"no TView in current pad");
8164 fLego->SetFillStyle(
gPad->GetFrameFillStyle());
8165 fLego->SetFillColor(
gPad->GetFrameFillColor());
8166 fLego->TAttFill::Modify();
8174 fLego->TAttFill::Modify();
8178 if (
raster)
fLego->InitRaster(-1.1,-1.1,1.1,1.1,1000,800);
8179 else fLego->InitMoveScreen(-1.1,1.1);
8233 fLego->InitMoveScreen(-1.1,1.1);
8264 Error(
"PaintLegoAxis",
"no TView in current pad");
8290 for (i = 1; i <= 8; ++i) {
8291 r[i*3 - 3] =
av[i*3 - 3] +
av[i*3 - 2]*
cosa;
8292 r[i*3 - 2] =
av[i*3 - 2]*
sina;
8293 r[i*3 - 1] =
av[i*3 - 1];
8424 if (
ztit.Index(
";")>0) {
8478 fH->TAttMarker::Modify();
8486 if (zmin == 0 && zmax == 0)
return;
8497 if (zmin == 0 && zmax == 0)
return;
8504 if (
dz >=
kNMAX || zmax < 1) {
8513 if (zmin >= 0) zmin = 0;
8514 else zmin -=
yMARGIN*(zmax-zmin);
8517 if (zmin >= 0 && (zmin-
dzmin <= 0)) zmin = 0;
8545 if (z < zmin) z = zmin;
8546 if (z > zmax) z = zmax;
8552 if (z <= 0)
continue;
8556 for (
Int_t loop=0; loop<k; loop++) {
8557 if (k+marker >=
kNMAX) {
8571 if (
fXbuf[marker] <
gPad->GetUxmin())
break;
8572 if (
fYbuf[marker] <
gPad->GetUymin())
break;
8573 if (
fXbuf[marker] >
gPad->GetUxmax())
break;
8574 if (
fYbuf[marker] >
gPad->GetUymax())
break;
8580 if (marker > 0)
gPad->PaintPolyMarker(marker,
fXbuf.data(),
fYbuf.data());
8635 while (
auto obj = next()) {
8648 if (!
dofit) fit =
nullptr;
8707 stats->SetName(
"stats");
8710 stats->SetTextAlign(12);
8726 ,
"%",
stats->GetStatFormat());
8736 ,
"%",
stats->GetStatFormat());
8748 ,
"%",
stats->GetStatFormat());
8758 ,
"%",
stats->GetStatFormat());
8790 ,
"%",
stats->GetStatFormat());
8801 ,
"%",
stats->GetStatFormat());
8810 tf.Form(
"#chi^{2} / ndf = %s%s / %d",
"%",
stats->GetFitFormat(),
ndf);
8814 tf.Form(
"Prob = %s%s",
"%",
stats->GetFitFormat());
8824 tf.Form(
"%-8s = %s%s #pm %s ", fit->
GetParName(ipar),
"%",
stats->GetFitFormat(),
8854 while (
auto obj = next()) {
8909 stats->SetName(
"stats");
8912 stats->SetTextAlign(12);
8930 tt.Form(
tf.Data(),h2->GetMean(1));
8933 tt.Form(
tf.Data(),h2->GetMean(2));
8937 ,
"%",
stats->GetStatFormat());
8938 tt.Form(
tf.Data(),h2->GetMean(1),h2->GetMeanError(1));
8941 ,
"%",
stats->GetStatFormat());
8942 tt.Form(
tf.Data(),h2->GetMean(2),h2->GetMeanError(2));
8949 tt.Form(
tf.Data(),h2->GetStdDev(1));
8952 tt.Form(
tf.Data(),h2->GetStdDev(2));
8956 ,
"%",
stats->GetStatFormat());
8957 tt.Form(
tf.Data(),h2->GetStdDev(1),h2->GetStdDevError(1));
8960 ,
"%",
stats->GetStatFormat());
8961 tt.Form(
tf.Data(),h2->GetStdDev(2),h2->GetStdDevError(2));
8973 tt.Form(
tf.Data(),h2->GetSkewness(1));
8976 tt.Form(
tf.Data(),h2->GetSkewness(2));
8980 ,
"%",
stats->GetStatFormat());
8981 tt.Form(
tf.Data(),h2->GetSkewness(1),h2->GetSkewness(11));
8984 ,
"%",
stats->GetStatFormat());
8985 tt.Form(
tf.Data(),h2->GetSkewness(2),h2->GetSkewness(12));
8992 tt.Form(
tf.Data(),h2->GetKurtosis(1));
8995 tt.Form(
tf.Data(),h2->GetKurtosis(2));
8999 ,
"%",
stats->GetStatFormat());
9000 tt.Form(
tf.Data(),h2->GetKurtosis(1),h2->GetKurtosis(11));
9003 ,
"%",
stats->GetStatFormat());
9004 tt.Form(
tf.Data(),h2->GetKurtosis(2),h2->GetKurtosis(12));
9014 Int_t firstX = std::max(1, h2->GetXaxis()->GetFirst());
9015 Int_t firstY = std::max(1, h2->GetYaxis()->GetFirst());
9016 Int_t lastX = std::min(h2->GetXaxis()->GetLast(), h2->GetXaxis()->GetNbins());
9017 Int_t lastY = std::min(h2->GetYaxis()->GetLast(), h2->GetYaxis()->GetNbins());
9043 tt.Form(
"%-8s = %5.4g #pm %5.4g ",fit->
GetParName(ipar)
9067 while (
auto obj = next()) {
9122 stats->SetName(
"stats");
9125 stats->SetTextAlign(12);
9141 tt.Form(
tf.Data(),h3->GetMean(1));
9144 tt.Form(
tf.Data(),h3->GetMean(2));
9147 tt.Form(
tf.Data(),h3->GetMean(3));
9151 ,
"%",
stats->GetStatFormat());
9152 tt.Form(
tf.Data(),h3->GetMean(1),h3->GetMeanError(1));
9155 ,
"%",
stats->GetStatFormat());
9156 tt.Form(
tf.Data(),h3->GetMean(2),h3->GetMeanError(2));
9159 ,
"%",
stats->GetStatFormat());
9160 tt.Form(
tf.Data(),h3->GetMean(3),h3->GetMeanError(3));
9167 tt.Form(
tf.Data(),h3->GetStdDev(1));
9170 tt.Form(
tf.Data(),h3->GetStdDev(2));
9173 tt.Form(
tf.Data(),h3->GetStdDev(3));
9177 ,
"%",
stats->GetStatFormat());
9178 tt.Form(
tf.Data(),h3->GetStdDev(1),h3->GetStdDevError(1));
9181 ,
"%",
stats->GetStatFormat());
9182 tt.Form(
tf.Data(),h3->GetStdDev(2),h3->GetStdDevError(2));
9185 ,
"%",
stats->GetStatFormat());
9186 tt.Form(
tf.Data(),h3->GetStdDev(3),h3->GetStdDevError(3));
9197 tt.Form(
tf.Data(),h3->GetSkewness(1));
9200 tt.Form(
tf.Data(),h3->GetSkewness(2));
9203 tt.Form(
tf.Data(),h3->GetSkewness(3));
9207 ,
"%",
stats->GetStatFormat());
9208 tt.Form(
tf.Data(),h3->GetSkewness(1),h3->GetSkewness(11));
9211 ,
"%",
stats->GetStatFormat());
9212 tt.Form(
tf.Data(),h3->GetSkewness(2),h3->GetSkewness(12));
9215 ,
"%",
stats->GetStatFormat());
9216 tt.Form(
tf.Data(),h3->GetSkewness(3),h3->GetSkewness(13));
9223 tt.Form(
tf.Data(),h3->GetKurtosis(1));
9226 tt.Form(
tf.Data(),h3->GetKurtosis(2));
9229 tt.Form(
tf.Data(),h3->GetKurtosis(3));
9233 ,
"%",
stats->GetStatFormat());
9234 tt.Form(
tf.Data(),h3->GetKurtosis(1),h3->GetKurtosis(11));
9237 ,
"%",
stats->GetStatFormat());
9238 tt.Form(
tf.Data(),h3->GetKurtosis(2),h3->GetKurtosis(12));
9241 ,
"%",
stats->GetStatFormat());
9242 tt.Form(
tf.Data(),h3->GetKurtosis(3),h3->GetKurtosis(13));
9257 tt.Form(
"%-8s = %5.4g #pm %5.4g ",fit->
GetParName(ipar)
9361 Error(
"PaintSurface",
"no TView in current pad");
9372 fLego->SetFillStyle(0);
9373 fLego->SetFillColor(1);
9375 fLego->SetFillStyle(
gPad->GetFrameFillStyle());
9376 fLego->SetFillColor(
gPad->GetFrameFillColor());
9378 fLego->TAttFill::Modify();
9386 fLego->TAttFill::Modify();
9406 if (
raster)
fLego->InitRaster(-1.1,-1.1,1.1,1.1,1000,800);
9407 else fLego->InitMoveScreen(-1.1,1.1);
9481 fLego->InitMoveScreen(-1.1,1.1);
9501 fLego->InitMoveScreen(-1.1,1.1);
9539 Error(
"PaintTriangles",
"no TView in current pad, do not use option SAME");
9564 fLego = std::make_unique<TPainter3dAlgorithms>(
fXbuf.data(),
fYbuf.data());
9567 Error(
"PaintTriangles",
"no TView in current pad");
9577 fLego->SetFillStyle(
gPad->GetFrameFillStyle());
9578 fLego->SetFillColor(
gPad->GetFrameFillColor());
9579 fLego->TAttFill::Modify();
9585 fLego->TAttFill::Modify();
9589 fLego->InitMoveScreen(-1.1,1.1);
9600 fLego->InitMoveScreen(-1.1,1.1);
9602 fLego->FrontBox(90);
9626 Warning(
"PaintSurface",
"too many color levels, %d >= 100, reset to 99",
ndivz);
9633 for (i = 0; i <
ndivz; ++i) {
9707 while (
auto obj = next()) {
9715 if (!
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode()) {
9735 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
return;
9752 while ((obj=next())) {
9754 z =
b->GetContent();
9756 poly =
b->GetPolygon();
9761 g->TAttLine::Modify();
9762 g->TAttMarker::Modify();
9763 g->TAttFill::Modify();
9771 g->SetFillStyle(
fs);
9773 if (fill)
g->Paint(
"F");
9774 if (mark)
g->Paint(
"P");
9785 g->TAttLine::Modify();
9786 g->TAttMarker::Modify();
9787 g->TAttFill::Modify();
9795 g->SetFillStyle(
fs);
9797 if (fill)
g->Paint(
"F");
9798 if (mark)
g->Paint(
"P");
9811 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
9842 while (
auto obj = next()) {
9846 z =
b->GetContent();
9852 if (z < zmin)
continue;
9857 if (z <
zc)
continue;
9859 for (
Int_t k=0; k<ndiv; k++) {
9877 g->TAttFill::Modify();
9890 g->TAttFill::Modify();
9905 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
9908 Int_t k, loop, marker=0;
9937 while ((obj=next())) {
9945 while ((obj=next())) {
9947 poly =
b->GetPolygon();
9948 z =
b->GetContent();
9949 if (z < zmin) z = zmin;
9950 if (z > zmax) z = zmax;
9965 if (k <= 0 || z <= 0)
continue;
9968 if (k+marker >=
kNMAX) {
9974 if (
g->IsInside(
xp,
yp)) {
9981 if (marker > 0)
gPad->PaintPolyMarker(marker,
fXbuf.data(),
fYbuf.data());
9989 if (k <= 0 || z <= 0)
continue;
9992 if (k+marker >=
kNMAX) {
10005 if (marker > 0)
gPad->PaintPolyMarker(marker,
fXbuf.data(),
fYbuf.data());
10028 text.SetTextAlign(22);
10031 text.TAttText::Modify();
10038 while ((obj=next())) {
10040 p =
b->GetPolygon();
10041 x = (
b->GetXMin()+
b->GetXMax())/2;
10046 y = (
b->GetYMin()+
b->GetYMax())/2;
10051 z =
b->GetContent();
10055 tf.Form(
"#splitline{%s%s}{#pm %s%s}",
10058 tt.Form(
tf.Data(),z,
e);
10060 tt.Form(
tf.Data(),z);
10095 text.SetTextAlign(11);
10096 if (
angle == 90)
text.SetTextAlign(12);
10098 text.TAttText::Modify();
10112 if (
yt == 0.)
continue;
10122 if (
y >=
gPad->GetY2())
continue;
10129 text.SetTextAlign(22);
10132 text.TAttText::Modify();
10151 tf.Form(
"#splitline{%s%s}{#pm %s%s}",
10154 tt.Form(
tf.Data(),z,
e);
10156 tt.Form(
tf.Data(),z);
10184 fLego = std::make_unique<TPainter3dAlgorithms>(
fXbuf.data(),
fYbuf.data());
10188 Error(
"PaintTF3",
"no TView in current pad");
10196 fLego->InitMoveScreen(-1.1,1.1);
10201 fLego->BackBox(90);
10211 fLego->InitMoveScreen(-1.1,1.1);
10213 fLego->FrontBox(90);
10250 TIter next(
gPad->GetListOfPrimitives());
10251 while ((obj = next())) {
10254 if (
strcmp(title->
GetName(),
"title")) {title =
nullptr;
continue;}
10258 if (title)
delete title;
10273 if (
ht <= 0)
ht = 0.05;
10310 ptitle->SetName(
"title");
10433 for (
int i = 0; i < 100; i++) {
10442 theta -= num /
den;
10541 if (
h ==
nullptr)
return;
10555 static const char *
where =
"TableInit";
10583 Error(
where,
"cannot set X axis to log scale");
10612 Error(
where,
"cannot set Y axis to log scale");
10648 if (!
Hoption.
Same)
Error(
where,
"log scale is requested but maximum is less or equal 0 (%f)", zmax);
10654 if (zmin >= zmax) {
10656 if (zmax > 0) zmin = 0.001*zmax;
10658 if (!
Hoption.
Same)
Error(
where,
"log scale is requested but maximum is less or equal 0 (%f)", zmax);
10668 if (allchan) factor /= allchan;
10669 if (factor == 0) factor = 1;
10671 zmax = factor*zmax;
10672 zmin = factor*zmin;
10706 if (zmin >= 0) zmin = 0;
10707 else zmin -=
yMARGIN*(zmax-zmin);
10710 if (zmin >= 0 && (zmin-
dzmin <= 0)) zmin = 0;
10711 else zmin -=
dzmin;
10737 tf.Form(
"%s%s",
"%",
f);
10738 tv.Form(
tf.Data(),
v);
10741 int ie =
tv.Index(
"e");
10742 int iE =
tv.Index(
"E");
10743 int id =
tv.Index(
".");
10747 if (
ie >= 0 ||
iE >= 0) {
10748 if (
tv.Index(
"+") >= 0) {
10750 ef.Form(
"%s.1f",
"%");
10753 ef.Form(
"%s.%de",
"%",
ie-
id-1);
10755 ef.Form(
"%s.%dE",
"%",
iE-
id-1);
10760 ef.Form(
"%s.%de",
"%",
ie-
id-1);
10762 ef.Form(
"%s.%dE",
"%",
iE-
id-1);
10767 }
else if (
id < 0) {
10768 ef.Form(
"%s.1f",
"%");
10773 ef.Form(
"%s.%df",
"%",
tv.Length()-
id-1);
10787 if (
c2)
c2->Close();
10793 if (
c1)
c1->Close();
10797 if (nbins <= 0)
return;
10815 gROOT->MakeDefCanvas();
10825 if (
c2)
c2->Close();
10831 if (
c1)
c1->Close();
10854 gROOT->MakeDefCanvas();
10857 gROOT->MakeDefCanvas();
10870 gPad->SetDoubleBuffer(0);
10906 c->SetLogy(
ctxt.GetSaved()->GetLogz());
10907 c->SetLogx(
ctxt.GetSaved()->GetLogx());
10913 hp->SetFillColor(38);
10955 gPad->SetDoubleBuffer(0);
10994 c->SetLogy(
ctxt.GetSaved()->GetLogz());
10995 c->SetLogx(
ctxt.GetSaved()->GetLogy());
11001 hp->SetFillColor(38);
11060 gPad->SetDoubleBuffer(0);
11117 if (line1[0].GetX())
gVirtualX->DrawPolyLine(2,line1);
11118 if (nbins>1 && line1[0].GetX()) {
11170 endface1[0].SetX(line1[0].GetX());
11171 endface1[0].SetY(line1[0].GetY());
11172 endface1[1].SetX(line2[0].GetX());
11173 endface1[1].SetY(line2[0].GetY());
11178 endface1[4].SetX(line1[0].GetX());
11179 endface1[4].SetY(line1[0].GetY());
11181 endface2[0].SetX(line1[1].GetX());
11182 endface2[0].SetY(line1[1].GetY());
11183 endface2[1].SetX(line2[1].GetX());
11184 endface2[1].SetY(line2[1].GetY());
11189 endface2[4].SetX(line1[1].GetX());
11190 endface2[4].SetY(line1[1].GetY());
11200 TH1 *
hp = h3->Project3D(
"x");
11204 hp->SetFillColor(38);
11213 hp->SetYTitle(
"Number of Entries");
11232 if (line1[0].GetX())
gVirtualX->DrawPolyLine(2,line1);
11233 if (nbins>1 && line1[0].GetX()) {
11285 endface1[0].SetX(line1[0].GetX());
11286 endface1[0].SetY(line1[0].GetY());
11287 endface1[1].SetX(line2[0].GetX());
11288 endface1[1].SetY(line2[0].GetY());
11293 endface1[4].SetX(line1[0].GetX());
11294 endface1[4].SetY(line1[0].GetY());
11296 endface2[0].SetX(line1[1].GetX());
11297 endface2[0].SetY(line1[1].GetY());
11298 endface2[1].SetX(line2[1].GetX());
11299 endface2[1].SetY(line2[1].GetY());
11304 endface2[4].SetX(line1[1].GetX());
11305 endface2[4].SetY(line1[1].GetY());
11315 TH1 *
hp = h3->Project3D(
"y");
11319 hp->SetFillColor(38);
11327 hp->SetYTitle(
"Number of Entries");
11346 if (line1[0].GetX())
gVirtualX->DrawPolyLine(2,line1);
11347 if (nbins>1 && line1[0].GetX()) {
11399 endface1[0].SetX(line1[0].GetX());
11400 endface1[0].SetY(line1[0].GetY());
11401 endface1[1].SetX(line2[0].GetX());
11402 endface1[1].SetY(line2[0].GetY());
11407 endface1[4].SetX(line1[0].GetX());
11408 endface1[4].SetY(line1[0].GetY());
11410 endface2[0].SetX(line1[1].GetX());
11411 endface2[0].SetY(line1[1].GetY());
11412 endface2[1].SetX(line2[1].GetX());
11413 endface2[1].SetY(line2[1].GetY());
11418 endface2[4].SetX(line1[1].GetX());
11419 endface2[4].SetY(line1[1].GetY());
11429 TH1 *
hp = h3->Project3D(
"z");
11433 hp->SetFillColor(38);
11441 hp->SetYTitle(
"Number of Entries");
11504 TH2 *
hp = (
TH2*)h3->Project3D(
"xy");
11505 zaxis->SetRange(first,last);
11507 hp->SetFillColor(38);
11512 hp->SetZTitle(
"Number of Entries");
11574 TH2 *
hp = (
TH2*)h3->Project3D(
"yx");
11575 zaxis->SetRange(first,last);
11577 hp->SetFillColor(38);
11582 hp->SetZTitle(
"Number of Entries");
11644 TH2 *
hp = (
TH2*)h3->Project3D(
"xz");
11645 yaxis->SetRange(first,last);
11647 hp->SetFillColor(38);
11652 hp->SetZTitle(
"Number of Entries");
11714 TH2 *
hp = (
TH2*)h3->Project3D(
"zx");
11715 yaxis->SetRange(first,last);
11717 hp->SetFillColor(38);
11722 hp->SetZTitle(
"Number of Entries");
11784 TH2 *
hp = (
TH2*)h3->Project3D(
"yz");
11785 xaxis->SetRange(first,last);
11787 hp->SetFillColor(38);
11792 hp->SetZTitle(
"Number of Entries");
11854 TH2 *
hp = (
TH2*)h3->Project3D(
"zy");
11855 xaxis->SetRange(first,last);
11857 hp->SetFillColor(38);
11862 hp->SetZTitle(
"Number of Entries");
Handle_t Window_t
Window handle.
short Style_t
Style number (short)
int Int_t
Signed integer 4 bytes (int)
short Color_t
Color number (short)
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
short Width_t
Line width (short)
float Float_t
Float 4 bytes (float)
short Short_t
Signed Short integer 2 bytes (short)
double Double_t
Double 8 bytes.
const char Option_t
Option string (const char)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void pixel
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 wid
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 np
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 GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint angle
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 mode
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 backcolor
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 fs
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 text
Option_t Option_t TPoint TPoint const char y1
R__EXTERN TH1 * gCurrentHist
R__EXTERN Hoption_t Hoption
static TString gStringStdDevZ
static TString gStringStdDevX
static TString gStringIntegralBinWidth
const UInt_t kCannotRotate
static TString gStringStdDev
static TString gStringOverflow
static TString gStringUnderflow
static TString gStringSkewnessY
static TString gStringMean
static TString gStringKurtosis
static TString gStringMeanX
static TString gStringEntries
static TString gStringIntegral
static TString gStringKurtosisY
static TString gStringStdDevY
static TString gStringMeanY
static TString gStringSkewnessX
static TString gStringKurtosisX
static std::unique_ptr< TBox > gXHighlightBox
static std::unique_ptr< TBox > gYHighlightBox
static TString gStringSkewnessZ
static TString gStringMeanZ
static TString gStringSkewness
static TString gStringKurtosisZ
R__EXTERN TStyle * gStyle
R__EXTERN TSystem * gSystem
Draw all kinds of Arrows.
virtual Int_t GetNdivisions() const
virtual Float_t GetLabelOffset() const
virtual Float_t GetLabelSize() const
virtual Float_t GetTickLength() const
virtual Float_t GetTitleOffset() const
virtual Color_t GetFillColor() const
Return the fill area color.
virtual Style_t GetFillStyle() const
Return the fill area style.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual Width_t GetLineWidth() const
Return the line width.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual Style_t GetLineStyle() const
Return the line style.
virtual Style_t GetMarkerStyle() const
Return the marker style.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
virtual Color_t GetMarkerColor() const
Return the marker color.
virtual Size_t GetMarkerSize() const
Return the marker size.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
static Style_t GetMarkerStyleBase(Style_t style)
Internal helper function that returns the corresponding marker style with line width 1 for the given ...
virtual Font_t GetTextFont() const
Return the text font.
virtual void SetTextAngle(Float_t tangle=0)
Set the text angle.
Class to manage histogram axis.
virtual Bool_t GetTimeDisplay() const
Bool_t IsAlphanumeric() const
const char * GetTitle() const override
Returns title of object.
virtual Double_t GetBinCenter(Int_t bin) const
Return center of bin.
const TArrayD * GetXbins() const
const char * GetBinLabel(Int_t bin) const
Return label for bin.
virtual Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
virtual Int_t FindFixBin(Double_t x) const
Find bin number corresponding to abscissa x
const char * ChooseTimeFormat(Double_t axislength=0)
Choose a reasonable time format from the coordinates in the active pad and the number of divisions in...
Int_t GetLast() const
Return last bin on the axis i.e.
virtual const char * GetTimeFormatOnly() const
Return only the time format from the string fTimeFormat.
virtual void SetRangeUser(Double_t ufirst, Double_t ulast)
Set the viewing range for the axis from ufirst to ulast (in user coordinates, that is,...
virtual const char * GetTimeFormat() const
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width.
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
Int_t GetFirst() const
Return first bin on the axis i.e.
THashList * GetLabels() const
The candle plot painter class.
static Bool_t SupportAlpha()
Static function returning "true" if transparency is supported.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
The color creation and management class.
static void RGBtoHLS(Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &l, Float_t &s)
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
static Int_t GetColorBright(Int_t color)
Static function: Returns the bright color number corresponding to n If the TColor object does not exi...
static Int_t GetColorDark(Int_t color)
Static function: Returns the dark color number corresponding to n If the TColor object does not exist...
static void HLStoRGB(Float_t h, Float_t l, Float_t s, Float_t &r, Float_t &g, Float_t &b)
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
virtual Double_t GetXmax() const
virtual Int_t GetNDF() const
Return the number of degrees of freedom in the fit the fNDF parameter has been previously computed du...
virtual void GetParLimits(Int_t ipar, Double_t &parmin, Double_t &parmax) const
Return limits for parameter ipar.
virtual Double_t GetParError(Int_t ipar) const
Return value of parameter number ipar.
Double_t GetChisquare() const
Return the Chisquare after fitting. See ROOT::Fit::FitResult::Chi2()
virtual void SetMaximum(Double_t maximum=-1111)
Set the maximum value along Y for this function In case the function is already drawn,...
virtual Double_t GetMaximumStored() const
virtual Int_t GetNpar() const
virtual Int_t GetNumberFreeParameters() const
Return the number of free parameters.
virtual void SetMinimum(Double_t minimum=-1111)
Set the minimum value along Y for this function In case the function is already drawn,...
virtual const char * GetParName(Int_t ipar) const
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
Evaluate this function.
virtual Double_t GetXmin() const
virtual Double_t GetParameter(Int_t ipar) const
A 2-Dim function with parameters.
void Paint(Option_t *option="") override
Paint this 2-D function with its current attributes.
void SetRange(Double_t xmin, Double_t xmax) override
Initialize the upper and lower bounds to draw the function.
A 3-Dim function with parameters.
void SetTimeFormat(const char *tformat)
Change the format used for time plotting.
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 SetTitleOffset(Float_t titleoffset=1)
virtual void SetTitle(const char *title="")
Change the title of the axis.
void SetLabelOffset(Float_t labeloffset)
virtual void ImportAxisAttributes(TAxis *axis)
Internal method to import TAxis attributes to this TGaxis.
void SetTickSize(Float_t ticksize)
void SetLabelSize(Float_t labelsize)
void SetOption(Option_t *option="")
To set axis options.
Graphics object made of three arrays X, Y and Z with the same number of points each.
TGraphDelaunay2D generates a Delaunay triangulation of a TGraph2D.
TGraphDelaunay generates a Delaunay triangulation of a TGraph2D.
A TGraph is an object made of two arrays X and Y with npoints each.
@ kClipFrame
Clip to the frame boundary.
void PaintGraph(Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt)
Draw the (x,y) as a graph.
void PaintGrapHist(Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt)
Draw the (x,y) as a histogram.
1-D histogram with a double per channel (see TH1 documentation)
1-D histogram with a float per channel (see TH1 documentation)
TH1 is the base class of all histogram classes in ROOT.
virtual EBinErrorOpt GetBinErrorOption() const
virtual Float_t GetBarWidth() const
virtual Double_t GetMinimumStored() const
virtual Float_t GetBarOffset() const
virtual Double_t GetStdDev(Int_t axis=1) const
Returns the Standard Deviation (Sigma).
virtual Int_t GetNbinsY() const
virtual Double_t GetBinError(Int_t bin) const
Return value of error associated to bin number bin.
virtual Int_t GetNbinsZ() const
virtual Double_t GetNormFactor() const
virtual Double_t GetMean(Int_t axis=1) const
For axis = 1,2 or 3 returns the mean value of the histogram along X,Y or Z axis.
virtual Double_t GetSkewness(Int_t axis=1) const
virtual Double_t GetContourLevelPad(Int_t level) const
Return the value of contour number "level" in Pad coordinates.
virtual Int_t GetDimension() const
static void AddDirectory(Bool_t add=kTRUE)
Sets the flag controlling the automatic add of histograms in memory.
@ kNoTitle
Don't draw the histogram title.
@ kUserContour
User specified contour levels.
@ kNoStats
Don't draw stats box.
virtual Double_t GetSumOfWeights() const
Return the sum of weights across all bins excluding under/overflows.
virtual Int_t GetBin(Int_t binx, Int_t biny=0, Int_t binz=0) const
Return Global bin number corresponding to binx,y,z.
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
Return maximum value smaller than maxval of bins in the range, unless the value has been overridden b...
virtual Int_t GetNbinsX() const
virtual void SetMaximum(Double_t maximum=-1111)
virtual Double_t GetBinErrorLow(Int_t bin) const
Return lower error associated to bin number bin.
virtual void SetMinimum(Double_t minimum=-1111)
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content see convention for numbering bins in TH1::GetBin In case the bin number is greater th...
virtual Double_t GetBinLowEdge(Int_t bin) const
Return bin lower edge for 1D histogram.
virtual Double_t GetEntries() const
Return the current number of entries.
TList * GetListOfFunctions() const
virtual Double_t GetMeanError(Int_t axis=1) const
Return standard error of mean of this histogram along the X axis.
virtual Double_t GetMaximumStored() const
virtual void GetMinimumAndMaximum(Double_t &min, Double_t &max) const
Retrieve the minimum and maximum values in the histogram.
@ kNormal
Errors with Normal (Wald) approximation: errorUp=errorLow= sqrt(N)
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
virtual Int_t GetContour(Double_t *levels=nullptr)
Return contour values into array levels if pointer levels is non zero.
const Double_t * GetBuffer() const
virtual Bool_t IsHighlight() const
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width for 1D histogram.
virtual void SetContour(Int_t nlevels, const Double_t *levels=nullptr)
Set the number and values of contour levels.
virtual Double_t GetBinErrorUp(Int_t bin) const
Return upper error associated to bin number bin.
virtual Int_t GetSumw2N() const
virtual Double_t GetStdDevError(Int_t axis=1) const
Return error of standard deviation estimation for Normal distribution.
virtual Double_t GetMinimum(Double_t minval=-FLT_MAX) const
Return minimum value larger than minval of bins in the range, unless the value has been overridden by...
static Bool_t AddDirectoryStatus()
Static function: cannot be inlined on Windows/NT.
virtual void LabelsDeflate(Option_t *axis="X")
Reduce the number of bins for the axis passed in the option to the number of bins having a label.
virtual Int_t BufferEmpty(Int_t action=0)
Fill histogram with all entries in the buffer.
virtual Double_t GetKurtosis(Int_t axis=1) const
2-D histogram with a double per channel (see TH1 documentation)
2-D histogram with a float per channel (see TH1 documentation)
Helper class to represent a bin in the TH2Poly histogram.
2D Histogram with Polygonal Bins
Service class for 2-D histogram classes.
The 3-D histogram classes derived from the 1-D histogram classes.
The Histogram stack class.
The histogram painter class.
static Int_t ProjectSinusoidal2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function code for sinusoidal projection from Ernst-Jan Buis Source https://en....
void Paint(Option_t *option="") override
Control routine to paint any kind of histograms
TAxis * fYaxis
Pointer to Y axis.
std::unique_ptr< TPainter3dAlgorithms > fLego
Pointer to a TPainter3dAlgorithms object.
std::vector< Double_t > fXbuf
X buffer coordinates.
Int_t fXHighlightBin
X highlight bin.
TF3 * fCurrentF3
Current TF3 function.
virtual void PaintErrors(Option_t *option)
Draw 1D histograms error bars.
~THistPainter() override
destructor.
Int_t fShowProjection2
True if a second projection must be drawn (when calling SetShowProjectionXY on a TH2)
virtual void PaintTF3()
Control function to draw a 3D implicit functions.
virtual Int_t TableInit()
Initialize various options to draw 2D histograms.
virtual void PaintTH2PolyScatterPlot(Option_t *option)
Control function to draw a TH2Poly as a scatter plot.
static Int_t ProjectMollweide2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function.
static Int_t ProjectAitoff2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function.
virtual void PaintText(Option_t *option)
Control function to draw a 1D/2D histograms with the bin values.
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute the distance from the point px,py to a line.
virtual void PaintAxis(Bool_t drawGridOnly=kFALSE)
Draw axis (2D case) of an histogram.
virtual void PaintColorLevelsFast(Option_t *option)
[Rendering scheme for the COL2 and COLZ2 options] (HP14)
virtual Int_t PaintInit()
Compute histogram parameters used by the drawing routines.
virtual void Paint2DErrors(Option_t *option)
Draw 2D histograms errors.
Int_t fYHighlightBin
Y highlight bin.
virtual void PaintCandlePlot(Option_t *option)
Control function to draw a 2D histogram as a candle (box) plot or violin plot
virtual void PaintScatterPlot(Option_t *option)
Control function to draw a 2D histogram as a scatter plot.
void SetShowProjectionXY(const char *option, Int_t nbinsY, Int_t nbinsX) override
virtual void PaintLego(Option_t *option)
Control function to draw a 2D histogram as a lego plot.
virtual void PaintH3(Option_t *option="")
Control function to draw a 3D histograms.
Int_t fNcuts
Number of graphical cuts.
TString fShowOption
Option to draw the projection.
virtual void PaintHighlightBin(Option_t *option="")
Paint highlight bin as TBox object.
virtual void PaintTH2PolyBins(Option_t *option)
Control function to draw a TH2Poly bins' contours.
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.
Int_t fShowProjection
True if a projection must be drawn.
virtual void PaintLegoAxis(TGaxis *axis, Double_t ang)
Draw the axis for legos and surface plots.
virtual void PaintTriangles(Option_t *option)
Control function to draw a table using Delaunay triangles.
virtual void HighlightBin(Int_t px, Int_t py)
Check on highlight bin.
virtual void PaintH3Box(Int_t iopt)
Control function to draw a 3D histogram with boxes.
Int_t MakeCuts(char *cutsopt) override
Decode string choptin and fill Graphical cuts structure.
TList * fFunctions
Pointer to histogram list of functions.
void DrawPanel() override
Display a panel with all histogram drawing options.
std::unique_ptr< TPie > fPie
Pointer to a TPie in case of option PIE.
static void PaintSpecialObjects(const TObject *obj, Option_t *option)
Static function to paint special objects like vectors and matrices.
virtual void PaintTitle()
new TGaxis/////////////////// Draw the histogram title
virtual void PaintTH2PolyColorLevels(Option_t *option)
Control function to draw a TH2Poly as a color plot.
virtual std::vector< THistRenderingRegion > ComputeRenderingRegions(TAxis *pAxis, Int_t nPixels, bool isLog)
Returns the rendering regions for an axis to use in the COL2 option.
virtual void ShowProjectionX(Int_t px, Int_t py)
Show projection onto X.
virtual void PaintPalette()
Paint the color palette on the right side of the pad.
TAxis * fXaxis
Pointer to X axis.
virtual void PaintStat2(Int_t dostat, TF1 *fit)
Draw the statistics box for 2D histograms.
virtual void PaintArrows(Option_t *option)
Control function to draw a table as an arrow plot
virtual void RecalculateRange()
Recompute the histogram range following graphics operations.
void PaintStat(Int_t dostat, TF1 *fit) override
Draw the statistics box for 1D and profile histograms.
static Int_t ProjectParabolic2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function code for parabolic projection from Ernst-Jan Buis.
std::unique_ptr< TGraph2DPainter > fGraph2DPainter
Pointer to a TGraph2DPainter object.
virtual void PaintBarH(Option_t *option)
Draw a bar char in a rotated pad (X vertical, Y horizontal)
virtual void PaintStat3(Int_t dostat, TF1 *fit)
Draw the statistics box for 3D histograms.
virtual void PaintSurface(Option_t *option)
Control function to draw a 2D histogram as a surface plot.
TList * fStack
Pointer to stack of histograms (if any)
THistPainter()
Default constructor.
TH1 * fH
Pointer to histogram to paint.
virtual void PaintTH2PolyText(Option_t *option)
Control function to draw a TH2Poly as a text plot.
virtual void ShowProjection3(Int_t px, Int_t py)
Show projection (specified by fShowProjection) of a TH3.
TAxis * fZaxis
Pointer to Z axis.
void SetHistogram(TH1 *h) override
Set current histogram to h
virtual void PaintFunction(Option_t *option)
[Paint functions associated to an histogram.](HP28")
virtual void PaintBar(Option_t *option)
Draw a bar-chart in a normal pad.
static Int_t ProjectMercator2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function.
virtual void PaintBoxes(Option_t *option)
Control function to draw a 2D histogram as a box plot
virtual Int_t MakeChopt(Option_t *option)
Decode string choptin and fill Hoption structure.
char * GetObjectInfo(Int_t px, Int_t py) const override
Display the histogram info (bin number, contents, integral up to bin corresponding to cursor position...
TList * GetContourList(Double_t contour) const override
Get a contour (as a list of TGraphs) using the Delaunay triangulation.
void ProcessMessage(const char *mess, const TObject *obj) override
Process message mess.
void SetShowProjection(const char *option, Int_t nbins) override
Set projection.
virtual void ShowProjectionY(Int_t px, Int_t py)
Show projection onto Y.
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...
virtual void PaintContour(Option_t *option)
Control function to draw a 2D histogram as a contour plot.
TCutG * fCuts[kMaxCuts]
Pointers to graphical cuts.
virtual void PaintTable(Option_t *option)
Control function to draw 2D/3D histograms (tables).
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute the actions corresponding to event.
virtual Int_t PaintInitH()
Compute histogram parameters used by the drawing routines for a rotated pad.
virtual void PaintFrame()
Calculate range and clear pad (canvas).
Int_t fCutsOpt[kMaxCuts]
Sign of each cut.
virtual void PaintH3Iso()
Control function to draw a 3D histogram with Iso Surfaces.
std::vector< Double_t > fYbuf
Y buffer coordinates.
virtual void PaintH3BoxRaster()
Control function to draw a 3D histogram with boxes.
virtual void PaintHist(Option_t *option)
Control routine to draw 1D histograms
void SetHighlight() override
Set highlight (enable/disable) mode for fH.
virtual void DefineColorLevels(Int_t ndivz)
Define the color levels used to paint legos, surfaces etc..
virtual void PaintColorLevels(Option_t *option)
Control function to draw a 2D histogram as a color plot.
Bool_t IsInside(Int_t x, Int_t y) override
Return kTRUE if the cell ix, iy is inside one of the graphical cuts.
A class to define a conversion from pixel values to pixel color.
static TImagePalette * CreateCOLPalette(Int_t nContours)
Factory method to creates an image palette for histogram plotting.
An abstract interface to image processing library.
static TImage * Create()
Create an image.
To draw Mathematical Formula.
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
virtual TObjLink * FirstLink() const
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
void AddFirst(TObject *obj) override
Add object at the beginning of the list.
A TMultiGraph is a collection of TGraph (or derived) objects.
TList * GetListOfGraphs() const
virtual Int_t IsInside(Double_t x, Double_t y) const
Return 1 if the point (x,y) is inside one of the graphs 0 otherwise.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual Option_t * GetDrawOption() const
Get option used by the graphics system to draw this object.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
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()
void DrawFaceMove3(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt)
Draw face - 3rd variant for "MOVING SCREEN" algorithm (draw level lines only)
void DrawLevelLines(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt)
Draw level lines without hidden line removal.
void SurfaceFunction(Int_t ia, Int_t ib, Double_t *f, Double_t *t)
Service function for Surfaces.
void DrawFaceMode1(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *t)
Draw face - 1st variant (2 colors: 1st for external surface, 2nd for internal)
void GouraudFunction(Int_t ia, Int_t ib, Double_t *f, Double_t *t)
Find part of surface with luminosity in the corners.
void DrawFaceMove1(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt)
Draw face - 1st variant for "MOVING SCREEN" algorithm (draw face with level lines)
void DrawFaceRaster2(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt)
Draw face - 2nd variant for "RASTER SCREEN" algorithm (draw face for stacked lego plot)
void LegoFunction(Int_t ia, Int_t ib, Int_t &nv, Double_t *ab, Double_t *vv, Double_t *t)
Service function for Legos.
void DrawFaceMove2(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt)
Draw face - 2nd variant for "MOVING SCREEN" algorithm (draw face for stacked lego plot)
void DrawFaceRaster1(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt)
Draw face - 1st variant for "RASTER SCREEN" algorithm (draw face with level lines)
void DrawFaceMode3(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *t)
Draw face - 3rd option (draw face for stacked lego plot)
void DrawFaceMode2(Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *t)
Draw face - 2nd option (fill in correspondence with function levels)
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.
const char * GetName() const override
Returns name of object.
Double_t GetX1NDC() const
virtual void SetX2NDC(Double_t x2)
Profile2D histograms are used to display the mean value of Z and its error for each cell in X,...
Random number generator class based on the maximally quidistributed combined Tausworthe generator by ...
Sequenceable collection abstract base class.
void ToLower()
Change string to lower-case.
const char * Data() const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
Color_t GetStatTextColor() const
Float_t GetTitleX() const
Int_t GetOptTitle() const
Float_t GetStatFontSize() const
Float_t GetBarOffset() const
Float_t GetTitleSize(Option_t *axis="X") const
Return title size.
Float_t GetTitleY() const
Style_t GetTitleFont(Option_t *axis="X") const
Return title font.
Bool_t GetHistMinimumZero() const
Color_t GetTitleFillColor() const
Style_t GetTitleStyle() const
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 GetErrorX() const
Double_t GetHistTopMargin() const
void SetBarOffset(Float_t baroff=0.5)
Float_t GetEndErrorSize() const
Int_t GetDrawBorder() const
Width_t GetStatBorderSize() const
Color_t GetTitleTextColor() const
void SetBarWidth(Float_t barwidth=0.5)
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.
Int_t GetNumberContours() const
const char * GetPaintTextFormat() const
Style_t GetStatFont() const
Float_t GetTitleFontSize() const
Int_t GetTitleAlign() const
Float_t GetTitleW() const
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
Base class for several text objects.
virtual Double_t GetPsi()=0
virtual Double_t * GetRmax()=0
virtual void SetAxisNDC(const Double_t *x1, const Double_t *x2, const Double_t *y1, const Double_t *y2, const Double_t *z1, const Double_t *z2)=0
virtual Double_t * GetRmin()=0
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
virtual void SetOutlineToCube()=0
virtual Int_t GetDistancetoAxis(Int_t axis, Int_t px, Int_t py, Double_t &ratio)=0
virtual Double_t * GetTnorm()=0
virtual void ExecuteRotateView(Int_t event, Int_t px, Int_t py)=0
virtual TSeqCollection * GetOutline()=0
virtual void PadRange(Int_t rback)=0
virtual void SetRange(const Double_t *min, const Double_t *max)=0
virtual void FindNormal(Double_t x, Double_t y, Double_t z, Double_t &zn)=0
virtual void AxisVertex(Double_t ang, Double_t *av, Int_t &ix1, Int_t &ix2, Int_t &iy1, Int_t &iy2, Int_t &iz1, Int_t &iz2)=0
virtual void SetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep)=0
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
TVirtualPad is an abstract base class for the Pad and Canvas classes.
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...
Double_t ATan(Double_t)
Returns the principal value of the arc tangent of x, expressed in radians.
constexpr Double_t PiOver2()
Double_t Log(Double_t x)
Returns the natural logarithm of x.
constexpr Double_t DegToRad()
Conversion from degree to radian: .
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.
Bool_t AreEqualRel(Double_t af, Double_t bf, Double_t relPrec)
Comparing floating points.
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
Double_t Tan(Double_t)
Returns the tangent of an angle of x radians.
Long64_t BinarySearch(Long64_t n, const T *array, T value)
Binary search in an array of n values to locate value.
constexpr Double_t RadToDeg()
Conversion from radian to degree: .
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.
Histograms' drawing options structure.
int Curve
"C" A smooth Curve is drawn.
int Proj
"AITOFF", "MERCATOR", "SINUSOIDAL" and "PARABOLIC" projections for 2d plots.
int Axis
"A" Axis are not drawn around the graph.
int Box
"BOX" Draw 2D plot with proportional Boxes.
int Scat
"SCAT" Draw 2D plot a Scatter plot.
int Text
"TEXT" Draw 2D plot with the content of each cell.
int Color
"COL" Draw 2D plot with Colored boxes.
int AxisPos
"X+" and "Y+" Axis position
int List
"LIST" Generate the TObjArray "contours". To be used with option "CONT"
int Logx
log scale in X. Also set by histogram option
int Zscale
"Z" Display the color palette.
int MinimumZero
"MIN0" or gStyle->GetHistMinimumZero()
int Contour
"CONTn" Draw 2D plot as a Contour plot (0 <= n <= 5).
int Off
"][" The first and last vertical lines are not drawn.
int Func
"FUNC" Draw only the function (for example in case of fit).
long Candle
"CANDLE" and "VIOLIN" Draw a 2D histogram as candle/box plot or violin plot.
int Spec
"SPEC" TSpectrum graphics
int FrontBox
"FB" Suppress the front box for the 3D plots.
int Pie
"PIE" Draw 1D plot as a pie chart.
int Star
"*" With option "P", a * is plotted at each point.
int Zero
"0" if selected with any LEGO option the empty bins are not drawn.
int Logz
log scale in Z. Also set by histogram option
int Tri
"TRI" Draw TGraph2D with Delaunay triangles.
int BackBox
"BB" Suppress the back box for the 3D plots.
int Mark
"P" The current Marker is drawn at each point.
int Arrow
"ARR" Draw 2D plot with Arrows.
int Line
"L" A simple polyline through every point is drawn.
int Same
"SAME" Histogram is plotted in the current pad.
int Lego
"LEGO" and "LEGOn" Draw as a Lego plot(1 <= n <= 4).
int Bar
"B", "BAR" and "HBAR" A Bar chart is drawn at each point.
int Fill
"F" A fill area is drawn ("CF" draw a smooth fill area).
int Hist
"HIST" Draw only the histogram.
int Surf
"SURF" and "SURFn" Draw as a Surface ((1 <= n <= 4).
int Logy
log scale in Y. Also set by histogram option
int System
"POL", "CYL", "SPH" and "PSR" Type of coordinate system for 3D plots.
int Error
"En" Draw Errors with current marker type and size (0 <= n <=6).
Histogram parameters structure.
Double_t baroffset
Offset of bin for bars or legos [0,1].
Double_t ylowedge
Low edge of axis.
Double_t xmin
Minimum value along X.
Int_t ylast
Last bin number along Y.
Int_t xfirst
First bin number along X.
Double_t zmin
Minimum value along Z.
Double_t xbinsize
Bin size in case of equidistant bins.
Double_t ymin
Minimum value along y.
Double_t allchan
Integrated sum of contents.
Double_t xlowedge
Low edge of axis.
Double_t ymax
Maximum value along y.
Double_t factor
Multiplication factor (normalization)
Int_t xlast
Last bin number along X.
Double_t ybinsize
Bin size in case of equidistant bins.
Double_t barwidth
Width of bin for bars and legos [0,1].
Double_t zmax
Maximum value along Z.
Double_t xmax
Maximum value along X.
Int_t yfirst
First bin number along Y.