ROOT logo
void showParts(TProfile* p, const char* title)
{
  if (!p) return;
  Printf(title);
  
  Int_t    n   = p->GetNbinsX();
  Double_t sum = 0;
  for (Int_t i = 1; i < n; i++) sum += p->GetBinContent(i);

  Double_t total = p->GetBinContent(n);
  Printf("sum %f total %f diff %f", sum, total, total-sum);

  for (Int_t i = 1; i < n; i++) { 
    Double_t cc = p->GetBinContent(i); 
    Printf("  //  %-24s: fraction of sum %4.1f%%   of total %4.1f%%", 
	   p->GetXaxis()->GetBinLabel(i), 100*cc/sum, 100*cc/total); 
  }
}
  
void ShowTiming(const char* filename)
{
  TFile *_file0 = TFile::Open(filename);
  new TBrowser;
  TList* forward;
  gDirectory->GetObject("Forward",forward);
  TList* forwardResults;
  gDirectory->GetObject("ForwardResults",forwardResults);
  TProfile* t   = (TProfile*)forward->FindObject("timing");
  TList*    dc  = (TList*)forward->FindObject("fmdDensityCalculator");
  TProfile* dct = (TProfile*)dc->FindObject("timing");
  TProfile* tr  = (TProfile*)forwardResults->FindObject("timing");
  
  showParts(t, "Full task");
  showParts(dct, "Density calculator");

  if (t) {
    TCanvas* c1 = new TCanvas("c1", "c1");
    t->Draw("s text30");
  }

  if (dct) {
    TCanvas* c2 = new TCanvas("c2", "c2");
    dct->Draw("s text30");
  }

  if (tr) {
    TCanvas* c3 = new TCanvas("c3", "c3");
    tr->Draw("s text30");
  }

}
 ShowTiming.C:1
 ShowTiming.C:2
 ShowTiming.C:3
 ShowTiming.C:4
 ShowTiming.C:5
 ShowTiming.C:6
 ShowTiming.C:7
 ShowTiming.C:8
 ShowTiming.C:9
 ShowTiming.C:10
 ShowTiming.C:11
 ShowTiming.C:12
 ShowTiming.C:13
 ShowTiming.C:14
 ShowTiming.C:15
 ShowTiming.C:16
 ShowTiming.C:17
 ShowTiming.C:18
 ShowTiming.C:19
 ShowTiming.C:20
 ShowTiming.C:21
 ShowTiming.C:22
 ShowTiming.C:23
 ShowTiming.C:24
 ShowTiming.C:25
 ShowTiming.C:26
 ShowTiming.C:27
 ShowTiming.C:28
 ShowTiming.C:29
 ShowTiming.C:30
 ShowTiming.C:31
 ShowTiming.C:32
 ShowTiming.C:33
 ShowTiming.C:34
 ShowTiming.C:35
 ShowTiming.C:36
 ShowTiming.C:37
 ShowTiming.C:38
 ShowTiming.C:39
 ShowTiming.C:40
 ShowTiming.C:41
 ShowTiming.C:42
 ShowTiming.C:43
 ShowTiming.C:44
 ShowTiming.C:45
 ShowTiming.C:46
 ShowTiming.C:47
 ShowTiming.C:48
 ShowTiming.C:49
 ShowTiming.C:50
 ShowTiming.C:51
 ShowTiming.C:52