TSelector ACLiC compilation failed for workers

Hello everyone,

I am trying to run my TSelector using PROOF-lite but for some reason the ACLiC compilation fails for each worker. I do not get compilation error from the master and everything to be printed in Begin() and Terminate() gets printed. I compile my program, but running it in ROOT gives me the same issue (Error from one worker):

10:17:02 26386 Wrk-0.6 | Info in <TProofServLite::HandleProcess>: calling fPlayer->Process() with selector name: doubleTagFinalLoop.C++ /bin/cp: `/net/g20/ph/1/cxc078300/.proof/cache/doubleTagFinalLoop.C' and `./doubleTagFinalLoop.C' are the same file /bin/cp: `/net/g20/ph/1/cxc078300/.proof/cache/doubleTagFinalLoop.h' and `./doubleTagFinalLoop.h' are the same file 10:17:03 26386 Wrk-0.6 | Info in <TUnixSystem::ACLiC>: creating shared library /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop_C.so In file included from /net/g20/ph/1/cxc078300/doubleTagFinalLoop.h:26, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:50, from /tmp/rootcint_fQs6NS.h:3, from /tmp/LO9F9l_cint.cxx:1: /net/g20/ph/1/cxc078300/mainpartI.h:19:1: warning: "debug" redefined In file included from /net/g20/ph/1/cxc078300/mainpartI.h:12, from /net/g20/ph/1/cxc078300/doubleTagFinalLoop.h:26, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:50, from /tmp/rootcint_fQs6NS.h:3, from /tmp/LO9F9l_cint.cxx:1: /net/g20/ph/1/cxc078300/LcLcVariables.h:31:1: warning: this is the location of the previous definition Warning: link requested for unknown srcfile /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.h /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_linkdef.h:8: e[1mRooFit v3.54 -- Developed by Wouter Verkerke and David Kirkbye[0m Copyright (C) 2000-2012 NIKHEF, University of California & Stanford University All rights reserved, please read http://roofit.sourceforge.net/license.txt In file included from /net/g20/ph/1/cxc078300/doubleTagFinalLoop.h:26, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:50, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.h:34, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.cxx:17: /net/g20/ph/1/cxc078300/mainpartI.h:19:1: warning: "debug" redefined In file included from /net/g20/ph/1/cxc078300/mainpartI.h:12, from /net/g20/ph/1/cxc078300/doubleTagFinalLoop.h:26, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:50, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.h:34, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.cxx:17: /net/g20/ph/1/cxc078300/LcLcVariables.h:31:1: warning: this is the location of the previous definition In file included from /net/g20/ph/1/cxc078300/doubleTagFinalLoop.h:26, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:50, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.h:34, from /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.cxx:17: /net/g20/ph/1/cxc078300/mainpartI.h:239:46: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:240:43: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:308:45: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:309:50: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:375:45: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:376:50: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:442:43: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:508:43: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:616:39: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:617:39: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:618:39: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:619:39: warning: "/*" within comment /net/g20/ph/1/cxc078300/mainpartI.h:620:39: warning: "/*" within comment /net/g20/ph/1/cxc078300/RunLog.h: In function ‘void InsertLog(char*)’: /net/g20/ph/1/cxc078300/RunLog.h:62: warning: declaration of ‘tempLogString’ shadows a global declaration /net/g20/ph/1/cxc078300/RunLog.h:20: warning: shadowed declaration is here /net/g20/ph/1/cxc078300/Graphs.h: At global scope: /net/g20/ph/1/cxc078300/Graphs.h:114: warning: unused parameter ‘alignmentX’ /net/g20/ph/1/cxc078300/mainpartI.h: In function ‘char* Folder(char*)’: /net/g20/ph/1/cxc078300/mainpartI.h:90: warning: declaration of ‘tempFileName’ shadows a global declaration /net/g20/ph/1/cxc078300/RunLog.h:21: warning: shadowed declaration is here /net/g20/ph/1/cxc078300/mainpartI.h: In function ‘char* FolderRF(char*)’: /net/g20/ph/1/cxc078300/mainpartI.h:101: warning: declaration of ‘tempFileName’ shadows a global declaration /net/g20/ph/1/cxc078300/RunLog.h:21: warning: shadowed declaration is here /net/g20/ph/1/cxc078300/mainpartI.h: In function ‘void StartPartI()’: /net/g20/ph/1/cxc078300/mainpartI.h:216: warning: passing ‘double’ for argument 6 to ‘void SetupTF1(TF1*, char*, char*, char*, double, int, char*, double, double)’ /net/g20/ph/1/cxc078300/mainpartI.h:114: warning: unused variable ‘t’ /net/g20/ph/1/cxc078300/mainpartI.h:138: warning: unused variable ‘ncolors’ /net/g20/ph/1/cxc078300/mainpartI.h:138: warning: unused variable ‘colors’ /net/g20/ph/1/cxc078300/mainpartI.h: In function ‘void StartPartII()’: /net/g20/ph/1/cxc078300/mainpartI.h:824: warning: unused variable ‘Red’ /net/g20/ph/1/cxc078300/mainpartI.h:825: warning: unused variable ‘Green’ /net/g20/ph/1/cxc078300/mainpartI.h:826: warning: unused variable ‘Blue’ /net/g20/ph/1/cxc078300/mainpartI.h:827: warning: unused variable ‘Length’ /net/g20/ph/1/cxc078300/mainpartI.h:828: warning: unused variable ‘nb’ /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C: In member function ‘virtual void doubleTagFinalLoop::SlaveBegin(TTree*)’: /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:954: warning: unused variable ‘t’ /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C: In member function ‘virtual Bool_t doubleTagFinalLoop::Process(Long64_t)’: /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:999: warning: statement has no effect /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:1006: warning: converting to ‘int’ from ‘double’ /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:1007: warning: converting to ‘int’ from ‘double’ /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:1013: warning: unused variable ‘t’ /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C: In member function ‘virtual void doubleTagFinalLoop::SlaveTerminate()’: /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:3063: warning: unused variable ‘t’ /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C: In member function ‘virtual void doubleTagFinalLoop::Terminate()’: /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:3078: warning: unused variable ‘t’ /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:3087: warning: unused variable ‘EDataMM2File’ /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:3108: warning: unused variable ‘histtest2’ /net/g20/ph/1/cxc078300/LcLcVariables.h: At global scope: /net/g20/ph/1/cxc078300/LcLcVariables.h:177: warning: ‘MCrecoilM2’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:184: warning: ‘angle’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:240: warning: ‘branchFraction’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:243: warning: ‘lowMasspKpipi’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:244: warning: ‘hiMasspKpipi’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:245: warning: ‘lowMasspKspi’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:246: warning: ‘hiMasspKspi’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:247: warning: ‘lowMassLzpipi’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:248: warning: ‘hiMassLzpipi’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:250: warning: ‘gammap3Lowpi0’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:251: warning: ‘pi0momentumCut’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:252: warning: ‘gammaA42cut’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:253: warning: ‘gammaLatcut’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:254: warning: ‘gammanCryscut’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:258: warning: ‘MCpi0Idx’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:259: warning: ‘cosAngleISRCompMC’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:261: warning: ‘MCcosthCM’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:297: warning: ‘massPlotsForFit’ defined but not used /net/g20/ph/1/cxc078300/LcLcVariables.h:298: warning: ‘pi0operation’ defined but not used /net/g20/ph/1/cxc078300/RunLog.h:20: warning: ‘tempLogString’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:57: warning: ‘newfile’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:58: warning: ‘processfct’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:59: warning: ‘beginfct’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:60: warning: ‘slvbegin’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:61: warning: ‘slvterm’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:62: warning: ‘terminatefct’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:114: warning: ‘tempOutput’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/./doubleTagFinalLoop.C:115: warning: ‘Output’ defined but not used /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.o: In function `doubleTagFinalLoop::IsA() const': doubleTagFinalLoop_C_ACLiC_dict.cxx:(.text._ZNK18doubleTagFinalLoop3IsAEv[doubleTagFinalLoop::IsA() const]+0x1): undefined reference to `doubleTagFinalLoop::Class()' /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.o:(.data.rel.ro._ZTV18doubleTagFinalLoop[vtable for doubleTagFinalLoop]+0x1d0): undefined reference to `doubleTagFinalLoop::ShowMembers(TMemberInspector&)' /net/g20/ph/1/cxc078300/.proof/session-g17-1349795777-26364/worker-0.6/doubleTagFinalLoop_C_ACLiC_dict.o:(.data.rel.ro._ZTV18doubleTagFinalLoop[vtable for doubleTagFinalLoop]+0x1d8): undefined reference to `doubleTagFinalLoop::Streamer(TBuffer&)' collect2: ld returned 1 exit status 10:17:10 26386 Wrk-0.6 | Error in <ACLiC>: Compilation failed! 10:17:10 26386 Wrk-0.6 | Error in <TSelector::GetSelector>: The file doubleTagFinalLoop.C++ does not define a class named doubleTagFinalLoop. 10:17:10 26386 Wrk-0.6 | Error in <TProofPlayerSlave::AssertSelector>: cannot load: doubleTagFinalLoop.C++ 10:17:10 26386 Wrk-0.6 | Error in <TProofPlayerSlave::Process>: cannot assert the selector object 10:17:10 26386 Wrk-0.6 | Warning in <TProofServLite::HandleProcess>: the output list is empty!

