source: trunk/MagicSoft/Mars/mhist/MBinning.h@ 1214

Last change on this file since 1214 was 1205, checked in by tbretz, 24 years ago
*** empty log message ***
File size: 1.5 KB
Line 
1#ifndef MARS_MBinning
2#define MARS_MBinning
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7
8#ifndef ROOT_TArrayD
9#include "TArrayD.h"
10#endif
11
12class MBinning : public MParContainer
13{
14private:
15 TArrayD fEdges;
16
17public:
18 MBinning(const char *name=NULL, const char *title=NULL);
19
20 void SetEdges(const TArrayD &arr)
21 {
22 const Int_t nbins = arr.GetSize();
23 fEdges.Set(nbins);
24 for (int i=0; i<=nbins; i++)
25 fEdges[i] = (*(TArrayD*)(&arr))[i];
26 }
27
28 void SetEdges(const Int_t nbins, const Axis_t lo, Axis_t up)
29 {
30 const Double_t binsize = (up-lo)/nbins;
31 fEdges.Set(nbins+1);
32 for (int i=0; i<=nbins; i++)
33 fEdges[i] = binsize*i + lo;
34 }
35
36 void SetEdgesLog(const Int_t nbins, const Axis_t lo, Axis_t up)
37 {
38 // if (lo==0) ...
39
40 const Double_t binsize = log10(up/lo)/nbins;
41 fEdges.Set(nbins+1);
42 for (int i=0; i<=nbins; i++)
43 fEdges[i] = pow(10, binsize*i) * lo;
44 }
45
46 // FIXME: ROOT workaround: "operator[] const" missing
47 Double_t GetEdgeLo() const { return (*(TArrayD*)(&fEdges))[0]; }
48 Double_t GetEdgeHi() const { return (*(TArrayD*)(&fEdges))[fEdges.GetSize()-1]; }
49
50 Int_t GetNumEdges() const { return fEdges.GetSize(); }
51 Int_t GetNumBins() const { return fEdges.GetSize()-1; }
52
53 Double_t *GetEdges() const { return fEdges.GetArray(); }
54
55 ClassDef(MBinning, 1) //Container to store the binning of a histogram
56};
57
58#endif
59
Note: See TracBrowser for help on using the repository browser.