Re: file->Delete() question

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Sep 08 1999 - 18:38:10 MEST


Hi Damir,
For sure TFile::Delete("object") removes the corresponding TKey from
the directory.

TFile::Write() writes all the objects in memory associated with the
directory.
By default, the following objects are automatically added by their
constructor
to the gDirectory->GetList():
  - all THxxx classes
  - all TTree, TChain
  - TCutG

You can add an object to this list with:
  gDirectory->GetList()->Add(object);
and remove it with:
  gDirectory->GetList()->Remove(object);

For objects such as THxxx, TTrees, you can do object->SetDirectory(0)
to remove this object from the current directory.

TFile::Write is a convenient function when you know that your file
contains
only objects of the above types. This is a short cut instead
  of obj1->Write(), obj2->Write(), etc.


Rene Brun

Damir Buskulic wrote:
> 
> Hi,
> 
> When a file->Delete("ObjectName;1") is done, is the object detached from
> the gDirectory ?
> In other words, when I do this for a usual object, I have to do an
> object->Write() to put a new copy in the file (obvious), but when I do
> it for a tree, it seems I have to do a file->Write() to have everything
> updated. This is normal since a tree is most of the time associated to a
> file, but is it coherent with the behaviour of other objects ?
> 
> Damir
> 
> --
> =====================================================================
> | Damir Buskulic                  | Universite de Savoie/LAPP       |
> |                                 | Chemin de Bellevue, B.P. 110    |
> | Tel : +33 (0)450091600          | F-74941 Annecy-le-Vieux Cedex   |
> | e-mail: buskulic@lapp.in2p3.fr  | FRANCE                          |
> =====================================================================
> mailto:buskulic@lapp.in2p3.fr



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