Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

TH2.h

Go to the documentation of this file.
00001 // @(#)root/hist:$Name:  $:$Id: TH2.h,v 1.24 2003/04/19 16:59:26 brun Exp $
00002 // Author: Rene Brun   26/12/94
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TH2
00013 #define ROOT_TH2
00014 
00015 
00017 //                                                                      //
00018 // TH2                                                                  //
00019 //                                                                      //
00020 // 2-Dim histogram base class.                                          //
00021 //                                                                      //
00023 
00024 #ifndef ROOT_TH1
00025 #include "TH1.h"
00026 #endif
00027 
00028 class TProfile;
00029 class TMatrix;
00030 class TMatrixD;
00031 
00032 class TH2 : public TH1 {
00033 
00034 protected:
00035    Stat_t     fScalefactor;     //Scale factor
00036    Stat_t     fTsumwy;          //Total Sum of weight*Y
00037    Stat_t     fTsumwy2;         //Total Sum of weight*Y*Y
00038    Stat_t     fTsumwxy;         //Total Sum of weight*X*Y
00039 
00040    virtual Int_t    BufferFill(Axis_t, Stat_t) {return -2;} //may not use
00041    virtual Int_t    BufferFill(Axis_t x, Axis_t y, Stat_t w);
00042 
00043 public:
00044    TH2();
00045    TH2(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00046                                          ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00047    TH2(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00048                                          ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00049    TH2(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00050                                          ,Int_t nbinsy,const Double_t *ybins);
00051    TH2(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00052                                          ,Int_t nbinsy,const Double_t *ybins);
00053    TH2(const char *name,const char *title,Int_t nbinsx,const Float_t  *xbins
00054                                          ,Int_t nbinsy,const Float_t  *ybins);
00055    virtual ~TH2();
00056    virtual Int_t   BufferEmpty(Bool_t deleteBuffer=kFALSE);
00057    virtual void    Copy(TObject &hnew) const;
00058            Int_t   Fill(Axis_t) {return -1;} //MayNotUse
00059            Int_t   Fill(const char*, Stat_t) {return -1;} //MayNotUse
00060    virtual Int_t   Fill(Axis_t x, Axis_t y);
00061    virtual Int_t   Fill(Axis_t x, Axis_t y, Stat_t w);
00062    virtual Int_t   Fill(Axis_t x, const char *namey, Stat_t w);
00063    virtual Int_t   Fill(const char *namex, Axis_t y, Stat_t w);
00064    virtual Int_t   Fill(const char *namex, const char *namey, Stat_t w);
00065    virtual void    FillN(Int_t, const Axis_t *, const Double_t *, Int_t) {;} //MayNotUse
00066    virtual void    FillN(Int_t ntimes, const Axis_t *x, const Axis_t *y, const Double_t *w, Int_t stride=1);
00067    virtual void    FillRandom(const char *fname, Int_t ntimes=5000);
00068    virtual void    FillRandom(TH1 *h, Int_t ntimes=5000);
00069    virtual void    FitSlicesX(TF1 *f1=0,Int_t binmin=1, Int_t binmax=0, Int_t cut=0 ,Option_t *option="QNR"); // *MENU*
00070    virtual void    FitSlicesY(TF1 *f1=0,Int_t binmin=1, Int_t binmax=0, Int_t cut=0 ,Option_t *option="QNR"); // *MENU*
00071    virtual Stat_t  GetCorrelationFactor(Int_t axis1=1,Int_t axis2=2) const;
00072    virtual Stat_t  GetCovariance(Int_t axis1=1,Int_t axis2=2) const;
00073    virtual void    GetRandom2(Axis_t &x, Axis_t &y);
00074    virtual void    GetStats(Stat_t *stats) const;
00075    virtual Stat_t  Integral(Option_t *option="") const;
00076    virtual Stat_t  Integral(Int_t, Int_t, Option_t * ="") const {return 0;}
00077    virtual Stat_t  Integral(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2, Option_t *option="") const;
00078    virtual Stat_t  Integral(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Option_t * ="") const {return 0;}
00079    virtual Double_t KolmogorovTest(TH1 *h2, Option_t *option="") const;
00080    virtual Int_t   Merge(TCollection *list);
00081       TProfile    *ProfileX(const char *name="_pfx", Int_t firstybin=-1, Int_t lastybin=-1, Option_t *option="") const;   // *MENU*
00082       TProfile    *ProfileY(const char *name="_pfy", Int_t firstxbin=-1, Int_t lastxbin=-1, Option_t *option="") const ;   // *MENU*
00083           TH1D    *ProjectionX(const char *name="_px", Int_t firstybin=-1, Int_t lastybin=-1, Option_t *option="") const; // *MENU*
00084           TH1D    *ProjectionY(const char *name="_py", Int_t firstxbin=-1, Int_t lastxbin=-1, Option_t *option="") const; // *MENU*
00085    virtual void    PutStats(Stat_t *stats);
00086    virtual void    Reset(Option_t *option="");
00087 
00088    ClassDef(TH2,3)  //2-Dim histogram base class
00089 };
00090 
00091 
00092 //______________________________________________________________________________
00093 
00094 class TH2C : public TH2, public TArrayC {
00095 
00096 public:
00097    TH2C();
00098    TH2C(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00099                                 ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00100    TH2C(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00101                                           ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00102    TH2C(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00103                                           ,Int_t nbinsy,const Double_t *ybins);
00104    TH2C(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00105                                           ,Int_t nbinsy,const Double_t *ybins);
00106    TH2C(const char *name,const char *title,Int_t nbinsx,const Float_t  *xbins
00107                                           ,Int_t nbinsy,const Float_t  *ybins);
00108    TH2C(const TH2C &h2c);
00109    virtual ~TH2C();
00110    virtual void    AddBinContent(Int_t bin);
00111    virtual void    AddBinContent(Int_t bin, Stat_t w);
00112    virtual void    Copy(TObject &hnew) const;
00113    virtual TH1    *DrawCopy(Option_t *option="") const;
00114    virtual Stat_t  GetBinContent(Int_t bin) const;
00115    virtual Stat_t  GetBinContent(Int_t binx, Int_t biny) const {return GetBinContent(GetBin(binx,biny));}
00116    virtual Stat_t  GetBinContent(Int_t binx, Int_t biny, Int_t) const {return GetBinContent(GetBin(binx,biny));}
00117    virtual void    Reset(Option_t *option="");
00118    virtual void    SetBinContent(Int_t bin, Stat_t content);
00119    virtual void    SetBinContent(Int_t binx, Int_t biny, Stat_t content) {SetBinContent(GetBin(binx,biny),content);}
00120    virtual void    SetBinContent(Int_t binx, Int_t biny, Int_t, Stat_t content) {SetBinContent(GetBin(binx,biny),content);}
00121    virtual void    SetBinsLength(Int_t n=-1);
00122            TH2C&   operator=(const TH2C &h1);
00123    friend  TH2C    operator*(Float_t c1, TH2C &h1);
00124    friend  TH2C    operator*(TH2C &h1, Float_t c1) {return operator*(c1,h1);}
00125    friend  TH2C    operator+(TH2C &h1, TH2C &h2);
00126    friend  TH2C    operator-(TH2C &h1, TH2C &h2);
00127    friend  TH2C    operator*(TH2C &h1, TH2C &h2);
00128    friend  TH2C    operator/(TH2C &h1, TH2C &h2);
00129 
00130    ClassDef(TH2C,3)  //2-Dim histograms (one char per channel)
00131 };
00132 
00133 
00134 //______________________________________________________________________________
00135 
00136 class TH2S : public TH2, public TArrayS {
00137 
00138 public:
00139    TH2S();
00140    TH2S(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00141                                           ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00142    TH2S(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00143                                           ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00144    TH2S(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00145                                           ,Int_t nbinsy,const Double_t *ybins);
00146    TH2S(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00147                                           ,Int_t nbinsy,const Double_t *ybins);
00148    TH2S(const char *name,const char *title,Int_t nbinsx,const Float_t  *xbins
00149                                           ,Int_t nbinsy,const Float_t  *ybins);
00150    TH2S(const TH2S &h2s);
00151    virtual ~TH2S();
00152    virtual void    AddBinContent(Int_t bin);
00153    virtual void    AddBinContent(Int_t bin, Stat_t w);
00154    virtual void    Copy(TObject &hnew) const;
00155    virtual TH1    *DrawCopy(Option_t *option="") const;
00156    virtual Stat_t  GetBinContent(Int_t bin) const;
00157    virtual Stat_t  GetBinContent(Int_t binx, Int_t biny) const {return GetBinContent(GetBin(binx,biny));}
00158    virtual Stat_t  GetBinContent(Int_t binx, Int_t biny, Int_t) const {return GetBinContent(GetBin(binx,biny));}
00159    virtual void    Reset(Option_t *option="");
00160    virtual void    SetBinContent(Int_t bin, Stat_t content);
00161    virtual void    SetBinContent(Int_t binx, Int_t biny, Stat_t content) {SetBinContent(GetBin(binx,biny),content);}
00162    virtual void    SetBinContent(Int_t binx, Int_t biny, Int_t, Stat_t content) {SetBinContent(GetBin(binx,biny),content);}
00163    virtual void    SetBinsLength(Int_t n=-1);
00164            TH2S&   operator=(const TH2S &h1);
00165    friend  TH2S    operator*(Float_t c1, TH2S &h1);
00166    friend  TH2S    operator*(TH2S &h1, Float_t c1) {return operator*(c1,h1);}
00167    friend  TH2S    operator+(TH2S &h1, TH2S &h2);
00168    friend  TH2S    operator-(TH2S &h1, TH2S &h2);
00169    friend  TH2S    operator*(TH2S &h1, TH2S &h2);
00170    friend  TH2S    operator/(TH2S &h1, TH2S &h2);
00171 
00172    ClassDef(TH2S,3)  //2-Dim histograms (one short per channel)
00173 };
00174 
00175 
00176 //______________________________________________________________________________
00177 
00178 class TH2F : public TH2, public TArrayF {
00179 
00180 public:
00181    TH2F();
00182    TH2F(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00183                                           ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00184    TH2F(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00185                                           ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00186    TH2F(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00187                                           ,Int_t nbinsy,const Double_t *ybins);
00188    TH2F(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00189                                           ,Int_t nbinsy,const Double_t *ybins);
00190    TH2F(const char *name,const char *title,Int_t nbinsx,const Float_t  *xbins
00191                                           ,Int_t nbinsy,const Float_t  *ybins);
00192    TH2F(const TMatrix &m);
00193    TH2F(const TH2F &h2f);
00194    virtual ~TH2F();
00195    virtual void    AddBinContent(Int_t bin) {++fArray[bin];}
00196    virtual void    AddBinContent(Int_t bin, Stat_t w)
00197                                  {fArray[bin] += Float_t (w);}
00198    virtual void    Copy(TObject &hnew) const;
00199    virtual TH1    *DrawCopy(Option_t *option="") const;
00200    virtual Stat_t  GetBinContent(Int_t bin) const;
00201    virtual Stat_t  GetBinContent(Int_t binx, Int_t biny) const {return GetBinContent(GetBin(binx,biny));}
00202    virtual Stat_t  GetBinContent(Int_t binx, Int_t biny, Int_t) const {return GetBinContent(GetBin(binx,biny));}
00203    virtual void    Reset(Option_t *option="");
00204    virtual void    SetBinContent(Int_t bin, Stat_t content);
00205    virtual void    SetBinContent(Int_t binx, Int_t biny, Stat_t content) {SetBinContent(GetBin(binx,biny),content);}
00206    virtual void    SetBinContent(Int_t binx, Int_t biny, Int_t, Stat_t content) {SetBinContent(GetBin(binx,biny),content);}
00207    virtual void    SetBinsLength(Int_t n=-1);
00208            TH2F&   operator=(const TH2F &h1);
00209    friend  TH2F    operator*(Float_t c1, TH2F &h1);
00210    friend  TH2F    operator*(TH2F &h1, Float_t c1);
00211    friend  TH2F    operator+(TH2F &h1, TH2F &h2);
00212    friend  TH2F    operator-(TH2F &h1, TH2F &h2);
00213    friend  TH2F    operator*(TH2F &h1, TH2F &h2);
00214    friend  TH2F    operator/(TH2F &h1, TH2F &h2);
00215 
00216    ClassDef(TH2F,3)  //2-Dim histograms (one float per channel)
00217 };
00218 
00219 
00220 //______________________________________________________________________________
00221 
00222 class TH2D : public TH2, public TArrayD {
00223 
00224 public:
00225    TH2D();
00226    TH2D(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00227                                           ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00228    TH2D(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00229                                           ,Int_t nbinsy,Axis_t ylow,Axis_t yup);
00230    TH2D(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup
00231                                           ,Int_t nbinsy,const Double_t *ybins);
00232    TH2D(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
00233                                           ,Int_t nbinsy,const Double_t *ybins);
00234    TH2D(const char *name,const char *title,Int_t nbinsx,const Float_t  *xbins
00235                                           ,Int_t nbinsy,const Float_t  *ybins);
00236    TH2D(const TMatrixD &m);
00237    TH2D(const TH2D &h2d);
00238    virtual ~TH2D();
00239    virtual void    AddBinContent(Int_t bin) {++fArray[bin];}
00240    virtual void    AddBinContent(Int_t bin, Stat_t w)
00241                                  {fArray[bin] += Double_t (w);}
00242    virtual void    Copy(TObject &hnew) const;
00243    virtual TH1    *DrawCopy(Option_t *option="") const;
00244    virtual Stat_t  GetBinContent(Int_t bin) const;
00245    virtual Stat_t  GetBinContent(Int_t binx, Int_t biny) const {return GetBinContent(GetBin(binx,biny));}
00246    virtual Stat_t  GetBinContent(Int_t binx, Int_t biny, Int_t) const {return GetBinContent(GetBin(binx,biny));}
00247    virtual void    Reset(Option_t *option="");
00248    virtual void    SetBinContent(Int_t bin, Stat_t content);
00249    virtual void    SetBinContent(Int_t binx, Int_t biny, Stat_t content) {SetBinContent(GetBin(binx,biny),content);}
00250    virtual void    SetBinContent(Int_t binx, Int_t biny, Int_t, Stat_t content) {SetBinContent(GetBin(binx,biny),content);}
00251    virtual void    SetBinsLength(Int_t n=-1);
00252            TH2D&   operator=(const TH2D &h1);
00253    friend  TH2D    operator*(Float_t c1, TH2D &h1);
00254    friend  TH2D    operator*(TH2D &h1, Float_t c1) {return operator*(c1,h1);}
00255    friend  TH2D    operator+(TH2D &h1, TH2D &h2);
00256    friend  TH2D    operator-(TH2D &h1, TH2D &h2);
00257    friend  TH2D    operator*(TH2D &h1, TH2D &h2);
00258    friend  TH2D    operator/(TH2D &h1, TH2D &h2);
00259 
00260    ClassDef(TH2D,3)  //2-Dim histograms (one double per channel)
00261 };
00262 
00263 #endif
00264 

Generated on Thu Dec 18 14:52:20 2003 for ROOT by doxygen1.2.16