CMS 3D CMS Logo

WorkerT.cc
Go to the documentation of this file.
3 
15 
19 
24 
25 #include <type_traits>
26 
27 namespace edm {
28  namespace workerimpl {
29  template <typename T>
31  static bool constexpr value = false;
32  };
33 
34  template <>
36  static bool constexpr value = true;
37  };
38 
39  template <>
41  static bool constexpr value = true;
42  };
43 
44  template <>
46  static bool constexpr value = true;
47  };
48 
49  template <>
51  static bool constexpr value = true;
52  };
53 
54  template <>
56  static bool constexpr value = true;
57  };
58 
59  template <>
61  static bool constexpr value = true;
62  };
63 
64  template <>
66  static bool constexpr value = true;
67  };
68 
69  template <>
71  static bool constexpr value = true;
72  };
73 
74  template <>
76  static bool constexpr value = true;
77  };
78 
79  struct DoNothing {
80  template <typename... T>
81  inline void operator()(const T&...) {}
82  };
83 
84  template <typename T>
85  struct DoBeginStream {
86  inline void operator()(WorkerT<T>* iWorker, StreamID id) { iWorker->callWorkerBeginStream(0, id); }
87  };
88 
89  template <typename T>
90  struct DoEndStream {
91  inline void operator()(WorkerT<T>* iWorker, StreamID id) { iWorker->callWorkerEndStream(0, id); }
92  };
93 
94  template <typename T, typename INFOTYPE>
96  inline void operator()(WorkerT<T>* iWorker, StreamID id, INFOTYPE const& info, ModuleCallingContext const* mcc) {
97  iWorker->callWorkerStreamBegin(0, id, info, mcc);
98  }
99  };
100 
101  template <typename T, typename INFOTYPE>
103  inline void operator()(WorkerT<T>* iWorker, StreamID id, INFOTYPE const& info, ModuleCallingContext const* mcc) {
104  iWorker->callWorkerStreamEnd(0, id, info, mcc);
105  }
106  };
107  } // namespace workerimpl
108 
109  template <typename T>
110  inline WorkerT<T>::WorkerT(std::shared_ptr<T> ed, ModuleDescription const& md, ExceptionToActionTable const* actions)
111  : Worker(md, actions), module_(ed) {
112  assert(module_ != nullptr);
113  }
114 
115  template <typename T>
117 
118  template <typename T>
120  return module_->wantsProcessBlocks();
121  }
122 
123  template <typename T>
125  return module_->wantsInputProcessBlocks();
126  }
127 
128  template <typename T>
130  return module_->wantsGlobalRuns();
131  }
132 
133  template <typename T>
135  return module_->wantsGlobalLuminosityBlocks();
136  }
137 
138  template <typename T>
140  return module_->wantsStreamRuns();
141  }
142 
143  template <typename T>
145  return module_->wantsStreamLuminosityBlocks();
146  }
147 
148  template <typename T>
150  return nullptr;
151  }
152  template <typename T>
154  return nullptr;
155  }
156  template <>
158  return module_->globalRunsQueue();
159  }
160  template <>
162  return module_->globalLuminosityBlocksQueue();
163  }
164  template <>
166  return module_->globalRunsQueue();
167  }
168  template <>
170  return module_->globalLuminosityBlocksQueue();
171  }
172  template <>
174  return module_->globalRunsQueue();
175  }
176  template <>
178  return module_->globalLuminosityBlocksQueue();
179  }
180  //one
181  template <>
183  return module_->globalRunsQueue();
184  }
185  template <>
187  return module_->globalLuminosityBlocksQueue();
188  }
189  template <>
191  return module_->globalRunsQueue();
192  }
193  template <>
195  return module_->globalLuminosityBlocksQueue();
196  }
197  template <>
199  return module_->globalRunsQueue();
200  }
201  template <>
203  return module_->globalLuminosityBlocksQueue();
204  }
205  template <>
207  return module_->globalRunsQueue();
208  }
209  template <>
211  return module_->globalLuminosityBlocksQueue();
212  }
213 
214  template <typename T>
216  EventPrincipal const& ep = info.principal();
217  std::shared_ptr<Worker> sentry(this, [&ep](Worker* obj) { obj->postDoEvent(ep); });
218  return module_->doEvent(info, activityRegistry(), mcc);
219  }
220 
221  template <typename T>
223  ModuleCallingContext const*,
225 
226  template <>
228  ModuleCallingContext const* mcc,
229  WaitingTaskWithArenaHolder& holder) {
230  module_->doAcquire(info, activityRegistry(), mcc, holder);
231  }
232 
233  template <>
235  ModuleCallingContext const* mcc,
236  WaitingTaskWithArenaHolder& holder) {
237  module_->doAcquire(info, activityRegistry(), mcc, holder);
238  }
239 
240  template <>
242  ModuleCallingContext const* mcc,
243  WaitingTaskWithArenaHolder& holder) {
244  module_->doAcquire(info, activityRegistry(), mcc, holder);
245  }
246 
247  template <>
249  ModuleCallingContext const* mcc,
250  WaitingTaskWithArenaHolder& holder) {
251  module_->doAcquire(info, activityRegistry(), mcc, holder);
252  }
253 
254  template <typename T>
256  return false;
257  }
258 
259  template <typename T>
261  EventPrincipal const& ep,
262  ModuleCallingContext const* mcc) {
263  return true;
264  }
265  template <typename T>
266  inline void WorkerT<T>::itemsToGetForSelection(std::vector<ProductResolverIndexAndSkipBit>&) const {}
267 
268  template <>
270  return true;
271  }
272 
273  template <>
275  EventPrincipal const& ep,
276  ModuleCallingContext const* mcc) {
277  return module_->prePrefetchSelection(id, ep, mcc);
278  }
279  template <>
281  std::vector<ProductResolverIndexAndSkipBit>& iItems) const {
282  iItems = module_->productsUsedBySelection();
283  }
284 
285  template <>
287  return true;
288  }
289  template <>
291  EventPrincipal const& ep,
292  ModuleCallingContext const* mcc) {
293  return module_->prePrefetchSelection(id, ep, mcc);
294  }
295  template <>
297  std::vector<ProductResolverIndexAndSkipBit>& iItems) const {
298  iItems = module_->productsUsedBySelection();
299  }
300 
301  template <>
303  return true;
304  }
305  template <>
307  EventPrincipal const& ep,
308  ModuleCallingContext const* mcc) {
309  return module_->prePrefetchSelection(id, ep, mcc);
310  }
311  template <>
313  std::vector<ProductResolverIndexAndSkipBit>& iItems) const {
314  iItems = module_->productsUsedBySelection();
315  }
316 
317  template <typename T>
319  module_->doBeginProcessBlock(pbp, mcc);
320  return true;
321  }
322 
323  template <typename T>
325  module_->doAccessInputProcessBlock(pbp, mcc);
326  return true;
327  }
328 
329  template <typename T>
331  module_->doEndProcessBlock(pbp, mcc);
332  return true;
333  }
334 
335  template <typename T>
337  module_->doBeginRun(info, mcc);
338  return true;
339  }
340 
341  template <typename T>
342  template <typename D>
344  StreamID id,
345  RunTransitionInfo const& info,
346  ModuleCallingContext const* mcc) {
347  module_->doStreamBeginRun(id, info, mcc);
348  }
349 
350  template <typename T>
351  template <typename D>
353  module_->doStreamEndRun(id, info, mcc);
354  }
355 
356  template <typename T>
358  RunTransitionInfo const& info,
359  ModuleCallingContext const* mcc) {
363  might_call;
364  might_call(this, id, info, mcc);
365  return true;
366  }
367 
368  template <typename T>
373  might_call;
374  might_call(this, id, info, mcc);
375  return true;
376  }
377 
378  template <typename T>
380  module_->doEndRun(info, mcc);
381  return true;
382  }
383 
384  template <typename T>
386  module_->doBeginLuminosityBlock(info, mcc);
387  return true;
388  }
389 
390  template <typename T>
391  template <typename D>
393  StreamID id,
394  LumiTransitionInfo const& info,
395  ModuleCallingContext const* mcc) {
396  module_->doStreamBeginLuminosityBlock(id, info, mcc);
397  }
398 
399  template <typename T>
400  template <typename D>
402  module_->doStreamEndLuminosityBlock(id, info, mcc);
403  }
404 
405  template <typename T>
407  LumiTransitionInfo const& info,
408  ModuleCallingContext const* mcc) {
412  might_call;
413  might_call(this, id, info, mcc);
414  return true;
415  }
416 
417  template <typename T>
419  LumiTransitionInfo const& info,
420  ModuleCallingContext const* mcc) {
424  might_call;
425  might_call(this, id, info, mcc);
426 
427  return true;
428  }
429 
430  template <typename T>
432  module_->doEndLuminosityBlock(info, mcc);
433  return true;
434  }
435 
436  template <typename T>
438  return module_->workerType();
439  }
440 
441  template <typename T>
442  inline void WorkerT<T>::implBeginJob() {
443  module_->doBeginJob();
444  }
445 
446  template <typename T>
447  inline void WorkerT<T>::implEndJob() {
448  module_->doEndJob();
449  }
450 
451  template <typename T>
452  template <typename D>
454  module_->doBeginStream(id);
455  }
456 
457  template <typename T>
460  might_call;
461  might_call(this, id);
462  }
463 
464  template <typename T>
465  template <typename D>
467  module_->doEndStream(id);
468  }
469 
470  template <typename T>
473  might_call;
474  might_call(this, id);
475  }
476 
477  template <typename T>
479  module_->doRespondToOpenInputFile(fb);
480  }
481 
482  template <typename T>
484  module_->doRespondToCloseInputFile(fb);
485  }
486 
487  template <typename T>
490  module_->doRegisterThinnedAssociations(registry, helper);
491  }
492 
493  template <typename T>
495  return Worker::TaskQueueAdaptor{};
496  }
497  template <>
499  return &(module_->sharedResourcesAcquirer().serialQueueChain());
500  }
501  template <>
503  return &(module_->sharedResourcesAcquirer().serialQueueChain());
504  }
505  template <>
507  return &(module_->sharedResourcesAcquirer().serialQueueChain());
508  }
509  template <>
511  return &(module_->sharedResourcesAcquirer().serialQueueChain());
512  }
513  template <>
515  return &(module_->sharedResourcesAcquirer().serialQueueChain());
516  }
517  template <>
519  return &(module_->sharedResourcesAcquirer().serialQueueChain());
520  }
521  template <>
523  return &(module_->sharedResourcesAcquirer().serialQueueChain());
524  }
525  template <>
527  return &(module_->queue());
528  }
529  template <>
531  return &(module_->queue());
532  }
533  template <>
535  return &(module_->queue());
536  }
537  template <>
539  return &(module_->queue());
540  }
541 
542  namespace {
543  template <typename T>
544  bool mustPrefetchMayGet();
545 
546  template <>
547  bool mustPrefetchMayGet<EDAnalyzer>() {
548  return true;
549  }
550  template <>
551  bool mustPrefetchMayGet<EDProducer>() {
552  return true;
553  }
554  template <>
555  bool mustPrefetchMayGet<EDFilter>() {
556  return true;
557  }
558 
559  template <>
560  bool mustPrefetchMayGet<edm::one::EDProducerBase>() {
561  return true;
562  }
563  template <>
564  bool mustPrefetchMayGet<edm::one::EDFilterBase>() {
565  return true;
566  }
567  template <>
568  bool mustPrefetchMayGet<edm::one::EDAnalyzerBase>() {
569  return true;
570  }
571  template <>
572  bool mustPrefetchMayGet<edm::one::OutputModuleBase>() {
573  return true;
574  }
575 
576  template <>
577  bool mustPrefetchMayGet<edm::global::EDProducerBase>() {
578  return true;
579  }
580  template <>
581  bool mustPrefetchMayGet<edm::global::EDFilterBase>() {
582  return true;
583  }
584  template <>
585  bool mustPrefetchMayGet<edm::global::EDAnalyzerBase>() {
586  return true;
587  }
588  template <>
589  bool mustPrefetchMayGet<edm::global::OutputModuleBase>() {
590  return true;
591  }
592 
593  template <>
594  bool mustPrefetchMayGet<edm::limited::EDProducerBase>() {
595  return true;
596  }
597  template <>
598  bool mustPrefetchMayGet<edm::limited::EDFilterBase>() {
599  return true;
600  }
601  template <>
602  bool mustPrefetchMayGet<edm::limited::EDAnalyzerBase>() {
603  return true;
604  }
605  template <>
606  bool mustPrefetchMayGet<edm::limited::OutputModuleBase>() {
607  return true;
608  }
609 
610  template <>
611  bool mustPrefetchMayGet<edm::stream::EDProducerAdaptorBase>() {
612  return true;
613  }
614  template <>
615  bool mustPrefetchMayGet<edm::stream::EDFilterAdaptorBase>() {
616  return true;
617  }
618  template <>
619  bool mustPrefetchMayGet<edm::stream::EDAnalyzerAdaptorBase>() {
620  return true;
621  }
622 
623  } // namespace
624 
625  template <typename T>
627  module_->updateLookup(iBranchType, iHelper, mustPrefetchMayGet<T>());
628  }
629 
630  template <typename T>
632  module_->updateLookup(iPI);
633  }
634 
635  namespace {
636  using ModuleToResolverIndicies =
637  std::unordered_multimap<std::string, std::tuple<edm::TypeID const*, const char*, edm::ProductResolverIndex>>;
638  void resolvePutIndiciesImpl(void*,
639  BranchType iBranchType,
640  ModuleToResolverIndicies const& iIndicies,
641  std::string const& iModuleLabel) {
642  //Do nothing
643  }
644 
645  void resolvePutIndiciesImpl(ProducerBase* iProd,
646  BranchType iBranchType,
647  ModuleToResolverIndicies const& iIndicies,
648  std::string const& iModuleLabel) {
649  iProd->resolvePutIndicies(iBranchType, iIndicies, iModuleLabel);
650  }
651 
652  void resolvePutIndiciesImpl(edm::stream::EDProducerAdaptorBase* iProd,
653  BranchType iBranchType,
654  ModuleToResolverIndicies const& iIndicies,
655  std::string const& iModuleLabel) {
656  iProd->resolvePutIndicies(iBranchType, iIndicies, iModuleLabel);
657  }
658  void resolvePutIndiciesImpl(edm::stream::EDFilterAdaptorBase* iProd,
659  BranchType iBranchType,
660  ModuleToResolverIndicies const& iIndicies,
661  std::string const& iModuleLabel) {
662  iProd->resolvePutIndicies(iBranchType, iIndicies, iModuleLabel);
663  }
664 
665  std::vector<ProductResolverIndex> s_emptyIndexList;
666 
667  std::vector<ProductResolverIndex> const& itemsShouldPutInEventImpl(void const*) { return s_emptyIndexList; }
668 
669  std::vector<ProductResolverIndex> const& itemsShouldPutInEventImpl(ProducerBase const* iProd) {
670  return iProd->indiciesForPutProducts(edm::InEvent);
671  }
672 
673  std::vector<ProductResolverIndex> const& itemsShouldPutInEventImpl(edm::stream::EDProducerAdaptorBase const* iProd) {
674  return iProd->indiciesForPutProducts(edm::InEvent);
675  }
676 
677  std::vector<ProductResolverIndex> const& itemsShouldPutInEventImpl(edm::stream::EDFilterAdaptorBase const* iProd) {
678  return iProd->indiciesForPutProducts(edm::InEvent);
679  }
680 
681  } // namespace
682 
683  template <typename T>
685  BranchType iBranchType,
686  std::unordered_multimap<std::string, std::tuple<TypeID const*, const char*, edm::ProductResolverIndex>> const&
687  iIndicies) {
688  resolvePutIndiciesImpl(&module(), iBranchType, iIndicies, description()->moduleLabel());
689  }
690 
691  template <typename T>
692  std::vector<ProductResolverIndex> const& WorkerT<T>::itemsShouldPutInEvent() const {
693  return itemsShouldPutInEventImpl(&module());
694  }
695 
696  template <>
698  return Worker::kAnalyzer;
699  }
700  template <>
702  return Worker::kProducer;
703  }
704  template <>
706  return Worker::kFilter;
707  }
708  template <>
710  return Worker::kProducer;
711  }
712  template <>
714  return Worker::kFilter;
715  }
716  template <>
718  return Worker::kAnalyzer;
719  }
720  template <>
722  return Worker::kOutputModule;
723  }
724 
725  template <>
727  return Worker::kProducer;
728  }
729  template <>
731  return Worker::kFilter;
732  }
733  template <>
735  return Worker::kAnalyzer;
736  }
737  template <>
739  return Worker::kOutputModule;
740  }
741 
742  template <>
744  return Worker::kProducer;
745  }
746  template <>
748  return Worker::kFilter;
749  }
750  template <>
752  return Worker::kAnalyzer;
753  }
754  template <>
756  return Worker::kOutputModule;
757  }
758 
759  template <>
761  return Worker::kProducer;
762  }
763  template <>
765  return Worker::kFilter;
766  }
767  template <>
769  return Worker::kAnalyzer;
770  }
771 
772  //Explicitly instantiate our needed templates to avoid having the compiler
773  // instantiate them in all of our libraries
774  template class WorkerT<EDProducer>;
775  template class WorkerT<EDFilter>;
776  template class WorkerT<EDAnalyzer>;
777  template class WorkerT<one::EDProducerBase>;
778  template class WorkerT<one::EDFilterBase>;
779  template class WorkerT<one::EDAnalyzerBase>;
780  template class WorkerT<one::OutputModuleBase>;
781  template class WorkerT<global::EDProducerBase>;
782  template class WorkerT<global::EDFilterBase>;
783  template class WorkerT<global::EDAnalyzerBase>;
784  template class WorkerT<global::OutputModuleBase>;
788  template class WorkerT<limited::EDProducerBase>;
789  template class WorkerT<limited::EDFilterBase>;
790  template class WorkerT<limited::EDAnalyzerBase>;
791  template class WorkerT<limited::OutputModuleBase>;
792 } // namespace edm
edm::workerimpl::DoBeginStream
Definition: WorkerT.cc:85
edm::EventTransitionInfo
Definition: TransitionInfoTypes.h:26
EDFilterBase.h
edm::StreamID
Definition: StreamID.h:30
edm::stream::ProducingModuleAdaptorBase::resolvePutIndicies
void resolvePutIndicies(BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
Definition: ProducingModuleAdaptorBase.cc:161
sistrip::module_
static const char module_[]
Definition: ConstantsForGranularity.h:38
edm::workerimpl::DoStreamBeginTrans
Definition: WorkerT.cc:95
edm::eventsetup::ESRecordsToProxyIndices
Definition: ESRecordsToProxyIndices.h:35
edm::WorkerT::globalLuminosityBlocksQueue
SerialTaskQueue * globalLuminosityBlocksQueue() final
Definition: WorkerT.cc:153
WorkerT.h
edm::WorkerT::updateLookup
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &) final
Definition: WorkerT.cc:626
EDProducer.h
edm::WorkerT::implDo
bool implDo(EventTransitionInfo const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:215
edm::LumiTransitionInfo
Definition: TransitionInfoTypes.h:42
edm::WorkerT::implDoBegin
bool implDoBegin(RunTransitionInfo const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:336
edm::WorkerT::globalRunsQueue
SerialTaskQueue * globalRunsQueue() final
Definition: WorkerT.cc:149
edm::workerimpl::DoStreamEndTrans
Definition: WorkerT.cc:102
EDProducerBase.h
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::limited::EDFilterBase
Definition: EDFilterBase.h:49
edmLumisInFiles.description
description
Definition: edmLumisInFiles.py:11
edm::limited::EDProducerBase
Definition: EDProducerBase.h:50
edm::workerimpl::DoEndStream::operator()
void operator()(WorkerT< T > *iWorker, StreamID id)
Definition: WorkerT.cc:91
cms::cuda::assert
assert(be >=bs)
EDFilter.h
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
edm::stream::ProducingModuleAdaptorBase::indiciesForPutProducts
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts(BranchType iBranchType) const
Definition: ProducingModuleAdaptorBase.cc:170
edm::SerialTaskQueue
Definition: SerialTaskQueue.h:67
edm::Worker::kProducer
Definition: Worker.h:93
EDAnalyzer.h
edm::WorkerT::callWorkerStreamEnd
void callWorkerStreamEnd(D, StreamID, RunTransitionInfo const &, ModuleCallingContext const *)
Definition: WorkerT.cc:352
edm::WorkerT
Definition: Frameworkfwd.h:62
edm::Worker::Types
Types
Definition: Worker.h:93
edm::ProductResolverIndexHelper
Definition: ProductResolverIndexHelper.h:89
edm::stream::EDProducerAdaptorBase
Definition: EDProducerAdaptorBase.h:48
edm::RunTransitionInfo
Definition: TransitionInfoTypes.h:64
edm::WorkerT::workerType
std::string workerType() const override
Definition: WorkerT.cc:437
edm::ProcessBlockPrincipal
Definition: ProcessBlockPrincipal.h:22
EDAnalyzerBase.h
edm::BranchType
BranchType
Definition: BranchType.h:11
edm::WorkerT::wantsInputProcessBlocks
bool wantsInputProcessBlocks() const final
Definition: WorkerT.cc:124
edm::ModuleDescription
Definition: ModuleDescription.h:21
edm::WorkerT::implDoAccessInputProcessBlock
bool implDoAccessInputProcessBlock(ProcessBlockPrincipal const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:324
edm::ProductRegistry
Definition: ProductRegistry.h:37
edm::FileBlock
Definition: FileBlock.h:20
edm::WorkerT::implNeedToRunSelection
bool implNeedToRunSelection() const final
Definition: WorkerT.cc:255
edm::workerimpl::DoNothing
Definition: WorkerT.cc:79
edm::global::EDAnalyzerBase
Definition: EDAnalyzerBase.h:46
edm::WaitingTaskWithArenaHolder
Definition: WaitingTaskWithArenaHolder.h:34
edm::WorkerT::wantsStreamLuminosityBlocks
bool wantsStreamLuminosityBlocks() const final
Definition: WorkerT.cc:144
edm::Worker::kFilter
Definition: Worker.h:93
EDProducerBase.h
edm::WorkerT::module_
edm::propagate_const< std::shared_ptr< T > > module_
Definition: WorkerT.h:158
edm::EventPrincipal
Definition: EventPrincipal.h:46
edm::WorkerT::resolvePutIndicies
void resolvePutIndicies(BranchType iBranchType, std::unordered_multimap< std::string, std::tuple< TypeID const *, const char *, edm::ProductResolverIndex >> const &iIndicies) final
Definition: WorkerT.cc:684
edm::workerimpl::DoNothing::operator()
void operator()(const T &...)
Definition: WorkerT.cc:81
EventPrincipal.h
edm::Worker::kAnalyzer
Definition: Worker.h:93
edm::WorkerT::implDoPrePrefetchSelection
bool implDoPrePrefetchSelection(StreamID, EventPrincipal const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:260
edm::workerimpl::DoBeginStream::operator()
void operator()(WorkerT< T > *iWorker, StreamID id)
Definition: WorkerT.cc:86
EDAnalyzerAdaptorBase.h
edm::global::EDProducerBase
Definition: EDProducerBase.h:50
edm::workerimpl::DoStreamEndTrans::operator()
void operator()(WorkerT< T > *iWorker, StreamID id, INFOTYPE const &info, ModuleCallingContext const *mcc)
Definition: WorkerT.cc:103
edm::WorkerT::wantsGlobalRuns
bool wantsGlobalRuns() const final
Definition: WorkerT.cc:129
edm::InEvent
Definition: BranchType.h:11
edm::WorkerT::moduleType
Types moduleType() const override
edm::WorkerT::implDoEnd
bool implDoEnd(RunTransitionInfo const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:379
edm::Worker
Definition: Worker.h:90
getGTfromDQMFile.obj
obj
Definition: getGTfromDQMFile.py:32
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::WorkerT::implRegisterThinnedAssociations
void implRegisterThinnedAssociations(ProductRegistry const &, ThinnedAssociationsHelper &) override
Definition: WorkerT.cc:488
EDProducerAdaptorBase.h
edm::WorkerT::implEndStream
void implEndStream(StreamID) override
Definition: WorkerT.cc:471
edm::ThinnedAssociationsHelper
Definition: ThinnedAssociationsHelper.h:37
edm::limited::EDAnalyzerBase
Definition: EDAnalyzerBase.h:47
edm::WorkerT::implDoStreamBegin
bool implDoStreamBegin(StreamID, RunTransitionInfo const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:357
edm::WorkerT::itemsShouldPutInEvent
std::vector< ProductResolverIndex > const & itemsShouldPutInEvent() const override
Definition: WorkerT.cc:692
edm::WorkerT::wantsProcessBlocks
bool wantsProcessBlocks() const final
Definition: WorkerT.cc:119
edm::WorkerT::callWorkerStreamBegin
void callWorkerStreamBegin(D, StreamID, RunTransitionInfo const &, ModuleCallingContext const *)
Definition: WorkerT.cc:343
helper
Definition: helper.py:1
edm::WorkerT::callWorkerBeginStream
void callWorkerBeginStream(D, StreamID)
Definition: WorkerT.cc:453
edm::WorkerT::implDoStreamEnd
bool implDoStreamEnd(StreamID, RunTransitionInfo const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:369
value
Definition: value.py:1
edm::stream::EDAnalyzerAdaptorBase
Definition: EDAnalyzerAdaptorBase.h:64
edm::Worker::TaskQueueAdaptor
Definition: Worker.h:94
edm::ExceptionToActionTable
Definition: ExceptionActions.h:16
edm::stream::EDFilterAdaptorBase
Definition: EDFilterAdaptorBase.h:48
edm::WorkerT::implDoBeginProcessBlock
bool implDoBeginProcessBlock(ProcessBlockPrincipal const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:318
edm::WorkerT::wantsStreamRuns
bool wantsStreamRuns() const final
Definition: WorkerT.cc:139
edm::WorkerT::itemsToGetForSelection
void itemsToGetForSelection(std::vector< ProductResolverIndexAndSkipBit > &) const final
Definition: WorkerT.cc:266
edm::WorkerT::implBeginJob
void implBeginJob() override
Definition: WorkerT.cc:442
edm::WorkerT::implRespondToOpenInputFile
void implRespondToOpenInputFile(FileBlock const &fb) override
Definition: WorkerT.cc:478
EDFilterBase.h
edm::WorkerT::wantsGlobalLuminosityBlocks
bool wantsGlobalLuminosityBlocks() const final
Definition: WorkerT.cc:134
OutputModuleBase.h
funct::D
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:141
edm::workerimpl::has_stream_functions
Definition: WorkerT.cc:30
edm::workerimpl::DoStreamBeginTrans::operator()
void operator()(WorkerT< T > *iWorker, StreamID id, INFOTYPE const &info, ModuleCallingContext const *mcc)
Definition: WorkerT.cc:96
T
long double T
Definition: Basic3DVectorLD.h:48
relativeConstraints.value
value
Definition: relativeConstraints.py:53
edm::WorkerT::serializeRunModule
TaskQueueAdaptor serializeRunModule() override
Definition: WorkerT.cc:494
edm::workerimpl::DoEndStream
Definition: WorkerT.cc:90
edm::WorkerT::callWorkerEndStream
void callWorkerEndStream(D, StreamID)
Definition: WorkerT.cc:466
edm::global::EDFilterBase
Definition: EDFilterBase.h:49
edm::WorkerT::implBeginStream
void implBeginStream(StreamID) override
Definition: WorkerT.cc:458
EDFilterAdaptorBase.h
EDFilterBase.h
actions
roAction_t actions[nactions]
Definition: GenABIO.cc:181
edm::WorkerT::implDoAcquire
void implDoAcquire(EventTransitionInfo const &, ModuleCallingContext const *, WaitingTaskWithArenaHolder &) final
Definition: WorkerT.cc:222
OutputModuleBase.h
OutputModuleBase.h
HerwigMaxPtPartonFilter_cfi.moduleLabel
moduleLabel
Definition: HerwigMaxPtPartonFilter_cfi.py:4
EDProducerBase.h
EDAnalyzerBase.h
edm::Worker::kOutputModule
Definition: Worker.h:93
edm::WorkerT::implRespondToCloseInputFile
void implRespondToCloseInputFile(FileBlock const &fb) override
Definition: WorkerT.cc:483
edm::WorkerT::WorkerT
WorkerT(std::shared_ptr< T >, ModuleDescription const &, ExceptionToActionTable const *actions)
Definition: WorkerT.cc:110
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
benchmark_cfg.fb
fb
Definition: benchmark_cfg.py:14
EDAnalyzerBase.h
edm::WorkerT::~WorkerT
~WorkerT() override
Definition: WorkerT.cc:116
edm::WorkerT::implEndJob
void implEndJob() override
Definition: WorkerT.cc:447
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29
edm::WorkerT::implDoEndProcessBlock
bool implDoEndProcessBlock(ProcessBlockPrincipal const &, ModuleCallingContext const *) override
Definition: WorkerT.cc:330