Hello,
I would like to update an existing tree in the existing file
with more entries. In the following example after running the
program twice I would like to have 75000 entries in the ntuple
instead of 50000 which I get using this version.
Thank you and best regards,
Michal Lijowski
// This program tests updating the ROOT ntuple
#include <TROOT.h>
#include <Rtypes.h>
#include <TSystem.h>
#include <TFile.h>
#include <TNtuple.h>
#include <TRandom.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
int main(int argc, char **argv)
{
char *ProgName;
TFile *hfile;
struct stat *statbuf;
TNtuple *ntuple;
TROOT test_ROOT("SIMPLE", "Testing Tree Update");
ProgName = strrchr(argv[0], '/');
if (ProgName == NULL) {
/* not running under gdb */
ProgName = argv[0];
} else {
/* running under gdb */
ProgName++;
}
Char_t outfile[40];
sprintf(outfile, "%s.root", ProgName);
Int_t istat = 1;
istat = stat(outfile, statbuf);
Int_t NoEvents;
// test whether the output file exists or not
if ( (istat < 0) && (errno == ENOENT) ) {
printf(" %s file %s does not exist istat %d errno %d\n", ProgName, outfile, istat, errno);
hfile = (TFile*)gROOT->FindObject(outfile);
if (hfile) hfile->Close();
hfile = new TFile(outfile,"RECREATE","Demo ROOT file with ntuple");
NoEvents = 25000;
// return 1;
} else if ( (istat < 0) && (errno != ENOENT) ) {
printf(" %s has problem with file %s istat %d errno %d\n", ProgName, outfile, istat, errno);
return 1;
} else if (istat == 0) {
printf(" %s file %s exists istat %d errno %d\n", ProgName, outfile, istat, errno);
hfile = new TFile(outfile, "UPDATE");
NoEvents = 50000;
}
ntuple = new TNtuple("ntuple","Demo ntuple","px:py:pz:random:i");
// Fill histograms randomly
gRandom->SetSeed();
Float_t px, py, pz;
for (Int_t i = 0; i < NoEvents; i++) {
gRandom->Rannor(px,py);
pz = px*px + py*py;
Float_t random = gRandom->Rndm(1);
ntuple->Fill(px, py, pz, random, i);
}
// Save all objects in this file
hfile -> Write();
hfile -> Close();
return 0;
}
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:21 MET