If you are thinking of using art for your experiment or project, this page is the place to start reading. It will give you an overview of art, guide you to more complete information to help you understand if art will suit your needs.
art is an event-processing framework developed and supported by the Fermilab Scientific Computing Division (SCD). The art framework is an application used to build scientific programs by loading science algorithms, provided as plug-in modules; each experiment or user group may write and manage its own modules. art also provides infrastructure for common tasks, such as reading input, writing output, run-time configuration, provenance tracking, message handling and database access. art is integrated with Fermilab’s tape based file catalog and replica management system, SAM.
art is used in all of the following computing environments: interactive, batch, Grid and Cloud. Many experiments run the Geant4 simulation of their apparatus within art.
art can be used by any experiment whose workflow is the processing of events, each of which can be processed independently. A grossly oversimplified cartoon of art is that it is the agent that drives the event loop and manages infrastructure that is used by the scientific code.
art is written in C++ and is intended to be used with user code written in C++. The user written C++ code may call other user code written in C or FORTRAN.
art supports running modules that do multi-threaded execution.
art has been designed for use in most places that a typical experiment might require a software framework, including:
- high-level software triggers
- online data monitoring
- calibration
- reconstruction
- analysis
- simulation
art is not designed for use in real-time environments, such as the direct interface with data-collection hardware.
Experiments use art as an external product, in exactly the same sense that the compiler, Geant4, CLHEP, boost, or ROOT are external products. This model allows a dedicated team of experienced software engineers to support the infrastructure for multiple experiments, permitting the scientists of each experiment to focus on the development of their algorithms.
If your experiment adopts art you are free to choose any build system that suits your needs; you only need to ensure that the names of dynamically loaded object libraries follow a simple convention. If you wish to use the build system used to build art you may choose to do so and the art team will provide support.
As a user of art you can download either a source or a binary distribution. Both include art plus the complete set of external products on which art depends; among these external products you will find the compiler used to build that version of art. The art team recommends that, when you build your experiment’s code, you use the compiler shipped with art and that you use the recommended compiler options.
Since 2009, most new Elementary Particle Physics experiments at Fermilab have chosen to useart, providing an active, scientifically diverse and mutually supporting user group. Users can report bugs and request features by creating new issues in art‘s issue tracking system. Users can ask general questions and get replies using art‘s archived mailing list, art-users. The artteam holds a weekly meeting for all stakeholders to report status, discuss concerns and set priorities. Announcements of new releases and upcoming meetings are made to the art-stakeholders mailing list; this list is also archived.
An extensive documentation suite for art is under development. One of the key components is the art Workbook, which begins with a survey of the prerequisites for being an art user and moves on to a series of illustrative exercises with explanatory text. The art Workbook is designed by be used in a self-paced fashion and to be accessible to beginners in scientific computing. The text is indexed and cross-referenced so that it will also be a useful reference for experienced users. The workbook currently contains about 10 of 35 planned exercises.
Earlier generations of documentation are available on the art wiki. These will be integrated into the new documentation suite as time is available. Other documentation can be found on the web pages of experiments using art.
The Fermilab SCD has also developed a related product named artdaq, a layer that lives on top of art and provides features to support the construction of data-acquisition (DAQ) systems based on commodity servers. For more information consult the artdaq home page.