Re: Filling histograms from ntuples

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Sep 08 1997 - 10:05:33 MEST


The problem with leading blanks will be fixed.
Rene Brun

Thomas Kraemerkaemper wrote:
> 
> Rene,
> 
> thanks for your help. While trying out I detected, that leading blanks
> of the histogram name are not ignored, e.g.
> 
> ntuple->Draw("some_quantity >>histogram");
> 
> works as expected, but
> 
> ntuple->Draw("some_quantity >> histogram");
> 
> does not: In the latter case a new histogram " histogram" is created,
> instead of using the predefined histogram "histogram". I guess most
> users will regard this as an unwanted feature: leading blanks in
> object names should always be skipped.
> 
> Tsch"uss, Thomas Kr"amerk"amper.
> 
> >
> > Thomas Kraemerkaemper wrote:
> > >
> > >
> > > I'm still struggeling with this problem (perhaps I didn't understand
> > > the ROOT memory/scope concepts; IMO there's a lack of documentation,
> > > because I can't figure out that from the WWW pages):
> > >
> > > I would like to fill one predefined histogram with projections from
> > > different TTrees from different files:
> > >
> > Thomas,
> > Sorry for the delay. I am just back to CERN.
> > I have slightly modified your macro to save the pointer to the directory
> > containing your histogram and to set this directory before
> > executing ntuple->Draw
> > As you say, this should be better explained in the documentation.
> > Rene
> >
> > {
> >    gROOT->Reset();
> >    Char_t mc_object_name[3];
> >    TTree *mc[3];
> >    TFile *mc_file[3];
> >    TH1F *mc_histo = new TH1F("mc_histo", "MC", 20, 0., 1.);
> >    TDirectory *homedir = gDirectory;    //Save pointer to current directory
> >    mc_file[0] = new TFile("mc1.root");
> >    mc_file[1] = new TFile("mc2.root");
> >    mc_file[2] = new TFile("mc3.root");
> >    // Files contain TTrees h1 - h3.
> >    // I can't 'cd' to the files and use h1->Draw("some_quantity >>+ mc_histo").
> >
> >    // Instead I've tried something like:
> >    for (Int_t i = 1; i < 2; i++)
> >      {
> >         sprintf(mc_object_name, "h%1i", i);
> >         mc[i] = (TTree *) mc_file[i]->Get(mc_object_name);
> >         homedir->cd();       //change directory
> >         mc[i]->Draw("some_quantity >>+mc_histo");
> >      }
> >
> >    // And again I got not my histogram filled, but a newly created one:
> >    mc_histo->Draw();
> >    c1->Update();
> >    // Is empty...
> > }
> >



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