Hi Heather,
Could you send me a running small example that I can use
to test this problem? I cannot see what could be wrong with
this simple case.
In the development version 3.03, I fixed a few problems with TRef
in some pathological cases. May be try it before sending me
an example.
Rene Brun
On Fri, 19 Apr 2002, Heather Kelly wrote:
> Hi,
>
> I am using ROOT 3.02.07 on Windows.
>
> I am trying to use TRef and I seem to be running into a problem. I have a
> class like this, where I want to store a reference to another object:
>
> class McParticle : public TObject {
>
> const McParticle* getMother() const { return
> (McParticle*)m_mother.GetObject(); };
>
> private:
> // This stores a reference to another object of type McParticle
> TRef m_mother;
>
> };
>
> When I create a new ROOT file, and open it in ROOT interactively, I am able
> to retrieve the reference via the call to getMother(). However, if I
> attempt to do the same thing with a compiled program that uses ROOT,
> getMother() consistently returns null.
>
> Clearly there is something I do not understand.
>
> For example, suppose I have a TObjArray of McParticles, which I iterate
> over, here is an example call to retrieve the reference - which fails in
> compiled code:
>
> while (pRoot = (McParticle*)partIter.Next()) {
> McParticle *momRoot = pRoot->getMother();
>
> In this particular case, all of the McParticles are stored to the same file
> and in the same branch...
>
> Thanks,
> Heather
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:50 MET