Also, when I use this TSelector without PROOF (i.e.: sequentially), it runs and compiles perfectly. I can also run the tutorial here on ROOT and it works perfectly, so I don’t think it’s a machine problem. My TSelector has the following functions:

virtual Long64_t GetEntries() {return fChain->GetEntries();} //TTree * /*tree*/=0 doubleTagFinalLoop( ) {} virtual ~doubleTagFinalLoop() { } virtual Int_t Version() const { return 2; } virtual void CreateOutputList(); virtual void Begin(TTree *tree); virtual void SlaveBegin(TTree *tree); virtual void Init(TTree *tree); virtual Bool_t Notify(); virtual Bool_t Process(Long64_t entry); virtual Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; } virtual void SetOption(const char *option) { fOption = option; } virtual void SetObject(TObject *obj) { fObject = obj; } virtual void SetInputList(TList *input) { fInput = input; } virtual TList *GetOutputList() const { return fOutput; } virtual void SlaveTerminate(); virtual void Terminate(); TLorentzVector SetMagCosThetaPhiMass(Double_t mag, Double_t cosTheta, Double_t phi, Double_t mass); // Double_t luminosityFunction(Double_t MassLcLc, Double_t sval, Double_t binWidth); Double_t evalEfficiency(Double_t MassLcLc); Int_t determineDecMode(Int_t LambdaC1d1, Int_t LambdaC1d2, Int_t LambdaC1d3, Int_t LambdaC1d4, Int_t LambdaC2d1, Int_t LambdaC2d2, Int_t LambdaC2d3, Int_t LambdaC2d4, Int_t LambdaC1Lund); bool passesSelectorTest(Int_t selectorMapVal, Int_t selectorBar); Double_t absolute(Double_t value); // Double_t unbinnedLumi(Double_t MassLcLc, Double_t sval); Double_t pKpipKpiEff(Double_t MassLcLc); Double_t pKpipKsEff(Double_t MassLcLc); Double_t pKpiLzpiEff(Double_t MassLcLc); Double_t pKspKsEff(Double_t MassLcLc); Double_t pKsLzpiEff(Double_t MassLcLc);

