]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/Tools/AliTHn.h
coverity fix (Livio)
[u/mrichter/AliRoot.git] / PWG / Tools / AliTHn.h
1 #ifndef AliTHn_H
2 #define AliTHn_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // optimized data container reusing functionality of AliCFContainer / THnsparse
8
9 #include "TObject.h"
10 #include "TString.h"
11 #include "AliCFContainer.h"
12
13 class TArrayF;
14 class TCollection;
15
16 class AliTHn : public AliCFContainer
17 {
18  public:
19   AliTHn();
20   AliTHn(const Char_t* name, const Char_t* title,const Int_t nSelStep, const Int_t nVarIn, const Int_t* nBinIn);
21   
22   virtual ~AliTHn();
23   
24   virtual void  Fill(const Double_t *var, Int_t istep, Double_t weight=1.) ;
25   virtual void  FillParent();
26   virtual void  FillContainer(AliCFContainer* cont);
27   
28   TArrayF* GetValues(Int_t step) { return fValues[step]; }
29   TArrayF* GetSumw2(Int_t step)  { return fSumw2[step]; }
30   
31   void DeleteContainers();
32   void ReduceAxis();
33   
34   AliTHn(const AliTHn &c);
35   AliTHn& operator=(const AliTHn& corr);
36   virtual void Copy(TObject& c) const;
37
38   virtual Long64_t Merge(TCollection* list);
39   
40 protected:
41   void Init();
42   Long64_t GetGlobalBinIndex(const Int_t* binIdx);
43   
44   Long64_t fNBins;   // number of total bins
45   Int_t    fNVars;   // number of variables
46   Int_t    fNSteps;  // number of selection steps
47   TArrayF **fValues; //[fNSteps] data container
48   TArrayF **fSumw2;  //[fNSteps] data container
49   TAxis** axisCache; //! cache axis pointers (about 50% of the time in Fill is spent in GetAxis otherwise)
50   
51   ClassDef(AliTHn, 3) // THn like container
52 };
53
54 #endif