#ifndef ROOT_TH2 #define ROOT_TH2 //+SEQ,CopyRight,T=NOINCLUDE. ////////////////////////////////////////////////////////////////////////// // // // TH2 // // // // 2-Dim histogram base class. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_TH1 //*KEEP,TH1. #include "TH1.h" //*KEND. #endif class TH2 { protected: Stat_t fScalefactor; //Scale factor Stat_t fTsumwy; //Total Sum of weight*Y Stat_t fTsumwy2; //Total Sum of weight*Y*Y Stat_t fTsumwxy; //Total Sum of weight*X*Y virtual void Copy20(TH2 &hnew); virtual void Fill20(Axis_t x, Axis_t y); virtual void Fill20(Axis_t x, Axis_t y, Stat_t w); public: TH2(); virtual ~TH2(); ClassDef(TH2,1) //2-Dim histogram base class }; //______________________________________________________________________________ class TH2C : public TH1C, public TH2 { private: Int_t Fill(Axis_t) { MayNotUse("Fill(Axis_t)"); return -1;} Int_t Fill(Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Stat_t)"); return -1; } Int_t Fill(Axis_t, Axis_t, Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Axis_t, Axis_t, Stat_t)"); return -1; } public: TH2C(); TH2C(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t xlow,Axis_t xup ,Int_t nbinsy,Axis_t ylow,Axis_t yup); TH2C(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t *xbins ,Int_t nbinsy,Axis_t ylow,Axis_t yup); TH2C(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t xlow,Axis_t xup ,Int_t nbinsy,Axis_t *ybins); TH2C(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t *xbins ,Int_t nbinsy,Axis_t *ybins); TH2C(const TH2C &h2c); virtual ~TH2C(); virtual void Copy(TObject &hnew); virtual TH1 *DrawCopy(Option_t *option=""); virtual Int_t Fill(Axis_t x, Axis_t y); virtual Int_t Fill(Axis_t x, Axis_t y, Stat_t w); virtual Stat_t GetCorrelationFactor(Int_t axis1=1,Int_t axis2=2); virtual Stat_t GetCovariance(Int_t axis1=1,Int_t axis2=2); virtual void GetStats(Stat_t *stats); virtual void Reset(Option_t *option=""); TH2C& operator=(const TH2C &h1); friend TH2C operator*(Float_t c1, TH2C &h1); friend TH2C operator*(TH2C &h1, Float_t c1) {return operator*(c1,h1);} friend TH2C operator+(TH2C &h1, TH2C &h2); friend TH2C operator-(TH2C &h1, TH2C &h2); friend TH2C operator*(TH2C &h1, TH2C &h2); friend TH2C operator/(TH2C &h1, TH2C &h2); ClassDef(TH2C,1) //2-Dim histograms (one char per channel) }; //______________________________________________________________________________ class TH2S : public TH1S, public TH2 { private: Int_t Fill(Axis_t) { MayNotUse("Fill(Axis_t)"); return -1; } Int_t Fill(Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Stat_t)"); return -1; } Int_t Fill(Axis_t, Axis_t, Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Axis_t, Axis_t, Stat_t)"); return -1; } public: TH2S(); TH2S(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t xlow,Axis_t xup ,Int_t nbinsy,Axis_t ylow,Axis_t yup); TH2S(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t *xbins ,Int_t nbinsy,Axis_t ylow,Axis_t yup); TH2S(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t xlow,Axis_t xup ,Int_t nbinsy,Axis_t *ybins); TH2S(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t *xbins ,Int_t nbinsy,Axis_t *ybins); TH2S(const TH2S &h2s); virtual ~TH2S(); virtual void Copy(TObject &hnew); virtual TH1 *DrawCopy(Option_t *option=""); virtual Int_t Fill(Axis_t x, Axis_t y); virtual Int_t Fill(Axis_t x, Axis_t y, Stat_t w); virtual Stat_t GetCorrelationFactor(Int_t axis1=1,Int_t axis2=2); virtual Stat_t GetCovariance(Int_t axis1=1,Int_t axis2=2); virtual void GetStats(Stat_t *stats); virtual void Reset(Option_t *option=""); TH2S& operator=(const TH2S &h1); friend TH2S operator*(Float_t c1, TH2S &h1); friend TH2S operator*(TH2S &h1, Float_t c1) {return operator*(c1,h1);} friend TH2S operator+(TH2S &h1, TH2S &h2); friend TH2S operator-(TH2S &h1, TH2S &h2); friend TH2S operator*(TH2S &h1, TH2S &h2); friend TH2S operator/(TH2S &h1, TH2S &h2); ClassDef(TH2S,1) //2-Dim histograms (one short per channel) }; //______________________________________________________________________________ class TH2F : public TH1F, public TH2 { private: Int_t Fill(Axis_t) { MayNotUse("Fill(Axis_t)"); return -1; } Int_t Fill(Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Stat_t)"); return -1; } Int_t Fill(Axis_t, Axis_t, Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Axis_t, Axis_t, Stat_t)"); return -1; } public: TH2F(); TH2F(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t xlow,Axis_t xup ,Int_t nbinsy,Axis_t ylow,Axis_t yup); TH2F(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t *xbins ,Int_t nbinsy,Axis_t ylow,Axis_t yup); TH2F(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t xlow,Axis_t xup ,Int_t nbinsy,Axis_t *ybins); TH2F(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t *xbins ,Int_t nbinsy,Axis_t *ybins); TH2F(const TH2F &h2f); virtual ~TH2F(); virtual void Copy(TObject &hnew); virtual TH1 *DrawCopy(Option_t *option=""); virtual Int_t Fill(Axis_t x, Axis_t y); virtual Int_t Fill(Axis_t x, Axis_t y, Stat_t w); virtual Stat_t GetCorrelationFactor(Int_t axis1=1,Int_t axis2=2); virtual Stat_t GetCovariance(Int_t axis1=1,Int_t axis2=2); virtual void GetStats(Stat_t *stats); virtual void Reset(Option_t *option=""); TH2F& operator=(const TH2F &h1); friend TH2F operator*(Float_t c1, TH2F &h1); friend TH2F operator*(TH2F &h1, Float_t c1); friend TH2F operator+(TH2F &h1, TH2F &h2); friend TH2F operator-(TH2F &h1, TH2F &h2); friend TH2F operator*(TH2F &h1, TH2F &h2); friend TH2F operator/(TH2F &h1, TH2F &h2); ClassDef(TH2F,1) //2-Dim histograms (one float per channel) }; //______________________________________________________________________________ class TH2D : public TH1D, public TH2 { private: Int_t Fill(Axis_t) { MayNotUse("Fill(Axis_t)"); return -1; } Int_t Fill(Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Stat_t)"); return -1; } Int_t Fill(Axis_t, Axis_t, Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Axis_t, Axis_t, Stat_t)"); return -1; } public: TH2D(); TH2D(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t xlow,Axis_t xup ,Int_t nbinsy,Axis_t ylow,Axis_t yup); TH2D(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t *xbins ,Int_t nbinsy,Axis_t ylow,Axis_t yup); TH2D(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t xlow,Axis_t xup ,Int_t nbinsy,Axis_t *ybins); TH2D(const Text_t *name,const Text_t *title,Int_t nbinsx,Axis_t *xbins ,Int_t nbinsy,Axis_t *ybins); TH2D(const TH2D &h2d); virtual ~TH2D(); virtual void Copy(TObject &hnew); virtual TH1 *DrawCopy(Option_t *option=""); virtual Int_t Fill(Axis_t x, Axis_t y); virtual Int_t Fill(Axis_t x, Axis_t y, Stat_t w); virtual Stat_t GetCorrelationFactor(Int_t axis1=1,Int_t axis2=2); virtual Stat_t GetCovariance(Int_t axis1=1,Int_t axis2=2); virtual void GetStats(Stat_t *stats); virtual void Reset(Option_t *option=""); TH2D& operator=(const TH2D &h1); friend TH2D operator*(Float_t c1, TH2D &h1); friend TH2D operator*(TH2D &h1, Float_t c1) {return operator*(c1,h1);} friend TH2D operator+(TH2D &h1, TH2D &h2); friend TH2D operator-(TH2D &h1, TH2D &h2); friend TH2D operator*(TH2D &h1, TH2D &h2); friend TH2D operator/(TH2D &h1, TH2D &h2); ClassDef(TH2D,1) //2-Dim histograms (one double per channel) }; #endif