Here is the definitive explanation of path stuff. It's Steven-Lowette approved, so you can take it to the bank.


The four keywords are path , endpath , sequence , schedule .

A path is a list of modules separated by operators and possibly grouped by commas. There can be multiple paths in a process block. All paths are executed.

An endpath is exactly the same as a path, except that the endpath always appears last in the default schedule. There can be at most one endpath in a process block.

A sequence groups together modules but does not execute them. It is basically an alias for a list of modules. A sequence of modules can be placed anywhere a single module can. In particular, sequences can contain other sub sequences. A sequence has the same syntax as a path or endpath . sequences do not add functionality. Rather, they are intended to organize complicated paths and to simplify adding, removing, and reordering multiple paths.

A schedule is an ordered list of paths and possibly one endpath, separated by commas. Each process block contains exactly one schedule. If no schedule is explicitly declared, the default schedule is all of the paths (in the order they are declared) followed by the endpath (if one exists).


An operator is either a comma (",") or an ampersand ("&"). The operand on the left is executed first, followed by the operand on the right, regardless of the operator between them. The purpose of the operators is to allow error checking on paths.

There are only two valid operators

  • the "," or dependency operator: the module to the right is dependent on the module on the left (i.e. the right accesses data produced by the left)

  • the "&" or sequencing operator: the modules to the left and right are not dependent on each other
Parentheses can be used to group modules together. If (within some path) a module is declared to depend on a specific set of modules , then the module must depend on the same modules in the same order in all other paths in that process block. If not the error check will fail.

The error checking is only concerned with dependencies. If you use only ampersands, there will be no error checking.


Each event starts at the top of the path and if fed through the modules in the order specified. Some modules (e.g. ED Filters) return a boolean result. If the boolean is negative, the event fails the the path and does not continue. That the boolean result of any module mentioned in a path can be reversed by adding a "!" in front of it. The boolean result of any module mentioned in a path can be ignored (always pass) by adding a "-" in front of it

The paths in a process together form a set of bits that can be used for event filtering. See SWGuideEDMPathsAndTriggerBits.


In Python configuration files, the operators ( "+" , "*" , "~" ) are used in place of ( "&" , "," , "!"), respectively.

-- CharlesRiedel - 29 Aug 2008

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2008-08-30 - CharlesRiedel
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback