Problem with chain aliases

Dear PROOF-experts,

I’m using ProofLite in a SLC5 machine to 'Draw" distributions for a lot of events (~30M) distributed over ~100 files, taking advantage of the parallelization over my 16 cores.

Essentially what I do is:

   TProofLite* prof = new TProofLite("");
   prof->SetParallel(12);
   prof->SetProgressDialog(kFALSE);

   TChain* ch = new TChain("tree");
   for (int ii=0; ii<61; ii++) {
      ntrees += ch->Add(Form("/path/to/rootfiles/Pippo.*%02d.root", ii));
   }
   ch->SetProof();

   ch->Draw("log10((ecalLayerFrac[0]+ecalLayerFrac[1])*ecalEnergyD):ecalEnergyE", "trkDefRig<0.0 && trdKLikeEP_ene<0.5 && ecalEnergyE/abs(trkDefRig)>0.5 && trdKHitsOnTrkTrack>8 && trkInnQ<1.5 && nTrTracks==1 && ecalBDTv5Es>-0.0", "colz");

and this is working correctly.

If now I try to do:

  ch->SetAlias("F1SLu" , "log10((ecalLayerFrac[0]+ecalLayerFrac[1])*ecalEnergyD)");
  ch->Draw("F1SLu:ecalEnergyE", "trkDefRig<0.0 && trdKLikeEP_ene<0.5 && ecalEnergyE/abs(trkDefRig)>0.5 && trdKHitsOnTrkTrack>8 && trkInnQ<1.5 && nTrTracks==1 && ecalBDTv5Es>-0.0", "colz");

I receive:

Info in <TProofLite::SetQueryRunning>: starting query: 1
Info in <TProofQueryResult::SetRunning>: nwrks: 12
Looking up for exact location of files: OK (97 files)                 
Looking up for exact location of files: OK (97 files)                 
Info in <TPacketizerAdaptive::TPacketizerAdaptive>: Setting max number of workers per node to 16
Validating files: OK (97 files)                 
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TCanvas::MakeDefCanvas>:  created default TCanvas with name c1_n2
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
Info in <TPacketizerAdaptive::InitStats>: fraction of remote files 1.000000
OBJ: TStatusing PROOF_Statusts .ERROR(1 workers still sending)   
	TProofDrawHist::CompileVariables: Error compiling variables
Info in <TProofDrawHist::SetDrawAtt>: att: 1000
Lite-0: all output objects have been merged  

the histogram is empty and if I look into the logs:

mduranti@ui02-ams:WorkElectronFlux> cat ~/.proof/storage-gpfs_superb-ams-users-mduranti-myAMSRoot-AMSRoot-compiled_analysis-WorkElectronFlux/last-lite-session/worker-0.2.log 
17:01:54  4296 Wrk-0.2 | Info in <TProofServLite::Setup>: fWorkDir: /home/AMS/mduranti/.proof
17:02:25  4296 Wrk-0.2 | Warning in <TStreamerInfo::Compile>: Counter fNClusterRange should not be skipped from class TTree
17:02:36  4296 Wrk-0.2 | Info in <TEventIterTree::GetTrees>: the tree cache is in learning phase
17:02:36  4296 Wrk-0.2 | Error in <TTreeFormula::Compile>:  Bad numerical expression : "F1SLu"
17:02:36  4296 Wrk-0.2 | Error in <TProofDrawHist::CompileVariables>: Error compiling expression
17:02:42  4296 Wrk-0.2 | Info in <TProofServLite::Terminate>: starting session termination operations ...
17:02:42  4296 Wrk-0.2 | Info in <TProofServLite::Terminate>: data directory '/home/AMS/mduranti/.proof/data/0.2/ui02-ams.cr.cnaf.infn.it-1373986913-4063' has been removed
Terminate: termination operations ended: quitting!

of course if I use the alias without using ProofLite everything is working fine…

Where I’m wrong? Why the alias is “not seen” by the worker? Should I pass the alias to the work in somehow?

Thanks,
Matteo

Exactly same problem here!

Hello,

Sorry for the late reply.
Unfortunately the current implementation of drawing functionality in PROOF is separate from TTree/TChain and is incomplete. The aliases are currently not supported.
We plan to use in PROOF the same implementation used in TTree/TChain which will automatically give support for all functionality available in there.
There are some issues still to be solved for this, so it not possible at this moment to give a date. But given that requests in this direction are growing, we will try to give more priority.

I’ll let you know on this thread as soon as there are some news.

G. Ganis

It’s a pity!

Thanks a lot however!
Matteo