4 //--------------------------------------------------------------------//
6 // AliCFGrid.cxx Class //
7 // Class to handle N-dim maps for the correction Framework //
8 // The class uses a une-dimensional array of floats to store the grid //
10 //--------------------------------------------------------------------//
12 #include "AliCFVGrid.h"
18 class AliCFGrid : public AliCFVGrid
22 AliCFGrid(const Char_t* name,const Char_t* title);
23 AliCFGrid(const Char_t* name, const Char_t* title, const Int_t nVarIn, const Int_t* nBinIn, const Double_t *binLimitsIn=0);
24 AliCFGrid(const AliCFGrid & c);
27 AliCFGrid& operator=(const AliCFGrid& corr);
29 virtual void Fill(Double_t *var, Double_t weight=1.);
31 virtual Float_t GetOverFlows(Int_t var) const;
32 virtual Float_t GetUnderFlows(Int_t var)const ;
33 virtual Float_t GetEntries()const ;
35 virtual Float_t GetElement(Int_t iel)const;
36 virtual Float_t GetElement(Int_t *bin)const;
37 virtual Float_t GetElement(Double_t *var)const;
38 virtual Float_t GetElementError(Int_t iel)const;
39 virtual Float_t GetElementError(Int_t *bin)const;
40 virtual Float_t GetElementError(Double_t *var)const;
41 virtual void SetElement(Int_t iel, Float_t val);
42 virtual void SetElement(Int_t *bin, Float_t val);
43 virtual void SetElement(Double_t *var, Float_t val);
44 virtual void SetElementError(Int_t iel, Float_t val);
45 virtual void SetElementError(Int_t *bin, Float_t val);
46 virtual void SetElementError(Double_t *var, Float_t val);
48 virtual TH1D* Project( Int_t ivar) const;
49 virtual TH2D* Project( Int_t ivar1, Int_t ivar2) const;
50 virtual TH3D* Project( Int_t ivar1, Int_t ivar2,Int_t ivar3) const;
51 virtual TH1D* Slice( Int_t ivar, Double_t *varMin, Double_t *varMax) const;
56 virtual void Copy(TObject& c) const;
57 virtual void Add(AliCFVGrid* aGrid, Double_t c=1.);
58 virtual void Add(AliCFVGrid* aGrid1 ,AliCFVGrid* aGrid2, Double_t c1=1.,Double_t c2=1.);
59 virtual void Multiply(AliCFVGrid* aGrid, Double_t c=1.);
60 virtual void Multiply(AliCFVGrid* aGrid1,AliCFVGrid* aGrid2, Double_t c1=1.,Double_t c2=1.);
61 virtual void Divide(AliCFVGrid* aGrid, Double_t c=1.);
62 virtual void Divide(AliCFVGrid* aGrid1, AliCFVGrid* aGrid2, Double_t c1=1., Double_t c2=1.,Option_t *option=0);
67 Float_t fNentriesTot;//Total number of entries
68 Float_t *fNunfl;//[fNVar] underflows in each dimension
69 Float_t *fNovfl;//[fNVar] overflows in each dimension
70 Float_t *fData;//[fNDim] The data Container
71 Float_t *fErr2;//[fNDim] The squared weights Container (only with SumW2)
74 ClassDef(AliCFGrid,4);