ROOT » MISC » TABLE » TTableDescriptor

class TTableDescriptor: public TTable


 TTableDescriptor - run-time descriptor of the TTable object rows.

Function Members (Methods)

public:
virtual~TTableDescriptor()
voidTObject::AbstractMethod(const char* method) const
virtual voidTDataSet::Add(TDataSet* dataset)
virtual Int_tAddAt(const void* c)
virtual voidAddAt(const void* c, Int_t i)
virtual voidAddAt(TDataSet* dataset, Int_t idx = 0)
virtual voidAddAt(const tableDescriptor_st& element, const char* comment, Int_t indx)
virtual voidTDataSet::AddAtAndExpand(TDataSet* dataset, Int_t idx = 0)
virtual voidTDataSet::AddFirst(TDataSet* dataset)
virtual voidTDataSet::AddLast(TDataSet* dataset)
virtual voidTTable::Adopt(Int_t n, void* array)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual Long_tTTable::AppendRows(const void* row, UInt_t nRows)
virtual voidTTable::AsString(void* buf, TTable::EColumnType type, Int_t width, ostream& out) const
const void*TTable::At(Int_t i) const
tableDescriptor_st*begin() const
virtual voidTTable::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual TObject*TDataSet::Clone(const char* newname = "") const
Int_tColumnByName(const Char_t* columnName = 0) const
const Char_t*ColumnName(Int_t columnIndex) const
UInt_tColumnSize(Int_t columnIndex) const
Int_tColumnSize(const Char_t* columnName = 0) const
TTable::EColumnTypeColumnType(Int_t columnIndex) const
TTable::EColumnTypeColumnType(const Char_t* columnName = 0) const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
Int_tTTable::CopyRows(const TTable* srcTable, Long_t srcRow = 0, Long_t dstRow = 0, Long_t nRows = 0, Bool_t expand = kFALSE)
virtual voidTTable::CopySet(TTable& array)
TStringCreateLeafList() const
virtual voidTTable::DeleteRows(Long_t indx, UInt_t nRows = 1)
UInt_tDimensions(Int_t columnIndex) const
Int_tDimensions(const Char_t* columnName = 0) const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTTable::Draw(Option_t* opt)
virtual TH1*TTable::Draw(TCut varexp, TCut selection, Option_t* option = "", Int_t nentries = 1000000000, Int_t firstentry = 0)
virtual TH1*TTable::Draw(const char* varexp, const char* selection, Option_t* option = "", Int_t nentries = 1000000000, Int_t firstentry = 0)MENU
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
tableDescriptor_st*end() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TDataSet*TDataSet::Find(const char* path) const
virtual TDataSet*TDataSet::FindByName(const char* name, const char* path = "", Option_t* opt = "") const
virtual TDataSet*TDataSet::FindByPath(const char* path) const
virtual TDataSet*TDataSet::FindByTitle(const char* title, const char* path = "", Option_t* opt = "") const
virtual TObject*TDataSet::FindObject(const char* name) const
virtual TObject*TDataSet::FindObject(const TObject* o) const
virtual TDataSet*TDataSet::First() const
virtual voidTTable::Fit(const char* formula, const char* varexp, const char* selection = "", Option_t* option = "", Option_t* goption = "", Int_t nentries = 1000000000, Int_t firstentry = 0)MENU
void*TTable::GetArray() const
virtual TSeqCollection*TDataSet::GetCollection() const
virtual const Char_t*TTable::GetColumnComment(Int_t columnIndex) const
virtual Int_tTTable::GetColumnIndex(const Char_t* columnName) const
virtual const Char_t*TTable::GetColumnName(Int_t columnIndex) const
virtual UInt_tTTable::GetColumnSize(Int_t columnIndex) const
virtual Int_tTTable::GetColumnSize(const Char_t* columnName = 0) const
virtual TTable::EColumnTypeTTable::GetColumnType(Int_t columnIndex) const
virtual TTable::EColumnTypeTTable::GetColumnType(const Char_t* columnName = 0) const
virtual UInt_tTTable::GetDimensions(Int_t columnIndex) const
virtual Int_tTTable::GetDimensions(const Char_t* columnName = 0) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const UInt_t*TTable::GetIndexArray(Int_t columnIndex) const
TList*TDataSet::GetList() const
virtual Int_tTDataSet::GetListSize() const
static TDataSet*TDataSet::GetMainSet()
TObject*TDataSet::GetMother() const
virtual const char*TNamed::GetName() const
virtual Long_tTTable::GetNRows() const
virtual UInt_tTTable::GetNumberOfColumns() const
TObjArray*TDataSet::GetObjArray() const
virtual TObject*TDataSet::GetObject() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual UInt_tTTable::GetOffset(Int_t columnIndex) const
virtual Int_tTTable::GetOffset(const Char_t* columnName = 0) const
virtual Option_t*TObject::GetOption() const
virtual TDataSet*TDataSet::GetParent() const
virtual TClass*TTable::GetRowClass() const
virtual TTableDescriptor*TTable::GetRowDescriptors() const
virtual Long_tTTable::GetRowSize() const
Int_tTTable::GetSize() const
tableDescriptor_st*GetTable(Int_t i = 0) const
virtual TTableDescriptor*TTable::GetTableDescriptors() const
virtual Long_tTTable::GetTableSize() const
virtual const char*TNamed::GetTitle() const
virtual const Char_t*TTable::GetType() const
static TTable::EColumnTypeTTable::GetTypeId(const char* typeName)
static const char*TTable::GetTypeName(TTable::EColumnType type)
virtual UInt_tTTable::GetTypeSize(Int_t columnIndex) const
virtual Int_tTTable::GetTypeSize(const Char_t* columnName = 0) const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual Long_tTTable::HasData() const
virtual ULong_tTNamed::Hash() const
const UInt_t*IndexArray(Int_t columnIndex) const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual Long_tTTable::InsertRows(const void* rows, Long_t indx, UInt_t nRows = 1)
virtual voidTObject::Inspect() constMENU
virtual TDataSet*TDataSet::Instance() const
static TDataSet*TDataSet::instance()
voidTDataSet::InvertAllMarks()MENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTDataSet::IsEmpty() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTTable::IsFolder() const
virtual Bool_tTDataSet::IsMarked() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tTDataSet::IsThisDir(const char* dirname, int len = -1, int ignorecase = 0) const
Bool_tTObject::IsZombie() const
virtual TDataSet*TDataSet::Last() const
voidLearnTable(const TTable* parentTable)
voidLearnTable(TClass* classPtr)
virtual voidTDataSet::ls(Option_t* option = "") const
virtual voidTDataSet::ls(Int_t depth) const
TDataSet*MakeCommentField(Bool_t createFlag = kTRUE)
static TTableDescriptor*MakeDescriptor(const char* structName)
virtual Char_t*TTable::MakeExpression(const Char_t*[] expressions, Int_t nExpressions)
voidTDataSet::Mark()MENU
voidTDataSet::Mark(UInt_t flag, TDataSet::EBitOpt reset = kSet)
voidTDataSet::MarkAll()MENU
voidTObject::MayNotUse(const char* method) const
Int_tTTable::NaN()
static TTable*TTable::New(const Char_t* name, const Char_t* type, void* array, UInt_t size)
virtual TDataSet*TDataSet::Next() const
virtual Bool_tTObject::Notify()
UInt_tNumberOfColumns() const
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
UInt_tOffset(Int_t columnIndex) const
Int_tOffset(const Char_t* columnName = 0) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
tableDescriptor_st&operator[](Int_t i)
const tableDescriptor_st&operator[](Int_t i) const
virtual voidTObject::Paint(Option_t* option = "")
virtual TDataSet::EDataSetPassTDataSet::Pass(EDataSetPass(*)(TDataSet*) callback, Int_t depth = 0)
virtual TDataSet::EDataSetPassTDataSet::Pass(EDataSetPass(*)(TDataSet*,void*) callback, void* user, Int_t depth = 0)
virtual TStringTDataSet::Path() const
TTable::piteratorTTable::pbegin()
TTable::piteratorTTable::pend()
virtual voidTObject::Pop()
virtual TDataSet*TDataSet::Prev() const
virtual voidTTable::Print(Option_t* opt = "") const
virtual Char_t*TTable::Print(Char_t* buf, Int_t n) const
virtual const Char_t*TTable::Print(Int_t row, Int_t rownumber = 10, const Char_t* colfirst = "", const Char_t* collast = "") constMENU
virtual voidTTable::PrintContents(Option_t* opt = "") const
virtual const Char_t*TTable::PrintHeader() constMENU
virtual voidTTable::Project(const char* hname, const char* varexp, const char* selection = "", Option_t* option = "", Int_t nentries = 1000000000, Int_t firstentry = 0)
virtual Int_tTTable::Purge(Option_t* opt = "")
virtual Int_tTObject::Read(const char* name)
void*TTable::ReAllocate()
void*TTable::ReAllocate(Int_t newsize)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidTDataSet::Remove(TDataSet* set)
virtual TDataSet*TDataSet::RemoveAt(Int_t idx)
virtual voidTTable::Reset(Int_t c = 0)
voidTObject::ResetBit(UInt_t f)
virtual voidTTable::ResetMap(Bool_t wipe = kTRUE)
TClass*RowClass() const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTTable::SavePrimitive(ostream& out, Option_t* option = "")
virtual voidTTable::Set(Int_t n)
virtual voidTTable::Set(Int_t n, Char_t* array)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetColumnType(TTable::EColumnType type, Int_t column)
voidSetDimensions(UInt_t dim, Int_t column)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTDataSet::SetMother(TDataSet* parent = 0)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
virtual voidTTable::SetNRows(Int_t n)
virtual voidTDataSet::SetObject(TObject* obj)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetOffset(UInt_t offset, Int_t column)
virtual voidTDataSet::SetParent(TDataSet* parent = 0)
voidSetSize(UInt_t size, Int_t column)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidSetTypeSize(UInt_t size, Int_t column)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidTDataSet::SetWrite()
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidTDataSet::Shunt(TDataSet* newParent = 0)
virtual Int_tSizeof() const
virtual voidTDataSet::Sort()
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
static const char*TableDictionary()
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
TTableDescriptor()
TTableDescriptor(const TTable* parentTable)
TTableDescriptor(TClass* classPtr)
TTableDescriptor(const TTableDescriptor& dsc)
TTableDescriptor(const char* name)
TTableDescriptor(Int_t n)
TTableDescriptor(const char* name, Int_t n)
UInt_tTypeSize(Int_t columnIndex) const
Int_tTypeSize(const Char_t* columnName = 0) const
voidTDataSet::UnMark()MENU
voidTDataSet::UnMarkAll()MENU
virtual voidTTable::Update()
virtual voidTTable::Update(TDataSet* set, UInt_t opt = 0)
virtual Int_tUpdateOffsets(const TTableDescriptor* newDesciptor)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTDataSet::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTDataSet::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
voidTDataSet::AddMain(TDataSet* set)
Bool_tTTable::BoundsOk(const char* where, Int_t at) const
virtual voidTTable::Clear(Option_t* opt = "")
voidTTable::CopyStruct(Char_t* dest, const Char_t* src)
Char_t*TTable::Create()
virtual voidTTable::Delete(Option_t* opt = "")
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
virtual Bool_tTTable::EntryLoop(const Char_t* exprFileName, Int_t& action, TObject* obj, Int_t nentries = 1000000000, Int_t firstentry = 0, Option_t* option = "")
virtual TTableDescriptor*GetDescriptorPointer() const
TDataSet*TDataSet::GetRealParent()
virtual voidInit(TClass* classPtr)
voidTDataSet::MakeCollection()
voidTObject::MakeZombie()
Bool_tTTable::OutOfBoundsError(const char* where, Int_t i) const
voidTTable::ReAlloc(Int_t newsize)
static voidSetCommentsSetName(const char* name = ".comments")
virtual voidSetDescriptorPointer(TTableDescriptor* list)
Int_tTTable::SetfN(Long_t len)
virtual voidTDataSet::SetMother(TObject* mother)
voidTTable::SetTablePointer(void* table)
virtual voidTTable::SetType(const char*const type)
voidTTable::SetUsedRows(Int_t n)
static TDataSet::EDataSetPassTDataSet::SortIt(TDataSet* ds)
static TDataSet::EDataSetPassTDataSet::SortIt(TDataSet* ds, void* user)
voidTTable::StreamerHeader(TBuffer& b, Version_t version = 3)
voidTTable::StreamerTable(TBuffer& b, Version_t version = 3)

