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