library: libTable #include "TIndexTable.h"

# TIndexTable

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

## class TIndexTable : public TTable

| Inheritance Chart:
`TObject`
| <- | `TNamed`
| <- | `TDataSet`
| <- | `TTable`
| <- | `TIndexTable` |

        protected:

           static TTableDescriptor* CreateDescriptor()
          virtual TTableDescriptor* GetDescriptorPointer() const
                       virtual void SetDescriptorPointer(TTableDescriptor* list)

        public:

                                TIndexTable(const TTable* table)
                                TIndexTable(const TIndexTable& indx)
                                TIndexTable()
                                TIndexTable(const Text_t* name)
                                TIndexTable(Int_t n)
                                TIndexTable(const Text_t* name, Int_t n)
                        virtual ~TIndexTable()
          TIndexTable::iterator begin()
          TIndexTable::iterator begin() const
                 static TClass* Class()
          TIndexTable::iterator end()
          TIndexTable::iterator end() const
                           int* GetTable(Int_t i = 0)
                     const int* GetTable(Int_t i = 0) const
                virtual TClass* IsA() const
                         Bool_t IsValid() const
                           int& operator[](Int_t i)
                     const int& operator[](Int_t i) const
                           void push_back(Long_t next)
                   virtual void ShowMembers(TMemberInspector& insp, char* parent)
                   virtual void Streamer(TBuffer& b)
                           void StreamerNVirtual(TBuffer& b)
                  const TTable* Table() const

### Data Members

        protected:

                     const TTable* fRefTable
          static TTableDescriptor* fgColDescriptors

## Class Description

     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
               (*track).hits->push_back(hitIndx);
            }
          }
       }
    ___________________________________________________________________

void Dictionary()

TIndexTable(const TTable *table):TTable("Index",-1), fRefTable(table)

TTableDescriptor* CreateDescriptor()

const TTable* Table() const

### Inline Functions

                             void ~TIndexTable()
                      TIndexTable TIndexTable(const TIndexTable& indx)
                             int* GetTable(Int_t i = 0)
                           Bool_t IsValid() const
                             void push_back(Long_t next)
            TIndexTable::iterator begin()
            TIndexTable::iterator begin() const
            TIndexTable::iterator end()
            TIndexTable::iterator end() const
                TTableDescriptor* GetDescriptorPointer() const
                             void SetDescriptorPointer(TTableDescriptor* list)
                      TIndexTable TIndexTable()
                      TIndexTable TIndexTable(const Text_t* name)
                      TIndexTable TIndexTable(Int_t n)
                      TIndexTable TIndexTable(const Text_t* name, Int_t n)
                       const int* GetTable(Int_t i = 0) const
                             int& operator[](Int_t i)
                       const int& operator[](Int_t i) const
                          TClass* Class()
                          TClass* IsA() const
                             void ShowMembers(TMemberInspector& insp, char* parent)
                             void Streamer(TBuffer& b)
                             void StreamerNVirtual(TBuffer& b)

Author: Valery Fine(fine@bnl.gov) 01/03/2001
Last update: root/table:$Name: $:$Id: TIndexTable.cxx,v 1.3 2004/02/13 16:32:23 rdm Exp $
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *