Some cleaning and simplification in container-related classes and
[u/mrichter/AliRoot.git] / CORRFW / AliCFDataGrid.h
1 #ifndef ALICFDATAGRID_H
2 #define ALICFDATAGRID_H
3
4 /* $Id$ */
5
6 //--------------------------------------------------------------------//
7 //                                                                    //
8 // AliCFDataGrid Class                                             //
9 // Class to handle observed data and correct them                     // 
10 //                                                                    //
11 //--------------------------------------------------------------------//
12
13 #include "AliCFGrid.h"
14 #include "AliCFEffGrid.h"
15 #include "AliCFContainer.h"
16
17 class AliCFDataGrid : public AliCFGrid
18 {
19  public:
20   AliCFDataGrid();
21   AliCFDataGrid(const Char_t* name,const Char_t* title);
22   AliCFDataGrid(const Char_t* name,const Char_t* title, const Int_t nVarIn, const Int_t* nBinIn, const Double_t  *binLimitsIn=0);
23   AliCFDataGrid(const Char_t* name,const Char_t* title,const AliCFContainer &c);
24   AliCFDataGrid(const AliCFDataGrid& c);
25   
26   virtual ~AliCFDataGrid();
27   AliCFDataGrid& operator=(const AliCFDataGrid& c);
28   virtual Int_t GetSelDataStep() const {return fSelData;};
29
30   // Methods for handling/correcting data 
31
32   virtual void  SetMeasured(Int_t istep);
33   virtual const AliCFVGrid*  GetData() {return (AliCFVGrid*)fContainer->GetGrid(fSelData);};
34   virtual void  ApplyEffCorrection(const AliCFEffGrid &eff);
35   virtual void  ApplyBGCorrection(const AliCFDataGrid &c);
36   virtual void  SetContainer(const AliCFContainer &c) {fContainer=&c;};
37   //basic operations
38   virtual void   Copy(TObject& data) const;
39  
40   
41  private:
42   Int_t fSelData; //sel step of the observed data 
43   const AliCFContainer *fContainer; //pointer to the input data Container
44   ClassDef(AliCFDataGrid,2);
45 };
46     
47 #endif
48