]>
Commit | Line | Data |
---|---|---|
85bfac17 | 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(); | |
1bba939a | 26 | virtual void FillContainer(AliCFContainer* cont); |
85bfac17 | 27 | |
28 | TArrayF* GetValues(Int_t step) { return fValues[step]; } | |
29 | TArrayF* GetSumw2(Int_t step) { return fSumw2[step]; } | |
30 | ||
31 | void DeleteContainers(); | |
c32a0ca9 | 32 | void ReduceAxis(); |
85bfac17 | 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 | |
eed401dc | 49 | TAxis** axisCache; //! cache axis pointers (about 50% of the time in Fill is spent in GetAxis otherwise) |
85bfac17 | 50 | |
eed401dc | 51 | ClassDef(AliTHn, 3) // THn like container |
85bfac17 | 52 | }; |
53 | ||
54 | #endif |