Little changes to make g++ version 3.2 compile the hough library.
[u/mrichter/AliRoot.git] / HLT / hough / AliL3Histogram.h
1 #ifndef ALIL3_HISTOGRAM
2 #define ALIL3_HISTOGRAM
3
4 #include "AliL3RootTypes.h"
5
6 #ifdef use_root
7 #include <TH2.h>
8 #endif
9
10 class AliL3Histogram {
11   
12  protected:
13   
14   Int_t *fContent; //!
15   Char_t fName[100];
16   //Char_t fID[100]; //not used 
17   Int_t fNxbins;
18   Int_t fNybins;
19   Int_t fNcells;
20   Int_t fEntries;
21   Int_t fFirstXbin;
22   Int_t fFirstYbin;
23   Int_t fLastXbin;
24   Int_t fLastYbin;
25   Int_t fThreshold;
26
27   Double_t fXmin;
28   Double_t fYmin;
29   Double_t fXmax;
30   Double_t fYmax;
31   Double_t fBinwidthX;
32   Double_t fBinwidthY;
33
34 #ifdef use_root
35   TH2F *fRootHisto;
36 #endif  
37   
38  public:
39
40   AliL3Histogram();
41   AliL3Histogram(Char_t *name,Char_t *id,Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax);
42   virtual ~AliL3Histogram();
43   
44   void Reset();
45   virtual void Fill(Double_t x,Double_t y,Int_t weight=1);
46   virtual Int_t FindBin(Double_t x,Double_t y);
47   virtual Int_t FindXbin(Double_t x);
48   virtual Int_t FindYbin(Double_t y);
49   Int_t GetBin(Int_t xbin,Int_t ybin);
50   Int_t GetBinContent(Int_t bin);
51   void SetBinContent(Int_t xbin,Int_t ybin,Int_t value);
52   void SetBinContent(Int_t bin,Int_t value);
53   void AddBinContent(Int_t xbin,Int_t ybin,Int_t weight);
54   void AddBinContent(Int_t bin,Int_t weight);
55   void Add(AliL3Histogram *h1,Double_t weight=1);
56   void SetThreshold(Int_t i) {fThreshold = i;}
57   void CreateRootHisto();
58   virtual void Draw(Char_t *option="hist");
59   virtual void Print() {};
60
61 #ifdef use_root
62   TH2F *GetRootHisto();
63 #else
64   void *GetRootHisto();
65 #endif
66     
67   Double_t GetXmin() {return fXmin;}
68   Double_t GetXmax() {return fXmax;}
69   Double_t GetYmin() {return fYmin;}
70   Double_t GetYmax() {return fYmax;}
71   virtual Double_t GetBinCenterX(Int_t xbin);
72   virtual Double_t GetBinCenterY(Int_t ybin);
73   Int_t GetFirstXbin() {return fFirstXbin;}
74   Int_t GetLastXbin() {return fLastXbin;}
75   Int_t GetFirstYbin() {return fFirstYbin;}
76   Int_t GetLastYbin() {return fLastYbin;}
77   Int_t GetNbinsX() {return fNxbins;}
78   Int_t GetNbinsY() {return fNybins;}
79   Int_t GetNEntries() {return fEntries;}
80   
81   ClassDef(AliL3Histogram,1) //2D histogram class
82     
83 };
84
85 #ifdef use_root
86 inline TH2F *AliL3Histogram::GetRootHisto()
87 {
88   if(!fRootHisto)
89     {
90       STDCERR<<"AliL3Histogram::GetRootHisto() : You must first Draw histogram before accessing it"<<STDENDL;
91       return 0;
92     }
93   else
94     return fRootHisto;
95 }
96 #else
97 inline void *AliL3Histogram::GetRootHisto()
98 {
99   STDCERR<<"AliL3Histogram::GetRootHisto() : You must compile with ROOT in order to interface the ROOT histogram"<<STDENDL;
100   return 0;
101 }
102 #endif
103
104 #endif