.. _ds: Data Structure (RAT::DS) ------------------------ The event data structure is a tree of information about a particular event. Event producers create an instance of the data structure for each event, and processors can then operate on this structure, transforming it as desired. A single event is that which is generated when a macro calls `/generator/beamOn`; however, a processor is free to break this event into multiple sub-events. .. _ratds: The ``ratpac-two`` Data Structure ````````````````````````````````` The ``ratpac-two`` data structure is defined in the `src/ds` directory and lists everything under the ``RAT::DS`` namespace. An instance of the data structure is defined in the ``RAT::DS::Root`` object. The data structure is tree-like, with each instance of ``RAT::DS::Root`` containing a list of ``RAT::DS::MC`` objects which contain the Monte Carlo truth information, and a list of ``RAT::DS::EV`` objects which contain the reconstructed event information (usually after going through a processor that simulates the detector response). RAT::DS::MC ''''''''''' RAT::DS::EV ''''''''''' .. _ratntuple: The ``ratpac-two`` ntuple structure ``````````````````````````````````` ``ratpac-two`` provides multiple output file formats, the simplest of which is called the "ntuple" output. The details of this output file format are described in :ref:`outntuple`. This output file format is generated by accessing the ``RAT::DS`` to fill flat ``ROOT`` TTrees, which are smaller and easier to work with than the full ``RAT::DS``.