ROOT 5.16.00 TCollectionProxy.h: No such file or directory!

I use ROOT 5.16.00 (5.16.00-PROOF.00/slc4_ia32_gcc34/root/). I produce my code with MakeSelector and add some lines to fill and to draw a histo (I did the same with ROOT 5.14.00 without problem). I have with 5.16.00 the following problem :

root [4] chain.Process(“FullSim.C+”)
Info in TUnixSystem::ACLiC: creating shared library /direct/usatlas+u/tarrade/MacroForPROOF/./
In file included from /direct/usatlas+u/tarrade/MacroForPROOF/./fileOF03RM.h:32,
from /direct/usatlas+u/tarrade/MacroForPROOF/./fileOF03RM.cxx:16:
/direct/usatlas+u/tarrade/MacroForPROOF/./FullSim.C: In member function `virtual Bool_t FullSim::Process(Long64_t)’:
/direct/usatlas+u/tarrade/MacroForPROOF/./FullSim.C:86: warning: statement has no effect
/direct/usatlas+u/tarrade/MacroForPROOF/./fileOF03RM.cxx:29:30: TCollectionProxy.h: No such file or directory
g++: /direct/usatlas+u/tarrade/MacroForPROOF/./fileOF03RM.o: No such file or directory
Error in : Compilation failed!
Error in TSelector::GetSelector: file FullSim.C+ does not have a valid class deriving from TSelector

In ROOT 5.16.00 there is no TCollectionProxy.h . What is this file ./fileOF03RM.cxx which include TCollectionProxy.h ? It is a problem with the installation of ROOT 5.16.00 or a problem with ROOT 5.16.00 ?

Thanks a lot for your help

[quote]In ROOT 5.16.00 there is no TCollectionProxy.h[/quote]There should be. It should be in $ROOTSYS/include.

[quote] What is this file ./fileOF03RM.cxx which include TCollectionProxy.h[/quote]This file is the (temporary) dictionary generated by ACLiC for your script. So it includes FullSim.C and contains all the dictionary for the symbols declared in FullSim.C. If FullSim.C contains std container, the dictionary will contains #include “TCollectionProxy.h” to properly support the I/O of std containers.


Hello Philippe,
Thanks for your comments.
In $ROOTSYS/include at CERN and at BNL there is no TCollectionProxy.h but only :

Do I miss something ?

It looks like the class changed between 5.14.00 and 5.16.00 !


Humm, my mistake :slight_smile: TCollectionProxy.h was renamed in TCollectionProxyFactory.h in v5.16.

In practice this means that you must have an older rootcint executable on your path. (aka the dictionary generated is for v5.14 but $ROOTSYS points to v5.16).