/// \file /// \ingroup tutorial_hist /// \notebook -js /// Illustrate use of the TH1::GetCumulative method. /// /// \macro_image /// \macro_code /// /// \author M. Schiller #include #include #include "TH1.h" #include "TH1D.h" #include "TCanvas.h" #include "TRandom.h" TCanvas *original_fast() { gStyle->SetOptStat("nemri"); gStyle->SetStatW(0.15); // Set width of stat-box (fraction of pad size) gStyle->SetStatH(0.1); // Set height of stat-box (fraction of pad size) double RightMArgin = 13.0; double LeftMargin = 5.0; double StatsTextSize = 0.01; TH1* h5 = new TH1D("8000 Samples","", 260, LeftMargin, RightMArgin); double ref_value5 = 5.38718; ifstream inp5; double x5; inp5.open("Penalty_8000_522000_new.txt"); while (inp5 >> x5) { h5->Fill(x5); } inp5.close(); h5->SetLineColor(9); h5->SetLineWidth(2); TLine *l5 = new TLine(ref_value5,0,ref_value5,h5->GetMaximum()); l5->SetLineColor(9); l5->SetLineWidth(2); h5->GetYaxis()->SetRangeUser(0,15000); //4000_522422 TH1* h = new TH1D("4000 Samples","", 260, LeftMargin, RightMArgin); double ref_value = 5.47581; ifstream inp; double x; inp.open("Penalty_4000_522000.txt"); while (inp >> x) { h->Fill(x); } inp.close(); h->SetLineColor(7); h->SetLineWidth(2); TLine *l = new TLine(ref_value,0,ref_value,h->GetMaximum()); l->SetLineColor(7); l->SetLineWidth(2); //2000_522422 TH1* h1 = new TH1D("2000 Samples","", 260, LeftMargin, RightMArgin); double ref_value1 = 6.29896; ifstream inp1; double x1; inp1.open("Penalty_2000_522000.txt"); while (inp1 >> x1) { h1->Fill(x1); } inp1.close(); h1->SetLineColor(8); h1->SetLineWidth(2); TLine *l1 = new TLine(ref_value1,0,ref_value1,h1->GetMaximum()); l1->SetLineColor(8); l1->SetLineWidth(2); //1000_522422 TH1* h2 = new TH1D("1000 Samples","", 260, LeftMargin, RightMArgin); double ref_value2 = 7.65041; ifstream inp2; double x2; inp2.open("Penalty_1000_522000.txt"); while (inp2 >> x2) { h2->Fill(x2); } inp2.close(); h2->SetLineColor(6); h2->SetLineWidth(2); TLine *l2 = new TLine(ref_value2,0,ref_value2,h2->GetMaximum()); l2->SetLineColor(6); l2->SetLineWidth(2); //100_522422 TH1* h3 = new TH1D("100 Samples","", 260, LeftMargin, RightMArgin); double ref_value3 = 10.98; ifstream inp3; double x3; inp3.open("Penalty_100_522000.txt"); while (inp3 >> x3) { h3->Fill(x3); } inp3.close(); h3->SetLineColor(46); h3->SetLineWidth(2); TLine *l3 = new TLine(ref_value3,0,ref_value3,h3->GetMaximum()); l3->SetLineColor(46); l3->SetLineWidth(2); //Chr_3_522422 TH1* h4 = new TH1D("Reference Coil Set","",260, LeftMargin, RightMArgin); double ref_value4 = 6.65137; ifstream inp4; double x4; inp4.open("Penalty_Chr_3.5_522000.txt"); while (inp4 >> x4) { h4->Fill(x4); } inp4.close(); h4->SetLineColor(1); h4->SetLineWidth(2); TLine *l4 = new TLine(ref_value4,0,ref_value4,h4->GetMaximum()); l4->SetLineColor(1); l4->SetLineWidth(2); //------------------------------The Drawing Begins---------------------------------------------------- // draw histogram together with its cumulative distribution TCanvas* c = new TCanvas; // c->Divide(1,2); // c->cd(1); gPad->SetGrid(1,1); TIter next(gDirectory->GetList()); TObject *obj; while ((obj=next())) { if (obj->InheritsFrom("TH1")) { TH1 *m = (TH1*)obj; m->GetXaxis()->SetTitle("Penalty Value"); m->GetXaxis()->SetTitleSize(0.025); m->GetXaxis()->CenterTitle(); m->GetXaxis()->SetTitleOffset(1.3); m->GetXaxis()->SetTickLength(-0.02); m->GetXaxis()->SetLabelSize(0.02); m->GetXaxis()->SetLabelOffset(0.02); m->GetYaxis()->SetTitle("Frequency"); m->GetYaxis()->SetTitleSize(0.025); m->GetYaxis()->CenterTitle(); m->GetYaxis()->SetTitleOffset(1.4); m->GetYaxis()->SetTickLength(-0.013); m->GetYaxis()->SetLabelSize(0.02); m->GetYaxis()->SetLabelOffset(0.015); } } h5->Draw("Y+"); l5->Draw(); h->Draw("sames"); l->Draw(); h1->Draw("sames"); l1->Draw(); h2->Draw("sames"); l2->Draw(); h3->Draw("sames"); l3->Draw(); h4->Draw("sames"); l4->Draw(); //----------------------------------------------------------------------------------------------------- c->Update(); double value = 3.141592; TPaveStats *s5 = (TPaveStats*)h5->GetListOfFunctions()->FindObject("stats"); //s5->SetName("h5_stats"); //h5->SetStats(0); //TList *lol = s5->GetListOfLines(); //TLatex *ltx = new TLatex(0, 0, TString::Format("f(x_0) = %g", ref_value5)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("1%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("2%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("5%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("10%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); s5->SetLineColor(9); s5->SetLineWidth(2); s5->SetX1NDC(0.0); s5->SetX2NDC(0.14); s5->SetY1NDC(0.99); s5->SetY2NDC(0.79); s5->SetTextSize(StatsTextSize); s5->Draw(); TPaveStats *s = (TPaveStats*)h->GetListOfFunctions()->FindObject("stats"); //s->SetName("h1_stats"); //h->SetStats(0); //TList *lol = s->GetListOfLines(); //TLatex *ltx = new TLatex(0, 0, TString::Format("f(x_0) = %g", ref_value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("1%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("2%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("5%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("10%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); s->SetLineColor(7); s->SetLineWidth(2); s->SetX1NDC(0.15); s->SetX2NDC(0.29); s->SetY1NDC(0.99); s->SetY2NDC(0.79); s->SetTextSize(StatsTextSize); s->Draw(); TPaveStats *s1 = (TPaveStats*)h1->GetListOfFunctions()->FindObject("stats"); //s1->SetName("h1_stats"); //h1->SetStats(0); //TList *lol = s1->GetListOfLines(); //TLatex *ltx = new TLatex(0, 0, TString::Format("f(x_0) = %g", ref_value1)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("1%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("2%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("5%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); //ltx = new TLatex(0, 0, TString::Format("10%% = %g", value)); //ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); //lol->Add(ltx); s1->SetLineColor(8); s1->SetLineWidth(2); s1->SetX1NDC(0.30); s1->SetX2NDC(0.44); s1->SetY1NDC(0.99); s1->SetY2NDC(0.79); s1->SetTextSize(StatsTextSize); s1->Draw(); TPaveStats *s2 = (TPaveStats*)h2->GetListOfFunctions()->FindObject("stats"); s2->SetName("h2_stats"); h2->SetStats(0); lol = s2->GetListOfLines(); ltx = new TLatex(0, 0, TString::Format("f(x_0) = %g", ref_value2)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("1%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("2%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("5%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("10%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); s2->SetLineColor(6); s2->SetLineWidth(2); s2->SetX1NDC(0.45); s2->SetX2NDC(0.59); s2->SetY1NDC(0.99); s2->SetY2NDC(0.79); s2->SetTextSize(StatsTextSize); s2->Draw(); TPaveStats *s3 = (TPaveStats*)h3->GetListOfFunctions()->FindObject("stats"); s3->SetName("h3_stats"); h3->SetStats(0); lol = s3->GetListOfLines(); ltx = new TLatex(0, 0, TString::Format("f(x_0) = %g", ref_value3)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("1%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("2%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("5%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("10%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); s3->SetLineColor(46); s3->SetLineWidth(2); s3->SetX1NDC(0.60); s3->SetX2NDC(0.74); s3->SetY1NDC(0.99); s3->SetY2NDC(0.79); s3->SetTextSize(StatsTextSize); s3->Draw(); TPaveStats *s4 = (TPaveStats*)h4->GetListOfFunctions()->FindObject("stats"); s4->SetName("h4_stats"); h4->SetStats(0); lol = s4->GetListOfLines(); ltx = new TLatex(0, 0, TString::Format("f(x_0) = %g", ref_value4)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("1%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("2%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("5%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); ltx = new TLatex(0, 0, TString::Format("10%% = %g", value)); ltx->SetTextFont(42); ltx->SetTextSize(StatsTextSize); ltx->SetTextColor(1); lol->Add(ltx); s4->SetLineColor(1); s4->SetLineWidth(2); s4->SetX1NDC(0.75); s4->SetX2NDC(0.89); s4->SetY1NDC(0.99); s4->SetY2NDC(0.79); s4->SetTextSize(StatsTextSize); gPad->Modified(); c->Update(); gPad->Print("2D_35_fast.tex"); gPad->Print("2D_35_fast.pdf"); return c; }