3 #ifndef ALIL3_HISTOGRAM
4 #define ALIL3_HISTOGRAM
6 #include "AliL3StandardIncludes.h"
7 #include "AliL3RootTypes.h"
8 #include "AliL3StandardIncludes.h"
14 class AliL3Histogram {
45 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);
46 virtual ~AliL3Histogram();
49 virtual void Fill(Double_t x,Double_t y,Int_t weight=1);
50 virtual void Fill(Double_t x,Int_t ybin,Int_t weight=1);
51 virtual void Fill(Int_t xbin,Double_t y,Int_t weight=1);
52 virtual void Fill(Int_t xbin,Int_t ybin,Int_t weight=1);
53 virtual Int_t FindBin(Double_t x,Double_t y) const;
54 virtual Int_t FindXbin(Double_t x) const;
55 virtual Int_t FindYbin(Double_t y) const;
56 Int_t GetBin(Int_t xbin,Int_t ybin) const;
57 Int_t GetBinContent(Int_t bin) const;
58 void SetBinContent(Int_t xbin,Int_t ybin,Int_t value);
59 void SetBinContent(Int_t bin,Int_t value);
60 void AddBinContent(Int_t xbin,Int_t ybin,Int_t weight);
61 void AddBinContent(Int_t bin,Int_t weight);
62 void Add(AliL3Histogram *h1,Double_t weight=1);
63 void SetThreshold(Int_t i) {fThreshold = i;}
64 void CreateRootHisto();
65 virtual void Draw(Char_t *option="hist");
66 virtual void Print() {};
68 friend ofstream& operator<< (ofstream &o, const AliL3Histogram &h);
76 Double_t GetXmin() const {return fXmin;}
77 Double_t GetXmax() const {return fXmax;}
78 Double_t GetYmin() const {return fYmin;}
79 Double_t GetYmax() const {return fYmax;}
80 virtual Double_t GetBinCenterX(Int_t xbin) const;
81 virtual Double_t GetBinCenterY(Int_t ybin) const;
82 Double_t GetPreciseBinCenterX(Float_t xbin) const;
83 Double_t GetPreciseBinCenterY(Float_t ybin) const;
84 Double_t GetBinWidthX() const {return fBinwidthX;}
85 Double_t GetBinWidthY() const {return fBinwidthY;}
86 Int_t GetFirstXbin() const {return fFirstXbin;}
87 Int_t GetLastXbin() const {return fLastXbin;}
88 Int_t GetFirstYbin() const {return fFirstYbin;}
89 Int_t GetLastYbin() const {return fLastYbin;}
90 Int_t GetNbinsX() const {return fNxbins;}
91 Int_t GetNbinsY() const {return fNybins;}
92 Int_t GetNEntries() const {return fEntries;}
94 ClassDef(AliL3Histogram,1) //2D histogram class
99 inline TH2F *AliL3Histogram::GetRootHisto()
103 STDCERR<<"AliL3Histogram::GetRootHisto() : You must first Draw histogram before accessing it"<<STDENDL;
110 inline void *AliL3Histogram::GetRootHisto()
112 STDCERR<<"AliL3Histogram::GetRootHisto() : You must compile with ROOT in order to interface the ROOT histogram"<<STDENDL;