# Reading an ascii file and making an ntuple

    {
    //   example of macro to read data from an ascii file and
    //   create a root file with an histogram and an ntuple.
       gROOT->Reset();
    #include "Riostream.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");

       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=%8fn",x,y,z);
          h1->Fill(x);
          ntuple->Fill(x,y,z);
          nlines++;
       }
       printf(" found %d pointsn",nlines);

       in.close();

       f->Write();
    }