[ROOT] writing ntuple to root file

From: Ed Oltman (eoltman@imago.com)
Date: Fri Jun 28 2002 - 21:13:03 MEST


Hello,

I am getting some Error messages when I write an TNtuple to a root file that
I
don't understand.   The good news is that the write operation works.
However, I suspect that I am missing something important here.

Here is what I do:

    TFile *f = new TFile("c:\\root\\ap.root");
    TNtuple *pIn = (TNtuple *)f->Get("pntup");
             .
             .
             .
    TNtuple *pOut = new TNtuple("pOut","x:y:z:a");
    pOut->SetDirectroy(0);	// keep ntuple "memory resident"
             .
           use pIn data to populate pOut ntuple
             .

    At some point, I decide to save pOut.  This is what I do:

    TDirectory *pSave = gDirectory;
    gDirectory->pwd();
    TFile *pF = new TFile("fft0600_0600.root","RECREATE");
    gDirectory->pwd();
    TNtuple *pClone = (TNtuple *)pOut->CloneTree();
    pClone->Write();
    pF->Close();
    delete pF;
    gDirectory = pSave;
    gDirectory->pwd();

and here is the output I get when I execute save-to-file code:

c:\root\ap.root:/
fft0600_0600.root:/
Error in <TBranch::Write>: File c:\root\ap.root is not writable
Error in <TBranch::Write>: File c:\root\ap.root is not writable
Error in <TBranch::Write>: File c:\root\ap.root is not writable
Error in <TBranch::Write>: File c:\root\ap.root is not writable
c:\root\ap.root:/

It is true that c:\root\ap.root is not writable, but why do I get this
error?
When I later try to open fft0600_0600.root, I can read the ntuple withoug
problem.


Thanks,

Ed Oltman



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