[ROOT] TPolyLine(3D) Streamer problem?

From: Gerco Onderwater (onderwat@nialas.npl.uiuc.edu)
Date: Tue Jul 17 2001 - 16:42:42 MEST


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



browser.gif



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:52 MET