Writing data with rootcint dictionaries, reading with Reflex dictionaries?

From: Brett Viren <bv_at_bnl.gov>
Date: Mon, 12 Dec 2011 20:30:46 -0500


Hi,

Root 5.32/00, GCC 4.6.2, Debian GNU/Linux, x86.

I'm trying to migrate some TTree producing code from rootcint to Reflex dictionaries. When I try to read some old file produced by the rootcint-based code using the Reflex version of the code I get some warnings and some errors. If only rootcint dictionaries or only Reflex ones are used for both producing and consuming there is no problem.

The classes in question inherit from TObject. For the Reflex-based version the ClassImp() is not included and when reading I call Cintext::Enable() before loading the Reflex dictionaries into ROOT.

Is this mixing that I'm attempting supported?

The warnings have to do with Rtypes apparently changing into plain old data types. For example:



Warning in <TStreamerInfo::CompareContent>: The following data member of the on-file layout version 1 of class 'WCSimRootTrigger' differs from the in-memory layout version 1:

   Int_t fMode; //
vs

   int fMode; //


The error is that apparently a "TClonesArray*" is changed to a "TClonesArray".



Warning in <TStreamerInfo::BuildOld>: Cannot convert WCSimRootTrigger::fTracks from type:TClonesArray* to type:TClonesArray, skip element

Thanks,
-Brett.

Received on Tue Dec 13 2011 - 02:31:00 CET

This archive was generated by hypermail 2.2.0 : Tue Dec 13 2011 - 05:50:01 CET