Hi Birger,
Before calling GetFile, do
chain.LoadTree(0);
This will force the first file to be loaded and GetFile will work.
In the CVS version, I have modified TChain::GetFile to automatically
load the first file if no file has been connected.
Rene Brun
koblitz@poly.in2p3.fr wrote:
>
> Hi,
>
> I have problems reading a single object from a Chain, something which
> works for a normal file:
> TChain chain("Tree", "My Tree");
> chain.Add("file.root");
> TObject *o=chain.GetFile()->Get("MyObject");
> does not work, because chain.GetFile() returns a null pointer unless one
> has at least connected to a branch on the file, first (which I use as a
> Workaround), while the following works allways:
> TFile f("file.root");
> TObject *o=f.Get("MyObject");
> Is this is a design limitation, or a bug?
> My personal conviction is, that it is probably a bug, because already
> connecting to a branch makes chain.GetFile() return the first file, while
> a design limitiation would probably require you to use GetEntry() on the
> chain, first.
>
> My request is therefore to have TChain::GetFile() return the first file in
> the chain as soon as there is one added, or, implement a Get() method on
> the TChain.
>
> Cheers,
> Birger
>
> --
> Birger Koblitz Tel: +33/1 69 33 31 73
> Ecole Polytechnique - LLR
> Route de Saclay
> F-91128 Palaiseau
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET