ROOT examples Jan 30, 2017 make_binned_and_fitted_to_root.C #include "TFile.h" #include "TGraphErrors.h" #include "TCanvas.h" #include "TAxis.h" //g++ `root-config --libs --cflags --ldflags` make_graph.C -o make_graph //.x ./make_binned_and_fitted_to_root.C("binned_and_fitted_channel_signal_1_channel_trigger_2_pulse_length_3.csv", "graphs.root", "title", "x_name", "y_name") #include "Riostream.h" using namespace std; void make_binned_and_fitted_to_root(TString csv_file, TString root_file, TString Graph_Name="", TString x_name="", TString y_name=""){ ifstream in; in.open(csv_file); TFile *f = new TFile(root_file, "UPDATE"); TGraphErrors *g1 = new TGraphErrors(); TCanvas *c1 = new TCanvas(Graph_Name); Double_t dac, A, mu, sigma; Int_t point = 0; while(1){ in>>dac>>A>>mu>>sigma; point++; if (!in.good()){ break; } g1->Set(point); g1->SetPoint(point, dac, mu); g1->SetPointError(point, 50, sigma); } c1->cd(); g1->SetTitle(Graph_Name); g1->GetXaxis()->SetTitle(x_name); g1->GetYaxis()->SetTitle(y_name); g1->Draw("ap"); f->cd(); c1->Write(); f->Close(); delete f; delete c1; delete g1; } int main(int argc, char **argv){ switch(argc){ case 3: make_binned_and_fitted_to_root(argv[1], argv[2]); break; case 4: make_binned_and_fitted_to_root(argv[1], argv[2], argv[3]); break; case 5: make_binned_and_fitted_to_root(argv[1], argv[2], argv[3],argv[4]); break; case 6: make_binned_and_fitted_to_root(argv[1], argv[2], argv[3],argv[4],argv[5]); break; default: return 1; } return 0; } make_graph.C #include "TFile.h" #include "TGraph.h" #include "TCanvas.h" #include "TAxis.h" //g++ `root-config --libs --cflags --ldflags` make_graph.C -o make_graph #include "Riostream.h" using namespace std; void make_graph(TString csv_file, TString root_file, TString Graph_Name="", TString x_name="", TString y_name=""){ ifstream in; in.open(csv_file); TFile *f = new TFile(root_file, "UPDATE"); TGraph *g1 = new TGraph(); TCanvas *c1 = new TCanvas(Graph_Name); Double_t x, y; Int_t point = 0; while(1){ in>>x>>y; point++; if (!in.good()){ break; } g1->Set(point); g1->SetPoint(point, x, y); } c1->cd(); g1->SetTitle(Graph_Name); g1->GetXaxis()->SetTitle(x_name); g1->GetYaxis()->SetTitle(y_name); g1->Draw("ap"); f->cd(); c1->Write(); f->Close(); } int main(int argc, char **argv){ switch(argc){ case 3: make_graph(argv[1], argv[2]); break; case 4: make_graph(argv[1], argv[2], argv[3]); break; case 5: make_graph(argv[1], argv[2], argv[3],argv[4]); break; case 6: make_graph(argv[1], argv[2], argv[3],argv[4],argv[5]); break; default: return 1; } return 0; }