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

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