Hi Philippe, Thanks for explanation, I just found that if I do not create the TFile beforehand, it sudenly works, which puzzled me. However I do not understand how should I modify the class to allow saving the data into a TFile - your code looks same as the original. Should I write my own streamer without the fpart_iter? thanks for help, best regards 0ndrej Philippe Canal wrote: >Hi Ondrej, > >A TIter object can not be saved onto a file (hence the system you not even >try to look it up). >As a workaround (and a clarification of your code anyway, just modify your >class as follow: > > TClonesArray *fParticles; // Array with particles > TIter *fpart_iter; //! caching the current ptr to >iterator > >-----Original Message----- >From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]On >Behalf Of 0ndrej Chvala >Sent: Wednesday, October 15, 2003 7:05 AM >To: roottalk@pcroot.cern.ch >Subject: [ROOT] cannot create object of class TIter > > >Dear rooters, > >I have 2 classes, one describes an event and the other a track in that >event. The event contains a TClonesArray with the tracks and the iterrator: > > TClonesArray *fParticles; // Array with particles > TIter *fpart_iter; // ptr to iterator > >When an new event is created, the TClonesArray is created: > > fParticles = new TClonesArray("TBigDSWriteParticle",1000); > fpart_iter = new TIter(fParticles); > >The classes can be compiled, loaded into root runtime, but when I try to >make a branch, it complaints: >root [0] .L /cern/root/lib/libEG.so >root [1] .L /cern/root/lib/libPhysics.so >root [2] .L ../lib/libmicro.so >root [3] TFile *tfile= new TFile("/tmp/dsttest.root","RECREATE"); >root [4] TTree *tft = new TTree("tft",""); >root [5] tfile->SetCompressionLevel(2); >root [6] TBigDSWriteEvent *myevent=new TBigDSWriteEvent(); >root [7] TBigDSWriteParticle *mypart; >root [8] >tft->Branch("TBigDSWriteEvent","TBigDSWriteEvent",&myevent,5000000,1); >Error in <TClass::New>: cannot create object of class TIter > >The source codes are atached. > >Any help is greatly welcomed, I already tried to use other container >objects (TList, TObjArray), asked whom I can around but I'm still stucked. > >Thank you >0ndrej Chvala, NA49 << File: TBigDSWriteEvent.h >> << File: >TBigDSWriteParticle.h >> << File: TBigDSWriteEvent.cxx >> << File: >TBigDSWriteParticle.cxx >> > > >
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET