Hi Glen,
this problem has now been fixed. Was a problem of wildcarding not
allowing names with spaces.
Cheers, Fons.
> Date: Sun, 10 Feb 2002 18:27:01 -0600 (CST)
> From: Glen R. Salo <gsalo@mrcstl.com>
> To: roottalk@pcroot.cern.ch
> Subject: Re: [ROOT] TTree bugs/changes?
>
> Hi Rene,
>
> Thanks for the fix -- the technical support for ROOT has been great!
> However, I still seem to have a problem with my case number 2 as shown
> below.
>
> root [0] TFile f("junk.root","recreate");
> root [1] TTree *t = new TTree("tree data","T");
> root [2] Float_t x;
> root [3] t->Branch("x",&x,"x/F");
> root [4] x=2;
> root [5] t->Fill();
> root [6] t->Write();
> root [7] f.ls();
> TFile** junk.root
> TFile* junk.root
>
> root [8] f.Map();
> 20020210/183340 At:64 N=84 TFile
> 20020210/183340 At:148 N=368 TTree CX = 34.38
> 20020210/183340 At:516 N=1 END
>
> The TTree t does not appear with f.ls() but is included in the f.Map().
> If the name of the TTree is changed to "treedata" (i.e., no space) then
> all works fine. Likewise, if the Write() is replaced with Write("t"),
> the TTree appears in the file, but it is not listed in memory, i.e.,
>
> root [7] f.ls();
> TFile** junk.root
> TFile* junk.root
> KEY: TTree t;1 T
>
> Is this the intended behavior? Should I not use spaces in the TTree name?
>
> Thanks again for all of your help and support,
>
> Glen
>
> On 10-Feb-2002 Rene Brun wrote:
> > Hi Glen
> > Problem now fixed in CVS
> >
> > Rene Brun
> >
> >
> > On Fri, 8 Feb 2002, Glen R. Salo wrote:
> >
> >> Hi,
> >>
> >> Changes in the way TTree works has broken some of my code. The changes
> >> are given below. Are these intended changes? I am using the very
> >> latest
> >> CVS updates on a RedHat 7.2 linux machine with a completely fresh
> >> recompile.
> >>
> >> 1. TTree::SetDirectory(0) does not seem to remove the tree from the
> >> current directory. Using the following script (and tree1.root from
> >> the tutorials directory), I get:
> >> {
> >> TFile f("tree1.root");
> >> TTree *t1 = (TTree *)f.Get("t1");
> >> t1->SetDirectory(0);
> >> gDirectory->ls();
> >> f.Close();
> >> t1->Scan();
> >> delete t1;
> >> }
> >>
> >> TFile** tree1.root
> >> TFile* tree1.root
> >> OBJ: TTree t1 a simple Tree with simple variables : 0
> >> KEY: TTree t1;1 a simple Tree with simple variables
> >>
> >> *** Break *** segmentation violation
> >>
> >> This did not use to happen in an earlier version (3.01/07) of ROOT.
> >>
> >> 2. When naming a TTree, it seems that the first argument cannot
> >> contain a
> >> space as illustrated with the following script. Is this
> >> the intended behavior?
> >>
> >> {
> >> TFile f("junk.root","recreate");
> >> TTree *t = new TTree("tree data","T");
> >> Float_t x;
> >> t->Branch("x",&x,"x/F");
> >> x=2;
> >> t->Fill();
> >> t->Write();
> >> f.ls();
> >> f.Close();
> >> }
> >>
> >> Produces:
> >>
> >> TFile** junk.root
> >> TFile* junk.root
> >>
> >>
> >> Thanks for your help.
> >>
> >>
> >> Glen
> >>
--
Org: CERN, European Laboratory for Particle Physics.
Mail: 1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248
WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:41 MET