I am using Root 3.03/09, compiled for win32 (VC6). I cannot test my macro with a more recent version, I don’t have VC7.
I copied an example from the tutorial named basic.C, which reads an ascii file and puts the contents in an ntuple, and put it in my HOME directory. Here is the source:
// example of macro to read data from an ascii file and
// create a root file with an histogram and an ntuple.
gROOT->Reset();
#include <iostream.h>
ifstream in;
// we assume a file basic.dat in the current directory
// this file has 3 columns of float data
in.open("basic.dat", ios::in);
Float_t x,y,z;
Int_t nlines = 0;
TFile *f = new TFile("basic.root","RECREATE");
TH1F *h1 = new TH1F("h1","x distribution",100,-4,4);
TNtuple *ntuple = new TNtuple("ntuple","data from ascii file","x:y:z");
while (1) {
in >> x >> y >> z;
if (!in.good()) break;
if (nlines < 5) printf("x=%8f, y=%8f, z=%8f\n",x,y,z);
h1->Fill(x);
ntuple->Fill(x,y,z);
nlines++;
}
printf(" found %d points\n",nlines);
in.close();
f->Write();
}
The macro works fine, I get no error message, except that it finds no point (although the file contains data in the required format) and makes no output file named basic.root. Here is the output:
Any idea ?
Marc