ROOT logo
#ifndef HMATRIXCATEGORY_H
#define HMATRIXCATEGORY_H

#include "hcategory.h"
#include "hindextable.h"

class TArrayI;
class TClonesArray;
class HMatrixCatIter;
class TClass;

class HMatrixCategory : public HCategory {
friend class HMatrixCatIter;
protected:
  HIndexTable *fIndexTable; // Table of the position in fData of data objects
  Int_t fNDataObjs; //Number of data objects actually stored.
  TClonesArray *fData; // Container for the data in the Matrix category;
public:
   HMatrixCategory(void);					        
   HMatrixCategory(const Text_t *className,Int_t nSizes,Int_t *sizes,Float_t fillRate=0.1);
   ~HMatrixCategory(void);
   void setup(const Text_t *className,Int_t nSizes,Int_t *sizes,Float_t fillRate=0.1);
   const Text_t *getClassName(void);
   const TCollection* getCollection(){return fData;} 
   TClass *getClass(void);
   TArrayI *getSizes(void);
   Int_t getSize(Int_t aIdx);
   Int_t getEntries() {return fData->GetEntriesFast();}
   void activateBranch(TTree *tree,Int_t splitLevel);
   void makeBranch(TBranch *parent);
   Bool_t isSelfSplitable(void);
   TObject *&getNewSlot(HLocation &aLoc,Int_t *pIndex=0);
   TObject *&getSlot(HLocation &aLoc,Int_t *pIndex=0);
   TObject *getObject(HLocation &aLoc);
   TObject *getObject(Int_t index);
   Int_t getIndex(HLocation &aLoc) {return fIndexTable->getIndex(aLoc);}
   Int_t getIndex(TObject* pObj) {return fData->IndexOf(pObj);}
   Bool_t query(TCollection *aCol,HFilter &aFilter);
   Bool_t query(TCollection *aCol,HLocation &aLoc);
   Bool_t query(TCollection *aCol,HLocation &aLoc,HFilter &aFilter);
   Bool_t filter(HFilter &aFilter);
   Bool_t filter(HLocation &aLoc,HFilter &aFilter);
   TIterator *MakeIterator(const Option_t* opt="catIter",Bool_t dir=kIterForward);
   void Clear(const Option_t *opt="");
   void Delete() {fData->Delete();};
   void Browse(TBrowser *b);
   ClassDef(HMatrixCategory,1) //Category where data are stored in a vector
};

#endif /* !HMATRIXCATEGORY_H */




 hmatrixcategory.h:1
 hmatrixcategory.h:2
 hmatrixcategory.h:3
 hmatrixcategory.h:4
 hmatrixcategory.h:5
 hmatrixcategory.h:6
 hmatrixcategory.h:7
 hmatrixcategory.h:8
 hmatrixcategory.h:9
 hmatrixcategory.h:10
 hmatrixcategory.h:11
 hmatrixcategory.h:12
 hmatrixcategory.h:13
 hmatrixcategory.h:14
 hmatrixcategory.h:15
 hmatrixcategory.h:16
 hmatrixcategory.h:17
 hmatrixcategory.h:18
 hmatrixcategory.h:19
 hmatrixcategory.h:20
 hmatrixcategory.h:21
 hmatrixcategory.h:22
 hmatrixcategory.h:23
 hmatrixcategory.h:24
 hmatrixcategory.h:25
 hmatrixcategory.h:26
 hmatrixcategory.h:27
 hmatrixcategory.h:28
 hmatrixcategory.h:29
 hmatrixcategory.h:30
 hmatrixcategory.h:31
 hmatrixcategory.h:32
 hmatrixcategory.h:33
 hmatrixcategory.h:34
 hmatrixcategory.h:35
 hmatrixcategory.h:36
 hmatrixcategory.h:37
 hmatrixcategory.h:38
 hmatrixcategory.h:39
 hmatrixcategory.h:40
 hmatrixcategory.h:41
 hmatrixcategory.h:42
 hmatrixcategory.h:43
 hmatrixcategory.h:44
 hmatrixcategory.h:45
 hmatrixcategory.h:46
 hmatrixcategory.h:47
 hmatrixcategory.h:48
 hmatrixcategory.h:49
 hmatrixcategory.h:50
 hmatrixcategory.h:51
 hmatrixcategory.h:52
 hmatrixcategory.h:53
 hmatrixcategory.h:54