64 fTsumwy = fTsumwy2 = fTsumwxy = 0;
73 :
TH1(name,title,nbinsx,xlow,xup)
78 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
89 :
TH1(name,title,nbinsx,xbins)
94 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
105 :
TH1(name,title,nbinsx,xlow,xup)
110 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
122 :
TH1(name,title,nbinsx,xbins)
127 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
139 :
TH1(name,title,nbinsx,xbins)
144 if (nbinsy <= 0) {
Warning(
"TH2",
"nbinsy is <=0 - set to nbinsy = 1"); nbinsy = 1; }
185 if (nbentries == 0)
return 0;
186 if (nbentries < 0 && action == 0)
return 0;
190 nbentries = -nbentries;
205 for (
Int_t i=1;i<nbentries;i++) {
207 if (x < xmin) xmin =
x;
208 if (x > xmax) xmax =
x;
210 if (y < ymin) ymin =
y;
211 if (y > ymax) ymax =
y;
228 for (
Int_t i=0;i<nbentries;i++) {
229 Fill(buffer[3*i+2],buffer[3*i+3],buffer[3*i+1]);
256 nbentries = -nbentries;
294 Error(
"Fill",
"Invalid signature - do nothing");
318 Int_t binx, biny, bin;
322 if (binx <0 || biny <0)
return -1;
362 Int_t binx, biny, bin;
366 if (binx <0 || biny <0)
return -1;
406 Int_t binx, biny, bin;
410 if (binx <0 || biny <0)
return -1;
448 Int_t binx, biny, bin;
452 if (binx <0 || biny <0)
return -1;
491 Int_t binx, biny, bin;
495 if (binx <0 || biny <0)
return -1;
535 Int_t binx, biny, bin, i;
542 for (i=0;i<ntimes;i+=stride) {
555 for (i=ifirst;i<ntimes;i+=stride) {
559 if (binx <0 || biny <0)
continue;
599 Int_t bin, binx, biny, ibin, loop;
603 if (!fobj) {
Error(
"FillRandom",
"Unknown function: %s",fname);
return; }
604 TF2 *
f1 =
dynamic_cast<TF2*
>(fobj);
605 if (!f1) {
Error(
"FillRandom",
"Function: %s is not a TF2",fname);
return; }
615 for (biny=1;biny<=nbinsy;biny++) {
616 for (binx=1;binx<=nbinsx;binx++) {
619 integral[ibin] = integral[ibin-1] + fint;
624 if (integral[nbins] == 0 ) {
626 Error(
"FillRandom",
"Integral = zero");
return;
628 for (bin=1;bin<=
nbins;bin++) integral[bin] /= integral[nbins];
631 for (loop=0;loop<ntimes;loop++) {
635 binx = 1 + ibin - nbinsx*biny;
659 if (!h) {
Error(
"FillRandom",
"Null histogram");
return; }
661 Error(
"FillRandom",
"Histograms with different dimensions");
return;
669 for (loop=0;loop<ntimes;loop++) {
682 if (axis < 1 || axis > 2) {
683 Warning(
"FindFirstBinAbove",
"Invalid axis number : %d, axis x assumed\n",axis);
690 for (binx=1;binx<=nbinsx;binx++) {
691 for (biny=1;biny<=nbinsy;biny++) {
696 for (biny=1;biny<=nbinsy;biny++) {
697 for (binx=1;binx<=nbinsx;binx++) {
712 if (axis < 1 || axis > 2) {
713 Warning(
"FindLastBinAbove",
"Invalid axis number : %d, axis x assumed\n",axis);
720 for (binx=nbinsx;binx>=1;binx--) {
721 for (biny=1;biny<=nbinsy;biny++) {
726 for (biny=nbinsy;biny>=1;biny--) {
727 for (binx=1;binx<=nbinsx;binx++) {
745 if (firstbin < 0) firstbin = 0;
746 if (lastbin < 0 || lastbin > nbins + 1) lastbin = nbins + 1;
747 if (lastbin < firstbin) {firstbin = 0; lastbin = nbins + 1;}
757 Int_t nstep = ngroup;
762 f1 = (
TF1*)
gROOT->GetFunction(
"gaus");
763 if (f1 == 0) f1 =
new TF1(
"gaus",
"gaus",innerAxis.
GetXmin(),innerAxis.
GetXmax());
767 if (npar <= 0)
return;
779 char *
name =
new char[2000];
780 char *title =
new char[2000];
782 for (ipar=0;ipar<npar;ipar++) {
789 hlist[ipar] =
new TH1D(name,title, nbins,bins->
fArray);
793 (*arr)[ipar] = hlist[ipar];
801 hchi2 =
new TH1D(name,
"chisquare", nbins, bins->
fArray);
805 (*arr)[npar] = hchi2;
812 for (bin=firstbin;bin+ngroup-1<=lastbin;bin += nstep) {
818 if (hp == 0)
continue;
820 if (nentries == 0 || nentries < cut) {
delete hp;
continue;}
824 if (npfits > npar && npfits >= cut) {
825 Int_t binOn = bin + ngroup/2;
826 for (ipar=0;ipar<npar;ipar++) {
898 DoFitSlices(
true, f1, firstybin, lastybin, cut, option, arr);
963 DoFitSlices(
false, f1, firstxbin, lastxbin, cut, option, arr);
970 if (biny < 0) biny = 0;
971 if (biny > ofy) biny = ofy;
1003 Error(
"GetBinWithContent2",
"function is only valid for 2-D histograms");
1006 if (firstxbin < 0) firstxbin = 1;
1008 if (firstybin < 0) firstybin = 1;
1011 for (
Int_t j = firstybin; j <= lastybin; j++) {
1012 for (
Int_t i = firstxbin; i <= lastxbin; i++) {
1014 if (diff <= 0) {binx = i; biny=j;
return diff;}
1015 if (diff < curmax && diff <= maxdiff) {curmax = diff, binx=i; biny=j;}
1027 if (axis1 < 1 || axis2 < 1 || axis1 > 2 || axis2 > 2) {
1028 Error(
"GetCorrelationFactor",
"Wrong parameters");
1031 if (axis1 == axis2)
return 1;
1033 if (stddev1 == 0)
return 0;
1035 if (stddev2 == 0)
return 0;
1045 if (axis1 < 1 || axis2 < 1 || axis1 > 2 || axis2 > 2) {
1046 Error(
"GetCovariance",
"Wrong parameters");
1059 if (sumw == 0)
return 0;
1060 if (axis1 == 1 && axis2 == 1) {
1061 return TMath::Abs(sumwx2/sumw - sumwx/sumw*sumwx/sumw);
1063 if (axis1 == 2 && axis2 == 2) {
1064 return TMath::Abs(sumwy2/sumw - sumwy/sumw*sumwy/sumw);
1066 return sumwxy/sumw - sumwx/sumw*sumwy/sumw;
1088 if (integral == 0 ) { x = 0; y = 0;
return;}
1094 Int_t biny = ibin/nbinsx;
1095 Int_t binx = ibin - nbinsx*biny;
1142 if (firstBinX == 1) firstBinX = 0;
1146 if (firstBinY == 1) firstBinY = 0;
1150 for (
Int_t biny = firstBinY; biny <= lastBinY; ++biny) {
1152 for (
Int_t binx = firstBinX; binx <= lastBinX; ++binx) {
1204 return DoIntegral(firstxbin,lastxbin,firstybin,lastybin,-1,0,err,option);
1218 return DoIntegral(firstxbin,lastxbin,firstybin,lastybin,-1,0,error,option,
kTRUE);
1227 Error(
"Interpolate",
"This function must be called with 2 arguments for a TH2");
1247 Error(
"Interpolate",
"Cannot interpolate outside histogram domain.");
1289 if(bin_x1<1) bin_x1=1;
1293 if(bin_y1<1) bin_y1=1;
1305 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);
1315 Error(
"Interpolate",
"This function must be called with 2 arguments for a TH2");
1350 if (h2 == 0)
return 0;
1362 Error(
"KolmogorovTest",
"Histograms must be 2-D\n");
1368 Error(
"KolmogorovTest",
"Number of channels in X is different, %d and %d\n",ncx1,ncx2);
1372 Error(
"KolmogorovTest",
"Number of channels in Y is different, %d and %d\n",ncy1,ncy2);
1382 if (diff1 > difprec || diff2 > difprec) {
1383 Error(
"KolmogorovTest",
"histograms with different binning along X");
1388 if (diff1 > difprec || diff2 > difprec) {
1389 Error(
"KolmogorovTest",
"histograms with different binning along Y");
1394 Int_t ibeg = 1, jbeg = 1;
1395 Int_t iend = ncx1, jend = ncy1;
1396 if (opt.
Contains(
"U")) {ibeg = 0; jbeg = 0;}
1397 if (opt.
Contains(
"O")) {iend = ncx1+1; jend = ncy1+1;}
1404 for (i = ibeg; i <= iend; i++) {
1405 for (j = jbeg; j <= jend; j++) {
1418 Error(
"KolmogorovTest",
"Integral is zero for h1=%s\n",h1->
GetName());
1422 Error(
"KolmogorovTest",
"Integral is zero for h2=%s\n",h2->
GetName());
1430 esum1 = sum1 * sum1 / w1;
1435 esum2 = sum2 * sum2 / w2;
1439 if (afunc2 && afunc1) {
1440 Error(
"KolmogorovTest",
"Errors are zero for both histograms\n");
1449 for (i=ibeg;i<=iend;i++) {
1450 for (j=jbeg;j<=jend;j++) {
1460 for (j=jbeg;j<=jend;j++) {
1461 for (i=ibeg;i<=iend;i++) {
1472 else factnm =
TMath::Sqrt(esum1*sum2/(esum1+esum2));
1475 Double_t dfmax = 0.5*(dfmax1+dfmax2);
1482 if (opt.
Contains(
"N") && !(afunc1 || afunc2 ) ) {
1486 Double_t chi2 = d12*d12/(esum1+esum2);
1489 if (prb > 0 && prb2 > 0) prb = prb*prb2*(1-
TMath::Log(prb*prb2));
1495 printf(
" Kolmo Prob h1 = %s, sum1=%g\n",h1->
GetName(),sum1);
1496 printf(
" Kolmo Prob h2 = %s, sum2=%g\n",h2->
GetName(),sum2);
1497 printf(
" Kolmo Probabil = %f, Max Dist = %g\n",prb,dfmax);
1499 printf(
" Kolmo Probabil = %f for shape alone, =%f for normalisation alone\n",prb1,prb2);
1505 if(opt.
Contains(
"M"))
return dfmax;
1517 return Rebin2D(ngroup, 1, newname);
1527 return Rebin2D(1, ngroup, newname);
1569 Error(
"Rebin2D",
"Histogram must be TH2. This histogram has %d dimensions.",
GetDimension());
1572 if ((nxgroup <= 0) || (nxgroup > nxbins)) {
1573 Error(
"Rebin2D",
"Illegal value of nxgroup=%d",nxgroup);
1576 if ((nygroup <= 0) || (nygroup > nybins)) {
1577 Error(
"Rebin2D",
"Illegal value of nygroup=%d",nygroup);
1581 Int_t newxbins = nxbins / nxgroup;
1582 Int_t newybins = nybins / nygroup;
1583 Int_t newnx = newxbins + 2;
1584 Int_t newny = newybins + 2;
1598 if (newname && strlen(newname)) {
1603 bool resetStat =
false;
1606 if(newxbins * nxgroup != nxbins) {
1610 if(newybins * nygroup != nybins) {
1642 if (nxgroup != 1 || nygroup != 1) {
1649 hnew->
SetBins(newxbins, xbins, newybins, ybins);
1653 hnew->
SetBins(newxbins, xmin, xmax, newybins, ymin, ymax);
1658 if (oldErrors) hnew->
fSumw2[0] = 0;
1661 for(
Int_t binx = 1, oldbinx = 1; binx < newnx; ++binx, oldbinx += nxgroup){
1662 Double_t binContent = 0.0, binErrorSq = 0.0;
1663 for (
Int_t i = 0; i < nxgroup && (oldbinx + i) < nx; ++i) {
1664 Int_t bin = oldbinx + i;
1665 binContent += oldBins[bin];
1666 if(oldErrors) binErrorSq += oldErrors[bin];
1668 Int_t newbin = binx;
1670 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1674 for(
Int_t biny = 1, oldbiny = 1; biny < newny; ++biny, oldbiny += nygroup){
1675 Double_t binContent = 0.0, binErrorSq = 0.0;
1676 for (
Int_t j = 0; j < nygroup && (oldbiny + j) < ny; ++j) {
1677 Int_t bin = (oldbiny + j) * nx;
1678 binContent += oldBins[bin];
1679 if(oldErrors) binErrorSq += oldErrors[bin];
1681 Int_t newbin = biny * newnx;
1683 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1687 for (
Int_t binx = 1, oldbinx = 1; binx < newnx; ++binx, oldbinx += nxgroup) {
1688 for (
Int_t biny = 1, oldbiny = 1; biny < newny; ++biny, oldbiny += nygroup) {
1689 Double_t binContent = 0.0, binErrorSq = 0.0;
1690 for (
Int_t i = 0; i < nxgroup && (oldbinx + i) < nx; ++i) {
1691 for (
Int_t j = 0; j < nygroup && (oldbiny + j) < ny; ++j) {
1692 Int_t bin = oldbinx + i + (oldbiny + j) * nx;
1693 binContent += oldBins[bin];
1694 if (oldErrors) binErrorSq += oldErrors[bin];
1697 Int_t newbin = binx + biny * newnx;
1699 if (oldErrors) hnew->
fSumw2[newbin] = binErrorSq;
1732 if (oldErrors)
delete [] oldErrors;
1747 cut = opt(i1,i2-i1+1);
1750 bool originalRange = opt.
Contains(
"o");
1755 const char *expectedName = ( onX ?
"_pfx" :
"_pfy" );
1768 if (firstbin == 0 && lastbin == 0)
1774 if (firstbin < 0) firstbin = 1;
1775 if (lastbin < 0) lastbin = inN;
1776 if (lastbin > inN+1) lastbin = inN;
1779 char *pname = (
char*)name;
1780 if (name && strcmp(name, expectedName) == 0) {
1782 pname =
new char[nch];
1791 Error(
"DoProfile",
"Histogram with name %s must be a TProfile and is a %s",name,h1obj->
ClassName());
1800 if (xbins->
fN == 0) {
1801 if ( originalRange )
1810 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->
fArray[firstOutBin-1]);
1816 ((
TH2 *)
this)->GetPainter();
1822 if (bins->
fN == 0) {
1823 if ( originalRange )
1837 if (pname != name)
delete [] pname;
1849 if (useWeights) h1->
Sumw2();
1862 for (
Int_t outbin = 0; outbin <= outAxis.
GetNbins() + 1; ++outbin) {
1868 if (binOut <0)
continue;
1870 for (
Int_t inbin = firstbin ; inbin <= lastbin ; ++inbin) {
1872 if (onX) { binx = outbin; biny=inbin; }
1873 else { binx = inbin; biny=outbin; }
1885 if ( useWeights ) tmp = binSumw2.
fArray[binOut];
1908 if (!
gPad || !
gPad->FindObject(h1)) {
1913 if (padsav) padsav->
cd();
1964 return DoProfile(
true, name, firstybin, lastybin, option);
2014 return DoProfile(
false, name, firstxbin, lastxbin, option);
2024 const char *expectedName = 0;
2026 const TAxis* outAxis;
2027 const TAxis* inAxis;
2034 cut = opt(i1,i2-i1+1);
2037 bool originalRange = opt.
Contains(
"o");
2041 expectedName =
"_px";
2048 expectedName =
"_py";
2065 if (firstbin == 0 && lastbin == 0)
2071 if (firstbin < 0) firstbin = 0;
2072 if (lastbin < 0) lastbin = inNbin + 1;
2073 if (lastbin > inNbin+1) lastbin = inNbin + 1;
2076 char *pname = (
char*)name;
2077 if (name && strcmp(name,expectedName) == 0) {
2079 pname =
new char[nch];
2089 Error(
"DoProjection",
"Histogram with name %s must be a TH1D and is a %s",name,h1obj->
ClassName());
2098 if (xbins->
fN == 0) {
2099 if ( originalRange )
2108 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->
fArray[firstOutBin-1]);
2114 ((
TH2 *)
this)->GetPainter();
2120 if (bins->
fN == 0) {
2121 if ( originalRange )
2124 h1 =
new TH1D(pname,
GetTitle(),lastOutBin-firstOutBin+1,
2131 h1 =
new TH1D(pname,
GetTitle(),lastOutBin-firstOutBin+1,&bins->
fArray[firstOutBin-1]);
2135 if (pname != name)
delete [] pname;
2163 for (
Int_t outbin = 0; outbin <= outAxis->
GetNbins() + 1; ++outbin) {
2168 for (
Int_t inbin = firstbin ; inbin <= lastbin ; ++inbin) {
2170 if (onX) { binx = outbin; biny=inbin; }
2171 else { binx = inbin; biny=outbin; }
2178 if (computeErrors) {
2192 bool reuseStats =
false;
2193 if ( (
fgStatOverflows ==
false && firstbin == 1 && lastbin == inNbin ) ||
2194 (
fgStatOverflows ==
true && firstbin == 0 && lastbin == inNbin + 1 ) )
2198 double eps = 1.E-12;
2203 if (ncuts) reuseStats =
false;
2205 bool reuseEntries = reuseStats;
2207 reuseEntries &= (firstbin==0 && lastbin == inNbin+1);
2212 stats[2] = stats[4];
2213 stats[3] = stats[5];
2243 if (!
gPad || !
gPad->FindObject(h1)) {
2248 if (padsav) padsav->
cd();
2290 return DoProjection(
true, name, firstybin, lastybin, option);
2330 return DoProjection(
false, name, firstxbin, lastxbin, option);
2381 const TAxis *outAxis = 0;
2382 const TAxis *inAxis = 0;
2393 if (qname.
IsNull() || qname ==
"_qx" || qname ==
"_qy") {
2394 const char * qtype = (onX) ?
"qx" :
"qy";
2402 h1 =
dynamic_cast<TH1D*
>(h1obj);
2404 Error(
"DoQuantiles",
"Histogram with name %s must be a TH1D and is a %s",qname.
Data(),h1obj->
ClassName());
2421 h1->
SetBins(lastOutBin-firstOutBin+1,&xbins->fArray[firstOutBin-1]);
2428 for (
int ibin = inAxis->
GetFirst() ; ibin <= inAxis->
GetLast() ; ++ibin) {
2433 if (slice->
GetSum() == 0)
continue;
2444 error =
TMath::Sqrt( prob*(1.-prob)/ (n * f * f) );
2447 if (slice)
delete slice;
2475 if (bin < 0)
return;
2519 return (
TH1*)
gROOT->ProcessLineFast(
Form(
"TSpectrum2::StaticBackground((TH1*)0x%lx,%d,\"%s\")",
2520 (
ULong_t)
this, niter, option));
2535 return (
Int_t)
gROOT->ProcessLineFast(
Form(
"TSpectrum2::StaticSearch((TH1*)0x%lx,%g,\"%s\",%g)",
2536 (
ULong_t)
this, sigma, option, threshold));
2563 Double_t k5a[5][5] = { { 0, 0, 1, 0, 0 },
2567 { 0, 0, 1, 0, 0 } };
2568 Double_t k5b[5][5] = { { 0, 1, 2, 1, 0 },
2572 { 0, 1, 2, 1, 0 } };
2573 Double_t k3a[3][3] = { { 0, 1, 0 },
2578 Warning(
"Smooth",
"Currently only ntimes=1 is supported");
2585 if (opt.
Contains(
"k5b")) kernel = &k5b[0][0];
2587 kernel = &k3a[0][0];
2602 Int_t bufSize = (nx+2)*(ny+2);
2609 for (i=ifirst; i<=ilast; i++){
2610 for (j=jfirst; j<=jlast; j++){
2618 Int_t x_push = (ksize_x-1)/2;
2619 Int_t y_push = (ksize_y-1)/2;
2622 for (i=ifirst; i<=ilast; i++){
2623 for (j=jfirst; j<=jlast; j++) {
2632 if ( (xb >= 1) && (xb <= nx) && (yb >= 1) && (yb <= ny) ) {
2638 content += k*buf[bin];
2639 if (ebuf) error += k*k*ebuf[bin]*ebuf[bin];
2645 if ( norm != 0.0 ) {
2648 error /= (norm*
norm);
2664 void TH2::Streamer(
TBuffer &R__b)
2674 TH1::Streamer(R__b);
2718 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
2732 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
2744 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
2756 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
2768 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
2799 if (newval > -128 && newval < 128) {
fArray[bin] =
Char_t(newval);
return;}
2800 if (newval < -127)
fArray[bin] = -127;
2801 if (newval > 127)
fArray[bin] = 127;
2839 void TH2C::Streamer(
TBuffer &R__b)
2851 TH1::Streamer(R__b);
2852 TArrayC::Streamer(R__b);
2859 TH2::Streamer(R__b);
2860 TArrayC::Streamer(R__b);
2876 if (
this != &h1) ((
TH2C&)h1).
Copy(*
this);
2972 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
2986 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
2998 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3010 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3022 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3053 if (newval > -32768 && newval < 32768) {
fArray[bin] =
Short_t(newval);
return;}
3054 if (newval < -32767)
fArray[bin] = -32767;
3055 if (newval > 32767)
fArray[bin] = 32767;
3093 void TH2S::Streamer(
TBuffer &R__b)
3105 TH1::Streamer(R__b);
3106 TArrayS::Streamer(R__b);
3113 TH2::Streamer(R__b);
3114 TArrayS::Streamer(R__b);
3130 if (
this != &h1) ((
TH2S&)h1).
Copy(*
this);
3226 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3240 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3252 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3264 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3276 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3307 if (newval > -2147483647 && newval < 2147483647) {
fArray[bin] =
Int_t(newval);
return;}
3308 if (newval < -2147483647)
fArray[bin] = -2147483647;
3309 if (newval > 2147483647)
fArray[bin] = 2147483647;
3349 if (
this != &h1) ((
TH2I&)h1).
Copy(*
this);
3445 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3459 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3471 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3483 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3495 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3506 :
TH2(
"TMatrixFBase",
"",m.GetNcols(),m.GetColLwb(),1+m.GetColUpb(),m.GetNrows(),m.GetRowLwb(),1+m.GetRowUpb())
3513 for (
Int_t i=ilow;i<=iup;i++) {
3514 for (
Int_t j=jlow;j<=jup;j++) {
3564 void TH2F::Streamer(
TBuffer &R__b)
3576 TH1::Streamer(R__b);
3577 TArrayF::Streamer(R__b);
3584 TH2::Streamer(R__b);
3585 TArrayF::Streamer(R__b);
3601 if (
this != &h1) ((
TH2F&)h1).
Copy(*
this);
3709 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ylow,yup)
3723 :
TH2(name,title,nbinsx,xbins,nbinsy,ylow,yup)
3735 :
TH2(name,title,nbinsx,xlow,xup,nbinsy,ybins)
3747 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3759 :
TH2(name,title,nbinsx,xbins,nbinsy,ybins)
3770 :
TH2(
"TMatrixDBase",
"",m.GetNcols(),m.GetColLwb(),1+m.GetColUpb(),m.GetNrows(),m.GetRowLwb(),1+m.GetRowUpb())
3777 for (
Int_t i=ilow;i<=iup;i++) {
3778 for (
Int_t j=jlow;j<=jup;j++) {
3829 void TH2D::Streamer(
TBuffer &R__b)
3841 TH1::Streamer(R__b);
3842 TArrayD::Streamer(R__b);
3849 TH2::Streamer(R__b);
3850 TArrayD::Streamer(R__b);
3866 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.
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 const char * GetName() const
Returns name of object.
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 Float_t GetTickLength() const
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
virtual Double_t GetEffectiveEntries() const
Number of effective entries of the histogram.
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
Double_t Floor(Double_t x)
void Set(Int_t n)
Set size of this array to n chars.
friend TH2D operator+(TH2D &h1, TH2D &h2)
Operator +.
Int_t GetFirst() const
Return first bin on the axis i.e.
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 Int_t BufferEmpty(Int_t action=0)
Fill histogram with all entries in the buffer.
void Copy(TArrayI &array) const
friend TH2F operator/(TH2F &h1, TH2F &h2)
Operator /.
virtual void PutStats(Double_t *stats)
Replace current statistics with the values in array stats.
static Bool_t fgDefaultSumw2
!flag to call TH1::Sumw2 automatically at histogram creation time
TVirtualHistPainter * GetPainter(Option_t *option="")
Return pointer to painter.
Collectable string class.
virtual void SetDirectory(TDirectory *dir)
By default when an histogram is created, it is added to the list of histogram objects in the current ...
friend TH2C operator/(TH2C &h1, TH2C &h2)
Operator /.
virtual Float_t GetLabelOffset() const
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
Double_t KolmogorovProb(Double_t z)
Calculates the Kolmogorov distribution function,.
friend TH2C operator+(TH2C &h1, TH2C &h2)
Operator +.
friend TH2D operator-(TH2D &h1, TH2D &h2)
Operator -.
TString & ReplaceAll(const TString &s1, const TString &s2)
TAxis fYaxis
Y axis descriptor.
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 PutStats(Double_t *stats)
Replace current statistics with the values in array stats.
Bool_t TestBit(UInt_t f) 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.
friend TH2I operator-(TH2I &h1, TH2I &h2)
Operator -.
virtual Color_t GetAxisColor() const
static Bool_t fgStatOverflows
!flag to use under/overflows in statistics
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 Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
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.
void ToUpper()
Change string to upper case.
Buffer base class used for serializing objects.
TH1D * ProjectionX(const char *name="_px", Int_t firstybin=0, Int_t lastybin=-1, Option_t *option="") const
Project a 2-D histogram into a 1-D histogram along X.
virtual 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 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.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual ~TH2D()
Destructor.
virtual TH1D * DoQuantiles(bool onX, const char *name, Double_t prob) const
Implementation of quantiles for x or y.
virtual Double_t GetCorrelationFactor(Int_t axis1=1, Int_t axis2=2) const
Return correlation factor between axis1 and axis2.
tomato 2-D histogram with a byte per channel (see TH1 documentation)
Array of floats (32 bits per element).
virtual void SetTitleFont(Style_t font=62)
Set the title font.
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
void ToLower()
Change string to lower-case.
virtual ~TH2()
Destructor.
friend TH2C operator*(Float_t c1, TH2C &h1)
Operator *.
Histogram is forced to be not weighted even when the histogram is filled with weighted different than...
virtual Double_t GetParError(Int_t ipar) const
Return value of parameter number ipar.
TArrayD fSumw2
Array of sum of squares of weights.
friend TH2I operator/(TH2I &h1, TH2I &h2)
Operator /.
void Copy(TArrayC &array) const
virtual Float_t GetLabelSize() const
virtual Bool_t IsInside(Int_t x, Int_t y)=0
virtual Int_t FindGoodLimits(TH1 *h, Double_t xmin, Double_t xmax)
compute the best axis limits for the X axis.
virtual void Copy(TObject &hnew) const
Copy.
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 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...
friend TH2I operator*(Float_t c1, TH2I &h1)
Operator *.
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.
friend TH2D operator/(TH2D &h1, TH2D &h2)
Operator /.
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...
friend TH2I operator+(TH2I &h1, TH2I &h2)
Operator +.
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.
Double_t fTsumwx2
Total Sum of weight*X*X.
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 Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
virtual void SetLabelFont(Style_t font=62)
Set labels' font.
friend TH2S operator/(TH2S &h1, TH2S &h2)
Operator /.
virtual Style_t GetMarkerStyle() const
Return the marker style.
virtual Style_t GetTitleFont() const
virtual Int_t GetDimension() const
friend TH2C operator-(TH2C &h1, TH2C &h2)
Operator -.
static const double x2[5]
virtual const char * ClassName() const
Returns name of class to which the object belongs.
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 =.
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...
THashList * GetLabels() const
virtual void Copy(TObject &hnew) const
Copy.
virtual TArrayD * GetBinSumw2()
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 Double_t GetBinCenter(Int_t bin) const
Return center of bin.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
TH2S & operator=(const TH2S &h1)
Operator =.
friend TH2F operator-(TH2F &h1, TH2F &h2)
Operator -.
Ssiz_t First(char c) const
Find first occurrence of a character c.
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 Color_t GetLabelColor() const
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
Double_t fTsumwx
Total Sum of weight*X.
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.
virtual Int_t GetNdivisions() const
virtual void Copy(TObject &hnew) const
Copy.
void Set(Int_t n)
Set size of this array to n shorts.
virtual Double_t Rndm()
Machine independent random number generator.
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 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 const char * GetParName(Int_t ipar) const
virtual void ExtendAxis(Double_t x, TAxis *axis)
Histogram is resized along axis such that x is in the axis range.
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 void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual void Copy(TObject &hnew) const
Copy.
void Copy(TArrayF &array) const
virtual ~TH2C()
Destructor.
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
Int_t GetLast() const
Return last bin on the axis i.e.
const char * GetTitle() const
Returns title of object.
Service class for 2-Dim histogram classes.
Class to manage histogram axis.
virtual void GetStats(Double_t *stats) const
Fill the array stats from the contents of this histogram The array stats must be correctly dimensionn...
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)
Set the fill area color.
virtual Int_t GetNumberFitPoints() const
tomato 2-D histogram with a float per channel (see TH1 documentation)}
unsigned int r1[N_CITIES]
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
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...
static Int_t fgBufferSize
!default buffer size for automatic histograms
virtual void Copy(TObject &hnew) const
Copy.
Double_t fEntries
Number of entries.
virtual Float_t GetTitleOffset() const
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
char * Form(const char *fmt,...)
virtual void Copy(TObject &hnew) const
Copy this histogram structure to newth1.
Int_t Fill(const Double_t *v)
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual Color_t GetTitleColor() const
Double_t * fIntegral
!Integral of bins used by GetRandom
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...
A 2-Dim function with parameters.
R__EXTERN TRandom * gRandom
tomato 1-D histogram with a double per channel (see TH1 documentation)}
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 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 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 Double_t RetrieveBinContent(Int_t bin) const
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
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.
virtual Color_t GetLineColor() const
Return the line color.
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 Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
friend TH2D operator*(Float_t c1, TH2D &h1)
Operator *.
virtual void SetName(const char *name)
Change the name of this histogram.
TString & Remove(Ssiz_t pos)
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
virtual Int_t GetSumw2N() const
Double_t GetChisquare() const
Double_t fTsumw2
Total Sum of squares of weights.
friend TH2F operator+(TH2F &h1, TH2F &h2)
Operator +.
friend TH2S operator*(Float_t c1, TH2S &h1)
Operator *.
virtual TH2 * RebinX(Int_t ngroup=2, const char *newname="")
Rebin only the X axis see Rebin2D.
static const double x1[5]
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.
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.
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)
Double_t fTsumw
Total Sum of weights.
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...
virtual void Expand(Int_t newSize)
Expand or shrink the array to newSize elements.
virtual Color_t GetFillColor() const
Return the fill area color.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
virtual Double_t GetEntries() const
Return the current number of entries.
tomato 2-D histogram with a short per channel (see TH1 documentation)
virtual void SetBinLabel(Int_t bin, const char *label)
Set label for bin.
virtual Float_t GetTitleSize() const
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...
Array of doubles (64 bits per element).
friend TH2F operator*(Float_t c1, TH2F &h1)
Operator *.
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.
void SetBins(const Int_t *nbins, const Double_t *range)
Mother of all ROOT objects.
you should not use this method at all Int_t Int_t z
virtual TH1 * ShowBackground(Int_t niter=20, Option_t *option="same")
This function calculates the background spectrum in this histogram.
virtual ~TH2F()
Destructor.
virtual Int_t GetNpar() const
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width.
virtual Double_t Interpolate(Double_t x)
illegal for a TH2
TVirtualHistPainter * fPainter
!pointer to histogram painter
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
virtual ~TH2I()
Destructor.
Int_t fBufferSize
fBuffer size
virtual Double_t GetParameter(Int_t ipar) const
virtual Double_t GetBinErrorSqUnchecked(Int_t bin) 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...
virtual void Copy(TObject &hnew) const
Copy.
Short_t Max(Short_t a, Short_t b)
virtual void SetBinsLength(Int_t=-1)
virtual void Sumw2(Bool_t flag=kTRUE)
Create structure to store sum of squares of weights.
TObject * Clone(const char *newname=0) const
Make a complete copy of the underlying object.
Int_t fDimension
!Histogram dimension (1, 2 or 3 dim)
THist< 1, double, THistStatContent, THistStatUncertainty > TH1D
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
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.
virtual Double_t * GetParameters() const
void Set(Int_t n)
Set size of this array to n floats.
virtual void SetEntries(Double_t n)
TAxis fXaxis
X axis descriptor.
friend TH2S operator+(TH2S &h1, TH2S &h2)
Operator +.
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content.
virtual Color_t GetMarkerColor() const
Return the marker color.
virtual Int_t GetNbinsX() const
Double_t Sqrt(Double_t x)
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
tomato 2-D histogram with an 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.
virtual void Set(Int_t nbins, Double_t xmin, Double_t xmax)
Initialize axis with fix bins.
virtual Int_t GetBin(Int_t binx, Int_t biny, Int_t binz=0) const
Return Global bin number corresponding to binx,y,z.
Int_t Fill(Double_t)
Invalid Fill method.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Double_t * fBuffer
[fBufferSize] entry buffer
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.
friend TH2S operator-(TH2S &h1, TH2S &h2)
Operator -.
double norm(double *x, double *p)
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 GetStdDev(Int_t axis=1) const
Returns the Standard Deviation (Sigma).
void Set(Int_t n)
Set size of this array to n doubles.
void Copy(TArrayD &array) const
virtual TProfile * DoProfile(bool onX, const char *name, Int_t firstbin, Int_t lastbin, Option_t *option) const
Long64_t BinarySearch(Long64_t n, const T *array, T value)
const TArrayD * GetXbins() const
virtual void FillN(Int_t, const Double_t *, const Double_t *, Int_t)
Fill this histogram with an array x and weights w.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual Style_t GetLabelFont() const
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.
void Copy(TArrayS &array) const
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 Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
virtual const char * GetTitle() const
Returns title of object.
virtual Int_t GetNbinsY() const
virtual Double_t GetBinError(Int_t bin) const
Return value of error associated to bin number bin.
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...
TH2D & operator=(const TH2D &h1)
Operator =.
Int_t fNcells
number of bins(1D), cells (2D) +U/Overflows
virtual Double_t GetCovariance(Int_t axis1=1, Int_t axis2=2) const
Return covariance between axis1 and axis2.
tomato 2-D histogram with a double per channel (see TH1 documentation)}
const char * Data() const
Array of chars or bytes (8 bits per element).