RE: [ROOT] Odd behavior with TTree::Draw and TCut on Windows

From: Philippe Canal (pcanal@fnal.gov)
Date: Thu Oct 04 2001 - 22:32:44 MEST


Hi Heather,

This limitation (to 16 operands) was present in 3.0.06 and fixed in
3.1.01.  

Cheers,
Philippe.

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Heather Kelly
Sent: Thursday, October 04, 2001 3:03 PM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] Odd behavior with TTree::Draw and TCut on Windows


Hi,

I am using Root 3.00.06 on Windows.  We have seen some odd behavior.  We
have a TNtuple - so we are using a simple ROOT file.  We find that at times
the results of applying a series of TCuts when calling TDraw creates
histograms with a varying number of entries.  
Here is an example:
{
  TFile *f1 = new TFile("backgndavgpdr100000TUP0494.root");
  TTree *t1=(TTree*)f1->Get("PDR/t1");

  TCut L1V = "((vetoword==0||vetoword>127.)&&(ntothit-nhitsiderow3-
nhitsiderow2)<3.)||(Trig_Bits&16)";
  TCut L1T = "Trig_Bits>3.";
  TCut L2T = "(TKR_No_Tracks>0.&&ACD_DOCA>25.)||(Trig_Bits&16)";
}
root [1] t1->Draw("ACD_DOCA", L1V&&L1T&&L2T)
<TCanvas::MakeDefCanvas>: created default TCanvas with name c1
(Int_t)961
root [2] t1->Draw("ACD_DOCA", L1V&&L1T&&L2T)
(Int_t)961
root [3] t1->Draw("ACD_DOCA", L1V&&L1T&&L2T)
(Int_t)961
root [4] t1->Draw("ACD_DOCA", L1V&&L1T&&L2T)
(Int_t)961
root [5] t1->Draw("ACD_DOCA", L1V&&L1T&&L2T)
(Int_t)1210

That last call to t1->Draw, produces a histogram with 1210 entries rather
than 961.

Please note, I cannot reproduce this odd behavior on Linux.  The result of
applying these cuts is always the same and correct.

It seems as though the L2T cut is truncated sometimes - cutting off the
final:  "||(Trig_Bits&16)", causing the different results.
Is there a limit to the size of the expression that can be passed to
TTree::Draw?


Thanks,
Heather



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