Home | News | Documentation | Download

Warning message when merging files with TBufferMerger

When I merge TBufferMergerFiles containing root-level objects (i.e. not in branches of a TTree) I get these warning messages:

Warning in <ROOT::Experimental::TBufferMergerFile::ResetObjects>: Key/Object GGSSimInfo is not attached to the directory /home/mori/software/devel/GGSSoftware/Debug_mt/GGSRootOutput.root and can not be ResetAfterMerge correctly
Warning in <ROOT::Experimental::TBufferMergerFile::ResetObjects>: Key/Object GGSGeoParams is not attached to the directory /home/mori/software/devel/GGSSoftware/Debug_mt/GGSRootOutput.root and can not be ResetAfterMerge correctly

In the merged output file I can see that the objects mentioned in the warnings are present in multiple cycles, one per merged file:

  KEY: GGSTSimInfo      GGSSimInfo;2
  KEY: GGSTSimInfo      GGSSimInfo;1
  KEY: GGSTGeoParams    GGSGeoParams;2
  KEY: GGSTGeoParams    GGSGeoParams;1

This makes a lot of sense to me: TBufferMerger does not know how to merge my custom objects, so it does the only sane thing, namely copy all the different instances of the same object in the merged file with different cycles. But then I don’t understand why the warning messages: is there something that I am overlooking and that can cause troubles in my merged file?
Thanks for the help.

@amadio @pcanal Sorry to bother you, but I investigated the issue by looking inside the code and have not been able to figure out the situation. So I really need help on this. Thanks.

Since the copies are stored as “cycles” they can be overlooked by the reader as “backup copies” whereas they might be important. The data is save and if you can properly document the output (and/or you are the only user) then it will be fine.

Thanks for the reply. Actually I solved the issue of multiple cycles by writing the objects only on the TBufferMergerFile for thread 0: the objects are identical for all threads, so in this way I have just one copy/cycle in the merged file.

But my original question is still open: I still get the warning messages and for sure they will cause unnecessary concerns to my users since the content of the merged file is OK according to my tests. So I’d like to know if there is a way to avoid them being printed (and I’m also curious about their meaning).
Thanks again.