Hi Marc,
Replace the lines
StMuTrack* v0 = new StMuTrack();
new((StMuTrack*)arr[0]) StMuTrack(*v0);
new((StMuTrack*)arr[1]) StMuTrack(*v0);
mytree->Fill();
by
new(arr[0]) StMuTrack();
new(arr[1]) StMuTrack();
mytree->Fill();
See $ROOTSYS/test/Event.h,cxx,MainEvent.cxx for a concrete example
Rene Brun
On
Wed, 28 Jul 2004, Mark Horner
wrote:
> Hi Rooters
>
> I want to make a TTree where every entry in a branch is a TClonesArray.
> My code seg-faults on the Fill() and simple script
> to reproduce the behaviour is:
>
> void test()
> {
> gROOT->LoadMacro("loadSharedLibraries.C");
> loadSharedLibraries();
> TTree mytree("mytree","Tree");
> TClonesArray *arr = new TClonesArray("StMuTrack",10);
> mytree->Branch("vobranch",&arr);
> StMuTrack* v0 = new StMuTrack();
> new((StMuTrack*)arr[0]) StMuTrack(*v0);
> new((StMuTrack*)arr[1]) StMuTrack(*v0);
> mytree->Fill();
> }
>
> I presume I just don't understand how the TTree handles the TClonesArray
> and that I have made some stupid error.
>
> The class StMuTrack does has a working copy constructor and is available
> elsewhere in a TClonesArray so I don't think this is the problem but
> the code is here:
> http://www.star.bnl.gov/cgi-bin/cvsweb.cgi/StRoot/StMuDSTMaker/COMMON/StMuTrack.h?rev=1.9&content-type=text/x-cvsweb-markup
>
> Could somone point out what I am doing wrong or send me in the correct
> general direction?
>
> Thanks
>
> Mark
>
>
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET