Rene Brun
Stephen Bailey wrote:
>
> On Wed, 2 Sep 1998, Rene Brun wrote:
>
> > 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
> >
>
> The additional information is helpful, but I have also wanted
> to do the general case of adding information to a pre-existing
> TNtuple as David described. e.g. I have an ntuple coming from
> h2root which contains particle track parameters. I loop through
> the events, making invariant masses for candidate decays, etc.
> It would be very nice if I could add this invariant mass info back
> to the original TNtuple so that all of the original information would
> still be there for when I want to make interactive cuts later. For
> now I put the invariant mass info into another ntuple along with any
> data from the original ntuple that I think I might need. Copying the
> data seems a bit wasteful, but I'm not sure how else to do it for
> now.
>
> But I'm not sure how realistic this request is, both in terms of
> ease of implementation and efficiency of running. But if it was
> possible to add leaves to an existing TNtuple, I'd use that feature...
>
> Regards,
>
> Stephen