library: libTable #include "TGenericTable.h" |
Inheritance Chart: | |||||||||||||||||||||||||
|
protected:
virtual TTableDescriptor* GetDescriptorPointer() const virtual void SetDescriptorPointer(TTableDescriptor* list) void SetGenericType() public:
TGenericTable() TGenericTable(const char* structName, const Text_t* name) TGenericTable(const char* structName, Int_t n) TGenericTable(const char* structName, const Text_t* name, Int_t n) TGenericTable(const TTableDescriptor& dsc, const Text_t* name) TGenericTable(const TTableDescriptor& dsc, Int_t n) TGenericTable(const TTableDescriptor& dsc, const Text_t* name, Int_t n) TGenericTable(const TGenericTable&) virtual ~TGenericTable() TGenericTable::iterator begin() TGenericTable::iterator begin() const static TClass* Class() TGenericTable::iterator end() TGenericTable::iterator end() const virtual TTableDescriptor* GetRowDescriptors() const char* GetTable(Int_t i = 0) const virtual TTableDescriptor* GetTableDescriptors() const virtual TClass* IsA() const char& operator[](Int_t i) const char& operator[](Int_t i) const virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)
protected:
TTableDescriptor* fColDescriptors
TGenericTable This is the class to represent the array of C-struct defined at run-time Example: see $ROOTSYS/tutorials/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(); !}
Create TGenericTable by TTableDescriptor pointer: dsc - Pointer to the table descriptor name - The name of this object
Create TGenericTable by TTableDescriptor pointer: dsc - Pointer to the table descriptor name - "TGenericTable" n - The initial number of allocated rows
Create TGenericTable by TTableDescriptor pointer: dsc - Pointer to the table descriptor name - The name of this object n - The initial number of allocated rows
Create TGenericTable by C structure name provided: dsc - Pointer to the table descriptor name - The name of this object n - The initial number of allocated rows
Create TGenericTable by C structure name provided: dsc - Pointer to the table descriptor name - The name of this object n - The initial number of allocated rows
Create TGenericTable by C structure name provided: dsc - Pointer to the table descriptor name - The name of this object n - The initial number of allocated rows
Create TGenericTable by C structure name provided