]> git.uio.no Git - u/mrichter/AliRoot.git/blob - CORRFW/AliCFContainer.h
added warning in SetElement (comment from P. Rosnet)
[u/mrichter/AliRoot.git] / CORRFW / AliCFContainer.h
1 #ifndef ALICFCONTAINER_H
2 #define ALICFCONTAINER_H
3
4 /* $Id$ */
5
6 //--------------------------------------------------------------------//
7 //                                                                    //
8 // AliCFContainer Class                                               //
9 // Class to handle input data for correction Framework                // 
10 //                                                                    //
11 //--------------------------------------------------------------------//
12
13 #include "AliCFFrame.h"
14
15 class TH1D;
16 class TH2D;
17 class TH3D;
18 class AliCFVGrid;
19 class TCollection;
20
21 class AliCFContainer : public AliCFFrame
22 {
23  public:
24   AliCFContainer();
25   AliCFContainer(const Char_t* name,const Char_t* title);
26   AliCFContainer(const Char_t* name, const Char_t* title,const Int_t nSelStep, const Int_t nVarIn, const Int_t* nBinIn, const Double_t  *binLimitsIn=0, const Bool_t useSparse = kTRUE);
27   AliCFContainer(const AliCFContainer& c);
28   
29   virtual ~AliCFContainer();
30   AliCFContainer& operator=(const AliCFContainer& corr);
31   virtual Int_t GetNStep() const {return fNStep;};
32
33   virtual void  SetNStep(Int_t nStep) {fNStep=nStep;}
34   virtual void  SetBinLimits(Int_t varindex, Double_t * array);
35
36   virtual void  Fill(Double_t *var, Int_t istep, Double_t weight=1.);
37
38   virtual Float_t GetOverFlows(Int_t var,Int_t istep) const;
39   virtual Float_t GetUnderFlows(Int_t var,Int_t istep)const ;
40   virtual Float_t GetEntries(Int_t istep)const ;
41   virtual Int_t   GetEmptyBins(Int_t istep)const ;
42   virtual Int_t   GetEmptyBins(Int_t istep, Double_t *varMin,Double_t *varMax) const ;
43   virtual Double_t GetIntegral(Int_t istep) const ;
44   virtual Double_t GetIntegral(Int_t istep, Double_t *varMin,Double_t *varMax) const ;
45   //basic operations
46
47   virtual void Copy(TObject& c) const;
48   virtual void Add(AliCFContainer* aContainerToAdd, Double_t c=1.);
49   virtual Long64_t Merge(TCollection* list);
50
51   virtual TH1D* ShowProjection( Int_t ivar, Int_t istep) const;
52   virtual TH2D* ShowProjection( Int_t ivar1, Int_t ivar2, Int_t istep) const;
53   virtual TH3D* ShowProjection( Int_t ivar1, Int_t ivar2,Int_t ivar3, Int_t istep) const;
54   virtual TH1D* ShowSlice( Int_t ivar, Double_t *varMin, Double_t *varMax, Int_t istep) const;
55   virtual TH2D* ShowSlice( Int_t ivar1, Int_t ivar2, Double_t *varMin, Double_t *varMax, Int_t istep) const;
56   virtual TH3D* ShowSlice( Int_t ivar1, Int_t ivar2, Int_t ivar3, Double_t *varMin, Double_t *varMax, Int_t istep) const;
57   virtual AliCFContainer*  MakeSlice (Int_t nVars, Int_t* vars, Double_t* varMin, Double_t* varMax) const ;
58   virtual AliCFContainer*  MakeSlice (Int_t nVars, Int_t* vars, Double_t* varMin, Double_t* varMax, Int_t nStep, Int_t* steps) const ;
59   virtual void  SetRangeUser(Int_t ivar, Double_t varMin, Double_t varMax, Int_t istep) ;
60   virtual void  SetRangeUser(Double_t* varMin, Double_t* varMax, Int_t istep) ;
61   virtual void  SetGrid(Int_t step, AliCFVGrid* grid) {fGrid[step]=grid;}
62   virtual AliCFVGrid * GetGrid(Int_t istep) const {return (AliCFVGrid*)fGrid[istep];};
63   
64  private:
65   Int_t    fNStep; //number of selection steps
66   AliCFVGrid **fGrid;//[fNStep]
67   
68   ClassDef(AliCFContainer,4);
69 };
70     
71 #endif
72