#include "hmatrixcategory.h"

HMatrixCategory


class description - source file - inheritance tree (.pdf)

class HMatrixCategory : public HCategory

Inheritance Chart:
TObject
<-
HCategory
<-
HMatrixCategory

    public:
HMatrixCategory() HMatrixCategory(Text_t* className, Int_t nSizes, Int_t* sizes, Float_t fillRate = 0.1) HMatrixCategory(const HMatrixCategory&) ~HMatrixCategory() virtual void activateBranch(TTree* tree, Int_t splitLevel) virtual void Browse(TBrowser* b) static TClass* Class() virtual void Clear(Option_t* opt) virtual Bool_t filter(HFilter& aFilter) virtual Bool_t filter(HLocation& aLoc, HFilter& aFilter) virtual TClass* getClass() virtual const Text_t* getClassName() const const TCollection* getCollection() const virtual Int_t getEntries() virtual Int_t getIndex(HLocation& aLoc) virtual Int_t getIndex(TObject* pObj) virtual TObject*& getNewSlot(HLocation& aLoc, Int_t* pIndex = 0) virtual TObject* getObject(HLocation& aLoc) virtual TObject* getObject(Int_t index) Int_t getSize(Int_t aIdx) TArrayI* getSizes() virtual TObject*& getSlot(HLocation& aLoc, Int_t* pIndex = 0) virtual TClass* IsA() const virtual Bool_t isSelfSplitable() virtual void makeBranch(TBranch* parent) virtual TIterator* MakeIterator(Option_t* opt = "catIter", Bool_t dir = kIterForward) HMatrixCategory& operator=(const HMatrixCategory&) virtual Bool_t query(TCollection* aCol, HFilter& aFilter) virtual Bool_t query(TCollection* aCol, HLocation& aLoc) virtual Bool_t query(TCollection* aCol, HLocation& aLoc, HFilter& aFilter) void setup(Text_t* className, Int_t nSizes, Int_t* sizes, Float_t fillRate = 0.1) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    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;

Class Description

HMatrixCategory

  In this particular HCategory all the objects belonging to the category
 are stored in a matrix-like fashion; so before start using the category it
 is needed to indicate the number of indexes in this matrix and the range of
 each index

  When the matrix category is stored in a tree it creates one superbranch
 holding one subbranch per data member in the objects held by the category.
 All the objects held by the category are stored through that superbranch.



HMatrixCategory(void)
Default constructor

HMatrixCategory(Text_t *className, Int_t nSizes, Int_t *sizes, Float_t fillRate)
 Creates a HMatrixCategory holding objects of class "className" clasified
by nSizes indexes (giving their location) whose maximun values are the
indicated in the vector "sizes".

 However it only allocates memory for fillRate*(maximun number of objects)
data objects.

~HMatrixCategory(void)
Destructor

void setup(Text_t *className,Int_t nSizes,Int_t *sizes,Float_t fillRate)
This method sets up a category.

Input:
  className ---> a string with the name of the object's class stored in
                 the category
  nSizes ---> Number of indexes needed to access an object (fBranchingLevel)
  sizes ---> a vector of ints containing the maximum value for each of the
             indexes before.
  fillRate---> Expected fill factor in the category
               (number of slots used)/(maximun number of slots)

const Text_t* getClassName(void)
Returns the class' name of the objects held by the category

TClass* getClass(void)

TArrayI* getSizes(void)
returns an array of ints with the maximun value for the indexes used to
get an object

Int_t getSize(Int_t aIdx)
Returns the maximun value of the index aIdx

void activateBranch(TTree *tree,Int_t splitLevel)
Activates the branches in tree matching the appropiate names.

void makeBranch(TBranch *parent)
This function should not be called, since HMatrixCategory is not self
splittable

Bool_t isSelfSplitable(void)
Determines if the category can be automatically split or it has
its own splitting algorithm (in this last case the function makeBranch is
called for splitting).

returns kFALSE

TObject*& getNewSlot(HLocation &aLoc,Int_t *pIndex)
Should not be used for HMatrixCategory

TObject*& getSlot(HLocation &aLoc,Int_t *pIndex)
Returns a memory address corresponding to the HLocation aLoc, where a new
object can be instantiated

TObject* getObject(HLocation &aLoc)
Returns the object at the HLocation aLoc (see HCategory)

TObject* getObject(Int_t index)
Returns the object at index in internal TClonesArray

Bool_t query(TCollection *aCol,HFilter &aFilter)
Puts all objects in the category which pass the HFilter aFilter in the
collection pointed by aCol.

Bool_t query(TCollection *aCol,HLocation &aLoc)
Puts all objects in the category corresponding to the HLocation aLoc in
the collection pointed by aCol

Bool_t query(TCollection *aCol, HLocation &aLoc, HFilter &aFilter)
Puts all the objects in the category passing the HFilter aFilter and
corresponding to the HLocation aLoc into the collection pointed by aCol

Bool_t filter(HFilter &aFilter)
see HCategory

Bool_t filter(HLocation &aLoc,HFilter &aFilter)
see HCategory

TIterator* MakeIterator(Option_t* opt,Bool_t dir)
Returns an iterator, which iterates in the direction dir and (as default)
throuhg the whole category.

void Clear(Option_t *opt)
 see HCategory

void Browse(TBrowser *b)
Browse objects in this category

void Streamer(TBuffer &R__b)
 Stream an object of class HMatrixCategory.



Inline Functions


        const TCollection* getCollection() const
                     Int_t getEntries()
                     Int_t getIndex(HLocation& aLoc)
                     Int_t getIndex(TObject* pObj)
                   TClass* Class()
                   TClass* IsA() const
                      void ShowMembers(TMemberInspector& insp, char* parent)
                      void StreamerNVirtual(TBuffer& b)
           HMatrixCategory HMatrixCategory(const HMatrixCategory&)
          HMatrixCategory& operator=(const HMatrixCategory&)


Author: Manuel Sanchez
Last update: 22/02/02 by R. Holzmann
Copyright GENP (Univ. Santiago de Compostela)


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.