690aa7fabdb12905497837567a3af50795284e71
[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 #include <TNamed.h>
17 #include <TTree.h>
18 #include <TH1F.h>
19 #include <TH2F.h>
20 #include <TH3F.h>
21
22 class AliCFDataGrid : public AliCFGrid
23 {
24  public:
25   AliCFDataGrid();
26   AliCFDataGrid(const Char_t* name,const Char_t* title);
27   AliCFDataGrid(const Char_t* name,const Char_t* title, const Int_t nVarIn, const Int_t* nBinIn, const Double_t  *binLimitsIn=0);
28   AliCFDataGrid(const Char_t* name,const Char_t* title,const AliCFContainer &c);
29   AliCFDataGrid(const AliCFDataGrid& c);
30   
31   virtual ~AliCFDataGrid();
32   AliCFDataGrid& operator=(const AliCFDataGrid& c);
33   virtual Int_t GetSelDataStep() const {return fSelData;};
34
35   // Methods for handling/correcting data 
36
37   virtual void  SetMeasured(Int_t istep);
38   virtual const AliCFVGrid*  GetData() {return fContainer->GetGrid(fSelData);};
39   virtual void  ApplyEffCorrection(const AliCFEffGrid &eff);
40   virtual void  ApplyBGCorrection(const AliCFDataGrid &c);
41   virtual void  SetContainer(const AliCFContainer &c) {fContainer=&c;};
42   //basic operations
43   virtual void   Copy(TObject& data) const;
44  
45   
46  private:
47   Int_t fSelData; //sel step of the observed data 
48   const AliCFContainer *fContainer; //pointer to the input data Container
49   ClassDef(AliCFDataGrid,1);
50 };
51     
52 #endif
53