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: Chris Jones
10 // Created: Mon, 30 Apr 2018 18:51:08 GMT
11 //
12 
13 // system include files
14 
15 // user include files
18 
34 
37 
40 
44 
46 
48 
50 
51 #define xstr(s) str(s)
52 #define str(s) #s
53 
54 namespace edm {
55  namespace test {
56 
57  namespace {
58 
59  bool oneTimeInitializationImpl() {
61 
62  static std::unique_ptr<edm::ThreadsController> tsiPtr = std::make_unique<edm::ThreadsController>(1);
63 
64  // register the empty parentage vector , once and for all
66 
67  // register the empty parameter set, once and for all.
68  ParameterSet().registerIt();
69  return true;
70  }
71 
72  bool oneTimeInitialization() {
73  static const bool s_init{oneTimeInitializationImpl()};
74  return s_init;
75  }
76  } // namespace
77 
78  //
79  // constructors and destructor
80  //
82  : globalControl_(tbb::global_control::max_allowed_parallelism, 1),
83  arena_(1),
84  espController_(std::make_unique<eventsetup::EventSetupsController>()),
85  historyAppender_(std::make_unique<HistoryAppender>()),
86  moduleRegistry_(std::make_shared<ModuleRegistry>()) {
87  //Setup various singletons
88  (void)oneTimeInitialization();
89 
91 
92  auto psetPtr = desc.parameterSet();
93 
94  validateTopLevelParameterSets(psetPtr.get());
95 
96  labelOfTestModule_ = psetPtr->getParameter<std::string>("@moduleToTest");
97 
98  auto procDesc = desc.processDesc();
99  // Now do general initialization
101 
102  //initialize the services
103  auto& serviceSets = procDesc->getServicesPSets();
104  ServiceToken token = items.initServices(serviceSets, *psetPtr, iToken, serviceregistry::kOverlapIsError, true);
105  serviceToken_ = items.addCPRandTNS(*psetPtr, token);
106 
107  //make the services available
109 
110  // intialize miscellaneous items
111  std::shared_ptr<CommonParams> common(items.initMisc(*psetPtr));
112 
113  // intialize the event setup provider
114  esp_ = espController_->makeProvider(*psetPtr, items.actReg_.get());
115 
116  auto nThreads = 1U;
117  auto nStreams = 1U;
118  auto nConcurrentLumis = 1U;
119  auto nConcurrentRuns = 1U;
120  preallocations_ = PreallocationConfiguration{nThreads, nStreams, nConcurrentLumis, nConcurrentRuns};
121 
122  espController_->setMaxConcurrentIOVs(nStreams, nConcurrentLumis);
123  if (not iConfig.esProduceEntries().empty()) {
124  esHelper_ = std::make_unique<EventSetupTestHelper>(iConfig.esProduceEntries());
125  esp_->add(std::dynamic_pointer_cast<eventsetup::DataProxyProvider>(esHelper_));
126  esp_->add(std::dynamic_pointer_cast<EventSetupRecordIntervalFinder>(esHelper_));
127  }
128 
129  preg_ = items.preg();
130  processConfiguration_ = items.processConfiguration();
131 
132  edm::ParameterSet emptyPSet;
133  emptyPSet.registerIt();
134  auto psetid = emptyPSet.id();
135 
136  ProcessHistory oldHistory;
137  for (auto const& p : iConfig.extraProcesses()) {
138  oldHistory.emplace_back(p, psetid, xstr(PROJECT_VERSION), "0");
140  }
141 
142  //setup the products we will be adding to the event
143  for (auto const& produce : iConfig.produceEntries()) {
144  auto processName = produce.processName_;
145  if (processName.empty()) {
146  processName = processConfiguration_->processName();
147  }
148  edm::TypeWithDict twd(produce.type_.typeInfo());
150  produce.moduleLabel_,
151  processName,
152  twd.userClassName(),
153  twd.friendlyClassName(),
154  produce.instanceLabel_,
155  "",
156  psetid,
157  twd,
158  true //force this to come from 'source'
159  );
160  product.init();
161  dataProducts_.emplace_back(product, std::unique_ptr<WrapperBase>());
162  preg_->addProduct(product);
163  }
164 
165  schedule_ = items.initSchedule(*psetPtr, false, preallocations_, &processContext_);
166  // set the data members
167  act_table_ = std::move(items.act_table_);
168  actReg_ = items.actReg_;
169  branchIDListHelper_ = items.branchIDListHelper();
170  thinnedAssociationsHelper_ = items.thinnedAssociationsHelper();
173 
175 
176  preg_->setFrozen();
177  for (unsigned int index = 0; index < preallocations_.numberOfStreams(); ++index) {
178  // Reusable event principal
179  auto ep = std::make_shared<EventPrincipal>(preg_,
183  historyAppender_.get(),
184  index);
186  }
187 
188  for (unsigned int index = 0; index < preallocations_.numberOfLuminosityBlocks(); ++index) {
189  auto lp =
190  std::make_unique<LuminosityBlockPrincipal>(preg_, *processConfiguration_, historyAppender_.get(), index);
192  }
193  {
194  auto pb = std::make_unique<ProcessBlockPrincipal>(preg_, *processConfiguration_);
196  }
197  }
198 
200  //
201  // member functions
202  //
203 
204  void TestProcessor::put(unsigned int index, std::unique_ptr<WrapperBase> iWrapper) {
205  if (index >= dataProducts_.size()) {
206  throw cms::Exception("LogicError") << "Products must be declared to the TestProcessor::Config object\n"
207  "with a call to the function \'produces\' BEFORE passing the\n"
208  "TestProcessor::Config object to the TestProcessor constructor";
209  }
210  dataProducts_[index].second = std::move(iWrapper);
211  }
212 
214  bool result = arena_.execute([this]() {
215  setupProcessing();
216  event();
217 
218  return schedule_->totalEventsPassed() > 0;
219  });
220  schedule_->clearCounters();
221  if (esHelper_) {
222  //We want each test to have its own ES data products
223  esHelper_->resetAllProxies();
224  }
225  return edm::test::Event(
227  }
228 
230  arena_.execute([this, iNum]() {
231  if (not beginJobCalled_) {
232  beginJob();
233  }
234  if (not beginProcessBlockCalled_) {
236  }
237  if (not beginRunCalled_) {
238  beginRun();
239  }
240  if (beginLumiCalled_) {
242  assert(lumiNumber_ != iNum);
243  }
244  lumiNumber_ = iNum;
246  });
247 
248  if (esHelper_) {
249  //We want each test to have its own ES data products
250  esHelper_->resetAllProxies();
251  }
252 
254  }
255 
257  //using a return value from arena_.execute lead to double delete of shared_ptr
258  // based on valgrind output when exception occurred. Use lambda capture instead.
259  std::shared_ptr<edm::LuminosityBlockPrincipal> lumi;
260  arena_.execute([this, &lumi]() {
261  if (not beginJobCalled_) {
262  beginJob();
263  }
264  if (not beginProcessBlockCalled_) {
266  }
267  if (not beginRunCalled_) {
268  beginRun();
269  }
270  if (not beginLumiCalled_) {
272  }
274  });
275  if (esHelper_) {
276  //We want each test to have its own ES data products
277  esHelper_->resetAllProxies();
278  }
279 
281  }
282 
284  arena_.execute([this, iNum]() {
285  if (not beginJobCalled_) {
286  beginJob();
287  }
288  if (not beginProcessBlockCalled_) {
290  }
291  if (beginRunCalled_) {
292  assert(runNumber_ != iNum);
293  endRun();
294  }
295  runNumber_ = iNum;
296  beginRun();
297  });
298  if (esHelper_) {
299  //We want each test to have its own ES data products
300  esHelper_->resetAllProxies();
301  }
302 
303  return edm::test::Run(
305  }
307  //using a return value from arena_.execute lead to double delete of shared_ptr
308  // based on valgrind output when exception occurred. Use lambda capture instead.
309  std::shared_ptr<edm::RunPrincipal> rp;
310  arena_.execute([this, &rp]() {
311  if (not beginJobCalled_) {
312  beginJob();
313  }
314  if (not beginProcessBlockCalled_) {
316  }
317  if (not beginRunCalled_) {
318  beginRun();
319  }
320  rp = endRun();
321  });
322  if (esHelper_) {
323  //We want each test to have its own ES data products
324  esHelper_->resetAllProxies();
325  }
326 
327  return edm::test::Run(rp, labelOfTestModule_, processConfiguration_->processName());
328  }
329 
331  arena_.execute([this]() {
332  if (not beginJobCalled_) {
333  beginJob();
334  }
336  });
339  }
341  auto pbp = arena_.execute([this]() {
342  if (not beginJobCalled_) {
343  beginJob();
344  }
345  if (not beginProcessBlockCalled_) {
347  }
348  return endProcessBlock();
349  });
351  }
352 
354  if (not beginJobCalled_) {
355  beginJob();
356  }
357  if (not beginProcessBlockCalled_) {
359  }
360  if (not beginRunCalled_) {
361  beginRun();
362  }
363  if (not beginLumiCalled_) {
365  }
366  }
367 
369  arena_.execute([this]() {
370  if (beginLumiCalled_) {
372  beginLumiCalled_ = false;
373  }
374  if (beginRunCalled_) {
375  endRun();
376  beginRunCalled_ = false;
377  }
379  endProcessBlock();
380  beginProcessBlockCalled_ = false;
381  }
382  if (beginJobCalled_) {
383  endJob();
384  }
387  do {
388  taskGroup_.wait();
389  } while (not task.done());
390  });
391  }
392 
395 
400  actReg_->preallocateSignal_(bounds);
401  schedule_->convertCurrentProcessAlias(processConfiguration_->processName());
402  PathsAndConsumesOfModules pathsAndConsumesOfModules;
403 
404  //The code assumes only modules make data in the current process
405  // Since the test os also allowed to do so, it can lead to problems.
406  //pathsAndConsumesOfModules.initialize(schedule_.get(), preg_);
407 
408  //NOTE: this may throw
409  //checkForModuleDependencyCorrectness(pathsAndConsumesOfModules, false);
410  actReg_->preBeginJobSignal_(pathsAndConsumesOfModules, processContext_);
411 
412  espController_->finishConfiguration();
413 
414  schedule_->beginJob(*preg_, esp_->recordsToProxyIndices());
415  actReg_->postBeginJobSignal_();
416 
417  for (unsigned int i = 0; i < preallocations_.numberOfStreams(); ++i) {
418  schedule_->beginStream(i);
419  }
420  beginJobCalled_ = true;
421  }
422 
425  processBlockPrincipal.fillProcessBlockPrincipal(processConfiguration_->processName());
426 
427  std::vector<edm::SubProcess> emptyList;
428  {
429  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
431  FinalWaitingTask globalWaitTask;
432  beginGlobalTransitionAsync<Traits>(
433  WaitingTaskHolder(taskGroup_, &globalWaitTask), *schedule_, transitionInfo, serviceToken_, emptyList);
434  do {
435  taskGroup_.wait();
436  } while (not globalWaitTask.done());
437  if (globalWaitTask.exceptionPtr() != nullptr) {
438  std::rethrow_exception(*(globalWaitTask.exceptionPtr()));
439  }
440  }
442  }
443 
445  ProcessHistoryID phid;
446  auto aux = std::make_shared<RunAuxiliary>(runNumber_, Timestamp(), Timestamp());
447  auto rp = std::make_shared<RunPrincipal>(aux, preg_, *processConfiguration_, historyAppender_.get(), 0);
448 
450  RunPrincipal& runPrincipal = principalCache_.runPrincipal(phid, runNumber_);
451 
452  IOVSyncValue ts(EventID(runPrincipal.run(), 0, 0), runPrincipal.beginTime());
454 
455  auto const& es = esp_->eventSetupImpl();
456 
457  RunTransitionInfo transitionInfo(runPrincipal, es);
458 
459  std::vector<edm::SubProcess> emptyList;
460  {
462  FinalWaitingTask globalWaitTask;
463  beginGlobalTransitionAsync<Traits>(
464  WaitingTaskHolder(taskGroup_, &globalWaitTask), *schedule_, transitionInfo, serviceToken_, emptyList);
465  do {
466  taskGroup_.wait();
467  } while (not globalWaitTask.done());
468  if (globalWaitTask.exceptionPtr() != nullptr) {
469  std::rethrow_exception(*(globalWaitTask.exceptionPtr()));
470  }
471  }
472  {
473  //To wait, the ref count has to be 1+#streams
474  FinalWaitingTask streamLoopWaitTask;
475 
477  beginStreamsTransitionAsync<Traits>(WaitingTaskHolder(taskGroup_, &streamLoopWaitTask),
478  *schedule_,
480  transitionInfo,
482  emptyList);
483 
484  do {
485  taskGroup_.wait();
486  } while (not streamLoopWaitTask.done());
487  if (streamLoopWaitTask.exceptionPtr() != nullptr) {
488  std::rethrow_exception(*(streamLoopWaitTask.exceptionPtr()));
489  }
490  }
491  beginRunCalled_ = true;
492  }
493 
497  lumiPrincipal_->clearPrincipal();
499  lumiPrincipal_->setAux(aux);
500 
501  lumiPrincipal_->setRunPrincipal(principalCache_.runPrincipalPtr());
502 
505 
506  auto const& es = esp_->eventSetupImpl();
507 
508  LumiTransitionInfo transitionInfo(*lumiPrincipal_, es, nullptr);
509 
510  std::vector<edm::SubProcess> emptyList;
511  {
513  FinalWaitingTask globalWaitTask;
514  beginGlobalTransitionAsync<Traits>(
515  WaitingTaskHolder(taskGroup_, &globalWaitTask), *schedule_, transitionInfo, serviceToken_, emptyList);
516  do {
517  taskGroup_.wait();
518  } while (not globalWaitTask.done());
519  if (globalWaitTask.exceptionPtr() != nullptr) {
520  std::rethrow_exception(*(globalWaitTask.exceptionPtr()));
521  }
522  }
523  {
524  //To wait, the ref count has to be 1+#streams
525  FinalWaitingTask streamLoopWaitTask;
526 
528 
529  beginStreamsTransitionAsync<Traits>(WaitingTaskHolder(taskGroup_, &streamLoopWaitTask),
530  *schedule_,
532  transitionInfo,
534  emptyList);
535 
536  do {
537  taskGroup_.wait();
538  } while (not streamLoopWaitTask.done());
539  if (streamLoopWaitTask.exceptionPtr() != nullptr) {
540  std::rethrow_exception(*(streamLoopWaitTask.exceptionPtr()));
541  }
542  }
543  beginLumiCalled_ = true;
544  }
545 
547  auto pep = &(principalCache_.eventPrincipal(0));
548 
549  //this resets the EventPrincipal (if it had been used before)
550  pep->clearEventPrincipal();
551  pep->fillEventPrincipal(
553  nullptr,
554  nullptr);
555  assert(lumiPrincipal_.get() != nullptr);
556  pep->setLuminosityBlockPrincipal(lumiPrincipal_.get());
557 
558  for (auto& p : dataProducts_) {
559  if (p.second) {
560  pep->put(p.first, std::move(p.second), ProductProvenance(p.first.branchID()));
561  } else {
562  //The data product was not set so we need to
563  // tell the ProductResolver not to wait
564  auto r = pep->getProductResolver(p.first.branchID());
565  dynamic_cast<ProductPutterBase const*>(r)->putProduct(std::unique_ptr<WrapperBase>());
566  }
567  }
568 
570 
571  FinalWaitingTask waitTask;
572 
573  EventTransitionInfo info(*pep, esp_->eventSetupImpl());
574  schedule_->processOneEventAsync(edm::WaitingTaskHolder(taskGroup_, &waitTask), 0, info, serviceToken_);
575 
576  do {
577  taskGroup_.wait();
578  } while (not waitTask.done());
579  if (waitTask.exceptionPtr() != nullptr) {
580  std::rethrow_exception(*(waitTask.exceptionPtr()));
581  }
582  ++eventNumber_;
583  }
584 
585  std::shared_ptr<LuminosityBlockPrincipal> TestProcessor::endLuminosityBlock() {
586  auto lumiPrincipal = lumiPrincipal_;
587  if (beginLumiCalled_) {
588  beginLumiCalled_ = false;
589  lumiPrincipal_.reset();
590 
591  IOVSyncValue ts(EventID(runNumber_, lumiNumber_, eventNumber_), lumiPrincipal->endTime());
593 
594  auto const& es = esp_->eventSetupImpl();
595 
596  LumiTransitionInfo transitionInfo(*lumiPrincipal, es, nullptr);
597 
598  std::vector<edm::SubProcess> emptyList;
599 
600  //To wait, the ref count has to be 1+#streams
601  {
602  FinalWaitingTask streamLoopWaitTask;
603 
605 
606  endStreamsTransitionAsync<Traits>(WaitingTaskHolder(taskGroup_, &streamLoopWaitTask),
607  *schedule_,
609  transitionInfo,
611  emptyList,
612  false);
613 
614  do {
615  taskGroup_.wait();
616  } while (not streamLoopWaitTask.done());
617  if (streamLoopWaitTask.exceptionPtr() != nullptr) {
618  std::rethrow_exception(*(streamLoopWaitTask.exceptionPtr()));
619  }
620  }
621  {
622  FinalWaitingTask globalWaitTask;
623 
625  endGlobalTransitionAsync<Traits>(WaitingTaskHolder(taskGroup_, &globalWaitTask),
626  *schedule_,
627  transitionInfo,
629  emptyList,
630  false);
631  do {
632  taskGroup_.wait();
633  } while (not globalWaitTask.done());
634  if (globalWaitTask.exceptionPtr() != nullptr) {
635  std::rethrow_exception(*(globalWaitTask.exceptionPtr()));
636  }
637  }
638  }
639  return lumiPrincipal;
640  }
641 
642  std::shared_ptr<edm::RunPrincipal> TestProcessor::endRun() {
643  std::shared_ptr<RunPrincipal> rp;
644  if (beginRunCalled_) {
645  beginRunCalled_ = false;
646  ProcessHistoryID phid;
648  RunPrincipal& runPrincipal = *rp;
649 
650  IOVSyncValue ts(
652  runPrincipal.endTime());
654 
655  auto const& es = esp_->eventSetupImpl();
656 
657  RunTransitionInfo transitionInfo(runPrincipal, es);
658 
659  std::vector<edm::SubProcess> emptyList;
660 
661  //To wait, the ref count has to be 1+#streams
662  {
663  FinalWaitingTask streamLoopWaitTask;
664 
666 
667  endStreamsTransitionAsync<Traits>(WaitingTaskHolder(taskGroup_, &streamLoopWaitTask),
668  *schedule_,
670  transitionInfo,
672  emptyList,
673  false);
674 
675  do {
676  taskGroup_.wait();
677  } while (not streamLoopWaitTask.done());
678  if (streamLoopWaitTask.exceptionPtr() != nullptr) {
679  std::rethrow_exception(*(streamLoopWaitTask.exceptionPtr()));
680  }
681  }
682  {
683  FinalWaitingTask globalWaitTask;
684 
686  endGlobalTransitionAsync<Traits>(WaitingTaskHolder(taskGroup_, &globalWaitTask),
687  *schedule_,
688  transitionInfo,
690  emptyList,
691  false);
692  do {
693  taskGroup_.wait();
694  } while (not globalWaitTask.done());
695  if (globalWaitTask.exceptionPtr() != nullptr) {
696  std::rethrow_exception(*(globalWaitTask.exceptionPtr()));
697  }
698  }
699 
701  }
702  return rp;
703  }
704 
708  beginProcessBlockCalled_ = false;
709 
710  std::vector<edm::SubProcess> emptyList;
711  {
712  FinalWaitingTask globalWaitTask;
713 
714  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
716  endGlobalTransitionAsync<Traits>(WaitingTaskHolder(taskGroup_, &globalWaitTask),
717  *schedule_,
718  transitionInfo,
720  emptyList,
721  false);
722  do {
723  taskGroup_.wait();
724  } while (not globalWaitTask.done());
725  if (globalWaitTask.exceptionPtr() != nullptr) {
726  std::rethrow_exception(*(globalWaitTask.exceptionPtr()));
727  }
728  }
729  }
730  return &processBlockPrincipal;
731  }
732 
734  if (!beginJobCalled_) {
735  return;
736  }
737  beginJobCalled_ = false;
738 
739  // Collects exceptions, so we don't throw before all operations are performed.
741  "Multiple exceptions were thrown while executing endJob. An exception message follows for each.\n");
742 
743  //make the services available
745 
746  //NOTE: this really should go elsewhere in the future
747  for (unsigned int i = 0; i < preallocations_.numberOfStreams(); ++i) {
748  c.call([this, i]() { this->schedule_->endStream(i); });
749  }
750  auto actReg = actReg_.get();
751  c.call([actReg]() { actReg->preEndJobSignal_(); });
752  schedule_->endJob(c);
753  c.call([actReg]() { actReg->postEndJobSignal_(); });
754  if (c.hasThrown()) {
755  c.rethrow();
756  }
757  }
758 
760  if (beginRunCalled_) {
762  endRun();
763  }
764  runNumber_ = iRun;
765  }
768  lumiNumber_ = iLumi;
769  }
770 
772 
773  } // namespace test
774 } // namespace edm
edm::ParameterSet::registerIt
ParameterSet const & registerIt()
Definition: ParameterSet.cc:113
edm::EventTransitionInfo
Definition: TransitionInfoTypes.h:26
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
edm::test::TestProcessor::setLuminosityBlockNumber
void setLuminosityBlockNumber(edm::LuminosityBlockNumber_t)
Definition: TestProcessor.cc:766
edm::RunPrincipal::endTime
Timestamp const & endTime() const
Definition: RunPrincipal.h:69
edm::OccurrenceTraits< LuminosityBlockPrincipal, BranchActionGlobalEnd >
Definition: OccurrenceTraits.h:356
edm::ProcessHistoryRegistry::registerProcessHistory
bool registerProcessHistory(ProcessHistory const &processHistory)
Definition: ProcessHistoryRegistry.cc:11
mps_fire.i
i
Definition: mps_fire.py:428
edm::PreallocationConfiguration::numberOfRuns
unsigned int numberOfRuns() const
Definition: PreallocationConfiguration.h:37
ServiceRegistry.h
edm::OccurrenceTraits< ProcessBlockPrincipal, BranchActionGlobalBegin >
Definition: OccurrenceTraits.h:397
edm::ProcessBlockTransitionInfo
Definition: TransitionInfoTypes.h:80
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::LumiTransitionInfo
Definition: TransitionInfoTypes.h:42
edm::validateTopLevelParameterSets
void validateTopLevelParameterSets(ParameterSet *processParameterSet)
Definition: validateTopLevelParameterSets.cc:93
edm::PreallocationConfiguration::numberOfThreads
unsigned int numberOfThreads() const
Definition: PreallocationConfiguration.h:34
edm::OccurrenceTraits< RunPrincipal, BranchActionGlobalBegin >
Definition: OccurrenceTraits.h:71
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
xstr
#define xstr(s)
Definition: TestProcessor.cc:51
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
edm::PrincipalCache::setProcessHistoryRegistry
void setProcessHistoryRegistry(ProcessHistoryRegistry const &phr)
Definition: PrincipalCache.h:87
edm::eventsetup::synchronousEventSetupForInstance
void synchronousEventSetupForInstance(IOVSyncValue const &syncValue, tbb::task_group &iGroup, eventsetup::EventSetupsController &espController)
Definition: EventSetupsController.cc:414
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:277
edm::test::TestProcessor::processHistoryRegistry_
ProcessHistoryRegistry processHistoryRegistry_
Definition: TestProcessor.h:344
edm::ScheduleItems
Definition: ScheduleItems.h:28
cms::cuda::assert
assert(be >=bs)
edm::OccurrenceTraits< LuminosityBlockPrincipal, BranchActionStreamBegin >
Definition: OccurrenceTraits.h:274
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
ProcessBlockPrincipal.h
edm::test::TestProcessor::labelOfTestModule_
std::string labelOfTestModule_
Definition: TestProcessor.h:330
DelayedReader.h
edm::test::Run
Definition: Run.h:35
ESRecordsToProxyIndices.h
EventSetupsController.h
edm::ParameterSet::id
ParameterSetID id() const
Definition: ParameterSet.cc:189
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::processConfiguration_
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: TestProcessor.h:341
edm::RunTransitionInfo
Definition: TransitionInfoTypes.h:64
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::PrincipalCache::runPrincipalPtr
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
Definition: PrincipalCache.cc:28
edm::test::TestProcessor::lumiPrincipal_
std::shared_ptr< LuminosityBlockPrincipal > lumiPrincipal_
Definition: TestProcessor.h:352
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::OccurrenceTraits< ProcessBlockPrincipal, BranchActionGlobalEnd >
Definition: OccurrenceTraits.h:471
runTheMatrix.nStreams
nStreams
Definition: runTheMatrix.py:371
mps_monitormerge.items
list items
Definition: mps_monitormerge.py:29
TestProcessor.h
edm::PathsAndConsumesOfModules
Definition: PathsAndConsumesOfModules.h:32
PathsAndConsumesOfModules.h
edm::OccurrenceTraits< RunPrincipal, BranchActionStreamBegin >
Definition: OccurrenceTraits.h:112
edm::test::TestProcessor::runNumber_
RunNumber_t runNumber_
Definition: TestProcessor.h:356
edm::test::TestProcessor::beginRun
void beginRun()
Definition: TestProcessor.cc:444
edm::LuminosityBlockAuxiliary
Definition: LuminosityBlockAuxiliary.h:15
edm::PreallocationConfiguration::numberOfLuminosityBlocks
unsigned int numberOfLuminosityBlocks() const
Definition: PreallocationConfiguration.h:36
edm::test::TestProcessor::testBeginProcessBlockImpl
edm::test::ProcessBlock testBeginProcessBlockImpl()
Definition: TestProcessor.cc:330
edm::ServiceToken
Definition: ServiceToken.h:42
BXlumiParameters_cfi.lumi
lumi
Definition: BXlumiParameters_cfi.py:6
ParentageRegistry.h
edm::PrincipalCache::runPrincipal
RunPrincipal & runPrincipal(ProcessHistoryID const &phid, RunNumber_t run) const
Definition: PrincipalCache.cc:21
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::WaitingTask::exceptionPtr
std::exception_ptr const * exceptionPtr() const
Returns exception thrown by dependent task.
Definition: WaitingTask.h:51
edm::ProductProvenance
Definition: ProductProvenance.h:24
edm::OccurrenceTraits< RunPrincipal, BranchActionGlobalEnd >
Definition: OccurrenceTraits.h:192
edm::ExceptionCollector
Definition: ExceptionCollector.h:33
edm::test::TestProcessor::beginLumiCalled_
bool beginLumiCalled_
Definition: TestProcessor.h:362
EventPrincipal.h
edm::test::TestProcessor::setupProcessing
void setupProcessing()
Definition: TestProcessor.cc:353
TrackValidation_cff.task
task
Definition: TrackValidation_cff.py:252
ProcessDesc.h
edm::Hash< ProcessHistoryType >
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::InEvent
Definition: BranchType.h:11
runTheMatrix.nThreads
nThreads
Definition: runTheMatrix.py:370
edm::OccurrenceTraits< RunPrincipal, BranchActionStreamEnd >
Definition: OccurrenceTraits.h:152
ExceptionCollector.h
ProductPutterBase.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:354
edm::test::TestProcessor::beginJob
void beginJob()
Definition: TestProcessor.cc:393
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:47
edm::test::Event
Definition: Event.h:36
edm::OccurrenceTraits< LuminosityBlockPrincipal, BranchActionGlobalBegin >
Definition: OccurrenceTraits.h:233
ParameterSet
Definition: Functions.h:16
edm::WaitingTaskHolder
Definition: WaitingTaskHolder.h:32
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
edmplugin::PluginManager::configure
static PluginManager & configure(const Config &)
Definition: PluginManager.cc:315
edm::test::TestProcessor::processContext_
ProcessContext processContext_
Definition: TestProcessor.h:342
edm::FinalWaitingTask::done
bool done() const
Definition: WaitingTask.h:82
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
edm::test::TestProcessor::testEndLuminosityBlockImpl
edm::test::LuminosityBlock testEndLuminosityBlockImpl()
Definition: TestProcessor.cc:256
RunPrincipal.h
edm::serviceregistry::kOverlapIsError
Definition: ServiceLegacy.h:29
edm::PrincipalCache::deleteRun
void deleteRun(ProcessHistoryID const &phid, RunNumber_t run)
Definition: PrincipalCache.cc:110
edm::test::TestProcessor::arena_
tbb::task_arena arena_
Definition: TestProcessor.h:329
edm::RunPrincipal::run
RunNumber_t run() const
Definition: RunPrincipal.h:61
edm::test::TestProcessor::eventNumber_
EventNumber_t eventNumber_
Definition: TestProcessor.h:358
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
edm::test::TestProcessorConfig::pythonConfiguration
std::string const & pythonConfiguration() const
Definition: TestProcessor.h:93
ExceptionActions.h
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
ThreadsController.h
edm::test::TestProcessor::beginJobCalled_
bool beginJobCalled_
Definition: TestProcessor.h:359
edm::HistoryAppender
Definition: HistoryAppender.h:13
edmplugin::standard::config
PluginManager::Config config()
Definition: standard.cc:21
edm::test::TestProcessor::esHelper_
std::shared_ptr< EventSetupTestHelper > esHelper_
Definition: TestProcessor.h:338
edm::test::TestProcessor::actReg_
std::shared_ptr< ActivityRegistry > actReg_
Definition: TestProcessor.h:331
LuminosityBlockPrincipal.h
edm::ProcessHistory::emplace_back
void emplace_back(Args &&... args)
Definition: ProcessHistory.h:34
edm::FinalWaitingTask
Definition: WaitingTask.h:76
SimL1EmulatorRepack_CalouGT_cff.processName
processName
Definition: SimL1EmulatorRepack_CalouGT_cff.py:17
alignCSCRings.r
r
Definition: alignCSCRings.py:93
edm::ProcessBlockPrincipal::fillProcessBlockPrincipal
void fillProcessBlockPrincipal(std::string const &processName, DelayedReader *reader=nullptr)
Definition: ProcessBlockPrincipal.cc:16
edm::test::TestProcessor::setEventNumber
void setEventNumber(edm::EventNumber_t)
Definition: TestProcessor.cc:771
ScheduleItems.h
edm::PreallocationConfiguration
Definition: PreallocationConfiguration.h:27
edm::test::TestProcessorConfig::extraProcesses
std::vector< std::string > const & extraProcesses() const
Definition: TestProcessor.h:103
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
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:337
edm::test::TestProcessor::testImpl
edm::test::Event testImpl()
Definition: TestProcessor.cc:213
PluginManager.h
edm::test::TestProcessor::schedule_
std::unique_ptr< Schedule > schedule_
Definition: TestProcessor.h:351
edm::PrincipalCache::getAvailableLumiPrincipalPtr
std::shared_ptr< LuminosityBlockPrincipal > getAvailableLumiPrincipalPtr()
Definition: PrincipalCache.cc:50
Exception
Definition: hltDiff.cc:245
edm::test::TestProcessor::beginProcessBlock
void beginProcessBlock()
Definition: TestProcessor.cc:423
ProcessDescImpl.h
edm::test::ProcessBlock
Definition: ProcessBlock.h:31
edm::OccurrenceTraits< LuminosityBlockPrincipal, BranchActionStreamEnd >
Definition: OccurrenceTraits.h:314
edm::test::TestProcessor::espController_
std::unique_ptr< eventsetup::EventSetupsController > espController_
Definition: TestProcessor.h:336
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:24
edm::PrincipalCache::processBlockPrincipal
ProcessBlockPrincipal & processBlockPrincipal() const
Definition: PrincipalCache.h:54
edm::BranchDescription::init
void init()
Definition: BranchDescription.h:59
edm::BranchDescription
Definition: BranchDescription.h:32
edm::test::TestProcessor::teardownProcessing
void teardownProcessing()
Definition: TestProcessor.cc:368
edm::test::TestProcessor::event
void event()
Definition: TestProcessor.cc:546
globalTransitionAsync.h
validateTopLevelParameterSets.h
mps_fire.result
result
Definition: mps_fire.py:311
TransitionInfoTypes.h
edm::ProcessHistory
Definition: ProcessHistory.h:13
edm::test::TestProcessor::beginProcessBlockCalled_
bool beginProcessBlockCalled_
Definition: TestProcessor.h:360
edm::RunPrincipal
Definition: RunPrincipal.h:34
edm::PrincipalCache::eventPrincipal
EventPrincipal & eventPrincipal(unsigned int iStreamIndex) const
Definition: PrincipalCache.h:70
Config
Definition: Config.py:1
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
edm::PrincipalCache::insert
void insert(std::unique_ptr< ProcessBlockPrincipal >)
Definition: PrincipalCache.cc:96
edm::EventID
Definition: EventID.h:31
edm::test::TestProcessor::endJob
void endJob()
Definition: TestProcessor.cc:733
lumi
Definition: LumiSectionData.h:20
edm::ServiceRegistry::Operate
Definition: ServiceRegistry.h:40
SystemBounds.h
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
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
EventSetupTestHelper.h
trackingPlots.common
common
Definition: trackingPlots.py:206
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:340
edm::test::TestProcessor::preallocations_
PreallocationConfiguration preallocations_
Definition: TestProcessor.h:348
edm::PrincipalCache::setNumberOfConcurrentPrincipals
void setNumberOfConcurrentPrincipals(PreallocationConfiguration const &)
Definition: PrincipalCache.cc:17
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316
edm::Timestamp
Definition: Timestamp.h:30