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 
33 
36 
39 
43 
45 
47 
49 
50 #define xstr(s) str(s)
51 #define str(s) #s
52 
53 namespace edm {
54  namespace test {
55 
56  namespace {
57 
58  bool oneTimeInitializationImpl() {
60 
61  static std::unique_ptr<edm::ThreadsController> tsiPtr = std::make_unique<edm::ThreadsController>(1);
62 
63  // register the empty parentage vector , once and for all
65 
66  // register the empty parameter set, once and for all.
67  ParameterSet().registerIt();
68  return true;
69  }
70 
71  bool oneTimeInitialization() {
72  static const bool s_init{oneTimeInitializationImpl()};
73  return s_init;
74  }
75  } // namespace
76 
77  //
78  // constructors and destructor
79  //
81  : globalControl_(tbb::global_control::max_allowed_parallelism, 1),
82  arena_(1),
83  espController_(std::make_unique<eventsetup::EventSetupsController>()),
84  historyAppender_(std::make_unique<HistoryAppender>()),
85  moduleRegistry_(std::make_shared<ModuleRegistry>()) {
86  //Setup various singletons
87  (void)oneTimeInitialization();
88 
90 
91  auto psetPtr = desc.parameterSet();
92 
93  validateTopLevelParameterSets(psetPtr.get());
94 
95  labelOfTestModule_ = psetPtr->getParameter<std::string>("@moduleToTest");
96 
97  auto procDesc = desc.processDesc();
98  // Now do general initialization
100 
101  //initialize the services
102  auto& serviceSets = procDesc->getServicesPSets();
103  ServiceToken token = items.initServices(serviceSets, *psetPtr, iToken, serviceregistry::kOverlapIsError, true);
104  serviceToken_ = items.addCPRandTNS(*psetPtr, token);
105 
106  //make the services available
108 
109  // intialize miscellaneous items
110  std::shared_ptr<CommonParams> common(items.initMisc(*psetPtr));
111 
112  // intialize the event setup provider
113  esp_ = espController_->makeProvider(*psetPtr, items.actReg_.get());
114 
115  auto nThreads = 1U;
116  auto nStreams = 1U;
117  auto nConcurrentLumis = 1U;
118  auto nConcurrentRuns = 1U;
119  preallocations_ = PreallocationConfiguration{nThreads, nStreams, nConcurrentLumis, nConcurrentRuns};
120 
121  espController_->setMaxConcurrentIOVs(nStreams, nConcurrentLumis);
122  if (not iConfig.esProduceEntries().empty()) {
123  esHelper_ = std::make_unique<EventSetupTestHelper>(iConfig.esProduceEntries());
124  esp_->add(std::dynamic_pointer_cast<eventsetup::DataProxyProvider>(esHelper_));
125  esp_->add(std::dynamic_pointer_cast<EventSetupRecordIntervalFinder>(esHelper_));
126  }
127 
128  preg_ = items.preg();
129  processConfiguration_ = items.processConfiguration();
130 
131  edm::ParameterSet emptyPSet;
132  emptyPSet.registerIt();
133  auto psetid = emptyPSet.id();
134 
135  ProcessHistory oldHistory;
136  for (auto const& p : iConfig.extraProcesses()) {
137  oldHistory.emplace_back(p, psetid, xstr(PROJECT_VERSION), "0");
139  }
140 
141  //setup the products we will be adding to the event
142  for (auto const& produce : iConfig.produceEntries()) {
143  auto processName = produce.processName_;
144  if (processName.empty()) {
145  processName = processConfiguration_->processName();
146  }
147  edm::TypeWithDict twd(produce.type_.typeInfo());
149  produce.moduleLabel_,
150  processName,
151  twd.userClassName(),
152  twd.friendlyClassName(),
153  produce.instanceLabel_,
154  "",
155  psetid,
156  twd,
157  true //force this to come from 'source'
158  );
159  product.init();
160  dataProducts_.emplace_back(product, std::unique_ptr<WrapperBase>());
161  preg_->addProduct(product);
162  }
163 
164  schedule_ = items.initSchedule(*psetPtr, false, preallocations_, &processContext_);
165  // set the data members
166  act_table_ = std::move(items.act_table_);
167  actReg_ = items.actReg_;
168  branchIDListHelper_ = items.branchIDListHelper();
169  thinnedAssociationsHelper_ = items.thinnedAssociationsHelper();
172 
174 
175  preg_->setFrozen();
176  for (unsigned int index = 0; index < preallocations_.numberOfStreams(); ++index) {
177  // Reusable event principal
178  auto ep = std::make_shared<EventPrincipal>(preg_,
182  historyAppender_.get(),
183  index);
185  }
186 
187  for (unsigned int index = 0; index < preallocations_.numberOfLuminosityBlocks(); ++index) {
188  auto lp =
189  std::make_unique<LuminosityBlockPrincipal>(preg_, *processConfiguration_, historyAppender_.get(), index);
191  }
192  {
193  auto pb = std::make_unique<ProcessBlockPrincipal>(preg_, *processConfiguration_);
195  }
196  }
197 
199  //
200  // member functions
201  //
202 
203  void TestProcessor::put(unsigned int index, std::unique_ptr<WrapperBase> iWrapper) {
204  if (index >= dataProducts_.size()) {
205  throw cms::Exception("LogicError") << "Products must be declared to the TestProcessor::Config object\n"
206  "with a call to the function \'produces\' BEFORE passing the\n"
207  "TestProcessor::Config object to the TestProcessor constructor";
208  }
209  dataProducts_[index].second = std::move(iWrapper);
210  }
211 
213  bool result = arena_.execute([this]() {
214  setupProcessing();
215  event();
216 
217  return schedule_->totalEventsPassed() > 0;
218  });
219  schedule_->clearCounters();
220  if (esHelper_) {
221  //We want each test to have its own ES data products
222  esHelper_->resetAllProxies();
223  }
224  return edm::test::Event(
226  }
227 
229  arena_.execute([this, iNum]() {
230  if (not beginJobCalled_) {
231  beginJob();
232  }
233  if (not beginProcessBlockCalled_) {
235  }
236  if (not beginRunCalled_) {
237  beginRun();
238  }
239  if (beginLumiCalled_) {
241  assert(lumiNumber_ != iNum);
242  }
243  lumiNumber_ = iNum;
245  });
246 
247  if (esHelper_) {
248  //We want each test to have its own ES data products
249  esHelper_->resetAllProxies();
250  }
251 
253  }
254 
256  //using a return value from arena_.execute lead to double delete of shared_ptr
257  // based on valgrind output when exception occurred. Use lambda capture instead.
258  std::shared_ptr<edm::LuminosityBlockPrincipal> lumi;
259  arena_.execute([this, &lumi]() {
260  if (not beginJobCalled_) {
261  beginJob();
262  }
263  if (not beginProcessBlockCalled_) {
265  }
266  if (not beginRunCalled_) {
267  beginRun();
268  }
269  if (not beginLumiCalled_) {
271  }
273  });
274  if (esHelper_) {
275  //We want each test to have its own ES data products
276  esHelper_->resetAllProxies();
277  }
278 
280  }
281 
283  arena_.execute([this, iNum]() {
284  if (not beginJobCalled_) {
285  beginJob();
286  }
287  if (not beginProcessBlockCalled_) {
289  }
290  if (beginRunCalled_) {
291  assert(runNumber_ != iNum);
292  endRun();
293  }
294  runNumber_ = iNum;
295  beginRun();
296  });
297  if (esHelper_) {
298  //We want each test to have its own ES data products
299  esHelper_->resetAllProxies();
300  }
301 
302  return edm::test::Run(
304  }
306  //using a return value from arena_.execute lead to double delete of shared_ptr
307  // based on valgrind output when exception occurred. Use lambda capture instead.
308  std::shared_ptr<edm::RunPrincipal> rp;
309  arena_.execute([this, &rp]() {
310  if (not beginJobCalled_) {
311  beginJob();
312  }
313  if (not beginProcessBlockCalled_) {
315  }
316  if (not beginRunCalled_) {
317  beginRun();
318  }
319  rp = endRun();
320  });
321  if (esHelper_) {
322  //We want each test to have its own ES data products
323  esHelper_->resetAllProxies();
324  }
325 
326  return edm::test::Run(rp, labelOfTestModule_, processConfiguration_->processName());
327  }
328 
330  arena_.execute([this]() {
331  if (not beginJobCalled_) {
332  beginJob();
333  }
335  });
338  }
340  auto pbp = arena_.execute([this]() {
341  if (not beginJobCalled_) {
342  beginJob();
343  }
344  if (not beginProcessBlockCalled_) {
346  }
347  return endProcessBlock();
348  });
350  }
351 
353  if (not beginJobCalled_) {
354  beginJob();
355  }
356  if (not beginProcessBlockCalled_) {
358  }
359  if (not beginRunCalled_) {
360  beginRun();
361  }
362  if (not beginLumiCalled_) {
364  }
365  }
366 
368  arena_.execute([this]() {
369  if (beginLumiCalled_) {
371  beginLumiCalled_ = false;
372  }
373  if (beginRunCalled_) {
374  endRun();
375  beginRunCalled_ = false;
376  }
378  endProcessBlock();
379  beginProcessBlockCalled_ = false;
380  }
381  if (beginJobCalled_) {
382  endJob();
383  }
384  espController_->endIOVs();
385  });
386  }
387 
390 
395  actReg_->preallocateSignal_(bounds);
396  schedule_->convertCurrentProcessAlias(processConfiguration_->processName());
397  PathsAndConsumesOfModules pathsAndConsumesOfModules;
398 
399  //The code assumes only modules make data in the current process
400  // Since the test os also allowed to do so, it can lead to problems.
401  //pathsAndConsumesOfModules.initialize(schedule_.get(), preg_);
402 
403  //NOTE: this may throw
404  //checkForModuleDependencyCorrectness(pathsAndConsumesOfModules, false);
405  actReg_->preBeginJobSignal_(pathsAndConsumesOfModules, processContext_);
406 
407  espController_->finishConfiguration();
408 
409  schedule_->beginJob(*preg_, esp_->recordsToProxyIndices());
410  actReg_->postBeginJobSignal_();
411 
412  for (unsigned int i = 0; i < preallocations_.numberOfStreams(); ++i) {
413  schedule_->beginStream(i);
414  }
415  beginJobCalled_ = true;
416  }
417 
420  processBlockPrincipal.fillProcessBlockPrincipal(processConfiguration_->processName());
421 
422  std::vector<edm::SubProcess> emptyList;
423  {
424  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
426  auto globalWaitTask = make_empty_waiting_task();
427  globalWaitTask->increment_ref_count();
428 
429  beginGlobalTransitionAsync<Traits>(
430  WaitingTaskHolder(globalWaitTask.get()), *schedule_, transitionInfo, serviceToken_, emptyList);
431 
432  globalWaitTask->wait_for_all();
433  if (globalWaitTask->exceptionPtr() != nullptr) {
434  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
435  }
436  }
438  }
439 
441  ProcessHistoryID phid;
442  auto aux = std::make_shared<RunAuxiliary>(runNumber_, Timestamp(), Timestamp());
443  auto rp = std::make_shared<RunPrincipal>(aux, preg_, *processConfiguration_, historyAppender_.get(), 0);
444 
446  RunPrincipal& runPrincipal = principalCache_.runPrincipal(phid, runNumber_);
447 
448  IOVSyncValue ts(EventID(runPrincipal.run(), 0, 0), runPrincipal.beginTime());
449  espController_->eventSetupForInstance(ts);
450 
451  auto const& es = esp_->eventSetupImpl();
452 
453  RunTransitionInfo transitionInfo(runPrincipal, es);
454 
455  std::vector<edm::SubProcess> emptyList;
456  {
458  auto globalWaitTask = make_empty_waiting_task();
459  globalWaitTask->increment_ref_count();
460  beginGlobalTransitionAsync<Traits>(
461  WaitingTaskHolder(globalWaitTask.get()), *schedule_, transitionInfo, serviceToken_, emptyList);
462  globalWaitTask->wait_for_all();
463  if (globalWaitTask->exceptionPtr() != nullptr) {
464  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
465  }
466  }
467  {
468  //To wait, the ref count has to be 1+#streams
469  auto streamLoopWaitTask = make_empty_waiting_task();
470  streamLoopWaitTask->increment_ref_count();
471 
473  beginStreamsTransitionAsync<Traits>(streamLoopWaitTask.get(),
474  *schedule_,
476  transitionInfo,
478  emptyList);
479 
480  streamLoopWaitTask->wait_for_all();
481  if (streamLoopWaitTask->exceptionPtr() != nullptr) {
482  std::rethrow_exception(*(streamLoopWaitTask->exceptionPtr()));
483  }
484  }
485  beginRunCalled_ = true;
486  }
487 
491  lumiPrincipal_->clearPrincipal();
493  lumiPrincipal_->setAux(aux);
494 
495  lumiPrincipal_->setRunPrincipal(principalCache_.runPrincipalPtr());
496 
498  espController_->eventSetupForInstance(ts);
499 
500  auto const& es = esp_->eventSetupImpl();
501 
502  LumiTransitionInfo transitionInfo(*lumiPrincipal_, es, nullptr);
503 
504  std::vector<edm::SubProcess> emptyList;
505  {
507  auto globalWaitTask = make_empty_waiting_task();
508  globalWaitTask->increment_ref_count();
509  beginGlobalTransitionAsync<Traits>(
510  WaitingTaskHolder(globalWaitTask.get()), *schedule_, transitionInfo, serviceToken_, emptyList);
511  globalWaitTask->wait_for_all();
512  if (globalWaitTask->exceptionPtr() != nullptr) {
513  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
514  }
515  }
516  {
517  //To wait, the ref count has to be 1+#streams
518  auto streamLoopWaitTask = make_empty_waiting_task();
519  streamLoopWaitTask->increment_ref_count();
520 
522 
523  beginStreamsTransitionAsync<Traits>(streamLoopWaitTask.get(),
524  *schedule_,
526  transitionInfo,
528  emptyList);
529 
530  streamLoopWaitTask->wait_for_all();
531  if (streamLoopWaitTask->exceptionPtr() != nullptr) {
532  std::rethrow_exception(*(streamLoopWaitTask->exceptionPtr()));
533  }
534  }
535  beginLumiCalled_ = true;
536  }
537 
539  auto pep = &(principalCache_.eventPrincipal(0));
540 
541  //this resets the EventPrincipal (if it had been used before)
542  pep->clearEventPrincipal();
543  pep->fillEventPrincipal(
545  nullptr,
546  nullptr);
547  assert(lumiPrincipal_.get() != nullptr);
548  pep->setLuminosityBlockPrincipal(lumiPrincipal_.get());
549 
550  for (auto& p : dataProducts_) {
551  if (p.second) {
552  pep->put(p.first, std::move(p.second), ProductProvenance(p.first.branchID()));
553  } else {
554  //The data product was not set so we need to
555  // tell the ProductResolver not to wait
556  auto r = pep->getProductResolver(p.first.branchID());
557  r->putProduct(std::unique_ptr<WrapperBase>());
558  }
559  }
560 
562 
563  auto waitTask = make_empty_waiting_task();
564  waitTask->increment_ref_count();
565 
566  EventTransitionInfo info(*pep, esp_->eventSetupImpl());
567  schedule_->processOneEventAsync(edm::WaitingTaskHolder(waitTask.get()), 0, info, serviceToken_);
568 
569  waitTask->wait_for_all();
570  if (waitTask->exceptionPtr() != nullptr) {
571  std::rethrow_exception(*(waitTask->exceptionPtr()));
572  }
573  ++eventNumber_;
574  }
575 
576  std::shared_ptr<LuminosityBlockPrincipal> TestProcessor::endLuminosityBlock() {
577  auto lumiPrincipal = lumiPrincipal_;
578  if (beginLumiCalled_) {
579  beginLumiCalled_ = false;
580  lumiPrincipal_.reset();
581 
582  IOVSyncValue ts(EventID(runNumber_, lumiNumber_, eventNumber_), lumiPrincipal->endTime());
583  espController_->eventSetupForInstance(ts);
584 
585  auto const& es = esp_->eventSetupImpl();
586 
587  LumiTransitionInfo transitionInfo(*lumiPrincipal, es, nullptr);
588 
589  std::vector<edm::SubProcess> emptyList;
590 
591  //To wait, the ref count has to be 1+#streams
592  {
593  auto streamLoopWaitTask = make_empty_waiting_task();
594  streamLoopWaitTask->increment_ref_count();
595 
597 
598  endStreamsTransitionAsync<Traits>(WaitingTaskHolder(streamLoopWaitTask.get()),
599  *schedule_,
601  transitionInfo,
603  emptyList,
604  false);
605 
606  streamLoopWaitTask->wait_for_all();
607  if (streamLoopWaitTask->exceptionPtr() != nullptr) {
608  std::rethrow_exception(*(streamLoopWaitTask->exceptionPtr()));
609  }
610  }
611  {
612  auto globalWaitTask = make_empty_waiting_task();
613  globalWaitTask->increment_ref_count();
614 
616  endGlobalTransitionAsync<Traits>(
617  WaitingTaskHolder(globalWaitTask.get()), *schedule_, transitionInfo, serviceToken_, emptyList, false);
618  globalWaitTask->wait_for_all();
619  if (globalWaitTask->exceptionPtr() != nullptr) {
620  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
621  }
622  }
623  }
624  return lumiPrincipal;
625  }
626 
627  std::shared_ptr<edm::RunPrincipal> TestProcessor::endRun() {
628  std::shared_ptr<RunPrincipal> rp;
629  if (beginRunCalled_) {
630  beginRunCalled_ = false;
631  ProcessHistoryID phid;
633  RunPrincipal& runPrincipal = *rp;
634 
635  IOVSyncValue ts(
637  runPrincipal.endTime());
638  espController_->eventSetupForInstance(ts);
639 
640  auto const& es = esp_->eventSetupImpl();
641 
642  RunTransitionInfo transitionInfo(runPrincipal, es);
643 
644  std::vector<edm::SubProcess> emptyList;
645 
646  //To wait, the ref count has to be 1+#streams
647  {
648  auto streamLoopWaitTask = make_empty_waiting_task();
649  streamLoopWaitTask->increment_ref_count();
650 
652 
653  endStreamsTransitionAsync<Traits>(WaitingTaskHolder(streamLoopWaitTask.get()),
654  *schedule_,
656  transitionInfo,
658  emptyList,
659  false);
660 
661  streamLoopWaitTask->wait_for_all();
662  if (streamLoopWaitTask->exceptionPtr() != nullptr) {
663  std::rethrow_exception(*(streamLoopWaitTask->exceptionPtr()));
664  }
665  }
666  {
667  auto globalWaitTask = make_empty_waiting_task();
668  globalWaitTask->increment_ref_count();
669 
671  endGlobalTransitionAsync<Traits>(
672  WaitingTaskHolder(globalWaitTask.get()), *schedule_, transitionInfo, serviceToken_, emptyList, false);
673  globalWaitTask->wait_for_all();
674  if (globalWaitTask->exceptionPtr() != nullptr) {
675  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
676  }
677  }
678 
680  }
681  return rp;
682  }
683 
687  beginProcessBlockCalled_ = false;
688 
689  std::vector<edm::SubProcess> emptyList;
690  {
691  auto globalWaitTask = make_empty_waiting_task();
692  globalWaitTask->increment_ref_count();
693 
694  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
696  endGlobalTransitionAsync<Traits>(
697  WaitingTaskHolder(globalWaitTask.get()), *schedule_, transitionInfo, serviceToken_, emptyList, false);
698  globalWaitTask->wait_for_all();
699  if (globalWaitTask->exceptionPtr() != nullptr) {
700  std::rethrow_exception(*(globalWaitTask->exceptionPtr()));
701  }
702  }
703  }
704  return &processBlockPrincipal;
705  }
706 
708  if (!beginJobCalled_) {
709  return;
710  }
711  beginJobCalled_ = false;
712 
713  // Collects exceptions, so we don't throw before all operations are performed.
715  "Multiple exceptions were thrown while executing endJob. An exception message follows for each.\n");
716 
717  //make the services available
719 
720  //NOTE: this really should go elsewhere in the future
721  for (unsigned int i = 0; i < preallocations_.numberOfStreams(); ++i) {
722  c.call([this, i]() { this->schedule_->endStream(i); });
723  }
724  auto actReg = actReg_.get();
725  c.call([actReg]() { actReg->preEndJobSignal_(); });
726  schedule_->endJob(c);
727  c.call([actReg]() { actReg->postEndJobSignal_(); });
728  if (c.hasThrown()) {
729  c.rethrow();
730  }
731  }
732 
734  if (beginRunCalled_) {
736  endRun();
737  }
738  runNumber_ = iRun;
739  }
742  lumiNumber_ = iLumi;
743  }
744 
746 
747  } // namespace test
748 } // 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:740
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:198
edm::test::TestProcessor::thinnedAssociationsHelper_
std::shared_ptr< ThinnedAssociationsHelper > thinnedAssociationsHelper_
Definition: TestProcessor.h:332
edm::test::TestProcessor::TestProcessor
TestProcessor(Config const &iConfig, ServiceToken iToken=ServiceToken())
Definition: TestProcessor.cc:80
edm::LumiTransitionInfo
Definition: TransitionInfoTypes.h:42
edm::validateTopLevelParameterSets
void validateTopLevelParameterSets(ParameterSet *processParameterSet)
Definition: validateTopLevelParameterSets.cc:89
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:733
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::test::TestProcessor::testEndRunImpl
edm::test::Run testEndRunImpl()
Definition: TestProcessor.cc:305
xstr
#define xstr(s)
Definition: TestProcessor.cc:50
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
edm::PrincipalCache::setProcessHistoryRegistry
void setProcessHistoryRegistry(ProcessHistoryRegistry const &phr)
Definition: PrincipalCache.h:87
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:276
edm::test::TestProcessor::processHistoryRegistry_
ProcessHistoryRegistry processHistoryRegistry_
Definition: TestProcessor.h:342
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:328
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:139
edm::test::TestProcessor::beginRunCalled_
bool beginRunCalled_
Definition: TestProcessor.h:359
edm::test::TestProcessor::serviceToken_
ServiceToken serviceToken_
Definition: TestProcessor.h:333
edm::test::TestProcessor::processConfiguration_
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: TestProcessor.h:339
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:576
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:350
edm::test::TestProcessor::testEndProcessBlockImpl
edm::test::ProcessBlock testEndProcessBlockImpl()
Definition: TestProcessor.cc:339
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:362
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:112
edm::test::TestProcessor::runNumber_
RunNumber_t runNumber_
Definition: TestProcessor.h:354
edm::test::TestProcessor::beginRun
void beginRun()
Definition: TestProcessor.cc:440
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:329
edm::ServiceToken
Definition: ServiceToken.h:40
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::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:360
EventPrincipal.h
edm::test::TestProcessor::setupProcessing
void setupProcessing()
Definition: TestProcessor.cc:352
ProcessDesc.h
edm::Hash< ProcessHistoryType >
edm::test::TestProcessor::historyAppender_
std::unique_ptr< HistoryAppender > historyAppender_
Definition: TestProcessor.h:343
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
edm::test::TestProcessor::preg_
std::shared_ptr< ProductRegistry > preg_
Definition: TestProcessor.h:330
edm::InEvent
Definition: BranchType.h:11
runTheMatrix.nThreads
nThreads
Definition: runTheMatrix.py:361
edm::OccurrenceTraits< RunPrincipal, BranchActionStreamEnd >
Definition: OccurrenceTraits.h:152
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:352
edm::test::TestProcessor::beginJob
void beginJob()
Definition: TestProcessor.cc:388
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: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:294
edmplugin::PluginManager::configure
static PluginManager & configure(const Config &)
Definition: PluginManager.cc:315
edm::test::TestProcessor::processContext_
ProcessContext processContext_
Definition: TestProcessor.h:340
edm::test::TestProcessor::endRun
std::shared_ptr< RunPrincipal > endRun()
Definition: TestProcessor.cc:627
edm::test::TestProcessor::testEndLuminosityBlockImpl
edm::test::LuminosityBlock testEndLuminosityBlockImpl()
Definition: TestProcessor.cc:255
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:327
edm::RunPrincipal::run
RunNumber_t run() const
Definition: RunPrincipal.h:61
edm::test::TestProcessor::eventNumber_
EventNumber_t eventNumber_
Definition: TestProcessor.h:356
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
edm::test::TestProcessorConfig::pythonConfiguration
std::string const & pythonConfiguration() const
Definition: TestProcessor.h:92
ExceptionActions.h
edm::test::TestProcessor::branchIDListHelper_
std::shared_ptr< BranchIDListHelper > branchIDListHelper_
Definition: TestProcessor.h:331
edm::test::TestProcessor::put
void put(std::pair< edm::EDPutTokenT< T >, std::unique_ptr< T >> &&iPut)
Definition: TestProcessor.h:262
ThreadsController.h
edm::test::TestProcessor::beginJobCalled_
bool beginJobCalled_
Definition: TestProcessor.h:357
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
edm::test::TestProcessor::esHelper_
std::shared_ptr< EventSetupTestHelper > esHelper_
Definition: TestProcessor.h:336
edm::test::TestProcessor::actReg_
std::shared_ptr< ActivityRegistry > actReg_
Definition: TestProcessor.h:329
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::ProcessBlockPrincipal::fillProcessBlockPrincipal
void fillProcessBlockPrincipal(std::string const &processName, DelayedReader *reader=nullptr)
Definition: ProcessBlockPrincipal.cc:15
edm::test::TestProcessor::setEventNumber
void setEventNumber(edm::EventNumber_t)
Definition: TestProcessor.cc:745
ScheduleItems.h
edm::PreallocationConfiguration
Definition: PreallocationConfiguration.h:27
edm::test::TestProcessorConfig::extraProcesses
std::vector< std::string > const & extraProcesses() const
Definition: TestProcessor.h:102
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:335
edm::test::TestProcessor::testImpl
edm::test::Event testImpl()
Definition: TestProcessor.cc:212
PluginManager.h
edm::test::TestProcessor::schedule_
std::unique_ptr< Schedule > schedule_
Definition: TestProcessor.h:349
edm::PrincipalCache::getAvailableLumiPrincipalPtr
std::shared_ptr< LuminosityBlockPrincipal > getAvailableLumiPrincipalPtr()
Definition: PrincipalCache.cc:50
Exception
Definition: hltDiff.cc:246
edm::test::TestProcessor::beginProcessBlock
void beginProcessBlock()
Definition: TestProcessor.cc:418
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:334
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:367
edm::test::TestProcessor::event
void event()
Definition: TestProcessor.cc:538
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:358
edm::RunPrincipal
Definition: RunPrincipal.h:34
edm::PrincipalCache::eventPrincipal
EventPrincipal & eventPrincipal(unsigned int iStreamIndex) const
Definition: PrincipalCache.h:70
Config
Definition: Config.py:1
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:707
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:488
edm::test::TestProcessor::endProcessBlock
ProcessBlockPrincipal const * endProcessBlock()
Definition: TestProcessor.cc:684
edm::test::TestProcessor::principalCache_
PrincipalCache principalCache_
Definition: TestProcessor.h:345
edm::test::TestProcessorConfig::esProduceEntries
std::vector< ESProduceEntry > const & esProduceEntries() const
Definition: TestProcessor.h:141
edm::test::TestProcessor::lumiNumber_
LuminosityBlockNumber_t lumiNumber_
Definition: TestProcessor.h:355
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:338
edm::test::TestProcessor::preallocations_
PreallocationConfiguration preallocations_
Definition: TestProcessor.h:346
edm::PrincipalCache::setNumberOfConcurrentPrincipals
void setNumberOfConcurrentPrincipals(PreallocationConfiguration const &)
Definition: PrincipalCache.cc:17
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:318
edm::Timestamp
Definition: Timestamp.h:30