Hello all,
i have a large amount of track data stored in split ttrees. i’ve radically upgraded the track container class, but i’ve been unable to read the data created with the previous version. i understand that split trees do not use the custom streamer, but i thought i would still be able to access the split branches from the previous event version, but these branches are not filled if the track class is loaded. is there some way to access this data?
here are the details, focusing on the class data of interest:
track class version 2 had the following datamembers:
Float_t fEntrance[4];
Float_t fEnergy;
Float_t fReconStatus;
track version 3 only has the following:
Float_t fEnergy;
(both have additional datamembers that i will ignore for clarity)
if the track class is not loaded in root, and i read an entry in the split ttree (TTree::GetEntry()), i get the following values if i GetLeaf()->GetValue():
track.fEntrance[i] = (filled)
track.fEnergy= (filled)
track.fReconStatus = (filled)
if the track class is loaded, then i get the following:
track.fEntrance[i] = 0
track.fEnergy= (filled)
track.fReconStatus = 0
the problem is that in our analysis, it is unavoidable that the track class is loaded. but once this is loaded, the split ttree data vanishes. is there any way to still access this data?
please let me know if you have questions about the situation.
thanks,
dan