Hi, I have a problem storing reconstructed data together with raw data in one file. I think it boils down to the following: In a raw data file ("RawFile.root") I have a TTree ("rawTree") with a single branch of RawEvent s. Where the RawEvent has, among other items, a TClonesArray of RawHit s. I.e.; --------- class RawHit; class RawEvent { private: TClonesArray* fRawHitCont; // clones array of RawHit (owner) ... public: ... } --------- In a reconstruction program I read the raw events from the raw data file. And reconstruct some objects (tracks, etc..). Some of the reconstructed objects have pointers to raw objects (e.g. a Track has pointers to hits). Therefore in the reconstructed event class has, among pointers to the reconstructed objects, a pointer to the RawEvent. I.e., --------- class RecoEvent { private: RawEvent* fRawEvent; // pntr to raw event TClonesArray* fTrackCont; // clonesarray of Track (owner) ... public: ... } class Track { private: TList* fHitCont; // container with RawHit (not owner) ... public: ... } ---------- Now I want to store this whole structure in a new file ("RecoFile.root"). So I fill a branch in a TTree ("recoTree") in the file "RecoFile.root" with RecoEvent s. This in order to have as well the raw as the reconstructed information in a single file, such that further analysis can be done on this file without the raw file. The problem: If I just use the standard created streamers in the simple case above the RawHit s are written twice. Hence when I read back the file the RawHit objects pointed to by the Track s are not the same as the RawHit s pointed to by RawEvent. So, I think for some reason the mechanism that ensures objects are written only once (for objects pointed to multiple times) does not work. I suspect it has something to do with the fact that the RawEvent I READ is in a different tree (RawTree) than the reconstructed event (RecoTree). But I do want to SAVE the RawEvent in the reconstructed tree via the RecoEvent. What am I doing wrong, and how can I achieve what I want? thanks, Rutger
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:21 MET