[ROOT] bug in selection cuts ?

From: Andre Holzner (Andre.Holzner@cern.ch)
Date: Sat Apr 28 2001 - 20:45:53 MEST


Hello,

I think I came across a bug in root (if this has not been
fixed yet), I'm using Version   3.00/06 12 March 2001
from /afs/cern.ch/na49/library.4/ROOT/pro/rootsys/
on RH6.1/i386.

Here's test.C

{
  nt = new TNtuple("ntuple","ntuple","x:y");
  nt->Fill(1.0,2.0);
 
 
  TString cut = "(x>0)";
 
  while (nt->Draw("y:x",cut,"goff")>0)
 
  {
    cut.Prepend("(x<0)||");
    cout << cut.Length() << endl;
    cout << cut << endl;
 
  }
 
}

i.e. cut is a string of n times (x<0) || ...
and the last condition is (x>0) so the event
in the ntuple should always be selected, the
program should continue forever.

However, it stops quite early:

root [0] .x test.C
12
(x<0)||(x>0)
19
(x<0)||(x<0)||(x>0)
26
(x<0)||(x<0)||(x<0)||(x>0)
33
(x<0)||(x<0)||(x<0)||(x<0)||(x>0)
40
(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x>0)
47
(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x>0)
54
(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x>0)
61
(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x<0)||(x>0)
root [1]

When using a cut like 0||0||0||(x>0), I manage to get to
longer strings (I stopped the program at about 500).

Any ideas ?


best regards & thanks for looking into this & sorry if this
has been fixed already,


André


-- 
------------------+----------------------------------
Andre Holzner     | +41 22 76 76750 
Bureau 32 2-C13   | Building 32     
CERN              | Office 2-C13    
CH-1211 Geneve 23 | http://wwweth.cern.ch/~holzner/



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