ROOT  6.06/09
Reference Guide
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 #ifndef ROOT_TH1
25 #include "TH1.h"
26 #endif
27 
28 #ifndef ROOT_TAtt3D
29 #include "TAtt3D.h"
30 #endif
31 
32 class TH2D;
33 class TProfile2D;
34 
35 class TH3 : public TH1, public TAtt3D {
36 
37 protected:
38  Double_t fTsumwy; //Total Sum of weight*Y
39  Double_t fTsumwy2; //Total Sum of weight*Y*Y
40  Double_t fTsumwxy; //Total Sum of weight*X*Y
41  Double_t fTsumwz; //Total Sum of weight*Z
42  Double_t fTsumwz2; //Total Sum of weight*Z*Z
43  Double_t fTsumwxz; //Total Sum of weight*X*Z
44  Double_t fTsumwyz; //Total Sum of weight*Y*Z
45 
46  TH3();
47  TH3(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
48  ,Int_t nbinsy,Double_t ylow,Double_t yup
49  ,Int_t nbinsz,Double_t zlow,Double_t zup);
50  TH3(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
51  ,Int_t nbinsy,const Float_t *ybins
52  ,Int_t nbinsz,const Float_t *zbins);
53  TH3(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
54  ,Int_t nbinsy,const Double_t *ybins
55  ,Int_t nbinsz,const Double_t *zbins);
57 
58  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;
59 
60  virtual Int_t BufferFill(Double_t, Double_t) {return -2;} //may not use
61  virtual Int_t BufferFill(Double_t, Double_t, Double_t) {return -2;} //may not use
62  Int_t Fill(Double_t); //MayNotUse
63  Int_t Fill(Double_t,Double_t) {return Fill(0.);} //MayNotUse
64  Int_t Fill(const char*, Double_t) {return Fill(0);} //MayNotUse
65  Int_t Fill(Double_t,const char*,Double_t) {return Fill(0);} //MayNotUse
66  Int_t Fill(const char*,Double_t,Double_t) {return Fill(0);} //MayNotUse
67  Int_t Fill(const char*,const char*,Double_t) {return Fill(0);} //MayNotUse
68 
69 private:
70 
71  TH3(const TH3&);
72  TH3& operator=(const TH3&); // Not implemented
73 
74 public:
75  virtual ~TH3();
76  virtual Int_t BufferEmpty(Int_t action=0);
77  virtual void Copy(TObject &hnew) const;
78  virtual Int_t Fill(Double_t x, Double_t y, Double_t z);
79  virtual Int_t Fill(Double_t x, Double_t y, Double_t z, Double_t w);
80 
81  virtual Int_t Fill(const char *namex, const char *namey, const char *namez, Double_t w);
82  virtual Int_t Fill(const char *namex, Double_t y, const char *namez, Double_t w);
83  virtual Int_t Fill(const char *namex, const char *namey, Double_t z, Double_t w);
84  virtual Int_t Fill(Double_t x, const char *namey, const char *namez, Double_t w);
85  virtual Int_t Fill(Double_t x, const char *namey, Double_t z, Double_t w);
86  virtual Int_t Fill(Double_t x, Double_t y, const char *namez, Double_t w);
87 
88  virtual void FillRandom(const char *fname, Int_t ntimes=5000);
89  virtual void FillRandom(TH1 *h, Int_t ntimes=5000);
90  virtual Int_t FindFirstBinAbove(Double_t threshold=0, Int_t axis=1) const;
91  virtual Int_t FindLastBinAbove (Double_t threshold=0, Int_t axis=1) const;
92  virtual void FitSlicesZ(TF1 *f1=0,Int_t binminx=1, Int_t binmaxx=0,Int_t binminy=1, Int_t binmaxy=0,
93  Int_t cut=0 ,Option_t *option="QNR"); // *MENU*
94  virtual Int_t GetBin(Int_t binx, Int_t biny, Int_t binz) const;
95  virtual Double_t GetBinContent(Int_t bin) const { return TH1::GetBinContent(bin); }
96  virtual Double_t GetBinContent(Int_t bin, Int_t) const { return TH1::GetBinContent(bin); }
97  virtual Double_t GetBinContent(Int_t binx, Int_t biny, Int_t binz) const { return TH1::GetBinContent( GetBin(binx, biny, binz) ); }
98  using TH1::GetBinErrorLow;
99  using TH1::GetBinErrorUp;
100  virtual Double_t GetBinErrorLow(Int_t binx, Int_t biny, Int_t binz) { return TH1::GetBinErrorLow( GetBin(binx, biny, binz) ); }
101  virtual Double_t GetBinErrorUp(Int_t binx, Int_t biny, Int_t binz) { return TH1::GetBinErrorUp( GetBin(binx, biny, binz) ); }
102  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;
103  virtual Double_t GetCorrelationFactor(Int_t axis1=1,Int_t axis2=2) const;
104  virtual Double_t GetCovariance(Int_t axis1=1,Int_t axis2=2) const;
105  virtual void GetRandom3(Double_t &x, Double_t &y, Double_t &z);
106  virtual void GetStats(Double_t *stats) const;
107  virtual Double_t Integral(Option_t *option="") const;
108  using TH1::Integral;
109  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;
110  using TH1::IntegralAndError;
111  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;
112  virtual Double_t Interpolate(Double_t x);
115  virtual Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const;
116  virtual Long64_t Merge(TCollection *list);
117  TH1D *ProjectionX(const char *name="_px", Int_t iymin=0, Int_t iymax=-1, Int_t izmin=0,
118  Int_t izmax=-1, Option_t *option="") const; // *MENU*
119  TH1D *ProjectionY(const char *name="_py", Int_t ixmin=0, Int_t ixmax=-1, Int_t izmin=0,
120  Int_t izmax=-1, Option_t *option="") const; // *MENU*
121  TH1D *ProjectionZ(const char *name="_pz", Int_t ixmin=0, Int_t ixmax=-1, Int_t iymin=0,
122  Int_t iymax=-1, Option_t *option="") const; // *MENU*
123  TH1 *Project3D(Option_t *option="x") const; // *MENU*
124  virtual TProfile2D *Project3DProfile(Option_t *option="xy") const; // *MENU*
125  virtual void PutStats(Double_t *stats);
126  virtual TH3 *RebinX(Int_t ngroup = 2, const char *newname = "");
127  virtual TH3 *RebinY(Int_t ngroup = 2, const char *newname = "");
128  virtual TH3 *RebinZ(Int_t ngroup = 2, const char *newname = "");
129  virtual TH3 *Rebin3D(Int_t nxgroup = 2, Int_t nygroup = 2, Int_t nzgroup = 2, const char *newname = "");
130  virtual void Reset(Option_t *option="");
131  virtual void SetBinContent(Int_t bin, Double_t content);
132  virtual void SetBinContent(Int_t bin, Int_t, Double_t content) { SetBinContent(bin, content); }
133  virtual void SetBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t content) { SetBinContent(GetBin(binx, biny, binz), content); }
134  virtual void SetShowProjection(const char *option="xy",Int_t nbins=1); // *MENU*
135 
136 protected:
137 
138  virtual TH1D *DoProject1D(const char* name, const char * title, int imin1, int imax1, int imin2, int imax2,
139  const TAxis* projAxis, const TAxis * axis1, const TAxis * axis2, Option_t * option) const;
140  virtual TH1D *DoProject1D(const char* name, const char * title, const TAxis* projAxis,
141  bool computeErrors, bool originalRange, bool useUF, bool useOF) const;
142  virtual TH2D *DoProject2D(const char* name, const char * title, const TAxis* projX, const TAxis* projY,
143  bool computeErrors, bool originalRange,
144  bool useUF, bool useOF) const;
145  virtual TProfile2D *DoProjectProfile2D(const char* name, const char * title, const TAxis* projX, const TAxis* projY,
146  bool originalRange, bool useUF, bool useOF) const;
147 
148  // these functions are need to be used inside TProfile3D::DoProjectProfile2D
149  static TH1D *DoProject1D(const TH3 & h, const char* name, const char * title, const TAxis* projX,
150  bool computeErrors, bool originalRange, bool useUF, bool useOF) {
151  return h.DoProject1D(name, title, projX, computeErrors, originalRange, useUF, useOF);
152  }
153  static TH2D *DoProject2D(const TH3 & h, const char* name, const char * title, const TAxis* projX, const TAxis* projY,
154  bool computeErrors, bool originalRange, bool useUF, bool useOF) {
155  return h.DoProject2D(name, title, projX,projY, computeErrors, originalRange, useUF, useOF);
156  }
157 
158  ClassDef(TH3,5) //3-Dim histogram base class
159 };
160 
161 //________________________________________________________________________
162 
163 class TH3C : public TH3, public TArrayC {
164 public:
165  TH3C();
166  TH3C(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
167  ,Int_t nbinsy,Double_t ylow,Double_t yup
168  ,Int_t nbinsz,Double_t zlow,Double_t zup);
169  TH3C(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
170  ,Int_t nbinsy,const Float_t *ybins
171  ,Int_t nbinsz,const Float_t *zbins);
172  TH3C(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
173  ,Int_t nbinsy,const Double_t *ybins
174  ,Int_t nbinsz,const Double_t *zbins);
175  TH3C(const TH3C &h3c);
176  virtual ~TH3C();
177  virtual void AddBinContent(Int_t bin);
178  virtual void AddBinContent(Int_t bin, Double_t w);
179  virtual void Copy(TObject &hnew) const;
180  virtual void Reset(Option_t *option="");
181  virtual void SetBinsLength(Int_t n=-1);
182  TH3C& operator=(const TH3C &h1);
183  friend TH3C operator*(Float_t c1, TH3C &h1);
184  friend TH3C operator*(TH3C &h1, Float_t c1) {return operator*(c1,h1);}
185  friend TH3C operator+(TH3C &h1, TH3C &h2);
186  friend TH3C operator-(TH3C &h1, TH3C &h2);
187  friend TH3C operator*(TH3C &h1, TH3C &h2);
188  friend TH3C operator/(TH3C &h1, TH3C &h2);
189 
190 protected:
191  virtual Double_t RetrieveBinContent(Int_t bin) const { return Double_t (fArray[bin]); }
192  virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = Char_t (content); }
193 
194  ClassDef(TH3C,3) //3-Dim histograms (one char per channel)
195 };
196 
197 //________________________________________________________________________
198 
199 class TH3S : public TH3, public TArrayS {
200 public:
201  TH3S();
202  TH3S(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
203  ,Int_t nbinsy,Double_t ylow,Double_t yup
204  ,Int_t nbinsz,Double_t zlow,Double_t zup);
205  TH3S(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
206  ,Int_t nbinsy,const Float_t *ybins
207  ,Int_t nbinsz,const Float_t *zbins);
208  TH3S(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
209  ,Int_t nbinsy,const Double_t *ybins
210  ,Int_t nbinsz,const Double_t *zbins);
211  TH3S(const TH3S &h3s);
212  virtual ~TH3S();
213  virtual void AddBinContent(Int_t bin);
214  virtual void AddBinContent(Int_t bin, Double_t w);
215  virtual void Copy(TObject &hnew) const;
216  virtual void Reset(Option_t *option="");
217  virtual void SetBinsLength(Int_t n=-1);
218  TH3S& operator=(const TH3S &h1);
219  friend TH3S operator*(Float_t c1, TH3S &h1);
220  friend TH3S operator*(TH3S &h1, Float_t c1) {return operator*(c1,h1);}
221  friend TH3S operator+(TH3S &h1, TH3S &h2);
222  friend TH3S operator-(TH3S &h1, TH3S &h2);
223  friend TH3S operator*(TH3S &h1, TH3S &h2);
224  friend TH3S operator/(TH3S &h1, TH3S &h2);
225 
226 protected:
227  virtual Double_t RetrieveBinContent(Int_t bin) const { return Double_t (fArray[bin]); }
228  virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = Short_t (content); }
229 
230  ClassDef(TH3S,3) //3-Dim histograms (one short per channel)
231 };
232 
233 //________________________________________________________________________
234 
235 class TH3I : public TH3, public TArrayI {
236 public:
237  TH3I();
238  TH3I(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
239  ,Int_t nbinsy,Double_t ylow,Double_t yup
240  ,Int_t nbinsz,Double_t zlow,Double_t zup);
241  TH3I(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
242  ,Int_t nbinsy,const Float_t *ybins
243  ,Int_t nbinsz,const Float_t *zbins);
244  TH3I(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
245  ,Int_t nbinsy,const Double_t *ybins
246  ,Int_t nbinsz,const Double_t *zbins);
247  TH3I(const TH3I &h3i);
248  virtual ~TH3I();
249  virtual void AddBinContent(Int_t bin);
250  virtual void AddBinContent(Int_t bin, Double_t w);
251  virtual void Copy(TObject &hnew) const;
252  virtual void Reset(Option_t *option="");
253  virtual void SetBinsLength(Int_t n=-1);
254  TH3I& operator=(const TH3I &h1);
255  friend TH3I operator*(Float_t c1, TH3I &h1);
256  friend TH3I operator*(TH3I &h1, Float_t c1) {return operator*(c1,h1);}
257  friend TH3I operator+(TH3I &h1, TH3I &h2);
258  friend TH3I operator-(TH3I &h1, TH3I &h2);
259  friend TH3I operator*(TH3I &h1, TH3I &h2);
260  friend TH3I operator/(TH3I &h1, TH3I &h2);
261 
262 protected:
263  virtual Double_t RetrieveBinContent(Int_t bin) const { return Double_t (fArray[bin]); }
264  virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = Int_t (content); }
265 
266  ClassDef(TH3I,3) //3-Dim histograms (one 32 bits integer per channel)
267 };
268 
269 
270 //________________________________________________________________________
271 
272 class TH3F : public TH3, public TArrayF {
273 public:
274  TH3F();
275  TH3F(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
276  ,Int_t nbinsy,Double_t ylow,Double_t yup
277  ,Int_t nbinsz,Double_t zlow,Double_t zup);
278  TH3F(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
279  ,Int_t nbinsy,const Float_t *ybins
280  ,Int_t nbinsz,const Float_t *zbins);
281  TH3F(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
282  ,Int_t nbinsy,const Double_t *ybins
283  ,Int_t nbinsz,const Double_t *zbins);
284  TH3F(const TH3F &h3f);
285  virtual ~TH3F();
286  virtual void AddBinContent(Int_t bin) {++fArray[bin];}
287  virtual void AddBinContent(Int_t bin, Double_t w)
288  {fArray[bin] += Float_t (w);}
289  virtual void Copy(TObject &hnew) const;
290  virtual void Reset(Option_t *option="");
291  virtual void SetBinsLength(Int_t n=-1);
292  TH3F& operator=(const TH3F &h1);
293  friend TH3F operator*(Float_t c1, TH3F &h1);
294  friend TH3F operator*(TH3F &h1, Float_t c1) {return operator*(c1,h1);}
295  friend TH3F operator+(TH3F &h1, TH3F &h2);
296  friend TH3F operator-(TH3F &h1, TH3F &h2);
297  friend TH3F operator*(TH3F &h1, TH3F &h2);
298  friend TH3F operator/(TH3F &h1, TH3F &h2);
299 
300 protected:
301  virtual Double_t RetrieveBinContent(Int_t bin) const { return Double_t (fArray[bin]); }
302  virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = Float_t (content); }
303 
304  ClassDef(TH3F,3) //3-Dim histograms (one float per channel)
305 };
306 
307 //________________________________________________________________________
308 
309 class TH3D : public TH3, public TArrayD {
310 public:
311  TH3D();
312  TH3D(const char *name,const char *title,Int_t nbinsx,Double_t xlow,Double_t xup
313  ,Int_t nbinsy,Double_t ylow,Double_t yup
314  ,Int_t nbinsz,Double_t zlow,Double_t zup);
315  TH3D(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins
316  ,Int_t nbinsy,const Float_t *ybins
317  ,Int_t nbinsz,const Float_t *zbins);
318  TH3D(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins
319  ,Int_t nbinsy,const Double_t *ybins
320  ,Int_t nbinsz,const Double_t *zbins);
321  TH3D(const TH3D &h3d);
322  virtual ~TH3D();
323  virtual void AddBinContent(Int_t bin) {++fArray[bin];}
324  virtual void AddBinContent(Int_t bin, Double_t w)
325  {fArray[bin] += Double_t (w);}
326  virtual void Copy(TObject &hnew) const;
327  virtual void Reset(Option_t *option="");
328  virtual void SetBinsLength(Int_t n=-1);
329  TH3D& operator=(const TH3D &h1);
330  friend TH3D operator*(Float_t c1, TH3D &h1);
331  friend TH3D operator*(TH3D &h1, Float_t c1) {return operator*(c1,h1);}
332  friend TH3D operator+(TH3D &h1, TH3D &h2);
333  friend TH3D operator-(TH3D &h1, TH3D &h2);
334  friend TH3D operator*(TH3D &h1, TH3D &h2);
335  friend TH3D operator/(TH3D &h1, TH3D &h2);
336 
337 protected:
338  virtual Double_t RetrieveBinContent(Int_t bin) const { return fArray[bin]; }
339  virtual void UpdateBinContent(Int_t bin, Double_t content) { fArray[bin] = content; }
340 
341  ClassDef(TH3D,3) //3-Dim histograms (one double per channel)
342 };
343 
344 #endif
345 
virtual Int_t BufferFill(Double_t, Double_t)
accumulate arguments in buffer.
Definition: TH3.h:60
Float_t * fArray
Definition: TArrayF.h:32
virtual Double_t GetBinErrorLow(Int_t bin) const
Return lower error associated to bin number bin.
Definition: TH1.cxx:8412
virtual void Copy(TObject &hnew) const
Copy this 3-D histogram structure to newth3.
Definition: TH3.cxx:4511
friend TH3D operator*(Float_t c1, TH3D &h1)
Operator *.
Definition: TH3.cxx:4586
long long Long64_t
Definition: RtypesCore.h:69
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
Definition: TH1.cxx:4629
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
Definition: TH3.cxx:3911
virtual TH3 * RebinX(Int_t ngroup=2, const char *newname="")
Rebin only the X axis see Rebin3D.
Definition: TH3.cxx:2933
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
Definition: TH3.h:323
friend TH3F operator+(TH3F &h1, TH3F &h2)
Operator +.
Definition: TH3.cxx:4387
float Float_t
Definition: RtypesCore.h:53
virtual void FillRandom(const char *fname, Int_t ntimes=5000)
Fill histogram following distribution in function fname.
Definition: TH3.cxx:653
friend TH3F operator/(TH3F &h1, TH3F &h2)
Operator /.
Definition: TH3.cxx:4423
3-D histogram with a float per channel (see TH1 documentation)}
Definition: TH3.h:272
Short_t * fArray
Definition: TArrayS.h:32
const char Option_t
Definition: RtypesCore.h:62
friend TH3I operator+(TH3I &h1, TH3I &h2)
Operator +.
Definition: TH3.cxx:4176
TCanvas * c1
Definition: legend1.C:2
void Reset()
Definition: TArrayD.h:49
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content.
Definition: TH3.cxx:3495
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:2984
friend TH3F operator*(TH3F &h1, Float_t c1)
Definition: TH3.h:294
TH1 * h
Definition: legend2.C:5
virtual Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const
Statistical test of compatibility in shape between THIS histogram and h2, using Kolmogorov test...
Definition: TH3.cxx:1351
virtual Double_t GetBinErrorLow(Int_t binx, Int_t biny, Int_t binz)
Definition: TH3.h:100
Use this attribute class when an object should have 3D capabilities.
Definition: TAtt3D.h:29
TH3S & operator=(const TH3S &h1)
Operator =.
Definition: TH3.cxx:3955
friend TH3D operator-(TH3D &h1, TH3D &h2)
Operator -.
Definition: TH3.cxx:4610
static TH2D * DoProject2D(const TH3 &h, const char *name, const char *title, const TAxis *projX, const TAxis *projY, bool computeErrors, bool originalRange, bool useUF, bool useOF)
Definition: TH3.h:153
virtual Double_t RetrieveBinContent(Int_t bin) const
Definition: TH3.h:301
friend TH3C operator+(TH3C &h1, TH3C &h2)
Operator +.
Definition: TH3.cxx:3745
virtual ~TH3D()
Destructor.
Definition: TH3.cxx:4453
Double_t fTsumwy
Definition: TH3.h:38
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
Definition: TH3.h:286
Array of floats (32 bits per element).
Definition: TArrayF.h:29
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
friend TH3F operator*(Float_t c1, TH3F &h1)
Operator *.
Definition: TH3.cxx:4375
Double_t fTsumwz
Definition: TH3.h:41
int nbins[3]
friend TH3I operator/(TH3I &h1, TH3I &h2)
Operator /.
Definition: TH3.cxx:4212
virtual void Copy(TObject &hnew) const
Copy.
Definition: TH3.cxx:151
virtual Double_t RetrieveBinContent(Int_t bin) const
Definition: TH3.h:191
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:2833
void Reset()
Definition: TArrayF.h:49
Double_t fTsumwyz
Definition: TH3.h:44
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,lastz] for which diff = abs(cell_content-c) <= maxdiff In case several cells in the specified range with diff=0 are found the first cell found is returned in binx,biny,binz.
Definition: TH3.cxx:979
static TH1D * DoProject1D(const TH3 &h, const char *name, const char *title, const TAxis *projX, bool computeErrors, bool originalRange, bool useUF, bool useOF)
Definition: TH3.h:149
friend TH3F operator-(TH3F &h1, TH3F &h2)
Operator -.
Definition: TH3.cxx:4399
virtual Int_t BufferFill(Double_t x, Double_t y, Double_t z, Double_t w)
accumulate arguments in buffer.
Definition: TH3.cxx:246
TH1 * Project3D(Option_t *option="x") const
Project a 3-d histogram into 1 or 2-d histograms depending on the option parameter option may contain...
Definition: TH3.cxx:2468
Array of integers (32 bits per element).
Definition: TArrayI.h:29
virtual void Copy(TObject &hnew) const
Copy this 3-D histogram structure to newth3.
Definition: TH3.cxx:3890
Double_t x[n]
Definition: legend1.C:17
virtual Double_t GetBinErrorUp(Int_t bin) const
Return upper error associated to bin number bin.
Definition: TH1.cxx:8441
Double_t fTsumwxz
Definition: TH3.h:43
Int_t Fill(const char *, const char *, Double_t)
Definition: TH3.h:67
Int_t Fill(Double_t, const char *, Double_t)
Definition: TH3.h:65
friend TH3D operator+(TH3D &h1, TH3D &h2)
Operator +.
Definition: TH3.cxx:4598
virtual TH3 * RebinY(Int_t ngroup=2, const char *newname="")
Rebin only the Y axis see Rebin3D.
Definition: TH3.cxx:2943
friend TH3C operator*(Float_t c1, TH3C &h1)
Operator *.
Definition: TH3.cxx:3733
Int_t Fill(const char *, Double_t)
Increment bin with namex with a weight w.
Definition: TH3.h:64
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
Definition: TH3.cxx:3608
virtual void Copy(TObject &hnew) const
Copy this 3-D histogram structure to newth3.
Definition: TH3.cxx:3629
static double p2(double t, double a, double b, double c)
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:1869
Double_t * fArray
Definition: TArrayD.h:32
ClassDef(TAttLine, 2)
virtual void Copy(TObject &hnew) const
Copy this 3-D histogram structure to newth3.
Definition: TH3.cxx:4122
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
Definition: TH3.cxx:4101
TH1F * h1
Definition: legend1.C:5
virtual void UpdateBinContent(Int_t bin, Double_t content)
raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition: TH3.h:228
The 3-D histogram classes derived from the 1-D histogram classes.
Definition: TH3.h:35
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
Definition: TH3.cxx:4143
3-D histogram with a int per channel (see TH1 documentation)}
Definition: TH3.h:235
virtual ~TH3I()
Destructor.
Definition: TH3.cxx:4043
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:2626
virtual ~TH3S()
Destructor.
Definition: TH3.cxx:3811
virtual Double_t GetCorrelationFactor(Int_t axis1=1, Int_t axis2=2) const
Return correlation factor between axis1 and axis2.
Definition: TH3.cxx:1019
virtual Double_t GetBinErrorUp(Int_t binx, Int_t biny, Int_t binz)
Definition: TH3.h:101
void Reset()
Definition: TArrayS.h:49
3-D histogram with a short per channel (see TH1 documentation)
Definition: TH3.h:199
virtual Double_t RetrieveBinContent(Int_t bin) const
Definition: TH3.h:263
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
Definition: TH3.cxx:3638
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 methdod performing the projection to 1D histogram called from TH3::Project3D ...
Definition: TH3.cxx:1916
TH3C & operator=(const TH3C &h1)
Operator =.
Definition: TH3.cxx:3723
friend TH3S operator-(TH3S &h1, TH3S &h2)
Operator -.
Definition: TH3.cxx:3989
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:1837
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
Definition: TH1.cxx:7378
Class to manage histogram axis.
Definition: TAxis.h:36
friend TH3S operator+(TH3S &h1, TH3S &h2)
Operator +.
Definition: TH3.cxx:3977
3-D histogram with a double per channel (see TH1 documentation)}
Definition: TH3.h:309
Array of shorts (16 bits per element).
Definition: TArrayS.h:29
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
Definition: TH3.cxx:1208
virtual void UpdateBinContent(Int_t bin, Double_t content)
raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition: TH3.h:192
virtual Double_t GetCovariance(Int_t axis1=1, Int_t axis2=2) const
Return covariance between axis1 and axis2.
Definition: TH3.cxx:1037
virtual void FitSlicesZ(TF1 *f1=0, 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:859
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 By default the integral is compu...
Definition: TH1.cxx:7405
Double_t fTsumwy2
Definition: TH3.h:39
Collection abstract base class.
Definition: TCollection.h:48
virtual void UpdateBinContent(Int_t bin, Double_t content)
raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition: TH3.h:339
virtual void PutStats(Double_t *stats)
Replace current statistics with the values in array stats.
Definition: TH3.cxx:2916
short Short_t
Definition: RtypesCore.h:35
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
friend TH3D operator*(TH3D &h1, Float_t c1)
Definition: TH3.h:331
Int_t Fill(Double_t)
Invalid Fill method.
Definition: TH3.cxx:275
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
Definition: TH3.h:95
1-D histogram with a double per channel (see TH1 documentation)}
Definition: TH1.h:613
friend TH3I operator-(TH3I &h1, TH3I &h2)
Operator _.
Definition: TH3.cxx:4188
virtual void UpdateBinContent(Int_t bin, Double_t content)
raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition: TH3.h:302
virtual void AddBinContent(Int_t bin, Double_t w)
Increment bin content by a weight w.
Definition: TH3.h:287
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
Definition: TH3.cxx:3476
virtual Int_t GetBin(Int_t binx, Int_t biny, Int_t binz) const
See comments in TH1::GetBin.
Definition: TH3.cxx:945
virtual Long64_t Merge(TCollection *list)
Add all histograms in the collection to this histogram.
Definition: TH3.cxx:1560
virtual void AddBinContent(Int_t bin, Double_t w)
Increment bin content by a weight w.
Definition: TH3.h:324
friend TH3S operator/(TH3S &h1, TH3S &h2)
Operator /.
Definition: TH3.cxx:4013
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:2600
TH3 & operator=(const TH3 &)
Double_t fTsumwz2
Definition: TH3.h:42
virtual Int_t FindFirstBinAbove(Double_t threshold=0, Int_t axis=1) const
Find first bin with content > threshold for axis (1=x, 2=y, 3=z) if no bins with content > threshold ...
Definition: TH3.cxx:745
friend TH3D operator/(TH3D &h1, TH3D &h2)
Operator /.
Definition: TH3.cxx:4634
virtual void UpdateBinContent(Int_t bin, Double_t content)
raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
Definition: TH3.h:264
double Double_t
Definition: RtypesCore.h:55
virtual Int_t BufferEmpty(Int_t action=0)
Fill histogram with all entries in the buffer.
Definition: TH3.cxx:172
Int_t * fArray
Definition: TArrayI.h:32
virtual Double_t GetBinContent(Int_t bin, Int_t) const
Definition: TH3.h:96
TH3D & operator=(const TH3D &h1)
Operator =.
Definition: TH3.cxx:4576
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:2165
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
Definition: TH3.cxx:4532
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
Definition: TH3.cxx:3869
friend TH3C operator-(TH3C &h1, TH3C &h2)
Operator -.
Definition: TH3.cxx:3757
Double_t y[n]
Definition: legend1.C:17
The TH1 histogram class.
Definition: TH1.h:80
3-D histogram with a bype per channel (see TH1 documentation)
Definition: TH3.h:163
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:1900
Profile2D histograms are used to display the mean value of Z and its RMS for each cell in X...
Definition: TProfile2D.h:31
virtual Double_t RetrieveBinContent(Int_t bin) const
Definition: TH3.h:338
virtual Double_t GetBinContent(Int_t binx, Int_t biny, Int_t binz) const
Definition: TH3.h:97
Array of doubles (64 bits per element).
Definition: TArrayD.h:29
friend TH3I operator*(Float_t c1, TH3I &h1)
Operator *.
Definition: TH3.cxx:4164
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
Definition: TH3.cxx:4321
#define name(a, b)
Definition: linkTestLib0.cpp:5
Mother of all ROOT objects.
Definition: TObject.h:58
char Char_t
Definition: RtypesCore.h:29
friend TH3C operator/(TH3C &h1, TH3C &h2)
Operator /.
Definition: TH3.cxx:3781
virtual Int_t FindLastBinAbove(Double_t threshold=0, Int_t axis=1) const
Find last bin with content > threshold for axis (1=x, 2=y, 3=z) if no bins with content > threshold i...
Definition: TH3.cxx:788
Double_t fTsumwxy
Definition: TH3.h:40
virtual void GetStats(Double_t *stats) const
Fill the array stats from the contents of this histogram The array stats must be correctly dimensionn...
Definition: TH3.cxx:1131
virtual ~TH3C()
Destructor.
Definition: TH3.cxx:3550
virtual TH3 * RebinZ(Int_t ngroup=2, const char *newname="")
Rebin only the Z axis see Rebin3D.
Definition: TH3.cxx:2953
virtual void GetRandom3(Double_t &x, Double_t &y, Double_t &z)
Return 3 random numbers along axis x , y and z distributed according the cellcontents of a 3-dim hist...
Definition: TH3.cxx:1084
Int_t Fill(const char *, Double_t, Double_t)
Definition: TH3.h:66
virtual void SetBinContent(Int_t binx, Int_t biny, Int_t binz, Double_t content)
Definition: TH3.h:133
friend TH3C operator*(TH3C &h1, Float_t c1)
Definition: TH3.h:184
1-Dim function class
Definition: TF1.h:149
Char_t * fArray
Definition: TArrayC.h:32
virtual ~TH3F()
Destructor.
Definition: TH3.cxx:4242
virtual void SetBinContent(Int_t bin, Int_t, Double_t content)
Definition: TH3.h:132
TF1 * f1
Definition: legend1.C:11
void Reset()
Definition: TArrayI.h:49
friend TH3I operator*(TH3I &h1, Float_t c1)
Definition: TH3.h:256
virtual Int_t BufferFill(Double_t, Double_t, Double_t)
Definition: TH3.h:61
virtual void SetBinsLength(Int_t n=-1)
Set total number of bins including under/overflow Reallocate bin contents array.
Definition: TH3.cxx:3650
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:1239
virtual ~TH3()
Destructor.
Definition: TH3.cxx:143
TH3F & operator=(const TH3F &h1)
Operator =.
Definition: TH3.cxx:4365
friend TH3S operator*(Float_t c1, TH3S &h1)
Operator *.
Definition: TH3.cxx:3965
virtual Double_t Interpolate(Double_t x)
Not yet implemented.
Definition: TH3.cxx:1250
Int_t Fill(Double_t, Double_t)
Increment bin with abscissa X with a weight w.
Definition: TH3.h:63
const Int_t n
Definition: legend1.C:16
virtual void Copy(TObject &hnew) const
Copy this 3-D histogram structure to newth3.
Definition: TH3.cxx:4300
virtual Double_t RetrieveBinContent(Int_t bin) const
Definition: TH3.h:227
friend TH3S operator*(TH3S &h1, Float_t c1)
Definition: TH3.h:220
2-D histogram with a double per channel (see TH1 documentation)}
Definition: TH2.h:297
Array of chars or bytes (8 bits per element).
Definition: TArrayC.h:29
TH3I & operator=(const TH3I &h1)
Operator =.
Definition: TH3.cxx:4154