59 fTsumwy = fTsumwy2 = fTsumwxy = 0;
68 :
TH1(name,title,nbinsx,xlow,xup)
73 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
84 :
TH1(name,title,nbinsx,xbins)
89 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
100 :
TH1(name,title,nbinsx,xlow,xup)
105 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
117 :
TH1(name,title,nbinsx,xbins)
122 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
134 :
TH1(name,title,nbinsx,xbins)
139 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
180 if (nbentries == 0)
return 0;
181 if (nbentries < 0 && action == 0)
return 0;
185 nbentries = -nbentries;
200 for (
Int_t i=1;i<nbentries;i++) {
202 if (x < xmin) xmin =
x;
203 if (x > xmax) xmax =
x;
205 if (y < ymin) ymin =
y;
206 if (y > ymax) ymax =
y;
223 for (
Int_t i=0;i<nbentries;i++) {
224 Fill(buffer[3*i+2],buffer[3*i+3],buffer[3*i+1]);
251 nbentries = -nbentries;
289 Error(
"Fill",
"Invalid signature - do nothing");
313 Int_t binx, biny, bin;
317 if (binx <0 || biny <0)
return -1;
357 Int_t binx, biny, bin;
361 if (binx <0 || biny <0)
return -1;
401 Int_t binx, biny, bin;
405 if (binx <0 || biny <0)
return -1;
443 Int_t binx, biny, bin;
447 if (binx <0 || biny <0)
return -1;
486 Int_t binx, biny, bin;
490 if (binx <0 || biny <0)
return -1;
530 Int_t binx, biny, bin, i;
537 for (i=0;i<ntimes;i+=stride) {
550 for (i=ifirst;i<ntimes;i+=stride) {
554 if (binx <0 || biny <0)
continue;
594 Int_t bin, binx, biny, ibin, loop;
598 if (!fobj) {
Error(
"FillRandom",
"Unknown function: %s",fname);
return; }
599 TF2 *
f1 =
dynamic_cast<TF2*
>(fobj);
600 if (!f1) {
Error(
"FillRandom",
"Function: %s is not a TF2",fname);
return; }
610 for (biny=1;biny<=nbinsy;biny++) {
611 for (binx=1;binx<=nbinsx;binx++) {
614 integral[ibin] = integral[ibin-1] + fint;
619 if (integral[nbins] == 0 ) {
621 Error(
"FillRandom",
"Integral = zero");
return;
623 for (bin=1;bin<=
nbins;bin++) integral[bin] /= integral[nbins];
626 for (loop=0;loop<ntimes;loop++) {
630 binx = 1 + ibin - nbinsx*biny;
654 if (!h) {
Error(
"FillRandom",
"Null histogram");
return; }
656 Error(
"FillRandom",
"Histograms with different dimensions");
return;
664 for (loop=0;loop<ntimes;loop++) {
677 if (axis < 1 || axis > 2) {
678 Warning(
"FindFirstBinAbove",
"Invalid axis number : %d, axis x assumed\n",axis);
685 for (binx=1;binx<=nbinsx;binx++) {
686 for (biny=1;biny<=nbinsy;biny++) {
691 for (biny=1;biny<=nbinsy;biny++) {
692 for (binx=1;binx<=nbinsx;binx++) {
707 if (axis < 1 || axis > 2) {
708 Warning(
"FindLastBinAbove",
"Invalid axis number : %d, axis x assumed\n",axis);
715 for (binx=nbinsx;binx>=1;binx--) {
716 for (biny=1;biny<=nbinsy;biny++) {
721 for (biny=nbinsy;biny>=1;biny--) {
722 for (binx=1;binx<=nbinsx;binx++) {
740 if (firstbin < 0) firstbin = 0;
741 if (lastbin < 0 || lastbin > nbins + 1) lastbin = nbins + 1;
742 if (lastbin < firstbin) {firstbin = 0; lastbin = nbins + 1;}
752 Int_t nstep = ngroup;
757 f1 = (
TF1*)
gROOT->GetFunction(
"gaus");
758 if (f1 == 0) f1 =
new TF1(
"gaus",
"gaus",innerAxis.
GetXmin(),innerAxis.
GetXmax());
762 if (npar <= 0)
return;
774 char *
name =
new char[2000];
775 char *
title =
new char[2000];
777 for (ipar=0;ipar<npar;ipar++) {
778 snprintf(name,2000,
"%s_%d",
GetName(),ipar);
779 snprintf(title,2000,
"Fitted value of par[%d]=%s",ipar,f1->
GetParName(ipar));
784 hlist[ipar] =
new TH1D(name,title, nbins,bins->
fArray);
788 (*arr)[ipar] = hlist[ipar];
790 snprintf(name,2000,
"%s_chi2",
GetName());
796 hchi2 =
new TH1D(name,
"chisquare", nbins, bins->
fArray);
800 (*arr)[npar] = hchi2;
807 for (bin=firstbin;bin+ngroup-1<=lastbin;bin += nstep) {
813 if (hp == 0)
continue;
815 if (nentries == 0 || nentries < cut) {
delete hp;
continue;}
819 if (npfits > npar && npfits >= cut) {
820 Int_t binOn = bin + ngroup/2;
821 for (ipar=0;ipar<npar;ipar++) {
893 DoFitSlices(
true, f1, firstybin, lastybin, cut, option, arr);
958 DoFitSlices(
false, f1, firstxbin, lastxbin, cut, option, arr);
965 if (biny < 0) biny = 0;
966 if (biny > ofy) biny = ofy;
998 Error(
"GetBinWithContent2",
"function is only valid for 2-D histograms");
1001 if (firstxbin < 0) firstxbin = 1;
1003 if (firstybin < 0) firstybin = 1;
1006 for (
Int_t j = firstybin; j <= lastybin; j++) {
1007 for (
Int_t i = firstxbin; i <= lastxbin; i++) {
1009 if (diff <= 0) {binx = i; biny=j;
return diff;}
1010 if (diff < curmax && diff <= maxdiff) {curmax = diff, binx=i; biny=j;}
1022 if (axis1 < 1 || axis2 < 1 || axis1 > 2 || axis2 > 2) {
1023 Error(
"GetCorrelationFactor",
"Wrong parameters");
1026 if (axis1 == axis2)
return 1;
1028 if (stddev1 == 0)
return 0;
1030 if (stddev2 == 0)
return 0;
1040 if (axis1 < 1 || axis2 < 1 || axis1 > 2 || axis2 > 2) {
1041 Error(
"GetCovariance",
"Wrong parameters");
1054 if (sumw == 0)
return 0;
1055 if (axis1 == 1 && axis2 == 1) {
1056 return TMath::Abs(sumwx2/sumw - sumwx/sumw*sumwx/sumw);
1058 if (axis1 == 2 && axis2 == 2) {
1059 return TMath::Abs(sumwy2/sumw - sumwy/sumw*sumwy/sumw);
1061 return sumwxy/sumw - sumwx/sumw*sumwy/sumw;
1083 if (integral == 0 ) { x = 0; y = 0;
return;}
1089 Int_t biny = ibin/nbinsx;
1090 Int_t binx = ibin - nbinsx*biny;
1137 if (firstBinX == 1) firstBinX = 0;
1141 if (firstBinY == 1) firstBinY = 0;
1145 for (
Int_t biny = firstBinY; biny <= lastBinY; ++biny) {
1147 for (
Int_t binx = firstBinX; binx <= lastBinX; ++binx) {
1199 return DoIntegral(firstxbin,lastxbin,firstybin,lastybin,-1,0,err,option);
1213 return DoIntegral(firstxbin,lastxbin,firstybin,lastybin,-1,0,error,option,
kTRUE);
1222 Error(
"Interpolate",
"This function must be called with 2 arguments for a TH2");
1242 Error(
"Interpolate",
"Cannot interpolate outside histogram domain.");
1284 if(bin_x1<1) bin_x1=1;
1288 if(bin_y1<1) bin_y1=1;
1295 Double_t q11 = RetrieveBinContent(bin_q11);
1296 Double_t q12 = RetrieveBinContent(bin_q12);
1297 Double_t q21 = RetrieveBinContent(bin_q21);
1298 Double_t q22 = RetrieveBinContent(bin_q22);
1300 f = 1.0*q11/d*(
x2-
x)*(y2-y)+1.0*q21/d*(x-
x1)*(y2-y)+1.0*q12/d*(
x2-
x)*(y-y1)+1.0*q22/d*(x-
x1)*(y-y1);
1310 Error(
"Interpolate",
"This function must be called with 2 arguments for a TH2");
1345 if (h2 == 0)
return 0;
1357 Error(
"KolmogorovTest",
"Histograms must be 2-D\n");
1363 Error(
"KolmogorovTest",
"Number of channels in X is different, %d and %d\n",ncx1,ncx2);
1367 Error(
"KolmogorovTest",
"Number of channels in Y is different, %d and %d\n",ncy1,ncy2);
1377 if (diff1 > difprec || diff2 > difprec) {
1378 Error(
"KolmogorovTest",
"histograms with different binning along X");
1383 if (diff1 > difprec || diff2 > difprec) {
1384 Error(
"KolmogorovTest",
"histograms with different binning along Y");
1389 Int_t ibeg = 1, jbeg = 1;
1390 Int_t iend = ncx1, jend = ncy1;
1391 if (opt.
Contains(
"U")) {ibeg = 0; jbeg = 0;}
1392 if (opt.
Contains(
"O")) {iend = ncx1+1; jend = ncy1+1;}
1399 for (i = ibeg; i <= iend; i++) {
1400 for (j = jbeg; j <= jend; j++) {
1413 Error(
"KolmogorovTest",
"Integral is zero for h1=%s\n",h1->
GetName());
1417 Error(
"KolmogorovTest",
"Integral is zero for h2=%s\n",h2->
GetName());
1425 esum1 = sum1 * sum1 / w1;
1430 esum2 = sum2 * sum2 / w2;
1434 if (afunc2 && afunc1) {
1435 Error(
"KolmogorovTest",
"Errors are zero for both histograms\n");
1444 for (i=ibeg;i<=iend;i++) {
1445 for (j=jbeg;j<=jend;j++) {
1455 for (j=jbeg;j<=jend;j++) {
1456 for (i=ibeg;i<=iend;i++) {
1467 else factnm =
TMath::Sqrt(esum1*sum2/(esum1+esum2));
1470 Double_t dfmax = 0.5*(dfmax1+dfmax2);
1477 if (opt.
Contains(
"N") && !(afunc1 || afunc2 ) ) {
1481 Double_t chi2 = d12*d12/(esum1+esum2);
1484 if (prb > 0 && prb2 > 0) prb = prb*prb2*(1-
TMath::Log(prb*prb2));
1490 printf(
" Kolmo Prob h1 = %s, sum1=%g\n",h1->
GetName(),sum1);
1491 printf(
" Kolmo Prob h2 = %s, sum2=%g\n",h2->
GetName(),sum2);
1492 printf(
" Kolmo Probabil = %f, Max Dist = %g\n",prb,dfmax);
1494 printf(
" Kolmo Probabil = %f for shape alone, =%f for normalisation alone\n",prb1,prb2);
1500 if(opt.
Contains(
"M"))
return dfmax;
1522 if (!list)
return 0;
1542 allHaveLimits = allHaveLimits && hasLimits;
1549 if (firstHistWithLimits ) {
1561 firstHistWithLimits =
kFALSE;
1564 if (!initialLimitsFound) {
1567 initialLimitsFound =
kTRUE;
1581 Error(
"Merge",
"Cannot merge histograms - limits are inconsistent:\n "
1582 "first: (%d, %f, %f), second: (%d, %f, %f)",
1597 Error(
"Merge",
"Cannot merge histograms - limits are inconsistent:\n "
1598 "first: (%d, %f, %f), second: (%d, %f, %f)",
1605 allSameLimits = sameLimitsY && sameLimitsX;
1608 }
while ( ( h = dynamic_cast<TH2*> (
next() ) ) !=
NULL );
1609 if (!h && (*next) ) {
1610 Error(
"Merge",
"Attempt to merge object of class: %s to a %s",
1611 (*next)->ClassName(),this->
ClassName());
1621 if (!allSameLimits) {
1636 if (!allSameLimits && initialLimitsFound) {
1655 if (!allHaveLimits) {
1657 while ( (h = dynamic_cast<TH2*> (
next())) ) {
1661 for (
Int_t i = 0; i < nbentries; i++)
1667 if (!initialLimitsFound) {
1679 for (
Int_t i=0;i<
kNstat;i++) {totstats[i] = stats[i] = 0;}
1682 Int_t binx, biny, ix, iy,
nx,
ny, bin, ibin;
1692 if (h->
fTsumw == 0 && histEntries == 0)
continue;
1699 totstats[i] += stats[i];
1700 nentries += histEntries;
1705 for (biny = 0; biny <= ny + 1; biny++) {
1710 for (binx = 0; binx <= nx + 1; binx++) {
1711 bin = binx +(nx+2)*biny;
1713 cu = h->RetrieveBinContent(bin);
1714 if (!allSameLimits) {
1715 if (cu != 0 && ( (!sameLimitsX && (binx == 0 || binx == nx+1)) || (!sameLimitsY && (biny == 0 || biny == ny+1)) )) {
1716 Error(
"Merge",
"Cannot merge histograms - the histograms have"
1717 " different limits and undeflows/overflows are present."
1718 " The initial histogram is now broken!");
1727 ibin = ix +(nbix+2)*iy;
1729 if (ibin < 0)
continue;
1758 return Rebin2D(ngroup, 1, newname);
1768 return Rebin2D(1, ngroup, newname);
1810 Error(
"Rebin2D",
"Histogram must be TH2. This histogram has %d dimensions.",
GetDimension());
1813 if ((nxgroup <= 0) || (nxgroup > nxbins)) {
1814 Error(
"Rebin2D",
"Illegal value of nxgroup=%d",nxgroup);
1817 if ((nygroup <= 0) || (nygroup > nybins)) {
1818 Error(
"Rebin2D",
"Illegal value of nygroup=%d",nygroup);
1822 Int_t newxbins = nxbins / nxgroup;
1823 Int_t newybins = nybins / nygroup;
1824 Int_t newnx = newxbins + 2;
1825 Int_t newny = newybins + 2;
1829 for (
Int_t i = 0; i <
fNcells; ++i) oldBins[i] = RetrieveBinContent(i);
1839 if (newname && strlen(newname)) {
1844 bool resetStat =
false;
1847 if(newxbins * nxgroup != nxbins) {
1851 if(newybins * nygroup != nybins) {
1883 if (nxgroup != 1 || nygroup != 1) {
1890 hnew->
SetBins(newxbins, xbins, newybins, ybins);
1894 hnew->
SetBins(newxbins, xmin, xmax, newybins, ymin, ymax);
1899 if (oldErrors) hnew->
fSumw2[0] = 0;
1902 for(
Int_t binx = 1, oldbinx = 1; binx < newnx; ++binx, oldbinx += nxgroup){
1903 Double_t binContent = 0.0, binErrorSq = 0.0;
1904 for (
Int_t i = 0; i < nxgroup && (oldbinx + i) < nx; ++i) {
1905 Int_t bin = oldbinx + i;
1906 binContent += oldBins[bin];
1907 if(oldErrors) binErrorSq += oldErrors[bin];
1909 Int_t newbin = binx;
1911 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1915 for(
Int_t biny = 1, oldbiny = 1; biny < newny; ++biny, oldbiny += nygroup){
1916 Double_t binContent = 0.0, binErrorSq = 0.0;
1917 for (
Int_t j = 0; j < nygroup && (oldbiny + j) < ny; ++j) {
1918 Int_t bin = (oldbiny + j) * nx;
1919 binContent += oldBins[bin];
1920 if(oldErrors) binErrorSq += oldErrors[bin];
1922 Int_t newbin = biny * newnx;
1924 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1928 for (
Int_t binx = 1, oldbinx = 1; binx < newnx; ++binx, oldbinx += nxgroup) {
1929 for (
Int_t biny = 1, oldbiny = 1; biny < newny; ++biny, oldbiny += nygroup) {
1930 Double_t binContent = 0.0, binErrorSq = 0.0;
1931 for (
Int_t i = 0; i < nxgroup && (oldbinx + i) < nx; ++i) {
1932 for (
Int_t j = 0; j < nygroup && (oldbiny + j) < ny; ++j) {
1933 Int_t bin = oldbinx + i + (oldbiny + j) * nx;
1934 binContent += oldBins[bin];
1935 if (oldErrors) binErrorSq += oldErrors[bin];
1938 Int_t newbin = binx + biny * newnx;
1940 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1973 if (oldErrors)
delete [] oldErrors;
1988 cut = opt(i1,i2-i1+1);
1991 bool originalRange = opt.
Contains(
"o");
1996 const char *expectedName = ( onX ?
"_pfx" :
"_pfy" );
1998 Int_t firstOutBin, lastOutBin;
2000 lastOutBin = outAxis.
GetLast();
2001 if (firstOutBin == 0 && lastOutBin == 0) {
2002 firstOutBin = 1; lastOutBin = outAxis.
GetNbins();
2011 if (firstbin == 0 && lastbin == 0)
2017 if (firstbin < 0) firstbin = 1;
2018 if (lastbin < 0) lastbin = inN;
2019 if (lastbin > inN+1) lastbin = inN;
2022 char *
pname = (
char*)name;
2023 if (name && strcmp(name, expectedName) == 0) {
2025 pname =
new char[nch];
2026 snprintf(pname,nch,
"%s%s",
GetName(),name);
2034 Error(
"DoProfile",
"Histogram with name %s must be a TProfile and is a %s",name,h1obj->
ClassName());
2043 if (xbins->
fN == 0) {
2044 if ( originalRange )
2053 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->
fArray[firstOutBin-1]);
2059 ((
TH2 *)
this)->GetPainter();
2065 if (bins->
fN == 0) {
2066 if ( originalRange )
2080 if (pname != name)
delete []
pname;
2092 if (useWeights) h1->
Sumw2();
2105 for (
Int_t outbin = 0; outbin <= outAxis.
GetNbins() + 1; ++outbin) {
2111 if (binOut <0)
continue;
2113 for (
Int_t inbin = firstbin ; inbin <= lastbin ; ++inbin) {
2115 if (onX) { binx = outbin; biny=inbin; }
2116 else { binx = inbin; biny=outbin; }
2122 Double_t cxy = RetrieveBinContent(bin);
2128 if ( useWeights ) tmp = binSumw2.
fArray[binOut];
2151 if (!
gPad || !
gPad->FindObject(h1)) {
2156 if (padsav) padsav->
cd();
2202 return DoProfile(
true, name, firstybin, lastybin, option);
2247 return DoProfile(
false, name, firstxbin, lastxbin, option);
2257 const char *expectedName = 0;
2259 Int_t firstOutBin, lastOutBin;
2260 const TAxis* outAxis;
2261 const TAxis* inAxis;
2268 cut = opt(i1,i2-i1+1);
2271 bool originalRange = opt.
Contains(
"o");
2275 expectedName =
"_px";
2282 expectedName =
"_py";
2289 lastOutBin = outAxis->
GetLast();
2290 if (firstOutBin == 0 && lastOutBin == 0) {
2291 firstOutBin = 1; lastOutBin = outAxis->
GetNbins();
2300 if (firstbin == 0 && lastbin == 0)
2306 if (firstbin < 0) firstbin = 0;
2307 if (lastbin < 0) lastbin = inNbin + 1;
2308 if (lastbin > inNbin+1) lastbin = inNbin + 1;
2311 char *
pname = (
char*)name;
2312 if (name && strcmp(name,expectedName) == 0) {
2314 pname =
new char[nch];
2315 snprintf(pname,nch,
"%s%s",
GetName(),name);
2324 Error(
"DoProjection",
"Histogram with name %s must be a TH1D and is a %s",name,h1obj->
ClassName());
2333 if (xbins->
fN == 0) {
2334 if ( originalRange )
2343 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->
fArray[firstOutBin-1]);
2349 ((
TH2 *)
this)->GetPainter();
2355 if (bins->
fN == 0) {
2356 if ( originalRange )
2359 h1 =
new TH1D(pname,
GetTitle(),lastOutBin-firstOutBin+1,
2366 h1 =
new TH1D(pname,
GetTitle(),lastOutBin-firstOutBin+1,&bins->
fArray[firstOutBin-1]);
2370 if (pname != name)
delete []
pname;
2398 for (
Int_t outbin = 0; outbin <= outAxis->
GetNbins() + 1; ++outbin) {
2403 for (
Int_t inbin = firstbin ; inbin <= lastbin ; ++inbin) {
2405 if (onX) { binx = outbin; biny=inbin; }
2406 else { binx = inbin; biny=outbin; }
2413 if (computeErrors) {
2427 bool reuseStats =
false;
2428 if ( (
fgStatOverflows ==
false && firstbin == 1 && lastbin == inNbin ) ||
2429 (
fgStatOverflows ==
true && firstbin == 0 && lastbin == inNbin + 1 ) )
2433 double eps = 1.E-12;
2438 if (ncuts) reuseStats =
false;
2440 bool reuseEntries = reuseStats;
2442 reuseEntries &= (firstbin==0 && lastbin == inNbin+1);
2447 stats[2] = stats[4];
2448 stats[3] = stats[5];
2478 if (!
gPad || !
gPad->FindObject(h1)) {
2483 if (padsav) padsav->
cd();
2525 return DoProjection(
true, name, firstybin, lastybin, option);
2565 return DoProjection(
false, name, firstxbin, lastxbin, option);
2612 const TAxis *outAxis = 0;
2613 const TAxis *inAxis = 0;
2624 if (qname.
IsNull() || qname ==
"_qx" || qname ==
"_qy") {
2625 const char * qtype = (onX) ?
"qx" :
"qy";
2633 h1 =
dynamic_cast<TH1D*
>(h1obj);
2635 Error(
"DoQuantiles",
"Histogram with name %s must be a TH1D and is a %s",qname.
Data(),h1obj->
ClassName());
2652 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->
fArray[firstOutBin-1]);
2659 for (
int ibin = inAxis->
GetFirst() ; ibin <= inAxis->
GetLast() ; ++ibin) {
2664 if (slice->
GetSum() == 0)
continue;
2675 if (slice)
delete slice;
2703 if (bin < 0)
return;
2747 return (
TH1*)
gROOT->ProcessLineFast(
Form(
"TSpectrum2::StaticBackground((TH1*)0x%lx,%d,\"%s\")",
2748 (
ULong_t)
this, niter, option));
2763 return (
Int_t)
gROOT->ProcessLineFast(
Form(
"TSpectrum2::StaticSearch((TH1*)0x%lx,%g,\"%s\",%g)",
2764 (
ULong_t)
this, sigma, option, threshold));
2791 Double_t k5a[5][5] = { { 0, 0, 1, 0, 0 },
2795 { 0, 0, 1, 0, 0 } };
2796 Double_t k5b[5][5] = { { 0, 1, 2, 1, 0 },
2800 { 0, 1, 2, 1, 0 } };
2801 Double_t k3a[3][3] = { { 0, 1, 0 },
2806 Warning(
"Smooth",
"Currently only ntimes=1 is supported");
2813 if (opt.
Contains(
"k5b")) kernel = &k5b[0][0];
2815 kernel = &k3a[0][0];
2830 Int_t bufSize = (nx+2)*(ny+2);
2837 for (i=ifirst; i<=ilast; i++){
2838 for (j=jfirst; j<=jlast; j++){
2840 buf[bin] = RetrieveBinContent(bin);
2846 Int_t x_push = (ksize_x-1)/2;
2847 Int_t y_push = (ksize_y-1)/2;
2850 for (i=ifirst; i<=ilast; i++){
2851 for (j=jfirst; j<=jlast; j++) {
2860 if ( (xb >= 1) && (xb <= nx) && (yb >= 1) && (yb <= ny) ) {
2866 content += k*buf[bin];
2867 if (ebuf) error += k*k*ebuf[bin]*ebuf[bin];
2873 if ( norm != 0.0 ) {
2876 error /= (norm*
norm);
2892 void TH2::Streamer(
TBuffer &R__b)
2902 TH1::Streamer(R__b);
2929 if (fgDefaultSumw2) Sumw2();
2946 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
2960 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
2972 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
2984 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
2996 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3027 if (newval > -128 && newval < 128) {
fArray[bin] =
Char_t(newval);
return;}
3028 if (newval < -127)
fArray[bin] = -127;
3029 if (newval > 127)
fArray[bin] = 127;
3067 void TH2C::Streamer(
TBuffer &R__b)
3079 TH1::Streamer(R__b);
3080 TArrayC::Streamer(R__b);
3087 TH2::Streamer(R__b);
3088 TArrayC::Streamer(R__b);
3104 if (
this != &h1) ((
TH2C&)h1).
Copy(*
this);
3183 if (fgDefaultSumw2) Sumw2();
3200 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3214 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3226 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3238 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3250 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3281 if (newval > -32768 && newval < 32768) {
fArray[bin] =
Short_t(newval);
return;}
3282 if (newval < -32767)
fArray[bin] = -32767;
3283 if (newval > 32767)
fArray[bin] = 32767;
3321 void TH2S::Streamer(
TBuffer &R__b)
3333 TH1::Streamer(R__b);
3334 TArrayS::Streamer(R__b);
3341 TH2::Streamer(R__b);
3342 TArrayS::Streamer(R__b);
3358 if (
this != &h1) ((
TH2S&)h1).
Copy(*
this);
3437 if (fgDefaultSumw2) Sumw2();
3454 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3468 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3480 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3492 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3504 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3535 if (newval > -2147483647 && newval < 2147483647) {
fArray[bin] =
Int_t(newval);
return;}
3536 if (newval < -2147483647)
fArray[bin] = -2147483647;
3537 if (newval > 2147483647)
fArray[bin] = 2147483647;
3577 if (
this != &h1) ((
TH2I&)h1).
Copy(*
this);
3656 if (fgDefaultSumw2) Sumw2();
3673 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3687 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3699 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3711 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3723 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3734 :
TH2(
"TMatrixFBase",
"",m.GetNcols(),m.GetColLwb(),1+m.GetColUpb(),m.GetNrows(),m.GetRowLwb(),1+m.GetRowUpb())
3741 for (
Int_t i=ilow;i<=iup;i++) {
3742 for (
Int_t j=jlow;j<=jup;j++) {
3792 void TH2F::Streamer(
TBuffer &R__b)
3804 TH1::Streamer(R__b);
3805 TArrayF::Streamer(R__b);
3812 TH2::Streamer(R__b);
3813 TArrayF::Streamer(R__b);
3829 if (
this != &h1) ((
TH2F&)h1).
Copy(*
this);
3920 if (fgDefaultSumw2) Sumw2();
3937 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3951 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3963 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3975 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3987 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3998 :
TH2(
"TMatrixDBase",
"",m.GetNcols(),m.GetColLwb(),1+m.GetColUpb(),m.GetNrows(),m.GetRowLwb(),1+m.GetRowUpb())
4005 for (
Int_t i=ilow;i<=iup;i++) {
4006 for (
Int_t j=jlow;j<=jup;j++) {
4057 void TH2D::Streamer(
TBuffer &R__b)
4069 TH1::Streamer(R__b);
4070 TArrayD::Streamer(R__b);
4077 TH2::Streamer(R__b);
4078 TArrayD::Streamer(R__b);
4094 if (
this != &h1) ((
TH2D&)h1).
Copy(*
this);
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
Int_t GetFirst() const
Return first bin on the axis i.e.
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title Offset is a correction factor with respect to the "s...
virtual void Copy(TObject &hnew) const
Copy.
virtual const char * GetTitle() const
Returns title of object.
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
virtual Color_t GetAxisColor() const
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
virtual void Copy(TObject &hnew) const
Copy.
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
virtual void Paint(Option_t *option="")
Control routine to paint any kind of histograms.
virtual void SetParameters(const Double_t *params)
virtual void FillRandom(const char *fname, Int_t ntimes=5000)
Fill histogram following distribution in function fname.
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
virtual Color_t GetLabelColor() const
Double_t Floor(Double_t x)
void Set(Int_t n)
Set size of this array to n chars.
virtual void GetRandom2(Double_t &x, Double_t &y)
Return 2 random numbers along axis x and y distributed according the cellcontents of a 2-dim histogra...
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
virtual Int_t BufferEmpty(Int_t action=0)
Fill histogram with all entries in the buffer.
virtual Int_t FindFirstBinAbove(Double_t threshold=0, Int_t axis=1) const
Find first bin with content > threshold for axis (1=x, 2=y, 3=z) if no bins with content > threshold ...
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void PutStats(Double_t *stats)
Replace current statistics with the values in array stats.
static Bool_t fgDefaultSumw2
flag to use under/overflows in statistics
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
TVirtualHistPainter * GetPainter(Option_t *option="")
return pointer to painter if painter does not exist, it is created
Collectable string class.
virtual Double_t Rndm(Int_t i=0)
Machine independent random number generator.
virtual void SetDirectory(TDirectory *dir)
By default when an histogram is created, it is added to the list of histogram objects in the current ...
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...
virtual TProfile * DoProfile(bool onX, const char *name, Int_t firstbin, Int_t lastbin, Option_t *option) const
Double_t KolmogorovProb(Double_t z)
Calculates the Kolmogorov distribution function, Begin_Html.
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.
virtual Int_t GetNumberFitPoints() const
TString & ReplaceAll(const TString &s1, const TString &s2)
virtual const char * GetParName(Int_t ipar) const
virtual void PutStats(Double_t *stats)
Replace current statistics with the values in array stats.
virtual Int_t GetDimension() const
virtual TH2 * RebinY(Int_t ngroup=2, const char *newname="")
Rebin only the Y axis see Rebin2D.
virtual void SetBins(Int_t nx, Double_t xmin, Double_t xmax)
Redefine x axis parameters.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
static Bool_t fgStatOverflows
flag to add histograms to the directory
static Bool_t SameLimitsAndNBins(const TAxis &axis1, const TAxis &axis2)
Same limits and bins.
virtual void SetLabelColor(Color_t color=1, Float_t alpha=1.)
Set color of labels.
virtual Int_t BufferFill(Double_t x, Double_t y, Double_t w)
accumulate arguments in buffer.
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
virtual void SetNdivisions(Int_t n=510, Bool_t optim=kTRUE)
Set the number of divisions for this axis.
virtual Int_t GetQuantiles(Int_t nprobSum, Double_t *q, const Double_t *probSum=0)
Compute Quantiles for this histogram Quantile x_q of a probability distribution Function F is defined...
virtual void SetRange(Double_t xmin, Double_t xmax)
Initialize the upper and lower bounds to draw the function.
virtual void AddFirst(TObject *obj)
Add object at the beginning of the list.
void ToUpper()
Change string to upper case.
Buffer base class used for serializing objects.
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
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 Int_t MakeCuts(char *cutsopt)=0
static THLimitsFinder * GetLimitsFinder()
Return pointer to the current finder.
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
virtual ~TH2D()
Destructor.
virtual Double_t GetCovariance(Int_t axis1=1, Int_t axis2=2) const
Return covariance between axis1 and axis2.
void Copy(TArrayS &array) const
2-D histogram with a bype per channel (see TH1 documentation)
Array of floats (32 bits per element).
virtual void SetTitleFont(Style_t font=62)
Set the title font.
void ToLower()
Change string to lower-case.
virtual ~TH2()
Destructor.
virtual Double_t GetParError(Int_t ipar) const
Return value of parameter number ipar.
virtual Color_t GetTitleColor() const
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width.
virtual Style_t GetTitleFont() const
virtual Int_t GetNbinsX() const
virtual Bool_t IsInside(Int_t x, Int_t y)=0
const TKDTreeBinning * bins
virtual void Copy(TObject &hnew) const
Copy.
void Copy(TArrayD &array) const
virtual Int_t FindGoodLimits(TH1 *h, Double_t xmin, Double_t xmax)
compute the best axis limits for the X axis.
virtual Int_t FindLastBinAbove(Double_t threshold=0, Int_t axis=1) const
Find last bin with content > threshold for axis (1=x, 2=y, 3=z) if no bins with content > threshold i...
static Bool_t RecomputeAxisLimits(TAxis &destAxis, const TAxis &anAxis)
Finds new limits for the axis for the Merge function.
virtual Double_t GetEntries() const
return the current number of entries
virtual Bool_t Multiply(TF1 *h1, Double_t c1=1)
Performs the operation: this = this*c1*f1 if errors are defined (see TH1::Sumw2), errors are also rec...
virtual Float_t GetTitleSize() const
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...
virtual void SetLabelOffset(Float_t offset=0.005)
Set distance between the axis and the labels The distance is expressed in per cent of the pad width...
virtual Double_t Integral(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t epsrel=1.e-6)
Return Integral of a 2d function in range [ax,bx],[ay,by] with desired relative accuracy (default val...
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 =...
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
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...
Array of integers (32 bits per element).
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void SetBuffer(Int_t buffersize, Option_t *option="")
set the maximum number of entries to be kept in the buffer
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
TObject * Clone(const char *newname=0) const
Make a complete copy of the underlying object.
virtual void SetLabelFont(Style_t font=62)
Set labels' font.
virtual void Copy(TObject &hnew) const
Copy.
const char * Data() const
static const double x2[5]
virtual void Reset(Option_t *option="")
Reset contents of a Profile histogram.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
TH2F & operator=(const TH2F &h1)
Operator =.
Double_t GetChisquare() const
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
virtual Int_t ShowPeaks(Double_t sigma=2, Option_t *option="", Double_t threshold=0.05)
Interface to TSpectrum2::Search the function finds peaks in this histogram where the width is > sigma...
TH2C operator*(Float_t c1, TH2C &h1)
Operator *.
virtual Bool_t IsEmpty() const
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...
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
virtual TArrayD * GetBinSumw2()
virtual void AddAll(const TCollection *col)
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...
virtual void Copy(TObject &hnew) const
Copy.
virtual void SetMarkerColor(Color_t mcolor=1)
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.
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.
TH2S & operator=(const TH2S &h1)
Operator =.
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.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
virtual void ResetStats()
Reset the statistics including the number of entries and replace with values calculates from bin cont...
TVirtualPad is an abstract base class for the Pad and Canvas classes.
void Set(Int_t n)
Set size of this array to n ints.
virtual void Reset(Option_t *option="")
Reset.
virtual void SetBinError(Int_t bin, Double_t error)
see convention for numbering bins in TH1::GetBin
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...
virtual Float_t GetTitleOffset() const
TH2C operator+(TH2C &h1, TH2C &h2)
Operator +.
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
virtual Bool_t Divide(TF1 *f1, Double_t c1=1)
Performs the operation: this = this/(c1*f1) if errors are defined (see TH1::Sumw2), errors are also recalculated.
TH2C operator/(TH2C &h1, TH2C &h2)
Operator /.
virtual Double_t GetEffectiveEntries() const
number of effective entries of the histogram, neff = (Sum of weights )^2 / (Sum of weight^2 ) In case...
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
void Set(Int_t n)
Set size of this array to n shorts.
virtual void ImportAttributes(const TAxis *axis)
Copy axis attributes to this.
virtual void Smooth(Int_t ntimes=1, Option_t *option="")
Smooth bin contents of this 2-d histogram using kernel algorithms similar to the ones used in the ras...
virtual void ExtendAxis(Double_t x, TAxis *axis)
Histogram is resized along axis such that x is in the axis range.
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
void Copy(TArrayF &array) const
ClassImp(TH2C) TH2C
Constructor.
virtual void SetLineColor(Color_t lcolor)
virtual void SetRange(Int_t first=0, Int_t last=0)
Set the viewing range for the axis from bin first to last.
virtual void Copy(TObject &hnew) const
Copy.
virtual ~TH2C()
Destructor.
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
Service class for 2-Dim histogram classes.
Class to manage histogram axis.
virtual void Draw(Option_t *option="")
Draw this histogram with options.
Array of shorts (16 bits per element).
TH2C & operator=(const TH2C &h1)
Operator =.
TPaveLabel title(3, 27.1, 15, 28.7,"ROOT Environment and Tools")
virtual void FitSlicesX(TF1 *f1=0, Int_t firstybin=0, Int_t lastybin=-1, Int_t cut=0, Option_t *option="QNR", TObjArray *arr=0)
Project slices along X in case of a 2-D histogram, then fit each slice with function f1 and make a hi...
virtual void SetFillColor(Color_t fcolor)
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
2-D histogram with a float per channel (see TH1 documentation)}
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
unsigned int r1[N_CITIES]
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.
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 Color_t GetFillColor() const
Collection abstract base class.
static Int_t fgBufferSize
void Copy(TArrayI &array) const
Bool_t TestBit(UInt_t f) const
char * Form(const char *fmt,...)
Int_t Fill(const Double_t *v)
virtual const char * GetName() const
Returns name of object.
virtual Int_t GetSumw2N() const
virtual void SetMarkerStyle(Style_t mstyle=1)
const char * GetTitle() const
Returns title of object.
Double_t * fIntegral
Histogram dimension (1, 2 or 3 dim)
A 2-Dim function with parameters.
R__EXTERN TRandom * gRandom
virtual Color_t GetLineColor() const
1-D histogram with a double per channel (see TH1 documentation)}
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 The size is expressed in per cent of the pad width.
virtual Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const
Statistical test of compatibility in shape between THIS histogram and h2, using Kolmogorov test...
virtual void SetTitleColor(Color_t color=1)
Set color of axis title.
virtual void SetTitleSize(Float_t size=0.04)
Set size of axis title The size is expressed in per cent of the pad width.
virtual Int_t GetBin(Int_t binx, Int_t biny, Int_t binz=0) const
Return Global bin number corresponding to binx,y,z.
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
Double_t Gaus(Double_t x, Double_t mean=0, Double_t sigma=1, Bool_t norm=kFALSE)
Calculate a gaussian function with mean and sigma.
const Double_t * GetArray() const
virtual Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
virtual void SetName(const char *name)
Change the name of this histogram.
void Copy(TArrayC &array) const
TString & Remove(Ssiz_t pos)
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
virtual TH2 * RebinX(Int_t ngroup=2, const char *newname="")
Rebin only the X axis see Rebin2D.
TH2C operator-(TH2C &h1, TH2C &h2)
Operator -.
static const double x1[5]
TH2I & operator=(const TH2I &h1)
Operator =.
virtual void DoFitSlices(bool onX, TF1 *f1, Int_t firstbin, Int_t lastbin, Int_t cut, Option_t *option, TObjArray *arr)
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...
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...
virtual void SetShowProjection(const char *option, Int_t nbins)=0
virtual void FitSlicesY(TF1 *f1=0, Int_t firstxbin=0, Int_t lastxbin=-1, Int_t cut=0, Option_t *option="QNR", TObjArray *arr=0)
Project slices along Y in case of a 2-D histogram, then fit each slice with function f1 and make a hi...
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
virtual Style_t GetLabelFont() const
virtual Int_t GetNdivisions() const
virtual void Expand(Int_t newSize)
Expand or shrink the array to newSize elements.
2-D histogram with a short per channel (see TH1 documentation)
virtual void SetBinLabel(Int_t bin, const char *label)
Set label for bin.
Array of doubles (64 bits per element).
virtual TH1D * DoQuantiles(bool onX, const char *name, Double_t prob) const
Implementation of quantiles for x or y.
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), errors are also recalculated.
Int_t GetLast() const
Return last bin on the axis i.e.
virtual Double_t GetParameter(Int_t ipar) const
void SetBins(const Int_t *nbins, const Double_t *range)
virtual UInt_t SetCanExtend(UInt_t extendBitMask)
make the histogram axes extendable / not extendable according to the bit mask returns the previous bi...
virtual Double_t GetBinCenter(Int_t bin) const
Return center of bin.
Mother of all ROOT objects.
virtual Double_t * GetParameters() const
virtual Float_t GetLabelSize() const
virtual Int_t GetNbinsY() const
virtual TH1 * ShowBackground(Int_t niter=20, Option_t *option="same")
This function calculates the background spectrum in this histogram.
virtual ~TH2F()
Destructor.
virtual Double_t GetBinErrorSqUnchecked(Int_t bin) const
THashList * GetLabels() const
virtual Color_t GetMarkerColor() const
virtual Double_t Interpolate(Double_t x)
illegal for a TH2
TVirtualHistPainter * fPainter
Integral of bins used by GetRandom.
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
virtual ~TH2I()
Destructor.
virtual void Copy(TObject &hnew) const
Copy this histogram structure to newth1.
Short_t Max(Short_t a, Short_t b)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual void SetBinsLength(Int_t=-1)
virtual Long64_t Merge(TCollection *list)
Add all histograms in the collection to this histogram.
virtual void Sumw2(Bool_t flag=kTRUE)
Create structure to store sum of squares of weights.
virtual Bool_t CanExtendAllAxes() const
returns true if all axes are extendable
Int_t fDimension
Pointer to directory holding this histogram.
virtual void SetTickLength(Float_t length=0.03)
Set tick mark length The length is expressed in per cent of the pad width.
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
void Set(Int_t n)
Set size of this array to n floats.
virtual void SetEntries(Double_t n)
virtual void GetStats(Double_t *stats) const
Fill the array stats from the contents of this histogram The array stats must be correctly dimensionn...
const TArrayD * GetXbins() const
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content.
virtual Double_t GetStdDev(Int_t axis=1) const
Returns the Standard Deviation (Sigma).
virtual Double_t GetCorrelationFactor(Int_t axis1=1, Int_t axis2=2) const
Return correlation factor between axis1 and axis2.
Double_t Sqrt(Double_t x)
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
2-D histogram with a int per channel (see TH1 documentation)}
virtual void Sumw2(Bool_t flag=kTRUE)
Create/delete structure to store sum of squares of weights per bin — This is needed to compute the co...
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual void Set(Int_t nbins, Double_t xmin, Double_t xmax)
Initialize axis with fix bins.
virtual Double_t GetBinError(Int_t bin) const
Return value of error associated to bin number bin.
virtual Style_t GetMarkerStyle() const
Int_t Fill(Double_t)
Invalid Fill method.
virtual Float_t GetTickLength() const
virtual void SetTitle(const char *title="")
Change (i.e. set) the title of the TNamed.
virtual ~TH2S()
Destructor.
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.
double norm(double *x, double *p)
virtual ClassDef(TH1, 7) protected 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...
void Set(Int_t n)
Set size of this array to n doubles.
virtual Int_t GetNpar() const
Long64_t BinarySearch(Long64_t n, const T *array, T value)
Ssiz_t First(char c) const
Find first occurrence of a character c.
virtual void FillN(Int_t, const Double_t *, const Double_t *, Int_t)
Fill this histogram with an array x and weights w.
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 Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
TH2D & operator=(const TH2D &h1)
Operator =.
virtual Float_t GetLabelOffset() const
2-D histogram with a double per channel (see TH1 documentation)}
Array of chars or bytes (8 bits per element).
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.