LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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
"
28
#include "
art/Framework/Principal/Worker.h
"
29
#include "
art/Framework/Principal/fwd.h
"
30
#include "
art/Persistency/Provenance/ScheduleContext.h
"
31
#include "
art/Utilities/ScheduleID.h
"
32
#include "
art/Utilities/Transition.h
"
33
34
#include <memory>
35
36
namespace
art
{
37
class
ActivityRegistry;
38
class
GlobalTaskGroup;
39
namespace
detail {
40
class
SharedResources;
41
}
42
43
class
TriggerPathsExecutor
{
44
public
:
45
TriggerPathsExecutor
(
ScheduleID
,
46
PathManager
&,
47
ActionTable
const
&,
48
ActivityRegistry
const
& activityRegistry,
49
GlobalTaskGroup
& group);
50
51
// Disable copy/move operations
52
TriggerPathsExecutor
(
TriggerPathsExecutor
const
&) =
delete
;
53
TriggerPathsExecutor
(
TriggerPathsExecutor
&&) =
delete
;
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,
60
EventPrincipal
&);
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.
76
ScheduleContext
const
sc_
;
77
ActionTable
const
&
actionTable_
;
78
ActivityRegistry
const
&
actReg_
;
79
PathsInfo
&
triggerPathsInfo_
;
80
std::unique_ptr<Worker>
results_inserter_
;
81
GlobalTaskGroup
&
taskGroup_
;
82
};
83
}
// namespace art
84
85
// Local Variables:
86
// mode: c++
87
// End:
88
89
#endif
/* art_Framework_Core_TriggerPathsExecutor_h */
art::PathsInfo
Definition:
PathsInfo.h:16
Worker.h
art::TriggerPathsExecutor::sc_
ScheduleContext const sc_
Definition:
TriggerPathsExecutor.h:76
art::Principal
Definition:
Principal.h:49
art::TriggerPathsExecutor::results_inserter_
std::unique_ptr< Worker > results_inserter_
Definition:
TriggerPathsExecutor.h:80
art::ActionTable
Definition:
Actions.h:15
Transition.h
art::PathManager
Definition:
PathManager.h:50
art::Worker
Definition:
Worker.h:47
fwd.h
art::TriggerPathsExecutor::actReg_
ActivityRegistry const & actReg_
Definition:
TriggerPathsExecutor.h:78
art::TriggerPathsExecutor::actionTable_
ActionTable const & actionTable_
Definition:
TriggerPathsExecutor.h:77
art::TriggerPathsExecutor
Definition:
TriggerPathsExecutor.h:43
ScheduleContext.h
art::Transition
Transition
Definition:
Transition.h:7
breakpoints::beginJob
void beginJob()
Definition:
Breakpoints.cc:14
fwd.h
art::GlobalTaskGroup
Definition:
GlobalTaskGroup.h:11
art::ScheduleContext
Definition:
ScheduleContext.h:7
art::ActivityRegistry
Definition:
ActivityRegistry.h:52
art::EventPrincipal
Definition:
EventPrincipal.h:17
art
Definition:
MVAAlg.h:12
art::FileBlock
Definition:
FileBlock.h:17
art::ScheduleID
Definition:
ScheduleID.h:17
art::TriggerPathsExecutor::triggerPathsInfo_
PathsInfo & triggerPathsInfo_
Definition:
TriggerPathsExecutor.h:79
art::detail::SharedResources
Definition:
SharedResource.h:31
art::TriggerPathsExecutor::taskGroup_
GlobalTaskGroup & taskGroup_
Definition:
TriggerPathsExecutor.h:81
ScheduleID.h
art::TriggerPathsExecutor::PathsDoneTask
Definition:
TriggerPathsExecutor.cc:168
art
Framework
Core
TriggerPathsExecutor.h
Generated on Thu May 2 2024 20:59:29 for LArSoft by
1.8.11