CMS 3D CMS Logo

TestProcessor.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Subsystem/Package
4 // Class : TestProcessor
5 //
6 // Implementation:
7 // [Notes on implementation]
8 //
9 // Original Author: root
10 // Created: Mon, 30 Apr 2018 18:51:08 GMT
11 //
12 
13 // system include files
14 
15 // user include files
18 
30 
33 
36 
40 
42 
44 
45 #include "tbb/task_scheduler_init.h"
46 
47 #define xstr(s) str(s)
48 #define str(s) #s
49 
50 namespace edm {
51  namespace test {
52 
53  //
54  // constants, enums and typedefs
55  //
56 
57  //
58  // static data member definitions
59  //
60  namespace {
61 
62  bool oneTimeInitializationImpl() {
64 
65  static std::unique_ptr<tbb::task_scheduler_init> tsiPtr = std::make_unique<tbb::task_scheduler_init>(1);
66 
67  // register the empty parentage vector , once and for all
69 
70  // register the empty parameter set, once and for all.
71  ParameterSet().registerIt();
72  return true;
73  }
74 
75  bool oneTimeInitialization() {
76  static const bool s_init{oneTimeInitializationImpl()};
77  return s_init;
78  }
79  } // namespace
80 
81  //
82  // constructors and destructor
83  //
85  : espController_(std::make_unique<eventsetup::EventSetupsController>()),
86  historyAppender_(std::make_unique<HistoryAppender>()),
87  moduleRegistry_(std::make_shared<ModuleRegistry>()) {
88  //Setup various singletons
89  (void)oneTimeInitialization();
90 
91  ProcessDescImpl desc(iConfig.pythonConfiguration());
92 
93  auto psetPtr = desc.parameterSet();
94 
95  validateTopLevelParameterSets(psetPtr.get());
96 
97  labelOfTestModule_ = psetPtr->getParameter<std::string>("@moduleToTest");
98 
99  auto procDesc = desc.processDesc();
100  // Now do general initialization
102 
103  //initialize the services
104  auto& serviceSets = procDesc->getServicesPSets();
105  ServiceToken token = items.initServices(serviceSets, *psetPtr, iToken, serviceregistry::kOverlapIsError, true);
106  serviceToken_ = items.addCPRandTNS(*psetPtr, token);
107 
108  //make the services available
110 
111  // intialize miscellaneous items
112  std::shared_ptr<CommonParams> common(items.initMisc(*psetPtr));
113 
114  // intialize the event setup provider
115  esp_ = espController_->makeProvider(*psetPtr, items.actReg_.get());
116 
117  auto nThreads = 1U;
118  auto nStreams = 1U;
119  auto nConcurrentLumis = 1U;
120  auto nConcurrentRuns = 1U;
121  preallocations_ = PreallocationConfiguration{nThreads, nStreams, nConcurrentLumis, nConcurrentRuns};
122 
123  espController_->setMaxConcurrentIOVs(nStreams, nConcurrentLumis);
124  if (not iConfig.esProduceEntries().empty()) {
125  esHelper_ = std::make_unique<EventSetupTestHelper>(iConfig.esProduceEntries());
126  esp_->add(std::dynamic_pointer_cast<eventsetup::DataProxyProvider>(esHelper_));
127  esp_->add(std::dynamic_pointer_cast<EventSetupRecordIntervalFinder>(esHelper_));
128  }
129 
130  preg_ = items.preg();
131  processConfiguration_ = items.processConfiguration();
132 
133  edm::ParameterSet emptyPSet;
134  emptyPSet.registerIt();
135  auto psetid = emptyPSet.id();
136 
137  ProcessHistory oldHistory;
138  for (auto const& p : iConfig.extraProcesses()) {
139  oldHistory.emplace_back(p, psetid, xstr(PROJECT_VERSION), "0");
141  }
142 
143  //setup the products we will be adding to the event
144  for (auto const& produce : iConfig.produceEntries()) {
145  auto processName = produce.processName_;
146  if (processName.empty()) {
147  processName = processConfiguration_->processName();
148  }
149  edm::TypeWithDict twd(produce.type_.typeInfo());
151  produce.moduleLabel_,
152  processName,
153  twd.userClassName(),
154  twd.friendlyClassName(),
155  produce.instanceLabel_,
156  "",
157  psetid,
158  twd,
159  true //force this to come from 'source'
160  );
161  product.init();
162  dataProducts_.emplace_back(product, std::unique_ptr<WrapperBase>());
163  preg_->addProduct(product);
164  }
165 
166  schedule_ = items.initSchedule(*psetPtr, false, preallocations_, &processContext_);
167  // set the data members
168  act_table_ = std::move(items.act_table_);
169  actReg_ = items.actReg_;
170  branchIDListHelper_ = items.branchIDListHelper();
171  thinnedAssociationsHelper_ = items.thinnedAssociationsHelper();
174 
176 
177  preg_->setFrozen();
178  for (unsigned int index = 0; index < preallocations_.numberOfStreams(); ++index) {
179  // Reusable event principal
180  auto ep = std::make_shared<EventPrincipal>(preg_,
184  historyAppender_.get(),
185  index);
187  }
188 
189  for (unsigned int index = 0; index < preallocations_.numberOfLuminosityBlocks(); ++index) {
190  auto lp =
191  std::make_unique<LuminosityBlockPrincipal>(preg_, *processConfiguration_, historyAppender_.get(), index);
193  }
194  }
195 
197  //
198  // member functions
199  //
200 
201  void TestProcessor::put(unsigned int index, std::unique_ptr<WrapperBase> iWrapper) {
202  if (index >= dataProducts_.size()) {
203  throw cms::Exception("LogicError") << "Products must be declared to the TestProcessor::Config object\n"
204  "with a call to the function \'produces\' BEFORE passing the\n"
205  "TestProcessor::Config object to the TestProcessor constructor";
206  }
207  dataProducts_[index].second = std::move(iWrapper);
208  }
209 
211  setupProcessing();
212  event();
213 
214  bool result = schedule_->totalEventsPassed() > 0;
215  schedule_->clearCounters();
216  if (esHelper_) {
217  //We want each test to have its own ES data products
218  esHelper_->resetAllProxies();
219  }
220  return edm::test::Event(
222  }
223 
225  if (not beginJobCalled_) {
226  beginJob();
227  }
228  if (not beginRunCalled_) {
229  beginRun();
230  }
231  if (beginLumiCalled_) {
233  assert(lumiNumber_ != iNum);
234  }
235  lumiNumber_ = iNum;
237 
238  if (esHelper_) {
239  //We want each test to have its own ES data products
240  esHelper_->resetAllProxies();
241  }
242 
244  }
245 
247  if (not beginJobCalled_) {
248  beginJob();
249  }
250  if (not beginRunCalled_) {
251  beginRun();
252  }
253  if (not beginLumiCalled_) {
255  }
256  auto lumi = endLuminosityBlock();
257 
258  if (esHelper_) {
259  //We want each test to have its own ES data products
260  esHelper_->resetAllProxies();
261  }
262 
264  }
265 
267  if (not beginJobCalled_) {
268  beginJob();
269  }
270 
271  if (beginRunCalled_) {
272  assert(runNumber_ != iNum);
273  endRun();
274  }
275  runNumber_ = iNum;
276  beginRun();
277 
278  if (esHelper_) {
279  //We want each test to have its own ES data products
280  esHelper_->resetAllProxies();
281  }
282 
283  return edm::test::Run(
285  }
287  if (not beginJobCalled_) {
288  beginJob();
289  }
290  if (not beginRunCalled_) {
291  beginRun();
292  }
293  auto rp = endRun();
294 
295  if (esHelper_) {
296  //We want each test to have its own ES data products
297  esHelper_->resetAllProxies();
298  }
299 
300  return edm::test::Run(rp, labelOfTestModule_, processConfiguration_->processName());
301  }
302 
304  if (not beginJobCalled_) {
305  beginJob();
306  }
307  if (not beginRunCalled_) {
308  beginRun();
309  }
310  if (not beginLumiCalled_) {
312  }
313  }
314 
316  if (beginLumiCalled_) {
318  beginLumiCalled_ = false;
319  }
320  if (beginRunCalled_) {
321  endRun();
322  beginRunCalled_ = false;
323  }
324  if (beginJobCalled_) {
325  endJob();
326  }
327  }
328 
331 
336  actReg_->preallocateSignal_(bounds);
337  schedule_->convertCurrentProcessAlias(processConfiguration_->processName());
338  PathsAndConsumesOfModules pathsAndConsumesOfModules;
339 
340  //The code assumes only modules make data in the current process
341  // Since the test os also allowed to do so, it can lead to problems.
342  //pathsAndConsumesOfModules.initialize(schedule_.get(), preg_);
343 
344  //NOTE: this may throw
345  //checkForModuleDependencyCorrectness(pathsAndConsumesOfModules, false);
346  actReg_->preBeginJobSignal_(pathsAndConsumesOfModules, processContext_);
347 
348  espController_->finishConfiguration();
349 
350  schedule_->beginJob(*preg_, esp_->recordsToProxyIndices());
351  actReg_->postBeginJobSignal_();
352 
353  for (unsigned int i = 0; i < preallocations_.numberOfStreams(); ++i) {
354  schedule_->beginStream(i);
355  }
356  beginJobCalled_ = true;
357  }
358 
360  ProcessHistoryID phid;
361  auto aux = std::make_shared<RunAuxiliary>(runNumber_, Timestamp(), Timestamp());
362  auto rp = std::make_shared<RunPrincipal>(aux, preg_, *processConfiguration_, historyAppender_.get(), 0);
363 
365  RunPrincipal& runPrincipal = principalCache_.runPrincipal(phid, runNumber_);
366 
367  IOVSyncValue ts(EventID(runPrincipal.run(), 0, 0), runPrincipal.beginTime());
368  espController_->eventSetupForInstance(ts);
369 
370  auto const& es = esp_->eventSetupImpl();
371 
372  std::vector<edm::SubProcess> emptyList;
373  {
375  auto globalWaitTask = make_empty_waiting_task();
376  globalWaitTask->increment_ref_count();
377  beginGlobalTransitionAsync<Traits>(WaitingTaskHolder(globalWaitTask.get()),
378  *schedule_,
379  runPrincipal,
380  ts,
381  es,
382  nullptr,
384  emptyList);
385  globalWaitTask->wait_for_all();
386  if (globalWaitTask->exceptionPtr() != nullptr) {
387  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
388  }
389  }
390  {
391  //To wait, the ref count has to be 1+#streams
392  auto streamLoopWaitTask = make_empty_waiting_task();
393  streamLoopWaitTask->increment_ref_count();
394 
396 
397  beginStreamsTransitionAsync<Traits>(streamLoopWaitTask.get(),
398  *schedule_,
400  runPrincipal,
401  ts,
402  es,
403  nullptr,
405  emptyList);
406 
407  streamLoopWaitTask->wait_for_all();
408  if (streamLoopWaitTask->exceptionPtr() != nullptr) {
409  std::rethrow_exception(*(streamLoopWaitTask->exceptionPtr()));
410  }
411  }
412  beginRunCalled_ = true;
413  }
414 
418  lumiPrincipal_->clearPrincipal();
420  lumiPrincipal_->setAux(aux);
421 
422  lumiPrincipal_->setRunPrincipal(principalCache_.runPrincipalPtr());
423 
425  espController_->eventSetupForInstance(ts);
426 
427  auto const& es = esp_->eventSetupImpl();
428 
429  std::vector<edm::SubProcess> emptyList;
430  {
432  auto globalWaitTask = make_empty_waiting_task();
433  globalWaitTask->increment_ref_count();
434  beginGlobalTransitionAsync<Traits>(WaitingTaskHolder(globalWaitTask.get()),
435  *schedule_,
437  ts,
438  es,
439  nullptr,
441  emptyList);
442  globalWaitTask->wait_for_all();
443  if (globalWaitTask->exceptionPtr() != nullptr) {
444  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
445  }
446  }
447  {
448  //To wait, the ref count has to be 1+#streams
449  auto streamLoopWaitTask = make_empty_waiting_task();
450  streamLoopWaitTask->increment_ref_count();
451 
453 
454  beginStreamsTransitionAsync<Traits>(streamLoopWaitTask.get(),
455  *schedule_,
458  ts,
459  es,
460  nullptr,
462  emptyList);
463 
464  streamLoopWaitTask->wait_for_all();
465  if (streamLoopWaitTask->exceptionPtr() != nullptr) {
466  std::rethrow_exception(*(streamLoopWaitTask->exceptionPtr()));
467  }
468  }
469  beginLumiCalled_ = true;
470  }
471 
473  auto pep = &(principalCache_.eventPrincipal(0));
474 
475  //this resets the EventPrincipal (if it had been used before)
476  pep->clearEventPrincipal();
477  pep->fillEventPrincipal(
479  nullptr,
480  nullptr);
481  assert(lumiPrincipal_.get() != nullptr);
482  pep->setLuminosityBlockPrincipal(lumiPrincipal_.get());
483 
484  for (auto& p : dataProducts_) {
485  if (p.second) {
486  pep->put(p.first, std::move(p.second), ProductProvenance(p.first.branchID()));
487  } else {
488  //The data product was not set so we need to
489  // tell the ProductResolver not to wait
490  auto r = pep->getProductResolver(p.first.branchID());
491  r->putProduct(std::unique_ptr<WrapperBase>());
492  }
493  }
494 
496 
497  auto waitTask = make_empty_waiting_task();
498  waitTask->increment_ref_count();
499 
500  schedule_->processOneEventAsync(
501  edm::WaitingTaskHolder(waitTask.get()), 0, *pep, esp_->eventSetupImpl(), serviceToken_);
502 
503  waitTask->wait_for_all();
504  if (waitTask->exceptionPtr() != nullptr) {
505  std::rethrow_exception(*(waitTask->exceptionPtr()));
506  }
507  ++eventNumber_;
508  }
509 
510  std::shared_ptr<LuminosityBlockPrincipal> TestProcessor::endLuminosityBlock() {
511  auto lumiPrincipal = lumiPrincipal_;
512  if (beginLumiCalled_) {
513  beginLumiCalled_ = false;
514  lumiPrincipal_.reset();
515 
516  IOVSyncValue ts(EventID(runNumber_, lumiNumber_, eventNumber_), lumiPrincipal->endTime());
517  espController_->eventSetupForInstance(ts);
518 
519  auto const& es = esp_->eventSetupImpl();
520 
521  std::vector<edm::SubProcess> emptyList;
522 
523  //To wait, the ref count has to be 1+#streams
524  {
525  auto streamLoopWaitTask = make_empty_waiting_task();
526  streamLoopWaitTask->increment_ref_count();
527 
529 
530  endStreamsTransitionAsync<Traits>(WaitingTaskHolder(streamLoopWaitTask.get()),
531  *schedule_,
533  *lumiPrincipal,
534  ts,
535  es,
536  nullptr,
538  emptyList,
539  false);
540 
541  streamLoopWaitTask->wait_for_all();
542  if (streamLoopWaitTask->exceptionPtr() != nullptr) {
543  std::rethrow_exception(*(streamLoopWaitTask->exceptionPtr()));
544  }
545  }
546  {
547  auto globalWaitTask = make_empty_waiting_task();
548  globalWaitTask->increment_ref_count();
549 
551  endGlobalTransitionAsync<Traits>(WaitingTaskHolder(globalWaitTask.get()),
552  *schedule_,
553  *lumiPrincipal,
554  ts,
555  es,
556  nullptr,
558  emptyList,
559  false);
560  globalWaitTask->wait_for_all();
561  if (globalWaitTask->exceptionPtr() != nullptr) {
562  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
563  }
564  }
565  }
566  return lumiPrincipal;
567  }
568 
569  std::shared_ptr<edm::RunPrincipal> TestProcessor::endRun() {
570  std::shared_ptr<RunPrincipal> rp;
571  if (beginRunCalled_) {
572  beginRunCalled_ = false;
573  ProcessHistoryID phid;
575  RunPrincipal& runPrincipal = *rp;
576 
577  IOVSyncValue ts(
579  runPrincipal.endTime());
580  espController_->eventSetupForInstance(ts);
581 
582  auto const& es = esp_->eventSetupImpl();
583 
584  std::vector<edm::SubProcess> emptyList;
585 
586  //To wait, the ref count has to be 1+#streams
587  {
588  auto streamLoopWaitTask = make_empty_waiting_task();
589  streamLoopWaitTask->increment_ref_count();
590 
592 
593  endStreamsTransitionAsync<Traits>(WaitingTaskHolder(streamLoopWaitTask.get()),
594  *schedule_,
596  runPrincipal,
597  ts,
598  es,
599  nullptr,
601  emptyList,
602  false);
603 
604  streamLoopWaitTask->wait_for_all();
605  if (streamLoopWaitTask->exceptionPtr() != nullptr) {
606  std::rethrow_exception(*(streamLoopWaitTask->exceptionPtr()));
607  }
608  }
609  {
610  auto globalWaitTask = make_empty_waiting_task();
611  globalWaitTask->increment_ref_count();
612 
614  endGlobalTransitionAsync<Traits>(WaitingTaskHolder(globalWaitTask.get()),
615  *schedule_,
616  runPrincipal,
617  ts,
618  es,
619  nullptr,
621  emptyList,
622  false);
623  globalWaitTask->wait_for_all();
624  if (globalWaitTask->exceptionPtr() != nullptr) {
625  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
626  }
627  }
628 
630  }
631  return rp;
632  }
633 
635  // Collects exceptions, so we don't throw before all operations are performed.
637  "Multiple exceptions were thrown while executing endJob. An exception message follows for each.\n");
638 
639  //make the services available
641 
642  //NOTE: this really should go elsewhere in the future
643  for (unsigned int i = 0; i < preallocations_.numberOfStreams(); ++i) {
644  c.call([this, i]() { this->schedule_->endStream(i); });
645  }
646  auto actReg = actReg_.get();
647  c.call([actReg]() { actReg->preEndJobSignal_(); });
648  schedule_->endJob(c);
649  c.call([actReg]() { actReg->postEndJobSignal_(); });
650  if (c.hasThrown()) {
651  c.rethrow();
652  }
653  }
654 
656  if (beginRunCalled_) {
658  endRun();
659  }
660  runNumber_ = iRun;
661  }
664  lumiNumber_ = iLumi;
665  }
666 
668 
669  //
670  // const member functions
671  //
672 
673  //
674  // static member functions
675  //
676 
677  } // namespace test
678 } // namespace edm
edm::ParameterSet::registerIt
ParameterSet const & registerIt()
Definition: ParameterSet.cc:106
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
edm::test::TestProcessor::setLuminosityBlockNumber
void setLuminosityBlockNumber(edm::LuminosityBlockNumber_t)
Definition: TestProcessor.cc:662
edm::RunPrincipal::endTime
Timestamp const & endTime() const
Definition: RunPrincipal.h:69
edm::OccurrenceTraits< LuminosityBlockPrincipal, BranchActionGlobalEnd >
Definition: OccurrenceTraits.h:336
edm::ProcessHistoryRegistry::registerProcessHistory
bool registerProcessHistory(ProcessHistory const &processHistory)
Definition: ProcessHistoryRegistry.cc:11
mps_fire.i
i
Definition: mps_fire.py:355
edm::PreallocationConfiguration::numberOfRuns
unsigned int numberOfRuns() const
Definition: PreallocationConfiguration.h:37
ServiceRegistry.h
funct::false
false
Definition: Factorize.h:34
edm::test::TestProcessor::~TestProcessor
~TestProcessor() noexcept(false)
Definition: TestProcessor.cc:196
edm::test::TestProcessor::thinnedAssociationsHelper_
std::shared_ptr< ThinnedAssociationsHelper > thinnedAssociationsHelper_
Definition: TestProcessor.h:297
edm::test::TestProcessor::TestProcessor
TestProcessor(Config const &iConfig, ServiceToken iToken=ServiceToken())
Definition: TestProcessor.cc:84
edm::validateTopLevelParameterSets
void validateTopLevelParameterSets(ParameterSet *processParameterSet)
Definition: validateTopLevelParameterSets.cc:88
edm::PreallocationConfiguration::numberOfThreads
unsigned int numberOfThreads() const
Definition: PreallocationConfiguration.h:34
edm::OccurrenceTraits< RunPrincipal, BranchActionGlobalBegin >
Definition: OccurrenceTraits.h:65
edm::test::TestProcessor::setRunNumber
void setRunNumber(edm::RunNumber_t)
Definition: TestProcessor.cc:655
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::test::TestProcessor::testEndRunImpl
edm::test::Run testEndRunImpl()
Definition: TestProcessor.cc:286
xstr
#define xstr(s)
Definition: TestProcessor.cc:47
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
edm::PrincipalCache::setProcessHistoryRegistry
void setProcessHistoryRegistry(ProcessHistoryRegistry const &phr)
Definition: PrincipalCache.h:76
edm::ParentageRegistry::instance
static ParentageRegistry * instance()
Definition: ParentageRegistry.cc:4
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:248
edm::test::TestProcessor::processHistoryRegistry_
ProcessHistoryRegistry processHistoryRegistry_
Definition: TestProcessor.h:307
edm::ScheduleItems
Definition: ScheduleItems.h:28
cms::cuda::assert
assert(be >=bs)
edm::OccurrenceTraits< LuminosityBlockPrincipal, BranchActionStreamBegin >
Definition: OccurrenceTraits.h:258
edm::test::TestProcessor::labelOfTestModule_
std::string labelOfTestModule_
Definition: TestProcessor.h:293
DelayedReader.h
edm::test::Run
Definition: Run.h:35
ESRecordsToProxyIndices.h
EventSetupsController.h
edm::ParameterSet::id
ParameterSetID id() const
Definition: ParameterSet.cc:182
edm::test::TestProcessorConfig::produceEntries
std::vector< ProduceEntry > const & produceEntries() const
Definition: TestProcessor.h:136
edm::test::TestProcessor::beginRunCalled_
bool beginRunCalled_
Definition: TestProcessor.h:323
edm::test::TestProcessor::serviceToken_
ServiceToken serviceToken_
Definition: TestProcessor.h:298
edm::test::TestProcessor::processConfiguration_
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: TestProcessor.h:304
edm::LuminosityBlockNumber_t
unsigned int LuminosityBlockNumber_t
Definition: RunLumiEventNumber.h:13
edm::test::TestProcessor::endLuminosityBlock
std::shared_ptr< LuminosityBlockPrincipal > endLuminosityBlock()
Definition: TestProcessor.cc:510
edm::PrincipalCache::runPrincipalPtr
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
Definition: PrincipalCache.cc:27
edm::test::TestProcessor::lumiPrincipal_
std::shared_ptr< LuminosityBlockPrincipal > lumiPrincipal_
Definition: TestProcessor.h:315
edm::test::LuminosityBlock
Definition: LuminosityBlock.h:35
mps_monitormerge.items
list items
Definition: mps_monitormerge.py:29
TestProcessor.h
edm::PathsAndConsumesOfModules
Definition: PathsAndConsumesOfModules.h:29
PathsAndConsumesOfModules.h
edm::OccurrenceTraits< RunPrincipal, BranchActionStreamBegin >
Definition: OccurrenceTraits.h:104
edm::test::TestProcessor::runNumber_
RunNumber_t runNumber_
Definition: TestProcessor.h:319
edm::test::TestProcessor::beginRun
void beginRun()
Definition: TestProcessor.cc:359
edm::LuminosityBlockAuxiliary
Definition: LuminosityBlockAuxiliary.h:15
edm::PreallocationConfiguration::numberOfLuminosityBlocks
unsigned int numberOfLuminosityBlocks() const
Definition: PreallocationConfiguration.h:36
edm::ServiceToken
Definition: ServiceToken.h:40
ParentageRegistry.h
edm::PrincipalCache::runPrincipal
RunPrincipal & runPrincipal(ProcessHistoryID const &phid, RunNumber_t run) const
Definition: PrincipalCache.cc:20
edm::ProcessContext::setProcessConfiguration
void setProcessConfiguration(ProcessConfiguration const *processConfiguration)
Definition: ProcessContext.cc:19
edm::RunPrincipal::beginTime
Timestamp const & beginTime() const
Definition: RunPrincipal.h:67
test
Definition: SmallWORMDict.h:13
edm::ProductProvenance
Definition: ProductProvenance.h:24
edm::OccurrenceTraits< RunPrincipal, BranchActionGlobalEnd >
Definition: OccurrenceTraits.h:180
edm::ExceptionCollector
Definition: ExceptionCollector.h:33
edm::test::TestProcessor::beginLumiCalled_
bool beginLumiCalled_
Definition: TestProcessor.h:324
EventPrincipal.h
edm::test::TestProcessor::setupProcessing
void setupProcessing()
Definition: TestProcessor.cc:303
ProcessDesc.h
edm::Hash< ProcessHistoryType >
edm::test::TestProcessor::historyAppender_
std::unique_ptr< HistoryAppender > historyAppender_
Definition: TestProcessor.h:308
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
edm::test::TestProcessor::preg_
std::shared_ptr< ProductRegistry > preg_
Definition: TestProcessor.h:295
edm::InEvent
Definition: BranchType.h:11
runTheMatrix.nThreads
nThreads
Definition: runTheMatrix.py:344
edm::OccurrenceTraits< RunPrincipal, BranchActionStreamEnd >
Definition: OccurrenceTraits.h:142
ExceptionCollector.h
edm::IOVSyncValue
Definition: IOVSyncValue.h:31
edm::EventID::maxEventNumber
static EventNumber_t maxEventNumber()
Definition: EventID.h:96
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
edm::EventAuxiliary
Definition: EventAuxiliary.h:14
edm::test::TestProcessor::dataProducts_
std::vector< std::pair< edm::BranchDescription, std::unique_ptr< WrapperBase > > > dataProducts_
Definition: TestProcessor.h:317
edm::test::TestProcessor::beginJob
void beginJob()
Definition: TestProcessor.cc:329
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
streamTransitionAsync.h
PyBind11ProcessDesc
Definition: PyBind11ProcessDesc.h:16
HistoryAppender.h
standard.h
edm::TypeWithDict
Definition: TypeWithDict.h:38
edm::service::SystemBounds
Definition: SystemBounds.h:29
edm::ParameterSet
Definition: ParameterSet.h:36
edm::test::Event
Definition: Event.h:36
edm::OccurrenceTraits< LuminosityBlockPrincipal, BranchActionGlobalBegin >
Definition: OccurrenceTraits.h:219
ParameterSet
Definition: Functions.h:16
edm::WaitingTaskHolder
Definition: WaitingTaskHolder.h:30
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:266
edmplugin::PluginManager::configure
static PluginManager & configure(const Config &)
Definition: PluginManager.cc:316
edm::test::TestProcessor::processContext_
ProcessContext processContext_
Definition: TestProcessor.h:305
edm::test::TestProcessor::endRun
std::shared_ptr< RunPrincipal > endRun()
Definition: TestProcessor.cc:569
edm::test::TestProcessor::testEndLuminosityBlockImpl
edm::test::LuminosityBlock testEndLuminosityBlockImpl()
Definition: TestProcessor.cc:246
edm::serviceregistry::kOverlapIsError
Definition: ServiceLegacy.h:29
edm::PrincipalCache::deleteRun
void deleteRun(ProcessHistoryID const &phid, RunNumber_t run)
Definition: PrincipalCache.cc:103
edm::RunPrincipal::run
RunNumber_t run() const
Definition: RunPrincipal.h:61
edm::test::TestProcessor::eventNumber_
EventNumber_t eventNumber_
Definition: TestProcessor.h:321
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
edm::test::TestProcessorConfig::pythonConfiguration
std::string const & pythonConfiguration() const
Definition: TestProcessor.h:89
ExceptionActions.h
edm::test::TestProcessor::branchIDListHelper_
std::shared_ptr< BranchIDListHelper > branchIDListHelper_
Definition: TestProcessor.h:296
edm::test::TestProcessor::put
void put(std::pair< edm::EDPutTokenT< T >, std::unique_ptr< T >> &&iPut)
Definition: TestProcessor.h:234
edm::test::TestProcessor::beginJobCalled_
bool beginJobCalled_
Definition: TestProcessor.h:322
edm::HistoryAppender
Definition: HistoryAppender.h:13
edmplugin::standard::config
PluginManager::Config config()
Definition: standard.cc:21
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
PyBind11ProcessDesc::parameterSet
std::unique_ptr< edm::ParameterSet > parameterSet() const
Definition: PyBind11ProcessDesc.cc:92
edm::test::TestProcessor::esHelper_
std::shared_ptr< EventSetupTestHelper > esHelper_
Definition: TestProcessor.h:301
edm::test::TestProcessor::actReg_
std::shared_ptr< ActivityRegistry > actReg_
Definition: TestProcessor.h:294
LuminosityBlockPrincipal.h
edm::ProcessHistory::emplace_back
void emplace_back(Args &&... args)
Definition: ProcessHistory.h:34
edm::make_empty_waiting_task
std::unique_ptr< edm::EmptyWaitingTask, waitingtask::TaskDestroyer > make_empty_waiting_task()
Create an EmptyWaitingTask which will properly be destroyed.
Definition: WaitingTaskList.h:96
SimL1EmulatorRepack_CalouGT_cff.processName
processName
Definition: SimL1EmulatorRepack_CalouGT_cff.py:17
alignCSCRings.r
r
Definition: alignCSCRings.py:93
edm::test::TestProcessor::setEventNumber
void setEventNumber(edm::EventNumber_t)
Definition: TestProcessor.cc:667
ScheduleItems.h
edm::PreallocationConfiguration
Definition: PreallocationConfiguration.h:27
edm::test::TestProcessorConfig::extraProcesses
std::vector< std::string > const & extraProcesses() const
Definition: TestProcessor.h:99
edm::ParentageRegistry::insertMapped
bool insertMapped(value_type const &v)
Definition: ParentageRegistry.cc:24
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
edm::ModuleRegistry
Definition: ModuleRegistry.h:40
edm::test::TestProcessor::esp_
std::shared_ptr< eventsetup::EventSetupProvider > esp_
Definition: TestProcessor.h:300
edm::test::TestProcessor::testImpl
edm::test::Event testImpl()
Definition: TestProcessor.cc:210
PluginManager.h
edm::test::TestProcessor::schedule_
std::unique_ptr< Schedule > schedule_
Definition: TestProcessor.h:314
edm::PrincipalCache::getAvailableLumiPrincipalPtr
std::shared_ptr< LuminosityBlockPrincipal > getAvailableLumiPrincipalPtr()
Definition: PrincipalCache.cc:49
Exception
Definition: hltDiff.cc:246
ProcessDescImpl.h
edm::OccurrenceTraits< LuminosityBlockPrincipal, BranchActionStreamEnd >
Definition: OccurrenceTraits.h:296
edm::test::TestProcessor::espController_
std::unique_ptr< eventsetup::EventSetupsController > espController_
Definition: TestProcessor.h:299
edm::PreallocationConfiguration::numberOfStreams
unsigned int numberOfStreams() const
Definition: PreallocationConfiguration.h:35
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
funct::void
TEMPL(T2) struct Divides void
Definition: Factorize.h:29
edm::BranchDescription::init
void init()
Definition: BranchDescription.h:59
edm::BranchDescription
Definition: BranchDescription.h:32
edm::test::TestProcessor::teardownProcessing
void teardownProcessing()
Definition: TestProcessor.cc:315
edm::test::TestProcessor::event
void event()
Definition: TestProcessor.cc:472
globalTransitionAsync.h
validateTopLevelParameterSets.h
mps_fire.result
result
Definition: mps_fire.py:303
edm::ProcessHistory
Definition: ProcessHistory.h:13
edm::RunPrincipal
Definition: RunPrincipal.h:34
edm::PrincipalCache::eventPrincipal
EventPrincipal & eventPrincipal(unsigned int iStreamIndex) const
Definition: PrincipalCache.h:61
Config
Definition: Config.py:1
edm::EventID
Definition: EventID.h:31
edm::test::TestProcessor::endJob
void endJob()
Definition: TestProcessor.cc:634
lumi
Definition: LumiSectionData.h:20
edm::ServiceRegistry::Operate
Definition: ServiceRegistry.h:40
edm::PrincipalCache::insert
void insert(std::shared_ptr< RunPrincipal > rp)
Definition: PrincipalCache.cc:81
SystemBounds.h
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
edm::test::TestProcessor::beginLuminosityBlock
void beginLuminosityBlock()
Definition: TestProcessor.cc:415
edm::test::TestProcessor::principalCache_
PrincipalCache principalCache_
Definition: TestProcessor.h:310
edm::test::TestProcessorConfig::esProduceEntries
std::vector< ESProduceEntry > const & esProduceEntries() const
Definition: TestProcessor.h:138
edm::test::TestProcessor::lumiNumber_
LuminosityBlockNumber_t lumiNumber_
Definition: TestProcessor.h:320
EventSetupTestHelper.h
trackingPlots.common
common
Definition: trackingPlots.py:205
edm::LuminosityBlockID::maxLuminosityBlockNumber
static LuminosityBlockNumber_t maxLuminosityBlockNumber()
Definition: LuminosityBlockID.h:84
edm::test::TestProcessor::act_table_
std::unique_ptr< ExceptionToActionTable const > act_table_
Definition: TestProcessor.h:303
edm::test::TestProcessor::preallocations_
PreallocationConfiguration preallocations_
Definition: TestProcessor.h:311
edm::PrincipalCache::setNumberOfConcurrentPrincipals
void setNumberOfConcurrentPrincipals(PreallocationConfiguration const &)
Definition: PrincipalCache.cc:16
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316
edm::Timestamp
Definition: Timestamp.h:30