#include "interface/FuncDef.h" #include "TGraph.h" #include "TMultiGraph.h" #include "TF1.h" #include "TText.h" #include "TLegend.h" void plot_performances() { setTDRStyle(); gROOT->Reset(); TMultiGraph * mg = new TMultiGraph(); const int N = 6; float * n = new float[N]; n[0] = 5; n[1] = 10; n[2] = 20; n[3] = 30; n[4] = 40; n[5] = 50; float * t = new float[N]; t[0]= 60.44; t[1] = 124.74; t[2] = 239.38; t[3]=376.08; t[4] = 499.34; t[5] = 603.238; TGraph * time = new TGraph(N,n,t); time->SetMarkerStyle(20); mg->Add(time,"P"); float * t1 = new float[N]; t1[0]= 45.01; t1[1] = 93.25; t1[2] = 177.34; t1[3]=280.6; t1[4] = 369.97; t1[5] = 444.52; TGraph * time1 = new TGraph(N,n,t1); time1->SetMarkerStyle(24); mg->Add(time1,"P"); float * s = new float[N]; s[0]=119./1.5; s[1]=236./1.5; s[2]=496./1.5; s[3]=702./1.5; s[4]=936./1.5; s[5]=1198./1.5; TGraph * size = new TGraph(N,n,s); size->SetMarkerStyle(21); size->SetMarkerColor(kRed); // mg->Add(size,"P"); mg->Draw("A"); mg->GetXaxis()->SetTitle("N (kevts)"); mg->GetYaxis()->SetTitle("CPU time(s)"); mg->GetYaxis()->SetTitleOffset(1.21); TF1 * fit = new TF1("fit","[0]+[1]*x",5,50); fit->SetLineColor(kBlack); fit->SetLineStyle(2); fit->SetLineWidth(1); time->Fit("fit",""); TGaxis *sizeaxis = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(), gPad->GetUxmax(), gPad->GetUymax(),mg->GetYaxis()->GetXmin()*1.5,mg->GetYaxis()->GetXmax()*1.5); sizeaxis->SetLineColor(kRed); sizeaxis->SetLabelColor(kRed); // sizeaxis->Draw(); TPaveText *pave = new TPaveText(5,472,35,600,"r"); pave->AddText("Delphes performances"); char text[500]; sprintf(text,"10 kevts in %.2f s",fit->GetParameter(1)); pave->AddText(text); pave->AddText("pp #rightarrow t #bar{t} X"); pave->Draw(); pave->SetBorderSize(0); pave->SetFillStyle(0); pave->SetTextAlign(12); pave->SetTextFont(42); //TLegend * leg = new TLegend(30,80,50,200); TLegend * leg = new TLegend(0.6,0.2,0.9,0.4); leg->AddEntry(time,"General","p"); leg->AddEntry(time1,"Event loop only","p"); leg->SetBorderSize(0); leg->SetFillStyle(0); leg->SetTextFont(42); leg->Draw(); }