library: libTable #include "TTableMap.h"

# TTableMap

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

## class TTableMap : public TObject

| Inheritance Chart:

`TObject`

<-

`TTableMap`

        public:

                           TTableMap(const TTable* table = 0)
                           TTableMap(const TTableMap& map)
                           ~TTableMap()
          TTable::iterator Begin()
          TTable::iterator Begin() const
            static TClass* Class()
          TTable::iterator End()
          TTable::iterator End() const
           virtual TClass* IsA() const
            virtual Bool_t IsFolder() const
                    Bool_t IsValid() const
                TTableMap& operator=(const TTableMap&)
                      void Push_back(Long_t next)
              virtual void ShowMembers(TMemberInspector& insp, char* parent)
              virtual void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)
                   TTable* Table()

### Data Members

        protected:

          TTable* fTable  pointer to the refered TTable

## Class Description

     TTableMap class is helper class to keep the list of the referencs to the
     TTable rows and iterate over it.
     TTableMap is a persistent class.
     The pointer to the TTableMap 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;
        TTableMap *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 TTableMap(hits);
          for(;hit != lastHit;hit++,hitIndx) {
            if (IsMyHit(*hit)) {  // add this hit index to the current track
               (*track).hits->push_back(hitIndx);
            }
          }
       }
    ___________________________________________________________________

TTableMap(const TTable *table) : fTable((TTable *)table)

void Streamer(TBuffer &R__b)

     UInt_t R__s, R__c;

### Inline Functions

                        void ~TTableMap()
                   TTableMap TTableMap(const TTableMap& map)
                      Bool_t IsValid() const
                      Bool_t IsFolder() const
                        void Push_back(Long_t next)
                     TTable* Table()
            TTable::iterator Begin()
            TTable::iterator Begin() const
            TTable::iterator End()
            TTable::iterator End() const
                     TClass* Class()
                     TClass* IsA() const
                        void ShowMembers(TMemberInspector& insp, char* parent)
                        void StreamerNVirtual(TBuffer& b)
                  TTableMap& operator=(const TTableMap&)

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