EventSelector.h
Go to the documentation of this file.
1 #ifndef art_Framework_Core_EventSelector_h
2 #define art_Framework_Core_EventSelector_h
3 // vim: set sw=2 expandtab :
4 
8 
9 #include <memory>
10 #include <string>
11 #include <vector>
12 
13 namespace art {
14  class EventSelector {
15  public:
16  explicit EventSelector(std::vector<std::string> const& pathspecs);
17 
18  bool acceptEvent(ScheduleID id, TriggerResults const& tr) const;
19 
20  struct BitInfo {
21  unsigned int pos{};
22  bool accept_state{false};
23  };
24 
25  private:
26  std::vector<std::string> const path_specs_;
27  bool const accept_all_;
28  struct ScheduleData {
30  std::vector<BitInfo> absolute_acceptors;
31  std::vector<BitInfo> conditional_acceptors;
32  std::vector<BitInfo> exception_acceptors;
33  std::vector<std::vector<BitInfo>> all_must_fail;
34  std::vector<std::vector<BitInfo>> all_must_fail_noex;
35  };
37 
38  ScheduleData data_for(TriggerResults const& tr) const;
40  HLTGlobalStatus const&) const;
41  };
42 
43 } // namespace art
44 
45 #endif /* art_Framework_Core_EventSelector_h */
46 
47 // Local Variables:
48 // mode: c++
49 // End:
std::vector< std::string > const path_specs_
Definition: EventSelector.h:26
PerScheduleContainer< ScheduleData > acceptors_
Definition: EventSelector.h:36
std::vector< BitInfo > conditional_acceptors
Definition: EventSelector.h:31
std::vector< std::vector< BitInfo > > all_must_fail_noex
Definition: EventSelector.h:34
bool acceptEvent(ScheduleID id, TriggerResults const &tr) const
std::vector< BitInfo > absolute_acceptors
Definition: EventSelector.h:30
bool const accept_all_
Definition: EventSelector.h:27
std::vector< std::vector< BitInfo > > all_must_fail
Definition: EventSelector.h:33
ScheduleData data_for(TriggerResults const &tr) const
bool selectionDecision(ScheduleData const &data, HLTGlobalStatus const &) const
std::vector< BitInfo > exception_acceptors
Definition: EventSelector.h:32
EventSelector(std::vector< std::string > const &pathspecs)