ConfigBlock for merging the output of various selection streams
Definition at line 6 of file EventSelectionConfig.py.
◆ __init__()
def python.EventSelectionConfig.EventSelectionMergerConfig.__init__ |
( |
|
self | ) |
|
Definition at line 9 of file EventSelectionConfig.py.
10 super(EventSelectionMergerConfig, self).
__init__()
11 self.addOption(
'selections', [], type=list,
12 info=
"the selection decisions (list of strings) to unify into a "
13 "final decision (internally: selection_1 || selection_2 || ...). "
14 "The default is [] (empty list).")
15 self.addOption(
'noFilter',
False, type=bool,
16 info=
"do not apply an event filter. The default is False, i.e. "
17 "remove events not passing the full list of selection cuts.")
◆ makeAlgs()
def python.EventSelectionConfig.EventSelectionMergerConfig.makeAlgs |
( |
|
self, |
|
|
|
config |
|
) |
| |
Definition at line 19 of file EventSelectionConfig.py.
19 def makeAlgs(self, config):
20 if not ( isinstance(self.selections, list)
and self.selections
and all(isinstance(item, str)
for item
in self.selections) ):
21 print(
'EventSelectionMerger: selections = ', self.selections)
22 raise ValueError(
'EventSelectionMerger requires a non-empty list of selection strings to be '
23 'passed as `selections`!')
24 alg = config.createAlgorithm(
'CP::SaveFilterAlg',
'EventSelectionMerger' + self.selections[0].
split(
"_%SYS%")[0])
25 alg.FilterDescription =
'events passing at least one EventSelection algorithm'
26 alg.eventDecisionOutputDecoration =
'ignore_anySelection_%SYS%'
27 alg.selection =
'||'.
join([sel+
',as_char' for sel
in self.selections
if sel])
28 alg.noFilter = self.noFilter
29 alg.selectionName =
'pass_anySelection_%SYS%'
30 alg.decorationName =
'ntuplepass_anySelection_%SYS%'
The documentation for this class was generated from the following file: