#include #include "TFile.h" #include "TClass.h" #include "TList.h" using std::cout; using std::endl; void testload() { TFile *f = new TFile("plots.root", "READ"); if (!f->IsOpen()) { cout << "Error opening file" << endl; return; } TObject *o = f->Get("anint_2"); if (o == 0) { cout << "Unable to load the object" << endl; return; } TClass *c = o->IsA(); if (c == 0) { cout << "Unable to get the class of the object" << endl; return; } cout << "Class is " << c->GetName() << endl; // Should be TH1F TList *bases = c->GetListOfBases(); cout << "Bases pointer is " << bases << endl; // Should be valid pointer cout << " Bases length is " << bases->GetEntries() << endl; // Should be 2 c = static_cast(bases->At(0)); cout << "Subclass is " << c->GetName() << endl; if (!c->IsLoaded()) { cout << "Expecting class to be loaded" << endl; return; } bases = c->GetListOfBases(); cout << "Bases pointer is " << bases << endl; // Should be valid pointer cout << " Bases length is " << bases->GetEntries() << endl; // Should be 2 f->Close(); }