91 :
TH1(
name,title,nbinsx,xlow,xup)
96 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
125 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
148 :
TH1(
name,title,nbinsx,xlow,xup)
153 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
182 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
212 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
243 if (nbentries == 0)
return 0;
244 if (nbentries < 0 && action == 0)
return 0;
248 nbentries = -nbentries;
263 for (
Int_t i=1;i<nbentries;i++) {
286 for (
Int_t i=0;i<nbentries;i++) {
287 Fill(buffer[3*i+2],buffer[3*i+3],buffer[3*i+1]);
314 nbentries = -nbentries;
352 Error(
"Fill",
"Invalid signature - do nothing");
376 Int_t binx, biny, bin;
380 if (binx <0 || biny <0)
return -1;
420 Int_t binx, biny, bin;
424 if (binx <0 || biny <0)
return -1;
464 Int_t binx, biny, bin;
468 if (binx <0 || biny <0)
return -1;
511 Int_t binx, biny, bin;
515 if (binx <0 || biny <0)
return -1;
557 Int_t binx, biny, bin;
561 if (binx <0 || biny <0)
return -1;
605 Int_t binx, biny, bin, i;
612 for (i=0;i<ntimes;i+=stride) {
618 if (i < ntimes &&
fBuffer==
nullptr)
625 for (i=ifirst;i<ntimes;i+=stride) {
629 if (binx <0 || biny <0)
continue;
673 Int_t bin, binx, biny, ibin, loop;
677 if (!fobj) {
Error(
"FillRandom",
"Unknown function: %s",fname);
return; }
678 TF2 *
f1 =
dynamic_cast<TF2*
>(fobj);
679 if (!
f1) {
Error(
"FillRandom",
"Function: %s is not a TF2, is a %s",fname,fobj->
IsA()->
GetName());
return; }
698 Int_t nbins = nbinsx*nbinsy;
704 for (biny=1;biny<=nbinsy;biny++) {
705 for (binx=1;binx<=nbinsx;binx++) {
708 integral[ibin] = integral[ibin-1] + fint;
713 if (integral[nbins] == 0 ) {
715 Error(
"FillRandom",
"Integral = zero");
return;
717 for (bin=1;bin<=nbins;bin++) integral[bin] /= integral[nbins];
720 for (loop=0;loop<ntimes;loop++) {
724 binx = 1 + ibin - nbinsx*biny;
752 if (!
h) {
Error(
"FillRandom",
"Null histogram");
return; }
754 Error(
"FillRandom",
"Histograms with different dimensions");
return;
757 if (
h->ComputeIntegral() == 0)
return;
762 for (loop=0;loop<ntimes;loop++) {
763 h2->GetRandom2(
x,
y,rng);
787 if (firstbin == 0 && lastbin == 0) {
792 if (firstbin < 0) firstbin = 0;
793 if (lastbin < 0 || lastbin > nbins + 1) lastbin = nbins + 1;
794 if (lastbin < firstbin) {firstbin = 0; lastbin = nbins + 1;}
801 if (i1>=0 && i2>i1) {
802 proj_opt += opt(i1,i2-i1+1);
813 Int_t nstep = ngroup;
823 if (npar <= 0)
return;
835 char *
name =
new char[2000];
836 char *title =
new char[2000];
842 Int_t nOutBins = lastOutBin-firstOutBin+1;
844 if (bins->
fN == 0) nOutBins /= nstep;
845 for (ipar=0;ipar<npar;ipar++) {
852 hlist[ipar] =
new TH1D(
name,title, nOutBins, &bins->
fArray[firstOutBin-1]);
856 (*arr)[ipar] = hlist[ipar];
860 TH1D *hchi2 =
nullptr;
864 hchi2 =
new TH1D(
name,
"chisquare", nOutBins, &bins->
fArray[firstOutBin-1]);
868 (*arr)[npar] = hchi2;
878 for (bin=firstbin;bin+ngroup-1<=lastbin;bin += nstep) {
880 hp=
ProjectionX(
"_temp",bin,bin+ngroup-1,proj_opt);
882 hp=
ProjectionY(
"_temp",bin,bin+ngroup-1,proj_opt);
883 if (hp ==
nullptr)
continue;
888 Info(
"DoFitSlices",
"Slice %d skipped, the number of entries is zero or smaller than the given cut value, n=%f",bin,
nentries);
897 if (npfits > npar && npfits >= cut) {
898 for (ipar=0;ipar<npar;ipar++) {
906 Info(
"DoFitSlices",
"Fitted slice %d skipped, the number of fitted points is too small, n=%d",bin,npfits);
1047 if (biny < 0) biny = 0;
1048 if (biny > ofy) biny = ofy;
1080 Error(
"GetBinWithContent2",
"function is only valid for 2-D histograms");
1083 if (firstxbin < 0) firstxbin = 1;
1085 if (firstybin < 0) firstybin = 1;
1088 for (
Int_t j = firstybin; j <= lastybin; j++) {
1089 for (
Int_t i = firstxbin; i <= lastxbin; i++) {
1091 if (diff <= 0) {binx = i; biny=j;
return diff;}
1092 if (diff < curmax && diff <= maxdiff) {curmax = diff, binx=i; biny=j;}
1104 if (axis1 < 1 || axis2 < 1 || axis1 > 2 || axis2 > 2) {
1105 Error(
"GetCorrelationFactor",
"Wrong parameters");
1108 if (axis1 == axis2)
return 1;
1110 if (stddev1 == 0)
return 0;
1112 if (stddev2 == 0)
return 0;
1122 if (axis1 < 1 || axis2 < 1 || axis1 > 2 || axis2 > 2) {
1123 Error(
"GetCovariance",
"Wrong parameters");
1136 if (sumw == 0)
return 0;
1137 if (axis1 == 1 && axis2 == 1) {
1138 return TMath::Abs(sumwx2/sumw - sumwx/sumw*sumwx/sumw);
1140 if (axis1 == 2 && axis2 == 2) {
1141 return TMath::Abs(sumwy2/sumw - sumwy/sumw*sumwy/sumw);
1143 return sumwxy/sumw - sumwx/sumw*sumwy/sumw;
1161 Int_t nbins = nbinsx*nbinsy;
1170 if (integral == 0 ) {
x = 0;
y = 0;
return;}
1177 Int_t biny = ibin/nbinsx;
1178 Int_t binx = ibin - nbinsx*biny;
1216 std::fill(stats, stats + 7, 0);
1225 if (firstBinX == 1) firstBinX = 0;
1229 if (firstBinY == 1) firstBinY = 0;
1237 for (
Int_t biny = firstBinY; biny <= lastBinY; ++biny) {
1239 for (
Int_t binx = firstBinX; binx <= lastBinX; ++binx) {
1312 Error(
"Interpolate",
"This function must be called with 2 arguments for a TH2");
1331 Error(
"Interpolate",
"Cannot interpolate outside histogram domain.");
1373 if(bin_x1<1) bin_x1=1;
1377 if(bin_y1<1) bin_y1=1;
1399 Error(
"Interpolate",
"This function must be called with 2 arguments for a TH2");
1434 if (h2 ==
nullptr)
return 0;
1436 const TAxis *xaxis2 = h2->GetXaxis();
1438 const TAxis *yaxis2 = h2->GetYaxis();
1446 Error(
"KolmogorovTest",
"Histograms must be 2-D\n");
1452 Error(
"KolmogorovTest",
"Number of channels in X is different, %d and %d\n",ncx1,ncx2);
1456 Error(
"KolmogorovTest",
"Number of channels in Y is different, %d and %d\n",ncy1,ncy2);
1466 if (diff1 > difprec || diff2 > difprec) {
1467 Error(
"KolmogorovTest",
"histograms with different binning along X");
1472 if (diff1 > difprec || diff2 > difprec) {
1473 Error(
"KolmogorovTest",
"histograms with different binning along Y");
1478 Int_t ibeg = 1, jbeg = 1;
1479 Int_t iend = ncx1, jend = ncy1;
1480 if (opt.
Contains(
"U")) {ibeg = 0; jbeg = 0;}
1481 if (opt.
Contains(
"O")) {iend = ncx1+1; jend = ncy1+1;}
1488 for (i = ibeg; i <= iend; i++) {
1489 for (j = jbeg; j <= jend; j++) {
1491 sum2 += h2->GetBinContent(i,j);
1493 Double_t ew2 = h2->GetBinError(i,j);
1502 Error(
"KolmogorovTest",
"Integral is zero for h1=%s\n",
h1->
GetName());
1506 Error(
"KolmogorovTest",
"Integral is zero for h2=%s\n",h2->GetName());
1514 esum1 = sum1 * sum1 / w1;
1519 esum2 = sum2 * sum2 / w2;
1523 if (afunc2 && afunc1) {
1524 Error(
"KolmogorovTest",
"Errors are zero for both histograms\n");
1533 for (i=ibeg;i<=iend;i++) {
1534 for (j=jbeg;j<=jend;j++) {
1536 rsum2 += s2*h2->GetBinContent(i,j);
1544 for (j=jbeg;j<=jend;j++) {
1545 for (i=ibeg;i<=iend;i++) {
1547 rsum2 += s2*h2->GetBinContent(i,j);
1556 else factnm =
TMath::Sqrt(esum1*sum2/(esum1+esum2));
1559 Double_t dfmax = 0.5*(dfmax1+dfmax2);
1566 if (opt.
Contains(
"N") && !(afunc1 || afunc2 ) ) {
1570 Double_t chi2 = d12*d12/(esum1+esum2);
1573 if (prb > 0 && prb2 > 0) prb = prb*prb2*(1-
TMath::Log(prb*prb2));
1579 printf(
" Kolmo Prob h1 = %s, sum1=%g\n",
h1->
GetName(),sum1);
1580 printf(
" Kolmo Prob h2 = %s, sum2=%g\n",h2->GetName(),sum2);
1581 printf(
" Kolmo Probabil = %f, Max Dist = %g\n",prb,dfmax);
1583 printf(
" Kolmo Probabil = %f for shape alone, =%f for normalisation alone\n",prb1,prb2);
1587 if (
TMath::Abs(rsum2-1) > 0.002)
Warning(
"KolmogorovTest",
"Numerical problems with h2=%s\n",h2->GetName());
1589 if(opt.
Contains(
"M"))
return dfmax;
1601 return Rebin2D(ngroup, 1, newname);
1611 return Rebin2D(1, ngroup, newname);
1622 if (xbins !=
nullptr) {
1623 Error(
"Rebin",
"Rebinning a 2-d histogram into variable bins is not supported (it is possible only for 1-d histograms). Return a nullptr");
1626 Info(
"Rebin",
"Rebinning only the x-axis. Use Rebin2D for rebinning both axes");
1627 return RebinX(ngroup, newname);
1659 Int_t nx = nxbins + 2;
1660 Int_t ny = nybins + 2;
1667 Error(
"Rebin2D",
"Histogram must be TH2. This histogram has %d dimensions.",
GetDimension());
1670 if ((nxgroup <= 0) || (nxgroup > nxbins)) {
1671 Error(
"Rebin2D",
"Illegal value of nxgroup=%d",nxgroup);
1674 if ((nygroup <= 0) || (nygroup > nybins)) {
1675 Error(
"Rebin2D",
"Illegal value of nygroup=%d",nygroup);
1679 Int_t newxbins = nxbins / nxgroup;
1680 Int_t newybins = nybins / nygroup;
1681 Int_t newnx = newxbins + 2;
1682 Int_t newny = newybins + 2;
1696 if (newname && strlen(newname)) {
1701 bool resetStat =
false;
1704 if(newxbins * nxgroup != nxbins) {
1708 if(newybins * nygroup != nybins) {
1740 if (nxgroup != 1 || nygroup != 1) {
1747 hnew->
SetBins(newxbins, xbins, newybins, ybins);
1756 if (oldErrors) hnew->
fSumw2[0] = 0;
1759 for(
Int_t binx = 1, oldbinx = 1; binx < newnx; ++binx, oldbinx += nxgroup){
1760 Double_t binContent = 0.0, binErrorSq = 0.0;
1761 for (
Int_t i = 0; i < nxgroup && (oldbinx + i) < nx; ++i) {
1762 Int_t bin = oldbinx + i;
1763 binContent += oldBins[bin];
1764 if(oldErrors) binErrorSq += oldErrors[bin];
1766 Int_t newbin = binx;
1768 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1772 for(
Int_t biny = 1, oldbiny = 1; biny < newny; ++biny, oldbiny += nygroup){
1773 Double_t binContent = 0.0, binErrorSq = 0.0;
1774 for (
Int_t j = 0; j < nygroup && (oldbiny + j) < ny; ++j) {
1775 Int_t bin = (oldbiny + j) * nx;
1776 binContent += oldBins[bin];
1777 if(oldErrors) binErrorSq += oldErrors[bin];
1779 Int_t newbin = biny * newnx;
1781 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1785 for (
Int_t binx = 1, oldbinx = 1; binx < newnx; ++binx, oldbinx += nxgroup) {
1786 for (
Int_t biny = 1, oldbiny = 1; biny < newny; ++biny, oldbiny += nygroup) {
1787 Double_t binContent = 0.0, binErrorSq = 0.0;
1788 for (
Int_t i = 0; i < nxgroup && (oldbinx + i) < nx; ++i) {
1789 for (
Int_t j = 0; j < nygroup && (oldbiny + j) < ny; ++j) {
1790 Int_t bin = oldbinx + i + (oldbiny + j) * nx;
1791 binContent += oldBins[bin];
1792 if (oldErrors) binErrorSq += oldErrors[bin];
1795 Int_t newbin = binx + biny * newnx;
1797 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1830 if (oldErrors)
delete [] oldErrors;
1845 cut = opt(i1,i2-i1+1);
1848 bool originalRange = opt.
Contains(
"o");
1853 const char *expectedName = ( onX ?
"_pfx" :
"_pfy" );
1866 if (firstbin == 0 && lastbin == 0)
1872 if (firstbin < 0) firstbin = 1;
1873 if (lastbin < 0) lastbin = inN;
1874 if (lastbin > inN+1) lastbin = inN;
1877 char *pname = (
char*)
name;
1878 if (
name && strcmp(
name, expectedName) == 0) {
1880 pname =
new char[nch];
1889 Error(
"DoProfile",
"Histogram with name %s must be a TProfile and is a %s",
name,h1obj->
ClassName());
1898 if (xbins->fN == 0) {
1899 if ( originalRange )
1908 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->fArray[firstOutBin-1]);
1914 ((
TH2 *)
this)->GetPainter();
1920 if (bins->
fN == 0) {
1921 if ( originalRange )
1935 if (pname !=
name)
delete [] pname;
1957 TArrayD & binSumw2 = *(
h1->GetBinSumw2());
1970 for (
Int_t outbin = 0; outbin <= outAxis.
GetNbins() + 1; ++outbin) {
1976 if (binOut <0)
continue;
1978 for (
Int_t inbin = firstbin ; inbin <= lastbin ; ++inbin) {
1980 if (onX) { binx = outbin; biny=inbin; }
1981 else { binx = inbin; biny=outbin; }
1993 if ( useWeights ) tmp = binSumw2.
fArray[binOut];
2128 const char *expectedName =
nullptr;
2130 const TAxis* outAxis;
2131 const TAxis* inAxis;
2138 cut = opt(i1,i2-i1+1);
2141 bool originalRange = opt.
Contains(
"o");
2145 expectedName =
"_px";
2152 expectedName =
"_py";
2169 if (firstbin == 0 && lastbin == 0)
2175 if (firstbin < 0) firstbin = 0;
2176 if (lastbin < 0) lastbin = inNbin + 1;
2177 if (lastbin > inNbin+1) lastbin = inNbin + 1;
2180 char *pname = (
char*)
name;
2181 if (
name && strcmp(
name,expectedName) == 0) {
2183 pname =
new char[nch];
2193 Error(
"DoProjection",
"Histogram with name %s must be a TH1D and is a %s",
name,h1obj->
ClassName());
2202 if (xbins->fN == 0) {
2203 if ( originalRange )
2212 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->fArray[firstOutBin-1]);
2218 ((
TH2 *)
this)->GetPainter();
2224 if (bins->
fN == 0) {
2225 if ( originalRange )
2239 if (pname !=
name)
delete [] pname;
2270 for (
Int_t outbin = 0; outbin <= outAxis->
GetNbins() + 1; ++outbin) {
2275 for (
Int_t inbin = firstbin ; inbin <= lastbin ; ++inbin) {
2277 if (onX) { binx = outbin; biny=inbin; }
2278 else { binx = inbin; biny=outbin; }
2285 if (computeErrors) {
2300 bool reuseStats =
false;
2306 double eps = 1.E-12;
2311 if (ncuts) reuseStats =
false;
2313 bool reuseEntries = reuseStats;
2315 reuseEntries &= (firstbin==0 && lastbin == inNbin+1);
2320 stats[2] = stats[4];
2321 stats[3] = stats[5];
2486 const TAxis *outAxis =
nullptr;
2495 if (qname.
IsNull() || qname ==
"_qx" || qname ==
"_qy") {
2496 const char * qtype = (onX) ?
"qx" :
"qy";
2504 h1 =
dynamic_cast<TH1D*
>(h1obj);
2506 Error(
"DoQuantiles",
"Histogram with name %s must be a TH1D and is a %s",qname.
Data(),h1obj->
ClassName());
2523 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->fArray[firstOutBin-1]);
2529 TH1D * slice =
nullptr;
2530 for (
int ibin = outAxis->
GetFirst() ; ibin <= outAxis->
GetLast() ; ++ibin) {
2535 if (slice->
GetSum() == 0)
continue;
2549 if (slice)
delete slice;
2577 if (bin < 0)
return;
2640 (
size_t)
this, niter,
option).Data());
2686 Double_t k5a[5][5] = { { 0, 0, 1, 0, 0 },
2690 { 0, 0, 1, 0, 0 } };
2691 Double_t k5b[5][5] = { { 0, 1, 2, 1, 0 },
2695 { 0, 1, 2, 1, 0 } };
2696 Double_t k3a[3][3] = { { 0, 1, 0 },
2701 Warning(
"Smooth",
"Currently only ntimes=1 is supported");
2708 if (opt.
Contains(
"k5b")) kernel = &k5b[0][0];
2710 kernel = &k3a[0][0];
2725 Int_t bufSize = (nx+2)*(ny+2);
2732 for (i=ifirst; i<=ilast; i++){
2733 for (j=jfirst; j<=jlast; j++){
2741 Int_t x_push = (ksize_x-1)/2;
2742 Int_t y_push = (ksize_y-1)/2;
2745 for (i=ifirst; i<=ilast; i++){
2746 for (j=jfirst; j<=jlast; j++) {
2755 if ( (xb >= 1) && (xb <= nx) && (yb >= 1) && (yb <= ny) ) {
2761 content += k*buf[bin];
2762 if (ebuf) error += k*k*ebuf[bin]*ebuf[bin];
2768 if ( norm != 0.0 ) {
2771 error /= (norm*norm);
2842 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
2857 :
TH2(
name,title,nbinsx,xbins,nbinsy,ylow,yup)
2870 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ybins)
2883 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
2896 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
2909 h2c.TH2C::Copy(*
this);
2930 if (newval > -128 && newval < 128) {
fArray[bin] =
Char_t(newval);
return;}
2931 if (newval < -127)
fArray[bin] = -127;
2932 if (newval > 127)
fArray[bin] = 127;
3008 h2c.TH2C::Copy(*
this);
3105 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3120 :
TH2(
name,title,nbinsx,xbins,nbinsy,ylow,yup)
3133 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ybins)
3146 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
3159 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
3172 h2s.TH2S::Copy(*
this);
3193 if (newval > -32768 && newval < 32768) {
fArray[bin] =
Short_t(newval);
return;}
3194 if (newval < -32767)
fArray[bin] = -32767;
3195 if (newval > 32767)
fArray[bin] = 32767;
3271 h2s.TH2S::Copy(*
this);
3368 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3383 :
TH2(
name,title,nbinsx,xbins,nbinsy,ylow,yup)
3396 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ybins)
3409 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
3422 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
3435 h2i.TH2I::Copy(*
this);
3456 if (newval > -INT_MAX && newval < INT_MAX) {
fArray[bin] =
Int_t(newval);
return;}
3457 if (newval < -INT_MAX)
fArray[bin] = -INT_MAX;
3458 if (newval > INT_MAX)
fArray[bin] = INT_MAX;
3499 h2i.TH2I::Copy(*
this);
3596 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3611 :
TH2(
name,title,nbinsx,xbins,nbinsy,ylow,yup)
3624 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ybins)
3637 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
3650 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
3663 h2l.TH2L::Copy(*
this);
3682 if (newval > -LLONG_MAX && newval < LLONG_MAX) {
fArray[bin] =
Int_t(newval);
return;}
3683 if (newval < -LLONG_MAX)
fArray[bin] = -LLONG_MAX;
3684 if (newval > LLONG_MAX)
fArray[bin] = LLONG_MAX;
3725 h2l.TH2L::Copy(*
this);
3822 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3837 :
TH2(
name,title,nbinsx,xbins,nbinsy,ylow,yup)
3850 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ybins)
3863 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
3876 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
3888:
TH2(
"TMatrixFBase",
"",
m.GetNcols(),
m.GetColLwb(),1+
m.GetColUpb(),
m.GetNrows(),
m.GetRowLwb(),1+
m.GetRowUpb())
3891 Int_t ilow =
m.GetRowLwb();
3892 Int_t iup =
m.GetRowUpb();
3893 Int_t jlow =
m.GetColLwb();
3894 Int_t jup =
m.GetColUpb();
3895 for (
Int_t i=ilow;i<=iup;i++) {
3896 for (
Int_t j=jlow;j<=jup;j++) {
3909 h2f.TH2F::Copy(*
this);
3985 h2f.TH2F::Copy(*
this);
4094 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
4109 :
TH2(
name,title,nbinsx,xbins,nbinsy,ylow,yup)
4122 :
TH2(
name,title,nbinsx,xlow,xup,nbinsy,ybins)
4135 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
4148 :
TH2(
name,title,nbinsx,xbins,nbinsy,ybins)
4160:
TH2(
"TMatrixDBase",
"",
m.GetNcols(),
m.GetColLwb(),1+
m.GetColUpb(),
m.GetNrows(),
m.GetRowLwb(),1+
m.GetRowUpb())
4163 Int_t ilow =
m.GetRowLwb();
4164 Int_t iup =
m.GetRowUpb();
4165 Int_t jlow =
m.GetColLwb();
4166 Int_t jup =
m.GetColUpb();
4167 for (
Int_t i=ilow;i<=iup;i++) {
4168 for (
Int_t j=jlow;j<=jup;j++) {
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char y1
TH2C operator-(TH2C &h1, TH2C &h2)
Operator -.
TH2C operator+(TH2C &h1, TH2C &h2)
Operator +.
TH2C operator/(TH2C &h1, TH2C &h2)
Operator /.
TH2C operator*(Float_t c1, TH2C &h1)
Operator *.
R__EXTERN TRandom * gRandom
Array of chars or bytes (8 bits per element).
void Streamer(TBuffer &) override
Stream a TArrayC object.
void Set(Int_t n) override
Set size of this array to n chars.
Array of doubles (64 bits per element).
void Streamer(TBuffer &) override
Stream a TArrayD object.
void Set(Int_t n) override
Set size of this array to n doubles.
Array of floats (32 bits per element).
void Set(Int_t n) override
Set size of this array to n floats.
void Streamer(TBuffer &) override
Stream a TArrayF object.
Array of integers (32 bits per element).
void Set(Int_t n) override
Set size of this array to n ints.
Array of long64s (64 bits per element).
void Set(Int_t n) override
Set size of this array to n long64s.
Array of shorts (16 bits per element).
void Set(Int_t n) override
Set size of this array to n shorts.
void Streamer(TBuffer &) override
Stream a TArrayS object.
virtual Color_t GetTitleColor() const
virtual Color_t GetLabelColor() const
virtual Int_t GetNdivisions() const
virtual Color_t GetAxisColor() const
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title.
virtual Style_t GetTitleFont() const
virtual Float_t GetLabelOffset() const
virtual void SetAxisColor(Color_t color=1, Float_t alpha=1.)
Set color of the line axis and tick marks.
virtual void SetLabelSize(Float_t size=0.04)
Set size of axis labels.
virtual Style_t GetLabelFont() const
virtual void SetTitleFont(Style_t font=62)
Set the title font.
virtual void SetLabelOffset(Float_t offset=0.005)
Set distance between the axis and the labels.
virtual void SetLabelFont(Style_t font=62)
Set labels' font.
virtual void SetTitleSize(Float_t size=0.04)
Set size of axis title.
virtual void SetTitleColor(Color_t color=1)
Set color of axis title.
virtual Float_t GetTitleSize() const
virtual Float_t GetLabelSize() const
virtual Float_t GetTickLength() const
virtual Float_t GetTitleOffset() const
virtual void SetTickLength(Float_t length=0.03)
Set tick mark length.
virtual void SetNdivisions(Int_t n=510, Bool_t optim=kTRUE)
Set the number of divisions for this axis.
virtual void SetLabelColor(Color_t color=1, Float_t alpha=1.)
Set color of labels.
virtual Color_t GetFillColor() const
Return the fill area color.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
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 void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
Class to manage histogram axis.
virtual void SetBinLabel(Int_t bin, const char *label)
Set label for bin.
Bool_t IsAlphanumeric() const
const char * GetTitle() const override
Returns title of object.
virtual Double_t GetBinCenter(Int_t bin) const
Return center of bin.
const TArrayD * GetXbins() const
void SetCanExtend(Bool_t canExtend)
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 void Set(Int_t nbins, Double_t xmin, Double_t xmax)
Initialize axis with fix bins.
virtual Int_t FindFixBin(Double_t x) const
Find bin number corresponding to abscissa x.
Int_t GetLast() const
Return last bin on the axis i.e.
virtual void ImportAttributes(const TAxis *axis)
Copy axis attributes to this.
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
Buffer base class used for serializing objects.
virtual Version_t ReadVersion(UInt_t *start=nullptr, UInt_t *bcnt=nullptr, const TClass *cl=nullptr)=0
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=nullptr)=0
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual TH1 * GetHistogram() const
Return a pointer to the histogram used to visualise the function Note that this histogram is managed ...
virtual Double_t GetParError(Int_t ipar) const
Return value of parameter number ipar.
Double_t GetChisquare() const
Return the Chisquare after fitting. See ROOT::Fit::FitResult::Chi2()
virtual void SetRange(Double_t xmin, Double_t xmax)
Initialize the upper and lower bounds to draw the function.
virtual Int_t GetNpar() const
virtual Double_t Integral(Double_t a, Double_t b, Double_t epsrel=1.e-12)
IntegralOneDim or analytical integral.
virtual Int_t GetNumberFitPoints() const
virtual Double_t * GetParameters() const
virtual void GetRange(Double_t *xmin, Double_t *xmax) const
Return range of a generic N-D function.
virtual const char * GetParName(Int_t ipar) const
virtual void SetParameters(const Double_t *params)
virtual Double_t GetParameter(Int_t ipar) const
A 2-Dim function with parameters.
1-D histogram with a double per channel (see TH1 documentation)
void Reset(Option_t *option="") override
Reset.
TH1 is the base class of all histogram classes in ROOT.
virtual void SetDirectory(TDirectory *dir)
By default, when a histogram is created, it is added to the list of histogram objects in the current ...
Double_t * fBuffer
[fBufferSize] entry buffer
virtual Double_t GetEffectiveEntries() const
Number of effective entries of the histogram.
virtual Bool_t Multiply(TF1 *f1, Double_t c1=1)
Performs the operation:
Int_t fNcells
Number of bins(1D), cells (2D) +U/Overflows.
void Copy(TObject &hnew) const override
Copy this histogram structure to newth1.
Double_t fTsumw
Total Sum of weights.
Double_t fTsumw2
Total Sum of squares of weights.
virtual Double_t DoIntegral(Int_t ix1, Int_t ix2, Int_t iy1, Int_t iy2, Int_t iz1, Int_t iz2, Double_t &err, Option_t *opt, Bool_t doerr=kFALSE) const
Internal function compute integral and optionally the error between the limits specified by the bin n...
Double_t fTsumwx2
Total Sum of weight*X*X.
virtual Double_t GetStdDev(Int_t axis=1) const
Returns the Standard Deviation (Sigma).
virtual Int_t GetNbinsY() const
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
virtual Double_t GetBinError(Int_t bin) const
Return value of error associated to bin number bin.
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 Int_t GetDimension() const
void Streamer(TBuffer &) override
Stream a class object.
@ kIsNotW
Histogram is forced to be not weighted even when the histogram is filled with weighted.
virtual Bool_t CanExtendAllAxes() const
Returns true if all axes are extendable.
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
virtual Int_t GetNcells() const
virtual void PutStats(Double_t *stats)
Replace current statistics with the values in array stats.
TVirtualHistPainter * GetPainter(Option_t *option="")
Return pointer to painter.
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
Fit histogram with function fname.
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 Int_t GetNbinsX() const
virtual Bool_t Add(TF1 *h1, Double_t c1=1, Option_t *option="")
Performs the operation: this = this + c1*f1 if errors are defined (see TH1::Sumw2),...
Int_t fBufferSize
fBuffer size
virtual Double_t RetrieveBinContent(Int_t bin) const
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
Int_t fDimension
! Histogram dimension (1, 2 or 3 dim)
virtual void SetBinError(Int_t bin, Double_t error)
Set the bin Error Note that this resets the bin eror option to be of Normal Type and for the non-empt...
static Int_t fgBufferSize
! Default buffer size for automatic histograms
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
void Draw(Option_t *option="") override
Draw this histogram with options.
virtual Double_t GetBinErrorSqUnchecked(Int_t bin) const
UInt_t GetAxisLabelStatus() const
Internal function used in TH1::Fill to see which axis is full alphanumeric, i.e.
Double_t * fIntegral
! Integral of bins used by GetRandom
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.
void SetName(const char *name) override
Change the name of this histogram.
void Paint(Option_t *option="") override
Control routine to paint any kind of histograms.
virtual void ResetStats()
Reset the statistics including the number of entries and replace with values calculated from bin cont...
virtual void SetBuffer(Int_t buffersize, Option_t *option="")
Set the maximum number of entries to be kept in the buffer.
@ kNstat
Size of statistics data (up to TProfile3D)
Double_t fEntries
Number of entries.
virtual void UpdateBinContent(Int_t bin, Double_t content)
Raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
TAxis fXaxis
X axis descriptor.
virtual void ExtendAxis(Double_t x, TAxis *axis)
Histogram is resized along axis such that x is in the axis range.
TArrayD fSumw2
Array of sum of squares of weights.
virtual Int_t GetQuantiles(Int_t nprobSum, Double_t *q, const Double_t *probSum=nullptr)
Compute Quantiles for this histogram Quantile x_q of a probability distribution Function F is defined...
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
virtual Int_t GetSumw2N() const
virtual Int_t FindBin(Double_t x, Double_t y=0, Double_t z=0)
Return Global bin number corresponding to x,y,z.
Bool_t GetStatOverflowsBehaviour() const
TObject * Clone(const char *newname="") const override
Make a complete copy of the underlying object.
virtual Bool_t Divide(TF1 *f1, Double_t c1=1)
Performs the operation: this = this/(c1*f1) if errors are defined (see TH1::Sumw2),...
TAxis fYaxis
Y axis descriptor.
TVirtualHistPainter * fPainter
! Pointer to histogram painter
virtual void SetBins(Int_t nx, Double_t xmin, Double_t xmax)
Redefine x axis parameters.
virtual void Sumw2(Bool_t flag=kTRUE)
Create structure to store sum of squares of weights.
virtual void SetEntries(Double_t n)
static Bool_t fgDefaultSumw2
! Flag to call TH1::Sumw2 automatically at histogram creation time
Double_t fTsumwx
Total Sum of weight*X.
virtual Double_t ComputeIntegral(Bool_t onlyPositive=false)
Compute integral (cumulative sum of bins) The result stored in fIntegral is used by the GetRandom fun...
2-D histogram with a byte per channel (see TH1 documentation)
void Reset(Option_t *option="") override
Reset this histogram: contents, errors, etc.
TClass * IsA() const override
void Streamer(TBuffer &) override
Stream an object of class TH2C.
void AddBinContent(Int_t bin) override
Increment bin content by 1.
TH2C & operator=(const TH2C &h1)
Operator =.
~TH2C() override
Destructor.
void Copy(TObject &hnew) const override
Copy.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
2-D histogram with a double per channel (see TH1 documentation)
void Streamer(TBuffer &) override
Stream an object of class TH2D.
TClass * IsA() const override
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
~TH2D() override
Destructor.
void Copy(TObject &hnew) const override
Copy.
TH2D & operator=(const TH2D &h1)
Operator =.
2-D histogram with a float per channel (see TH1 documentation)
TClass * IsA() const override
TH2F & operator=(const TH2F &h1)
Operator =.
~TH2F() override
Destructor.
void Copy(TObject &hnew) const override
Copy.
void Streamer(TBuffer &) override
Stream an object of class TH2F.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
2-D histogram with an int per channel (see TH1 documentation)
void Copy(TObject &hnew) const override
Copy.
void AddBinContent(Int_t bin) override
Increment bin content by 1.
~TH2I() override
Destructor.
TH2I & operator=(const TH2I &h1)
Operator =.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
2-D histogram with a long64 per channel (see TH1 documentation)
TH2L & operator=(const TH2L &h1)
Operator =.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
~TH2L() override
Destructor.
void Copy(TObject &hnew) const override
Copy.
void AddBinContent(Int_t bin) override
Increment bin content by 1.
2-D histogram with a short per channel (see TH1 documentation)
void AddBinContent(Int_t bin) override
Increment bin content by 1.
~TH2S() override
Destructor.
TH2S & operator=(const TH2S &h1)
Operator =.
void Copy(TObject &hnew) const override
Copy.
void Streamer(TBuffer &) override
Stream an object of class TH2S.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
TClass * IsA() const override
Service class for 2-D 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.
void GetStats(Double_t *stats) const override
Fill the array stats from the contents of this histogram The array stats must be correctly dimensione...
Int_t ShowPeaks(Double_t sigma=2, Option_t *option="", Double_t threshold=0.05) override
Interface to TSpectrum2::Search the function finds peaks in this histogram where the width is > sigma...
virtual Double_t GetCorrelationFactor(Int_t axis1=1, Int_t axis2=2) const
Return correlation factor between axis1 and axis2.
virtual TProfile * DoProfile(bool onX, const char *name, Int_t firstbin, Int_t lastbin, Option_t *option) const
Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const override
Statistical test of compatibility in shape between THIS histogram and h2, using Kolmogorov test.
virtual void FitSlicesY(TF1 *f1=nullptr, Int_t firstxbin=0, Int_t lastxbin=-1, Int_t cut=0, Option_t *option="QNR", TObjArray *arr=nullptr)
Project slices along Y in case of a 2-D histogram, then fit each slice with function f1 and make a hi...
virtual Double_t GetBinWithContent2(Double_t c, Int_t &binx, Int_t &biny, Int_t firstxbin=1, Int_t lastxbin=-1, Int_t firstybin=1, Int_t lastybin=-1, Double_t maxdiff=0) const
compute first cell (binx,biny) in the range [firstxbin,lastxbin][firstybin,lastybin] for which diff =...
TProfile * ProfileX(const char *name="_pfx", Int_t firstybin=1, Int_t lastybin=-1, Option_t *option="") const
Project a 2-D histogram into a profile histogram along X.
TH2 * Rebin(Int_t ngroup=2, const char *newname="", const Double_t *xbins=nullptr) override
Override TH1::Rebin as TH2::RebinX Rebinning in variable binning as for TH1 is not allowed If a non-n...
void FillN(Int_t, const Double_t *, const Double_t *, Int_t) override
Fill this histogram with an array x and weights w.
TH1D * QuantilesY(Double_t prob=0.5, const char *name="_qy") const
Compute the Y distribution of quantiles in the other variable X name is the name of the returned hist...
TProfile * ProfileY(const char *name="_pfy", Int_t firstxbin=1, Int_t lastxbin=-1, Option_t *option="") const
Project a 2-D histogram into a profile histogram along Y.
void Copy(TObject &hnew) const override
Copy.
virtual TH1D * DoQuantiles(bool onX, const char *name, Double_t prob) const
Implementation of quantiles for x or y.
Double_t fTsumwxy
Total Sum of weight*X*Y.
void SetBinContent(Int_t bin, Double_t content) override
Set bin content.
Int_t BufferEmpty(Int_t action=0) override
Fill histogram with all entries in the buffer.
virtual void DoFitSlices(bool onX, TF1 *f1, Int_t firstbin, Int_t lastbin, Int_t cut, Option_t *option, TObjArray *arr)
TH1D * QuantilesX(Double_t prob=0.5, const char *name="_qx") const
Compute the X distribution of quantiles in the other variable Y name is the name of the returned hist...
virtual void SetShowProjectionY(Int_t nbins=1)
When the mouse is moved in a pad containing a 2-d view of this histogram a second canvas shows the pr...
void FillRandom(const char *fname, Int_t ntimes=5000, TRandom *rng=nullptr) override
Fill histogram following distribution in function fname.
TClass * IsA() const override
void Reset(Option_t *option="") override
Reset this histogram: contents, errors, etc.
Double_t fScalefactor
Scale factor.
virtual TH1D * DoProjection(bool onX, const char *name, Int_t firstbin, Int_t lastbin, Option_t *option) const
Internal (protected) method for performing projection on the X or Y axis called by ProjectionX or Pro...
TH2 * RebinX(Int_t ngroup=2, const char *newname="") override
Rebin only the X axis see Rebin2D.
Double_t fTsumwy2
Total Sum of weight*Y*Y.
virtual void GetRandom2(Double_t &x, Double_t &y, TRandom *rng=nullptr)
Return 2 random numbers along axis x and y distributed according to the cell-contents of this 2-D his...
virtual Double_t GetCovariance(Int_t axis1=1, Int_t axis2=2) const
Return covariance between axis1 and axis2.
Int_t GetBin(Int_t binx, Int_t biny, Int_t binz=0) const override
Return Global bin number corresponding to binx,y,z.
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.
void Smooth(Int_t ntimes=1, Option_t *option="") override
Smooth bin contents of this 2-d histogram using kernel algorithms similar to the ones used in the ras...
~TH2() override
Destructor.
Double_t GetBinContent(Int_t binx, Int_t biny) const override
virtual Double_t IntegralAndError(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2, Double_t &err, Option_t *option="") const
Return integral of bin contents in range [firstxbin,lastxbin],[firstybin,lastybin] for a 2-D histogra...
Double_t fTsumwy
Total Sum of weight*Y.
TH2()
2-D histogram default constructor.
Double_t Interpolate(Double_t x) const override
illegal for a TH2
TH1 * ShowBackground(Int_t niter=20, Option_t *option="same") override
This function calculates the background spectrum in this histogram.
virtual void SetShowProjectionX(Int_t nbins=1)
When the mouse is moved in a pad containing a 2-d view of this histogram a second canvas shows the pr...
void Streamer(TBuffer &) override
Stream an object of class TH2.
Int_t Fill(Double_t) override
Invalid Fill method.
virtual TH2 * Rebin2D(Int_t nxgroup=2, Int_t nygroup=2, const char *newname="")
Rebin this histogram grouping nxgroup/nygroup bins along the xaxis/yaxis together.
virtual void FitSlicesX(TF1 *f1=nullptr, Int_t firstybin=0, Int_t lastybin=-1, Int_t cut=0, Option_t *option="QNR", TObjArray *arr=nullptr)
Project slices along X in case of a 2-D histogram, then fit each slice with function f1 and make a hi...
virtual Int_t BufferFill(Double_t x, Double_t y, Double_t w)
accumulate arguments in buffer.
virtual void SetShowProjectionXY(Int_t nbinsY=1, Int_t nbinsX=1)
When the mouse is moved in a pad containing a 2-d view of this histogram two canvases show the projec...
Double_t Integral(Option_t *option="") const override
Return integral of bin contents.
void PutStats(Double_t *stats) override
Replace current statistics with the values in array stats.
virtual TH2 * RebinY(Int_t ngroup=2, const char *newname="")
Rebin only the Y axis see Rebin2D.
static THLimitsFinder * GetLimitsFinder()
Return pointer to the current finder.
virtual Int_t FindGoodLimits(TH1 *h, Double_t xmin, Double_t xmax)
Compute the best axis limits for the X axis.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
virtual void Expand(Int_t newSize)
Expand or shrink the array to newSize elements.
Collectable string class.
Mother of all ROOT objects.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual TClass * IsA() const
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
This is the base class for the ROOT Random number generators.
Double_t Rndm() override
Machine independent random number generator.
void ToLower()
Change string to lower-case.
Ssiz_t First(char c) const
Find first occurrence of a character c.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
void ToUpper()
Change string to upper case.
TString & Remove(Ssiz_t pos)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual void SetShowProjection(const char *option, Int_t nbins)=0
virtual Int_t MakeCuts(char *cutsopt)=0
virtual Bool_t IsInside(Int_t x, Int_t y)=0
virtual void SetShowProjectionXY(const char *option, Int_t nbinsY, Int_t nbinsX)=0
small helper class to store/restore gPad context in TPad methods
Double_t Gaus(Double_t x, Double_t mean=0, Double_t sigma=1, Bool_t norm=kFALSE)
Calculates a gaussian function with mean and sigma.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Double_t Prob(Double_t chi2, Int_t ndf)
Computation of the probability for a certain Chi-squared (chi2) and number of degrees of freedom (ndf...
Double_t QuietNaN()
Returns a quiet NaN as defined by IEEE 754.
Double_t Floor(Double_t x)
Rounds x downward, returning the largest integral value that is not greater than x.
Double_t Log(Double_t x)
Returns the natural logarithm of x.
Double_t Sqrt(Double_t x)
Returns the square root of x.
Double_t KolmogorovProb(Double_t z)
Calculates the Kolmogorov distribution function,.
Long64_t BinarySearch(Long64_t n, const T *array, T value)
Binary search in an array of n values to locate value.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.