{
	gROOT->Reset();

	TCanvas c1("name", "Read time on XML vs CSV", 200, 10, 600, 600 );
	//TPaveLabel l1(0.3, 0.91, 0.7, 0.99, "abc");
	//l1.Draw();
	c1.SetGrid();
	gStyle->SetOptStat(1001111);
	gStyle->SetOptFit(111);
	gStyle->SetCanvasBorderMode(0);
	gStyle->SetCanvasColor(0);
	gStyle->SetStatColor(0);
	gStyle->SetFrameBorderSize(0);
	gStyle->SetFrameBorderMode(0);

	#include <fstream.h>
	#include <stdio.h>
	#include <math.h>
	ntuple = new TNtuple("name", "title", "no:xml:minxml:maxxml:csv:mincsv:maxcsv:ratio");
	ifstream data("ex2.dat");
	float no,xml,minxml,maxxml,csv,mincsv,maxcsv,ratio;
	Long_t lCounter = 0;
	while( data >> no >> xml >> minxml >> maxxml >> csv >> mincsv >> maxcsv >> ratio ) {
		ntuple->Fill(no, xml, minxml, maxxml,csv,mincsv,maxcsv,ratio);
		lCounter++;
	}
	data.close();
	printf("|%ld|\n", lCounter);
	
	Double_t dwRatio[lCounter+1],dwNo[lCounter+1];
	Double_t dwMinRatio[lCounter+1], dwMaxRatio[lCounter+1];
	Double_t dwXml[lCounter+1], dwCsv[lCounter + 1];
	ifstream data("ex2.dat");
	lCounter = 0;
	while (data >> no >> xml >> minxml >> maxxml >> csv >> mincsv >> maxcsv >> ratio ) {
		dwRatio[lCounter] = ratio;
		dwNo[lCounter] = no;
		dwMinRatio[lCounter] = ratio - sqrt(ratio);	
		dwMaxRatio[lCounter] = ratio + sqrt(ratio);
		dwXml[lCounter] = xml;
		dwCsv[lCounter] = csv;
		lCounter++;
	}
	data.close();

	//gr = new TGraph(lCounter, dwNo, dwRatio );
	gr1 = new TGraph(lCounter, dwNo, dwXml );
	//gr = new TGraphAsymmErrors( lCounter, dwNo, dwRatio, 0,0,dwMinRatio, dwMaxRatio);
	gr1->SetLineColor(1);
	gr1->SetLineWidth(5);
	gr1->SetMarkerColor(4);
	gr1->SetMarkerStyle(0);
	gr1->SetTitle("Xml v.s. CSV Reading Time");
	gr1->GetXaxis()->SetTitle("data record number");
	gr1->GetYaxis()->SetTitle("Mean Reading Time[ms]");
	gr1->GetYaxis()->SetTitleOffset(1.2);
	gr1->Draw("AL");
	
	
	/** Fitting
	 */
	
	//TF1 f1("f1", "[1]*x*x+[2]*x+[3]");
	TF1 f1("f1", "pol2");
	f1.SetLineWidth(2);
	f1.SetLineColor(2);
	//f1.SetParameters(2.437,-0.367,0.001);
	gr1.Fit("f1");
	
	TLatex l;
	l.SetTextAlign(12);
	l.SetTextSize(0.04);
	l.DrawLatex(20,500, "f(x)=2.3#times10^{-3}x^{2} - 0.9#times10^{-3}x + 19.84");

	
	gr2 = new TGraph(lCounter, dwNo, dwCsv );
	gr2->SetLineColor(1);
	gr2->SetLineWidth(5);
	gr2->Draw("LP");
	
	//TF1 f2("f2", "[1]*x+[2]");
	TF1 f2("f2", "pol2");
	f2.SetLineColor(5);
	f2.SetLineWidth(2);
	f2.SetParameters(0.02877,10.9182);
	gr2.Fit("f2");
	l.DrawLatex(150,50,"f(x)=1.7#times10^{-6}x^{3} + 2.8#times10^{-2}x + 0.929");
	
	
}
