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]);
249 nbentries = -nbentries;
287 Error(
"Fill",
"Invalid signature - do nothing");
311 Int_t binx, biny, bin;
315 if (binx <0 || biny <0)
return -1;
355 Int_t binx, biny, bin;
359 if (binx <0 || biny <0)
return -1;
399 Int_t binx, biny, bin;
403 if (binx <0 || biny <0)
return -1;
441 Int_t binx, biny, bin;
445 if (binx <0 || biny <0)
return -1;
484 Int_t binx, biny, bin;
488 if (binx <0 || biny <0)
return -1;
528 Int_t binx, biny, bin, i;
535 for (i=0;i<ntimes;i+=stride) {
548 for (i=ifirst;i<ntimes;i+=stride) {
552 if (binx <0 || biny <0)
continue;
592 Int_t bin, binx, biny, ibin, loop;
596 if (!fobj) {
Error(
"FillRandom",
"Unknown function: %s",fname);
return; }
597 TF2 *
f1 =
dynamic_cast<TF2*
>(fobj);
598 if (!f1) {
Error(
"FillRandom",
"Function: %s is not a TF2",fname);
return; }
608 for (biny=1;biny<=nbinsy;biny++) {
609 for (binx=1;binx<=nbinsx;binx++) {
612 integral[ibin] = integral[ibin-1] + fint;
617 if (integral[nbins] == 0 ) {
619 Error(
"FillRandom",
"Integral = zero");
return;
621 for (bin=1;bin<=
nbins;bin++) integral[bin] /= integral[nbins];
624 for (loop=0;loop<ntimes;loop++) {
628 binx = 1 + ibin - nbinsx*biny;
652 if (!h) {
Error(
"FillRandom",
"Null histogram");
return; }
654 Error(
"FillRandom",
"Histograms with different dimensions");
return;
662 for (loop=0;loop<ntimes;loop++) {
675 if (axis < 1 || axis > 2) {
676 Warning(
"FindFirstBinAbove",
"Invalid axis number : %d, axis x assumed\n",axis);
683 for (binx=1;binx<=nbinsx;binx++) {
684 for (biny=1;biny<=nbinsy;biny++) {
689 for (biny=1;biny<=nbinsy;biny++) {
690 for (binx=1;binx<=nbinsx;binx++) {
705 if (axis < 1 || axis > 2) {
706 Warning(
"FindLastBinAbove",
"Invalid axis number : %d, axis x assumed\n",axis);
713 for (binx=nbinsx;binx>=1;binx--) {
714 for (biny=1;biny<=nbinsy;biny++) {
719 for (biny=nbinsy;biny>=1;biny--) {
720 for (binx=1;binx<=nbinsx;binx++) {
738 if (firstbin < 0) firstbin = 0;
739 if (lastbin < 0 || lastbin > nbins + 1) lastbin = nbins + 1;
740 if (lastbin < firstbin) {firstbin = 0; lastbin = nbins + 1;}
750 Int_t nstep = ngroup;
755 f1 = (
TF1*)
gROOT->GetFunction(
"gaus");
756 if (f1 == 0) f1 =
new TF1(
"gaus",
"gaus",innerAxis.
GetXmin(),innerAxis.
GetXmax());
760 if (npar <= 0)
return;
772 char *
name =
new char[2000];
773 char *title =
new char[2000];
775 for (ipar=0;ipar<npar;ipar++) {
776 snprintf(name,2000,
"%s_%d",
GetName(),ipar);
777 snprintf(title,2000,
"Fitted value of par[%d]=%s",ipar,f1->
GetParName(ipar));
782 hlist[ipar] =
new TH1D(name,title, nbins,bins->
fArray);
786 (*arr)[ipar] = hlist[ipar];
788 snprintf(name,2000,
"%s_chi2",
GetName());
794 hchi2 =
new TH1D(name,
"chisquare", nbins, bins->
fArray);
798 (*arr)[npar] = hchi2;
805 for (bin=firstbin;bin+ngroup-1<=lastbin;bin += nstep) {
811 if (hp == 0)
continue;
813 if (nentries == 0 || nentries < cut) {
delete hp;
continue;}
817 if (npfits > npar && npfits >= cut) {
818 Int_t binOn = bin + ngroup/2;
819 for (ipar=0;ipar<npar;ipar++) {
886 DoFitSlices(
true, f1, firstybin, lastybin, cut, option, arr);
952 DoFitSlices(
false, f1, firstxbin, lastxbin, cut, option, arr);
960 if (biny < 0) biny = 0;
961 if (biny > ofy) biny = ofy;
992 Error(
"GetBinWithContent2",
"function is only valid for 2-D histograms");
995 if (firstxbin < 0) firstxbin = 1;
997 if (firstybin < 0) firstybin = 1;
1000 for (
Int_t j = firstybin; j <= lastybin; j++) {
1001 for (
Int_t i = firstxbin; i <= lastxbin; i++) {
1003 if (diff <= 0) {binx = i; biny=j;
return diff;}
1004 if (diff < curmax && diff <= maxdiff) {curmax = diff, binx=i; biny=j;}
1016 if (axis1 < 1 || axis2 < 1 || axis1 > 2 || axis2 > 2) {
1017 Error(
"GetCorrelationFactor",
"Wrong parameters");
1020 if (axis1 == axis2)
return 1;
1022 if (stddev1 == 0)
return 0;
1024 if (stddev2 == 0)
return 0;
1034 if (axis1 < 1 || axis2 < 1 || axis1 > 2 || axis2 > 2) {
1035 Error(
"GetCovariance",
"Wrong parameters");
1048 if (sumw == 0)
return 0;
1049 if (axis1 == 1 && axis2 == 1) {
1050 return TMath::Abs(sumwx2/sumw - sumwx/sumw*sumwx/sumw);
1052 if (axis1 == 2 && axis2 == 2) {
1053 return TMath::Abs(sumwy2/sumw - sumwy/sumw*sumwy/sumw);
1055 return sumwxy/sumw - sumwx/sumw*sumwy/sumw;
1077 if (integral == 0 ) { x = 0; y = 0;
return;}
1083 Int_t biny = ibin/nbinsx;
1084 Int_t binx = ibin - nbinsx*biny;
1129 if (firstBinX == 1) firstBinX = 0;
1133 if (firstBinY == 1) firstBinY = 0;
1137 for (
Int_t biny = firstBinY; biny <= lastBinY; ++biny) {
1139 for (
Int_t binx = firstBinX; binx <= lastBinX; ++binx) {
1143 Double_t w = RetrieveBinContent(bin);
1191 return DoIntegral(firstxbin,lastxbin,firstybin,lastybin,-1,0,err,option);
1205 return DoIntegral(firstxbin,lastxbin,firstybin,lastybin,-1,0,error,option,
kTRUE);
1214 Error(
"Interpolate",
"This function must be called with 2 arguments for a TH2");
1234 Error(
"Interpolate",
"Cannot interpolate outside histogram domain.");
1276 if(bin_x1<1) bin_x1=1;
1280 if(bin_y1<1) bin_y1=1;
1287 Double_t q11 = RetrieveBinContent(bin_q11);
1288 Double_t q12 = RetrieveBinContent(bin_q12);
1289 Double_t q21 = RetrieveBinContent(bin_q21);
1290 Double_t q22 = RetrieveBinContent(bin_q22);
1292 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);
1302 Error(
"Interpolate",
"This function must be called with 2 arguments for a TH2");
1337 if (h2 == 0)
return 0;
1349 Error(
"KolmogorovTest",
"Histograms must be 2-D\n");
1355 Error(
"KolmogorovTest",
"Number of channels in X is different, %d and %d\n",ncx1,ncx2);
1359 Error(
"KolmogorovTest",
"Number of channels in Y is different, %d and %d\n",ncy1,ncy2);
1369 if (diff1 > difprec || diff2 > difprec) {
1370 Error(
"KolmogorovTest",
"histograms with different binning along X");
1375 if (diff1 > difprec || diff2 > difprec) {
1376 Error(
"KolmogorovTest",
"histograms with different binning along Y");
1381 Int_t ibeg = 1, jbeg = 1;
1382 Int_t iend = ncx1, jend = ncy1;
1383 if (opt.
Contains(
"U")) {ibeg = 0; jbeg = 0;}
1384 if (opt.
Contains(
"O")) {iend = ncx1+1; jend = ncy1+1;}
1391 for (i = ibeg; i <= iend; i++) {
1392 for (j = jbeg; j <= jend; j++) {
1405 Error(
"KolmogorovTest",
"Integral is zero for h1=%s\n",h1->
GetName());
1409 Error(
"KolmogorovTest",
"Integral is zero for h2=%s\n",h2->
GetName());
1417 esum1 = sum1 * sum1 / w1;
1422 esum2 = sum2 * sum2 / w2;
1426 if (afunc2 && afunc1) {
1427 Error(
"KolmogorovTest",
"Errors are zero for both histograms\n");
1436 for (i=ibeg;i<=iend;i++) {
1437 for (j=jbeg;j<=jend;j++) {
1447 for (j=jbeg;j<=jend;j++) {
1448 for (i=ibeg;i<=iend;i++) {
1459 else factnm =
TMath::Sqrt(esum1*sum2/(esum1+esum2));
1462 Double_t dfmax = 0.5*(dfmax1+dfmax2);
1469 if (opt.
Contains(
"N") && !(afunc1 || afunc2 ) ) {
1473 Double_t chi2 = d12*d12/(esum1+esum2);
1476 if (prb > 0 && prb2 > 0) prb = prb*prb2*(1-
TMath::Log(prb*prb2));
1482 printf(
" Kolmo Prob h1 = %s, sum1=%g\n",h1->
GetName(),sum1);
1483 printf(
" Kolmo Prob h2 = %s, sum2=%g\n",h2->
GetName(),sum2);
1484 printf(
" Kolmo Probabil = %f, Max Dist = %g\n",prb,dfmax);
1486 printf(
" Kolmo Probabil = %f for shape alone, =%f for normalisation alone\n",prb1,prb2);
1492 if(opt.
Contains(
"M"))
return dfmax;
1514 if (!list)
return 0;
1534 allHaveLimits = allHaveLimits && hasLimits;
1541 if (firstHistWithLimits ) {
1553 firstHistWithLimits =
kFALSE;
1556 if (!initialLimitsFound) {
1559 initialLimitsFound =
kTRUE;
1573 Error(
"Merge",
"Cannot merge histograms - limits are inconsistent:\n "
1574 "first: (%d, %f, %f), second: (%d, %f, %f)",
1589 Error(
"Merge",
"Cannot merge histograms - limits are inconsistent:\n "
1590 "first: (%d, %f, %f), second: (%d, %f, %f)",
1597 allSameLimits = sameLimitsY && sameLimitsX;
1600 }
while ( ( h = dynamic_cast<TH2*> (
next() ) ) !=
NULL );
1601 if (!h && (*next) ) {
1602 Error(
"Merge",
"Attempt to merge object of class: %s to a %s",
1603 (*next)->ClassName(),this->
ClassName());
1613 if (!allSameLimits) {
1628 if (!allSameLimits && initialLimitsFound) {
1647 if (!allHaveLimits) {
1649 while ( (h = dynamic_cast<TH2*> (
next())) ) {
1653 for (
Int_t i = 0; i < nbentries; i++)
1659 if (!initialLimitsFound) {
1671 for (
Int_t i=0;i<
kNstat;i++) {totstats[i] = stats[i] = 0;}
1674 Int_t binx, biny, ix, iy,
nx,
ny, bin, ibin;
1684 if (h->
fTsumw == 0 && histEntries == 0)
continue;
1691 totstats[i] += stats[i];
1692 nentries += histEntries;
1697 for (biny = 0; biny <= ny + 1; biny++) {
1702 for (binx = 0; binx <= nx + 1; binx++) {
1703 bin = binx +(nx+2)*biny;
1705 cu = h->RetrieveBinContent(bin);
1706 if (!allSameLimits) {
1707 if (cu != 0 && ( (!sameLimitsX && (binx == 0 || binx == nx+1)) || (!sameLimitsY && (biny == 0 || biny == ny+1)) )) {
1708 Error(
"Merge",
"Cannot merge histograms - the histograms have"
1709 " different limits and undeflows/overflows are present."
1710 " The initial histogram is now broken!");
1719 ibin = ix +(nbix+2)*iy;
1721 if (ibin < 0)
continue;
1750 return Rebin2D(ngroup, 1, newname);
1760 return Rebin2D(1, ngroup, newname);
1800 Error(
"Rebin2D",
"Histogram must be TH2. This histogram has %d dimensions.",
GetDimension());
1803 if ((nxgroup <= 0) || (nxgroup > nxbins)) {
1804 Error(
"Rebin2D",
"Illegal value of nxgroup=%d",nxgroup);
1807 if ((nygroup <= 0) || (nygroup > nybins)) {
1808 Error(
"Rebin2D",
"Illegal value of nygroup=%d",nygroup);
1812 Int_t newxbins = nxbins / nxgroup;
1813 Int_t newybins = nybins / nygroup;
1814 Int_t newnx = newxbins + 2;
1815 Int_t newny = newybins + 2;
1819 for (
Int_t i = 0; i <
fNcells; ++i) oldBins[i] = RetrieveBinContent(i);
1829 if (newname && strlen(newname)) {
1834 bool resetStat =
false;
1837 if(newxbins * nxgroup != nxbins) {
1841 if(newybins * nygroup != nybins) {
1873 if (nxgroup != 1 || nygroup != 1) {
1880 hnew->
SetBins(newxbins, xbins, newybins, ybins);
1884 hnew->
SetBins(newxbins, xmin, xmax, newybins, ymin, ymax);
1889 if (oldErrors) hnew->
fSumw2[0] = 0;
1892 for(
Int_t binx = 1, oldbinx = 1; binx < newnx; ++binx, oldbinx += nxgroup){
1893 Double_t binContent = 0.0, binErrorSq = 0.0;
1894 for (
Int_t i = 0; i < nxgroup && (oldbinx + i) < nx; ++i) {
1895 Int_t bin = oldbinx + i;
1896 binContent += oldBins[bin];
1897 if(oldErrors) binErrorSq += oldErrors[bin];
1899 Int_t newbin = binx;
1901 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1905 for(
Int_t biny = 1, oldbiny = 1; biny < newny; ++biny, oldbiny += nygroup){
1906 Double_t binContent = 0.0, binErrorSq = 0.0;
1907 for (
Int_t j = 0; j < nygroup && (oldbiny + j) < ny; ++j) {
1908 Int_t bin = (oldbiny + j) * nx;
1909 binContent += oldBins[bin];
1910 if(oldErrors) binErrorSq += oldErrors[bin];
1912 Int_t newbin = biny * newnx;
1914 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1918 for (
Int_t binx = 1, oldbinx = 1; binx < newnx; ++binx, oldbinx += nxgroup) {
1919 for (
Int_t biny = 1, oldbiny = 1; biny < newny; ++biny, oldbiny += nygroup) {
1920 Double_t binContent = 0.0, binErrorSq = 0.0;
1921 for (
Int_t i = 0; i < nxgroup && (oldbinx + i) < nx; ++i) {
1922 for (
Int_t j = 0; j < nygroup && (oldbiny + j) < ny; ++j) {
1923 Int_t bin = oldbinx + i + (oldbiny + j) * nx;
1924 binContent += oldBins[bin];
1925 if (oldErrors) binErrorSq += oldErrors[bin];
1928 Int_t newbin = binx + biny * newnx;
1930 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1963 if (oldErrors)
delete [] oldErrors;
1978 cut = opt(i1,i2-i1+1);
1981 bool originalRange = opt.
Contains(
"o");
1986 const char *expectedName = ( onX ?
"_pfx" :
"_pfy" );
1988 Int_t firstOutBin, lastOutBin;
1990 lastOutBin = outAxis.
GetLast();
1991 if (firstOutBin == 0 && lastOutBin == 0) {
1992 firstOutBin = 1; lastOutBin = outAxis.
GetNbins();
2001 if (firstbin == 0 && lastbin == 0)
2007 if (firstbin < 0) firstbin = 1;
2008 if (lastbin < 0) lastbin = inN;
2009 if (lastbin > inN+1) lastbin = inN;
2012 char *pname = (
char*)name;
2013 if (name && strcmp(name, expectedName) == 0) {
2015 pname =
new char[nch];
2016 snprintf(pname,nch,
"%s%s",
GetName(),name);
2024 Error(
"DoProfile",
"Histogram with name %s must be a TProfile and is a %s",name,h1obj->
ClassName());
2033 if (xbins->
fN == 0) {
2034 if ( originalRange )
2043 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->
fArray[firstOutBin-1]);
2049 ((
TH2 *)
this)->GetPainter();
2055 if (bins->
fN == 0) {
2056 if ( originalRange )
2070 if (pname != name)
delete [] pname;
2082 if (useWeights) h1->
Sumw2();
2095 for (
Int_t outbin = 0; outbin <= outAxis.
GetNbins() + 1; ++outbin) {
2101 if (binOut <0)
continue;
2103 for (
Int_t inbin = firstbin ; inbin <= lastbin ; ++inbin) {
2105 if (onX) { binx = outbin; biny=inbin; }
2106 else { binx = inbin; biny=outbin; }
2112 Double_t cxy = RetrieveBinContent(bin);
2118 if ( useWeights ) tmp = binSumw2.
fArray[binOut];
2141 if (!
gPad || !
gPad->FindObject(h1)) {
2146 if (padsav) padsav->
cd();
2192 return DoProfile(
true, name, firstybin, lastybin, option);
2237 return DoProfile(
false, name, firstxbin, lastxbin, option);
2247 const char *expectedName = 0;
2249 Int_t firstOutBin, lastOutBin;
2250 const TAxis* outAxis;
2251 const TAxis* inAxis;
2258 cut = opt(i1,i2-i1+1);
2261 bool originalRange = opt.
Contains(
"o");
2265 expectedName =
"_px";
2272 expectedName =
"_py";
2279 lastOutBin = outAxis->
GetLast();
2280 if (firstOutBin == 0 && lastOutBin == 0) {
2281 firstOutBin = 1; lastOutBin = outAxis->
GetNbins();
2290 if (firstbin == 0 && lastbin == 0)
2296 if (firstbin < 0) firstbin = 0;
2297 if (lastbin < 0) lastbin = inNbin + 1;
2298 if (lastbin > inNbin+1) lastbin = inNbin + 1;
2301 char *pname = (
char*)name;
2302 if (name && strcmp(name,expectedName) == 0) {
2304 pname =
new char[nch];
2305 snprintf(pname,nch,
"%s%s",
GetName(),name);
2314 Error(
"DoProjection",
"Histogram with name %s must be a TH1D and is a %s",name,h1obj->
ClassName());
2323 if (xbins->
fN == 0) {
2324 if ( originalRange )
2333 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->
fArray[firstOutBin-1]);
2339 ((
TH2 *)
this)->GetPainter();
2345 if (bins->
fN == 0) {
2346 if ( originalRange )
2349 h1 =
new TH1D(pname,
GetTitle(),lastOutBin-firstOutBin+1,
2356 h1 =
new TH1D(pname,
GetTitle(),lastOutBin-firstOutBin+1,&bins->
fArray[firstOutBin-1]);
2360 if (pname != name)
delete [] pname;
2388 for (
Int_t outbin = 0; outbin <= outAxis->
GetNbins() + 1; ++outbin) {
2393 for (
Int_t inbin = firstbin ; inbin <= lastbin ; ++inbin) {
2395 if (onX) { binx = outbin; biny=inbin; }
2396 else { binx = inbin; biny=outbin; }
2403 if (computeErrors) {
2417 bool reuseStats =
false;
2418 if ( (
fgStatOverflows ==
false && firstbin == 1 && lastbin == inNbin ) ||
2419 (
fgStatOverflows ==
true && firstbin == 0 && lastbin == inNbin + 1 ) )
2423 double eps = 1.E-12;
2428 if (ncuts) reuseStats =
false;
2430 bool reuseEntries = reuseStats;
2432 reuseEntries &= (firstbin==0 && lastbin == inNbin+1);
2437 stats[2] = stats[4];
2438 stats[3] = stats[5];
2468 if (!
gPad || !
gPad->FindObject(h1)) {
2473 if (padsav) padsav->
cd();
2515 return DoProjection(
true, name, firstybin, lastybin, option);
2555 return DoProjection(
false, name, firstxbin, lastxbin, option);
2602 const TAxis *outAxis = 0;
2603 const TAxis *inAxis = 0;
2614 if (qname.
IsNull() || qname ==
"_qx" || qname ==
"_qy") {
2615 const char * qtype = (onX) ?
"qx" :
"qy";
2623 h1 =
dynamic_cast<TH1D*
>(h1obj);
2625 Error(
"DoQuantiles",
"Histogram with name %s must be a TH1D and is a %s",qname.
Data(),h1obj->
ClassName());
2642 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->
fArray[firstOutBin-1]);
2649 for (
int ibin = inAxis->
GetFirst() ; ibin <= inAxis->
GetLast() ; ++ibin) {
2654 if (slice->
GetSum() == 0)
continue;
2665 if (slice)
delete slice;
2693 if (bin < 0)
return;
2737 return (
TH1*)
gROOT->ProcessLineFast(
Form(
"TSpectrum2::StaticBackground((TH1*)0x%lx,%d,\"%s\")",
2738 (
ULong_t)
this, niter, option));
2753 return (
Int_t)
gROOT->ProcessLineFast(
Form(
"TSpectrum2::StaticSearch((TH1*)0x%lx,%g,\"%s\",%g)",
2754 (
ULong_t)
this, sigma, option, threshold));
2781 Double_t k5a[5][5] = { { 0, 0, 1, 0, 0 },
2785 { 0, 0, 1, 0, 0 } };
2786 Double_t k5b[5][5] = { { 0, 1, 2, 1, 0 },
2790 { 0, 1, 2, 1, 0 } };
2791 Double_t k3a[3][3] = { { 0, 1, 0 },
2796 Warning(
"Smooth",
"Currently only ntimes=1 is supported");
2803 if (opt.
Contains(
"k5b")) kernel = &k5b[0][0];
2805 kernel = &k3a[0][0];
2820 Int_t bufSize = (nx+2)*(ny+2);
2827 for (i=ifirst; i<=ilast; i++){
2828 for (j=jfirst; j<=jlast; j++){
2830 buf[bin] = RetrieveBinContent(bin);
2836 Int_t x_push = (ksize_x-1)/2;
2837 Int_t y_push = (ksize_y-1)/2;
2840 for (i=ifirst; i<=ilast; i++){
2841 for (j=jfirst; j<=jlast; j++) {
2850 if ( (xb >= 1) && (xb <= nx) && (yb >= 1) && (yb <= ny) ) {
2856 content += k*buf[bin];
2857 if (ebuf) error += k*k*ebuf[bin]*ebuf[bin];
2863 if ( norm != 0.0 ) {
2866 error /= (norm*
norm);
2882 void TH2::Streamer(
TBuffer &R__b)
2892 TH1::Streamer(R__b);
2919 if (fgDefaultSumw2) Sumw2();
2936 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
2950 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
2962 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
2974 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
2986 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3017 if (newval > -128 && newval < 128) {
fArray[bin] =
Char_t(newval);
return;}
3018 if (newval < -127)
fArray[bin] = -127;
3019 if (newval > 127)
fArray[bin] = 127;
3057 void TH2C::Streamer(
TBuffer &R__b)
3069 TH1::Streamer(R__b);
3070 TArrayC::Streamer(R__b);
3077 TH2::Streamer(R__b);
3078 TArrayC::Streamer(R__b);
3094 if (
this != &h1) ((
TH2C&)h1).
Copy(*
this);
3173 if (fgDefaultSumw2) Sumw2();
3190 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3204 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3216 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3228 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3240 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3271 if (newval > -32768 && newval < 32768) {
fArray[bin] =
Short_t(newval);
return;}
3272 if (newval < -32767)
fArray[bin] = -32767;
3273 if (newval > 32767)
fArray[bin] = 32767;
3311 void TH2S::Streamer(
TBuffer &R__b)
3323 TH1::Streamer(R__b);
3324 TArrayS::Streamer(R__b);
3331 TH2::Streamer(R__b);
3332 TArrayS::Streamer(R__b);
3348 if (
this != &h1) ((
TH2S&)h1).
Copy(*
this);
3427 if (fgDefaultSumw2) Sumw2();
3444 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3458 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3470 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3482 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3494 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3525 if (newval > -2147483647 && newval < 2147483647) {
fArray[bin] =
Int_t(newval);
return;}
3526 if (newval < -2147483647)
fArray[bin] = -2147483647;
3527 if (newval > 2147483647)
fArray[bin] = 2147483647;
3567 if (
this != &h1) ((
TH2I&)h1).
Copy(*
this);
3646 if (fgDefaultSumw2) Sumw2();
3663 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3677 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3689 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3701 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3713 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3724 :
TH2(
"TMatrixFBase",
"",m.GetNcols(),m.GetColLwb(),1+m.GetColUpb(),m.GetNrows(),m.GetRowLwb(),1+m.GetRowUpb())
3731 for (
Int_t i=ilow;i<=iup;i++) {
3732 for (
Int_t j=jlow;j<=jup;j++) {
3782 void TH2F::Streamer(
TBuffer &R__b)
3794 TH1::Streamer(R__b);
3795 TArrayF::Streamer(R__b);
3802 TH2::Streamer(R__b);
3803 TArrayF::Streamer(R__b);
3819 if (
this != &h1) ((
TH2F&)h1).
Copy(*
this);
3910 if (fgDefaultSumw2) Sumw2();
3927 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3941 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3953 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3965 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3977 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3988 :
TH2(
"TMatrixDBase",
"",m.GetNcols(),m.GetColLwb(),1+m.GetColUpb(),m.GetNrows(),m.GetRowLwb(),1+m.GetRowUpb())
3995 for (
Int_t i=ilow;i<=iup;i++) {
3996 for (
Int_t j=jlow;j<=jup;j++) {
4047 void TH2D::Streamer(
TBuffer &R__b)
4059 TH1::Streamer(R__b);
4060 TArrayD::Streamer(R__b);
4067 TH2::Streamer(R__b);
4068 TArrayD::Streamer(R__b);
4084 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 =.
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 c...
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.