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