First, I am more like a software system developer.
I intend to do small modifications on ROOT code to measure network & compression performance under some CMSSW analysis example (e.g. HiggsBoson analysis).
I used the Github version of ROOT and checkout tag 5.32.00 and compile it without my intended modifications to just test the workflow.
I followed the instruction to tell CMSSW to link to my ad-hoc root library.
But when I tried to run the Level4 analysis, I got error like the following:
terminate called after throwing an instance of ‘edm::Exception’
what(): An exception of category ‘FatalRootError’ occurred.
Exception Message:
Fatal Root Error: @SUB=CINTTypedefBuilder::Setup()
21601 out of 24000 possible entries are in use!
Aborted
I was able to run the same analysis smoothly when CMSSW is using the ROOT at /cvmfs/cms.cern.ch/slc6_amd64_gcc472/lcg/root/5.35.32.00-cms/. However there is no corresponding source code available there, only compiled library and header files. So I will not be able to modify the ROOT library as needed.
Thus, I am wondering does CMS maintain a separate version of ROOT to use with CMSSW?
Yes, CMS used to maintain a fork of ROOT that increase some of the CINT internal buffer.
I am wondering why you are considering using such an ancient version of ROOT (and likely CMSSW). The 5.32.00 tag is 9 years old! Both CMSSW and ROOT have evolved quite a bit since then
Thanks for the reply.
The reason I am using old version of CMS and ROOT, is that I am analyzing 2011 data which is publicly available. I believe there is some website suggesting the recommended version for the 2011 data is CMS_5_3_32 and the corresponding ROOT version is 5.32.00.
I tried to use newer version ROOT, but the build process would complain cmake version is too old and then gcc472 doesn’t have c++11 support if I tried to compile newer cmake.