Both Lumberjack and Palisade share some common concepts, which are outlined here.
First, both tools use Python modules for configuration. These must be written by
the user following a series of conventions (see below) and placed under
python/Palisade/cfg/. A configuration module is also called an analysis, since
the configuration it contains is often specific to a single analysis (with different
conventions, variable names, binnings, etc.).
The above configuration paths must be importable Python modules. That is, they must
either be simple Python files (enough for “small” analyses) or directories containing
a file called
__init__.py. The organization of each configuration module into files
is left to the user. However, all configurations must declare a number of mandatory
variables (more details below) and make them available for import at the module level.
Second, both tools provide a way of defining tasks in the configuration modules. The exact meaning of “task” differs slightly between the two, but it can be thought of as a single unit of work in a particular workflow.
Tasks are configured and given a name in the analysis configuration modules and can then
be executed via the command-line interfaces provided by both tools: