]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/hough/AliL3Histogram.h
- check for AliRoot features/libs/files and corresponding conditional
[u/mrichter/AliRoot.git] / HLT / hough / AliL3Histogram.h
index 476115c41ee26b9733475d01d3243556b211345c..4381b8a1809cc71e2195a42d26fe450c16410845 100644 (file)
@@ -1,40 +1,17 @@
-#ifndef ALIL3_HISTOGRAM
-#define ALIL3_HISTOGRAM
+// @(#) $Id$
 
+#ifndef ALIL3HISTOGRAM_H
+#define ALIL3HISTOGRAM_H
+
+#include "AliL3StandardIncludes.h"
 #include "AliL3RootTypes.h"
+#include "AliL3StandardIncludes.h"
 
 #ifdef use_root
 #include <TH2.h>
 #endif
 
 class AliL3Histogram {
-  
- protected:
-  
-  Int_t *fContent; //!
-  Char_t fName[100];
-  //Char_t fID[100]; //not used 
-  Int_t fNxbins;
-  Int_t fNybins;
-  Int_t fNcells;
-  Int_t fEntries;
-  Int_t fFirstXbin;
-  Int_t fFirstYbin;
-  Int_t fLastXbin;
-  Int_t fLastYbin;
-  Int_t fThreshold;
-
-  Double_t fXmin;
-  Double_t fYmin;
-  Double_t fXmax;
-  Double_t fYmax;
-  Double_t fBinwidthX;
-  Double_t fBinwidthY;
-
-#ifdef use_root
-  TH2F *fRootHisto;
-#endif  
-  
  public:
 
   AliL3Histogram();
@@ -43,11 +20,16 @@ class AliL3Histogram {
   
   void Reset();
   virtual void Fill(Double_t x,Double_t y,Int_t weight=1);
-  virtual Int_t FindBin(Double_t x,Double_t y);
-  virtual Int_t FindXbin(Double_t x);
-  virtual Int_t FindYbin(Double_t y);
-  Int_t GetBin(Int_t xbin,Int_t ybin);
-  Int_t GetBinContent(Int_t bin);
+  virtual void Fill(Double_t x,Int_t ybin,Int_t weight=1);
+  virtual void Fill(Int_t xbin,Double_t y,Int_t weight=1);
+  virtual void Fill(Int_t xbin,Int_t ybin,Int_t weight=1);
+  virtual Int_t FindBin(Double_t x,Double_t y) const;
+  virtual Int_t FindLabelBin(Double_t x,Double_t y) const;
+  virtual Int_t FindXbin(Double_t x) const;
+  virtual Int_t FindYbin(Double_t y) const;
+  Int_t GetBin(Int_t xbin,Int_t ybin) const;
+  Int_t GetLabelBin(Int_t xbin,Int_t ybin) const;
+  Int_t GetBinContent(Int_t bin) const;
   void SetBinContent(Int_t xbin,Int_t ybin,Int_t value);
   void SetBinContent(Int_t bin,Int_t value);
   void AddBinContent(Int_t xbin,Int_t ybin,Int_t weight);
@@ -56,7 +38,9 @@ class AliL3Histogram {
   void SetThreshold(Int_t i) {fThreshold = i;}
   void CreateRootHisto();
   virtual void Draw(Char_t *option="hist");
-  virtual void Print() {};
+  virtual void Print() const {};
+
+  friend ofstream& operator<< (ofstream &o, const AliL3Histogram &h);
 
 #ifdef use_root
   TH2F *GetRootHisto();
@@ -64,19 +48,51 @@ class AliL3Histogram {
   void *GetRootHisto();
 #endif
     
-  Double_t GetXmin() {return fXmin;}
-  Double_t GetXmax() {return fXmax;}
-  Double_t GetYmin() {return fYmin;}
-  Double_t GetYmax() {return fYmax;}
-  virtual Double_t GetBinCenterX(Int_t xbin);
-  virtual Double_t GetBinCenterY(Int_t ybin);
-  Int_t GetFirstXbin() {return fFirstXbin;}
-  Int_t GetLastXbin() {return fLastXbin;}
-  Int_t GetFirstYbin() {return fFirstYbin;}
-  Int_t GetLastYbin() {return fLastYbin;}
-  Int_t GetNbinsX() {return fNxbins;}
-  Int_t GetNbinsY() {return fNybins;}
-  Int_t GetNEntries() {return fEntries;}
+  Double_t GetXmin() const {return fXmin;}
+  Double_t GetXmax() const {return fXmax;}
+  Double_t GetYmin() const {return fYmin;}
+  Double_t GetYmax() const {return fYmax;}
+  virtual Double_t GetBinCenterX(Int_t xbin) const;
+  virtual Double_t GetBinCenterY(Int_t ybin) const;
+  Double_t GetPreciseBinCenterX(Float_t xbin) const;
+  Double_t GetPreciseBinCenterY(Float_t ybin) const;
+  Double_t GetBinWidthX() const {return fBinwidthX;}
+  Double_t GetBinWidthY() const {return fBinwidthY;}
+  Int_t GetFirstXbin() const {return fFirstXbin;}
+  Int_t GetLastXbin() const {return fLastXbin;}
+  Int_t GetFirstYbin() const {return fFirstYbin;}
+  Int_t GetLastYbin() const {return fLastYbin;}
+  Int_t GetNbinsX() const {return fNxbins;}
+  Int_t GetNbinsY() const {return fNybins;}
+  Int_t GetNEntries() const {return fEntries;}
+
+  Int_t *fContent; //!
+  Int_t *GetContentArray() const {return fContent;}
+    
+ protected:
+  Char_t fName[100]; // Name of the histogram
+  Int_t fNxbins; // Number of bins in the histogram
+  Int_t fNybins; // Number of bins in the histogram
+  Int_t fNcells; // Overall number of bins in the histogram
+  Int_t fEntries; // Number of entries in the histogram
+  Int_t fFirstXbin; // First active bin
+  Int_t fFirstYbin; // First active bin
+  Int_t fLastXbin; // Last active bin
+  Int_t fLastYbin; // Last active bin
+  Int_t fThreshold; // Bin content threshold 
+
+  Double_t fXmin; // Lower limit in X
+  Double_t fYmin; // Lower limit in Y
+  Double_t fXmax; // Upper limit in X
+  Double_t fYmax; // Upper limit in Y
+
+#ifdef use_root
+  TH2F *fRootHisto; // Corresponding ROOT histogram
+#endif  
+
+ private:
+  Double_t fBinwidthX; // Bin width of the Hough space
+  Double_t fBinwidthY; // Bin width of the Hough space
   
   ClassDef(AliL3Histogram,1) //2D histogram class