Data Members

public:
static const char*TTable::fgTypeName[13]
static TDataSet::EDataSetPassTDataSet::kAll
static TDataSet::ESetBitsTDataSet::kArray
static TObject::(anonymous)TObject::kBitMask
static TTable::EColumnTypeTTable::kBool
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TTable::EColumnTypeTTable::kChar
static TDataSet::EDataSetPassTDataSet::kContinue
static TTable::EColumnTypeTTable::kDouble
static TTable::EColumnTypeTTable::kEndColumnType
static TTable::EColumnTypeTTable::kFloat
static TObject::EStatusBitsTObject::kHasUUID
static TTable::EColumnTypeTTable::kInt
static TObject::EStatusBitsTObject::kInvalidObject
static TTable::ETableBitsTTable::kIsNotOwn
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TTable::EColumnTypeTTable::kLong
static TDataSet::ESetBitsTDataSet::kMark
static TDataSet::EDataSetPassTDataSet::kMarked
static TObject::EStatusBitsTObject::kMustCleanup
static TTable::EColumnTypeTTable::kNAN
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TDataSet::EDataSetPassTDataSet::kPrune
static TTable::EColumnTypeTTable::kPtr
static TDataSet::EDataSetPassTDataSet::kRefs
static TDataSet::EBitOptTDataSet::kReset
static TDataSet::EBitOptTDataSet::kSet
static TTable::EColumnTypeTTable::kShort
static TObject::(anonymous)TObject::kSingleKey
static TDataSet::EDataSetPassTDataSet::kStop
static TDataSet::EDataSetPassTDataSet::kStruct
static TTable::EColumnTypeTTable::kUChar
static TTable::EColumnTypeTTable::kUInt
static TTable::EColumnTypeTTable::kULong
static TTable::EColumnTypeTTable::kUShort
static TDataSet::EDataSetPassTDataSet::kUp
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
TSeqCollection*TDataSet::fListList of the the the objects included into this dataset
Long_tTTable::fMaxIndexThe used capacity of this array
Int_tTTable::fNNumber of array elements
TStringTNamed::fNameobject identifier
TDataSet*TDataSet::fParentpointer to mother of the directory
TClass*fRowClassTClass defining
TTableDescriptor*fSecondDescriptorshadow descriptor
Long_tTTable::fSizeSize of the one element (row) of the table
Char_t*TTable::fTableArray of (fN*fSize) longs
TStringTNamed::fTitleobject title
static TTableDescriptor*fgColDescriptors
static TStringfgCommentsNameThe name of dataset to keep the comments fields
static TDataSet*TDataSet::fgMainSetpointer the main dataset;

