Diagram of how the aggregator processes fragments (artdaq v1.13.00)

This is a UML activity diagram describing an iteration of the process_fragments loop in, lines 437-750. I've left out some details in an attempt to keep the complexity down (and after all, this is a model, not the code itself!); in particular, I haven't included statistics reporting code here since my focus was on the logic with which the aggregator handles fragments (where "fragment" is used interchangeably with "event" in the diagram). Hopefully if any refactoring and/or modification of the aggregator code is desired, this can serve as a reference during the design phase before actual coding. For point of comparison, below the aggregator diagram is the eventbuilder diagram - which, you'll note, basically represents a subset of aggregator behavior: