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