3185 const Int_t big = 9999;
3186 const Int_t kMaxDiff = 7;
3197 Int_t curdist = big;
3198 Int_t yxaxis, dyaxis,xyaxis, dxaxis;
3201 if (!PadPointer)
return 0;
3215 if (d3 <= kMaxDiff) {
gPad->SetSelected(
fZaxis);
return 0;}
3217 if (d1 <= kMaxDiff) {
gPad->SetSelected(
fXaxis);
return 0;}
3219 if (d2 <= kMaxDiff) {
gPad->SetSelected(
fYaxis);
return 0;}
3220 if ( px > puxmin && px < puxmax && py > puymax && py < puymin) curdist = 1;
3231 if (px <= xyaxis+dyaxis && px >= xyaxis && py >puymax && py < puymin) {
3240 if (px >= xyaxis-dyaxis && px <= xyaxis && py >puymax && py < puymin) {
3252 if (py >= yxaxis-dxaxis && py <= yxaxis && px <puxmax && px > puxmin) {
3261 if (yxaxis < puymin) yxaxis = puymin;
3262 if (py <= yxaxis+dxaxis && py >= yxaxis && px <puxmax && px > puxmin) {
3272 if ((px > puxmin) && (py < puymin) && (px < puxmax) && (py > puymax))
3288 Int_t bin =
th2->FindBin(pxu, pyu);
3289 if (bin>0) curdist = 1;
3295 if ( px > puxmin + delta2
3296 && px < puxmax - delta2
3297 && py > puymax + delta2
3298 && py < puymin - delta2) {curdist =1;
goto FUNCTIONS;}
3302 if (
gPad->IsVertical()) {
3307 if (binval == 0 && pybin < puymin) pybin = 10000;
3313 for (
Int_t ibin=bin+1; ibin<binsup; ibin++) {
3315 if (binvalmin>binvaltmp) binvalmin=binvaltmp;
3316 if (binvalmax<binvaltmp) binvalmax=binvaltmp;
3318 Int_t pybinmin =
gPad->YtoAbsPixel(
gPad->YtoPad(binvalmax));
3319 Int_t pybinmax =
gPad->YtoAbsPixel(
gPad->YtoPad(binvalmin));
3320 if (py<pybinmax+kMaxDiff/2 && py>pybinmin-kMaxDiff/2) pybin = py;
3322 if (bin != binsup) {
3324 Int_t pybinsub =
gPad->YtoAbsPixel(
gPad->YtoPad(binsupval));
3325 if (py <=
TMath::Max(pybinsub,pybin) && py >=
TMath::Min(pybinsub,pybin) && pybin != 10000)
return 0;
3335 if (binval == 0 && pxbin > puxmin) pxbin = 10000;
3341 for (
Int_t ibin=bin+1; ibin<binsup; ibin++) {
3343 if (binvalmin>binvaltmp) binvalmin=binvaltmp;
3344 if (binvalmax<binvaltmp) binvalmax=binvaltmp;
3346 Int_t pxbinmin =
gPad->XtoAbsPixel(
gPad->XtoPad(binvalmax));
3347 Int_t pxbinmax =
gPad->XtoAbsPixel(
gPad->XtoPad(binvalmin));
3348 if (px<pxbinmax+kMaxDiff/2 && px>pxbinmin-kMaxDiff/2) pxbin = px;
3359 else dist =
f->DistancetoPrimitive(px,py);
3373 Error(
"DrawPanel",
"need to draw histogram first");
3378 gROOT->ProcessLine(
Form(
"((TCanvas*)0x%lx)->Selected((TVirtualPad*)0x%lx,(TObject*)0x%lx,1)",
3393 static Int_t bin, px1, py1, px2, py2, pyold;
3394 static TBox *zoombox;
3398 Double_t xlow, xup, ylow, binval,
x, baroffset, barwidth, binwidth;
3401 if (!
gPad->IsEditable())
return;
3422 if (IsSame.
Index(
"same")>=0) {
3424 TIter next(
gPad->GetListOfPrimitives());
3425 while ((
h1 = (
TH1 *)next())) {
3442 if (!opaque)
gVirtualX->SetLineColor(-1);
3443 fH->TAttLine::Modify();
3445 if (opaque && dimension ==2) {
3446 zbx1 =
gPad->AbsPixeltoX(px);
3447 zbx2 =
gPad->AbsPixeltoX(px);
3448 zby1 =
gPad->AbsPixeltoY(py);
3449 zby2 =
gPad->AbsPixeltoY(py);
3452 if (
gPad->GetLogx()) {
3456 if (
gPad->GetLogy()) {
3460 zoombox =
new TBox(zbx1, zby1, zbx2, zby2);
3477 if (dimension ==1) {
3485 x =
gPad->AbsPixeltoX(px);
3489 xup =
gPad->XtoPad(xlow + barwidth*binwidth);
3490 ylow =
gPad->GetUymin();
3491 px1 =
gPad->XtoAbsPixel(xlow);
3492 px2 =
gPad->XtoAbsPixel(xup);
3493 py1 =
gPad->YtoAbsPixel(ylow);
3503 if (dimension ==1) {
3504 if (
gROOT->GetEditHistograms()) {
3513 binval =
gPad->PadtoY(
gPad->AbsPixeltoY(py2))/factor;
3520 if (opaque && dimension ==2) {
3522 zbx2 =
gPad->AbsPixeltoX(px);
3523 zby2 =
gPad->AbsPixeltoY(py);
3526 zoombox->
SetX2(zbx2);
3527 zoombox->
SetY2(zby2);
3537 if (dimension ==2) {
3542 if (bin2>bin1) xaxis->
SetRange(bin1,bin2);
3547 if (bin2>bin1) yaxis->
SetRange(bin1,bin2);
3556 if (dimension == 2) {
3561 if (bin2>bin1) xaxis->
SetRange(bin1,bin2);
3566 if (bin2>bin1) yaxis->
SetRange(bin1,bin2);
3574 if (dimension ==1) {
3575 if (
gROOT->GetEditHistograms()) {
3576 binval =
gPad->PadtoY(
gPad->AbsPixeltoY(py2))/factor;
3584 if (opaque && dimension ==2) {
3594 if (
x1<
x2 && y1<y2) {
3603 if (opaque)
gVirtualX->SetLineColor(-1);
3613 event =
gVirtualX->RequestLocator(1, 1, px, py);
3640 if (!dt && !dtOld)
return nullptr;
3659 if (!
gPad)
return (
char*)
"";
3669 if (
gPad->GetView() || drawOption.
Index(
"cont") >= 0) {
3670 uxmin=
gPad->GetUxmin();
3671 uxmax=
gPad->GetUxmax();
3675 uymin=
gPad->GetUymin();
3676 uymax=
gPad->GetUymax();
3682 Int_t binx,biny,binmin=0,binx1;
3683 if (
gPad->IsVertical()) {
3685 if (drawOption.
Index(
"same") >= 0) {
3687 TIter next(
gPad->GetListOfPrimitives());
3688 while ((
h1 = (
TH1 *)next())) {
3701 for (
Int_t ibin=binx+1; ibin<binx1; ibin++) {
3713 if (drawOption.
Index(
"same") >= 0) {
3715 TIter next(
gPad->GetListOfPrimitives());
3716 while ((
h1 = (
TH1 *)next())) {
3729 for (
Int_t ibin=binx+1; ibin<binx1; ibin++) {
3755 biny =
th2->FindBin(
x,
y);
3757 th2->GetBinTitle(biny),
x,
y,biny,
th2->GetBinContent(biny));
3763 fObjectInfo.
Form(
"(x=%g, y=%g, binx=%d, biny=%d, binc=%g, bine=%g, binn=%d)",
3819 if (!changedBin)
return;
3845 if (
gPad->GetLogx()) {
3849 if (
gPad->GetLogy()) {
3856 if (
gPad->IsVertical()) {
3858 if ((hcenter < uxmin) || (hcenter > uxmax))
return;
3861 if ((hcenter < uymin) || (hcenter > uymax))
return;
3865 if ((hcenter < uymin) || (hcenter > uymax))
return;
3870 if (
gPad->IsVertical()) {
3960 Int_t nch = strlen(choptin);
3961 strlcpy(chopt,choptin,128);
3987 for (
Int_t i=0;i<nch;i++) chopt[i] = toupper(chopt[i]);
3993 char *l1 = strstr(chopt,
"PFC");
3994 char *l2 = strstr(chopt,
"PLC");
3995 char *l3 = strstr(chopt,
"PMC");
3996 if (l1 || l2 || l3) {
4004 l = strstr(chopt,
"MIN0");
4010 l = strstr(chopt,
"SPEC");
4015 l = strstr(chopt,
"BF(");
4017 if (sscanf(&
l[3],
"%d",&bs) > 0) {
4030 l = strstr(chopt,
"GL");
4034 l = strstr(chopt,
"X+");
4039 l = strstr(chopt,
"Y+");
4047 l = strstr(chopt,
"SAMES");
4054 l = strstr(chopt,
"SAME");
4062 l = strstr(chopt,
"PIE");
4069 l = strstr(chopt,
"CANDLE");
4076 l = strstr(chopt,
"VIOLIN");
4083 l = strstr(chopt,
"LEGO");
4094 l = strstr(chopt,
"0");
if (
l) {
Hoption.
Zero = 1; memcpy(
l,
" ",1); }
4097 l = strstr(chopt,
"SURF");
4112 l = strstr(chopt,
"TF3");
4118 l = strstr(chopt,
"ISO");
4124 l = strstr(chopt,
"LIST");
if (
l) {
Hoption.
List = 1; memcpy(
l,
" ",4);}
4126 l = strstr(chopt,
"CONT");
4141 l = strstr(chopt,
"HBAR");
4150 l = strstr(chopt,
"BAR");
4160 l = strstr(chopt,
"ARR" );
4166 l = strstr(chopt,
"COL");
if (
l) {
Hoption.
Arrow = 2; memcpy(
l,
" ",3); }
4172 l = strstr(chopt,
"BOX" );
4185 l = strstr(chopt,
"COLZ");
4193 l = strstr(chopt,
"0");
if (
l) {
Hoption.
Zero = 1; memcpy(
l,
" ",1); }
4199 l = strstr(chopt,
"COL" );
4206 l = strstr(chopt,
"0");
if (
l) {
Hoption.
Zero = 1; memcpy(
l,
" ",1); }
4215 l = strstr(chopt,
"AXIS");
if (
l) {
Hoption.
Axis = 1; memcpy(
l,
" ",4); }
4216 l = strstr(chopt,
"AXIG");
if (
l) {
Hoption.
Axis = 2; memcpy(
l,
" ",4); }
4217 l = strstr(chopt,
"SCAT");
if (
l) {
Hoption.
Scat = 1; memcpy(
l,
" ",4); }
4218 l = strstr(chopt,
"TEXT");
4221 if (sscanf(&
l[4],
"%d",&angle) > 0) {
4222 if (angle < 0) angle=0;
4223 if (angle > 90) angle=90;
4229 l = strstr(chopt,
"N");
4238 l = strstr(chopt,
"TRI");
4245 l = strstr(chopt,
"ERR");
if (
l) memcpy(
l,
" ",3);
4248 l = strstr(chopt,
"AITOFF");
4252 l = strstr(chopt,
"MERCATOR");
4256 l = strstr(chopt,
"SINUSOIDAL");
4260 l = strstr(chopt,
"PARABOLIC");
4286 if (strstr(chopt,
"E")) {
4296 if (strstr(chopt,
"X0")) {
4319 Warning(
"MakeChopt",
"option SURF5 is not supported in Cartesian and Polar modes");
4340 char *left = (
char*)strchr(choptin,
'[');
4341 if (!left)
return 0;
4342 char *right = (
char*)strchr(choptin,
']');
4343 if (!right)
return 0;
4344 Int_t nch = right-left;
4345 if (nch < 2)
return 0;
4346 char *cuts = left+1;
4348 char *comma, *minus;
4351 comma = strchr(cuts,
',');
4352 if (comma) *comma = 0;
4353 minus = strchr(cuts,
'-');
4354 if (minus) cuts = minus+1;
4355 while (*cuts ==
' ') cuts++;
4356 Int_t nc = strlen(cuts);
4357 while (cuts[nc-1] ==
' ') {cuts[nc-1] = 0; nc--;}
4361 while ((obj = next())) {
4363 if (strcmp(obj->
GetName(),cuts))
continue;
4376 for (i=0;i<=nch;i++) left[i] =
' ';
4404 gROOT->ProcessLineFast(
Form(
"TSpectrum2Painter::PaintSpectrum((TH2F*)0x%lx,\"%s\",%d)",
4414 Error(
"Paint",
"Option PIE is for 1D histograms only");
4448 Int_t logysav=0, logzsav=0;
4499 if (gridx)
gPad->SetGridx(0);
4500 if (gridy)
gPad->SetGridy(0);
4502 if (gridx)
gPad->SetGridx(1);
4503 if (gridy)
gPad->SetGridy(1);
4538 if (gridx)
gPad->SetGridx(0);
4539 if (gridy)
gPad->SetGridy(0);
4541 if (gridx)
gPad->SetGridx(1);
4542 if (gridy)
gPad->SetGridy(1);
4551 while ((obj = next())) {
4559 if (!
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode())
4587 arrow->SetAngle(30);
4588 arrow->SetFillStyle(1001);
4594 Int_t ncolors=0, ndivz=0;
4608 for (
Int_t id=1;
id<=2;
id++) {
4615 if (!
IsInside(xk+0.5*xstep,yk+0.5*ystep))
continue;
4633 }
else if (
id == 2) {
4645 if (theColor > ncolors-1) theColor = ncolors-1;
4650 arrow->PaintArrow(
x1, y1,
x2, y2, 0.015,
"|>");
4652 arrow->PaintArrow(
x1, y1,
x2, y2, 0.005,
"|>");
4675 if (drawGridOnly && (
gPad->PadInHighlightMode() ||
gPad->PadInSelectionMode()))
4687 TIter next(
gPad->GetListOfPrimitives());
4690 while ((obj = next())) {
4696 if (strstr(opt,
"hbar")) {
4700 if (!strcmp(xaxis->
GetName(),
"xaxis")) {
4710 static char chopt[10] =
"";
4712 Int_t ndiv, ndivx, ndivy, nx1, nx2, ndivsave;
4713 Int_t useHparam = 0;
4714 Double_t umin, umax, uminsave, umaxsave;
4730 TIter next(
gPad->GetListOfPrimitives());
4731 while ((obj=next())) {
4742 if (
gPad->PadInSelectionMode())
4746 if (
gPad->PadInSelectionMode() || !
gPad->PadInHighlightMode() || (
gPad->PadInHighlightMode() &&
gPad->GetSelected() ==
fXaxis)) {
4757 strlcat(chopt,
"SDH",10);
4758 if (ndivx < 0) strlcat(chopt,
"N",10);
4759 if (
gPad->GetGridx()) {
4760 gridl = (aymax-aymin)/(
gPad->GetY2() -
gPad->GetY1());
4761 strlcat(chopt,
"W",10);
4766 strlcat(chopt,
"G",10);
4788 strlcat(chopt,
"t",10);
4796 if (xAxisPos == 1) {
4812 strlcat(chopt,
"-",10);
4821 umin, umax, ndiv, chopt, gridl, drawGridOnly);
4826 if (
gPad->GetTickx() && !
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode()) {
4828 cw=strstr(chopt,
"-");
4831 strlcat(chopt,
"-",10);
4833 if (
gPad->GetTickx() < 2) strlcat(chopt,
"U",10);
4834 if ((cw=strstr(chopt,
"W"))) *cw=
'z';
4838 uminsave, umaxsave, ndivsave, chopt, gridl, drawGridOnly);
4844 if (
gPad->PadInSelectionMode())
4848 if (
gPad->PadInSelectionMode() || !
gPad->PadInHighlightMode() || (
gPad->PadInHighlightMode() &&
gPad->GetSelected() ==
fYaxis)) {
4853 strlcat(chopt,
"SDH",10);
4854 if (ndivy < 0) strlcat(chopt,
"N",10);
4855 if (
gPad->GetGridy()) {
4856 gridl = (axmax-axmin)/(
gPad->GetX2() -
gPad->GetX1());
4857 strlcat(chopt,
"W",10);
4862 strlcat(chopt,
"G",10);
4884 strlcat(chopt,
"t",10);
4892 if (yAxisPos == 1) {
4908 strlcat(chopt,
"+L",10);
4917 umin, umax, ndiv, chopt, gridl, drawGridOnly);
4922 if (
gPad->GetTicky() && !
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode()) {
4923 if (
gPad->GetTicky() < 2) {
4924 strlcat(chopt,
"U",10);
4927 strlcat(chopt,
"+L",10);
4929 if ((cw=strstr(chopt,
"W"))) *cw=
'z';
4933 uminsave, umaxsave, ndivsave, chopt, gridl, drawGridOnly);
4956 if (hcolor ==
gPad->GetFrameFillColor()) ++hcolor;
4958 box.SetFillColor(hcolor);
4959 box.SetFillStyle(hstyle);
4969 if (ymax < gPad->GetUymin())
continue;
4971 if (ymin < gPad->GetUymin())
ymin =
gPad->GetUymin();
4985 box.SetFillColor(hcolor);
5005 if (!strcmp(xaxis->
GetName(),
"xaxis")) {
5019 if (hcolor ==
gPad->GetFrameFillColor()) ++hcolor;
5021 box.SetFillColor(hcolor);
5022 box.SetFillStyle(hstyle);
5031 if (xmax < gPad->GetUxmin())
continue;
5033 if (xmin < gPad->GetUxmin())
xmin =
gPad->GetUxmin();
5046 box.SetFillColor(hcolor);
5059 while ((obj = next())) {
5080 fH->TAttLine::Modify();
5081 fH->TAttFill::Modify();
5083 Double_t z, xk,xstep, yk, ystep, xcent, ycent, xlow, xup, ylow, yup;
5094 Double_t zminlin = zmin, zmaxlin = zmax;
5100 TIter next(
gPad->GetListOfPrimitives());
5101 while ((h2 = (
TH2 *)next())) {
5151 if (!
IsInside(xk+0.5*xstep,yk+0.5*ystep))
continue;
5158 if (kZminNeg && z==0)
continue;
5170 if (dz == 0)
continue;
5172 if (zratio == 0)
continue;
5174 xup = xcent*zratio + xk + xcent;
5175 xlow = 2*(xk + xcent) - xup;
5176 if (xup-xlow < dxmin) xup = xlow+dxmin;
5184 yup = ycent*zratio + yk + ycent;
5185 ylow = 2*(yk + ycent) - yup;
5186 if (yup-ylow < dymin) yup = ylow+dymin;
5199 if (xlow >= xup)
continue;
5200 if (ylow >= yup)
continue;
5204 fH->TAttFill::Modify();
5205 gPad->PaintBox(xlow, ylow, xup, yup);
5207 gPad->PaintLine(xlow, ylow, xup, yup);
5208 gPad->PaintLine(xlow, yup, xup, ylow);
5213 fH->TAttFill::Modify();
5214 gPad->PaintBox(xlow, ylow, xup, yup);
5219 x[0] = xlow;
y[0] = ylow;
5220 x[1] = xlow + bwidth*(xup-xlow);
y[1] = ylow + bwidth*(yup-ylow);
5221 x[2] =
x[1];
y[2] = yup - bwidth*(yup-ylow);
5222 x[3] = xup - bwidth*(xup-xlow);
y[3] =
y[2];
5223 x[4] = xup;
y[4] = yup;
5224 x[5] = xlow;
y[5] = yup;
5225 x[6] = xlow;
y[6] = ylow;
5228 fH->TAttFill::Modify();
5229 gPad->PaintFillArea(7,
x,
y);
5232 x[0] = xlow;
y[0] = ylow;
5233 x[1] = xlow + bwidth*(xup-xlow);
y[1] = ylow + bwidth*(yup-ylow);
5234 x[2] = xup - bwidth*(xup-xlow);
y[2] =
y[1];
5235 x[3] =
x[2];
y[3] = yup - bwidth*(yup-ylow);
5236 x[4] = xup;
y[4] = yup;
5237 x[5] = xup;
y[5] = ylow;
5238 x[6] = xlow;
y[6] = ylow;
5241 fH->TAttFill::Modify();
5242 gPad->PaintFillArea(7,
x,
y);
5250 fH->TAttFill::Modify();
5275 const Double_t standardCandleWidth = 0.66;
5276 const Double_t standardHistoWidth = 0.8;
5279 double allMaxIntegral = 0;
5285 if (hproj->
Integral() > allMaxIntegral) allMaxIntegral = hproj->
Integral();
5295 double myIntegral = hproj->
Integral();
5297 if (candleWidth > 0.999 && candleWidth < 1.001) {
5298 candleWidth = standardCandleWidth;
5299 histoWidth = standardHistoWidth;
5304 }
else if (myCandle.
IsViolinScaled()) histoWidth *= myMaxContent/allMaxContent;
5305 if (myCandle.
IsCandleScaled()) candleWidth *= myIntegral/allMaxIntegral;
5318 if (hproj->
Integral() > allMaxIntegral) allMaxIntegral = hproj->
Integral();
5328 double myIntegral = hproj->
Integral();
5330 if (candleWidth > 0.999 && candleWidth < 1.001) {
5331 candleWidth = standardCandleWidth;
5332 histoWidth = standardHistoWidth;
5337 }
else if (myCandle.
IsViolinScaled()) histoWidth *= myMaxContent/allMaxContent;
5338 if (myCandle.
IsCandleScaled()) candleWidth *= myIntegral/allMaxIntegral;
5366std::vector<THistRenderingRegion>
5369 std::vector<THistRenderingRegion> regions;
5371 enum STRATEGY {
Bins, Pixels } strategy;
5375 if (nBins >= nPixels) {
5387 while (xMin <= 0 && ((pAxis->
GetFirst()+binOffset) != pAxis->
GetLast()) ) {
5397 if (strategy ==
Bins) {
5406 for (
Int_t bin=pAxis->
GetFirst()+binOffset; bin<=pAxis->GetLast(); bin++) {
5415 std::make_pair(bin, bin+1)};
5416 regions.push_back(region);
5425 for (
Int_t pixelIndex=0; pixelIndex<(nPixels-1); pixelIndex++) {
5430 std::make_pair(binLow, binHigh)};
5431 regions.push_back(region);
5437 if (strategy ==
Bins) {
5439 for (
Int_t bin=pAxis->
GetFirst(); bin<=pAxis->GetLast(); bin++) {
5444 Int_t xPx1 = xPx0 + nPixels/nBins;
5447 if (xPx1>= nPixels) xPx1 = nPixels-1;
5450 std::make_pair(bin, bin+1)};
5451 regions.push_back(region);
5455 for (
Int_t pixelIndex=0; pixelIndex<nPixels-1; pixelIndex++) {
5457 Int_t binLow = (nBins*pixelIndex)/nPixels + pAxis->
GetFirst();
5458 Int_t binHigh = binLow + nBins/nPixels;
5460 std::make_pair(binLow, binHigh)};
5461 regions.push_back(region);
5476 Error(
"THistPainter::PaintColorLevelsFast(Option_t*)",
5477 "Only cartesian coordinates supported by 'COL2' option. Using 'COL' option instead.");
5490 if ((zmin == -1111) && (zmax == -1111)) {
5494 }
else if (zmin == -1111) {
5497 }
else if (zmax == -1111) {
5515 Error(
"THistPainter::PaintColorLevelsFast(Option_t*)",
5516 "Cannot plot logz because bin content is less than 0.");
5527 std::vector<Double_t> colorBounds(ndiv);
5528 std::vector<Double_t> contours(ndiv, 0);
5536 for (
Int_t i=0; i<ndiv; ++i) {
5537 colorBounds[i] = step*i;
5540 auto pFrame =
gPad->GetFrame();
5541 Int_t px0 =
gPad->XtoPixel(pFrame->GetX1());
5542 Int_t px1 =
gPad->XtoPixel(pFrame->GetX2());
5543 Int_t py0 =
gPad->YtoPixel(pFrame->GetY1());
5544 Int_t py1 =
gPad->YtoPixel(pFrame->GetY2());
5545 Int_t nXPixels = px1-px0;
5546 Int_t nYPixels = py0-py1;
5548 std::vector<Double_t> buffer(nXPixels*nYPixels, 0);
5552 if (xRegions.size() == 0 || yRegions.size() == 0) {
5553 Error(
"THistPainter::PaintColorLevelFast(Option_t*)",
5554 "Encountered error while computing rendering regions.");
5562 for (
auto& yRegion : yRegions) {
5563 for (
auto& xRegion : xRegions ) {
5565 const auto& xBinRange = xRegion.fBinRange;
5566 const auto& yBinRange = yRegion.fBinRange;
5577 if (z > zmax) z = zmax;
5578 if (z < zmin) z = zmin;
5583 z = colorBounds[index];
5587 index = 0.001 + ((z - zmin)/dz)*ndiv;
5590 if (index ==
static_cast<Int_t>(colorBounds.size())) {
5598 }
else if (index ==
static_cast<Int_t>(colorBounds.size()-1)) {
5602 z = colorBounds[index];
5613 const auto& xPixelRange = xRegion.fPixelRange;
5614 const auto& yPixelRange = yRegion.fPixelRange;
5615 for (
Int_t xPx = xPixelRange.first; xPx <= xPixelRange.second; ++xPx) {
5616 for (
Int_t yPx = yPixelRange.first; yPx <= yPixelRange.second; ++yPx) {
5617 Int_t pixel = yPx*nXPixels + xPx;
5628 if (minValue != maxValue) {
5634 buffer[buffer.size()-nXPixels] = 0.95;
5642 pImage->
SetImage(buffer.data(), nXPixels, nYPixels, pPalette);
5646 pImage->
PaintImage(wid, px0, py1, 0, 0, nXPixels, nYPixels);
5663 Double_t z, zc, xk, xstep, yk, ystep, xlow, xup, ylow, yup;
5679 TIter next(
gPad->GetListOfPrimitives());
5680 while ((h2 = (
TH2 *)next())) {
5712 fH->TAttFill::Modify();
5723 Double_t scale = (dz ? ndivz / dz : 1.0);
5735 if (!
IsInside(xk+0.5*xstep,yk+0.5*ystep))
continue;
5740 if (binEntries == 0)
5773 if (xup < gPad->GetUxmin())
continue;
5774 if (yup < gPad->GetUymin())
continue;
5775 if (xlow >
gPad->GetUxmax())
continue;
5776 if (ylow >
gPad->GetUymax())
continue;
5777 if (xlow < gPad->GetUxmin()) xlow =
gPad->GetUxmin();
5778 if (ylow < gPad->GetUymin()) ylow =
gPad->GetUymin();
5779 if (xup >
gPad->GetUxmax()) xup =
gPad->GetUxmax();
5780 if (yup >
gPad->GetUymax()) yup =
gPad->GetUymax();
5785 if (z < zc)
continue;
5787 for (
Int_t k=0; k<ndiv; k++) {
5796 color =
Int_t(0.01+(z-zmin)*scale);
5800 if (theColor > ncolors-1) theColor = ncolors-1;
5802 fH->TAttFill::Modify();
5804 gPad->PaintBox(xlow, ylow, xup, yup);
5817 fH->TAttFill::Modify();
5827 Int_t i, j, count, ncontour, icol,
n, lj,
m, ix, jx, ljfill;
5828 Int_t itars, mode, ir[4];
5829 Double_t xsave, ysave, thesave,phisave,
x[4],
y[4], zc[4];
5834 thesave =
gPad->GetTheta();
5835 phisave =
gPad->GetPhi();
5837 gPad->SetTheta(90.);
5839 gPad->SetPhi(phisave);
5840 gPad->SetTheta(thesave);
5851 TIter next(
gPad->GetListOfPrimitives());
5852 while ((obj=next())) {
5869 if (!dt && !dtOld)
return;
5889 if (ncontour == 0) {
5894 Warning(
"PaintContour",
"maximum number of contours is %d, asked for %d",
5905 fH->TAttLine::Modify();
5915 np =
new Int_t[ncontour];
5916 for (i=0;i<ncontour;i++) np[i] = 0;
5918 for (i=0;i<ncontour;i++) {
5922 contours = (
TObjArray*)
gROOT->GetListOfSpecials()->FindObject(
"contours");
5924 gROOT->GetListOfSpecials()->Remove(contours);
5926 for (i=0;i<count;i++) {
5927 list = (
TList*)contours->
At(i);
5928 if (list) list->
Delete();
5932 contours->
SetName(
"contours");
5933 gROOT->GetListOfSpecials()->Add(contours);
5934 for (i=0;i<ncontour;i++) {
5936 contours->
Add(list);
5969 if (ir[0] != ir[1] || ir[1] != ir[2] || ir[2] != ir[3] || ir[3] != ir[0]) {
5974 if (zc[0] <= zc[1])
n = 0;
else n = 1;
5975 if (zc[2] <= zc[3])
m = 2;
else m = 3;
5976 if (zc[
n] > zc[
m])
n =
m;
5979 for (ix=1;ix<=4;ix++) {
5982 ir[
m-1],
x[
m-1],
y[
m-1],&xarr[lj-1],&yarr[lj-1],&itarr[lj-1], levels);
5987 if (zc[0] <= zc[1])
n = 0;
else n = 1;
5988 if (zc[2] <= zc[3])
m = 2;
else m = 3;
5989 if (zc[
n] > zc[
m])
n =
m;
5992 for (ix=1;ix<=4;ix++) {
5996 ir[
m-1],
x[
m-1],
y[
m-1],&xarr[lj-1],&yarr[lj-1],&itarr[lj-1], levels);
6004 for (ix=1; ix<=lj-5; ix +=2) {
6006 while (itarr[ix-1] != itarr[ix]) {
6010 for (jx=ix; jx<=lj-5; jx +=2) {
6011 xarr[jx] = xarr[jx+2];
6012 yarr[jx] = yarr[jx+2];
6013 itarr[jx] = itarr[jx+2];
6017 itarr[lj-3] = itars;
6018 if (count > 100)
break;
6023 if (count > 100)
continue;
6024 for (ix=1; ix<=lj-2; ix +=2) {
6032 if (mode == 0) mode = 5;
6036 fH->TAttLine::Modify();
6037 gPad->PaintPolyLine(2,&xarr[ix-1],&yarr[ix-1]);
6041 ipoly = itarr[ix-1];
6042 if (ipoly >=0 && ipoly <ncontour) {
6043 poly =
polys[ipoly];
6044 poly->
SetPoint(np[ipoly] ,xarr[ix-1],yarr[ix-1]);
6045 poly->
SetPoint(np[ipoly]+1,xarr[ix], yarr[ix]);
6047 if (npmax < np[ipoly]) npmax = np[ipoly];
6056 Int_t nadd,iminus,iplus;
6060 Int_t *polysort = 0;
6072 polysort =
new Int_t[ncontour];
6074 for (ipoly=0;ipoly<ncontour;ipoly++) {
6075 if (levels[ipoly] >= 0) {
first = ipoly;
break;}
6079 for (ipoly=
first-1;ipoly>=0;ipoly--) {polysort[k] = ipoly; k++;}
6080 for (ipoly=
first;ipoly<ncontour;ipoly++) {polysort[k] = ipoly; k++;}
6084 for (k=0;k<ncontour;k++) {
6085 ipoly = polysort[k];
6086 if (np[ipoly] == 0)
continue;
6089 poly =
polys[ipoly];
6096 xp[iminus]= xx[istart]; yp[iminus] = yy[istart];
6097 xp[iplus] = xx[istart+1]; yp[iplus] = yy[istart+1];
6098 xx[istart] =
xmin; yy[istart] =
ymin;
6099 xx[istart+1] =
xmin; yy[istart+1] =
ymin;
6102 for (i=2;i<np[ipoly];i+=2) {
6103 if ((iplus < 2*npmax-1) && (xx[i] == xp[iplus]) && (yy[i] == yp[iplus])) {
6105 xp[iplus] = xx[i+1]; yp[iplus] = yy[i+1];
6110 if ((iminus > 0) && (xx[i+1] == xp[iminus]) && (yy[i+1] == yp[iminus])) {
6112 xp[iminus] = xx[i]; yp[iminus] = yy[i];
6118 if (nadd == 0)
break;
6123 fH->TAttFill::Modify();
6124 gPad->PaintFillArea(iplus-iminus+1,&xp[iminus],&yp[iminus]);
6126 graph =
new TGraph(iplus-iminus+1,&xp[iminus],&yp[iminus]);
6127 graph->SetFillColor(icol);
6133 for (i=2;i<np[ipoly];i+=2) {
6134 if (xx[i] !=
xmin && yy[i] !=
ymin) {
6139 if (istart == 0)
break;
6143 for (i=0;i<ncontour;i++)
delete polys[i];
6155 if (np)
delete [] np;
6171 Double_t tlen, tdif, elev, diff, pdif, xlen;
6183 tdif = elev2 - elev1;
6189 diff = elev - elev1;
6200 yarr[i] = y1 + xlen;
6205 xarr[i] =
x1 + xlen;
6228 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
return;
6230 const Int_t kBASEMARKER=8;
6231 Double_t xp, yp, ex1, ex2, ey1, ey2;
6233 Double_t s2x, s2y, bxsize, bysize, symbolsize, xerror, sbase;
6234 Double_t xi1, xi2, xi3, xi4, yi1, yi2, yi3, yi4;
6241 Int_t drawmarker, errormarker;
6242 Int_t option0, option1, option2, option3, option4, optionE, optionEX0, optionI0;
6246 option0 = option1 = option2 = option3 = option4 = optionE = optionEX0 = optionI0 = 0;
6255 if (
Hoption.
Error == 16) {optionI0 = 1; option4 = 1; option3 = 1;}
6256 if (option2+option3 == 0) optionE = 1;
6268 if (errormarker == 1) symbolsize = 0.01;
6269 sbase = symbolsize*kBASEMARKER;
6272 fH->TAttLine::Modify();
6273 fH->TAttFill::Modify();
6274 fH->TAttMarker::Modify();
6281 npoints = last -
first +1;
6291 if (!xline || !yline) {
6292 Error(
"PaintErrors",
"too many points, out of memory");
6305 bxsize =
gPad->PixeltoX(dxend) -
gPad->PixeltoX(0);
6306 bysize =-
gPad->PixeltoY(dxend) +
gPad->PixeltoY(0);
6322 for (k=
first; k<=last; k++) {
6334 if (xp <= 0)
goto L30;
6335 if (xp < logxmin)
goto L30;
6338 if (xp <
xmin)
goto L30;
6339 if (xp >
xmax)
break;
6342 if (optionI0 && yp==0)
goto L30;
6394 if (!option0 && !option3) {
6396 if (yi1 < ymin || yi1 >
ymax)
goto L30;
6399 if (!symbolsize || !errormarker) drawmarker =
kFALSE;
6402 if (option2)
gPad->PaintBox(xi1,yi3,xi2,yi4);
6416 if (optionE && drawmarker) {
6421 if (yi1<ymax && yi1>
ymin) {
6422 if (xi1 < xi3 - s2x)
gPad->PaintLine(xi1,yi1,xi3 - s2x,yi2);
6423 if (xi3 + s2x < xi2)
gPad->PaintLine(xi3 + s2x,yi1,xi2,yi2);
6427 if (optionE && !drawmarker && (ey1 != 0 || ey2 !=0)) {
6432 if (yi1<ymax && yi1>
ymin) {
6433 if (xi1 < xi3)
gPad->PaintLine(xi1,yi1,xi3,yi2);
6434 if (xi3 < xi2)
gPad->PaintLine(xi3,yi1,xi2,yi2);
6441 if (option1 && drawmarker) {
6442 if (yi3 < yi1-s2y)
gPad->PaintLine(xi3 - bxsize,yi3,xi3 + bxsize,yi3);
6443 if (yi4 > yi1+s2y)
gPad->PaintLine(xi3 - bxsize,yi4,xi3 + bxsize,yi4);
6444 if (xi1 < xi3-s2x)
gPad->PaintLine(xi1,yi1 - bysize,xi1,yi1 + bysize);
6445 if (xi2 > xi3+s2x)
gPad->PaintLine(xi2,yi1 - bysize,xi2,yi1 + bysize);
6450 if (drawmarker)
gPad->PaintPolyMarker(1, &xi3, &yi1);
6479 if (if2 > npoints) {
6480 for (i=1; i<if1; i++) {
6481 xline[if1-2+i] = xline[if2-1+i];
6482 yline[if1-2+i] = yline[if2-1+i];
6486 if (option4)
graph.PaintGraph(2*npoints,xline,yline,
"FC");
6487 else graph.PaintGraph(2*npoints,xline,yline,
"F");
6488 gPad->SetLogx(logx);
6489 gPad->SetLogy(logy);
6501 fH->TAttMarker::Modify();
6502 fH->TAttLine::Modify();
6514 Error(
"Paint2DErrors",
"no TView in current pad");
6521 view->
SetView(phideg, thedeg, psideg, irep);
6526 fLego->TAttFill::Modify();
6527 Int_t backcolor =
gPad->GetFrameFillColor();
6532 fLego->TAttFill::Modify();
6573 if (!
IsInside(xk+0.5*xstep,yk+0.5*ystep))
continue;
6616 gPad->PaintLine3D(temp1, temp2);
6623 gPad->PaintLine3D(temp1, temp2);
6630 gPad->PaintLine3D(temp1, temp2);
6634 view->
WCtoNDC(temp1, &temp2[0]);
6635 gPad->PaintPolyMarker(1, &temp2[0], &temp2[1]);
6669 if (frame)
gPad->GetListOfPrimitives()->Remove(frame);
6675 if (!
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode())
6698 f2->
Paint(
"surf same");
6700 obj->
Paint(
"cont3 same");
6707 gPad->PushSelectableObject(obj);
6711 if (!
gPad->PadInHighlightMode() || (
gPad->PadInHighlightMode() && obj ==
gPad->GetSelected()))
6727 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
6730 static char chopth[17];
6732 Int_t htype, oldhtype;
6737 strlcpy(chopth,
" ",17);
6752 nbins = last -
first + 1;
6758 if (fixbin) keepx =
new Double_t[2];
6759 else keepx =
new Double_t[nbins+1];
6766 for (j=
first; j<=last;j++) {
6776 keepy[j-
first] = yb;
6792 if (htype == 0 || htype == 1000) htype = 1001;
6816 if (!fixbin && strlen(chopth)) {
6841 graph.SetLineWidth(lw);
6844 graph.SetFillStyle(htype);
6851 graph.PaintGrapHist(nbins, keepx, keepy ,chopth);
6883 }
else if (strstr(opt,
"iso")) {
6886 }
else if (strstr(opt,
"tf3")) {
6890 cmd =
Form(
"TPolyMarker3D::PaintH3((TH1 *)0x%lx,\"%s\");",(
Long_t)
fH,option);
6901 view->
SetView(phideg, thedeg, psideg, irep);
6904 gROOT->ProcessLine(cmd);
6935 while ((obj = next())) {
6958 static const char *where =
"PaintInit";
6979 Error(where,
"cannot set X axis to log scale");
6986 for (i=
first; i<=last; i++) {
6998 Error(where,
"cannot set X axis to log scale");
7022 Int_t nonNullErrors = 0;
7024 for (i=
first; i<=last;i++) {
7037 if (e1 > 0) nonNullErrors++;
7054 fval =
f1->
Eval(xv[0],0,0);
7066 if (!nonNullErrors) {
7085 Error(where,
"log scale requested with a negative argument (%f)", xm);
7098 if (!
Hoption.
Same)
Error(where,
"log scale is requested but maximum is less or equal 0 (%f)",
ymax);
7106 }
else if (
ymin < 0) {
7126 if (allchan) factor /= allchan;
7127 if (factor == 0) factor = 1;
7145 Error(where,
"Cannot set Y axis to log scale");
7191 static const char *where =
"PaintInitH";
7216 Error(where,
"cannot set Y axis to log scale");
7238 for (i=
first; i<=last;i++) {
7253 fval =
f1->
Eval(xv[0],0,0);
7275 Error(where,
"log scale requested with zero or negative argument (%f)", xm);
7283 if (!
Hoption.
Same)
Error(where,
"log scale is requested but maximum is less or equal 0 (%f)",
xmax);
7291 }
else if (
xmin < 0) {
7305 if (allchan) factor /= allchan;
7306 if (factor == 0) factor = 1;
7317 Error(where,
"Cannot set Y axis to log scale");
7356 Double_t wxyz[8][3] = { {-1,-1,-1}, {1,-1,-1}, {1,1,-1}, {-1,1,-1},
7357 {-1,-1, 1}, {1,-1, 1}, {1,1, 1}, {-1,1, 1} };
7358 Int_t iface[6][4] = { {0,3,2,1}, {4,5,6,7},
7359 {0,1,5,4}, {1,2,6,5}, {2,3,7,6}, {3,0,4,7} };
7379 Error(
"PaintH3",
"no TView in current pad");
7386 view->
SetView(phideg, thedeg, psideg, irep);
7388 Int_t backcolor =
gPad->GetFrameFillColor();
7404 Int_t incrx = (tnorm[ 8] < 0.) ? -1 : +1;
7405 Int_t incry = (tnorm[ 9] < 0.) ? -1 : +1;
7406 Int_t incrz = (tnorm[10] < 0.) ? -1 : +1;
7421 fH->TAttFill::Modify();
7422 fH->TAttLine::Modify();
7431 Double_t pmin[3], pmax[3], sxyz[8][3];
7432 for (
Int_t ix = ix1; ix !=ix2+incrx; ix += incrx) {
7435 for (
Int_t iy = iy1; iy != iy2+incry; iy += incry) {
7438 for (
Int_t iz = iz1; iz != iz2+incrz; iz += incrz) {
7448 if (w < wmin)
continue;
7449 if (w > wmax) w = wmax;
7451 if (scale == 0)
continue;
7452 for (
Int_t i=0; i<3; ++i) {
7455 for (
Int_t k=0; k<8; ++k) {
7456 sxyz[k][i] = wxyz[k][i]*
d +
c;
7459 for (
Int_t k=0; k<8; ++k) {
7460 view->
WCtoNDC(&sxyz[k][0],&sxyz[k][0]);
7463 for (
Int_t k=0; k<6; ++k) {
7464 for (
Int_t i=0; i<4; ++i) {
7465 Int_t iv = iface[k][i];
7469 x[4] =
x[0] ;
y[4] =
y[0];
7471 x[5] =
x[2] ;
y[5] =
y[2];
7472 x[6] =
x[3] ;
y[6] =
y[3];
7473 x[7] =
x[1] ;
y[7] =
y[1];
7479 if (z <= 0.)
continue;
7481 theColor = ncolors*((w-wmin)/(wmax-wmin)) -1;
7484 if (k == 3 || k == 5) {
7486 }
else if (k == 0 || k == 1) {
7492 fH->TAttFill::Modify();
7493 gPad->PaintFillArea(4,
x,
y);
7494 if (iopt != 3)
gPad->PaintPolyLine(
n,
x,
y);
7522 fH->TAttFill::Modify();
7532 {-1,-1,-1}, {1,-1,-1}, {1,1,-1}, {-1,1,-1},
7533 {-1,-1, 1}, {1,-1, 1}, {1,1, 1}, {-1,1, 1}
7535 Int_t iface[6][4] = {
7536 {0,3,2,1}, {4,5,6,7},
7537 {0,1,5,4}, {1,2,6,5}, {2,3,7,6}, {3,0,4,7}
7541 {0,-1,0}, {1,0,0}, {0,1,0}, {-1,0,0}
7562 Error(
"PaintH3",
"no TView in current pad");
7569 view->
SetView(phideg, thedeg, psideg, irep);
7571 Int_t backcolor =
gPad->GetFrameFillColor();
7586 Int_t incrx = (tnorm[ 8] < 0.) ? +1 : -1;
7587 Int_t incry = (tnorm[ 9] < 0.) ? +1 : -1;
7588 Int_t incrz = (tnorm[10] < 0.) ? +1 : -1;
7597 fH->TAttLine::Modify();
7600 const Int_t NTMAX = 100;
7605 Double_t pmin[3], pmax[3], sxyz[8][3], pp[4][2];
7606 for (
Int_t ix = ix1; ix !=ix2+incrx; ix += incrx) {
7609 for (
Int_t iy = iy1; iy != iy2+incry; iy += incry) {
7612 for (
Int_t iz = iz1; iz != iz2+incrz; iz += incrz) {
7621 if (w < wmin)
continue;
7622 if (w > wmax) w = wmax;
7624 if (scale == 0)
continue;
7625 for (
Int_t i=0; i<3; ++i) {
7628 for (
Int_t k=0; k<8; ++k) {
7629 sxyz[k][i] = wxyz[k][i]*
d +
c;
7632 for (
Int_t k=0; k<8; ++k) {
7633 view->
WCtoNDC(&sxyz[k][0],&sxyz[k][0]);
7635 for (
Int_t k=0; k<6; ++k) {
7637 view->
FindNormal(normal[k][0], normal[k][1], normal[k][2], zn);
7638 if (zn <= 0)
continue;
7639 for (
Int_t i=0; i<4; ++i) {
7640 Int_t ip = iface[k][i];
7641 pp[i][0] = sxyz[ip][0];
7642 pp[i][1] = sxyz[ip][1];
7644 for (
Int_t i=0; i<4; ++i) {
7646 Int_t i2 = (i == 3) ? 0 : i + 1;
7649 Double_t xdel = pp[i2][0] - pp[i1][0];
7650 Double_t ydel = pp[i2][1] - pp[i1][1];
7652 for (
Int_t it = 0; it < nt; ++it) {
7653 x[0] = pp[i1][0] + xdel*
tt[it][0];
7654 y[0] = pp[i1][1] + ydel*
tt[it][0];
7655 x[1] = pp[i1][0] + xdel*
tt[it][1];
7656 y[1] = pp[i1][1] + ydel*
tt[it][1];
7657 gPad->PaintPolyLine(2,
x,
y);
7665 Double_t xdel = pp[i2][0] - pp[i1][0];
7666 Double_t ydel = pp[i2][1] - pp[i1][1];
7668 for (
Int_t it = 0; it < nt; ++it) {
7669 x[0] = pp[i1][0] + xdel*
tt[it][0];
7670 y[0] = pp[i1][1] + ydel*
tt[it][0];
7671 x[1] = pp[i1][0] + xdel*
tt[it][1];
7672 y[1] = pp[i1][1] + ydel*
tt[it][1];
7673 gPad->PaintPolyLine(2,
x,
y);
7678 xdel = pp[i2][0] - pp[i1][0];
7679 ydel = pp[i2][1] - pp[i1][1];
7680 for (
Int_t it = 0; it < nt; ++it) {
7681 x[0] = pp[i1][0] + xdel*
tt[it][0];
7682 y[0] = pp[i1][1] + ydel*
tt[it][0];
7683 x[1] = pp[i1][0] + xdel*
tt[it][1];
7684 y[1] = pp[i1][1] + ydel*
tt[it][1];
7685 gPad->PaintPolyLine(2,
x,
y);
7727 Int_t ic2 = ic1+nbcol;
7728 Int_t ic3 = ic2+nbcol;
7763 Error(
"PaintH3Iso",
"no TView in current pad");
7772 view->
SetView(phideg, thedeg, psideg, irep);
7774 Int_t backcolor =
gPad->GetFrameFillColor();
7790 for (
Int_t col=0;col<nbcol;col++) {
7791 acol =
gROOT->GetColor(col+icol1);
7808 fmax = ydiff*qa + (yligh1+0.1)*(qd+qs);
7847 if (deltaz == 0) deltaz = 1;
7895 Color_t colormain = -1, colordark = -1;
7906 drawShadowsInLego1 =
kFALSE;
7936 for (
Int_t id=0;
id<=nids;
id++) {
7939 if (colormain == 1) colormain = 17;
7941 else colordark = colormain;
7954 Error(
"PaintLego",
"no TView in current pad");
7961 view->
SetView(phideg, thedeg, psideg, irep);
7969 fLego->TAttFill::Modify();
7971 Int_t backcolor =
gPad->GetFrameFillColor();
7977 fLego->TAttFill::Modify();
8057 Int_t ndivx, ndivy, ndivz, i;
8058 Double_t x1[3],
x2[3], y1[3], y2[3], z1[3], z2[3], av[24] ;
8059 static char chopax[8], chopay[8], chopaz[8];
8060 Int_t ix1, ix2, iy1, iy2, iz1, iz2;
8065 Error(
"PaintLegoAxis",
"no TView in current pad");
8090 view->
AxisVertex(ang, av, ix1, ix2, iy1, iy2, iz1, iz2);
8091 for (i = 1; i <= 8; ++i) {
8092 r[i*3 - 3] = av[i*3 - 3] + av[i*3 - 2]*cosa;
8093 r[i*3 - 2] = av[i*3 - 2]*sina;
8094 r[i*3 - 1] = av[i*3 - 1];
8108 if (!rmin || !rmax)
return;
8111 if (
x1[0] >
x2[0]) strlcpy(chopax,
"SDH=+",8);
8112 else strlcpy(chopax,
"SDH=-",8);
8113 if (y1[0] > y2[0]) strlcpy(chopay,
"SDH=+",8);
8114 else strlcpy(chopay,
"SDH=-",8);
8115 if (z2[1] > z1[1]) strlcpy(chopaz,
"SDH=+",8);
8116 else strlcpy(chopaz,
"SDH=-",8);
8130 strlcat(chopax,
"N",8);
8134 strlcat(chopay,
"N",8);
8138 strlcat(chopaz,
"N",8);
8160 strlcat(chopax,
"t",8);
8178 strlcpy(chopay,
"V=+UN",8);
8193 strlcat(chopay,
"t",8);
8201 axis->
PaintAxis(y1[0], y1[1], y2[0], y2[1], bmin, bmax, ndivy, chopay);
8216 strlcat(chopaz,
"t",8);
8224 axis->
PaintAxis(z1[0], z1[1], z2[0], z2[1], bmin, bmax, ndivz, chopaz);
8242 delete palette; palette = 0;
8247 delete palette; palette = 0;
8275 fH->TAttMarker::Modify();
8278 Double_t dz, z, xk,xstep, yk, ystep;
8283 if (zmin == 0 && zmax == 0)
return;
8294 if (zmin == 0 && zmax == 0)
return;
8297 if (ncells > 10000) scale /= 5;
8301 if (dz >=
kNMAX || zmax < 1) {
8302 scale = (
kNMAX-1)/dz;
8303 if (ncells > 10000) scale /= 5;
8310 if (zmin >= 0) zmin = 0;
8311 else zmin -= yMARGIN*(zmax-zmin);
8313 Double_t dzmin = yMARGIN*(zmax-zmin);
8314 if (zmin >= 0 && (zmin-dzmin <= 0)) zmin = 0;
8323 strlcpy(optscat,opt.
Data(),100);
8324 char *oscat = strstr(optscat,
"scat=");
8325 char *blank = strstr(oscat,
" ");
if (blank) *blank = 0;
8326 sscanf(oscat+5,
"%lg",&scale);
8340 if (!
IsInside(xk+0.5*xstep,yk+0.5*ystep))
continue;
8342 if (z < zmin) z = zmin;
8343 if (z > zmax) z = zmax;
8349 if (z <= 0)
continue;
8353 for (
Int_t loop=0; loop<k; loop++) {
8354 if (k+marker >=
kNMAX) {
8358 fXbuf[marker] = (random.
Rndm()*xstep) + xk;
8359 fYbuf[marker] = (random.
Rndm()*ystep) + yk;
8368 if (
fXbuf[marker] <
gPad->GetUxmin())
break;
8369 if (
fYbuf[marker] <
gPad->GetUymin())
break;
8370 if (
fXbuf[marker] >
gPad->GetUxmax())
break;
8371 if (
fYbuf[marker] >
gPad->GetUymax())
break;
8399 R__TMatrixFBase->
Draw(option);
8405 R__TMatrixDBase->
Draw(option);
8411 R__TVectorF->
Draw(option);
8417 R__TVectorD->
Draw(option);
8434 while ((obj = next())) {
8441 if (stats && dostat) {
8447 if (!dofit) fit = 0;
8448 if (dofit == 1) dofit = 111;
8449 if (dostat == 1) dostat = 1111;
8450 Int_t print_name = dostat%10;
8451 Int_t print_entries = (dostat/10)%10;
8452 Int_t print_mean = (dostat/100)%10;
8453 Int_t print_stddev = (dostat/1000)%10;
8454 Int_t print_under = (dostat/10000)%10;
8455 Int_t print_over = (dostat/100000)%10;
8456 Int_t print_integral= (dostat/1000000)%10;
8457 Int_t print_skew = (dostat/10000000)%10;
8458 Int_t print_kurt = (dostat/100000000)%10;
8459 Int_t nlines = print_name + print_entries + print_mean + print_stddev +
8460 print_under + print_over + print_integral +
8461 print_skew + print_kurt;
8462 Int_t print_fval = dofit%10;
8463 Int_t print_ferrors = (dofit/10)%10;
8464 Int_t print_fchi2 = (dofit/100)%10;
8465 Int_t print_fprob = (dofit/1000)%10;
8466 Int_t nlinesf = print_fval + print_fchi2 + print_fprob;
8469 else nlinesf += fit->
GetNpar();
8475 if (!dostat && !fit) {
8514 if (print_entries) {
8520 if (print_mean == 1) {
8530 if (print_mean == 1) {
8542 if (print_stddev == 1) {
8552 if (print_stddev == 1) {
8573 if (print_integral) {
8574 if (print_integral == 1) {
8584 if (print_skew == 1) {
8595 if (print_kurt == 1) {
8611 if (print_fchi2) stats->
AddText(
tt.Data());
8617 if (print_fval || print_ferrors) {
8621 if (print_fval < 2 && parmin*parmax != 0 && parmin >= parmax)
continue;
8622 if (print_ferrors) {
8654 while ((obj = next())) {
8660 if (stats && dostat) {
8666 if (dostat == 1) dostat = 1111;
8667 Int_t print_name = dostat%10;
8668 Int_t print_entries = (dostat/10)%10;
8669 Int_t print_mean = (dostat/100)%10;
8670 Int_t print_stddev = (dostat/1000)%10;
8671 Int_t print_under = (dostat/10000)%10;
8672 Int_t print_over = (dostat/100000)%10;
8673 Int_t print_integral= (dostat/1000000)%10;
8674 Int_t print_skew = (dostat/10000000)%10;
8675 Int_t print_kurt = (dostat/100000000)%10;
8676 Int_t nlines = print_name + print_entries + 2*print_mean + 2*print_stddev + print_integral;
8677 if (print_under || print_over) nlines += 3;
8682 if (!dostat && !fit) {
8722 if (print_entries) {
8728 if (print_mean == 1) {
8747 if (print_stddev == 1) {
8765 if (print_integral) {
8771 if (print_skew == 1) {
8790 if (print_kurt == 1) {
8808 if (print_under || print_over) {
8819 unov[0] = h2->
Integral( 0, firstX-1, lastY+1, cellsY );
8820 unov[1] = h2->
Integral(firstX , lastX , lastY+1, cellsY );
8821 unov[2] = h2->
Integral(lastX+1, cellsX , lastY+1, cellsY );
8822 unov[3] = h2->
Integral( 0, firstX-1, firstY , lastY );
8823 unov[4] = h2->
Integral(firstX , lastX , firstY , lastY );
8824 unov[5] = h2->
Integral(lastX+1, cellsX , firstY , lastY );
8825 unov[6] = h2->
Integral( 0, firstX-1, 0, firstY-1);
8826 unov[7] = h2->
Integral(firstX, lastX, 0, firstY-1);
8827 unov[8] = h2->
Integral(lastX+1, cellsX , 0, firstY-1);
8846 tt.Form(
"%-8s = %5.4g #pm %5.4g ",fit->
GetParName(ipar)
8871 while ((obj = next())) {
8877 if (stats && dostat) {
8883 if (dostat == 1) dostat = 1111;
8884 Int_t print_name = dostat%10;
8885 Int_t print_entries = (dostat/10)%10;
8886 Int_t print_mean = (dostat/100)%10;
8887 Int_t print_stddev = (dostat/1000)%10;
8888 Int_t print_under = (dostat/10000)%10;
8889 Int_t print_over = (dostat/100000)%10;
8890 Int_t print_integral= (dostat/1000000)%10;
8891 Int_t print_skew = (dostat/10000000)%10;
8892 Int_t print_kurt = (dostat/100000000)%10;
8893 Int_t nlines = print_name + print_entries + 3*print_mean + 3*print_stddev + print_integral;
8894 if (print_under || print_over) nlines += 3;
8899 if (!dostat && !fit) {
8937 if (print_entries) {
8943 if (print_mean == 1) {
8969 if (print_stddev == 1) {
8994 if (print_integral) {
8999 if (print_skew == 1) {
9025 if (print_kurt == 1) {
9050 if (print_under || print_over) {
9061 tt.Form(
"%-8s = %5.4g #pm %5.4g ",fit->
GetParName(ipar)
9098 if (deltaz == 0) deltaz = 1;
9169 Error(
"PaintSurface",
"no TView in current pad");
9176 view->
SetView(phideg, thedeg, psideg, irep);
9186 fLego->TAttFill::Modify();
9188 Int_t backcolor =
gPad->GetFrameFillColor();
9194 fLego->TAttFill::Modify();
9232 fmax = fmin + (yligh1+0.1)*(qd+qs);
9237 if (!colref)
return;
9242 for (
Int_t col=0;col<nbcol;col++) {
9243 acol =
gROOT->GetColor(col+icol1);
9334 if (!dt && !dtOld)
return;
9347 Error(
"PaintTriangles",
"no TView in current pad, do not use option SAME");
9352 if (!rmin || !rmax)
return;
9371 Error(
"PaintTriangles",
"no TView in current pad");
9378 view->
SetView(phideg, thedeg, psideg, irep);
9383 fLego->TAttFill::Modify();
9384 Int_t backcolor =
gPad->GetFrameFillColor();
9389 fLego->TAttFill::Modify();
9431 Warning(
"PaintSurface",
"too many color levels, %d, reset to 8", ndivz);
9438 for (i = 0; i < ndivz; ++i) {
9445 delete [] colorlevel;
9515 while ((obj = next())) {
9523 if (!
gPad->PadInSelectionMode() && !
gPad->PadInHighlightMode()) {
9543 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
return;
9560 while ((obj=next())) {
9562 z =
b->GetContent();
9564 poly =
b->GetPolygon();
9569 g->TAttLine::Modify();
9570 g->TAttMarker::Modify();
9571 g->TAttFill::Modify();
9573 Int_t fs =
g->GetFillStyle();
9576 g->SetFillColor(
g->GetLineColor());
9578 g->SetFillStyle(fs);
9579 g->SetFillColor(
fc);
9581 if (
fill)
g->Paint(
"F");
9582 if (
mark)
g->Paint(
"P");
9588 TList *gl =
mg->GetListOfGraphs();
9592 while ((
g = (
TGraph*) nextg())) {
9593 g->TAttLine::Modify();
9594 g->TAttMarker::Modify();
9595 g->TAttFill::Modify();
9597 Int_t fs =
g->GetFillStyle();
9600 g->SetFillColor(
g->GetLineColor());
9602 g->SetFillStyle(fs);
9603 g->SetFillColor(
fc);
9605 if (
fill)
g->Paint(
"F");
9606 if (
mark)
g->Paint(
"P");
9619 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
9622 Int_t ncolors, color, theColor;
9653 while ((obj=next())) {
9655 poly =
b->GetPolygon();
9657 z =
b->GetContent();
9663 if (z < zmin)
continue;
9668 if (z < zc)
continue;
9670 for (
Int_t k=0; k<ndiv; k++) {
9679 color =
Int_t(0.01+(z-zmin)*scale);
9682 if (theColor > ncolors-1) theColor = ncolors-1;
9688 g->TAttFill::Modify();
9695 TList *gl =
mg->GetListOfGraphs();
9699 while ((
g = (
TGraph*) nextg())) {
9701 g->TAttFill::Modify();
9716 if (
gPad->PadInHighlightMode() &&
gPad->GetSelected() !=
fH)
9719 Int_t k, loop, marker=0;
9720 Double_t z, xk,xstep, yk, ystep, xp, yp;
9734 scale = (
kNMAX-1)/dz;
9748 while ((obj=next())) {
9751 if (
a>maxarea) maxarea =
a;
9756 while ((obj=next())) {
9758 poly =
b->GetPolygon();
9759 z =
b->GetContent();
9760 if (z < zmin) z = zmin;
9761 if (z > zmax) z = zmax;
9767 k =
Int_t((z*scale)*(
b->GetArea()/maxarea));
9770 xstep =
b->GetXMax()-xk;
9771 ystep =
b->GetYMax()-yk;
9776 if (k <= 0 || z <= 0)
continue;
9779 if (k+marker >=
kNMAX) {
9783 xp = (random.
Rndm()*xstep) + xk;
9784 yp = (random.
Rndm()*ystep) + yk;
9785 if (
g->IsInside(xp,yp)) {
9798 TList *gl =
mg->GetListOfGraphs();
9800 if (k <= 0 || z <= 0)
continue;
9803 if (k+marker >=
kNMAX) {
9807 xp = (random.
Rndm()*xstep) + xk;
9808 yp = (random.
Rndm()*ystep) + yk;
9809 if (
mg->IsInside(xp,yp)) {
9842 text.TAttText::Modify();
9849 while ((obj=next())) {
9851 p =
b->GetPolygon();
9852 x = (
b->GetXMin()+
b->GetXMax())/2;
9857 y = (
b->GetYMin()+
b->GetYMax())/2;
9862 z =
b->GetContent();
9866 tf.
Form(
"#splitline{%s%s}{#pm %s%s}",
9909 text.TAttText::Modify();
9923 if (yt == 0.)
continue;
9933 if (
y >=
gPad->GetY2())
continue;
9934 if (y <= gPad->GetY1())
continue;
9943 text.TAttText::Modify();
9962 tf.
Form(
"#splitline{%s%s}{#pm %s%s}",
10000 Error(
"PaintTF3",
"no TView in current pad");
10006 view->
SetView(phideg, thedeg, psideg, irep);
10060 TIter next(
gPad->GetListOfPrimitives());
10061 while ((obj = next())) {
10064 if (strcmp(title->
GetName(),
"title")) {title = 0;
continue;}
10068 if (title)
delete title;
10083 if (ht <= 0) ht = 0.05;
10104 if (talh < 1) talh = 1;
else if (talh > 3) talh = 3;
10106 if (talv < 1) talv = 1;
else if (talv > 3) talv = 3;
10110 if (talh == 2) xpos = xpos-wt/2.;
10111 if (talh == 3) xpos = xpos-wt;
10112 if (talv == 2) ypos = ypos+ht/2.;
10113 if (talv == 1) ypos = ypos+ht;
10131 if(!
gPad->IsEditable())
delete ptitle;
10140 if (!strcmp(mess,
"SetF3")) {
10142 }
else if (!strcmp(mess,
"SetF3ClippingBoxOff")) {
10144 }
else if (!strcmp(mess,
"SetF3ClippingBoxOn")) {
10246 Double_t xmin_aid, ymin_aid, xmax_aid, ymax_aid;
10254 if (
xmin > xmin_aid)
xmin = xmin_aid;
10255 if (
ymin > ymin_aid)
ymin = ymin_aid;
10256 if (
xmax < xmax_aid)
xmax = xmax_aid;
10257 if (
ymax < ymax_aid)
ymax = ymax_aid;
10262 if (
xmin >xmin_aid)
xmin = xmin_aid;
10263 if (
xmax <xmax_aid)
xmax = xmax_aid;
10268 if (
ymin >ymin_aid)
ymin = ymin_aid;
10269 if (
ymax <ymax_aid)
ymax = ymax_aid;
10285 if (
xmin > xmin_aid)
xmin = xmin_aid;
10286 if (
ymin > ymin_aid)
ymin = ymin_aid;
10287 if (
xmax < xmax_aid)
xmax = xmax_aid;
10288 if (
ymax < ymax_aid)
ymax = ymax_aid;
10292 if (
xmin >xmin_aid)
xmin = xmin_aid;
10293 if (
xmax <xmax_aid)
xmax = xmax_aid;
10298 if (
ymin >ymin_aid)
ymin = ymin_aid;
10299 if (
ymax <ymax_aid)
ymax = ymax_aid;
10307 if (
xmin > xmin_aid)
xmin = xmin_aid;
10308 if (
ymin > ymin_aid)
ymin = ymin_aid;
10309 if (
xmax < xmax_aid)
xmax = xmax_aid;
10310 if (
ymax < ymax_aid)
ymax = ymax_aid;
10314 if (
xmin >xmin_aid)
xmin = xmin_aid;
10315 if (
xmax <xmax_aid)
xmax = xmax_aid;
10320 if (
ymin >ymin_aid)
ymin = ymin_aid;
10321 if (
ymax <ymax_aid)
ymax = ymax_aid;
10337 ymin - dyr*
gPad->GetBottomMargin(),
10338 xmax + dxr*
gPad->GetRightMargin(),
10349 if (
h == 0)
return;
10363 static const char *where =
"TableInit";
10391 Error(where,
"cannot set X axis to log scale");
10420 Error(where,
"cannot set Y axis to log scale");
10456 if (!
Hoption.
Same)
Error(where,
"log scale is requested but maximum is less or equal 0 (%f)", zmax);
10462 if (zmin >= zmax) {
10464 if (zmax > 0) zmin = 0.001*zmax;
10466 if (!
Hoption.
Same)
Error(where,
"log scale is requested but maximum is less or equal 0 (%f)", zmax);
10476 if (allchan) factor /= allchan;
10477 if (factor == 0) factor = 1;
10479 zmax = factor*zmax;
10480 zmin = factor*zmin;
10506 zmax += yMARGIN*(zmax-zmin);
10514 if (zmin >= 0) zmin = 0;
10515 else zmin -= yMARGIN*(zmax-zmin);
10517 Double_t dzmin = yMARGIN*(zmax-zmin);
10518 if (zmin >= 0 && (zmin-dzmin <= 0)) zmin = 0;
10519 else zmin -= dzmin;
10545 tf.
Form(
"%s%s",
"%",
f);
10549 int ie = tv.
Index(
"e");
10550 int iE = tv.
Index(
"E");
10551 int id = tv.
Index(
".");
10555 if (ie >= 0 || iE >= 0) {
10556 if (tv.
Index(
"+") >= 0) {
10558 ef.
Form(
"%s.1f",
"%");
10561 ef.
Form(
"%s.%de",
"%",ie-
id-1);
10563 ef.
Form(
"%s.%dE",
"%",iE-
id-1);
10568 ef.
Form(
"%s.%de",
"%",ie-
id-1);
10570 ef.
Form(
"%s.%dE",
"%",iE-
id-1);
10575 }
else if (
id < 0) {
10576 ef.
Form(
"%s.1f",
"%");
10596 Int_t projection = 0;
10597 if (opt.
Contains(
"x")) projection = 1;
10598 if (opt.
Contains(
"y")) projection = 2;
10599 if (opt.
Contains(
"z")) projection = 3;
10600 if (opt.
Contains(
"xy")) projection = 4;
10601 if (opt.
Contains(
"yx")) projection = 5;
10602 if (opt.
Contains(
"xz")) projection = 6;
10603 if (opt.
Contains(
"zx")) projection = 7;
10604 if (opt.
Contains(
"yz")) projection = 8;
10605 if (opt.
Contains(
"zy")) projection = 9;
10609 gROOT->MakeDefCanvas();
10621 gPad->SetDoubleBuffer(0);
10625 static int pyold1 = 0;
10626 static int pyold2 = 0;
10627 float uxmin =
gPad->GetUxmin();
10628 float uxmax =
gPad->GetUxmax();
10629 int pxmin =
gPad->XtoAbsPixel(uxmin);
10630 int pxmax =
gPad->XtoAbsPixel(uxmax);
10661 TH1D *hp = ((
TH2*)
fH)->ProjectionX(prjName, biny1, biny2);
10666 if (biny1 == biny2) {
10674 hp->
SetTitle(
TString::Format(
"ProjectionX of biny=%d [y=%.*lf..%.*lf]", biny1, valuePrecision, valueFrom, valuePrecision, valueTo));
10686 hp->
SetTitle(
TString::Format(
"ProjectionX of biny=[%d,%d] [y=%.*lf..%.*lf]", biny1, biny2, valuePrecision, valueFrom, valuePrecision, valueTo));
10704 gPad->SetDoubleBuffer(0);
10708 static int pxold1 = 0;
10709 static int pxold2 = 0;
10710 float uymin =
gPad->GetUymin();
10711 float uymax =
gPad->GetUymax();
10712 int pymin =
gPad->YtoAbsPixel(uymin);
10713 int pymax =
gPad->YtoAbsPixel(uymax);
10744 TH1D *hp = ((
TH2*)
fH)->ProjectionY(prjName, binx1, binx2);
10749 if (binx1 == binx2) {
10757 hp->
SetTitle(
TString::Format(
"ProjectionY of binx=%d [x=%.*lf..%.*lf]", binx1, valuePrecision, valueFrom, valuePrecision, valueTo));
10769 hp->
SetTitle(
TString::Format(
"ProjectionY of binx=[%d,%d] [x=%.*lf..%.*lf]", binx1, binx2, valuePrecision, valueFrom, valuePrecision, valueTo));
10797 gPad->SetDoubleBuffer(0);
10813 static TPoint endface1[5];
10814 static TPoint endface2[5];
10823 int pxmin =
gPad->XtoAbsPixel(uxmin);
10824 int pxmax =
gPad->XtoAbsPixel(uxmax);
10825 if (pxmin==pxmax)
return;
10826 int pymin =
gPad->YtoAbsPixel(uymin);
10827 int pymax =
gPad->YtoAbsPixel(uymax);
10828 if (pymin==pymax)
return;
10829 Double_t cx = (pxmax-pxmin)/(uxmax-uxmin);
10830 Double_t cy = (pymax-pymin)/(uymax-uymin);
10845 Int_t biny = firstY +
Int_t((lastY-firstY)*(px-pxmin)/(pxmax-pxmin));
10850 Int_t binz = firstZ +
Int_t((lastZ-firstZ)*(py-pymin)/(pymax-pymin));
10853 if (line1[0].GetX())
gVirtualX->DrawPolyLine(2,line1);
10854 if (nbins>1 && line1[0].GetX()) {
10865 line1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10866 line1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10869 line1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10870 line1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10877 line2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10878 line2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10881 line2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10882 line2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10888 line3[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10889 line3[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10892 line3[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10893 line3[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10899 line4[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10900 line4[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10903 line4[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10904 line4[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10906 endface1[0].
SetX(line1[0].GetX());
10907 endface1[0].
SetY(line1[0].GetY());
10908 endface1[1].
SetX(line2[0].GetX());
10909 endface1[1].
SetY(line2[0].GetY());
10910 endface1[2].
SetX(line3[0].GetX());
10911 endface1[2].
SetY(line3[0].GetY());
10912 endface1[3].
SetX(line4[0].GetX());
10913 endface1[3].
SetY(line4[0].GetY());
10914 endface1[4].
SetX(line1[0].GetX());
10915 endface1[4].
SetY(line1[0].GetY());
10917 endface2[0].
SetX(line1[1].GetX());
10918 endface2[0].
SetY(line1[1].GetY());
10919 endface2[1].
SetX(line2[1].GetX());
10920 endface2[1].
SetY(line2[1].GetY());
10921 endface2[2].
SetX(line3[1].GetX());
10922 endface2[2].
SetY(line3[1].GetY());
10923 endface2[3].
SetX(line4[1].GetX());
10924 endface2[3].
SetY(line4[1].GetY());
10925 endface2[4].
SetX(line1[1].GetX());
10926 endface2[4].
SetY(line1[1].GetY());
10960 Int_t binx = firstX +
Int_t((lastX-firstX)*(px-pxmin)/(pxmax-pxmin));
10965 Int_t binz = firstZ +
Int_t((lastZ-firstZ)*(py-pymin)/(pymax-pymin));
10968 if (line1[0].GetX())
gVirtualX->DrawPolyLine(2,line1);
10969 if (nbins>1 && line1[0].GetX()) {
10980 line1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10981 line1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10984 line1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10985 line1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10992 line2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10993 line2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
10996 line2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
10997 line2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11003 line3[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11004 line3[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11007 line3[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11008 line3[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11014 line4[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11015 line4[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11018 line4[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11019 line4[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11021 endface1[0].
SetX(line1[0].GetX());
11022 endface1[0].
SetY(line1[0].GetY());
11023 endface1[1].
SetX(line2[0].GetX());
11024 endface1[1].
SetY(line2[0].GetY());
11025 endface1[2].
SetX(line3[0].GetX());
11026 endface1[2].
SetY(line3[0].GetY());
11027 endface1[3].
SetX(line4[0].GetX());
11028 endface1[3].
SetY(line4[0].GetY());
11029 endface1[4].
SetX(line1[0].GetX());
11030 endface1[4].
SetY(line1[0].GetY());
11032 endface2[0].
SetX(line1[1].GetX());
11033 endface2[0].
SetY(line1[1].GetY());
11034 endface2[1].
SetX(line2[1].GetX());
11035 endface2[1].
SetY(line2[1].GetY());
11036 endface2[2].
SetX(line3[1].GetX());
11037 endface2[2].
SetY(line3[1].GetY());
11038 endface2[3].
SetX(line4[1].GetX());
11039 endface2[3].
SetY(line4[1].GetY());
11040 endface2[4].
SetX(line1[1].GetX());
11041 endface2[4].
SetY(line1[1].GetY());
11074 Int_t binx = firstX +
Int_t((lastX-firstX)*(px-pxmin)/(pxmax-pxmin));
11079 Int_t biny = firstY +
Int_t((lastY-firstY)*(py-pymin)/(pymax-pymin));
11082 if (line1[0].GetX())
gVirtualX->DrawPolyLine(2,line1);
11083 if (nbins>1 && line1[0].GetX()) {
11094 line1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11095 line1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11098 line1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11099 line1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11106 line2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11107 line2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11110 line2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11111 line2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11117 line3[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11118 line3[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11121 line3[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11122 line3[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11128 line4[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11129 line4[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11132 line4[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11133 line4[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11135 endface1[0].
SetX(line1[0].GetX());
11136 endface1[0].
SetY(line1[0].GetY());
11137 endface1[1].
SetX(line2[0].GetX());
11138 endface1[1].
SetY(line2[0].GetY());
11139 endface1[2].
SetX(line3[0].GetX());
11140 endface1[2].
SetY(line3[0].GetY());
11141 endface1[3].
SetX(line4[0].GetX());
11142 endface1[3].
SetY(line4[0].GetY());
11143 endface1[4].
SetX(line1[0].GetX());
11144 endface1[4].
SetY(line1[0].GetY());
11146 endface2[0].
SetX(line1[1].GetX());
11147 endface2[0].
SetY(line1[1].GetY());
11148 endface2[1].
SetX(line2[1].GetX());
11149 endface2[1].
SetY(line2[1].GetY());
11150 endface2[2].
SetX(line3[1].GetX());
11151 endface2[2].
SetY(line3[1].GetY());
11152 endface2[3].
SetX(line4[1].GetX());
11153 endface2[3].
SetY(line4[1].GetY());
11154 endface2[4].
SetX(line1[1].GetX());
11155 endface2[4].
SetY(line1[1].GetY());
11191 if (rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect1);
11192 if (nbins>1 && rect2[0].GetX())
gVirtualX->DrawPolyLine(5,rect2);
11197 rect1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11198 rect1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11199 rect1[4].
SetX(rect1[0].GetX());
11200 rect1[4].
SetY(rect1[0].GetY());
11203 rect1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11204 rect1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11207 rect1[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11208 rect1[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11211 rect1[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11212 rect1[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11219 rect2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11220 rect2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11221 rect2[4].
SetX(rect2[0].GetX());
11222 rect2[4].
SetY(rect2[0].GetY());
11225 rect2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11226 rect2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11229 rect2[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11230 rect2[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11233 rect2[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11234 rect2[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11262 if (rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect1);
11263 if (nbins>1 && rect2[0].GetX())
gVirtualX->DrawPolyLine(5,rect2);
11268 rect1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11269 rect1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11270 rect1[4].
SetX(rect1[0].GetX());
11271 rect1[4].
SetY(rect1[0].GetY());
11274 rect1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11275 rect1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11278 rect1[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11279 rect1[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11282 rect1[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11283 rect1[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11290 rect2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11291 rect2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11292 rect2[4].
SetX(rect2[0].GetX());
11293 rect2[4].
SetY(rect2[0].GetY());
11296 rect2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11297 rect2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11300 rect2[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11301 rect2[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11304 rect2[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11305 rect2[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11332 if (rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect1);
11333 if (nbins>1 && rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect2);
11338 rect1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11339 rect1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11340 rect1[4].
SetX(rect1[0].GetX());
11341 rect1[4].
SetY(rect1[0].GetY());
11344 rect1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11345 rect1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11348 rect1[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11349 rect1[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11352 rect1[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11353 rect1[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11360 rect2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11361 rect2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11362 rect2[4].
SetX(rect2[0].GetX());
11363 rect2[4].
SetY(rect2[0].GetY());
11366 rect2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11367 rect2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11370 rect2[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11371 rect2[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11374 rect2[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11375 rect2[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11402 if (rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect1);
11403 if (nbins>1 && rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect2);
11408 rect1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11409 rect1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11410 rect1[4].
SetX(rect1[0].GetX());
11411 rect1[4].
SetY(rect1[0].GetY());
11414 rect1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11415 rect1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11418 rect1[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11419 rect1[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11422 rect1[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11423 rect1[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11430 rect2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11431 rect2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11432 rect2[4].
SetX(rect2[0].GetX());
11433 rect2[4].
SetY(rect2[0].GetY());
11436 rect2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11437 rect2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11440 rect2[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11441 rect2[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11444 rect2[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11445 rect2[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11472 if (rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect1);
11473 if (nbins>1 && rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect2);
11478 rect1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11479 rect1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11480 rect1[4].
SetX(rect1[0].GetX());
11481 rect1[4].
SetY(rect1[0].GetY());
11484 rect1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11485 rect1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11488 rect1[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11489 rect1[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11492 rect1[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11493 rect1[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11500 rect2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11501 rect2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11502 rect2[4].
SetX(rect2[0].GetX());
11503 rect2[4].
SetY(rect2[0].GetY());
11506 rect2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11507 rect2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11510 rect2[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11511 rect2[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11514 rect2[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11515 rect2[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11542 if (rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect1);
11543 if (nbins>1 && rect1[0].GetX())
gVirtualX->DrawPolyLine(5,rect2);
11548 rect1[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11549 rect1[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11550 rect1[4].
SetX(rect1[0].GetX());
11551 rect1[4].
SetY(rect1[0].GetY());
11554 rect1[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11555 rect1[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11558 rect1[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11559 rect1[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11562 rect1[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11563 rect1[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11570 rect2[0].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11571 rect2[0].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11572 rect2[4].
SetX(rect2[0].GetX());
11573 rect2[4].
SetY(rect2[0].GetY());
11576 rect2[1].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11577 rect2[1].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11580 rect2[2].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11581 rect2[2].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
11584 rect2[3].
SetX(pxmin +
Int_t((u[0]-uxmin)*cx));
11585 rect2[3].
SetY(pymin +
Int_t((u[1]-uymin)*cy));
static const double x2[5]
static const double x1[5]
include TDocParser_001 C image html pict1_TDocParser_001 png width
static TBox * gYHighlightBox
static TString gStringStdDevZ
static TString gStringStdDevX
static TString gStringIntegralBinWidth
const UInt_t kCannotRotate
static TString gStringStdDev
static TBox * gXHighlightBox
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 TString gStringSkewnessZ
static TString gStringMeanZ
static TString gStringSkewness
static TString gStringKurtosisZ
char * Form(const char *fmt,...)
R__EXTERN TStyle * gStyle
R__EXTERN TSystem * gSystem
static struct mg_connection * fc(struct mg_context *ctx)
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 void SetImageQuality(EImageQuality lquality)
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.
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
virtual Font_t GetTextFont() const
Return the text font.
virtual void SetTextAngle(Float_t tangle=0)
Set the text angle.
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
Class to manage histogram axis.
virtual Bool_t GetTimeDisplay() const
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).
virtual const char * GetTimeFormat() const
const char * GetTitle() const
Returns title of object.
virtual void SetRange(Int_t first=0, Int_t last=0)
Set the viewing range for the axis from bin first to last.
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
virtual void SetY2(Double_t y2)
virtual void SetX1(Double_t x1)
virtual void Draw(Option_t *option="")
Draw this box with its current attributes.
virtual void SetX2(Double_t x2)
virtual void SetY1(Double_t y1)
virtual void Paint(Option_t *option="")
Paint this box with its current attributes.
The candle plot painter class.
void SetLog(int x, int y, int z)
void SetHistoWidth(const Double_t width)
virtual void Paint(Option_t *option="")
Paint one candle with its current attributes.
int ParseOption(char *optin)
Parsing of the option-string.
void SetOption(CandleOption opt)
void SetHistogram(TH1D *proj)
void SetCandleWidth(const Double_t width)
void SetAxisPosition(const Double_t candlePos)
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.
void SetName(const char *name)
virtual void Paint(Option_t *option="")
Paint all objects in this collection.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
The color creation and management class.
virtual void SetRGB(Float_t r, Float_t g, Float_t b)
Initialize this color and its associated colors.
static void RGBtoHLS(Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &l, Float_t &s)
virtual void GetRGB(Float_t &r, Float_t &g, Float_t &b) const
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 void SetAlpha(Float_t a)
virtual void Paint(Option_t *option="")
Paint this crown with its current attributes.
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
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.
virtual void Paint(Option_t *option="")
Paint this 2-D function with its current attributes.
virtual void SetRange(Double_t xmin, Double_t xmax)
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.
The TGraphDelaunay painting class.
void Paint(Option_t *option)
Paint a TGraphDelaunay according to the value of "option":
TList * GetContourList(Double_t contour)
Returns the X and Y graphs building a contour.
TGraphDelaunay2D generates a Delaunay triangulation of a TGraph2D.
TGraphDelaunay generates a Delaunay triangulation of a TGraph2D.
A Graph is a graphics object made of two arrays X and Y with npoints each.
@ kClipFrame
clip to the frame boundary
1-D histogram with a double per channel (see TH1 documentation)}
1-D histogram with a float per channel (see TH1 documentation)}
virtual void SetTitle(const char *title)
See GetStatOverflows for more information.
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 void SetXTitle(const char *title)
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
TAxis * GetXaxis()
Get the behaviour adopted by the object about the statoverflows. See EStatOverflows for more informat...
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 SetContour(Int_t nlevels, const Double_t *levels=0)
Set the number and values of contour levels.
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.
virtual void SetZTitle(const char *title)
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 void Draw(Option_t *option="")
Draw this histogram with options.
virtual Double_t GetMaximumStored() const
virtual void GetMinimumAndMaximum(Double_t &min, Double_t &max) const
Retrieve the minimum and maximum values in the histogram.
virtual Int_t GetMaximumBin() const
Return location of bin with maximum value in the range.
@ kNormal
errors with Normal (Wald) approximation: errorUp=errorLow= sqrt(N)
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
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 Double_t GetBinErrorUp(Int_t bin) const
Return upper error associated to bin number bin.
virtual void SetYTitle(const char *title)
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...
virtual Double_t GetSumOfWeights() const
Return the sum of weights excluding under/overflows.
static Bool_t AddDirectoryStatus()
Static function: cannot be inlined on Windows/NT.
virtual Int_t GetContour(Double_t *levels=0)
Return contour values into array levels if pointer levels is non zero.
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-Dim histogram classes.
TH1D * ProjectionY(const char *name="_py", Int_t firstxbin=0, Int_t lastxbin=-1, Option_t *option="") const
Project a 2-D histogram into a 1-D histogram along Y.
TH1D * ProjectionX(const char *name="_px", Int_t firstybin=0, Int_t lastybin=-1, Option_t *option="") const
Project a 2-D histogram into a 1-D histogram along X.
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
The 3-D histogram classes derived from the 1-D histogram classes.
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
virtual TH1 * Project3D(Option_t *option="x") const
Project a 3-d histogram into 1 or 2-d histograms depending on the option parameter,...
The histogram painter class.
static Int_t ProjectSinusoidal2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function code from Ernst-Jan Buis.
virtual Bool_t IsInside(Int_t x, Int_t y)
Return kTRUE if the cell ix, iy is inside one of the graphical cuts.
virtual void DrawPanel()
Display a panel with all histogram drawing options.
virtual void PaintErrors(Option_t *option)
Draw 1D histograms error bars.
virtual void SetHistogram(TH1 *h)
Set current histogram to h
virtual void PaintTF3()
Control function to draw a 3D implicit functions.
virtual void PaintStat(Int_t dostat, TF1 *fit)
Draw the statistics box for 1D and profile histograms.
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 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.
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.
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.
virtual ~THistPainter()
Default destructor.
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Display the histogram info (bin number, contents, integral up to bin corresponding to cursor position...
virtual void 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.
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.
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.
static void PaintSpecialObjects(const TObject *obj, Option_t *option)
Static function to paint special objects like vectors and matrices.
virtual void PaintTitle()
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.
virtual void ProcessMessage(const char *mess, const TObject *obj)
Process message mess.
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.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute the distance from the point px,py to a line.
static Int_t ProjectParabolic2xy(Double_t l, Double_t b, Double_t &Al, Double_t &Ab)
Static function code from Ernst-Jan Buis.
TPainter3dAlgorithms * fLego
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.
TGraph2DPainter * fGraph2DPainter
THistPainter()
Default constructor.
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.
virtual void Paint(Option_t *option="")
Control routine to paint any kind of histograms
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.
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute the actions corresponding to event.
virtual void SetShowProjection(const char *option, Int_t nbins)
Set projection.
virtual void ShowProjectionY(Int_t px, Int_t py)
Show projection onto Y.
virtual void SetHighlight()
Set highlight (enable/disable) mode for fH.
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.
virtual void PaintTable(Option_t *option)
Control function to draw 2D/3D histograms (tables).
virtual TList * GetContourList(Double_t contour) const
Get a contour (as a list of TGraphs) using the Delaunay triangulation.
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).
virtual void PaintH3Iso()
Control function to draw a 3D histogram with Iso Surfaces.
virtual void PaintH3BoxRaster()
Control function to draw a 3D histogram with boxes.
virtual void PaintHist(Option_t *option)
Control routine to draw 1D histograms
virtual Int_t MakeCuts(char *cutsopt)
Decode string choptin and fill Graphical cuts structure.
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.
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.
virtual void SetImage(const Double_t *, UInt_t, UInt_t, TImagePalette *=0)
static TImage * Create()
Create an image.
virtual void PaintImage(Drawable_t, Int_t, Int_t, Int_t=0, Int_t=0, UInt_t=0, UInt_t=0, Option_t *="")
To draw Mathematical Formula.
virtual void Add(TObject *obj)
virtual TObject * Remove(TObject *obj)
Remove object from the list.
virtual void AddFirst(TObject *obj)
Add object at the beginning of the list.
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
virtual TObjLink * FirstLink() const
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
A TMultiGraph is a collection of TGraph (or derived) objects.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
TObject * At(Int_t idx) const
TObject * GetObject() const
Option_t * GetOption() const
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 void Delete(Option_t *option="")
Delete this object.
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 void Paint(Option_t *option="")
This method must be overridden if a class wants to paint itself.
@ 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 Legos and Surfaces painter class.
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 SetDrawFace(DrawFaceFunc_t pointer)
Store pointer to current algorithm to draw faces.
void SetIsoSurfaceParameters(Double_t fmin, Double_t fmax, Int_t ncolor, Int_t ic1, Int_t ic2, Int_t ic3)
void IsoSurface(Int_t ns, Double_t *s, Int_t nx, Int_t ny, Int_t nz, Double_t *x, Double_t *y, Double_t *z, const char *chopt)
Draw set of iso-surfaces for a scalar function defined on a grid.
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 ImplicitFunction(Double_t *rmin, Double_t *rmax, Int_t nx, Int_t ny, Int_t nz, const char *chopt)
Draw implicit function FUN(X,Y,Z) = 0 in cartesian coordinates using hidden surface removal algorithm...
void SetLegoFunction(LegoFunc_t pointer)
Store pointer to current lego function.
void SurfaceCylindrical(Int_t iordr, Int_t na, Int_t nb, const char *chopt)
Draw surface in cylindrical coordinates.
void SurfaceFunction(Int_t ia, Int_t ib, Double_t *f, Double_t *t)
Service function for Surfaces.
void LegoCylindrical(Int_t iordr, Int_t na, Int_t nb, const char *chopt)
Draw stack of lego-plots in cylindrical coordinates.
void FillPolygonBorder(Int_t nn, Double_t *xy)
Fill a polygon including border ("RASTER SCREEN")
void LegoSpherical(Int_t ipsdr, Int_t iordr, Int_t na, Int_t nb, const char *chopt)
Draw stack of lego-plots spheric coordinates.
void SurfaceCartesian(Double_t ang, Int_t nx, Int_t ny, const char *chopt)
Draw surface in cartesian coordinate system.
static void SetF3ClippingBoxOff()
Static function Set the implicit function clipping box "off".
void SurfaceProperty(Double_t qqa, Double_t qqd, Double_t qqs, Int_t nnqs, Int_t &irep)
Set surface property coefficients.
void InitMoveScreen(Double_t xmin, Double_t xmax)
Initialize "MOVING SCREEN" method.
void FindVisibleLine(Double_t *p1, Double_t *p2, Int_t ntmax, Int_t &nt, Double_t *t)
Find visible part of a line ("RASTER SCREEN")
void LegoCartesian(Double_t ang, Int_t nx, Int_t ny, const char *chopt)
Draw stack of lego-plots in cartesian coordinates.
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 LightSource(Int_t nl, Double_t yl, Double_t xscr, Double_t yscr, Double_t zscr, Int_t &irep)
Set light source.
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 SetSurfaceFunction(SurfaceFunc_t pointer)
Store pointer to current surface function.
void SurfacePolar(Int_t iordr, Int_t na, Int_t nb, const char *chopt)
Draw surface in polar coordinates.
static void SetF3ClippingBoxOn(Double_t xclip, Double_t yclip, Double_t zclip)
Static function Set the implicit function clipping box "on" and define the clipping box.
void SurfaceSpherical(Int_t ipsdr, Int_t iordr, Int_t na, Int_t nb, const char *chopt)
Draw surface in spheric coordinates.
void BackBox(Double_t ang)
Draw back surfaces of surrounding box.
void ColorFunction(Int_t nl, Double_t *fl, Int_t *icl, Int_t &irep)
Set correspondence between function and color levels.
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)
static void SetF3(TF3 *f3)
Static function Store pointer to current implicit function.
void LegoPolar(Int_t iordr, Int_t na, Int_t nb, const char *chopt)
Draw stack of lego-plots in polar coordinates.
void SetEdgeAtt(Color_t color=1, Style_t style=1, Width_t width=1, Int_t n=0)
void SetMesh(Int_t mesh=1)
void InitRaster(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, Int_t nx, Int_t ny)
Initialize hidden lines removal algorithm (RASTER SCREEN)
void DefineGridLevels(Int_t ndivz)
Define the grid levels drawn in the background of surface and lego plots.
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 SetColorMain(Color_t color, Int_t n=0)
Store color for stack number n.
void Spectrum(Int_t nl, Double_t fmin, Double_t fmax, Int_t ic, Int_t idc, Int_t &irep)
Set Spectrum.
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 FrontBox(Double_t ang)
Draw front surfaces of surrounding box & axes.
void SetColorDark(Color_t color, Int_t n=0)
Store dark color for stack number n.
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.
void SetHistogram(TH1 *h)
virtual void Paint(Option_t *option="")
Paint the palette.
The histogram statistics painter class.
Int_t GetOptStat() const
Return the stat option.
virtual void SetStatFormat(const char *format="6.4g")
Change (i.e. set) the format for printing statistics.
void SetOptStat(Int_t stat=1)
Set the stat option.
virtual const char * GetFitFormat() const
void SetParent(TObject *obj)
virtual void SetFitFormat(const char *format="5.4g")
Change (i.e. set) the format for printing fit parameters in statistics box.
Int_t GetOptFit() const
Return the fit option.
virtual void Paint(Option_t *option="")
Paint the pave stat.
void SetOptFit(Int_t fit=1)
Set the fit option.
virtual const char * GetStatFormat() const
A Pave (see TPave) with text, lines or/and boxes inside.
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
virtual void Draw(Option_t *option="")
Draw this pavetext with its current attributes.
virtual void Paint(Option_t *option="")
Paint this pavetext with its current attributes.
virtual TText * GetLine(Int_t number) const
Get Pointer to line number in this pavetext.
virtual void Clear(Option_t *option="")
Clear all lines in this pavetext.
virtual void SetName(const char *name="")
Option_t * GetName() const
Returns name of object.
virtual void SetBorderSize(Int_t bordersize=4)
Double_t GetX1NDC() const
virtual void SetX2NDC(Double_t x2)
virtual void Paint(Option_t *)
Paint a Pie chart in a canvas.
virtual void ExecuteEvent(Int_t, Int_t, Int_t)
Execute the mouse events.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Evaluate the distance to the chart in gPad.
Defined by an array on N points in a 2-D space.
virtual void SetPoint(Int_t point, Double_t x, Double_t y)
Set point number n to (x, y) If n is greater than the current size, the arrays are automatically exte...
Profile2D histograms are used to display the mean value of Z and its RMS for each cell in X,...
virtual Double_t GetBinEntries(Int_t bin) const
Return bin entries of a Profile2D histogram.
virtual Double_t GetBinEntries(Int_t bin) const
Return bin entries of a Profile histogram.
Random number generator class based on the maximally quidistributed combined Tausworthe generator by ...
virtual Double_t Rndm()
TausWorth generator from L'Ecuyer, uses as seed 3x32bits integers Use a mask of 0xffffffffUL to make ...
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
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
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
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 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.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
virtual Int_t GetLogz() const =0
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
virtual Int_t GetLogy() const =0
virtual Int_t GetLogx() const =0
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
double beta(double x, double y)
Calculates the beta function.
double dist(Rotation3D const &r1, Rotation3D const &r2)
RooCmdArg Bins(Int_t nbin)
static constexpr double bar
static constexpr double rad
static constexpr double s
static constexpr double mg
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)
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...
constexpr Double_t PiOver2()
constexpr Double_t E()
Base of natural log:
constexpr Double_t DegToRad()
Conversion from degree to radian:
Double_t Sqrt(Double_t x)
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Short_t Min(Short_t a, Short_t b)
Bool_t AreEqualRel(Double_t af, Double_t bf, Double_t relPrec)
Long64_t BinarySearch(Long64_t n, const T *array, T value)
constexpr Double_t RadToDeg()
Conversion from radian to degree:
Double_t Log10(Double_t x)
Histogram option structure.
int Curve
"C" A smooth Curve is drawn.
int Proj
1: Aitoff, 2: Mercator, 3: Sinusoidal, 4: Parabolic
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
Axis position.
int List
= 1 to generate the TObjArray "contours"
int Logx
log scale in X. Also set by histogram option
int Zscale
"Z" to display the Z scale (color palette)
int MinimumZero
"MIN0" or gStyle->GetHistMinimumZero()
int Contour
"CONT" Draw 2D plot as a Contour plot.
int Off
"][" With H option, 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" Draw a 2D histogram as candle/box plot or violin plot (also with "VIOLIN").
int Spec
TSpectrum graphics.
int FrontBox
= 0 to suppress the front box
int Pie
"PIE" Draw 1D plot as a pie chart.
int Char
"CHAR" Draw 2D plot with a character set.
int Star
"*" A * is plotted at each point
int Zero
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 2D plot with Delaunay triangles.
int BackBox
= 0 to suppress the back box
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 beetwen every point is drawn.
int Same
"S" Histogram is plotted in the current PAD.
int Lego
"LEGO" Draw as a Lego plot(LEGO,Lego=1, LEGO1,Lego1=11, LEGO2,Lego=12).
int Bar
"B" 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" Draw as a Surface (SURF,Surf=1, SURF1,Surf=11, SURF2,Surf=12)
int Logy
log scale in Y. Also set by histogram option
int System
type of coordinate system(1=car,2=pol,3=cyl,4=sph,5=psr)
int Error
"E" Draw Errors with current marker type and size.
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