Hi Rooters, when I try to store a named object derived from TNamed in TTree and write this Tree to disk, I do not receive the name of the object when I try to read it back. All other member variables are read in correctly. Below is the slightly modified Event sample from the /test directory. I changed Track so that it is derived from TNamed. class Track : public TNamed { private: Float_t fPx; //X component of the momentum Float_t fPy; //Y component of the momentum Float_t fPz; //Z component of the momentum .... } During filling a name to each Track is assigned in MainEvent.cxx: // Create and Fill the Track objects for (Int_t t = 0; t < ntrack; t++){ event->AddTrack(random); Track* MyTrack = (Track*)event->GetTracks()->At(t); // Added Code MyTrack->SetName("N"); //Added Code } I check after filling if the Name is set correctly: if (write) nb += tree->Fill(); //fill the tree Track* MyTrack = (Track*)event->GetTracks()->At(0); printf("%s\n",MyTrack->GetName()); this gives the correct Name. But the following testmacro gives empty names for all Track Objects: { gROOT->Reset(); f1 = new TFile("Event.root"); Event* ev=new Event(); T->SetBranchAddress("event",&ev); T->SetBranchStatus("*",1); for(Int_t i=0;i<1;i++){ T->GetEvent(i); TClonesArray* TrackList = ev->GetTracks(); Track* MyTrack = (Track*)TrackList->At(0); MyTrack->Inspect(); printf("%s\n",MyTrack->GetName()); } } I am sorry but I do not have a clue whats wrong ?? Thanks, Norbert -- Norbert Danneberg ETH Zurich - Institute for Particle Physics Laboratory for Nuclear Physics Phone.: +41-1-633-2034 Hoenggerberg Fax.: +41-1-633-1067 CH-8093 Zurich ETH Zurich - Institute for Particle Physics Paul Scherrer Institute Phone.: +41-56-310-3284 CH-5232 Villigen PSI Fax.: +41-56-310-4362 email: Norbert.Danneberg@psi.ch
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:31 MET