Merging large root files


I have about 50 root files, about 15MB each, which I would like to merge into one. Everything seems OK if I just merge about 20 of these, but when I tried to merge more, so that the resulting root file exceeds ~300MB, I received the error:

Error in TTree::Fill: Failed filling branch… (repeated many times, over all branches and events)

If the default max size of a root file is 2GB, then I’m not yet near this limit, and also my disk space is about ~30GB, so storage is not a problem.

Would anyone be able to suggest how I could go about finding out where the problem lies?
(I’m using ROOT 4.04/02)

Thanks for any help,

Sorry, I posted this in the wrong forum - meant to be in the Discussion forum.

Could we relocate this?

Which tool are you using for merging these files?
-$ROOTSYS/bin/hadd ?
if yes, I will need access to your files to investigate
-your own program?
Are you sure that your ntuple is disk-resident and not memory-resident?


Hi Rene

I’m simply merging my root files from the CINT command line:

TChain* chain = new TChain(“myTTree”);
chain->Add(“TestTree*.root”); //About 50 root files

The root files are disk-resident, all contain a TTree with the same structure. There’s definitely enough storage space for all the files. Do you need more information?

If you have any ideas, that would be a great help.

Thanks for your time,

Could you make a tar file with your 50 files
tar cvf files.tar TestTree*.root
and let me know from which public space I can copy this tar file?