My second question: I know that doing the following calls: LArRootEvent::Class()->IgnoreTObjectStreamer(); LArRootEvent::Class()->BypassStreamer(); LArRootHit::Class()->IgnoreTObjectStreamer(); LArRootHit::Class()->BypassStreamer(); will greatly speed up the I/O of a TClonesArray of LArRootHit* in LArRootEvent. The question is, what am I giving up with these calls? I've read the descriptions at <http://root.cern.ch/root/htmldoc/TClass.html#TClass:BypassStreamer> and <http://root.cern.ch/root/htmldoc/TClass.html#TClass:IgnoreTObjectStreamer>. I know that the BypassStreamer() means I lose the potential of additional operations in the Streamer() method, and IgnoreTObjectStreamer() means that I don't save the fBits and fUniqueID of the TObject. But what are the practical consequences of not having these features? Do I lose ROOT 3's automatic schema evolution? Are there some histogramming operations that will no longer work? Or are there no other effects other than I/O speed? Should I automatically put them in for every class I derive from TObject? (And if so, why aren't they the default?) -- Bill Seligman | mailto://seligman@nevis.columbia.edu Nevis Labs | http://www.nevis.columbia.edu/~seligman/ PO Box 137 | Irvington NY 10533 | Phone: (914) 591-2823
This archive was generated by hypermail 2b29 : Fri Jun 08 2001 - 11:51:08 MEST