This PR adds trigger object matching and cross cleaning between different data streams.
To achieve the trigger object matching, the trigger Selector has been reimplemented using a newly created Trigger collection from the config.
The strategy for the cross cleaning is as follows:
Each trigger defines one data stream that it belongs to via a tag.
We start with a mask that removes all events where triggers from this stream did not fire.
In the config, we define the order of the data stream priorities. When a trigger from a higher
priority data stream fires, the event is removed
Our data stream priority is data_mu>data_egamma>data_muoneg. Therefore events are kept as follows:
a single/dimuon trigger fired --> event is kept in data_mu and removed in all other streams
a single/dielectron trigger fired and no single/dimuon trigger fired --> events is kept in data_egamma and removed in all other streams
a mixed (emu) trigger fired and single/dimuon and no single/dielectron trigger fired --> events are kept in data_muoneg and removed in all other streams
no trigger fired --> events are removed in all streams
This means that we can (and need to) run over all data streams independent of the lepton channel when creating data/mc plots.
Currently, the trigger selection simply uses all triggers that are present in the cfg.x.triggers collection. To customize our dl selector, we can overwrite the trigger_config_func attribute via derive, which is a function that can modify the config during the init call of our selector.
TODO: we still need to implement these new selectors in the sl selector.
This PR adds trigger object matching and cross cleaning between different data streams. To achieve the trigger object matching, the trigger Selector has been reimplemented using a newly created
Trigger
collection from the config.The strategy for the cross cleaning is as follows:
Our data stream priority is data_mu>data_egamma>data_muoneg. Therefore events are kept as follows:
This means that we can (and need to) run over all data streams independent of the lepton channel when creating data/mc plots.
Currently, the trigger selection simply uses all triggers that are present in the
cfg.x.triggers
collection. To customize our dl selector, we can overwrite thetrigger_config_func
attribute viaderive
, which is a function that can modify the config during the init call of our selector.TODO: we still need to implement these new selectors in the sl selector.