Re: [BLAST_ANAWARE] ROOT and user functions...

From: Chris Crawford (chris2@lns.mit.edu)
Date: Wed Jul 23 2003 - 09:21:50 EDT


hi kevin,
  welcome to ROOT! even 3.05/06 doesn't have that capability. it is
annoying, but there are two more dificult options as workarounds:
  a) use 'string functions':
TString fn ("1-sin(twl/57.3)");
lr->Draw(fn+":pwl");
//see pro2003/analysis/utils/strings.C for more examples
  b) use TH1F::MakeClass method ('lr->MakeClass("lr_t")'), to generate
a skeleton class to loop over the analysis one element at a time,
filling histograms by hand. this is the most powerful method, but you
have to make a new class everytime you want to plot something. see
'flrn.C' or 'pro2003/analysis/eep/eep_asym.C'
  c) i am experimenting with 'friend histograms'. in theory, you could
have an array of constants stored in the friend histogram, and then use
this array to analyze the first.
e.g. lr->Draw("ptl", "ttl<friend.max[ntl]") i'll keep you tuned!
--chris

Kevin McIlhany wrote:

>I have been trying to start an analysis and was
>hoping to find the same functionality I used to have
>when using PAW, namely, the ability to manipulate a
>"user function" in an ntuple.
>Normally, one might draw a variable such as:
>lr->Draw("acr")
>I was hoping to have a function I could treat as an ntuple variable
>which is made up from the lr ntuple variables, such as:
>lr->Draw("myfunc.cc","myfunc.cc>10")
>
>While looking on the web, I saw references to this discussion on
>RootTalk about one year ago, with Rene Brun promising that this
>functionality would be implemented in a newer version. My question
>is...
>Has anyone achieved this at BLAST and if so, how?
>I assume we are using Root v3.02c, but even the release notes for
>v3.03/9b do NOT indicate that user functions have been added yet (at
>least they dont mention it!).
>Any thoughts?
>
> Also, in another attempt at finding something of a similar
>functionality, I found a reference to a function called MakeCode().
>Unfortunately, there is virtually no documentation that I could find on
>the web regarding this code, but it is CLAIMED that this is capable of
>making a user function. Any ideas? Has anyone successfully used this
>capability? If so, how?
>
>
>I could really use this capability as it would allow me to make a
>conditional variable in the ntuple, such as:
>
>f= atl/atr if acl>0
> else
>f= atr/atl
>
>lr->Draw("f")
>
>something like that would be useful.
>
>-Kevin
>
>
>



This archive was generated by hypermail 2.1.2 : Mon Feb 24 2014 - 14:07:29 EST