Re: [ROOT] TFile::mv(obj1,"dir/obj2")?

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Jul 17 2003 - 12:46:34 MEST


Hi Exaos,

We do not have a TDirectory::mv function.
In your case you can emulate it in the following way.
For each histogram that you want to move, eg "phm", to
  file->cd()
  TH1 *h = (TH1*)file->Get("phm"); //get phm in memory
  file->Delete("phm;1");           //delete the disk copy
  monitor->cd();
  h->SetDirectory(monitor);
  h->Write();                      //write to monitor

Rene Brun


Exaos Lee wrote:
> 
> Dear rooter,
> How to move objects to a directory within the same root file?
> For example, I have one root file contains the following objects:
> TFile**         n2n_0717_01.root
>   TFile*         n2n_0717_01.root
>    KEY: TChain   kmax_event;3
>    KEY: TH1F     ph0;1   PH spectrum of Detector 0
>    KEY: TH1F     ph2;1   PH spectrum of Detector 2
>    ... ...
>    KEY: TH1F     psd2;3  PSD spectrum of Detector 2
>    KEY: TCutG    gcutm;1 Graph
>    KEY: TH1F     phm;3   PH Spectrum of Monitor
>    KEY: TH1F     psdm;1  PSD Spectrm of Monitor
>    KEY: TH2F     phm_psdm;1      PH-PSD Spectrum of Monitor
> Then I make a directory named "monitor":
>    ... ...
>    TDirectory*           monitor Spectra of Monitor
> I want to move the "phm", "psdm", "phm_psdm" and "tofm" to directory
> "monitor". How to do that? The TFile class hasn't any method such as
> TFile::mv(char*,char*).
> 
> Regards.
> 
> Exaos



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET