75 fTsumwz = fTsumwz2 = 0;
111 :
TH2D(name,title,nx,xlow,xup,ny,ylow,yup)
121 :
TH2D(name,title,nx,xbins,ny,ylow,yup)
130 :
TH2D(name,title,nx,xlow,xup,ny,ybins)
139 :
TH2D(name,title,nx,xbins,ny,ybins)
155 TProfile2D::TProfile2D(
const char *
name,
const char *title,
Int_t nx,
Double_t xlow,
Double_t xup,
Int_t ny,
Double_t ylow,
Double_t yup,
Double_t zlow,
Double_t zup,
Option_t *option)
156 :
TH2D(name,title,nx,xlow,xup,ny,ylow,yup)
204 Error(
"Add",
"Function not implemented for TProfile2D");
215 Error(
"Add",
"Attempt to add a non-existing profile");
219 Error(
"Add",
"Attempt to add a non-profile2D object");
234 Error(
"Add",
"Attempt to add a non-existing profile");
238 Error(
"Add",
"Attempt to add a non-profile2D object");
242 Error(
"Add",
"Attempt to add a non-profile2D object");
278 if (!nbentries)
return 0;
281 if (action == 0)
return 0;
282 nbentries = -nbentries;
293 for (
Int_t i=1;i<nbentries;i++) {
295 if (x < xmin) xmin =
x;
296 if (x > xmax) xmax =
x;
298 if (y < ymin) ymin =
y;
299 if (y > ymax) ymax =
y;
316 for (
Int_t i=0;i<nbentries;i++) {
317 Fill(buffer[4*i+2],buffer[4*i+3],buffer[4*i+4],buffer[4*i+1]);
342 nbentries = -nbentries;
352 return Fill(x,y,z,w);
373 for (
int bin=0;bin<
fNcells;bin++) {
385 Fatal(
"Copy",
"Cannot copy a TProfile2D in a %s",obj.IsA()->
GetName());
397 Error(
"Divide",
"Function not implemented for TProfile2D");
412 Error(
"Divide",
"Attempt to divide a non-existing profile2D");
416 Error(
"Divide",
"Attempt to divide a non-profile2D object");
427 Error(
"Divide",
"Attempt to divide profiles with different number of bins");
432 Error(
"Divide",
"Attempt to divide profiles with different number of bins");
445 for (binx =0;binx<=nx+1;binx++) {
446 for (biny =0;biny<=ny+1;biny++) {
470 else fSumw2.
fArray[bin] = (e0*c1*c1 + e1*c0*c0)/(c12*c12);
478 Warning(
"Divide",
"Cannot preserve during the division of profiles the sum of bin weight square");
499 Error(
"Divide",
"Attempt to divide a non-existing profile2D");
503 Error(
"Divide",
"Attempt to divide a non-profile2D object");
508 Error(
"Divide",
"Attempt to divide a non-profile2D object");
519 Error(
"Divide",
"Attempt to divide profiles with different number of bins");
524 Error(
"Divide",
"Attempt to divide profiles with different number of bins");
528 Error(
"Divide",
"Coefficient of dividing profile cannot be zero");
546 for (binx =0;binx<=nx+1;binx++) {
547 for (biny =0;biny<=ny+1;biny++) {
551 if (b2) w = c1*b1/(c2*b2);
576 fSumw2.
fArray[bin] = ac1*ac2*(e1*b2*b2 + e2*b1*b1)/(b22*b22);
603 if (binx <0 || biny <0)
return -1;
642 if (binx <0 || biny <0)
return -1;
680 if (binx <0 || biny <0)
return -1;
717 if (binx <0 || biny <0)
return -1;
757 if (binx <0 || biny <0)
return -1;
789 if (bin < 0 || bin >=
fNcells)
return 0;
802 if (bin < 0 || bin >=
fNcells)
return 0;
880 Int_t bin, binx, biny;
883 for (bin=0;bin<9;bin++) stats[bin] = 0;
892 if (firstBinX == 1) firstBinX = 0;
896 if (firstBinY == 1) firstBinY = 0;
900 for (biny = firstBinY; biny <= lastBinY; biny++) {
902 for (binx = firstBinX; binx <= lastBinX; binx++) {
963 if (ax[0] ==
'y' || ax[0] ==
'Y') axis =
GetYaxis();
966 Warning(
"LabelsOption",
"Cannot sort. No labels");
999 if (sort < 0)
return;
1010 TIter nextold(labels);
1012 while ((obj=nextold())) {
1019 for (i=0;i<=
n;i++) pcont[i] = 0;
1020 for (i=1;i<
nx;i++) {
1021 for (j=1;j<
ny;j++) {
1035 obj = labold->
At(a[i]);
1039 for (i=1;i<
nx;i++) {
1040 for (j=1;j<
ny;j++) {
1043 fArray[bin] = sumw[a[i-1]+1+nx*j];
1047 fArray[bin] = sumw[i+nx*(a[j-1]+1)];
1055 const UInt_t kUsed = 1<<18;
1059 for (i=1;i<=
n;i++) {
1060 const char *label =
"zzzzzzzzzzzz";
1061 for (j=1;j<=
n;j++) {
1062 obj = labold->
At(j-1);
1064 if (obj->
TestBit(kUsed))
continue;
1066 if (strcmp(label,obj->
GetName()) < 0)
continue;
1077 for (i=1;i<=
n;i++) {
1078 obj = labels->
At(i-1);
1082 for (i=0;i<
nx;i++) {
1083 for (j=0;j<
ny;j++) {
1090 for (i=0;i<
nx;i++) {
1091 for (j=0;j<
ny;j++) {
1094 fArray[bin] = sumw[a[i]+nx*j];
1098 fArray[bin] = sumw[i+nx*a[j]];
1107 if (sumw)
delete [] sumw;
1108 if (errors)
delete [] errors;
1109 if (ent)
delete [] ent;
1136 Error(
"Multiply",
"Function not implemented for TProfile2D");
1149 Error(
"Multiply",
"Multiplication of profile2D histograms not implemented");
1163 Error(
"Multiply",
"Multiplication of profile2D histograms not implemented");
1201 if (pname.
IsNull() || pname ==
"_pxy")
1210 if (xbins->
fN == 0 && ybins->
fN == 0) {
1212 }
else if (xbins->
fN == 0) {
1214 }
else if (ybins->
fN == 0) {
1227 if (computeErrors || binWeight || (binEntries &&
fBinSumw2.
fN) ) h1->
Sumw2();
1230 Int_t bin,binx, biny;
1232 for (binx =0;binx<=nx+1;binx++) {
1233 for (biny =0;biny<=ny+1;biny++) {
1278 return DoProfile(
true, name, firstybin, lastybin, option);
1301 return DoProfile(
false, name, firstxbin, lastxbin, option);
1311 bool originalRange = opt.
Contains(
"o");
1313 TString expectedName = ( onX ?
"_pfx" :
"_pfy" );
1316 if (pname.
IsNull() || name == expectedName)
1326 if (bins->
fN == 0) {
1350 TString opt1 = (originalRange) ?
"o" :
"";
1351 TH1D * h1W = (onX) ? h2dW->
ProjectionX(
"h1temp-W",firstbin,lastbin,opt1) : h2dW->
ProjectionY(
"h1temp-W",firstbin,lastbin,opt1);
1352 TH1D * h1N = (onX) ? h2dN->
ProjectionX(
"h1temp-N",firstbin,lastbin,opt1) : h2dN->
ProjectionY(
"h1temp-N",firstbin,lastbin,opt1);
1360 for (
int i = 0; i < p1->
fN ; ++i) {
1459 if((nxgroup != 1) || (nygroup != 1)){
1466 if ((nxgroup <= 0) || (nxgroup > nxbins)) {
1467 Error(
"Rebin",
"Illegal value of nxgroup=%d",nxgroup);
1470 if ((nygroup <= 0) || (nygroup > nybins)) {
1471 Error(
"Rebin",
"Illegal value of nygroup=%d",nygroup);
1475 Int_t newxbins = nxbins/nxgroup;
1476 Int_t newybins = nybins/nygroup;
1479 if(newxbins*nxgroup != nxbins) {
1480 Warning(
"Rebin",
"nxgroup=%d should be an exact divider of nxbins=%d",nxgroup,nxbins);
1482 if(newybins*nygroup != nybins) {
1483 Warning(
"Rebin",
"nygroup=%d should be an exact divider of nybins=%d",nygroup,nybins);
1495 for(
Int_t ibin=0; ibin < (nxbins+2)*(nybins+2); ibin++){
1496 oldBins[ibin] = cu1[ibin];
1497 oldCount[ibin] = en1[ibin];
1498 oldErrors[ibin] = er1[ibin];
1499 if (ew1 &&
fBinSumw2.
fN) oldBinw2[ibin] = ew1[ibin];
1504 if(newname && strlen(newname) > 0) {
1510 if(newxbins*nxgroup != nxbins) {
1514 if(newybins*nygroup != nybins) {
1523 for(
Int_t i=0; i < newxbins+1; i++)
1525 for(
Int_t j=0; j < newybins+1; j++)
1527 hnew->
SetBins(newxbins,xbins,newybins,ybins);
1533 hnew->
SetBins(newxbins,xmin,xmax,newybins,ymin,ymax);
1541 Double_t binContent, binCount, binError, binSumw2;
1548 for(
Int_t xbin = 1; xbin <= newxbins; xbin++){
1550 for(
Int_t ybin = 1; ybin <= newybins; ybin++){
1555 for(
Int_t i=0; i < nxgroup; i++){
1556 if(oldxbin + i > nxbins)
break;
1557 for(
Int_t j=0; j < nygroup; j++){
1558 if(oldybin + j > nybins)
break;
1559 bin = oldxbin + i + (nxbins+2)*(oldybin+j);
1560 binContent += oldBins[bin];
1561 binCount += oldCount[bin];
1562 binError += oldErrors[bin];
1566 bin = xbin + (newxbins + 2)*ybin;
1567 cu2[bin] = binContent;
1568 er2[bin] = binError;
1569 en2[bin] = binCount;
1577 cu2[0] = oldBins[0];
1578 er2[0] = oldErrors[0];
1579 en2[0] = oldCount[0];
1587 for(
Int_t i=oldxbin; i <= nxbins+1; i++){
1588 for(
Int_t j=oldybin; j <= nybins+1; j++){
1590 bin = i + (nxbins+2)*j;
1591 binContent += oldBins[bin];
1592 binCount += oldCount[bin];
1593 binError += oldErrors[bin];
1597 bin = (newxbins+2)*(newybins+2)-1;
1598 cu2[bin] = binContent;
1599 er2[bin] = binError;
1600 en2[bin] = binCount;
1607 for(
Int_t i=oldxbin; i <= nxbins+1; i++){
1609 binContent += oldBins[bin];
1610 binCount += oldCount[bin];
1611 binError += oldErrors[bin];
1615 cu2[bin] = binContent;
1616 er2[bin] = binError;
1617 en2[bin] = binCount;
1624 for(
Int_t i=oldybin; i <= nybins+1; i++){
1625 bin = i*(nxbins + 2);
1626 binContent += oldBins[bin];
1627 binCount += oldCount[bin];
1628 binError += oldErrors[bin];
1631 bin = (newxbins + 2)*(newybins + 1);
1632 cu2[bin] = binContent;
1633 er2[bin] = binError;
1634 en2[bin] = binCount;
1637 Double_t binContentuf, binCountuf, binErroruf, binSumw2uf;
1638 Double_t binContentof, binCountof, binErrorof, binSumw2of;
1641 for(
Int_t xbin = 1; xbin <= newxbins; xbin++){
1650 for(
Int_t i = 0; i < nxgroup; i++){
1652 ufbin = (oldxbin2 + i);
1653 binContentuf += oldBins[ufbin];
1654 binCountuf += oldCount[ufbin];
1655 binErroruf += oldErrors[ufbin];
1657 for(
Int_t j = oldybin; j <= nybins+1; j++)
1659 ofbin = ufbin + j*(nxbins + 2);
1660 binContentof += oldBins[ofbin];
1661 binCountof += oldCount[ofbin];
1662 binErrorof += oldErrors[ofbin];
1668 ofbin = ufbin + (newybins + 1)*(newxbins + 2);
1669 cu2[ufbin] = binContentuf;
1670 er2[ufbin] = binErroruf;
1671 en2[ufbin] = binCountuf;
1673 cu2[ofbin] = binContentof;
1674 er2[ofbin] = binErrorof;
1675 en2[ofbin] = binCountof;
1678 oldxbin2 += nxgroup;
1682 for(
Int_t ybin = 1; ybin <= newybins; ybin++){
1691 for(
Int_t i = 0; i < nygroup; i++){
1693 ufbin = (oldybin2 + i)*(nxbins+2);
1694 binContentuf += oldBins[ufbin];
1695 binCountuf += oldCount[ufbin];
1696 binErroruf += oldErrors[ufbin];
1698 for(
Int_t j = oldxbin; j <= nxbins+1; j++)
1701 binContentof += oldBins[ofbin];
1702 binCountof += oldCount[ofbin];
1703 binErrorof += oldErrors[ofbin];
1708 ufbin = ybin * (newxbins + 2);
1709 ofbin = newxbins + 1 + ufbin;
1710 cu2[ufbin] = binContentuf;
1711 er2[ufbin] = binErroruf;
1712 en2[ufbin] = binCountuf;
1714 cu2[ofbin] = binContentof;
1715 er2[ofbin] = binErrorof;
1716 en2[ofbin] = binCountof;
1719 oldybin2 += nygroup;
1724 delete [] oldErrors;
1725 if (oldBinw2)
delete [] oldBinw2;
1731 if((newname) && (strlen(newname) > 0))
1743 return Rebin2D(ngroup,1,newname);
1751 return Rebin2D(1,ngroup,newname);
1765 out <<
" "<<std::endl;
1778 out <<
");" << std::endl;
1783 for (bin=0;bin<
fNcells;bin++) {
1786 out<<
" "<<
GetName()<<
"->SetBinEntries("<<bin<<
","<<bi<<
");"<<std::endl;
1790 for (bin=0;bin<
fNcells;bin++) {
1793 out<<
" "<<
GetName()<<
"->SetBinContent("<<bin<<
","<<bc<<
");"<<std::endl;
1798 for (bin=0;bin<
fNcells;bin++) {
1801 out<<
" "<<
GetName()<<
"->SetBinError("<<bin<<
","<<be<<
");"<<std::endl;
1869 if (buffersize <= 0) {
1873 if (buffersize < 100) buffersize = 100;
1907 void TProfile2D::Streamer(
TBuffer &R__b)
1917 TH2D::Streamer(R__b);
1924 R__b >> zmin;
fZmin = zmin;
1925 R__b >> zmax;
fZmax = zmax;
TArrayD()
Default TArrayD ctor.
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
virtual Long64_t Merge(TCollection *list)
Merge all histograms in the collection in this histogram.
virtual Double_t GetBinEntries(Int_t bin) const
Return bin entries of a Profile2D histogram.
virtual const char * GetName() const
Returns name of object.
static void SetBinEntries(T *p, Int_t bin, Double_t w)
static void Scale(T *p, Double_t c1, Option_t *option)
virtual Double_t GetEffectiveEntries() const
Number of effective entries of the histogram.
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
Int_t GetFirst() const
Return first bin on the axis i.e.
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 corr...
static Double_t GetBinError(T *p, Int_t bin)
virtual Double_t GetBinError(Int_t bin) const
-*Return bin error of a Profile2D histogram
virtual void SetDirectory(TDirectory *dir)
By default when an histogram is created, it is added to the list of histogram objects in the current ...
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
virtual void ExtendAxis(Double_t x, TAxis *axis)
Profile histogram is resized along axis such that x is in the axis range.
TProfile * ProfileY(const char *name="_pfy", Int_t firstxbin=0, Int_t lastxbin=-1, Option_t *option="") const
*-*Project a 2-D histogram into a profile histogram along X *-* =====================================...
Option_t * GetErrorOption() const
-*Return option to compute profile2D errors *-* ========================================= ...
TAxis fYaxis
Y axis descriptor.
static void SetErrorOption(T *p, Option_t *opt)
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.
const Double_t * GetArray() const
Bool_t TestBit(UInt_t f) const
virtual void SetBins(Int_t nx, Double_t xmin, Double_t xmax)
Redefine x axis parameters.
static void LabelsInflate(T *p, Option_t *)
static Bool_t fgStatOverflows
!flag to use under/overflows in statistics
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
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.
static THLimitsFinder * GetLimitsFinder()
Return pointer to the current finder.
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
virtual TProfile2D * RebinY(Int_t ngroup=2, const char *newname="")
Rebin only the Y axis see Rebin2D.
Short_t Min(Short_t a, Short_t b)
void ToLower()
Change string to lower-case.
virtual TProfile2D * Rebin2D(Int_t nxgroup=2, Int_t nygroup=2, const char *newname="")
Rebin this histogram grouping nxgroup/nygroup bins along the xaxis/yaxis together.
TArrayD fSumw2
Array of sum of squares of weights.
virtual ~TProfile2D()
Default destructor for Profile2D histograms.
virtual Int_t FindGoodLimits(TH1 *h, Double_t xmin, Double_t xmax)
compute the best axis limits for the X axis.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive as a C++ statement(s) on output stream out.
virtual Bool_t Multiply(TF1 *h1, Double_t c1=1)
Performs the operation: this = this*c1*f1.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Double_t fTsumwx2
Total Sum of weight*X*X.
virtual Bool_t CanExtendAllAxes() const
Returns true if all axes are extendable.
Histogram is forced to be not weighted even when the histogram is filled with weighted different than...
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
static void BuildArray(T *p)
static Bool_t fgApproximate
Int_t Fill(const Double_t *v)
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual Bool_t Divide(TF1 *h1, Double_t c1=1)
Performs the operation: this = this/(c1*f1) This function is not implemented.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
void BuildOptions(Double_t zmin, Double_t zmax, Option_t *option)
Set Profile2D histogram structure and options.
virtual Double_t GetBinContent(Int_t bin) const
Return bin content of a Profile2D histogram.
THashList * GetLabels() const
virtual void SetErrorOption(Option_t *option="")
Set option to compute profile2D errors The computation of the bin errors is based on the parameter op...
virtual TArrayD * GetBinSumw2()
static double p2(double t, double a, double b, double c)
static void LabelsDeflate(T *p, Option_t *)
static void Approximate(Bool_t approx=kTRUE)
static function set the fgApproximate flag.
virtual Double_t GetBinCenter(Int_t bin) const
Return center of bin.
void Sort(Index n, const Element *a, Index *index, Bool_t down=kTRUE)
static T * ExtendAxis(T *p, Double_t x, TAxis *axis)
virtual void LabelsDeflate(Option_t *axis="X")
Reduce the number of bins for this axis to the number of bins having a label.
virtual TArrayD * GetSumw2()
virtual void SetBinError(Int_t bin, Double_t error)
See convention for numbering bins in TH1::GetBin.
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this profile2D by a constant c1.
Double_t fTsumwx
Total Sum of weight*X.
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
void Clear(Option_t *option="")
Remove all objects from the list.
virtual Bool_t Add(TF1 *h1, Double_t c1=1, Option_t *option="")
Performs the operation: this = this + c1*f1.
Int_t GetLast() const
Return last bin on the axis i.e.
Class to manage histogram axis.
TH2D * ProjectionXY(const char *name="_pxy", Option_t *option="e") const
*-*Project this profile2D into a 2-D histogram along X,Y -* *-* =====================================...
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Collection abstract base class.
virtual Int_t BufferEmpty(Int_t action=0)
Fill histogram with all entries in the buffer.
static Int_t fgBufferSize
!default buffer size for automatic histograms
virtual void Copy(TObject &hnew) const
Copy a Profile2D histogram to a new profile2D histogram*.
virtual void GetStats(Double_t *stats) const
fill the array stats from the contents of this profile The array stats must be correctly dimensionned...
virtual void Copy(TObject &hnew) const
Copy.
virtual void PutStats(Double_t *stats)
Replace current statistics with the values in array stats.
Double_t fEntries
Number of entries.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual TProfile2D * RebinX(Int_t ngroup=2, const char *newname="")
Rebin only the X axis see Rebin2D.
virtual void LabelsOption(Option_t *option="h", Option_t *axis="X")
Set option(s) to draw axis with labels option = "a" sort by alphabetic order = ">" sort by decreasing...
static double p1(double t, double a, double b)
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
virtual void SetBuffer(Int_t buffersize, Option_t *option="")
set the buffer size in units of 8 bytes (double)
virtual void LabelsInflate(Option_t *axis="X")
Double the number of bins for axis.
tomato 1-D histogram with a double per channel (see TH1 documentation)}
TProfile2D()
Default constructor for Profile2D histograms.
virtual Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
static Bool_t Add(T *p, const TH1 *h1, const TH1 *h2, Double_t c1, Double_t c2=1)
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
Double_t fTsumw2
Total Sum of squares of weights.
TProfile * ProfileX(const char *name="_pfx", Int_t firstybin=0, Int_t lastybin=-1, Option_t *option="") const
*-*Project a 2-D histogram into a profile histogram along X *-* =====================================...
virtual Int_t BufferFill(Double_t, Double_t)
accumulate arguments in buffer.
virtual void SavePrimitiveHelp(std::ostream &out, const char *hname, Option_t *option="")
Helper function for the SavePrimitive functions from TH1 or classes derived from TH1, eg TProfile, TProfile2D.
virtual Double_t GetBinEffectiveEntries(Int_t bin)
Return bin effective entries for a weighted filled Profile histogram.
Double_t fTsumw
Total Sum of weights.
static Double_t GetBinEffectiveEntries(T *p, Int_t bin)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual void SetBinEntries(Int_t bin, Double_t w)
Set the number of entries in bin -.
Profile2D histograms are used to display the mean value of Z and its RMS for each cell in X...
Array of doubles (64 bits per element).
Mother of all ROOT objects.
virtual void SetBinEntries(Int_t bin, Double_t w)
Set the number of entries in bin.
you should not use this method at all Int_t Int_t z
virtual void Add(TObject *obj)
Int_t fBufferSize
fBuffer size
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.
virtual void SetEntries(Double_t n)
TAxis fXaxis
X axis descriptor.
static void Sumw2(T *p, Bool_t flag)
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content.
virtual Int_t GetNbinsX() const
Double_t Sqrt(Double_t x)
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
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...
virtual const char * GetName() const
Returns name of object.
virtual Int_t GetSize() const
virtual Int_t GetBin(Int_t binx, Int_t biny, Int_t binz=0) const
Return Global bin number corresponding to binx,y,z.
void SetBins(const Int_t *nbins, const Double_t *range)
Double_t * fBuffer
[fBufferSize] entry buffer
void Set(Int_t n)
Set size of this array to n doubles.
virtual TProfile * DoProfile(bool onX, const char *name, Int_t firstbin, Int_t lastbin, Option_t *option) const
implementation of ProfileX or ProfileY for a TProfile2D Do correctly the combination of the bin avera...
Double_t fTsumwz
True when TProfile2D::Scale is called.
void Copy(TArrayD &array) const
static Long64_t Merge(T *p, TCollection *list)
const TArrayD * GetXbins() const
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
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
Int_t fNcells
number of bins(1D), cells (2D) +U/Overflows
tomato 2-D histogram with a double per channel (see TH1 documentation)}