The error message says I don’t have an output list, but it should not be the most important part. I did create my output list using: fOutput->Add(h6);… in Begin()

I have the following headers in my TSelector:

[code]#include “TROOT.h”
#include “TChain.h”
#include “TFile.h”
#include “TSelector.h”
#include “TLorentzVector.h”
#include “TVector3.h”

#include “TSystem.h”
#include “TStyle.h”
#include “TMath.h”
#include “TH1.h”
#include “TH1F.h”
#include “TH2.h”
#include “TNtuple.h”
#include “TProofServ.h”[/code]

If anyone has suggestions as to what could be wrong, that would be helpful.

Thank you,

Cyrille

Hi,

The problem is that the selector does not compile; the output list is empty because there is no run , but also because you should do fOutput->Add on SlaveBegin ( Begin is called on the main session only, not on workers ).

Now, for the compilation error: is difficult to say like this; there is a missing reference to Class, so it may depend on something missing in the whole class definition. Can you post the full ‘.h’ file ?

G. Ganis

Thanks for the answer.
Before I posted I tried moving fOutput->Add around in both but the output was the same (nothing) because there was no run, as you said.

Here is the header for te selector class.

Cyrille
doubleTagFinalLoop.h (54.5 KB)

Hi,

I do not see anything obviously wrong with your file.
What happens if you do the following:

root [] proof= TProof::Open("")
root [] proof->Load("doubleTagFinalLoop.C++")

?
Do you get the same error?

G. Ganis

Unfortunately I still get the same thing…

[quote]/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/./doubleTagFinalLoop.C:57: warning: ‘newfile’ defined but not used
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/./doubleTagFinalLoop.C:58: warning: ‘processfct’ defined but not used
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/./doubleTagFinalLoop.C:59: warning: ‘beginfct’ defined but not used
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/./doubleTagFinalLoop.C:60: warning: ‘slvbegin’ defined but not used
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/./doubleTagFinalLoop.C:61: warning: ‘slvterm’ defined but not used
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/./doubleTagFinalLoop.C:62: warning: ‘terminatefct’ defined but not used
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/./doubleTagFinalLoop.C:114: warning: ‘tempOutput’ defined but not used
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/./doubleTagFinalLoop.C:115: warning: ‘Output’ defined but not used
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/doubleTagFinalLoop_C_ACLiC_dict.o: In function doubleTagFinalLoop::IsA() const': doubleTagFinalLoop_C_ACLiC_dict.cxx:(.text._ZNK18doubleTagFinalLoop3IsAEv[doubleTagFinalLoop::IsA() const]+0x1): undefined reference todoubleTagFinalLoop::Class()’
/net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/doubleTagFinalLoop_C_ACLiC_dict.o:(.data.rel.ro._ZTV18doubleTagFinalLoop[vtable for doubleTagFinalLoop]+0x1d0): undefined reference to doubleTagFinalLoop::ShowMembers(TMemberInspector&)' /net/g20/ph/1/cxc078300/.proof/session-g17-1349968277-1648/worker-0.2/doubleTagFinalLoop_C_ACLiC_dict.o:(.data.rel.ro._ZTV18doubleTagFinalLoop[vtable for doubleTagFinalLoop]+0x1d8): undefined reference todoubleTagFinalLoop::Streamer(TBuffer&)'
collect2: ld returned 1 exit status
10:14:06 1662 Wrk-0.2 | Error in : Compilation failed![/quote]

I don’t see anything wrong with my files either… There probably is a stupid mistake somewhere, but where…?