Class Charts

Inheritance Chart:
TObject
TNamed
TDataSet
TTable
TTableDescriptor

Function documentation

TTableDescriptor * GetDescriptorPointer() const
return column descriptor
void SetDescriptorPointer(TTableDescriptor* list)
set table descriptor
void SetCommentsSetName(const char* name = ".comments")
set comments name
void Streamer(TBuffer& )
 The custom Streamer for this table
TTableDescriptor(const TTable* parentTable)
to be documented
TTableDescriptor(TClass* classPtr)
 Create a descriptor of the C-structure defined by TClass
 TClass *classPtr must be a valid pointer to TClass object for
 "plain" C_struture only !!!
~TTableDescriptor()
 class destructor
Int_t AddAt(const void* c)
 Append one row pointed by "c" to the descriptor
void AddAt(const void* c, Int_t i)
Add one row pointed by "c" to the "i"-th row of the descriptor
void AddAt(TDataSet* dataset, Int_t idx = 0)
 Add one dataset to the descriptor.
 There is no new implementation here.
 One needs it to avoid the "hidden method" compilation warning
void AddAt(const tableDescriptor_st& element, const char* comment, Int_t indx)
 Add the descriptor element followed by its commentText
 at the indx-th position of the descriptor (counted from zero)
TString CreateLeafList() const
 Create a list of leaf to be useful for TBranch::TBranch ctor
