Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TH3.h
Go to the documentation of this file.
1// @(#)root/hist:$Id$
2// Author: Rene Brun 27/10/95
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TH3
13#define ROOT_TH3
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TH3 //
19// //
20// 3-Dim histogram base class. //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24#include "TH1.h"
25
26#include "TAtt3D.h"
27
28class TH2D;
29class TProfile2D;
30
31class TH3 : public TH1, public TAtt3D {
32
33protected:
34 Double_t fTsumwy; ///< Total Sum of weight*Y
35 Double_t fTsumwy2; ///< Total Sum of weight*Y*Y
36 Double_t fTsumwxy; ///< Total Sum of weight*X*Y
37 Double_t fTsumwz; ///< Total Sum of weight*Z
38 Double_t fTsumwz2; ///< Total Sum of weight*Z*Z
39 Double_t fTsumwxz; ///< Total Sum of weight*X*Z
40 Double_t fTsumwyz; ///< Total Sum of weight*Y*Z
41
42 TH3();
43 TH3(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
44 ,Int_t nbinsy,Double_t ylow,Double_t yup
45 ,Int_t nbinsz,Double_t zlow,Double_t zup);
46 TH3(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
47 ,Int_t nbinsy,const Float_t *ybins
48 ,Int_t nbinsz,const Float_t *zbins);
49 TH3(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
50 ,Int_t nbinsy,const Double_t *ybins
51 ,Int_t nbinsz,const Double_t *zbins);
53
54 void DoFillProfileProjection(TProfile2D * p2, const TAxis & a1, const TAxis & a2, const TAxis & a3, Int_t bin1, Int_t bin2, Int_t bin3, Int_t inBin, Bool_t useWeights) const;
55
56 Int_t BufferFill(Double_t, Double_t) override {return -2;} //may not use
57 virtual Int_t BufferFill(Double_t, Double_t, Double_t) {return -2;} //may not use
58 Int_t Fill(Double_t) override; //MayNotUse
59 Int_t Fill(Double_t,Double_t) override {return Fill(0.);} //MayNotUse
60 Int_t Fill(const char*, Double_t) override {return Fill(0);} //MayNotUse
61 Int_t Fill(Double_t,const char*,Double_t) {return Fill(0);} //MayNotUse
62 Int_t Fill(const char*,Double_t,Double_t) {return Fill(0);} //MayNotUse
63 Int_t Fill(const char*,const char*,Double_t) {return Fill(0);} //MayNotUse
64
65 Double_t Interpolate(Double_t x, Double_t y) const override; // May not use
66 Double_t Interpolate(Double_t x) const override; // MayNotUse
67
68private:
69
70 TH3(const TH3&) = delete;
71 TH3& operator=(const TH3&) = delete;
72
73 using TH1::Integral;
75
76public:
77 ~TH3() override;
78 void AddBinContent(Int_t bin) override;
79 void AddBinContent(Int_t bin, Double_t w) override;
80 virtual void AddBinContent(Int_t binx, Int_t biny, Int_t binz);
81 virtual void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w);
82 Int_t BufferEmpty(Int_t action = 0) override;
83 void Copy(TObject &hnew) const override;
84 virtual Int_t Fill(Double_t x, Double_t y, Double_t z);
86
87 virtual Int_t Fill(const char *namex, const char *namey, const char *namez, Double_t w);
88 virtual Int_t Fill(const char *namex, Double_t y, const char *namez, Double_t w);
89 virtual Int_t Fill(const char *namex, const char *namey, Double_t z, Double_t w);
90 virtual Int_t Fill(Double_t x, const char *namey, const char *namez, Double_t w);
91 virtual Int_t Fill(const char *namex, Double_t y, Double_t z, Double_t w);
92 virtual Int_t Fill(Double_t x, const char *namey, Double_t z, Double_t w);
93 virtual Int_t Fill(Double_t x, Double_t y, const char *namez, Double_t w);
94
95 void FillRandom(const char *fname, Int_t ntimes=5000, TRandom *rng = nullptr) override;
96 void FillRandom(TH1 *h, Int_t ntimes=5000, TRandom *rng = nullptr) override;
97 virtual void FitSlicesZ(TF1 *f1 = nullptr, Int_t binminx = 1, Int_t binmaxx = 0, Int_t binminy = 1, Int_t binmaxy = 0,
98 Int_t cut = 0, Option_t *option = "QNR"); // *MENU*
99 Int_t GetBin(Int_t binx, Int_t biny, Int_t binz) const override;
100 using TH1::GetBinContent;
101 Double_t GetBinContent(Int_t binx, Int_t biny, Int_t binz) const override { return TH1::GetBinContent( GetBin(binx, biny, binz) ); }
103 using TH1::GetBinErrorUp;
104 virtual Double_t GetBinErrorLow(Int_t binx, Int_t biny, Int_t binz) { return TH1::GetBinErrorLow( GetBin(binx, biny, binz) ); }
105 virtual Double_t GetBinErrorUp(Int_t binx, Int_t biny, Int_t binz) { return TH1::GetBinErrorUp( GetBin(binx, biny, binz) ); }
106 virtual Double_t GetBinWithContent3(Double_t c, Int_t &binx, Int_t &biny, Int_t &binz, Int_t firstx=0, Int_t lastx=0,Int_t firsty=0, Int_t lasty=0, Int_t firstz=0, Int_t lastz=0, Double_t maxdiff=0) const;
107 virtual Double_t GetCorrelationFactor(Int_t axis1=1,Int_t axis2=2) const;
108 virtual Double_t GetCovariance(Int_t axis1=1,Int_t axis2=2) const;
109 virtual void GetRandom3(Double_t &x, Double_t &y, Double_t &, TRandom * rng = nullptr);
110 void GetStats(Double_t *stats) const override;
111 Double_t Integral(Option_t *option="") const override;
112 virtual Double_t Integral(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2, Int_t binz1, Int_t binz2, Option_t *option="") const;
113 virtual Double_t IntegralAndError(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2, Int_t binz1, Int_t binz2, Double_t & err, Option_t *option="") const;
114 Double_t Interpolate(Double_t x, Double_t y, Double_t z) const override;
115 Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const override;
116 virtual TH1D *ProjectionX(const char *name="_px", Int_t iymin=0, Int_t iymax=-1, Int_t izmin=0,
117 Int_t izmax=-1, Option_t *option="") const; // *MENU*
118 virtual TH1D *ProjectionY(const char *name="_py", Int_t ixmin=0, Int_t ixmax=-1, Int_t izmin=0,
119 Int_t izmax=-1, Option_t *option="") const; // *MENU*
120 virtual TH1D *ProjectionZ(const char *name="_pz", Int_t ixmin=0, Int_t ixmax=-1, Int_t iymin=0,
121 Int_t iymax=-1, Option_t *option="") const; // *MENU*
122 virtual TH1 *Project3D(Option_t *option="x") const; // *MENU*
123 virtual TProfile2D *Project3DProfile(Option_t *option="xy") const; // *MENU*
124 void PutStats(Double_t *stats) override;
125 TH3 *RebinX(Int_t ngroup = 2, const char *newname = "") override;
126 virtual TH3 *RebinY(Int_t ngroup = 2, const char *newname = "");
127 virtual TH3 *RebinZ(Int_t ngroup = 2, const char *newname = "");
128 virtual TH3 *Rebin3D(Int_t nxgroup = 2, Int_t nygroup = 2, Int_t nzgroup = 2, const char *newname = "");
129 void Reset(Option_t *option="") override;
130 void SetBinContent(Int_t bin, Double_t content) override;
131 void SetBinContent(Int_t bin, Int_t, Double_t content) override { SetBinContent(bin, content); }
132 void SetBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t content) override { SetBinContent(GetBin(binx, biny, binz), content); }
133 virtual void SetShowProjection(const char *option="xy",Int_t nbins=1); // *MENU*
134
135protected:
136
137 virtual TH1D *DoProject1D(const char* name, const char * title, int imin1, int imax1, int imin2, int imax2,
138 const TAxis* projAxis, const TAxis * axis1, const TAxis * axis2, Option_t * option) const;
139 virtual TH1D *DoProject1D(const char *name, const char *title, const TAxis *projAxis, const TAxis *axis1,
140 const TAxis *axis2, bool computeErrors, bool originalRange, bool useUF, bool useOF) const;
141 virtual TH2D *DoProject2D(const char* name, const char * title, const TAxis* projX, const TAxis* projY,
142 bool computeErrors, bool originalRange, bool useUF, bool useOF) const;
143 virtual TProfile2D *DoProjectProfile2D(const char* name, const char * title, const TAxis* projX, const TAxis* projY,
144 bool originalRange, bool useUF, bool useOF) const;
145
146 // these functions are need to be used inside TProfile3D::DoProjectProfile2D
147 static TH1D *DoProject1D(const TH3 & h, const char* name, const char * title, const TAxis* projX,
148 bool computeErrors, bool originalRange, bool useUF, bool useOF);
149 static TH2D *DoProject2D(const TH3 & h, const char* name, const char * title, const TAxis* projX, const TAxis* projY,
150 bool computeErrors, bool originalRange, bool useUF, bool useOF);
151
152 ClassDefOverride(TH3,6) //3-Dim histogram base class
153};
154
155//________________________________________________________________________
156
157class TH3C : public TH3, public TArrayC {
158public:
159 TH3C();
160 TH3C(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
161 ,Int_t nbinsy,Double_t ylow,Double_t yup
162 ,Int_t nbinsz,Double_t zlow,Double_t zup);
163 TH3C(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
164 ,Int_t nbinsy,const Float_t *ybins
165 ,Int_t nbinsz,const Float_t *zbins);
166 TH3C(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
167 ,Int_t nbinsy,const Double_t *ybins
168 ,Int_t nbinsz,const Double_t *zbins);
169 TH3C(const TH3C &h3c);
170 ~TH3C() override;
171
172 void AddBinContent(Int_t bin) override;
173 void AddBinContent(Int_t bin, Double_t w) override;
174 void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override { AddBinContent(GetBin(binx, biny, binz)); }
175 void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override { AddBinContent(GetBin(binx, biny, binz), w); }
176 void Copy(TObject &hnew) const override;
177 void Reset(Option_t *option="") override;
178 void SetBinsLength(Int_t n=-1) override;
179
180 TH3C& operator=(const TH3C &h1);
181 friend TH3C operator*(Float_t c1, TH3C &h1);
182 friend TH3C operator*(TH3C &h1, Float_t c1) {return operator*(c1,h1);}
183 friend TH3C operator+(TH3C &h1, TH3C &h2);
184 friend TH3C operator-(TH3C &h1, TH3C &h2);
185 friend TH3C operator*(TH3C &h1, TH3C &h2);
186 friend TH3C operator/(TH3C &h1, TH3C &h2);
187
188protected:
189 Double_t RetrieveBinContent(Int_t bin) const override { return Double_t (fArray[bin]); }
190 void UpdateBinContent(Int_t bin, Double_t content) override { fArray[bin] = Char_t (content); }
191
192 ClassDefOverride(TH3C,4) //3-Dim histograms (one char per channel)
193};
194
195//________________________________________________________________________
196
197class TH3S : public TH3, public TArrayS {
198public:
199 TH3S();
200 TH3S(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
201 ,Int_t nbinsy,Double_t ylow,Double_t yup
202 ,Int_t nbinsz,Double_t zlow,Double_t zup);
203 TH3S(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
204 ,Int_t nbinsy,const Float_t *ybins
205 ,Int_t nbinsz,const Float_t *zbins);
206 TH3S(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
207 ,Int_t nbinsy,const Double_t *ybins
208 ,Int_t nbinsz,const Double_t *zbins);
209 TH3S(const TH3S &h3s);
210 ~TH3S() override;
211
212 void AddBinContent(Int_t bin) override;
213 void AddBinContent(Int_t bin, Double_t w) override;
214 void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override { AddBinContent(GetBin(binx, biny, binz)); }
215 void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override { AddBinContent(GetBin(binx, biny, binz), w); }
216 void Copy(TObject &hnew) const override;
217 void Reset(Option_t *option="") override;
218 void SetBinsLength(Int_t n=-1) override;
219
220 TH3S& operator=(const TH3S &h1);
221 friend TH3S operator*(Float_t c1, TH3S &h1);
222 friend TH3S operator*(TH3S &h1, Float_t c1) {return operator*(c1,h1);}
223 friend TH3S operator+(TH3S &h1, TH3S &h2);
224 friend TH3S operator-(TH3S &h1, TH3S &h2);
225 friend TH3S operator*(TH3S &h1, TH3S &h2);
226 friend TH3S operator/(TH3S &h1, TH3S &h2);
227
228protected:
229 Double_t RetrieveBinContent(Int_t bin) const override { return Double_t (fArray[bin]); }
230 void UpdateBinContent(Int_t bin, Double_t content) override { fArray[bin] = Short_t (content); }
231
232 ClassDefOverride(TH3S,4) //3-Dim histograms (one short per channel)
233};
234
235//________________________________________________________________________
236
237class TH3I : public TH3, public TArrayI {
238public:
239 TH3I();
240 TH3I(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
241 ,Int_t nbinsy,Double_t ylow,Double_t yup
242 ,Int_t nbinsz,Double_t zlow,Double_t zup);
243 TH3I(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
244 ,Int_t nbinsy,const Float_t *ybins
245 ,Int_t nbinsz,const Float_t *zbins);
246 TH3I(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
247 ,Int_t nbinsy,const Double_t *ybins
248 ,Int_t nbinsz,const Double_t *zbins);
249 TH3I(const TH3I &h3i);
250 ~TH3I() override;
251
252 void AddBinContent(Int_t bin) override;
253 void AddBinContent(Int_t bin, Double_t w) override;
254 void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override { AddBinContent(GetBin(binx, biny, binz)); }
255 void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override { AddBinContent(GetBin(binx, biny, binz), w); }
256 void Copy(TObject &hnew) const override;
257 void Reset(Option_t *option="") override;
258 void SetBinsLength(Int_t n=-1) override;
259
260 TH3I& operator=(const TH3I &h1);
261 friend TH3I operator*(Float_t c1, TH3I &h1);
262 friend TH3I operator*(TH3I &h1, Float_t c1) {return operator*(c1,h1);}
263 friend TH3I operator+(TH3I &h1, TH3I &h2);
264 friend TH3I operator-(TH3I &h1, TH3I &h2);
265 friend TH3I operator*(TH3I &h1, TH3I &h2);
266 friend TH3I operator/(TH3I &h1, TH3I &h2);
267
268protected:
269 Double_t RetrieveBinContent(Int_t bin) const override { return Double_t (fArray[bin]); }
270 void UpdateBinContent(Int_t bin, Double_t content) override { fArray[bin] = Int_t (content); }
271
272 ClassDefOverride(TH3I,4) //3-Dim histograms (one 32 bit integer per channel)
273};
274
275
276//________________________________________________________________________
277
278class TH3L : public TH3, public TArrayL64 {
279public:
280 TH3L();
281 TH3L(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
282 ,Int_t nbinsy,Double_t ylow,Double_t yup
283 ,Int_t nbinsz,Double_t zlow,Double_t zup);
284 TH3L(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
285 ,Int_t nbinsy,const Float_t *ybins
286 ,Int_t nbinsz,const Float_t *zbins);
287 TH3L(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
288 ,Int_t nbinsy,const Double_t *ybins
289 ,Int_t nbinsz,const Double_t *zbins);
290 TH3L(const TH3L &h3l);
291 ~TH3L() override;
292 void AddBinContent(Int_t bin) override;
293 void AddBinContent(Int_t bin, Double_t w) override;
294 void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override { AddBinContent(GetBin(binx, biny, binz)); }
295 void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override { AddBinContent(GetBin(binx, biny, binz), w); }
296 void Copy(TObject &hnew) const override;
297 void Reset(Option_t *option="") override;
298 void SetBinsLength(Int_t n=-1) override;
299 TH3L& operator=(const TH3L &h1);
300 friend TH3L operator*(Float_t c1, TH3L &h1);
301 friend TH3L operator*(TH3L &h1, Float_t c1) {return operator*(c1,h1);}
302 friend TH3L operator+(TH3L &h1, TH3L &h2);
303 friend TH3L operator-(TH3L &h1, TH3L &h2);
304 friend TH3L operator*(TH3L &h1, TH3L &h2);
305 friend TH3L operator/(TH3L &h1, TH3L &h2);
306
307protected:
308 Double_t RetrieveBinContent(Int_t bin) const override { return Double_t (fArray[bin]); }
309 void UpdateBinContent(Int_t bin, Double_t content) override { fArray[bin] = Int_t (content); }
310
311 ClassDefOverride(TH3L,0) //3-Dim histograms (one 64 bit integer per channel)
312};
313
314
315//________________________________________________________________________
316
317class TH3F : public TH3, public TArrayF {
318public:
319 TH3F();
320 TH3F(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
321 ,Int_t nbinsy,Double_t ylow,Double_t yup
322 ,Int_t nbinsz,Double_t zlow,Double_t zup);
323 TH3F(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
324 ,Int_t nbinsy,const Float_t *ybins
325 ,Int_t nbinsz,const Float_t *zbins);
326 TH3F(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
327 ,Int_t nbinsy,const Double_t *ybins
328 ,Int_t nbinsz,const Double_t *zbins);
329 TH3F(const TH3F &h3f);
330 ~TH3F() override;
331
332 /// Increment bin content by 1.
333 /// Passing an out-of-range bin leads to undefined behavior
334 void AddBinContent(Int_t bin) override {++fArray[bin];}
335 /// Increment bin content by a weight w.
336 /// \warning The value of w is cast to `Float_t` before being added.
337 /// Passing an out-of-range bin leads to undefined behavior
338 void AddBinContent(Int_t bin, Double_t w) override
339 {fArray[bin] += Float_t (w);}
340 void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override { AddBinContent(GetBin(binx, biny, binz)); }
341 void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override { AddBinContent(GetBin(binx, biny, binz), w); }
342 void Copy(TObject &hnew) const override;
343 void Reset(Option_t *option="") override;
344 void SetBinsLength(Int_t n=-1) override;
345
346 TH3F& operator=(const TH3F &h1);
347 friend TH3F operator*(Float_t c1, TH3F &h1);
348 friend TH3F operator*(TH3F &h1, Float_t c1) {return operator*(c1,h1);}
349 friend TH3F operator+(TH3F &h1, TH3F &h2);
350 friend TH3F operator-(TH3F &h1, TH3F &h2);
351 friend TH3F operator*(TH3F &h1, TH3F &h2);
352 friend TH3F operator/(TH3F &h1, TH3F &h2);
353
354protected:
355 Double_t RetrieveBinContent(Int_t bin) const override { return Double_t (fArray[bin]); }
356 void UpdateBinContent(Int_t bin, Double_t content) override { fArray[bin] = Float_t (content); }
357
358 ClassDefOverride(TH3F,4) //3-Dim histograms (one float per channel)
359};
360
361//________________________________________________________________________
362
363class TH3D : public TH3, public TArrayD {
364public:
365 TH3D();
366 TH3D(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
367 ,Int_t nbinsy,Double_t ylow,Double_t yup
368 ,Int_t nbinsz,Double_t zlow,Double_t zup);
369 TH3D(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
370 ,Int_t nbinsy,const Float_t *ybins
371 ,Int_t nbinsz,const Float_t *zbins);
372 TH3D(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
373 ,Int_t nbinsy,const Double_t *ybins
374 ,Int_t nbinsz,const Double_t *zbins);
375 TH3D(const TH3D &h3d);
376 ~TH3D() override;
377
378 /// Increment bin content by 1.
379 /// Passing an out-of-range bin leads to undefined behavior
380 void AddBinContent(Int_t bin) override {++fArray[bin];}
381 /// Increment bin content by a weight w
382 /// Passing an out-of-range bin leads to undefined behavior
383 void AddBinContent(Int_t bin, Double_t w) override
384 {fArray[bin] += Double_t (w);}
385 void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override { AddBinContent(GetBin(binx, biny, binz)); }
386 void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override { AddBinContent(GetBin(binx, biny, binz), w); }
387 void Copy(TObject &hnew) const override;
388 void Reset(Option_t *option="") override;
389 void SetBinsLength(Int_t n=-1) override;
390
391 TH3D& operator=(const TH3D &h1);
392 friend TH3D operator*(Float_t c1, TH3D &h1);
393 friend TH3D operator*(TH3D &h1, Float_t c1) {return operator*(c1,h1);}
394 friend TH3D operator+(TH3D &h1, TH3D &h2);
395 friend TH3D operator-(TH3D &h1, TH3D &h2);
396 friend TH3D operator*(TH3D &h1, TH3D &h2);
397 friend TH3D operator/(TH3D &h1, TH3D &h2);
398
399protected:
400 Double_t RetrieveBinContent(Int_t bin) const override { return fArray[bin]; }
401 void UpdateBinContent(Int_t bin, Double_t content) override { fArray[bin] = content; }
402
403 ClassDefOverride(TH3D,4) //3-Dim histograms (one double per channel)
404};
405
406#endif
#define c(i)
Definition RSha256.hxx:101
#define h(i)
Definition RSha256.hxx:106
int Int_t
Definition RtypesCore.h:45
char Char_t
Definition RtypesCore.h:37
float Float_t
Definition RtypesCore.h:57
short Short_t
Definition RtypesCore.h:39
double Double_t
Definition RtypesCore.h:59
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t option
char name[80]
Definition TGX11.cxx:110
Array of chars or bytes (8 bits per element).
Definition TArrayC.h:27
Char_t * fArray
Definition TArrayC.h:30
Array of doubles (64 bits per element).
Definition TArrayD.h:27
Double_t * fArray
Definition TArrayD.h:30
void Reset()
Definition TArrayD.h:47
Array of floats (32 bits per element).
Definition TArrayF.h:27
Float_t * fArray
Definition TArrayF.h:30
void Reset()
Definition TArrayF.h:47
Array of integers (32 bits per element).
Definition TArrayI.h:27
Int_t * fArray
Definition TArrayI.h:30
void Reset()
Definition TArrayI.h:47
Array of long64s (64 bits per element).
Definition TArrayL64.h:27
Long64_t * fArray
Definition TArrayL64.h:30
void Reset()
Definition TArrayL64.h:47
Array of shorts (16 bits per element).
Definition TArrayS.h:27
void Reset()
Definition TArrayS.h:47
Short_t * fArray
Definition TArrayS.h:30
Use this attribute class when an object should have 3D capabilities.
Definition TAtt3D.h:19
Class to manage histogram axis.
Definition TAxis.h:31
1-Dim function class
Definition TF1.h:233
1-D histogram with a double per channel (see TH1 documentation)
Definition TH1.h:669
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:59
virtual Double_t IntegralAndError(Int_t binx1, Int_t binx2, Double_t &err, Option_t *option="") const
Return integral of bin contents in range [binx1,binx2] and its error.
Definition TH1.cxx:7936
virtual Double_t GetBinErrorLow(Int_t bin) const
Return lower error associated to bin number bin.
Definition TH1.cxx:9047
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
Definition TH1.cxx:7909
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
Definition TH1.cxx:5029
virtual Double_t GetBinErrorUp(Int_t bin) const
Return upper error associated to bin number bin.
Definition TH1.cxx:9078
2-D histogram with a double per channel (see TH1 documentation)
Definition TH2.h:357
3-D histogram with a byte per channel (see TH1 documentation)
Definition TH3.h:157
friend TH3C operator/(TH3C &h1, TH3C &h2)
Operator /.
Definition TH3.cxx:3782
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
Definition TH3.cxx:3650
~TH3C() override
Destructor.
Definition TH3.cxx:3543
friend TH3C operator*(Float_t c1, TH3C &h1)
Operator *.
Definition TH3.cxx:3734
friend TH3C operator-(TH3C &h1, TH3C &h2)
Operator -.
Definition TH3.cxx:3758
void Reset(Option_t *option="") override
Reset this histogram: contents, errors, etc.
Definition TH3.cxx:3638
void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override
Increment 3D bin content by a weight w.
Definition TH3.h:175
Double_t RetrieveBinContent(Int_t bin) const override
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
Definition TH3.h:189
void AddBinContent(Int_t bin) override
Increment bin content by 1.
Definition TH3.cxx:3606
friend TH3C operator+(TH3C &h1, TH3C &h2)
Operator +.
Definition TH3.cxx:3746
TH3C & operator=(const TH3C &h1)
Operator =.
Definition TH3.cxx:3723
void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override
Increment 3D bin content by 1.
Definition TH3.h:174
TH3C()
Constructor.
Definition TH3.cxx:3533
void UpdateBinContent(Int_t bin, Double_t content) override
Raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition TH3.h:190
friend TH3C operator*(TH3C &h1, Float_t c1)
Definition TH3.h:182
void Copy(TObject &hnew) const override
Copy this 3-D histogram structure to newth3.
Definition TH3.cxx:3629
3-D histogram with a double per channel (see TH1 documentation)
Definition TH3.h:363
friend TH3D operator+(TH3D &h1, TH3D &h2)
Operator +.
Definition TH3.cxx:4834
void UpdateBinContent(Int_t bin, Double_t content) override
Raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition TH3.h:401
TH3D()
Constructor.
Definition TH3.cxx:4672
friend TH3D operator*(TH3D &h1, Float_t c1)
Definition TH3.h:393
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
Definition TH3.cxx:4766
~TH3D() override
Destructor.
Definition TH3.cxx:4682
void AddBinContent(Int_t bin, Double_t w) override
Increment bin content by a weight w Passing an out-of-range bin leads to undefined behavior.
Definition TH3.h:383
void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override
Increment 3D bin content by 1.
Definition TH3.h:385
Double_t RetrieveBinContent(Int_t bin) const override
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
Definition TH3.h:400
friend TH3D operator-(TH3D &h1, TH3D &h2)
Operator -.
Definition TH3.cxx:4846
void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override
Increment 3D bin content by a weight w.
Definition TH3.h:386
void Copy(TObject &hnew) const override
Copy this 3-D histogram structure to newth3.
Definition TH3.cxx:4745
friend TH3D operator*(Float_t c1, TH3D &h1)
Operator *.
Definition TH3.cxx:4822
TH3D & operator=(const TH3D &h1)
Operator =.
Definition TH3.cxx:4810
void AddBinContent(Int_t bin) override
Increment bin content by 1.
Definition TH3.h:380
friend TH3D operator/(TH3D &h1, TH3D &h2)
Operator /.
Definition TH3.cxx:4870
3-D histogram with a float per channel (see TH1 documentation)
Definition TH3.h:317
friend TH3F operator-(TH3F &h1, TH3F &h2)
Operator -.
Definition TH3.cxx:4628
friend TH3F operator+(TH3F &h1, TH3F &h2)
Operator +.
Definition TH3.cxx:4616
TH3F & operator=(const TH3F &h1)
Operator =.
Definition TH3.cxx:4593
void AddBinContent(Int_t bin) override
Increment bin content by 1.
Definition TH3.h:334
void UpdateBinContent(Int_t bin, Double_t content) override
Raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition TH3.h:356
void AddBinContent(Int_t bin, Double_t w) override
Increment bin content by a weight w.
Definition TH3.h:338
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
Definition TH3.cxx:4549
Double_t RetrieveBinContent(Int_t bin) const override
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
Definition TH3.h:355
TH3F()
Constructor.
Definition TH3.cxx:4456
~TH3F() override
Destructor.
Definition TH3.cxx:4466
friend TH3F operator*(Float_t c1, TH3F &h1)
Operator *.
Definition TH3.cxx:4604
void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override
Increment 3D bin content by a weight w.
Definition TH3.h:341
friend TH3F operator/(TH3F &h1, TH3F &h2)
Operator /.
Definition TH3.cxx:4652
friend TH3F operator*(TH3F &h1, Float_t c1)
Definition TH3.h:348
void Copy(TObject &hnew) const override
Copy this 3-D histogram structure to newth3.
Definition TH3.cxx:4528
void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override
Increment 3D bin content by 1.
Definition TH3.h:340
3-D histogram with an int per channel (see TH1 documentation)
Definition TH3.h:237
Double_t RetrieveBinContent(Int_t bin) const override
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
Definition TH3.h:269
TH3I & operator=(const TH3I &h1)
Operator =.
Definition TH3.cxx:4170
friend TH3I operator*(Float_t c1, TH3I &h1)
Operator *.
Definition TH3.cxx:4181
void AddBinContent(Int_t bin) override
Increment bin content by 1.
Definition TH3.cxx:4115
void UpdateBinContent(Int_t bin, Double_t content) override
Raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition TH3.h:270
TH3I()
Constructor.
Definition TH3.cxx:4042
friend TH3I operator*(TH3I &h1, Float_t c1)
Definition TH3.h:262
void Copy(TObject &hnew) const override
Copy this 3-D histogram structure to newth3.
Definition TH3.cxx:4138
friend TH3I operator/(TH3I &h1, TH3I &h2)
Operator /.
Definition TH3.cxx:4229
void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override
Increment 3D bin content by a weight w.
Definition TH3.h:255
friend TH3I operator+(TH3I &h1, TH3I &h2)
Operator +.
Definition TH3.cxx:4193
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
Definition TH3.cxx:4159
void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override
Increment 3D bin content by 1.
Definition TH3.h:254
~TH3I() override
Destructor.
Definition TH3.cxx:4052
friend TH3I operator-(TH3I &h1, TH3I &h2)
Operator _.
Definition TH3.cxx:4205
3-D histogram with a long64 per channel (see TH1 documentation)
Definition TH3.h:278
void UpdateBinContent(Int_t bin, Double_t content) override
Raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition TH3.h:309
Double_t RetrieveBinContent(Int_t bin) const override
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
Definition TH3.h:308
friend TH3L operator/(TH3L &h1, TH3L &h2)
Operator /.
Definition TH3.cxx:4436
void Copy(TObject &hnew) const override
Copy this 3-D histogram structure to newth3.
Definition TH3.cxx:4345
friend TH3L operator*(Float_t c1, TH3L &h1)
Operator *.
Definition TH3.cxx:4388
TH3L & operator=(const TH3L &h1)
Operator =.
Definition TH3.cxx:4377
friend TH3L operator-(TH3L &h1, TH3L &h2)
Operator _.
Definition TH3.cxx:4412
void AddBinContent(Int_t bin) override
Increment bin content by 1.
Definition TH3.cxx:4322
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
Definition TH3.cxx:4366
friend TH3L operator*(TH3L &h1, Float_t c1)
Definition TH3.h:301
~TH3L() override
Destructor.
Definition TH3.cxx:4259
TH3L()
Constructor.
Definition TH3.cxx:4249
void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override
Increment 3D bin content by 1.
Definition TH3.h:294
friend TH3L operator+(TH3L &h1, TH3L &h2)
Operator +.
Definition TH3.cxx:4400
void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override
Increment 3D bin content by a weight w.
Definition TH3.h:295
3-D histogram with a short per channel (see TH1 documentation)
Definition TH3.h:197
friend TH3S operator*(TH3S &h1, Float_t c1)
Definition TH3.h:222
void AddBinContent(Int_t binx, Int_t biny, Int_t binz) override
Increment 3D bin content by 1.
Definition TH3.h:214
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
Definition TH3.cxx:3919
void AddBinContent(Int_t bin) override
Increment bin content by 1.
Definition TH3.cxx:3875
void UpdateBinContent(Int_t bin, Double_t content) override
Raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition TH3.h:230
void AddBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t w) override
Increment 3D bin content by a weight w.
Definition TH3.h:215
~TH3S() override
Destructor.
Definition TH3.cxx:3812
void Copy(TObject &hnew) const override
Copy this 3-D histogram structure to newth3.
Definition TH3.cxx:3898
friend TH3S operator-(TH3S &h1, TH3S &h2)
Operator -.
Definition TH3.cxx:3998
friend TH3S operator+(TH3S &h1, TH3S &h2)
Operator +.
Definition TH3.cxx:3986
Double_t RetrieveBinContent(Int_t bin) const override
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
Definition TH3.h:229
friend TH3S operator*(Float_t c1, TH3S &h1)
Operator *.
Definition TH3.cxx:3974
TH3S & operator=(const TH3S &h1)
Operator =.
Definition TH3.cxx:3963
TH3S()
Constructor.
Definition TH3.cxx:3802
friend TH3S operator/(TH3S &h1, TH3S &h2)
Operator /.
Definition TH3.cxx:4022
The 3-D histogram classes derived from the 1-D histogram classes.
Definition TH3.h:31
virtual TH3 * Rebin3D(Int_t nxgroup=2, Int_t nygroup=2, Int_t nzgroup=2, const char *newname="")
Rebin this histogram grouping nxgroup/nygroup/nzgroup bins along the xaxis/yaxis/zaxis together.
Definition TH3.cxx:2960
Int_t BufferFill(Double_t, Double_t) override
accumulate arguments in buffer.
Definition TH3.h:56
Int_t BufferEmpty(Int_t action=0) override
Fill histogram with all entries in the buffer.
Definition TH3.cxx:267
Double_t fTsumwy
Total Sum of weight*Y.
Definition TH3.h:34
Int_t Fill(const char *, const char *, Double_t)
Definition TH3.h:63
virtual Int_t BufferFill(Double_t, Double_t, Double_t)
Definition TH3.h:57
Double_t fTsumwy2
Total Sum of weight*Y*Y.
Definition TH3.h:35
virtual Double_t GetCovariance(Int_t axis1=1, Int_t axis2=2) const
Return covariance between axis1 and axis2.
Definition TH3.cxx:1212
void GetStats(Double_t *stats) const override
Fill the array stats from the contents of this histogram The array stats must be correctly dimensione...
Definition TH3.cxx:1310
void Copy(TObject &hnew) const override
Copy.
Definition TH3.cxx:211
virtual TH2D * DoProject2D(const char *name, const char *title, const TAxis *projX, const TAxis *projY, bool computeErrors, bool originalRange, bool useUF, bool useOF) const
internal method performing the projection to a 2D histogram called from TH3::Project3D
Definition TH3.cxx:2106
Double_t fTsumwxz
Total Sum of weight*X*Z.
Definition TH3.h:39
void FillRandom(const char *fname, Int_t ntimes=5000, TRandom *rng=nullptr) override
Fill histogram following distribution in function fname.
Definition TH3.cxx:836
virtual Double_t GetBinErrorUp(Int_t binx, Int_t biny, Int_t binz)
Definition TH3.h:105
Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const override
Statistical test of compatibility in shape between THIS histogram and h2, using Kolmogorov test.
Definition TH3.cxx:1535
virtual TH1D * ProjectionY(const char *name="_py", Int_t ixmin=0, Int_t ixmax=-1, Int_t izmin=0, Int_t izmax=-1, Option_t *option="") const
Project a 3-D histogram into a 1-D histogram along Y.
Definition TH3.cxx:1783
Int_t Fill(const char *, Double_t) override
Increment bin with namex with a weight w.
Definition TH3.h:60
virtual void GetRandom3(Double_t &x, Double_t &y, Double_t &, TRandom *rng=nullptr)
Return 3 random numbers along axis x , y and z distributed according to the cell-contents of this 3-d...
Definition TH3.cxx:1262
void Reset(Option_t *option="") override
Reset this histogram: contents, errors, etc.
Definition TH3.cxx:3452
void AddBinContent(Int_t bin) override
Increment bin content by 1.
Definition TH3.cxx:227
~TH3() override
Destructor.
Definition TH3.cxx:203
Int_t Fill(Double_t) override
Invalid Fill method.
Definition TH3.cxx:371
virtual TH3 * RebinY(Int_t ngroup=2, const char *newname="")
Rebin only the Y axis see Rebin3D.
Definition TH3.cxx:2919
TH3 & operator=(const TH3 &)=delete
virtual Double_t IntegralAndError(Int_t binx1, Int_t binx2, Int_t biny1, Int_t biny2, Int_t binz1, Int_t binz2, Double_t &err, Option_t *option="") const
Return integral of bin contents in range [binx1,binx2],[biny1,biny2],[binz1,binz2] for a 3-D histogra...
Definition TH3.cxx:1424
virtual TH1D * ProjectionZ(const char *name="_pz", Int_t ixmin=0, Int_t ixmax=-1, Int_t iymin=0, Int_t iymax=-1, Option_t *option="") const
Project a 3-D histogram into a 1-D histogram along Z.
Definition TH3.cxx:1815
void SetBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t content) override
Definition TH3.h:132
virtual TH1D * ProjectionX(const char *name="_px", Int_t iymin=0, Int_t iymax=-1, Int_t izmin=0, Int_t izmax=-1, Option_t *option="") const
Project a 3-D histogram into a 1-D histogram along X.
Definition TH3.cxx:1750
virtual TProfile2D * Project3DProfile(Option_t *option="xy") const
Project a 3-d histogram into a 2-d profile histograms depending on the option parameter option may co...
Definition TH3.cxx:2809
Double_t fTsumwz2
Total Sum of weight*Z*Z.
Definition TH3.h:38
Double_t fTsumwxy
Total Sum of weight*X*Y.
Definition TH3.h:36
Int_t Fill(Double_t, Double_t) override
Increment bin with abscissa X with a weight w.
Definition TH3.h:59
virtual TH1 * Project3D(Option_t *option="x") const
Project a 3-d histogram into 1 or 2-d histograms depending on the option parameter,...
Definition TH3.cxx:2412
virtual Double_t GetBinErrorLow(Int_t binx, Int_t biny, Int_t binz)
Definition TH3.h:104
Int_t Fill(Double_t, const char *, Double_t)
Definition TH3.h:61
virtual Double_t GetBinWithContent3(Double_t c, Int_t &binx, Int_t &biny, Int_t &binz, Int_t firstx=0, Int_t lastx=0, Int_t firsty=0, Int_t lasty=0, Int_t firstz=0, Int_t lastz=0, Double_t maxdiff=0) const
Compute first cell (binx,biny,binz) in the range [firstx,lastx](firsty,lasty][firstz,...
Definition TH3.cxx:1154
void DoFillProfileProjection(TProfile2D *p2, const TAxis &a1, const TAxis &a2, const TAxis &a3, Int_t bin1, Int_t bin2, Int_t bin3, Int_t inBin, Bool_t useWeights) const
internal function to fill the bins of the projected profile 2D histogram called from DoProjectProfile...
Definition TH3.cxx:2553
virtual TH3 * RebinZ(Int_t ngroup=2, const char *newname="")
Rebin only the Z axis see Rebin3D.
Definition TH3.cxx:2929
Double_t Integral(Option_t *option="") const override
Return integral of bin contents.
Definition TH3.cxx:1393
virtual Int_t BufferFill(Double_t x, Double_t y, Double_t z, Double_t w)
Accumulate arguments in buffer.
Definition TH3.cxx:342
virtual void SetShowProjection(const char *option="xy", Int_t nbins=1)
When the mouse is moved in a pad containing a 3-d view of this histogram a second canvas shows a proj...
Definition TH3.cxx:3679
Int_t Fill(const char *, Double_t, Double_t)
Definition TH3.h:62
TH3 * RebinX(Int_t ngroup=2, const char *newname="") override
Rebin only the X axis see Rebin3D.
Definition TH3.cxx:2909
virtual Double_t GetCorrelationFactor(Int_t axis1=1, Int_t axis2=2) const
Return correlation factor between axis1 and axis2.
Definition TH3.cxx:1194
virtual TH1D * DoProject1D(const char *name, const char *title, int imin1, int imax1, int imin2, int imax2, const TAxis *projAxis, const TAxis *axis1, const TAxis *axis2, Option_t *option) const
internal method performing the projection to 1D histogram called from TH3::Project3D
Definition TH3.cxx:1832
TH3(const TH3 &)=delete
Double_t fTsumwz
Total Sum of weight*Z.
Definition TH3.h:37
Double_t GetBinContent(Int_t binx, Int_t biny, Int_t binz) const override
Definition TH3.h:101
void SetBinContent(Int_t bin, Double_t content) override
Set bin content.
Definition TH3.cxx:3471
void SetBinContent(Int_t bin, Int_t, Double_t content) override
Definition TH3.h:131
Double_t fTsumwyz
Total Sum of weight*Y*Z.
Definition TH3.h:40
TH3()
Default constructor.
Definition TH3.cxx:74
Int_t GetBin(Int_t binx, Int_t biny, Int_t binz) const override
See comments in TH1::GetBin.
Definition TH3.cxx:1120
virtual void FitSlicesZ(TF1 *f1=nullptr, Int_t binminx=1, Int_t binmaxx=0, Int_t binminy=1, Int_t binmaxy=0, Int_t cut=0, Option_t *option="QNR")
Project slices along Z in case of a 3-D histogram, then fit each slice with function f1 and make a 2-...
Definition TH3.cxx:981
virtual TProfile2D * DoProjectProfile2D(const char *name, const char *title, const TAxis *projX, const TAxis *projY, bool originalRange, bool useUF, bool useOF) const
internal method to project to a 2D Profile called from TH3::Project3DProfile
Definition TH3.cxx:2579
void PutStats(Double_t *stats) override
Replace current statistics with the values in array stats.
Definition TH3.cxx:2892
Mother of all ROOT objects.
Definition TObject.h:41
Profile2D histograms are used to display the mean value of Z and its error for each cell in X,...
Definition TProfile2D.h:27
This is the base class for the ROOT Random number generators.
Definition TRandom.h:27
#define Interpolate(a, x, b, y)
Definition geom.c:179
Double_t y[n]
Definition legend1.C:17
return c1
Definition legend1.C:41
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16
TH1F * h1
Definition legend1.C:5
TF1 * f1
Definition legend1.C:11