ResultsProducer.cc
Go to the documentation of this file.
2 // vim: set sw=2 expandtab :
3 
12 
13 #include <string>
14 
15 using namespace hep::concurrency;
16 using namespace std;
17 
19  "ResultsProducer";
20 
21 namespace art {
22 
23  ResultsProducer::ResultsProducer() noexcept(false)
24  : ProductRegistryHelper{product_creation_mode::produces}
25  {
26  serialize(detail::LegacyResource);
27  }
28 
29  void
30  ResultsProducer::registerProducts(ProductDescriptions& productsToProduce,
31  ModuleDescription const& md)
32  {
33  ProductRegistryHelper::registerProducts(productsToProduce, md);
34  setModuleDescription(md);
35  }
36 
37  void
38  ResultsProducer::doBeginJob()
39  {
40  // If results producers ever become eligible for multi-threaded
41  // execution, the serial task queues will need to be setup here.
42  beginJob();
43  }
44 
45  void
46  ResultsProducer::doEndJob()
47  {
48  endJob();
49  }
50 
51  void
52  ResultsProducer::doBeginRun(RunPrincipal const& rp)
53  {
54  ModuleContext const mc{moduleDescription()};
55  Run const r{rp, mc};
56  beginRun(r);
57  }
58 
59  void
60  ResultsProducer::doEndRun(RunPrincipal const& rp)
61  {
62  ModuleContext const mc{moduleDescription()};
63  Run const r{rp, mc};
64  endRun(r);
65  }
66 
67  void
68  ResultsProducer::doBeginSubRun(SubRunPrincipal const& srp)
69  {
70  ModuleContext const mc{moduleDescription()};
71  SubRun const sr{srp, mc};
72  beginSubRun(sr);
73  }
74 
75  void
76  ResultsProducer::doEndSubRun(SubRunPrincipal const& srp)
77  {
78  ModuleContext const mc{moduleDescription()};
79  SubRun const sr{srp, mc};
80  endSubRun(sr);
81  }
82 
83  void
84  ResultsProducer::doEvent(EventPrincipal const& ep)
85  {
86  ModuleContext const mc{moduleDescription()};
87  Event const e{ep, mc};
88  event(e);
89  }
90 
91  void
92  ResultsProducer::doReadResults(ResultsPrincipal const& resp)
93  {
94  ModuleContext const mc{moduleDescription()};
95  Results const res{resp, mc};
96  readResults(res);
97  }
98 
99  void
100  ResultsProducer::doWriteResults(ResultsPrincipal& resp)
101  {
102  ModuleContext const mc{moduleDescription()};
103  Results res{resp, mc};
104  writeResults(res);
105  res.movePutProductsToPrincipal(resp);
106  }
107 
108  void
109  ResultsProducer::doClear()
110  {
111  clear();
112  }
113 
114  // Virtual functions to be overridden by users
115  void
116  ResultsProducer::readResults(Results const&)
117  {}
118 
119  void
121  {}
122 
123  void
124  ResultsProducer::endJob()
125  {}
126 
127  void
128  ResultsProducer::beginRun(Run const&)
129  {}
130 
131  void
132  ResultsProducer::endRun(Run const&)
133  {}
134 
135  void
136  ResultsProducer::beginSubRun(SubRun const&)
137  {}
138 
139  void
140  ResultsProducer::endSubRun(SubRun const&)
141  {}
142 
143  void
145  {}
146 
147 } // namespace art
STL namespace.
std::vector< BranchDescription > ProductDescriptions
Definition: Run.h:17
SharedResource_t const LegacyResource
const double e
void beginJob()
Definition: Breakpoints.cc:14
vector< vector< double > > clear
static constexpr double sr
Definition: Units.h:166