Re: Typical analysis: add leaves to existing tree. Efficient ? Doable ?

Rene Brun (Rene.Brun@cern.ch)
Wed, 02 Sep 1998 19:03:44 +0200


David Rousseau, CERN wrote:
>
> Hi Rooters,
>
> Browsing the documentation, it's not clear to me how I should do the
> following (not unusual) thing:
> Starting from a TTree (a converted Ntuple) with lots of events and variables,
> I want to compute a few complex variables for each of a few selected events,
> and store them to be able to use them many times (for example
> to do an unbinned maximum likelihood fit).
> With Fortran/Hbook I would read the ntuple, select the events, and put
> the few complex variables for each of a few selected events in a common. Then
> my MINUIT FCN would use this common.
> With Root, I imagine I can do exactly the same thing, create a new
> TTree with only the variables I need and the events I need. Then my MINUIT
> FCN would use this TTree. But I would have lost all links to the original
> event data.
> But since I was told in C++ course that I have to think completely different,
> I thought I could do the following: add a selection flag as a leaf
> to all events (not even sure if and how it is doable), add my complex
> variables as new leaves to the event which are selected. Then my MINUIT FCN
> would read first the event flag, then the complex variables only for the good
> events (as explained in the web pages).
> So, what is the right way ?
>
> Note: the examples on the web are in the style: I loop once on the events and
> fill histograms. I would like to do (but maybe I shouldn't):
> I loop on the events, and add information to be used later.
>
> Thanks a lot
>
> David Rousseau

David,
What you want to do makes a lot of sense.
I recently added in version 2.00/11 a few utilities in this direction.
Look at the documentation of TTree::Draw ("Getting more info").
After a TTree::Draw call, you have access to all the information
computed in the function. You can call TMinuit with the resulting
arrays.

Rene Brun