Error in <TPacketizerAdaptive::ValidateFiles>: cannot get en

Greetings,

I’ve implemented a small macro to process several TTree’s with a TChain using the Selector code produced from TChain::MakeSelector(), to be use in PROOF-Lite.

I’ve added the file information to the TChain via TFileCollection like this

TFileCollection *fc=new TFileCollection("fc","alldata","list_small.txt");
chain->AddFileInfoList(fc->GetList());

The output is

[code][lsilva@fermi03 tree]$ root -l run.cc
root [0]
Processing run.cc…
+++ Starting PROOF-Lite with 4 workers +++
Opening connections to workers: OK (4 workers)
Setting up worker servers: OK (4 workers)
PROOF set to parallel mode (4 workers)

Info in TProofLite::SetQueryRunning: starting query: 1
Info in TProofQueryResult::SetRunning: nwrks: 4
Looking up for exact location of files: OK (1 files)
Looking up for exact location of files: OK (1 files)
Info in TPacketizerAdaptive::TPacketizerAdaptive: Setting max number of workers per node to 4
Error in TPacketizerAdaptive::ValidateFiles: cannot get entries for file: /u/data/comp/lsilva/analise/HADES/tree/tree_096_1.root - skipping
Info in TPacketizerAdaptive::InitStats: no valid or non-empty file found: setting invalid
Error in TProofPlayerLite::InitPacketizer: instantiated packetizer object ‘TPacketizerAdaptive’ is invalid
Error in TProofPlayerLite::Process: cannot init the packetizer
Info in TProofLite::UpdateDialog: processing was aborted - 0 events processed
[/code]

I think the problem is how the file information is interpreted in PROOF-Lite.

I’m new using PROOF, so for sure problem is very simple. Any hint? :slight_smile:

I’ve attached a simple example to reproduce my problem: a list with one root file containing a TTree, the selector code and the main macro to run it.

Many thanks in advance.

Cheers,
Luís.
tree_096_1.root (5.92 KB)
mytree.C (3.33 KB)
mytree.h (5.12 KB)
run.cc (454 Bytes)
list_small.txt (55 Bytes)

Hi,

Is the file visible by the workers?
What’s the output of this:

root [] p = TProof::Open("")
root [] p->Exec("f = TFile::Open(\"/u/data/comp/lsilva/analise/HADES/tree/tree_096_1.root\"); f->ls();") 

(note the escape of internal " ).

Also, I see that you name the TChain ‘tree’: this has to be the same name of the TTree in the file: can you check that?

G. Ganis

Hello,

Thanks for your concern.

Your suggestion produces the following output:

root [0] p = TProof::Open("")
 +++ Starting PROOF-Lite with 2 workers +++
Opening connections to workers: OK (2 workers)                 
Setting up worker servers: OK (2 workers)                 
PROOF set to parallel mode (2 workers)
(class TProof*)0x8f0e3f0
root [1] p->Exec("f = TFile::Open(\"/u/data/comp/lsilva/analise/HADES/tree/tree_096_1.root\"); f->ls();") 
TFile**		/u/data/comp/lsilva/analise/HADES/tree/tree_096_1.root	
 TFile*		/u/data/comp/lsilva/analise/HADES/tree/tree_096_1.root	
  KEY: TTree	tree;1	
TFile**		/u/data/comp/lsilva/analise/HADES/tree/tree_096_1.root	
 TFile*		/u/data/comp/lsilva/analise/HADES/tree/tree_096_1.root	
  KEY: TTree	tree;1	
(Int_t)0

I think so …

Yes, I confirm.

Any more hints?

Thanks.

Cheers,
Luis.

For completeness, I’m using

[code]ROOT 5.34/01 (tags/v5-34-01@45048, Jul 13 2012, 15:31:31 on linuxx8664gcc)

CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010
[/code]

Maybe the mistake is simple but I do need some help. Can someone have a look please?

Many thanks in advance.

Cheers,
Luis.

Hi,

Sorry for the very late reply.
Assuming that this issue still holds and that you are still interested in a solution, the problem with the files that you posted is that the tree in the ROOT file is empty, has no entries. Could you try with a non-empty tree?

G. Ganis