Hi Rooters, I thought I was making a trivial program to write a series of TPolyLine3D objects to a file. To my surprise it didn't work. The problem seems to be that the actual points of the polyline line aren't written (or maybe at the wrong place?). Here is a little test macro that shows what happens: void doit() { TFile* file= new TFile("/tmp/ppp.root","recreate"); TTree* tree = new TTree("tree","a tree"); TPolyLine3D* l = new TPolyLine3D(); TBranch *b = tree->Branch("tracks", "TPolyLine3D", &l, 64000,kTRUE); l->SetNextPoint(1,1,1); l->SetNextPoint(3,3,3); tree->Fill(); file->Write(); } void didit() { TFile* file= new TFile("/tmp/ppp.root"); TTree* tree = (TTree*)file->Get("tree"); TBranch* b = tree->GetBranch("tracks"); TPolyLine3D* l = new TPolyLine3D(); b->SetAddress(&l); tree->GetEntry(0,0); printf("Number of points: %d\n",l->GetN()); printf("Location of fP: 0x%x\n",l->GetP()); } Its output: root [0] .L test.c root [1] doit() root [2] didit() Number of points: 2 Location of fP: 0x0 I get similar results for a TPolyLine. I'm using the ancient Root version 2.25/03, but don't see any (obviously relevant) changes between it and version 3.01 as far as it concerns TPolyLine3D. Something I did notice was that when I open a browser, it shows the peculiar field "fOption.*fData" (see attached gif). If you have a simple solution or if I made a mistake somewhere, please let me know. Thanks, -- Gerco Dr. C.J.G. Onderwater Nuclear Physics Laboratory 401B Loomis Laboratory of Physics University of Illinois at Urbana-Champaign 1110 West Green Street Urbana, IL 61801-3080 Phone : (217) 244-7363 Fax : (217) 333-1215 E-mail: onderwat@uiuc.edu
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:52 MET