Re: [ROOT] problem in TTree:Draw?

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Jun 19 2003 - 17:15:16 MEST


Hi Mike,

This seems to be a CINT deficiency in combining the boolean operations
between a TCut object and the literal string. Your test will work if you replace
the lines:

snarltree->Draw("hitlist[].strip:hitlist[].plane>>hps1",
  "(hitlist[].padc+hitlist[].nadc)>0"&&pid&&trig&&tof1,"colz");

by

TCut cur("(hitlist[].padc+hitlist[].nadc)>0");
snarltree->Draw("hitlist[].strip:hitlist[].plane>>hps1",
  cur&&pid&&trig&&tof1,"colz");


Rene Brun

Mike Kordosky wrote:
> 
> Hi,
> 
> I am having a problem associated with TTree::Draw that I believe is
> associated with some recent change to root/cint.  I have the following
> unnamed macro:
> 
> {
> 
> TCut pid("nhitstrips/nhitplanes>1.65 && ceradc[2]==0");
> TCut trig("triggerword>300");
> 
> TFile f("/data/disk5/dsts/angle-1-22-03/UberDST-41008.root");
> TH1F* h1 = new TH1F("h1", "h1", 200, 0, 200);
> 
> TCut tof1("toftdc[2]-toftdc[0]>580 && toftdc[2]-toftdc[0]<640");
> 
> TCanvas* c2 = new TCanvas("c2", "c2", 600, 800);
> c2->Divide(1,2);
> c2->cd(1);
> 
> f.cd();
> 
> TH2F* hps1 = new TH2F("hps1", "hps1", 60, -0.5, 59.5, 24, -0.5, 23.5);
> 
> snarltree->Draw("hitlist[].strip:hitlist[].plane>>hps1",
> "(hitlist[].padc+hitlist[].nadc)>0"&&pid&&trig&&tof1,"colz");
> 
> }
> 
> Running this macro causes root to dump:
> 
>  *** Break *** segmentation violation
>  Generating stack trace...
>  0x401b01a7 in TUnixSystem::StackTrace() + 0x393 from
> /data/disk4/minoscode/root/lib/libCore.so
>  0x401aeb1b in TUnixSystem::DispatchSignals(ESignals) + 0x85 from
> /data/disk4/minoscode/root/lib/libCore.so
>  0x401adb68 in <unknown> from /data/disk4/minoscode/root/lib/libCore.so
>  0x401b1cae in <unknown> from /data/disk4/minoscode/root/lib/libCore.so
>  0x40dc2f05 in <unknown> from /lib/i686/libpthread.so.0
>  0x42029188 in <unknown> from /data/disk4/minoscode/root/bin/root.exe
>  0x40c78e72 in <unknown> from /data/disk4/minoscode/root/lib/libTree.so
>  0x405dbaff in G__call_cppfunc + 0x2c4 from
> /data/disk4/minoscode/root/lib/libCint.so
> .
> .
> .
> and so on.
> 
> The odd thing is that it works if I comment out the last command
> (TTree::Draw), then run the macro and finally highlight and copy the last
> line into the interpreter.  I'm pretty sure that this sort of thing did
> work in previous versions of root (for example versions from the era
> oct02-jan03).
> 
> I use:
> 
> gcc 3.2.1
> linux x86, kernel 2.4.20
> root from cvs on may 31.
> 
> I can (privately) provide the datafile associated with this problem.
> 
> Mike Kordosky
> 
> --
> Graduate Research Assistant  // High Energy Physics Lab
> kordosky@hep.utexas.edu     // University of Texas at Austin
> kordosky@fnal.gov          //
> ph: (512) 471-8426 (RLM Lab, Office)
>     (512) 475-8673 (ENS Lab)



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET