#include "Riostream.h" #include "TString.h" #include "TFile.h" #include "TNtuple.h" #include "TSystem.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(__FILE__); dir.ReplaceAll("basic.C",""); dir.ReplaceAll("/./","/"); ifstream in; in.open(Form("%sData.txt",dir.Data())); //in.open("File2.txt"); Int_t Time; Float_t Vi_Brick1, Io_Brick1, Vo_Brick1, Vi_Brick2, Io_Brick2, Vo_Brick2, Vi_Brick3, Io_Brick3, Vo_Brick3, Vi_Brick4, Io_Brick4, Vo_Brick4; Int_t nlines = 0; TFile *f = new TFile("basic.root","RECREATE"); TH1F *h1 = new TH1F("h1","x distribution",43002,0,300); //TNtuple *ntuple = new TNtuple("ntuple","data fromcsv file","Time:Vi_Brick1:Io_Brick1:Vo_Brick1:Vi_Brick2:Io_Brick2:Vo_Brick2:Vi_Brick3:Io_Brick3:Vo_Brick3:Vi_Brick4:Io_Brick4:Vo_Brick4"); TTree *tree = new TTree("ntuple","data from txt file"); tree->Branch("Time", &Time, "Time/I"); tree->Branch("Vi_Brick1",&Vi_Brick1,"Vi_Brick1/F"); tree->Branch("Io_Brick1",&Io_Brick1,"Io_Brick1/F"); tree->Branch("Vo_Brick1",&Vo_Brick1,"Vo_Brick1/F"); tree->Branch("Vi_Brick2",&Vi_Brick2,"Vi_Brick2/F"); tree->Branch("Io_Brick2",&Io_Brick2,"Io_Brick2/F"); tree->Branch("Vo_Brick2",&Vo_Brick2,"Vo_Brick2/F"); tree->Branch("Vi_Brick3",&Vi_Brick3,"Vi_Brick3/F"); tree->Branch("Io_Brick3",&Io_Brick3,"Io_Brick3/F"); tree->Branch("Vo_Brick3",&Vo_Brick3,"Vo_Brick3/F"); tree->Branch("Vi_Brick4",&Vi_Brick4,"Vi_Brick4/F"); tree->Branch("Io_Brick4",&Io_Brick4,"Io_Brick4/F"); tree->Branch("Vo_Brick4",&Vo_Brick4,"Vo_Brick4/F"); while (1) { in >> Time >> Vi_Brick1 >> Io_Brick1 >> Vo_Brick1 >> Vi_Brick2 >> Io_Brick2 >> Vo_Brick2 >> Vi_Brick3 >> Io_Brick3 >> Vo_Brick3 >> Vi_Brick4 >> Io_Brick4 >> Vo_Brick4; if (!in.good()) break; //if (nlines < 23) printf("Time=%i, Vi_Brick1=%8f, Io_Brick1=%8f, Vo_Brick1=%8f, , Vi_Brick2=%8f, Io_Brick2=%8f, Vo_Brick2=%8f, Vi_Brick3=%8f, Io_Brick3=%8f, Vo_Brick3=%8f, , Vi_Brick4=%8f, Io_Brick4=%8f, Vo_Brick4=%8f", Time, Vi_Brick1, Io_Brick1, Vo_Brick1, Vi_Brick2, Io_Brick2, Vo_Brick2, Vi_Brick3, Io_Brick3, Vo_Brick3, Vi_Brick4, Io_Brick4), Vo_Brick4; //h1->Fill(Time); //ntuple->Fill(Time, Vi_Brick1, Io_Brick1, Vo_Brick1, Vi_Brick2, Io_Brick2, Vo_Brick2, Vi_Brick3, Io_Brick3, Vo_Brick3, Vi_Brick4, Io_Brick4, Vo_Brick4); tree->Fill(); nlines++; } printf(" found %d points\n",nlines); in.close(); f->Write(); }