Hi,
I tried to read some manuals I found on web, but they didn’t answer all my questions.
It is somehow related to the topic of multiple inherited objects I posted a few days ago.
In the older version, the object GoodTrack
was inheriting directly from TLorentzVector
:
TLorentzVector <-- GoodTrack
(version 1)
but now I have intermediate class
TLorentzVector <-- BaseTrack <-- GoodTracks
(version 2)
Some fields from GoodTrack
were moved to BaseTrack
.
In both classes GT and BT I have Streamers defined, but as far as I know, when they are used with TClonesArray
and in split trees, the Streamers are not used, instead some other I/O methods using TStreamerInfo
class. And indeed Streamers are no called.
This class (TStreamerInfo
) is aware of the version and recreate objects according to preserved info data. How can this class reconstruct object of version 1 when I am using version 2? Can it properly initialize fields which were in GoodTrack
and were moved to BaseTrack
?
I was using info from: https://root.cern.ch/root/htmldoc/guides/users-guide/InputOutput.html#the-class-description-list-streamerinfo-list