RE: [ROOT] multiple arrays in TTree::Draw

From: Philippe Canal (pcanal@fnal.gov)
Date: Wed Jun 20 2001 - 17:27:13 MEST


Hi Volker,

You are correct in pointing out that the Draw method of TTree currently
provides the plotting of pairs:
 (mc_pt[0],reco_pt[0])
 (mc_pt[1],reco_pt[1])
 (mc_pt[2],reco_pt[2])
and do not provided for plotting every elements of mc_pt versus every
elements of reco_pt.

The issue is not an implementation issue but a notation issue.  So far,
  Draw("mc_pt:reco_pt");
plot mc_pt[i] versus reco_pt[i].  We have not thought of a good notation
to indicate that it should plot mc_pt[i] versus reco_pt[j], for all valid
values of i and j.  

If you could help in determining a good notation, we should be able to
implement it. (note that the notation should work also if the command line
is Draw("mc_pt+reco_pt");

Cheers,

Philippe Canal.\

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Volker Buescher
Sent: Wednesday, June 20, 2001 9:53 AM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] multiple arrays in TTree::Draw



Hi All,

I keep running into an apparent limitation of the Draw method of TTree,
and I would appreciate very much any advice on whether this is possible in
root or whether it could be added in future versions. Here is an example
of what I'm trying to do:
I have two branches, each with several variable length arrays,
e.g. arrays mc_pt[nmc], mc_eta[nmc] in one branch and reco_pt[nreco],
reco_eta[nreco] in the other branch. Now I'd like to use Draw() on the
command line to plot for each event a) every entry in mc_pt versus every
entry in reco_pt and b) same as in a) but apply cuts like
"abs(mc_eta-reco_eta)<0.1", such that only those pairs of mc_pt/reco_pt
are plotted, for which that condition is true.

As far as I understand, root only allows to plot pairs 

(mc_pt[0],reco_pt[0])
(mc_pt[1],reco_pt[1])
(mc_pt[2],reco_pt[2])
...

rather than all possible combinations - did I overlook something? Is there
a way to do this without the inconvenience of using Loop()? If not,
would it be possible to add this feature?

Thanks!
Volker



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:49 MET