]> git.uio.no Git - u/mrichter/AliRoot.git/blame - CORRFW/AliCFGrid.h
Re-structured digitizer
[u/mrichter/AliRoot.git] / CORRFW / AliCFGrid.h
CommitLineData
563113d0 1#ifndef ALICFGRID_H
2#define ALICFGRID_H
3
4/* $Id$ */
5
6//--------------------------------------------------------------------//
7// //
8// AliCFGrid.cxx Class //
9// Class to handle N-dim maps for the correction Framework //
10// //
11//--------------------------------------------------------------------//
12
13#include "AliCFFrame.h"
14
15class TH1F;
16class TH2F;
17class TH3F;
18
19class AliCFGrid : public AliCFFrame
20{
21 public:
22 AliCFGrid();
23 AliCFGrid(const Char_t* name,const Char_t* title);
24 AliCFGrid(const Char_t* name, const Char_t* title, const Int_t nVarIn, const Int_t* nBinIn, const Float_t *binLimitsIn=0);
25 AliCFGrid(const AliCFGrid & c);
26
27 virtual ~AliCFGrid();
28 AliCFGrid& operator=(const AliCFGrid& corr);
29 virtual void Fill(Float_t *var, Float_t weight=1.);
30 virtual Float_t GetOverFlows(Int_t var) const;
31 virtual Float_t GetUnderFlows(Int_t var)const ;
32 virtual Float_t GetOverFlows()const ;
33 virtual Float_t GetUnderFlows()const ;
34 virtual Float_t GetEntries()const ;
35 virtual Int_t GetEmptyBins()const ;
36 virtual Int_t CheckEfficiencyStats(Float_t thr) const;
37 virtual Int_t GetSumW2()const {return fSumW2;};
38 virtual Float_t GetElement(Int_t iel)const;
39 virtual Float_t GetElement(Int_t *bin)const;
40 virtual Float_t GetElement(Float_t *var)const;
41 virtual Float_t GetElementError(Int_t iel)const;
42 virtual Float_t GetElementError(Int_t *bin)const;
43 virtual Float_t GetElementError(Float_t *var)const;
44 virtual void SetElement(Int_t iel, Float_t val);
45 virtual void SetElement(Int_t *bin, Float_t val);
46 virtual void SetElement(Float_t *var, Float_t val);
47 virtual void SetElementError(Int_t iel, Float_t val);
48 virtual void SetElementError(Int_t *bin, Float_t val);
49 virtual void SetElementError(Float_t *var, Float_t val);
50 virtual void Scale(Int_t iel, Float_t *fact);
51 virtual void Scale(Int_t* bin, Float_t *fact);
52 virtual void Scale(Float_t* var, Float_t *fact);
53 virtual void Scale(Float_t *fact); // To normalize MC to int lumi, for ex.
54 virtual Int_t GetEmptyBins(Float_t *varMin,Float_t *varMax) const ;
55 virtual Float_t GetIntegral() const ;
56 virtual Float_t GetIntegral(Int_t *binMin,Int_t *binMax) const ;
57 virtual Float_t GetIntegral(Float_t *varMin,Float_t *varMax) const ;
58 virtual TH1F* Project( Int_t ivar) const;
59 virtual TH2F* Project( Int_t ivar1, Int_t ivar2) const;
60 virtual TH3F* Project( Int_t ivar1, Int_t ivar2,Int_t ivar3) const;
61 virtual TH1F* Slice( Int_t ivar, Float_t *varMin, Float_t *varMax) const;
62 virtual Float_t GetSum(Int_t ivar, Int_t *binMin, Int_t* binMax) const;
63
64 //basic operations
65
66 virtual void SumW2();
67 virtual void Copy(TObject& c) const;
68 virtual void Add(AliCFGrid* aGrid, Float_t c=1.);
69 virtual void Add(AliCFGrid* aGrid1 ,AliCFGrid* aGrid2, Float_t c1=1.,Float_t c2=1.);
70 virtual void Multiply(AliCFGrid* aGrid, Float_t c=1.);
71 virtual void Multiply(AliCFGrid* aGrid1,AliCFGrid* aGrid2, Float_t c1=1.,Float_t c2=1.);
72 virtual void Divide(AliCFGrid* aGrid, Float_t c=1.,Option_t *option=0);
73 virtual void Divide(AliCFGrid* aGrid1, AliCFGrid* aGrid2, Float_t c1=1., Float_t c2=1.,Option_t *option=0);
74 virtual Long64_t Merge(TCollection* list);
75
76
77 protected:
78 Bool_t fSumW2;//flag to check if calculation of squared weights enabled
79 Float_t fNunflTot;//Total number of underflows
80 Float_t fNovflTot;//Total number of underflows
81 Float_t fNentriesTot;//Total number of entries
82 Float_t *fNunfl;//[fNVar] underflows in each dimension
83 Float_t *fNovfl;//[fNVar] overflows in each dimension
84
85 Float_t *fData;//[fNDim] The data Container
86 Float_t *fErr2;//[fNDim] The squared weights Container (only with SumW2)
87
88
89 ClassDef(AliCFGrid,1);
90};
91
92#endif
93