Re: proj ntuple into predefined histogram

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Aug 19 1998 - 09:28:03 MEST


Stephen Bailey wrote:
> 
> Hi.
> 
> I'm trying to project an ntuple into a histogram which I
> defined so that I can control the number of bins used.
> e.g.
> 
>    TH1F h1 = new TH1F("blat", "quat", 20, 4.5, 6);
>    ntuple->Draw("m>>+h1", "(4.5<m)&&(m<6.0)");
>    h1->Draw();
> 
> I also tryed m>>h1, but the ntuple->Draw command always
> picks its own choice for number of bins and h1 always
> seems to remain empty.  If I don't predefine h1 then it
> gets created and properly filled but I don't have control
> over the number of bins.
> 
> Is there a way to do this easily (i.e. without looping
> trough the ntuple and filling the histogram event by event)?
> 

Replace:
 TH1F h1 = new TH1F(..
by
 TH1F *h1 = new TH1F(..

The TTree::Draw function (in the form "m>>+h1") fills an histogram
with the name "h1". In your case h1 is the name of the pointer,
not the name of the histogram ("blat").
It is a good practice to have the pointer_name = histogram_name.
Your program will work with:
   TH1F *h1 = new TH1F("blat", "quat", 20, 4.5, 6);
   ntuple->Draw("m>>+blat", "(4.5<m)&&(m<6.0)");
   h1->Draw();
or
   TH1F *blat = new TH1F("blat", "quat", 20, 4.5, 6);
   ntuple->Draw("m>>+blat", "(4.5<m)&&(m<6.0)");
   blat->Draw();

Rene Brun



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