#include "MyClass.h" #include "TTree.h" #include "TFile.h" #include "TBranchElement.h" void WriteTree() { TFile f("tree.root","recreate"); TTree* t = new TTree("tree","tree"); MyClass* m = new MyClass; t->Branch("myclass", "MyClass",(void*)&m, 32000, 0); for(int i=0;i<5;++i) { m->SetX(i); t->Fill(); } m->Write("MyObject"); f.Write(); } void ReadTree() { TFile f("tree.root"); TTree* t = (TTree*)f.Get("tree"); t->SetBranchStyle(0); MyClass* m = (MyClass*)f.Get("MyObject"); t->SetBranchAddress("myclass", &m); for(int i=0;i<5;++i) { t->GetEntry(i); m->PrintX(); } } int main() { #ifdef WRITE WriteTree(); #endif #ifdef READ ReadTree(); #endif return 0; }