class test : public TObject { public: test() {fGraph=0;} <============= ~test() {}; SetGraph(TMultiGraph *p) {fGraph = p;} SetX(Double_t x) {fX = x;} TMultiGraph* GetGraph() {return fGraph;} private: Double_t fX; // TMultiGraph* fGraph; //|| }; void testTMultiGraph (Int_t MaxEv=10) { test *event = new test(); TTree* fRecoTree = 0; TFile *fFile = new TFile("testTMultiGraph.root","RECREATE"); fRecoTree = new TTree("tree","TestTree"); fRecoTree->Branch("events","test",&event); Double_t x[10],y[10]; Int_t ev(0); while (ev++SetMarkerSize(.5); g1->SetMarkerColor(kRed); g1->SetMarkerStyle(23); TMultiGraph *gAll = new TMultiGraph("TestGraph",""); gAll->Add(g1,"lp"); event->SetGraph(gAll); event->SetX(ev); fRecoTree->Fill(); cout << "Event # " << ev << endl; } fFile->Write(); delete fFile; } void Plot(Int_t ev=0) { TFile f("testTMultiGraph.root"); TTree *p = (TTree*)f.Get("tree"); test* event = 0; //<============ p->SetBranchAddress("events",&event); //p->LoadTree(ev); // crashes here... p->GetEntry(ev); // <=============== TMultiGraph* fGraph = event->GetGraph(); fGraph->Draw("alp"); //<========== }