void Init(TClass* classPtr)
 Create a descriptor of the C-structure defined by TClass
 TClass *classPtr must be a valid pointer to TClass object for
 "plain" C_structure only !!!
void LearnTable(const TTable* parentTable)
to be documented
void LearnTable(TClass* classPtr)
  LearnTable() creates an array of the descriptors for elements of the row

 It creates a descriptor of the C-structure defined by TClass
 TClass *classPtr must be a valid pointer to TClass object for
 "plain" C-structure only !!!

  This is to introduce an artificial restriction demanded by STAR database group

    1. the name may be 31 symbols at most
    2. the number the dimension is 3 at most

  To lift this restriction one has to provide -DNORESTRICTIONS CPP symbol and
  recompile code (and debug code NOW!)

TTableDescriptor * MakeDescriptor(const char* structName)

 MakeDescriptor(const char *structName) - static method
                structName - the name of the C structure
                             to create descriptor of
 return a new instance of the TTableDescriptor or 0
 if the "structName is not present with the dictionary


TDataSet * MakeCommentField(Bool_t createFlag = kTRUE)
 Instantiate a comment dataset if any
Int_t UpdateOffsets(const TTableDescriptor* newDesciptor)
                  "Schema evolution"
 Method updates the offsets with a new ones from another descriptor

