DaVinci.config

DaVinci configured using PyConf components.

Module Contents

Classes

DVNode

Immutable object fully qualifying a DaVinci node.

Functions

davinci_control_flow(options[, user_analysis_nodes, ...])

DaVinci control flow is split in a few sections as described in DaVinci/issue#2 (then simplified)

prepare_davinci_nodes(user_algs)

This helper function takes as input a dictionary of user algorithms in the form

validate_algorithms(options, algs_dict)

Validate algorithms passed to the DaVinci job.

add_davinci_configurables(options, user_algorithms, ...)

Run the job adding the specific Davinci configurables to the standard PyConf ones.

make_config(options, user_algorithms, *[, public_tools])

Attributes

log

log[source]
class DVNode[source]

Bases: namedtuple('DVNode', ['node', 'extra_outputs'])

Immutable object fully qualifying a DaVinci node. Copied from the HltLine class without the prescaler argument.

node

the control flow node of the line

Type:

CompositeNode

property name[source]

DVNode (CompositeNode instance) name.

__slots__ = ()[source]
davinci_control_flow(options, user_analysis_nodes=[], fsr_nodes=[])[source]

DaVinci control flow is split in a few sections as described in DaVinci/issue#2 (then simplified)

DaVinci (LAZY_AND)
├── LuminosityNode (NONLAZY_OR)
│   └── EventAccounting/EventAccount
└── UserAnalysisNode (NONLAZY_OR)
    ├── DVUser1Node (LAZY_AND)
    │   ├── PVFilter
    │   ├── ParticlesFilter
    │   ├── Candidate1Combiner
    │   ├── AlgorithmsForTuple1
    │   ├── Tuple1
    └── DVUser2Node (LAZY_AND)
        ├── PVFilter
        ├── ParticlesFilter
        ├── Candidate2Combiner
        ├── AlgorithmsForTuple2
        └── Tuple2

The main parts are

  • LuminosityNode

  • UserAnalysisNode

who are in AND among each other and can accommodate nodes (defined with the class DVNode) in OR among themselves.

To prepare the control flow there are a few options:

  1. take a dictionary as input where all the nodes are listed in their categories

  2. take a various lists as input each related to a specific category of nodes

This function is then used to fill the control flow

prepare_davinci_nodes(user_algs)[source]

This helper function takes as input a dictionary of user algorithms in the form

{
'DVNode1' : [<list of algs>],
'DVNode2' : [<list of algs>],
}

and creates the node to send to davinci_control_flow.

validate_algorithms(options, algs_dict)[source]

Validate algorithms passed to the DaVinci job.

Parameters:
  • options (DaVinci.Options) – lbexec provided options object

  • algs_dict – dict containing the user algorithms to be validated.

add_davinci_configurables(options, user_algorithms, public_tools)[source]

Run the job adding the specific Davinci configurables to the standard PyConf ones.

Algorithms developed by users are also included.

Parameters:

options (DaVinci.Options) – lbexec provided options object

Returns:

ComponentConfig instance, a dict of configured Gaudi and DaVinci Configurable instances and user algorithms.

make_config(options, user_algorithms, *, public_tools=None)[source]