StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
franks2Histo.hh
1 #ifndef Solaris
2 
3 #ifndef FRANKS2HISTO__HH
4 #define FRANKS2HISTO__HH
5 
6 #ifndef __CINT__
7 #include <Stiostream.h>
8 #include <math.h>
9 #ifdef GNU_GCC
10 # include <stddef.h>
11 #endif
12 #endif
13 
14 //#ifndef ST_NO_MEMBER_TEMPLATES
15 //#define ST_NO_MEMBER_TEMPLATES
16 //#endif
17 
18 #ifdef ST_NO_TEMPLATE_DEF_ARGS
19 template<class T>
20 #else
21 template<class T = double>
22 #endif
23 
24 class franks2Histo {
25 private:
26  // title
27  char* mC1;
28  char* mC2;
29  // X
30  int mXbins;
31  T mXmin;
32  T mXmax;
33  T mXstep;
34  int mXpos;
35  // Y
36  int mYbins;
37  T mYmin;
38  T mYmax;
39  T mYstep;
40  T *vec;
41  int mYpos;
42  // X*Y
43  int mBins;
44  //
45  int mPos;
46  int mEntries;
47 
48 public:
49  // constructor and deconstructor
50  franks2Histo(const char* c1, const char* c2,
51  int bins1, T xmin1, T xmax1,
52  int bins2, T xmin2, T xmax2);
53  ~franks2Histo();
54 
55  // member functions
56 #ifndef ST_NO_MEMBER_TEMPLATES
57  template<class X, class Y, class Z> void Add( franks2Histo<X>* , franks2Histo<X>* , Y w1=1., Z w2=1., const char* c="");
58  template<class X, class Y, class Z> void Divide( franks2Histo<X>* , franks2Histo<X>* , Y w1=1., Z w2=1., const char* c="");
59  template<class X, class Y, class Z> void Fill( X value1, Y value2, Z weight=1);
60  template<class X> int GetBin(X value);
61  template<class X> void Scale(X scale);
62 #endif
63  // methods without template arguments
64  void Draw(const char* c="");
65  T GetBinContent(int bin) { return vec[bin]; }
66  T GetBinCenter(int bin);
67  int GetNbinsX() { return mBins; }
68  T GetMean();
69  T GetMaximum();
70  T GetMinimum();
71  T GetRMS();
72  void Reset(const char* c="");
73  void SetDirectory(int dummy) { /* no-op */};
74  void Sumw2() {/* no-op */};
75  T Integral();
76  T GetEntries() { return mEntries; }
77 };
78 #endif // FRANKS2DHISTO_HH
79 
80 #endif // Solaris