iov_conditional - Functions to Execute Paths Depending on Experiment Phases
5.6.8. iov_conditional - Functions to Execute Paths Depending on Experiment Phases#
This module contains some convenience functions to execute different paths depending on the experiment run number. This allows to write one common steering file for phases 2 and 3.
Warning
All Modules will be initialized on startup of the framework. This might
cause problems if the modules initialize some common global state. For
example, adding Geometry
modules with different parameters will not
work as expected.
- iov_conditional.PHASE2_IOVS = [(1, 0, 4, -1), (1002, 0, 1002, -1)]#
Definition of Phase 2 in a) real data and b) run-independent MC/development globaltags
- iov_conditional.make_conditional_at(path, iov_list, path_when_in_iov, path_when_not_in_iov=None)[source]#
Branch the current path execution based on the given iov list. If the current exp/run is met by one of the IoV conditions, execute the path given in
path_when_in_iov
and continue the normal path afterwards. Otherwise execute thepath_when_not_in_iov
when given.Basically, this function is just a wrapper around adding the
IoVDependentCondition
module to the path.See also
If you just need to distinguish between phase 2/3 please use
phase_2_conditional()
Example
>>> make_conditional_at(path, iov_list=[(0, 0, 0, -1)], ... path_when_in_iov=exp_0_path, ... path_when_not_in_iov=not_exp_0_path)
will branch the path for all events with experiment number 0 to the modules in
exp_0_path
and intonot_exp_0_path
in all other cases.- Parameters
path (basf2.Path) – Branch the execution of the given path.
iov_list (list(tuple)) – Under which IoV conditions should the
path_when_in_iov
be executed. It should be a list in the form[(min exp, min run, max exp, max run), ...]
path_when_in_iov (basf2.Path) – Which branch to execute, if one of the IoV conditions is met.
path_when_not_in_iov (basf2.Path) – If given, execute this path in all cases, none IoV condition is met.
- iov_conditional.phase_2_conditional(path, phase2_path, phase3_path=None)[source]#
Handy shortcut for phase 2/3 conditional module execution.
See also
- Parameters
path (basf2.Path) – Branch the execution of the given path.
phase2_path (basf2.Path) – Call this path only when in phase 2.
phase3_path (basf2.Path) – When given, call this path only when in phase 3.