General art and art suite information

 art suite programs

Each of the programs below is available if you have setup the art product (either directly, or by having setup you experiment software that uses art).
Each program accepts the flag --help, which prints out instructions for use.

  • art: this is the event-processing framework executable. Note the availability of --debug-config <file> and --config-out <file> to print out the configuration that you have just told art to use. Note also --annotate, which adds comments that say where each parameter value came from. This command takes into account command-line parameters specified to the art executable, which can insert or modify parameters. The lar and various experiment-specific framework executables all take these same arguments. There is some documentation on the exit status codes that may be returned after an execution of art.
  • art_ut: this is the event-processing framework executable with built-in support for unit testing using the Boost library. It is intended for writing modules that are used for testing, not for production.
  • config_dumper: this program will read an art/ROOT output file and print out configuration information for the process(es) that created that file.
  • fhicl-dump: this program will read a FHiCL file, fully process it, and print out the FHiCL that describes the resulting ParameterSet. Note that it requires the environment variable FHICL_FILE_PATH to be set. Note that fhicl-dump does not take the large set of flags that the framework executable respects.
  • fhicl-expand: this program will read a FHiCL file and perform all #include processing, printing the result as a single FHiCL document.
  • file_info_dumper: this program will read an art/ROOT output file and has the ability to print the list of events in the file, print the range of events, subruns, and runs that contributed to making the file, and provides access to the internal SQLite database, which can be saved to an external database.
  • count_events: this program will read an art/ROOT output file and print out how many events are contained in that file.
  • product_sizes_dumper: this program will read and art/ROOT output file and print out information about the sizes of products.
  • sam_metadata_dumper: The sam_metadata_dumper application will read an art-ROOT format file, and extract the information for possible post-processing and upload to SAM.
  • cetskelgen. This modular script will generate skeleton source files for the selected module or plugin type. If an experiment designs their own plugin, they can produce a plugin for cetskelgen to generate a skeleton for same.

 art job configuration

 How to use the modularity of art

 Event processing

 Multithreaded processing (as of art 3)

 Data products

Data product retrieval

Data product dependencies

 I/O handling

Output-file handling

Data products and ROOT dictionaries

 Other information and guides for art suite features and packages

 General programming information and advice

 Design documentation

 art suite release notes

Release notes for art versions 2.00.01 and newer are grouped into art series.


The table below lists deprecations in the art suite as of art 1.09.03.

  • Entries marked with a red background indicate deprecations that are no longer supported as of the version listed in the far right column.
  • Entries marked with a green background indicate deprecations that are still supported in art.

Deprecations of C++ types and function signatures will yield compile-time warnings. How these warnings can be handles is described below.

Deprecation Replace with Deprecated as of Removed as of
void MixFilterDetail::startEvent() void MixFilterDetail::startEvent(Event const& e) art 1.00.00 art 3.02.00
config_dumper --label config_dumper --filter art 1.09.03 art 2.05.00
services.user.myService: {...} services.myService: {...} art 1.13.00
services.Timing: {...} services.TimeTracker: {...}
services.SimpleMemoryCheck: {...} services.MemoryTracker: {...}
artmod executable cetskelgen executable art 1.14.011 TBD
produces<T,art::BranchType>(...) in a ResultsProducer produces<T>(...) art 1.16.02 art 2.05.00
EventSelector::acceptEvent(unsigned char const*, int) EventSelector::acceptEvent(TriggerResults const&) art 1.17.07
services.MemoryTracker.ignoreTotal: "..." No longer used; contact for questions. art 2.04.01 art 2.07.01
SelectEvents.SelectEvents: [...] SelectEvents: [...] art 2.01.00 art 2.08.00
services.scheduler.fileMode Contact for details. art 2.01.00
services.MemoryTracker.filename: "..." services.MemoryTracker.dbOutput.fileName: "..." art 2.01.00
#include "messagefacility/Utilities/do_nothing_deleter.h"
#include "cetlib/no_delete.h"
art 1.16.00 art 2.05.00
fhicl::ParameterSet::get_keys() fhicl::ParameterSet::get_names() art 1.16.00 art 2.05.00
fhicl::ParameterSet::get_pset_keys() fhicl::ParameterSet::get_pset_names()
#include "cetlib/make_unique.h"
#include <memory>
art 1.18.03 art 2.05.00
cet::demangle(std::string const&) cet::demangle_symbol(std::string const&) art 2.06.00 art 2.11.00

1 artmod will not be removed for now. However, in art versions 1.14.01 and newer, users must use cetskelgen and artmod will emit a message instructing users to do so if their set-up version of art is 1.14.01 or newer.

Handling compiler-generated deprecation warnings at build time

Using any of the deprecated art C++ facilities listed in the table above will lead to compile-time warnings. For build systems that turn warnings into errors (i.e. by using the -Werror compiler flag), using the deprecations will result in a build-time failure. In order to allow deprecations to remain as warnings and not trigger build-time failures, the -Wno-error=deprecated-declarations compiler flag can be added.

For users of cetbuildtools, the ALLOW_DEPRECATIONS flag can be added to the cet_set_compiler_flags macro call:

cet_set_compiler_flags (
   DIAGS ...

If the WERROR flag is not present, the ALLOW_DEPRECATIONS flag is ignored.

Development info


Presentations to Experiments