Re: [ROOT] root as extension language

From: Rüdiger Berlich (ruediger@ep1.ruhr-uni-bochum.de)
Date: Tue Mar 25 2003 - 12:18:45 MET


Hi there,

On Monday 24 March 2003 15:15, Brett Viren wrote:
> Rüdiger Berlich writes:
>  > The obvious idea is now to use root as an extension language,
>  > i.e, to start the execution of a root script performing such an
>  > analysis in each individual of the Evolutionary Algorithms' population.
>  > I'm therefore looking for a possibility to embed root (i.e. cint +
>  > all standard root libraries) into my code.
>
> Do you actually need all of the ROOT features or are you just looking
> for an extension language?
>
> If your goal is to *just* provide an extension language, frankly, I
> wouldn't consider ROOT/CINT.  If you need to use, specifically, C++ as
> the extention language or you need object I/O, histograms, drawing,
> and all the good stuff ROOT provides then ROOT/CINT is an okay choice,
> but if you simply want to provide users a way to write scripts for
> your main compiled app I'd suggest using SWIG (www.swig.org) to
> generate the necessary wrappers for whatever your favorite interpreted
> language is (Scheme, Perl, Python, etc).

well, my application's primary goal is to help optimize the quality of a
signal in particle physics analysis using evolutionary strategies. Possible
quality measures could be e.g. the "significance" of a signal (i.e. 
signalEntries^2/(signalEntries+backgroundEntries)  ) . In other 
words : I need to process event data and fill a histogram, than integrate
the histogram in the peak region and in the sidebands. Since I do not know
what sort of peak is being optimized and what data is being used, I can
only leave the evaluation part to the user. In my case they're using 
primarily PAW or root for their analysis (is there anything else out 
there ? ;-)   
So, if they could use root scripts for the calculation of the "quality" of a
set of cuts (leading to a signal) and "plug" these scripts directly into my
application, that would be ideal. They then would have to make but minimal
changes in their analysis scripts in order to be able to use my library.
That's why I'm keen on embedding root.

Posix threads or the Message Passing Interface are needed in order to
parallelise this optimization process. Using root together with the Message
Passing Interface is not a problem, as in my case there is only one
instance of root in each MPI application. Using root in the multithreaded
version of my library, however, does not seem to be possible.

A long answers short conclusion : I do need those parts of root that allow
a user to fill data into histograms or ntuples/trees and perform calculations
with this data (integration in a given bin-range, etc.). I do not need (and in
some cases do not want) most other things, e.g. graphics display of data 
(canvasses), parallel processing (i.e. PROOF), etc.

Have a good day + greetings from spring-time Germany,
Rüdiger Berlich



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