Draw_Time_Hists.C

Go to the documentation of this file.
00001 void Draw_Time_Hists(TTree* t);
00002 
00003 void Draw_Time_Hists(const Char_t* filename, const Char_t* perfstatsname) {
00004    // Open the file called filename and get
00005    // the perftstats tree (name perfstatsname)
00006    // from the file
00007 
00008    if(!TString(gSystem->GetLibraries()).Contains("Proof"))
00009       gSystem->Load("libProof.so");
00010 
00011    TFile f(filename);
00012    if (f.IsZombie()) {
00013       cout << "Could not open file " << filename << endl;
00014       return;
00015    }
00016 
00017    TTree* perfstats = dynamic_cast<TTree*>(f.Get(perfstatsname));
00018    if (perfstats) {
00019       Draw_Time_Hists(perfstats);
00020    } else {
00021       cout << "No Tree named " << perfstatsname
00022          << " found in file " << filename << endl;
00023    }
00024 
00025    delete perfstats;
00026    f.Close();
00027 }
00028 
00029 void Draw_Time_Hists(TTree* t) {
00030    // Draw processing time, CPU time, and latency per packet
00031    // distributions from the input tree
00032 
00033    if (!t) {
00034       cout << "Invalid input tree" << endl;
00035       return;
00036    }
00037 
00038    gROOT->SetStyle("Plain");
00039    gStyle->SetOptStat(0);
00040    gStyle->SetNdivisions(505);
00041    gStyle->SetTitleFontSize(0.1);
00042 
00043    if(!TString(gSystem->GetLibraries()).Contains("Proof"))
00044       gSystem->Load("libProof.so");
00045 
00046    TCanvas* canvas = new TCanvas("ProfHists","Profile Histograms",800,600);
00047    canvas->Divide(3,1);
00048 
00049    canvas->cd(1);
00050    gPad->SetLogy();
00051    t->Draw("fProcTime");
00052    TH1* h = dynamic_cast<TH1*>(gROOT->FindObject("htemp"));
00053    h->SetTitle("Processing Time per Packet");
00054    h->GetXaxis()->SetTitle("Processing Time [s]");
00055 
00056    gPad->Update();
00057    TPaveText* titlepave = 0;
00058    titlepave = dynamic_cast<TPaveText*>(gPad->GetListOfPrimitives()->FindObject("title"));
00059    if (titlepave) {
00060       Double_t x1ndc = titlepave->GetX1NDC();
00061       Double_t x2ndc = titlepave->GetX2NDC();
00062       titlepave->SetX1NDC((1.0-x2ndc+x1ndc)/2.);
00063       titlepave->SetX2NDC((1.0+x2ndc-x1ndc)/2.);
00064       titlepave->SetBorderSize(0);
00065       gPad->Update();
00066    }
00067    gPad->Modified();
00068 
00069    canvas->cd(2);
00070    gPad->SetLogy();
00071    t->Draw("fCpuTime");
00072    h = dynamic_cast<TH1*>(gROOT->FindObject("htemp"));
00073    h->SetTitle("CPU Time per Packet");
00074    h->GetXaxis()->SetTitle("CPU Time [s]");
00075 
00076    gPad->Update();
00077    titlepave = dynamic_cast<TPaveText*>(gPad->GetListOfPrimitives()->FindObject("title"));
00078    if (titlepave) {
00079       Double_t x1ndc = titlepave->GetX1NDC();
00080       Double_t x2ndc = titlepave->GetX2NDC();
00081       titlepave->SetX1NDC((1.0-x2ndc+x1ndc)/2.);
00082       titlepave->SetX2NDC((1.0+x2ndc-x1ndc)/2.);
00083       titlepave->SetBorderSize(0);
00084       gPad->Update();
00085    }
00086    gPad->Modified();
00087 
00088    canvas->cd(3);
00089    gPad->SetLogy();
00090    t->Draw("fLatency");
00091    h = dynamic_cast<TH1*>(gROOT->FindObject("htemp"));
00092    h->SetTitle("Request Packet Latency");
00093    h->GetXaxis()->SetTitle("Latency [s]");
00094 
00095    gPad->Update();
00096    titlepave = dynamic_cast<TPaveText*>(gPad->GetListOfPrimitives()->FindObject("title"));
00097    if (titlepave) {
00098       Double_t x1ndc = titlepave->GetX1NDC();
00099       Double_t x2ndc = titlepave->GetX2NDC();
00100       titlepave->SetX1NDC((1.0-x2ndc+x1ndc)/2.);
00101       titlepave->SetX2NDC((1.0+x2ndc-x1ndc)/2.);
00102       titlepave->SetBorderSize(0);
00103       gPad->Update();
00104    }
00105    gPad->Modified();
00106 
00107 }

Generated on Tue Jul 5 15:15:06 2011 for ROOT_528-00b_version by  doxygen 1.5.1