JIL - the JLab Introspection Library


Disclaimer: This is a work in progress. A number of details still need to be worked out including an automatic make scheme.


Object Persistence: Writing C++ objects to a file to be read back in by a different program later.

CPU intensive analyses need this in order to break the analysis up into stages. For example, CLAS does a first pass tracking reconstruction once, while many individual analyses can be done starting with the "cooked" files.

Along with event-based information, other objects should be stored in the file such as the list of DParameters.


What JIL provides ...



A simple example:

A simple Class


Putting objects into a file


Reading objects from a file


Extracting complex structure information using gdb


XML representation of data members


(De)Serializers generated from XML

Objects with void Serialize(JILStream&) const and void Deserialize(JILStream&) methods declared will have those methods generated which can then serialize private and protected data members too.

Output from consumer:



Final Notes

  • This work will be presented at CHEP06 in Mumbai, India in February.
  • Work has been done to integrate JIL I/O into DANA. Factory data has successfully been written/read.
  • Doxygen documentation for JIL

David Lawrence
davidl@jlab.org
Last Updated December 12 2005 11:04:39 AM