Hi Thomas,
Except for a TClonesArray, it does not make sense to use the split mode
for a TCollection. Replace the line :
t->Branch("TList", "TList", &list, 32000, 9);
by
t->Branch("TList", "TList", &list, 32000, 0);
Rene Brun
Thomas Bretz wrote:
>
> Hello rooters,
>
> I want to order some objects in a list, like:
> TList *list = new TList;
> TEllipse *ell = new TEllipse;
> TLine *lin = new TLine;
> list->Add(ell);
> list->Add(lin);
>
> Now I want to write this list of objects to a root file, like:
> TFile f1("test.root", "RECREATE");
> TTree *t = new TTree("List", "My List");
> t->Branch("TList", "TList", &list, 32000, 9);
> t->Fill();
> f1.Write();
> f1.Close();
>
> And read the list again, like:
> TFile f2("test.root", "READ");
> t = (TTree*)f2.Get("List");
> t->GetBranch("TList")->SetAddress(&list);
> t->GetEntry(0);
> list->Print();
>
> But this fails (as I understand, because of ClassDef(TSeqCollection,
> 0)). Is there a way to write such a list and get it back as one entry?
>
> The idea is to have a list which stores several objects describing a
> program setup (like the gui elements above, which are describing a
> graphical setup). I want to be able to store and read this setup with a
> single expression.
>
> Thanks alot,
> Thomas.
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:08 MET