RE: [ROOT] TNtuple::Draw() with my own function?

From: Philippe Canal (pcanal@fnal.gov)
Date: Mon Aug 04 2003 - 21:29:40 MEST


Hi Exaos,

In ROOT 3.05.07, using nt->Draw("myfunc(var1)") induces the bytecode
compilation of all the loaded interpreted function.  In particular, this
include the function you defined in rootalias.C.  In addition, the function
you have tickle a CINT bug.  Replace code like
	char s[256] = ....;
by
	TString s = ....;
(anyway this is a good idea to do so to avoid any potential memory overrun).

A fix will be loaded shortly in the CVS repository.

Cheers,
Philippe.

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Exaos Lee
Sent: Monday, August 04, 2003 10:48 AM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] TNtuple::Draw() with my own function?


Dear rooter,
Shall I use TNtuple::Draw() like this:
------
root [] .L mycode.C
root [] nt=(TNtuple *)f->Get("my_nt")
root [] nt->Draw("myfunc(var1)", my_selections)
------
Assume "mycode.C" is something like this:
-----
//
Float_t myfunc(Float_t var)
{
....
return the_result;
}
-----
Assume that myfunc() cannot be replaced by simple expressions like
"sqrt(x)*x".
I am afraid that TNtuple is not compatible perfectly with TTree. I used
TNtuple::Draw() as above and got "segmentaion violation".
I am confused.

Regards.

Exaos


#################################################################
#################################################################
#################################################################
#####
#####
#####
#################################################################
#################################################################
#################################################################



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