Dear experts,
I would like to use PROOF(optionally lite) in PyROOT to project a TEntryList from a TChain. However, already the following very simple test script segfaults.
import ROOT
chain = ROOT.TChain("tree")
chain.Add("*.root")
proof = ROOT.TProof.Open("workers=8")
chain.SetProof(True)
chain.Draw(">>elist", "x>0.5", "entrylist")
elist = proof.GetOutputList().FindObject("elist")
if not elist:
print "Error getting entry list: elist=" + str(elist)
else:
print elist.GetN()
===========================================================
The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#5 0x00000000ffffffff in ?? ()
#6 0x00007f7b2a2b7021 in TList::FindObject(char const*) const () from /cvmfs/cms.cern.ch/slc5_amd64_gcc462/cms/cmssw-patch/CMSSW_5_3_7_patch4/external/slc5_amd64_gcc462/lib/libCore.so
#7 0x00007f7b277280b9 in TProofLite::Process(TDSet*, char const*, char const*, long long, long long) () from /cvmfs/cms.cern.ch/slc5_amd64_gcc462/cms/cmssw-patch/CMSSW_5_3_7_patch4/external/slc5_amd64_gcc462/lib/libProof.so
#8 0x00007f7b27720369 in TProofLite::DrawSelect(TDSet*, char const*, char const*, char const*, long long, long long) () from /cvmfs/cms.cern.ch/slc5_amd64_gcc462/cms/cmssw-patch/CMSSW_5_3_7_patch4/external/slc5_amd64_gcc462/lib/libProof.so
#9 0x00007f7b276d59a9 in TDSet::Draw(char const*, char const*, char const*, long long, long long) () from /cvmfs/cms.cern.ch/slc5_amd64_gcc462/cms/cmssw-patch/CMSSW_5_3_7_patch4/external/slc5_amd64_gcc462/lib/libProof.so
===========================================================
Traceback (most recent call last):
File "testChain.py", line 7, in <module>
chain.Draw(">>elist", "x>0.5", "entrylist")
TypeError: none of the 3 overloaded methods succeeded. Full details:
Long64_t TChain::Draw(const char* varexp, const TCut& selection, Option_t* option = "", Long64_t nentries = kBigNumber, Long64_t firstentry = 0) =>
could not convert argument 2
problem in C++; program state has been reset
void TChain::Draw(Option_t* opt) =>
takes at most 1 arguments (3 given)
Can someone suggest what I might be doing wrong? I’m running
ROOT 5.32/00 (branches/v5-32-00-patches@42372, Nov 19 2012, 10:56:00 on linuxx8664gcc)
on SLC5.
Thanks,
Joosep