19 using namespace string_literals;
23 ProcessAndEventSelector::ProcessAndEventSelector(
string const& nm,
45 string const& process_name)
49 map<string, vector<string>> paths_for_process;
50 for (
auto const& [proc_name, path_names] :
path_specs) {
51 auto const& pname = proc_name.empty() ? process_name : proc_name;
52 paths_for_process[pname].push_back(path_names);
56 for (
auto const& [pname, paths] : paths_for_process) {
65 assert(not
empty(sel_));
67 begin(sel_),
end(sel_), [
id, &e](
auto& val) {
return val.match(
id, e); });
73 for (
auto& val : sel_) {
74 if (
auto h = val.triggerResults(ev); h.isValid()) {
bool get(SelectorBase const &, Handle< PROD > &result) const
ProcessAndEventSelectors(std::vector< std::pair< std::string, std::string >> const &path_specs, std::string const &process_name)
decltype(auto) constexpr end(T &&obj)
ADL-aware version of std::end.
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
bool acceptEvent(ScheduleID id, TriggerResults const &tr) const
art::Handle< art::TriggerResults > triggerResults(Event const &e) const
bool matchEvent(ScheduleID const id, Event const &e) const
std::vector< art::PathSpec > path_specs(std::vector< ModuleSpec > const &selection_override_entries, std::string const &path_selection_override)
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
ProcessNameSelector processNameSelector_
art::Handle< art::TriggerResults > getOneTriggerResults(Event const &) const
decltype(auto) constexpr empty(T &&obj)
ADL-aware version of std::empty.
EventSelector eventSelector_
bool match(ScheduleID const id, Event const &e) const