Native extensions for handling of sub-events by adding a fifth canonical stream type, called DAQ (for Data Acquisition). This frame type holds the detector readout information (and simulation information) for a particular detector global trigger. One or multiple views can be made into these data by using a splitter module to produce Physics frames following the DAQ frame. Using the mix-in mechanism for multiple streams, all the DAQ information (i.e. the readouts) is available to reconstructions also in the subevent frames, without duplication on disk. This lays the foundation for introduction of other time-varying non-physics data (e.g. monitoring output like mainboard temperatures) into the data stream.
Subevent splitting and hit cleaning involve making multiple subevents with a subset of the full pulse series. Any pulse series or object implicitly convertable to a pulse series, including masks (see below) can have a subset of its contents written by reference as a mask, vastly reducing disk space requirements. This mask can be treated (below) by reconstructions directly as an I3RecoPulseSeriesMap, requiring no software changes for readout.
Things that are “castable” to an I3RecoPulseSeriesMap in a generic sense can now be retrieved from the frame by I3Frame::Get<I3RecoPulseSeriesMap>(). This allows implicit conversion to an I3RecoPulseSeriesMap of pulse masks, SuperDST data, and reco hits.
I3ServiceBase imported from Gulliver, changes to I3Module::GetParameter() to allow transparent use of named context services or direct python argument services.
IceTray has been expanded to include support for the concept of IceTray “segments”, which are pre-configured modules, services or sets of modules and services, each properly configured and released as part of the project that defines them. These segments can easily be joined together to more easily form larger segments, and large processing heavy scripts.
These segments allow for pre-defined “alternative” standard configurations and are closely integrated into the standard icetray-tools (I3Tray, icetray-inspect, etc). The TraySegment implementation was heavily influenced by the work of the LE/IBEX framework.