Hi Axel,
What you do should work if A is in memory when you
call B.somemethod(). If not, see my previous note about TRef
earlier today.
Note that return myA.GetObject()->somemethod() will not work.
You should cast the result of myA.GetObject() in order to call
the function somemethod.
Rene Brun
On Tue, 8 Oct 2002, Axel Naumann wrote:
> Hi,
>
> ROOT 3.03/07, Linux 2.4 (fermi distribution
> /Linux-2-4/v3_03_07dKCC_4_0-exception-opt-thread)
>
> Suppose you have classes A and B in the same tree, each B TRefs an A,
> and B forwards somemethod to A:
>
> class A: public TObject{
> public:
> Int_t somemethod(){ return 42;}
> };
> class B: public TObject{
> public:
> Int_t somemethod(){ return myA.GetObject()->somemethod();}
> private:
> TRef myA; // ref to an A
> };
>
> Doing a
> ??? tree->Draw("A.somemethod()")
> works,
> ??? tree->Draw("B.somemethod()")
> doesn't (drawing uninitialized values).
>
> Is that a known limitation? Is it possible to extend the TTree method
> calling mechanism to include TRefs? Or is it already implemented and I'm
> using a root too old?
>
> Cheers, Axel.
>
> -------- Original Message --------
> Subject: BCJets
> Date: Tue, 08 Oct 2002 10:20:28 -0500
> From: Serban Protopopescu <serban@fnal.gov>
> Reply-To: serban@bnl.gov
> Organization: BNL
> To: Axel Naumann <axel@fnal.gov>
>
>
>
> Hi Axel,
>
> I made a root file using t02.35.00 TMBAnalyze and tried looking at it
> using the TMBTreeClasses_C.so created with your procedures.
> The file is in cluedo
> ~serban/yaphank/test_p13/p11_12_235_ztau.root
>
> the parent file is p11_12_235_ztau.tmb
>
> If you use the head version of tmb_tree you will get a complaint
> about TMBMuon, that's ok, the file was made before TMBMuon was changed.
>
> The usual quantities are ok, but if I try on the root line
>
> root[] TMBTree->Draw("BCJets.px()")
>
> I get nonsense and if I try something like
> TMBTree->Draw("BCJets.E()","abs(BCJets.E())<100.0");
>
> I get a break on an illegal instruction. The above instructions work
> fine with other objects.
>
> Serban
>
>
>
>
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:13 MET