Andrei, In your second session, you have to open the file in "update" mode. See the two examples below; The first example test2.C creates the file with 10 entries. The second example opens the previous file in update mode and continues to fill. Rene Brun //-----------------file test2.C void test2() { int i,j; struct { unsigned short s_buf[8192]; } cbuf; TFile *ff = new TFile("test2.root", "recreate", "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->Print(); T->Write(); ff->Close(); } //-------------------file test2a.C void test2a() { int i,j; struct { unsigned short s_buf[8192]; } cbuf; TFile *ff = new TFile("test2.root", "update"); TTree *T = (TTree*)ff->Get("T"); T->SetBranchAddress("B", &cbuf); for(i = 0; i < 10; ++i) { cbuf.s_buf[0] = i; cbuf.s_buf[100] = i+10; T->Fill(); } T->Print(); T->Write(); ff->Close(); } A.V. Daniel wrote: > > Hi Rooters, > > Who can help me? I well know how to add new > records to the old file using C++ or fortran. > But how to do the similar using ROOT. I checked > the next code to write a simple TTree (Thanks > to Rene Brun who explained my error, it works now). > But I could not find description how to reopen > old file and to add new records in the same TTree. > May be it's very simple but I am not experience > with ROOT. Thanks in advance. > > 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 (From Rene Brun) > T->MakeClass("test4"); > > ff->Close(); > > } > > -- > > ******************************************************* > * Andrei V. Daniel > * Department of Physics & Astronomy, P.O. Box 1807-B > * Vanderbilt University Tel: (615) 322 2646 > * Nashville, TN 37235, USA Fax: (615) 343 7263 > *******************************************************
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:20 MET