30 class TH2 :
public TH1 {
33 Double_t fScalefactor;
39 TH2(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
40 ,Int_t nbinsy,Double_t ylow,Double_t yup);
41 TH2(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
42 ,Int_t nbinsy,Double_t ylow,Double_t yup);
43 TH2(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
44 ,Int_t nbinsy,
const Double_t *ybins);
45 TH2(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
46 ,Int_t nbinsy,
const Double_t *ybins);
47 TH2(
const char *name,
const char *title,Int_t nbinsx,
const Float_t *xbins
48 ,Int_t nbinsy,
const Float_t *ybins);
50 virtual Int_t BufferFill(Double_t x, Double_t y, Double_t w);
51 virtual TH1D *DoProjection(
bool onX,
const char *name, Int_t firstbin, Int_t lastbin, Option_t *option)
const;
52 virtual TProfile *DoProfile(
bool onX,
const char *name, Int_t firstbin, Int_t lastbin, Option_t *option)
const;
53 virtual TH1D *DoQuantiles(
bool onX,
const char *name, Double_t prob)
const;
54 virtual void DoFitSlices(
bool onX, TF1 *f1, Int_t firstbin, Int_t lastbin, Int_t cut, Option_t *option, TObjArray* arr);
56 Int_t BufferFill(Double_t, Double_t) {
return -2;}
58 Int_t Fill(
const char*, Double_t) {
return Fill(0);}
60 virtual Double_t Interpolate(Double_t x)
const;
65 TH2& operator=(
const TH2&);
69 using TH1::IntegralAndError;
73 virtual Int_t BufferEmpty(Int_t action=0);
74 virtual void Copy(TObject &hnew)
const;
75 virtual Int_t Fill(Double_t x, Double_t y);
76 virtual Int_t Fill(Double_t x, Double_t y, Double_t w);
77 virtual Int_t Fill(Double_t x,
const char *namey, Double_t w);
78 virtual Int_t Fill(
const char *namex, Double_t y, Double_t w);
79 virtual Int_t Fill(
const char *namex,
const char *namey, Double_t w);
80 virtual void FillN(Int_t,
const Double_t *,
const Double_t *, Int_t) {;}
81 virtual void FillN(Int_t ntimes,
const Double_t *x,
const Double_t *y,
const Double_t *w, Int_t stride=1);
82 virtual void FillRandom(
const char *fname, Int_t ntimes=5000);
83 virtual void FillRandom(TH1 *h, Int_t ntimes=5000);
84 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);
85 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);
86 virtual Int_t GetBin(Int_t binx, Int_t biny, Int_t binz = 0)
const;
87 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;
88 virtual Double_t GetBinContent(Int_t bin)
const {
return TH1::GetBinContent(bin); }
89 virtual Double_t GetBinContent(Int_t binx, Int_t biny)
const {
return TH1::GetBinContent( GetBin(binx, biny) ); }
90 virtual Double_t GetBinContent(Int_t binx, Int_t biny, Int_t)
const {
return TH1::GetBinContent( GetBin(binx, biny) ); }
91 using TH1::GetBinErrorLow;
92 using TH1::GetBinErrorUp;
93 virtual Double_t GetBinErrorLow(Int_t binx, Int_t biny) {
return TH1::GetBinErrorLow( GetBin(binx, biny) ); }
94 virtual Double_t GetBinErrorUp(Int_t binx, Int_t biny) {
return TH1::GetBinErrorUp( GetBin(binx, biny) ); }
95 virtual Double_t GetCorrelationFactor(Int_t axis1=1,Int_t axis2=2)
const;
96 virtual Double_t GetCovariance(Int_t axis1=1,Int_t axis2=2)
const;
97 virtual void GetRandom2(Double_t &x, Double_t &y);
98 virtual void GetStats(Double_t *stats)
const;
99 virtual Double_t Integral(Option_t *option=
"")
const;
101 virtual Double_t Integral(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2, Option_t *option=
"")
const;
102 virtual Double_t Integral(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Option_t * =
"")
const {
return 0;}
103 virtual Double_t IntegralAndError(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2, Double_t & err, Option_t *option=
"")
const;
104 virtual Double_t Interpolate(Double_t x, Double_t y)
const;
105 virtual Double_t Interpolate(Double_t x, Double_t y, Double_t z)
const;
106 virtual Double_t KolmogorovTest(
const TH1 *h2, Option_t *option=
"")
const;
107 virtual TH2 *RebinX(Int_t ngroup=2,
const char *newname=
"");
108 virtual TH2 *RebinY(Int_t ngroup=2,
const char *newname=
"");
109 virtual TH2 *Rebin(Int_t ngroup=2,
const char*newname=
"",
const Double_t *xbins=0);
110 virtual TH2 *Rebin2D(Int_t nxgroup=2, Int_t nygroup=2,
const char *newname=
"");
111 TProfile *ProfileX(
const char *name=
"_pfx", Int_t firstybin=1, Int_t lastybin=-1, Option_t *option=
"")
const;
112 TProfile *ProfileY(
const char *name=
"_pfy", Int_t firstxbin=1, Int_t lastxbin=-1, Option_t *option=
"")
const;
113 TH1D *ProjectionX(
const char *name=
"_px", Int_t firstybin=0, Int_t lastybin=-1, Option_t *option=
"")
const;
114 TH1D *ProjectionY(
const char *name=
"_py", Int_t firstxbin=0, Int_t lastxbin=-1, Option_t *option=
"")
const;
115 virtual void PutStats(Double_t *stats);
116 TH1D *QuantilesX(Double_t prob = 0.5,
const char * name =
"_qx" )
const;
117 TH1D *QuantilesY(Double_t prob = 0.5,
const char * name =
"_qy" )
const;
118 virtual void Reset(Option_t *option=
"");
119 virtual void SetBinContent(Int_t bin, Double_t content);
120 virtual void SetBinContent(Int_t binx, Int_t biny, Double_t content) { SetBinContent(GetBin(binx, biny), content); }
121 virtual void SetBinContent(Int_t binx, Int_t biny, Int_t, Double_t content) { SetBinContent(GetBin(binx, biny), content); }
122 virtual void SetShowProjectionX(Int_t nbins=1);
123 virtual void SetShowProjectionY(Int_t nbins=1);
124 virtual TH1 *ShowBackground(Int_t niter=20, Option_t *option=
"same");
125 virtual Int_t ShowPeaks(Double_t sigma=2, Option_t *option=
"", Double_t threshold=0.05);
126 virtual void Smooth(Int_t ntimes=1, Option_t *option=
"");
134 class TH2C :
public TH2,
public TArrayC {
138 TH2C(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
139 ,Int_t nbinsy,Double_t ylow,Double_t yup);
140 TH2C(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
141 ,Int_t nbinsy,Double_t ylow,Double_t yup);
142 TH2C(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
143 ,Int_t nbinsy,
const Double_t *ybins);
144 TH2C(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
145 ,Int_t nbinsy,
const Double_t *ybins);
146 TH2C(
const char *name,
const char *title,Int_t nbinsx,
const Float_t *xbins
147 ,Int_t nbinsy,
const Float_t *ybins);
148 TH2C(
const TH2C &h2c);
150 virtual void AddBinContent(Int_t bin);
151 virtual void AddBinContent(Int_t bin, Double_t w);
152 virtual void Copy(TObject &hnew)
const;
153 virtual void Reset(Option_t *option=
"");
154 virtual void SetBinsLength(Int_t n=-1);
155 TH2C& operator=(
const TH2C &h1);
156 friend TH2C operator*(Float_t c1, TH2C &h1);
157 friend TH2C operator*(TH2C &h1, Float_t c1) {
return operator*(c1,h1);}
158 friend TH2C operator+(TH2C &h1, TH2C &h2);
159 friend TH2C operator-(TH2C &h1, TH2C &h2);
160 friend TH2C operator*(TH2C &h1, TH2C &h2);
161 friend TH2C operator/(TH2C &h1, TH2C &h2);
164 virtual Double_t RetrieveBinContent(Int_t bin)
const {
return Double_t (fArray[bin]); }
165 virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = Char_t (content); }
173 class TH2S :
public TH2,
public TArrayS {
177 TH2S(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
178 ,Int_t nbinsy,Double_t ylow,Double_t yup);
179 TH2S(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
180 ,Int_t nbinsy,Double_t ylow,Double_t yup);
181 TH2S(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
182 ,Int_t nbinsy,
const Double_t *ybins);
183 TH2S(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
184 ,Int_t nbinsy,
const Double_t *ybins);
185 TH2S(
const char *name,
const char *title,Int_t nbinsx,
const Float_t *xbins
186 ,Int_t nbinsy,
const Float_t *ybins);
187 TH2S(
const TH2S &h2s);
189 virtual void AddBinContent(Int_t bin);
190 virtual void AddBinContent(Int_t bin, Double_t w);
191 virtual void Copy(TObject &hnew)
const;
192 virtual void Reset(Option_t *option=
"");
193 virtual void SetBinsLength(Int_t n=-1);
194 TH2S& operator=(
const TH2S &h1);
195 friend TH2S operator*(Float_t c1, TH2S &h1);
196 friend TH2S operator*(TH2S &h1, Float_t c1) {
return operator*(c1,h1);}
197 friend TH2S operator+(TH2S &h1, TH2S &h2);
198 friend TH2S operator-(TH2S &h1, TH2S &h2);
199 friend TH2S operator*(TH2S &h1, TH2S &h2);
200 friend TH2S operator/(TH2S &h1, TH2S &h2);
203 virtual Double_t RetrieveBinContent(Int_t bin)
const {
return Double_t (fArray[bin]); }
204 virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = Short_t (content); }
212 class TH2I :
public TH2,
public TArrayI {
216 TH2I(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
217 ,Int_t nbinsy,Double_t ylow,Double_t yup);
218 TH2I(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
219 ,Int_t nbinsy,Double_t ylow,Double_t yup);
220 TH2I(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
221 ,Int_t nbinsy,
const Double_t *ybins);
222 TH2I(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
223 ,Int_t nbinsy,
const Double_t *ybins);
224 TH2I(
const char *name,
const char *title,Int_t nbinsx,
const Float_t *xbins
225 ,Int_t nbinsy,
const Float_t *ybins);
226 TH2I(
const TH2I &h2i);
228 virtual void AddBinContent(Int_t bin);
229 virtual void AddBinContent(Int_t bin, Double_t w);
230 virtual void Copy(TObject &hnew)
const;
231 virtual void Reset(Option_t *option=
"");
232 virtual void SetBinsLength(Int_t n=-1);
233 TH2I& operator=(
const TH2I &h1);
234 friend TH2I operator*(Float_t c1, TH2I &h1);
235 friend TH2I operator*(TH2I &h1, Float_t c1) {
return operator*(c1,h1);}
236 friend TH2I operator+(TH2I &h1, TH2I &h2);
237 friend TH2I operator-(TH2I &h1, TH2I &h2);
238 friend TH2I operator*(TH2I &h1, TH2I &h2);
239 friend TH2I operator/(TH2I &h1, TH2I &h2);
242 virtual Double_t RetrieveBinContent(Int_t bin)
const {
return Double_t (fArray[bin]); }
243 virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = Int_t (content); }
251 class TH2F :
public TH2,
public TArrayF {
255 TH2F(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
256 ,Int_t nbinsy,Double_t ylow,Double_t yup);
257 TH2F(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
258 ,Int_t nbinsy,Double_t ylow,Double_t yup);
259 TH2F(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
260 ,Int_t nbinsy,
const Double_t *ybins);
261 TH2F(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
262 ,Int_t nbinsy,
const Double_t *ybins);
263 TH2F(
const char *name,
const char *title,Int_t nbinsx,
const Float_t *xbins
264 ,Int_t nbinsy,
const Float_t *ybins);
265 TH2F(
const TMatrixFBase &m);
266 TH2F(
const TH2F &h2f);
268 virtual void AddBinContent(Int_t bin) {++fArray[bin];}
269 virtual void AddBinContent(Int_t bin, Double_t w)
270 {fArray[bin] += Float_t (w);}
271 virtual void Copy(TObject &hnew)
const;
272 virtual void Reset(Option_t *option=
"");
273 virtual void SetBinsLength(Int_t n=-1);
274 TH2F& operator=(
const TH2F &h1);
275 friend TH2F operator*(Float_t c1, TH2F &h1);
276 friend TH2F operator*(TH2F &h1, Float_t c1);
277 friend TH2F operator+(TH2F &h1, TH2F &h2);
278 friend TH2F operator-(TH2F &h1, TH2F &h2);
279 friend TH2F operator*(TH2F &h1, TH2F &h2);
280 friend TH2F operator/(TH2F &h1, TH2F &h2);
283 virtual Double_t RetrieveBinContent(Int_t bin)
const {
return Double_t (fArray[bin]); }
284 virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = Float_t (content); }
292 class TH2D :
public TH2,
public TArrayD {
296 TH2D(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
297 ,Int_t nbinsy,Double_t ylow,Double_t yup);
298 TH2D(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
299 ,Int_t nbinsy,Double_t ylow,Double_t yup);
300 TH2D(
const char *name,
const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
301 ,Int_t nbinsy,
const Double_t *ybins);
302 TH2D(
const char *name,
const char *title,Int_t nbinsx,
const Double_t *xbins
303 ,Int_t nbinsy,
const Double_t *ybins);
304 TH2D(
const char *name,
const char *title,Int_t nbinsx,
const Float_t *xbins
305 ,Int_t nbinsy,
const Float_t *ybins);
306 TH2D(
const TMatrixDBase &m);
307 TH2D(
const TH2D &h2d);
309 virtual void AddBinContent(Int_t bin) {++fArray[bin];}
310 virtual void AddBinContent(Int_t bin, Double_t w)
311 {fArray[bin] += Double_t (w);}
312 virtual void Copy(TObject &hnew)
const;
313 virtual void Reset(Option_t *option=
"");
314 virtual void SetBinsLength(Int_t n=-1);
315 TH2D& operator=(
const TH2D &h1);
316 friend TH2D operator*(Float_t c1, TH2D &h1);
317 friend TH2D operator*(TH2D &h1, Float_t c1) {
return operator*(c1,h1);}
318 friend TH2D operator+(TH2D &h1, TH2D &h2);
319 friend TH2D operator-(TH2D &h1, TH2D &h2);
320 friend TH2D operator*(TH2D &h1, TH2D &h2);
321 friend TH2D operator/(TH2D &h1, TH2D &h2);
324 virtual Double_t RetrieveBinContent(Int_t bin)
const {
return fArray[bin]; }
325 virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = content; }