Automatic split

Manuel Sanchez (manuel@fpddv1.usc.es)
Fri, 08 May 1998 16:32:07 +0200


Hello Rooters,

I would like to ask your opinion on a new "automatic split" feature,
the idea is as simple as having the posibilty to mark some data members
in a class so they won't be processed by the automatic split algorithm;
that is, the responsability to create the appropiate branches for those
members is left to the user. For instance, it coud be something like:
'if the comment field of a data members starts with '-' then it won't be
processed by automatic split'.

This would be different from marking that data member as not
persistent (using '!' as the first character in the comment field) in
the sense that the particular data member is persistent (it is stored
when the automatically generated Streamer() method is used) but the
responsability to generate the branches (in split mode) is left to the
user.

This change would make easier to implement automatic split
strategies different from the default one.

I think the changes in the code are as simple as adding one single
line to TTree::Branch() and TBranchObject::SetAddress() ( is this right?
)

There are at least two workarounds (i'm using one of them):

1.- Mark the data member as non-persistent (using '!') and then
generate the Streamer function by hand

2.- Use the '-' in the comment field and use different Branch() and
SetAddress() methods from those which come with Root. (as external
functions or inheriting new classes from TTree and TBranchObject ...)

3.- Any more?

Thanks for your attention,
Manuel.