#include #include #include #include "TString.h" #include "TSystem.h" #include "TInterpreter.h" #include "TFile.h" #include "TH1.h" #include "TNtuple.h" #include "TCanvas.h" void basic() { // Read data from an ascii file and create a root file with an histogram and an ntuple. // see a variant of this macro in basic2.C //Author: Rene Brun // read file $ROOTSYS/tutorials/tree/basic.dat // this file has 3 columns of float data TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); dir.ReplaceAll("basic.C",""); dir.ReplaceAll("/./","/"); ifstream in; in.open(Form("%sD800M655.dat",dir.Data())); Float_t x; Int_t nlines = 0; TFile *f = new TFile("D800M655.root","RECREATE"); TH1F *h1 = new TH1F("h1","x distribution", 100, 0, 10000); TNtuple *ntuple = new TNtuple("ntuple","data from ascii file","x"); while (1) { in >> x; if (!in.good()) break; if (nlines < 5) printf("x=%8f\n",x); h1->Fill(x); ntuple->Fill(x); nlines++; } printf(" found %d points\n",nlines); in.close(); f->Write(); TCanvas *c = new TCanvas("c", "c"); h1->Draw(); c->SetLogy(1); c->SaveAs("c.pdf"); }