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