This commit was generated by cvs2svn to compensate for changes in r23278,
[u/mrichter/AliRoot.git] / CORRFW / AliCFEffGrid.h
1 #ifndef ALICFEFFGRID_H
2 #define ALICFEFFGRID_H
3
4 /* $Id$ */
5
6 //--------------------------------------------------------------------//
7 //                                                                    //
8 // AliCFEffGrid Class                                              //
9 // Class to handle efficiency grids                                   // 
10 //                                                                    //
11 //--------------------------------------------------------------------//
12
13 #include "AliCFGrid.h"
14 #include "AliCFContainer.h"
15 #include <TNamed.h>
16 #include <TTree.h>
17 #include <TH1F.h>
18 #include <TH2F.h>
19 #include <TH3F.h>
20
21 class AliCFEffGrid : public AliCFGrid
22 {
23  public:
24   AliCFEffGrid();
25   AliCFEffGrid(const Char_t* name,const Char_t* title, const Int_t nVarIn, const Int_t* nBinIn, const Float_t  *binLimitsIn=0);
26   AliCFEffGrid(const Char_t* name,const Char_t* title,const AliCFContainer &c);
27   AliCFEffGrid(const AliCFEffGrid& eff);
28   
29   virtual ~AliCFEffGrid();
30   AliCFEffGrid& operator=(const AliCFEffGrid& eff);
31   virtual Float_t GetAverage() const ;
32   virtual Float_t GetAverage(Float_t *varMin,Float_t *varMax) const ;
33   virtual Int_t GetSelNumStep() const {return fSelNum;};
34   virtual Int_t GetSelDenStep() const {return fSelDen;};
35   virtual TH1F* Project( Int_t ivar) const;
36   virtual TH2F* Project( Int_t ivar1, Int_t ivar2) const;
37   virtual TH3F* Project( Int_t ivar1, Int_t ivar2,Int_t ivar3) const;
38
39   //Efficiency calculation
40   virtual void  CalculateEfficiency(Int_t istep1, Int_t istep2);
41   virtual const AliCFGrid*  GetNum() {return fContainer->GetGrid(fSelNum);};
42   virtual const AliCFGrid*  GetDen() {return fContainer->GetGrid(fSelDen);};
43   virtual void  SetContainer(const AliCFContainer &c) {fContainer=&c;};
44
45   //basic operations
46   virtual void Copy(TObject& eff) const;
47  
48   
49  private:
50   const    AliCFContainer *fContainer; //pointer to the input AliContainer
51   Int_t fSelNum; //numerator selection step
52   Int_t fSelDen; //denominator selection step
53   
54   ClassDef(AliCFEffGrid,1);
55 };
56     
57 #endif
58