LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
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 
27 #include "art/Framework/Core/fwd.h"
33 
34 #include <memory>
35 
36 namespace art {
37  class ActivityRegistry;
38  class GlobalTaskGroup;
39  namespace detail {
40  class SharedResources;
41  }
42 
44  public:
46  PathManager&,
47  ActionTable const&,
48  ActivityRegistry const& activityRegistry,
49  GlobalTaskGroup& group);
50 
51  // Disable copy/move operations
54  TriggerPathsExecutor& operator=(TriggerPathsExecutor const&) = delete;
55  TriggerPathsExecutor& operator=(TriggerPathsExecutor&&) = delete;
56 
57  // API presented to EventProcessor
58  void process(Transition, Principal&);
59  void process_event(hep::concurrency::WaitingTaskPtr endPathTask,
61  void beginJob(detail::SharedResources const& resources);
62  void endJob();
63  void respondToOpenInputFile(FileBlock const&);
64  void respondToCloseInputFile(FileBlock const&);
65  void respondToOpenOutputFiles(FileBlock const&);
66  void respondToCloseOutputFiles(FileBlock const&);
67 
68  void process_event_paths_done(EventPrincipal&);
69 
70  private:
71  class PathsDoneTask;
72 
73  bool skipNonReplicated_(Worker const&);
74 
75  // const after ctor.
80  std::unique_ptr<Worker> results_inserter_;
82  };
83 } // namespace art
84 
85 // Local Variables:
86 // mode: c++
87 // End:
88 
89 #endif /* art_Framework_Core_TriggerPathsExecutor_h */
ScheduleContext const sc_
std::unique_ptr< Worker > results_inserter_
ActivityRegistry const & actReg_
ActionTable const & actionTable_
Transition
Definition: Transition.h:7
void beginJob()
Definition: Breakpoints.cc:14
Definition: MVAAlg.h:12