ROOT logo
#ifndef HRATREE_H
#define HRATREE_H

#include "TObject.h"
#include "TObjArray.h"
#include "hlocation.h"

class HCategory;
class HLocatedDataObject;
class HIterator;
class TArrayI;

class HRaNode : public TObject {
protected:
  TObjArray *fSubNodes;
public:
  HRaNode(void) { fSubNodes = 0; }
  HRaNode(Int_t size) {fSubNodes=new TObjArray(size);}
  ~HRaNode(void); 
  HRaNode *getSubNode(Int_t idx) {return (HRaNode *)
				    fSubNodes->UncheckedAt(idx);} 
  void addSubNode(HRaNode *n) {fSubNodes->Add(n);}
  virtual void clear(void);
  ClassDef(HRaNode,0) //node for a HRaTree
};

class HRaIndexNode : public HRaNode {
protected:
  TObjArray fCells;
  HRaIndexNode(void) : fCells(100) {}
public:
  HRaIndexNode(Int_t size) : fCells(size) {}
  ~HRaIndexNode(void) {}
  void clear(void);
  TObject *getCell(Int_t i) {return fCells.UncheckedAt(i);}
  void setCell(TObject *obj,Int_t i) {fCells.AddAt(obj,i);}
  ClassDef(HRaIndexNode,0) //Object table for a HRaTree
};

class HRaTree : public TObject {
 protected:
  HRaNode *fRoot; //index tree's root node
  HCategory *fSourceCategory; //! Category actually holding data
  Int_t fDepth; //Tree's depth
  HLocation fLoc; //Location for this tree.
  HIterator *fIter;//! Iterator on data objects in the category
  Int_t fLowerLevel;//

  Bool_t addObject(HLocatedDataObject *obj);
  Bool_t buildTree(TArrayI *sizes);
  HRaNode *buildNode(TArrayI *sizes,Int_t lvl);
 public:
  HRaTree(void);
  HRaTree(HCategory *cat,TArrayI *sizes);
  HRaTree(HCategory *cat,HLocation &aLoc,TArrayI *sizes);
  ~HRaTree(void);
  Bool_t update(void);
  HRaNode *getRoot(void) {return(fRoot);}
  virtual TObject *getObject(HLocation &aLoc);
  virtual TObject *getObject(Int_t i1=-1,Int_t i2=-1,Int_t i3=-1,Int_t i4=-1,
		     Int_t i5=-1,Int_t i6=-1,Int_t i7=-1,Int_t i8=-1,
		     Int_t i9=-1);
  ClassDef(HRaTree,1) //Random acces in a tree fashion.
};

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