RE: [ROOT] backward compatibiltiy problem

From: Ed Oltman (eoltman@imago.com)
Date: Fri Sep 05 2003 - 19:04:36 MEST


Rene,
 I've attached 3 small scripts:

 First, run root win32 version v3.05/5 on win2k and execute

	run_in_30505.c    --> Creates test30505.root

 Then, run root gdk version 3.05/7 on win2k and execute

	run_in_30507dgk.c --> Reads test30505.root and then makes test.root

 and

	run_in_30597gdk_last.c --> reads test.root and produces Streamer warning
and looses TF1 object

Let me know if you have any questions. Thanks

> -----Original Message-----
> From: brun@pcbrun.cern.ch [mailto:brun@pcbrun.cern.ch]On Behalf Of Rene
> Brun
> Sent: Friday, September 05, 2003 10:44 AM
> To: Ed Oltman
> Cc: Roottalk@Pcroot. Cern. Ch
> Subject: Re: [ROOT] backward compatibiltiy problem
>
>
> Hi Ed,
>
> Using your recipee, I cannot reproduce the problem.
> Could you send me a script reproducing exactly this problem?
>
> Rene Brun
>
> Ed Oltman wrote:
> >
> > Rene,
> > Thanks for looking into this.  Attached are the two files
> > Ed
> >
> > > -----Original Message-----
> > > From: brun@pcbrun.cern.ch [mailto:brun@pcbrun.cern.ch]On
> Behalf Of Rene
> > > Brun
> > > Sent: Thursday, September 04, 2003 1:25 AM
> > > To: Ed Oltman
> > > Cc: Roottalk@Pcroot. Cern. Ch
> > > Subject: Re: [ROOT] backward compatibiltiy problem
> > >
> > >
> > > Hi Ed,
> > >
> > > Could you send me your files test30505.root and test.root as mail
> > > attachements?
> > >
> > > Rene Brun
> > >
> > > Ed Oltman wrote:
> > > >
> > > > Hello,
> > > >  I have a bunch of files created with win32 version of root
> > > 3.05/5.  These
> > > > files contain lots of root objects including TF1s.  I have
> > > recently switched
> > > > to gdk version of root 3.05/7.  I can open and read these
> files (3.05/5
> > > > generated)  without problem.  However, if after opening one of
> > > these files a
> > > > create a new TF1 object and then write that out, I do have a
> > > problem:  That
> > > > TF1 object becomes unreadable.  HEre's the kind of error I Get:
> > > >
> > > > Error in <TBuffer::CheckByteCount>: object of class TF1 read
> > > too few bytes:
> > > > 1079 instead of 1151
> > > > Warning in <TBuffer::CheckByteCount>: TF1::Streamer() not in
> > > sync with data
> > > > on file, fix Streamer()
> > > >
> > > > Here's how do demonstrate the problem.  First, in root version
> > > 3.05/5 do the
> > > > following:
> > > >
> > > > TFile *f = new TFile("test30505.root","recreate")
> > > > TH1F *ph = new TH1F("ph","test",100,-5.,5.)
> > > > ph->FillRandom("gaus",100000)
> > > > ph->Fit("gaus")
> > > > ph->Write()
> > > > f->Close()
> > > > .q
> > > >
> > > > Then, run root version 3.05/7 and do the following:
> > > >
> > > > TFile *f = new TFile("test30505.root")
> > > > TH1F *ph = (TH1F *)f->Get("ph")
> > > > ph->Draw()                                               // no
> > > problem here!
> > > > //
> > > > //  Now, create a new TF1 attached to a new TH1
> > > > //
> > > > TH1F *ph1 = new TH1F("ph1","test1",100,-5.,5.)
> > > > ph1->FillRandom("gaus",100000)
> > > > ph1->Draw()
> > > > ph1->Fit("gaus")
> > > > TFile *f1 = new TFile("test.root","recreate")
> > > > ph1->SetDirectory(f1)
> > > > ph1->Write()
> > > > f1->Close()
> > > > .q
> > > >
> > > > Now run 3.05/7 again and do the following:
> > > >
> > > > TFile *f = new TFile("test.root")
> > > > ph1->Draw()
> > > >
> > > > and the error message appears:
> > > >
> > > > Error in <TBuffer::CheckByteCount>: object of class TF1 read
> > > too few bytes:
> > > > 1079 instead of 1151
> > > > Warning in <TBuffer::CheckByteCount>: TF1::Streamer() not in
> > > sync with data
> > > > on file, fix Streamer()
> > > >
> > > > Note: if you try to read test.root from version 3.05/5 - it
> > > works fine and
> > > > the TF1 is ok!
> > > >
> > > >
> > > ------------------------------------------------------------------
> > > --------------
> > > >                   Name: winmail.dat
> > > >    winmail.dat    Type: application/ms-tnef
> > > >               Encoding: base64
> > >
> > >
> > >
> >
> >
> ------------------------------------------------------------------
> --------------
> >                      Name: test30505.root
> >    test30505.root    Type: unspecified type (application/octet-stream)
> >                  Encoding: base64
> >
> >                 Name: test.root
> >    test.root    Type: unspecified type (application/octet-stream)
> >             Encoding: base64
>
>
>







This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:15 MET