art is an event-processing framework for particle physics experiments. The main reference page for art was published in J.Phys.Conf.Ser. 396 (2012) 022020. Experiments use the art framework to build programs that process data in a variety of contexts:
- high-level software filters
- online data monitoring
In all previous experiments at Fermilab, and in most previous experiments elsewhere, infrastructure software (i.e., the framework, broadly construed) has been written in-house by each experiment, and each implementation has been tightly coupled to that experiment’s code. This tight coupling has made it difficult to share the framework among experiments, resulting in both great duplication of effort and mixed quality.
art was created as a way to share a single framework across many experiments. In particular, the design of art draws a clear boundary between the framework and the user code. The art framework (and other aspects of the infrastructure) is developed and maintained by software engineers who are specialists in the field of particle physics infrastructure software. This provides a robust, professionally maintained foundation upon which physicists can develop the code for their experiments. Furthermore, the larger, more diverse user base of the common framework spurs more innovation that, in turn, benefits all the user experiments.
Almost all new experiments at Fermilab since 2009 have adopted art as a central component of its offline software suite.
What makes up art?
The art framework consists of a collection of libraries and a few runtime-configurable main programs, all written in the C++ programming language. In addition to the main program that users execute directly, art includes facilities to:
- define a variety of experiment-written modules that perform the steps in a workflow
- configure the coordinated execution of these modules
- handling experiment-defined descriptions of experimental data
- read and write files containing these data
- managing ancillary data (e.g. detector geometry descriptions, calibration data)
- keeping track of the provenance of the data generated during execution of the program
The art framework is supported by a wide variety of other software products, all of which are provided to users of art along with the framework. These include (among others) the configuration language used to determine the workflow for an art job, commonly-used physics libraries (such as GEANT4 and ROOT), and even the compilers used to build art.
From the Fermilab Strategic Plan Fiscal Year 2016:
Software is an integral part of the scientific process and is at the heart of every experiment. From recording, storing, and retrieving detector data to performing physics reconstruction and analysis, software needs to be efficient and user-friendly to enable experiments to extract physics results. The scientific workflow framework art provides the community with a common software layer to store and access scientific data and to schedule algorithms in an efficient and convenient way. The system grows to meet the needs of individual experiments through minimal experiment-specific customizations that don¹t require expert knowledge. The software stacks for all of Fermilab¹s operating neutrino and muon experiments now use the art framework. MicroBooNE successfully started taking data in 2015, and uses the framework extensively for their online and offline data handling and processing. Fermilab will continue to evolve art to keep pace with major software and computing hardware developments like the increased diversity of grid, cloud, and supercomputer resources. These will require changes in the underlying framework but will benefit many experiments simultaneously, thus minimizing the effort required from each individual project. Furthermore, the community has started to benefit from derived products that are based on art, such as artdaq, a common data acquisition system, and LArSoft, a common reconstruction algorithm for liquid-argon neutrino detectors. The evolution of art and its software ecosystem is a significant cornerstone of Fermilab¹s strategy to enable future scientific workflows.