#include "TArrayL.h"
#include "TTableMap.h"
//////////////////////////////////////////////////////////////////////////////
// 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);
// }
// }
// }
//___________________________________________________________________
ClassImp(TTableMap)
TTableMap::TTableMap(const TTable *table) : fTable((TTable *)table){;}
//___________________________________________________________________
void TTableMap::Streamer(TBuffer &R__b)
{
// UInt_t R__s, R__c;
TArrayL vecIO;
if (R__b.IsReading()) {
Version_t v = R__b.ReadVersion();
if (v);
// read Table
R__b >> fTable;
// Read index array
vecIO.Streamer(R__b);
Int_t n = vecIO.GetSize();
Int_t i = 0;
reserve(n);
Long_t *thisArr = vecIO.GetArray();
for (i=0; i<n; i++,thisArr++) push_back(*thisArr);
} else {
// Write TTable
assert(IsValid());
R__b.WriteVersion(IsA());
R__b << fTable;
// Write index array
TTableMap::iterator ptr = begin();
vecIO.Adopt(size(),&(*ptr));
vecIO.Streamer(R__b);
vecIO.fArray=0; // we should not destroy the real array
}
}
ROOT page - Class index - Top of the page
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.