TriggerPathsExecutor.h
Go to the documentation of this file.
1 #ifndef art_Framework_Core_TriggerPathsExecutor_h
2 #define art_Framework_Core_TriggerPathsExecutor_h
3 // vim: set sw=2 expandtab :
4 
5 // ======================================================================
6 // TriggerPathsExecutor
7 //
8 // A trigger-paths executor is a sequence of trigger paths. After
9 // construction, events can be fed to the object and passed through
10 // all the producer and filter modules. All accounting about
11 // processing of events by modules and paths is contained here or in
12 // an object held by containment.
13 //
14 // The trigger results producer is generated and managed here. This
15 // class also manages calls to endjob and beginjob.
16 //
17 // A TriggerResults object will always be inserted into the event for
18 // any schedule. The producer of the TriggerResults EDProduct is
19 // always the last module in the trigger path. The
20 // TriggerResultInserter is given a fixed label of "TriggerResults".
21 //
22 // Processing of an event happens by pushing the event through the
23 // Paths. The scheduler performs the reset() on each of the workers
24 // independent of the Path objects.
25 // ======================================================================
26 
33 
34 #include <memory>
35 
36 namespace art {
37  class GlobalTaskGroup;
38  namespace detail {
39  class SharedResources;
40  }
41 
43  public:
45  PathManager&,
46  ActionTable const&,
47  std::unique_ptr<Worker> triggerResultsInserter,
48  GlobalTaskGroup& group);
49 
50  // Disable copy/move operations
53  TriggerPathsExecutor& operator=(TriggerPathsExecutor const&) = delete;
54  TriggerPathsExecutor& operator=(TriggerPathsExecutor&&) = delete;
55 
56  // API presented to EventProcessor
58  void process_event(hep::concurrency::WaitingTaskPtr endPathTask,
60  void beginJob(detail::SharedResources const& resources);
61  void endJob();
62  void respondToOpenInputFile(FileBlock const&);
63  void respondToCloseInputFile(FileBlock const&);
64  void respondToOpenOutputFiles(FileBlock const&);
65  void respondToCloseOutputFiles(FileBlock const&);
66 
67  void process_event_paths_done(EventPrincipal&);
68 
69  private:
70  class PathsDoneTask;
71 
72  bool skipNonReplicated_(Worker const&);
73 
74  // const after ctor.
78  std::unique_ptr<Worker> results_inserter_;
80  };
81 } // namespace art
82 
83 // Local Variables:
84 // mode: c++
85 // End:
86 
87 #endif /* art_Framework_Core_TriggerPathsExecutor_h */
ScheduleContext const sc_
std::unique_ptr< Worker > results_inserter_
ActionTable const & actionTable_
def process(f, kind)
Definition: search.py:254
Transition
Definition: Transition.h:7
void beginJob()
Definition: Breakpoints.cc:14