Int_t ColumnByName(const Char_t* columnName = 0) const
 Find the column index but the column name
Int_t Offset(const Char_t* columnName = 0) const
 Return offset of the column defined by "columnName"
 Take in account index if provided
 Can not handle multidimensional indeces yet.
Int_t ColumnSize(const Char_t* columnName = 0) const
to be documented
Int_t TypeSize(const Char_t* columnName = 0) const
to be documented
Int_t Dimensions(const Char_t* columnName = 0) const
to be documented
TTable::EColumnType ColumnType(const Char_t* columnName = 0) const
to be documented
Int_t Sizeof() const
to be documented
const Char_t * ColumnName(Int_t columnIndex) const
 inline  TTableDescriptor(const TTableDescriptor &dsc) : TTable(dsc), fRowClass(dsc.fRowClass),fSecondDescriptor(0){}
{return ((tableDescriptor_st *)At(column))->fColumnName;}
UInt_t Offset(Int_t columnIndex) const
{return ((tableDescriptor_st *)At(column))->fOffset; }
const UInt_t * IndexArray(Int_t columnIndex) const
{return ((tableDescriptor_st *)At(column))->fIndexArray;}
UInt_t NumberOfColumns() const
{return GetNRows(); }
UInt_t ColumnSize(Int_t columnIndex) const
{return ((tableDescriptor_st *)At(column))->fSize; }
UInt_t TypeSize(Int_t columnIndex) const
{return ((tableDescriptor_st *)At(column))->fTypeSize; }
UInt_t Dimensions(Int_t columnIndex) const
{return ((tableDescriptor_st *)At(column))->fDimensions;}
TTable::EColumnType ColumnType(Int_t columnIndex) const
{return EColumnType(((tableDescriptor_st *)At(column))->fType);}
TClass * RowClass() const
{ return fRowClass;}
void SetOffset(UInt_t offset, Int_t column)
{((tableDescriptor_st *)At(column))->fOffset = offset;}
void SetSize(UInt_t size, Int_t column)
{((tableDescriptor_st *)At(column))->fSize = size; }
void SetTypeSize(UInt_t size, Int_t column)
{((tableDescriptor_st *)At(column))->fTypeSize = size; }
void SetDimensions(UInt_t dim, Int_t column)
{((tableDescriptor_st *)At(column))->fDimensions = dim; }
void SetColumnType(TTable::EColumnType type, Int_t column)
{((tableDescriptor_st *)At(column))->fType = type; }
TTableDescriptor & operator=(const TTableDescriptor& dsc)
TTableDescriptor(const TTable* parentTable)
TTableDescriptor(TClass* classPtr)
TTableDescriptor(const TTableDescriptor& dsc)
{}
TTableDescriptor()
{SetType("tableDescriptor_st");}
TTableDescriptor(const char* name)
{SetType("tableDescriptor_st");}
tableDescriptor_st * GetTable(Int_t i = 0) const
{ return ((tableDescriptor_st *)GetArray())+i;}
tableDescriptor_st & operator[](Int_t i)
{ assert(i>=0 && i < GetNRows()); return *GetTable(i); }
const tableDescriptor_st & operator[](Int_t i) const
{ assert(i>=0 && i < GetNRows()); return *((const tableDescriptor_st *)(GetTable(i))); }
tableDescriptor_st * begin() const
{ return GetNRows()? GetTable(0):0;}
tableDescriptor_st * end() const
{Long_t i = GetNRows(); return i? GetTable(i):0;}
const char * TableDictionary()