/*********************************************************************** ** ** ** /----------------------------------------------\ ** ** | Delphes, a framework for the fast simulation | ** ** | of a generic collider experiment | ** ** \------------- arXiv:0903.2225v1 ------------/ ** ** ** ** ** ** This package uses: ** ** ------------------ ** ** ROOT: Nucl. Inst. & Meth. in Phys. Res. A389 (1997) 81-86 ** ** FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210] ** ** Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2] ** ** FROG: [hep-ex/0901.2718v1] ** ** HepMC: Comput. Phys. Commun.134 (2001) 41 ** ** ** ** ------------------------------------------------------------------ ** ** ** ** Main authors: ** ** ------------- ** ** ** ** Severine Ovyn Xavier Rouby ** ** severine.ovyn@uclouvain.be xavier.rouby@cern ** ** ** ** Center for Particle Physics and Phenomenology (CP3) ** ** Universite catholique de Louvain (UCL) ** ** Louvain-la-Neuve, Belgium ** ** ** ** Copyright (C) 2008-2009, ** ** All rights reserved. ** ** ** ***********************************************************************/ #include "interface/FuncDef.h" #include "TGraph.h" #include "TMultiGraph.h" #include "TF1.h" #include "TText.h" #include "TLegend.h" #include "TPie.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]; // v1.2b //t[0]= 60.44; t[1] = 124.74; t[2] = 239.38; t[3]=376.08; t[4] = 499.34; t[5] = 603.238; // v1.5b t[0]= 70.34; t[1] = 112.77; t[2] = 223.44; t[3]=332.39; t[4] = 451.85; t[5] = 555.68; TGraph * time = new TGraph(N,n,t); time->SetMarkerStyle(20); mg->Add(time,"P"); float * t1 = new float[N]; // v1.2b //t1[0]= 45.01; t1[1] = 93.25; t1[2] = 177.34; t1[3]=280.6; t1[4] = 369.97; t1[5] = 444.52; // v1.5b t1[0]= 38.43; t1[1] = 80.69; t1[2] = 157.83; t1[3]=227.67; t1[4] = 317.2; t1[5] = 395.74; TGraph * time1 = new TGraph(N,n,t1); time1->SetMarkerStyle(24); mg->Add(time1,"P"); float * s = new float[N]; // v1.2b //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; // v1.5b s[0]=200/1.5; s[1]=233./1.5; s[2]=464./1.5; s[3]=694./1.5; s[4]=925./1.5; s[5]=1184./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,"1 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(); float vals[]= {0.74, 0.26}; int nvals = sizeof(vals)/sizeof(vals[0]); char * labels[] = {"Event loop","Convertor"}; TPie * pie = new TPie("pie","",nvals,vals); //pie->Draw(); } void plot_filesize() { 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 * s = new float[N]; s[0]=119.; s[1]=236.; s[2]=496.; s[3]=702.; s[4]=936.; s[5]=1198.; TGraph * size = new TGraph(N,n,s); size->SetMarkerStyle(21); mg->Add(size,"P"); mg->Draw("A"); mg->GetXaxis()->SetTitle("N (kevts)"); mg->GetYaxis()->SetTitle("File size(MB)"); mg->GetYaxis()->SetTitleOffset(1.31); TF1 * fit = new TF1("fit","[0]+[1]*x",5,50); fit->SetLineColor(kBlack); fit->SetLineStyle(2); fit->SetLineWidth(1); size->Fit("fit","F"); TPaveText *pave = new TPaveText(5,944,35,1200,"r"); pave->AddText("Delphes performances"); char text[500]; sprintf(text,"1 kevts in %.2f MB",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); } void plot_timerepartition(float r=30.) { // float s[]= {119, 236, 496, 702, 936, 1198}; float vals[]= {0.74, 0.26}; int nvals = sizeof(vals)/sizeof(vals[0]); char * labels[] = {"Event loop","Convertor"}; TPie * pie = new TPie("pie","",nvals,vals); pie->Draw(); TPaveText *pave = new TPaveText(0.1,0.7,0.5,0.97,"br"); pave->AddText("Time repartition"); pave->Draw(); pave->SetBorderSize(0); pave->SetFillStyle(0); pave->SetTextAlign(12); pave->SetTextFont(42); pie->SetAngularOffset(r); pie->SetEntryRadiusOffset( 1, 0.01); pie->SetRadius(.15); pie->SetHeight(0.04); pie->SetLabels(labels); pie->SetLabelsOffset(0); pie->SetTextSize(0.06); pie->Draw("3d"); }