ROOT » MISC » TABLE » TIndexTable

class TIndexTable: public TTable

 TIndexTable class is helper class to keep the list of the referencs to the
 TTable rows and iterate over it.
 TIndexTable is a persistent class.
 The pointer to the TIndexTable object may be used as an element
 of the TTable row and saved with the table all together.

 For example, the track table may contain a member to the "map" of the hits
  struct {
    float helix;
    TIndexTable *hits;
  } tracks_t;

   // Create track table:
   LArTrackTable *tracks = new LArTrackTable(...);

   // Get pointer to the hit table
   LArHitTable *hits = GiveMeHits();
   // Loop over all tracks
   LArTrackTable::iterator track = tracks->begin();
   LArTrackTable::iterator last = tracks->end();
   for (;track != last;track++) {
     // Find all hits of this track
      LArHitTable::iterator hit     = hits->begin();
      LArHitTable::iterator lastHit = hits->end();
      Long_t hitIndx = 0;
      // Create an empty list of this track hits
      (*track).hits = new TIndexTable(hits);
      for(;hit != lastHit;hit++,hitIndx) {
        if (IsMyHit(*hit)) {  // add this hit index to the current track

Function Members (Methods)

voidTObject::AbstractMethod(const char* method) const
virtual voidTDataSet::Add(TDataSet* dataset)
virtual Int_tTTable::AddAt(const void* c)
virtual voidTTable::AddAt(const void* c, Int_t i)
virtual voidTTable::AddAt(TDataSet* dataset, Int_t idx = 0)
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
TIndexTable::iteratorbegin() const
virtual voidTTable::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual TObject*TDataSet::Clone(const char* newname = "") 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)
virtual voidTTable::DeleteRows(Long_t indx, UInt_t nRows = 1)
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
TIndexTable::iteratorend() 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
int*GetTable(Int_t i = 0)
const int*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
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()
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_tIsValid() const
Bool_tTObject::IsZombie() const
virtual TDataSet*TDataSet::Last() const
virtual voidTDataSet::ls(Option_t* option = "") const
virtual voidTDataSet::ls(Int_t depth) const
virtual Char_t*TTable::MakeExpression(const Char_t*[] expressions, Int_t nExpressions)
voidTDataSet::Mark(UInt_t flag, TDataSet::EBitOpt reset = kSet)
voidTObject::MayNotUse(const char* method) const
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()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) 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)
TIndexTable&operator=(const TIndexTable&)
int&operator[](Int_t i)
const int&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
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 = "")
voidpush_back(Long_t next)
virtual Int_tTObject::Read(const char* name)
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)
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)
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)
virtual voidTDataSet::SetParent(TDataSet* parent = 0)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidTDataSet::SetWrite()
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidTDataSet::Shunt(TDataSet* newParent = 0)
virtual Int_tTNamed::Sizeof() const
virtual voidTDataSet::Sort()
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
const TTable*Table() const
static const char*TTable::TableDictionary()
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
TIndexTable(const TTable* table)
TIndexTable(const TIndexTable& indx)
TIndexTable(const char* name)
TIndexTable(Int_t n)
TIndexTable(const char* name, Int_t n)
virtual voidTTable::Update()
virtual voidTTable::Update(TDataSet* set, UInt_t opt = 0)
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
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)
static TTableDescriptor*CreateDescriptor()
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
Bool_tTTable::OutOfBoundsError(const char* where, Int_t i) const
voidTTable::ReAlloc(Int_t newsize)
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)
static const char*TTable::TableDictionary(const char* className, const char* structName, TTableDescriptor*& ColDescriptors)

Data Members

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
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
const TTable*fRefTable
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 TDataSet*TDataSet::fgMainSetpointer the main dataset;

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void Dictionary()
to be documented
TIndexTable(const TTable* table)
to be documented
TTableDescriptor * CreateDescriptor()
to be documented
TTableDescriptor * GetDescriptorPointer() const
return column descriptor
void SetDescriptorPointer(TTableDescriptor* list)
set table descriptor
const TTable * Table() const
to be documented
int * GetTable(Int_t i = 0)
{ return ((int *)GetArray())+i;}
const int * GetTable(Int_t i = 0) const
{ return ((int *)GetArray())+i;}
Bool_t IsValid() const
void push_back(Long_t next)
{ AddAt(&next); }
iterator & operator=(const TIndexTable& )
{fTable = iter.fTable; fCurrentRow = iter.fCurrentRow; return *this;}
TIndexTable(const TTable* table)
TIndexTable(const TIndexTable& indx)
iterator begin()
{ return ((const TIndexTable *)this)->begin();}
iterator begin() const
{ return GetNRows() ? iterator(*Table(),*GetTable(0)):end();}
iterator end()
{ return ((const TIndexTable *)this)->end(); }
iterator end() const
{Long_t i = GetNRows(); return i? iterator(*Table(), *GetTable(i)):iterator(*this);}
TIndexTable(const char* name)
TIndexTable(Int_t n)
virtual ~TIndexTable()
int & operator[](Int_t i)
{ assert(i>=0 && i < GetNRows()); return *GetTable(i); }
const int & operator[](Int_t i) const
{ assert(i>=0 && i < GetNRows()); return *((const int *)(GetTable(i))); }