Re: Painting histograms

From: Ulrich Husemann (husemann@physik.uni-dortmund.de)
Date: Thu Nov 11 1999 - 17:06:30 MET


Hi Rene!

Here is the macro:
{
  #include<string>
  gROOT->Reset("a");
  TFile f1("./good_fcs/dpr/dpr_1_1_991030_006.root");
  TFile f2("./good_fcs/dpr/dpr_1_4_991030_006.root");
  TFile f3("./good_fcs/dpr/dpr_1_8_991030_006.root");
  TFile f4("./good_fcs/dpr/dpr_2_4_991030_006.root");
  TFile f5("./good_fcs/dpr/dpr_2_8_991030_006.root");


  TCanvas *c1 = new TCanvas("c1","PCU dual ported RAM readout with FCS
test pattern",800,800);
  TPad *pad1 = new TPad("pad1","Segment 1 Channel
1",0.02,0.47,0.32,0.90,10);
  TPad *pad2 = new TPad("pad2","Segment 1 Channel
4",0.34,0.47,0.65,0.90,10);
  TPad *pad3 = new TPad("pad3","Segment 1 Channel
8",0.67,0.47,0.98,0.90,10);
  TPad *pad4 = new TPad("pad4","Segment 1 Channel
4",0.02,0.02,0.49,0.45,10);
  TPad *pad5 = new TPad("pad5","Segment 1 Channel
8",0.51,0.02,0.98,0.45,10);
  TPaveLabel *label1 = new TPaveLabel(0.02,0.92,0.58,0.98,"FCS Test
pattern 6: ALL");
  label1->SetFillColor(29);
  label1->Draw();

  pad1->Draw();
  pad1->SetLogy();
  pad2->Draw();
  pad3->SetLogy(); 
  pad3->Draw();
  pad3->SetLogy();
  pad4->Draw();
  pad4->SetLogy();
  pad5->Draw();
  pad5->SetLogy();

  c1->SetFillColor(10);
  Int_t colors[]={9,8,7,6,5,1};
  gStyle->SetPalette(6,colors);
  gStyle->SetOptStat(11);

  for (Int_t i=1;i<6;++i) statistics_all(i,200);
}

void statistics_all(Int_t filenumber, Int_t readouts)
  {
  switch(filenumber)
    {
    case 1: f1.cd(); pad1->cd(); string segchannel("Seg. 1 Ch. 1 ");
break;
    case 2: f2.cd(); pad2->cd(); string segchannel("Seg. 1 Ch. 4 ");
break;
    case 3: f3.cd(); pad3->cd(); string segchannel("Seg. 1 Ch. 8 ");
break;
    case 4: f4.cd(); pad4->cd(); string segchannel("Seg. 2 Ch. 4 ");
break;
    case 5: f5.cd(); pad5->cd(); string segchannel("Seg. 2 Ch. 8 ");
break;
    }
  segchannel.append("\ncontents of MU4  vs. BX[4..0]CN");
  TH2F h1("h1",segchannel.c_str(),65,0,65,50,0,500);
  switch (filenumber)
  {
    case 1: mytree.Draw("(mu4l+mu4m+mu4r):bx>>h1","bx>1","colz"); break;
    case 2: mytree.Draw("(mu4l+mu4m):bx>>h1","bx>1","colz"); break;
    case 3: mytree.Draw("(mu4l+mu4m):bx>>h1","bx>1","colz"); break; 
    case 4: mytree.Draw("(mu4l+mu4r):bx>>h1","bx>1","colz"); break;
    case 5: mytree.Draw("(mu4l+mu4m):bx>>h1","bx>1","colz"); break;
  }
  gPad->Update();
}

First I load the funktion statistics_all via ".L", then I execute the main
program.

Ulrich



On Thu, 11 Nov 1999, Rene Brun wrote:

> Hi Ulrich,
> My guess is that your histograms are destroyed somewhere in your
> process.
> Could you send me a simplified version of your macro ?
> 
> Rene Brun
> 
> Ulrich Husemann wrote:
> > 
> > Dear Rooters!
> > 
> > I try to write a macro to paint several histograms into different pads in
> > a canvas. The procedure is the following:
> > 1) create pads
> > 2) pad.cd();
> > 3) book histogram
> > 4) Draw contents of some root file and pipe them into the histogram
> > 
> > If I stop here, nothing is painted.
> > 
> > But if I do a
> > 
> > gPad->Update();
> > 
> > I can see the histogram for a few milliseconds before it is gone (the
> > frames and the stat box are still there).
> > 
> > Ulrich
> 

----------------------------------------------------------------
Ulrich Husemann                           room  P2-02-407
Experimentelle Physik Vb        	  phone +49-231-755-3667
Dortmund University		          fax   +49-231-755-4547	
Otto-Hahn-Str. 4, D-44227 Dortmund

e-mail: husemann@physik.uni-dortmund.de
WWW:    http://www.physik.uni-dortmund.de/herab/main.html
----------------------------------------------------------------  



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:42 MET