I/O
- Fix the order of creation of the TStreamerInfo during the opening of a ROOT file to insure that the CollectionProxy are properly setup.
- Fix problem: "recover warning when opening an empty file
created with TXNetFile" which was due to a bad check in TFile::Recover
(line TFile.cxx:1561) where the inheritance from TFile should be checked
instead of requiring the name to be TFile.
- In TBranch::File, in the case of importing the data directly from
an external TBuffer, remove 80 char limit on reading the class name
- Re-enable support for the
rootrc configuration Root.ZipMode.
Data Model Evolution
First step in the implemantation of the infrastructure for the new Data Model Evolution Scheme.
This Data Model Evolution is brought to your courtesy of BNL/STAR/ATLAS/Fermi/Cern
Current Capabilities
- Assign values to transient data members
- Rename classes
- Rename data members
- Change the shape of the data structures or convert one class
- structure to another
- Change the meaning of data members
- Ability to access the TBuffer directly when needed
- Ensure that the objects in collections are handled in the same
way as the ones stored separately
- Supported in object-wise, member-wise and split modes.
Coming soon
- Make things operational also in bare ROOT mode
- Ability to transform data before writing
- Support for changing the class type of nested object in a split
branch
- Support for access to onfile version of nested objects from
within the parent rule
LinkDef rule syntax
Setting a transient member:
#pragma read sourceClass="ACache" targetClass="ACache" source=""
version="[1-]" target="zcalc" \
code="{ zcalc = false; }"
Setting a new member from 2 removed members:
#pragma read sourceClass="ACache" targetClass="ACache"
source="int x; int y; char c" version="[8]" target="z" \
code="{ z = onfile.x*1000 + onfile.y*10; }"
Renaming a class:
#pragma read sourceClass="ACache" version="[8]"
targetClass="Axis" \
source="int x; int y;" target="z" \
code="{ z = onfile.x*1000 + onfile.y*
#pragma read sourceClass="ACache" version="[9]"
targetClass="Axis";
See the long form documentation
Selection XML syntax
<read sourceClass="ACache" targetClass="ACache" source=""
version="[1-]" target="zcalc">
<![CDATA[
{ zcalc = false; }
]]></read>