Re: [ROOT] update on histograms

From: Frederic Villeneuve-Seguier (villeneu@cppm.in2p3.fr)
Date: Wed May 29 2002 - 19:32:52 MEST


Hi,
I probably gave bad explanation of what I want to do :
I run on several data files. On each data files I apply a class that
open/update a root files with some histograms.
In order to update histograms, I check if they are defined, if not I
create them, but if they are already define I declare pointers to them.

This is working but in the root files where I store my histograms,
I have duplicated histos (different cycles of the same histos)

Is there a way to avoid duplication, and to update an histogram ?

thanks,
frederic.



On Wed, 29 May 2002, Rene Brun wrote:

> Hi Frederic,
>
> You must write the histograms to the file once you have filled them.
> In your case,  add the statement
>     f->Write();
> just after the loop filling your histograms
>
> Rene Brun
>
>
> On Tue, 28 May 2002, Frederic Villeneuve-Seguier wrote:
>
> >
> >
> > Hi all,
> >
> >
> >  I want to study a large number of root files and I can't chain them.
> > So I study files one by one.
> > FOr somme coding reason, I need to apply a class inherited from a
> > MakeClass() on each of the files.
> > What I'm trying to do is :
> > I open in the "update" mode, the file where I store the results of my
> > studies. Then I declare (if it's the first time) or I "point at"
> > the histograms and fill/update them.
> > I use this in a C++ standalone mode.
> >
> > At the moment the file with the results is empty, and it seems that
> > the histograms aren't detected. I coded it this way :
> >
> >   //--- Check if histos exists
> >   TFile * f = TFile::Open("TriggStudies.root");
> >   f->ls();
> >   TH1F * check = NULL;
> >   check = (TH1F * ) f->Get("sJ_nev_mu");
> >   cout << "check = " << check << endl;
> >   if (check == NULL) {
> >     //--- Histograms Creation
> >     cout << "| [#] Create Histograms for Trigger Studies" << endl;
> >     diJets_Nevts_mu = new TH1F("sJ_nev_mu","N evt vs Pt of Jet - L1 mu",75,0,150);
> >   } else {
> >     diJets_Nevts_mu = (TH1F * ) f->Get("sJ_nev_mu");
> >   }
> >
> > the problem I have is that data files after data files, the "check"
> > pointer is everytime empty.
> >
> > Does someone has an idea on what could be the source of this problem ?
> >
> > In an other way of saying that, Is it possible to fill histograms in a
> > root file, close it, then reopen this file, update the histograms
> > and re-close it again, and so on ... ?
> >
> >
> > many thanks,
> > take care,
> > 		frederic.
> >
> >
> > *---------------------------------------------------------*
> > | Frederic Villeneuve-Seguier         PHD - D0 experiment |
> > |                                                         |
> > | Centre de Physique des Particules de Marseille          |
> > | 163, avenue de Luminy 13288                             |
> > | Marseille Cedex 09                                      |
> > | France                                                  |
> > *---------------------------------------------------------*
> > | Tel : 33 (0)4 91 82 76 13                               |
> > | Fax : 33 (0)4 91 82 72 99                               |
> > | e-mail: villeneuve@cppm.in2p3.fr                        |
> > | homepage: http://marwww.in2p3.fr/~villeneu	          |
> > *---------------------------------------------------------*
> >
>
>

*---------------------------------------------------------*
| Frederic Villeneuve-Seguier         PHD - D0 experiment |
|                                                         |
| Centre de Physique des Particules de Marseille          |
| 163, avenue de Luminy 13288                             |
| Marseille Cedex 09                                      |
| France                                                  |
*---------------------------------------------------------*
| Tel : 33 (0)4 91 82 76 13                               |
| Fax : 33 (0)4 91 82 72 99                               |
| e-mail: villeneuve@cppm.in2p3.fr                        |
| homepage: http://marwww.in2p3.fr/~villeneu	          |
*---------------------------------------------------------*



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:54 MET