ROOT logo
#ifndef HLINEARCATEGORY_H
#define HLINEARCATEGORY_H

#include "hcategory.h"

class HLinearCatIter;

class HLinearCategory : public HCategory {
friend class HLinearCatIter;
protected:
  TClonesArray *fData; // Data array of the category
  Int_t fNDataObjs;
  Bool_t hasDynamicObjects;
public:
  HLinearCategory(void);
  HLinearCategory(const Text_t *className,Int_t size=1000);
  ~HLinearCategory(void);
  const Text_t *getClassName(void);
  TClass *getClass(void) {return fData->GetClass();}
  void makeBranch(TBranch *parent);
  void activateBranch(TTree *tree,Int_t splitLevel);
  Int_t getEntries() {return fData->GetEntriesFast();}
  TObject *&getNewSlot(HLocation &aLoc,Int_t* pIndex=0);
  TObject *&getSlot(HLocation &aLoc,Int_t* pIndex=0);
  TObject *&getSlot(Int_t index);
  TObject *getObject(HLocation &aLoc);
  TObject *getObject(Int_t index);
  const TObjArray* getData() { return fData;}
  Bool_t filter(HFilter &aFilter);
  Bool_t filter(HLocation &aLoc,HFilter &aFilter);
  void Clear(const Option_t *opt="");
  void Delete() {fData->Delete();};
  void Compress(void) {    // compresss the TClonesArray
     fData->Compress();
     fNDataObjs = fData->GetEntries();
  }
  void setDynamicObjects(Bool_t isDyn=kTRUE);
  Bool_t getDynamicObjects() { return hasDynamicObjects; }
  void freeDynamicMemory();
  
  inline Bool_t isSelfSplitable(void);
  TIterator *MakeIterator(const Option_t* opt="catIter",Bool_t dir=kIterForward);
  Int_t getIndex(HLocation &aLoc) {return aLoc[0];}
  Int_t getIndex(TObject* pObj) {return fData->IndexOf(pObj);}
  void  sort(void) {fData->Sort(fNDataObjs);}
  const TCollection* getCollection(){return fData;} 
  ClassDef(HLinearCategory,2) // Generic data category (1-dim array of objects)
};
  
//--------------------inlines--------------------------------
inline Bool_t HLinearCategory::isSelfSplitable(void) {
 return kFALSE;
}

#endif /* !HLINEARCATEGORY_H */







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