class TIndexTable::iterator

 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);
        }
      }
   }

Function Members (Methods)

public:
~iterator()
TIndexTable::iteratoriterator(const TTable& t)
TIndexTable::iteratoriterator(const TIndexTable::iterator& iter)
TIndexTable::iteratoriterator(const TTable& t, int& rowPtr)
intoperator int()
Bool_toperator!=(const TIndexTable::iterator& t) const
void*operator*()
TIndexTable::iterator&operator+(Int_t idx)
TIndexTable::iterator&operator++()
voidoperator++(int)
TIndexTable::iterator&operator-(Int_t idx)
Int_toperator-(const TIndexTable::iterator& it) const
TIndexTable::iterator&operator--()
voidoperator--(int)
TIndexTable::iterator&operator=(const TIndexTable::iterator& iter)
Bool_toperator==(const TIndexTable::iterator& t) const
protected:
TIndexTable::iteratoriterator()

Data Members

protected:
int*fCurrentRow
const TTable*fTable

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

iterator()
{}
iterator(const TTable& t, int& rowPtr)
{}
iterator(const TTable &t)
{}
iterator(const iterator& iter)
{}
iterator & operator=(const TIndexTable::iterator& iter)
{fTable = iter.fTable; fCurrentRow = iter.fCurrentRow; return *this;}
iterator & operator++(int )
{ if (fCurrentRow) ++fCurrentRow; return *this;}
void operator++(int )
{ if (fCurrentRow) fCurrentRow++;}
iterator & operator--(int )
{ if (fCurrentRow) --fCurrentRow; return *this;}
void operator--(int )
{ if (fCurrentRow) fCurrentRow--;}
iterator & operator+(Int_t idx)
{ if (fCurrentRow) fCurrentRow+=idx; return *this;}
iterator & operator-(Int_t idx)
{ if (fCurrentRow) fCurrentRow-=idx; return *this;}
Int_t operator-(const iterator &it)
{ return (fCurrentRow-it.fCurrentRow)/sizeof(int); }
operator int()
{ return *fCurrentRow;}
Bool_t operator==(const TIndexTable::iterator& t) const
{ return (fCurrentRow == t.fCurrentRow); }
Bool_t operator!=(const TIndexTable::iterator& t) const
{ return !operator==(t); }

Author: Valery Fine(fine@bnl.gov) 01/03/2001
Last change: root/table:$Id: TIndexTable.h 21565 2007-12-28 12:28:46Z brun $
Last generated: 2008-06-25 08:47
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *

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.