PROOF with TChain and TEntryList

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

Dear Joseph,

Unfortunately what you are trying to do is not currently supported in that form.
There is a plan to use exactly the same code for drawing-related actions in PROOF and standard ROOT
and then all the TChain draw functionalities will be available in PROOF .
But for the moment this is not the case.
You can create entry list within a selector as done in tutorials/tree/h1analysis.C; then using them in PROOF
should work.

G. Ganis