CMS 3D CMS Logo

TestProcessor.h
Go to the documentation of this file.
1 #ifndef FWCore_TestProcessor_TestProcessor_h
2 #define FWCore_TestProcessor_TestProcessor_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/TestProcessor
6 // Class : TestProcessor
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Mon, 30 Apr 2018 18:51:00 GMT
19 //
20 
21 // system include files
22 #include <string>
23 #include <utility>
24 #include <memory>
25 #include "tbb/global_control.h"
26 #include "tbb/task_arena.h"
27 #include "tbb/task_group.h"
28 
29 // user include files
42 
46 
55 
57 
58 // forward declarations
59 
60 namespace edm {
61  class ThinnedAssociationsHelper;
62  class ExceptionToActionTable;
63  class HistoryAppender;
64 
65  namespace eventsetup {
66  class EventSetupProvider;
67  class EventSetupsController;
68  } // namespace eventsetup
69 
70  namespace test {
71  class TestProcessorConfig;
73 
74  class ProcessToken {
76 
77  public:
79 
80  int index() const { return index_; }
81 
82  static int undefinedIndex() { return -1; }
83 
84  private:
85  explicit ProcessToken(int index) : index_{index} {}
86 
87  int index_;
88  };
89 
91  public:
92  TestProcessorConfig(std::string const& iPythonConfiguration) : config_(iPythonConfiguration) {}
93  std::string const& pythonConfiguration() const { return config_; }
94  void setPythonConfiguration(std::string iConfig) { config_ = std::move(iConfig); }
95 
98  ProcessToken addExtraProcess(std::string const& iProcessName) {
99  extraProcesses_.emplace_back(iProcessName);
100  return ProcessToken(extraProcesses_.size() - 1);
101  }
102 
103  std::vector<std::string> const& extraProcesses() const { return extraProcesses_; }
104 
108  template <typename T>
110  std::string iProductInstanceLabel = std::string(),
111  ProcessToken iToken = ProcessToken()) {
112  produceEntries_.emplace_back(
113  edm::TypeID(typeid(T)), std::move(iModuleLabel), std::move(iProductInstanceLabel), processName(iToken));
114  return edm::EDPutTokenT<T>(produceEntries_.size() - 1);
115  }
116 
117  template <typename REC, typename T>
119  auto rk = eventsetup::EventSetupRecordKey::makeKey<REC>();
120  eventsetup::DataKey dk(eventsetup::DataKey::makeTypeTag<T>(), iLabel.c_str());
121  esProduceEntries_.emplace_back(rk, dk, std::make_shared<TestDataProxy<T>>());
122  return edm::test::ESPutTokenT<T>(esProduceEntries_.size() - 1);
123  }
124 
125  struct ProduceEntry {
126  ProduceEntry(edm::TypeID const& iType,
128  std::string instanceLabel,
130  : type_{iType},
132  instanceLabel_{std::move(instanceLabel)},
138  };
139 
140  std::vector<ProduceEntry> const& produceEntries() const { return produceEntries_; }
141 
142  std::vector<ESProduceEntry> const& esProduceEntries() const { return esProduceEntries_; }
143 
144  private:
146  std::vector<std::string> extraProcesses_;
147  std::vector<ProduceEntry> produceEntries_;
148  std::vector<ESProduceEntry> esProduceEntries_;
149 
151  if (iToken.index() == ProcessToken::undefinedIndex()) {
152  return std::string();
153  }
154  return extraProcesses_[iToken.index()];
155  }
156  };
157 
159  public:
161 
162  TestProcessor(Config const& iConfig, ServiceToken iToken = ServiceToken());
163  TestProcessor(const TestProcessor&) = delete;
164  const TestProcessor& operator=(const TestProcessor&) = delete;
165  ~TestProcessor() noexcept(false);
166 
170  template <typename... T>
171  edm::test::Event test(T&&... iArgs) {
172  return testImpl(std::forward<T>(iArgs)...);
173  }
174 
175  template <typename... T>
177  return testBeginLuminosityBlockImpl(iNum, std::forward<T>(iArgs)...);
178  }
179  template <typename... T>
181  return testEndLuminosityBlockImpl(std::forward<T>(iArgs)...);
182  }
183 
184  template <typename... T>
186  return testBeginRunImpl(iNum, std::forward<T>(iArgs)...);
187  }
188  template <typename... T>
190  return testEndRunImpl(std::forward<T>(iArgs)...);
191  }
192 
193  // It makes no sense to pass EventSetup products and at least
194  // for now Runs, Lumis, and ProcessBlocks don't allow passing
195  // in other products. So for now these don't need to be templates
196  // for ProcessBlock.
198 
200 
205  arena_.execute([this]() {
206  beginJob();
207  endJob();
208  });
209  }
210 
211  void testWithNoRuns() {
212  arena_.execute([this]() {
213  beginJob();
215  endProcessBlock();
216  endJob();
217  });
218  }
219 
221  arena_.execute([this]() {
222  beginJob();
224  beginRun();
225  endRun();
226  endProcessBlock();
227  endJob();
228  });
229  }
230 
232  arena_.execute([this]() {
233  beginJob();
235  beginRun();
238  endRun();
239  endProcessBlock();
240  endJob();
241  });
242  }
246 
248 
249  private:
250  template <typename T, typename... U>
251  edm::test::Event testImpl(std::pair<edm::EDPutTokenT<T>, std::unique_ptr<T>>&& iPut, U&&... iArgs) {
252  put(std::move(iPut));
253  return testImpl(std::forward<U>(iArgs)...);
254  }
255 
256  template <typename T, typename... U>
257  edm::test::Event testImpl(std::pair<edm::test::ESPutTokenT<T>, std::unique_ptr<T>>&& iPut, U&&... iArgs) {
258  put(std::move(iPut));
259  return testImpl(std::forward<U>(iArgs)...);
260  }
261 
262  template <typename T>
263  void put(std::pair<edm::EDPutTokenT<T>, std::unique_ptr<T>>&& iPut) {
264  put(iPut.first.index(), std::make_unique<edm::Wrapper<T>>(std::move(iPut.second)));
265  }
266 
267  template <typename T>
268  void put(std::pair<edm::test::ESPutTokenT<T>, std::unique_ptr<T>>&& iPut) {
269  dynamic_cast<TestDataProxy<T>*>(esHelper_->getProxy(iPut.first.index()).get())->setData(std::move(iPut.second));
270  }
271 
272  void put(unsigned int, std::unique_ptr<WrapperBase>);
273 
275 
276  template <typename T, typename... U>
279  std::pair<edm::test::ESPutTokenT<T>, std::unique_ptr<T>>&& iPut,
280  U&&... iArgs) {
281  put(std::move(iPut));
282  return testBeginLuminosityBlockImpl(iNum, std::forward<U>(iArgs)...);
283  }
285 
286  template <typename T, typename... U>
288  std::pair<edm::test::ESPutTokenT<T>, std::unique_ptr<T>>&& iPut, U&&... iArgs) {
289  put(std::move(iPut));
290  return testEndLuminosityBlockImpl(std::forward<U>(iArgs)...);
291  }
293 
294  template <typename T, typename... U>
296  std::pair<edm::test::ESPutTokenT<T>, std::unique_ptr<T>>&& iPut,
297  U&&... iArgs) {
298  put(std::move(iPut));
299  return testBeginRunImpl(iNum, std::forward<U>(iArgs)...);
300  }
302  template <typename T, typename... U>
304  U&&... iArgs) {
305  put(std::move(iPut));
306  return testEndRunImpl(std::forward<U>(iArgs)...);
307  }
309 
312 
313  void setupProcessing();
314  void teardownProcessing();
315 
316  void beginJob();
317  void beginProcessBlock();
318  void beginRun();
319  void beginLuminosityBlock();
320  void event();
321  std::shared_ptr<LuminosityBlockPrincipal> endLuminosityBlock();
322  std::shared_ptr<RunPrincipal> endRun();
324  void endJob();
325 
326  // ---------- member data --------------------------------
327  tbb::global_control globalControl_;
328  tbb::task_group taskGroup_;
329  tbb::task_arena arena_;
331  std::shared_ptr<ActivityRegistry> actReg_; // We do not use propagate_const because the registry itself is mutable.
332  std::shared_ptr<ProductRegistry> preg_;
333  std::shared_ptr<BranchIDListHelper> branchIDListHelper_;
334  std::shared_ptr<ThinnedAssociationsHelper> thinnedAssociationsHelper_;
336  std::unique_ptr<eventsetup::EventSetupsController> espController_;
337  std::shared_ptr<eventsetup::EventSetupProvider> esp_;
338  std::shared_ptr<EventSetupTestHelper> esHelper_;
339 
340  std::unique_ptr<ExceptionToActionTable const> act_table_;
341  std::shared_ptr<ProcessConfiguration const> processConfiguration_;
343 
345  std::unique_ptr<HistoryAppender> historyAppender_;
346 
349 
350  std::shared_ptr<ModuleRegistry> moduleRegistry_;
351  std::unique_ptr<Schedule> schedule_;
352  std::shared_ptr<LuminosityBlockPrincipal> lumiPrincipal_;
353 
354  std::vector<std::pair<edm::BranchDescription, std::unique_ptr<WrapperBase>>> dataProducts_;
355 
359  bool beginJobCalled_ = false;
361  bool beginRunCalled_ = false;
362  bool beginLumiCalled_ = false;
363  };
364  } // namespace test
365 } // namespace edm
366 
367 #endif
edm::test::TestProcessor::put
void put(std::pair< edm::test::ESPutTokenT< T >, std::unique_ptr< T >> &&iPut)
Definition: TestProcessor.h:268
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
edm::test::TestProcessorConfig::extraProcesses_
std::vector< std::string > extraProcesses_
Definition: TestProcessor.h:146
edm::test::TestProcessor::setLuminosityBlockNumber
void setLuminosityBlockNumber(edm::LuminosityBlockNumber_t)
Definition: TestProcessor.cc:766
edm::test::ProcessToken
Definition: TestProcessor.h:74
edm::test::TestProcessorConfig::addExtraProcess
ProcessToken addExtraProcess(std::string const &iProcessName)
Definition: TestProcessor.h:98
edm::test::TestProcessor::labelOfTestModule
std::string const & labelOfTestModule() const
Definition: TestProcessor.h:247
funct::false
false
Definition: Factorize.h:29
edm::test::TestProcessor::~TestProcessor
~TestProcessor() noexcept(false)
Definition: TestProcessor.cc:199
edm::test::TestProcessor::thinnedAssociationsHelper_
std::shared_ptr< ThinnedAssociationsHelper > thinnedAssociationsHelper_
Definition: TestProcessor.h:334
edm::test::TestProcessor::TestProcessor
TestProcessor(Config const &iConfig, ServiceToken iToken=ServiceToken())
Definition: TestProcessor.cc:81
edm::test::TestProcessor::testLuminosityBlockWithNoEvents
void testLuminosityBlockWithNoEvents()
Definition: TestProcessor.h:231
edm::test::TestProcessor::globalControl_
tbb::global_control globalControl_
Definition: TestProcessor.h:327
edm::test::TestProcessor::testImpl
edm::test::Event testImpl(std::pair< edm::EDPutTokenT< T >, std::unique_ptr< T >> &&iPut, U &&... iArgs)
Definition: TestProcessor.h:251
edm::test::TestProcessorConfig::ProduceEntry::type_
edm::TypeID type_
Definition: TestProcessor.h:134
edm::test::TestProcessor::setRunNumber
void setRunNumber(edm::RunNumber_t)
Definition: TestProcessor.cc:759
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::test::TestProcessor::testEndRunImpl
edm::test::Run testEndRunImpl()
Definition: TestProcessor.cc:306
edm::test::ProcessToken::ProcessToken
ProcessToken()
Definition: TestProcessor.h:78
edm::EDPutTokenT
Definition: EDPutToken.h:33
edm::ProcessContext
Definition: ProcessContext.h:27
edm::test::TestProcessorConfig::esProduces
edm::test::ESPutTokenT< T > esProduces(std::string iLabel=std::string())
Definition: TestProcessor.h:118
RunLumiEventNumber.h
edm::test::TestProcessor::testBeginLuminosityBlockImpl
edm::test::LuminosityBlock testBeginLuminosityBlockImpl(edm::LuminosityBlockNumber_t iNum, std::pair< edm::test::ESPutTokenT< T >, std::unique_ptr< T >> &&iPut, U &&... iArgs)
Definition: TestProcessor.h:277
edm::test::TestProcessor::processHistoryRegistry_
ProcessHistoryRegistry processHistoryRegistry_
Definition: TestProcessor.h:344
edm::test::TestProcessor::testBeginProcessBlock
edm::test::ProcessBlock testBeginProcessBlock()
Definition: TestProcessor.h:197
edm::test::TestProcessorConfig::produceEntries_
std::vector< ProduceEntry > produceEntries_
Definition: TestProcessor.h:147
edm::test::TestProcessorConfig::processName
std::string processName(ProcessToken iToken)
Definition: TestProcessor.h:150
edm::eventsetup::DataKey
Definition: DataKey.h:29
SignallingProductRegistry.h
edm::test::TestProcessor::labelOfTestModule_
std::string labelOfTestModule_
Definition: TestProcessor.h:330
ProcessHistoryRegistry.h
ServiceToken.h
edm::test::Run
Definition: Run.h:35
PreallocationConfiguration.h
edm::test::TestProcessorConfig::produceEntries
std::vector< ProduceEntry > const & produceEntries() const
Definition: TestProcessor.h:140
edm::test::TestProcessor::beginRunCalled_
bool beginRunCalled_
Definition: TestProcessor.h:361
edm::test::TestProcessor::serviceToken_
ServiceToken serviceToken_
Definition: TestProcessor.h:335
edm::test::TestProcessor::testBeginLuminosityBlock
edm::test::LuminosityBlock testBeginLuminosityBlock(edm::LuminosityBlockNumber_t iNum, T &&... iArgs)
Definition: TestProcessor.h:176
edm::test::TestProcessor::processConfiguration_
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: TestProcessor.h:341
edm::LuminosityBlockNumber_t
unsigned int LuminosityBlockNumber_t
Definition: RunLumiEventNumber.h:13
edm::test::TestProcessor::endLuminosityBlock
std::shared_ptr< LuminosityBlockPrincipal > endLuminosityBlock()
Definition: TestProcessor.cc:585
edm::test::TestProcessor::lumiPrincipal_
std::shared_ptr< LuminosityBlockPrincipal > lumiPrincipal_
Definition: TestProcessor.h:352
edm::test::ProcessToken::index_
int index_
Definition: TestProcessor.h:87
edm::test::TestProcessor::testEndProcessBlockImpl
edm::test::ProcessBlock testEndProcessBlockImpl()
Definition: TestProcessor.cc:340
edm::ProcessBlockPrincipal
Definition: ProcessBlockPrincipal.h:22
edm::test::LuminosityBlock
Definition: LuminosityBlock.h:35
edm::test::TestProcessorConfig
Definition: TestProcessor.h:90
edm::test::TestProcessor::testEndLuminosityBlock
edm::test::LuminosityBlock testEndLuminosityBlock(T &&... iArgs)
Definition: TestProcessor.h:180
ESProduceEntry.h
edm::test::ESPutTokenT
Definition: ESPutTokenT.h:31
edm::test::TestProcessor::runNumber_
RunNumber_t runNumber_
Definition: TestProcessor.h:356
ActivityRegistry.h
edm::test::TestProcessor::beginRun
void beginRun()
Definition: TestProcessor.cc:444
edm::test::TestProcessor::testBeginProcessBlockImpl
edm::test::ProcessBlock testBeginProcessBlockImpl()
Definition: TestProcessor.cc:330
SharedResourcesAcquirer.h
edm::ServiceToken
Definition: ServiceToken.h:42
test
Definition: SmallWORMDict.h:13
LuminosityBlock.h
edm::test::ProcessToken::TestProcessorConfig
friend TestProcessorConfig
Definition: TestProcessor.h:75
edm::PrincipalCache
Definition: PrincipalCache.h:48
edm::test::TestProcessor::beginLumiCalled_
bool beginLumiCalled_
Definition: TestProcessor.h:362
edm::test::TestProcessor::testEndProcessBlock
edm::test::ProcessBlock testEndProcessBlock()
Definition: TestProcessor.h:199
edm::test::TestProcessor::setupProcessing
void setupProcessing()
Definition: TestProcessor.cc:353
edm::test::TestProcessorConfig::config_
std::string config_
Definition: TestProcessor.h:145
ESPutTokenT.h
edm::test::TestProcessor::historyAppender_
std::unique_ptr< HistoryAppender > historyAppender_
Definition: TestProcessor.h:345
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
edm::test::TestProcessor::preg_
std::shared_ptr< ProductRegistry > preg_
Definition: TestProcessor.h:332
edm::test::TestProcessor::testEndRun
edm::test::Run testEndRun(T &&... iArgs)
Definition: TestProcessor.h:189
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
edm::test::TestProcessor::dataProducts_
std::vector< std::pair< edm::BranchDescription, std::unique_ptr< WrapperBase > > > dataProducts_
Definition: TestProcessor.h:354
edm::test::TestProcessor::beginJob
void beginJob()
Definition: TestProcessor.cc:393
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::test::ProcessToken::undefinedIndex
static int undefinedIndex()
Definition: TestProcessor.h:82
edm::test::TestProcessorConfig::ProduceEntry::processName_
std::string processName_
Definition: TestProcessor.h:137
edm::test::TestDataProxy
Definition: TestDataProxy.h:34
edm::test::ProcessToken::ProcessToken
ProcessToken(int index)
Definition: TestProcessor.h:85
edm::test::TestProcessorConfig::TestProcessorConfig
TestProcessorConfig(std::string const &iPythonConfiguration)
Definition: TestProcessor.h:92
PrincipalCache.h
edm::test::TestProcessorConfig::ProduceEntry::instanceLabel_
std::string instanceLabel_
Definition: TestProcessor.h:136
edm::test::Event
Definition: Event.h:36
edm::test::TestProcessor::testBeginRunImpl
edm::test::Run testBeginRunImpl(edm::RunNumber_t iNum, std::pair< edm::test::ESPutTokenT< T >, std::unique_ptr< T >> &&iPut, U &&... iArgs)
Definition: TestProcessor.h:295
edm::test::TestProcessor::testWithNoRuns
void testWithNoRuns()
Definition: TestProcessor.h:211
EDPutToken.h
EventSetupTestHelper
edm::test::TestProcessor::processContext_
ProcessContext processContext_
Definition: TestProcessor.h:342
edm::test::TestProcessor::taskGroup_
tbb::task_group taskGroup_
Definition: TestProcessor.h:328
edm::test::TestProcessor::endRun
std::shared_ptr< RunPrincipal > endRun()
Definition: TestProcessor.cc:642
DataKey.h
edm::test::TestProcessor::testEndLuminosityBlockImpl
edm::test::LuminosityBlock testEndLuminosityBlockImpl()
Definition: TestProcessor.cc:256
edm::get
T const & get(Event const &event, InputTag const &tag) noexcept(false)
Definition: Event.h:675
edm::test::TestProcessor::arena_
tbb::task_arena arena_
Definition: TestProcessor.h:329
edm::test::TestProcessor::eventNumber_
EventNumber_t eventNumber_
Definition: TestProcessor.h:358
Schedule.h
edm::test::TestProcessorConfig::pythonConfiguration
std::string const & pythonConfiguration() const
Definition: TestProcessor.h:93
edm::test::TestProcessor::testBeginAndEndJobOnly
void testBeginAndEndJobOnly()
Definition: TestProcessor.h:204
edm::test::TestProcessorConfig::ProduceEntry::moduleLabel_
std::string moduleLabel_
Definition: TestProcessor.h:135
edm::test::TestProcessor::branchIDListHelper_
std::shared_ptr< BranchIDListHelper > branchIDListHelper_
Definition: TestProcessor.h:333
edm::test::TestProcessor::put
void put(std::pair< edm::EDPutTokenT< T >, std::unique_ptr< T >> &&iPut)
Definition: TestProcessor.h:263
edm::test::TestProcessor::beginJobCalled_
bool beginJobCalled_
Definition: TestProcessor.h:359
edm::test::TestProcessor
Definition: TestProcessor.h:158
svgfig.template
def template(fileName, svg, replaceme="REPLACEME")
Definition: svgfig.py:521
edm::test::TestProcessor::esHelper_
std::shared_ptr< EventSetupTestHelper > esHelper_
Definition: TestProcessor.h:338
ProcessBlock.h
edm::test::TestProcessor::actReg_
std::shared_ptr< ActivityRegistry > actReg_
Definition: TestProcessor.h:331
edm::test::TestProcessor::setEventNumber
void setEventNumber(edm::EventNumber_t)
Definition: TestProcessor.cc:771
edm::PreallocationConfiguration
Definition: PreallocationConfiguration.h:27
edm::test::TestProcessor::testEndRunImpl
edm::test::LuminosityBlock testEndRunImpl(std::pair< edm::test::ESPutTokenT< T >, std::unique_ptr< T >> &&iPut, U &&... iArgs)
Definition: TestProcessor.h:303
edm::test::TestProcessorConfig::extraProcesses
std::vector< std::string > const & extraProcesses() const
Definition: TestProcessor.h:103
Run.h
edm::test::TestProcessor::testEndLuminosityBlockImpl
edm::test::LuminosityBlock testEndLuminosityBlockImpl(std::pair< edm::test::ESPutTokenT< T >, std::unique_ptr< T >> &&iPut, U &&... iArgs)
Definition: TestProcessor.h:287
ModuleRegistry.h
edm::TypeID
Definition: TypeID.h:22
edm::test::TestProcessor::testRunWithNoLuminosityBlocks
void testRunWithNoLuminosityBlocks()
Definition: TestProcessor.h:220
Wrapper.h
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::test::TestProcessor::operator=
const TestProcessor & operator=(const TestProcessor &)=delete
Event.h
edm::test::TestProcessor::esp_
std::shared_ptr< eventsetup::EventSetupProvider > esp_
Definition: TestProcessor.h:337
edm::test::TestProcessor::testImpl
edm::test::Event testImpl()
Definition: TestProcessor.cc:213
edm::test::TestProcessor::schedule_
std::unique_ptr< Schedule > schedule_
Definition: TestProcessor.h:351
T
long double T
Definition: Basic3DVectorLD.h:48
ServiceLegacy.h
edm::test::TestProcessor::beginProcessBlock
void beginProcessBlock()
Definition: TestProcessor.cc:423
edm::test::TestProcessorConfig::setPythonConfiguration
void setPythonConfiguration(std::string iConfig)
Definition: TestProcessor.h:94
edm::test::ProcessBlock
Definition: ProcessBlock.h:31
edm::test::TestProcessor::espController_
std::unique_ptr< eventsetup::EventSetupsController > espController_
Definition: TestProcessor.h:336
edm::ProcessHistoryRegistry
Definition: ProcessHistoryRegistry.h:18
edm::test::ProcessToken::index
int index() const
Definition: TestProcessor.h:80
edm::test::TestProcessor::teardownProcessing
void teardownProcessing()
Definition: TestProcessor.cc:368
edm::test::TestProcessor::testBeginRun
edm::test::Run testBeginRun(edm::RunNumber_t iNum, T &&... iArgs)
Definition: TestProcessor.h:185
edm::test::TestProcessor::event
void event()
Definition: TestProcessor.cc:546
edm::test::TestProcessorConfig::esProduceEntries_
std::vector< ESProduceEntry > esProduceEntries_
Definition: TestProcessor.h:148
edm::test::TestProcessor::testImpl
edm::test::Event testImpl(std::pair< edm::test::ESPutTokenT< T >, std::unique_ptr< T >> &&iPut, U &&... iArgs)
Definition: TestProcessor.h:257
edm::test::TestProcessor::beginProcessBlockCalled_
bool beginProcessBlockCalled_
Definition: TestProcessor.h:360
HerwigMaxPtPartonFilter_cfi.moduleLabel
moduleLabel
Definition: HerwigMaxPtPartonFilter_cfi.py:4
Config
Definition: Config.py:1
EventSetupRecordKey.h
edm::test::TestProcessorConfig::ProduceEntry
Definition: TestProcessor.h:125
edm::test::TestProcessor::endJob
void endJob()
Definition: TestProcessor.cc:733
ProcessContext.h
edm::test::TestProcessor::moduleRegistry_
std::shared_ptr< ModuleRegistry > moduleRegistry_
Definition: TestProcessor.h:350
edm::test::TestProcessor::beginLuminosityBlock
void beginLuminosityBlock()
Definition: TestProcessor.cc:494
edm::test::TestProcessor::endProcessBlock
ProcessBlockPrincipal const * endProcessBlock()
Definition: TestProcessor.cc:705
edm::test::TestProcessor::principalCache_
PrincipalCache principalCache_
Definition: TestProcessor.h:347
edm::test::TestProcessorConfig::esProduceEntries
std::vector< ESProduceEntry > const & esProduceEntries() const
Definition: TestProcessor.h:142
edm::test::TestProcessor::lumiNumber_
LuminosityBlockNumber_t lumiNumber_
Definition: TestProcessor.h:357
edm::test::TestProcessorConfig::produces
edm::EDPutTokenT< T > produces(std::string iModuleLabel, std::string iProductInstanceLabel=std::string(), ProcessToken iToken=ProcessToken())
Definition: TestProcessor.h:109
EventSetupTestHelper.h
edm::test::TestProcessor::act_table_
std::unique_ptr< ExceptionToActionTable const > act_table_
Definition: TestProcessor.h:340
TestDataProxy.h
edm::test::TestProcessor::preallocations_
PreallocationConfiguration preallocations_
Definition: TestProcessor.h:348
edm::test::TestProcessorConfig::ProduceEntry::ProduceEntry
ProduceEntry(edm::TypeID const &iType, std::string moduleLabel, std::string instanceLabel, std::string processName)
Definition: TestProcessor.h:126