TGenericTable
This is the class to represent the array of C-struct
defined at run-time
Example: see $ROOTSYS/tutorials/tree/staff.C
 !{
 !//   example of macro to read data from an ascii file and
 !//   create a root file with an histogram and an ntuple.
 !//   A'la the famous ROOT/PAW staff data example
 !//   ( see PAW - Long write up, CERN, page33. )
 !
 !   gROOT->Reset();
 !   gSystem->Load("libRootKernel");
 !
 !   struct staff_t {
 !                Int_t cat;
 !                Int_t division;
 !                Int_t flag;
 !                Int_t age;
 !                Int_t service;
 !                Int_t children;
 !                Int_t grade;
 !                Int_t step;
 !                Int_t nation;
 !                Int_t hrweek;
 !                Int_t cost;
 !    };
 !
 !   staff_t staff;
 !
 !   // open ASCII data file
 !   FILE *fp = fopen("staff.dat","r");
 !
 !   char line[81];
 !
 !   // Create the generic table for 1000 rows (it may grow then)
 !   TGenericTable *allStaff = new TGenericTable("staff_t","Staff-data",1000);
 !
 !   // Fill the memory resident table
 !   while (fgets(&line,80,fp)) {
 !      sscanf(&line[0] ,"%d%d%d%d", &staff.cat,&staff.division,&staff.flag,&staff.age);
 !      sscanf(&line[13],"%d%d%d%d", &staff.service,&staff.children,&staff.grade,&staff.step);
 !      sscanf(&line[24],"%d%d%d",   &staff.nation,&staff.hrweek,&staff.cost);
 !      allStaff->AddAt(&staff);
 !   }
 !   fclose(fp);
 !   // Delete unused space;
 !   allStaff->Purge();
 !
 !   allStaff->Print(0,10);
 !
 !//  Create ROOT file
 !   TFile *f = new TFile("aptuple.root","RECREATE");
 !          allStaff->Write();
 !   f->Write();
 !
 !   // We should close  TFile otherwise all histograms we create below
 !   // may be written to the file too occasionaly
 !   f->Close();
 !
 !//  Create ROOT Browser
 !   new TBrowser("staff",allStaff);
 !
 !//  Create couple of the histograms
 !   TCanvas *canva = new TCanvas("Staff","CERN Population",600,600);
 !   canva->Divide(1,2);
 !
 !
 !// one can use 2 meta variable:
 !//  n$ - the total number of the rows in the table
 !//  i$ - stands for the current row index i = [0 -> (n$-1)]
 !
 !   gStyle->SetHistFillColor(10);
 !   gStyle->SetHistFillStyle(3013);
 !   canva->cd(1);
 !   allStaff->Draw("age");
 !   canva->Update();
 !   canva->cd(2);
 !   allStaff->Draw("cost");
 !   canva->Update();
 !}