Re: (no subject)

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Mar 02 2000 - 09:00:47 MET


Hi Andrei,
You forgot to write the tree header to the file at the end of your
macro.
See the added line in your code below. With this it will work.
Note that you should preset your array s_buf.

Rene Brun

A.V. Daniel wrote:
> 
> Hi Rooters,
> 
> Who can answer what is wrong?
> I tried to make a simple code "test2.C" working
> with TFile and TTree. It creates "test4.C" code
> to read the TTree file. But after the next
> commands
> 
> .L test4.C
> test4 t
> t.Show(1)
> 
> I got the message
> "This program has performed on illegal operation
> and will be shut down"
> Details:
> ROOT caused an invalid page fault in
> module ROOT_TREE.DLL at 015f:01345c08.
> 
> What is wrong in my code? It was used on Windows 98
> and this moment I have not possibility to check it
> on another platform. The version of Root was 2.23.12.
> 
> 
> In principal I would like to apply the root for saving
> a 3d object, which has size ~16 GB, as a TTree. May be
> it will reduce the size.
> 
> Andrei
> 
> void test2()
> {
>    int i,j;
>    struct {
>      unsigned short s_buf[8192];
>    } cbuf;
> 
>    TFile *ff = new TFile("ff.dat", "NEW", "Test of root file");
> 
>    TTree *T = new TTree("T", "List of arrays");
> 
>    TBranch *B = T->Branch("B", &cbuf, "s_buf[8192]/s");
> 
>    for(i = 0; i < 10; ++i)
>    {
>       cbuf.s_buf[0] = i;
>       cbuf.s_buf[100] = i+10;
>       T->Fill();
>    }

     T->Write();  // <================ new line
>    T->MakeClass("test4");
> 
>    ff->Close();
> 
> }



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:20 MET