technical changes:
[u/mrichter/AliRoot.git] / CORRFW / AliCFContainer.h
CommitLineData
563113d0 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
1e9dad92 15class TH1D;
16class TH2D;
17class TH3D;
18class AliCFVGrid;
07b0477d 19class TCollection;
563113d0 20
21class AliCFContainer : public AliCFFrame
22{
23 public:
24 AliCFContainer();
25 AliCFContainer(const Char_t* name,const Char_t* title);
07b0477d 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);
563113d0 27 AliCFContainer(const AliCFContainer& c);
28
29 virtual ~AliCFContainer();
30 AliCFContainer& operator=(const AliCFContainer& corr);
31 virtual Int_t GetNStep() const {return fNStep;};
9105291d 32
33 virtual void SetNStep(Int_t nStep) {fNStep=nStep;}
1e9dad92 34 virtual void SetBinLimits(Int_t varindex, Double_t * array);
9105291d 35
1e9dad92 36 virtual void Fill(Double_t *var, Int_t istep, Double_t weight=1.);
563113d0 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 ;
563113d0 40 virtual Float_t GetEntries(Int_t istep)const ;
41 virtual Int_t GetEmptyBins(Int_t istep)const ;
1e9dad92 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 ;
563113d0 45 //basic operations
46
47 virtual void Copy(TObject& c) const;
1e9dad92 48 virtual void Add(AliCFContainer* aContainerToAdd, Double_t c=1.);
563113d0 49 virtual Long64_t Merge(TCollection* list);
50
1e9dad92 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;
c8df672e 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;
9105291d 57 virtual AliCFContainer* MakeSlice (Int_t nVars, Int_t* vars, Double_t* varMin, Double_t* varMax) const ;
38b1447f 58 virtual AliCFContainer* MakeSlice (Int_t nVars, Int_t* vars, Double_t* varMin, Double_t* varMax, Int_t nStep, Int_t* steps) const ;
c8df672e 59 virtual void SetRangeUser(Int_t ivar, Double_t varMin, Double_t varMax, Int_t istep) ;
9105291d 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;}
318f64b1 62 virtual AliCFVGrid * GetGrid(Int_t istep) const {return (AliCFVGrid*)fGrid[istep];};
563113d0 63
64 private:
65 Int_t fNStep; //number of selection steps
1e9dad92 66 AliCFVGrid **fGrid;//[fNStep]
563113d0 67
9105291d 68 ClassDef(AliCFContainer,4);
563113d0 69};
70
71#endif
72