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 P>
96  inline void operator()(
97  WorkerT<T>* iWorker, StreamID id, P const& rp, EventSetupImpl const& c, ModuleCallingContext const* mcc) {
98  iWorker->callWorkerStreamBegin(0, id, rp, c, mcc);
99  }
100  };
101 
102  template <typename T, typename P>
104  inline void operator()(
105  WorkerT<T>* iWorker, StreamID id, P const& rp, EventSetupImpl const& c, ModuleCallingContext const* mcc) {
106  iWorker->callWorkerStreamEnd(0, id, rp, c, mcc);
107  }
108  };
109  } // namespace workerimpl
110 
111  template <typename T>
112  inline WorkerT<T>::WorkerT(std::shared_ptr<T> ed, ModuleDescription const& md, ExceptionToActionTable const* actions)
113  : Worker(md, actions), module_(ed) {
114  assert(module_ != nullptr);
115  }
116 
117  template <typename T>
119 
120  template <typename T>
122  return module_->wantsGlobalRuns();
123  }
124 
125  template <typename T>
127  return module_->wantsGlobalLuminosityBlocks();
128  }
129 
130  template <typename T>
132  return module_->wantsStreamRuns();
133  }
134 
135  template <typename T>
137  return module_->wantsStreamLuminosityBlocks();
138  }
139 
140  template <typename T>
142  return nullptr;
143  }
144  template <typename T>
146  return nullptr;
147  }
148  template <>
150  return module_->globalRunsQueue();
151  }
152  template <>
154  return module_->globalLuminosityBlocksQueue();
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  //one
173  template <>
175  return module_->globalRunsQueue();
176  }
177  template <>
179  return module_->globalLuminosityBlocksQueue();
180  }
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 
206  template <typename T>
207  inline bool WorkerT<T>::implDo(EventPrincipal const& ep, EventSetupImpl const& c, ModuleCallingContext const* mcc) {
208  std::shared_ptr<Worker> sentry(this, [&ep](Worker* obj) { obj->postDoEvent(ep); });
209  return module_->doEvent(ep, c, activityRegistry(), mcc);
210  }
211 
212  template <typename T>
214  EventSetupImpl const&,
215  ModuleCallingContext const*,
217 
218  template <>
220  EventSetupImpl const& c,
221  ModuleCallingContext const* mcc,
222  WaitingTaskWithArenaHolder& holder) {
223  module_->doAcquire(ep, c, activityRegistry(), mcc, holder);
224  }
225 
226  template <>
228  EventSetupImpl const& c,
229  ModuleCallingContext const* mcc,
230  WaitingTaskWithArenaHolder& holder) {
231  module_->doAcquire(ep, c, activityRegistry(), mcc, holder);
232  }
233 
234  template <>
236  EventSetupImpl const& c,
237  ModuleCallingContext const* mcc,
238  WaitingTaskWithArenaHolder& holder) {
239  module_->doAcquire(ep, c, activityRegistry(), mcc, holder);
240  }
241 
242  template <>
244  EventSetupImpl const& c,
245  ModuleCallingContext const* mcc,
246  WaitingTaskWithArenaHolder& holder) {
247  module_->doAcquire(ep, c, activityRegistry(), mcc, holder);
248  }
249 
250  template <typename T>
252  return false;
253  }
254 
255  template <typename T>
257  EventPrincipal const& ep,
258  ModuleCallingContext const* mcc) {
259  return true;
260  }
261  template <typename T>
262  inline void WorkerT<T>::itemsToGetForSelection(std::vector<ProductResolverIndexAndSkipBit>&) const {}
263 
264  template <>
266  return true;
267  }
268 
269  template <>
271  EventPrincipal const& ep,
272  ModuleCallingContext const* mcc) {
273  return module_->prePrefetchSelection(id, ep, mcc);
274  }
275  template <>
277  std::vector<ProductResolverIndexAndSkipBit>& iItems) const {
278  iItems = module_->productsUsedBySelection();
279  }
280 
281  template <>
283  return true;
284  }
285  template <>
287  EventPrincipal const& ep,
288  ModuleCallingContext const* mcc) {
289  return module_->prePrefetchSelection(id, ep, mcc);
290  }
291  template <>
293  std::vector<ProductResolverIndexAndSkipBit>& iItems) const {
294  iItems = module_->productsUsedBySelection();
295  }
296 
297  template <>
299  return true;
300  }
301  template <>
303  EventPrincipal const& ep,
304  ModuleCallingContext const* mcc) {
305  return module_->prePrefetchSelection(id, ep, mcc);
306  }
307  template <>
309  std::vector<ProductResolverIndexAndSkipBit>& iItems) const {
310  iItems = module_->productsUsedBySelection();
311  }
312 
313  template <typename T>
314  inline bool WorkerT<T>::implDoBegin(RunPrincipal const& rp,
315  EventSetupImpl const& c,
316  ModuleCallingContext const* mcc) {
317  module_->doBeginRun(rp, c, mcc);
318  return true;
319  }
320 
321  template <typename T>
322  template <typename D>
324  D, StreamID id, RunPrincipal const& rp, EventSetupImpl const& c, ModuleCallingContext const* mcc) {
325  module_->doStreamBeginRun(id, rp, c, mcc);
326  }
327 
328  template <typename T>
329  template <typename D>
331  D, StreamID id, RunPrincipal const& rp, EventSetupImpl const& c, ModuleCallingContext const* mcc) {
332  module_->doStreamEndRun(id, rp, c, mcc);
333  }
334 
335  template <typename T>
337  RunPrincipal const& rp,
338  EventSetupImpl const& c,
339  ModuleCallingContext const* mcc) {
343  might_call;
344  might_call(this, id, rp, c, mcc);
345  return true;
346  }
347 
348  template <typename T>
350  RunPrincipal const& rp,
351  EventSetupImpl const& c,
352  ModuleCallingContext const* mcc) {
356  might_call;
357  might_call(this, id, rp, c, mcc);
358  return true;
359  }
360 
361  template <typename T>
362  inline bool WorkerT<T>::implDoEnd(RunPrincipal const& rp, EventSetupImpl const& c, ModuleCallingContext const* mcc) {
363  module_->doEndRun(rp, c, mcc);
364  return true;
365  }
366 
367  template <typename T>
369  EventSetupImpl const& c,
370  ModuleCallingContext const* mcc) {
371  module_->doBeginLuminosityBlock(lbp, c, mcc);
372  return true;
373  }
374 
375  template <typename T>
376  template <typename D>
378  D, StreamID id, LuminosityBlockPrincipal const& rp, EventSetupImpl const& c, ModuleCallingContext const* mcc) {
379  module_->doStreamBeginLuminosityBlock(id, rp, c, mcc);
380  }
381 
382  template <typename T>
383  template <typename D>
385  D, StreamID id, LuminosityBlockPrincipal const& rp, EventSetupImpl const& c, ModuleCallingContext const* mcc) {
386  module_->doStreamEndLuminosityBlock(id, rp, c, mcc);
387  }
388 
389  template <typename T>
391  LuminosityBlockPrincipal const& lbp,
392  EventSetupImpl const& c,
393  ModuleCallingContext const* mcc) {
397  might_call;
398  might_call(this, id, lbp, c, mcc);
399  return true;
400  }
401 
402  template <typename T>
404  LuminosityBlockPrincipal const& lbp,
405  EventSetupImpl const& c,
406  ModuleCallingContext const* mcc) {
410  might_call;
411  might_call(this, id, lbp, c, mcc);
412 
413  return true;
414  }
415 
416  template <typename T>
418  EventSetupImpl const& c,
419  ModuleCallingContext const* mcc) {
420  module_->doEndLuminosityBlock(lbp, c, mcc);
421  return true;
422  }
423 
424  template <typename T>
426  return module_->workerType();
427  }
428 
429  template <typename T>
430  inline void WorkerT<T>::implBeginJob() {
431  module_->doBeginJob();
432  }
433 
434  template <typename T>
435  inline void WorkerT<T>::implEndJob() {
436  module_->doEndJob();
437  }
438 
439  template <typename T>
440  template <typename D>
442  module_->doBeginStream(id);
443  }
444 
445  template <typename T>
448  might_call;
449  might_call(this, id);
450  }
451 
452  template <typename T>
453  template <typename D>
455  module_->doEndStream(id);
456  }
457 
458  template <typename T>
461  might_call;
462  might_call(this, id);
463  }
464 
465  template <typename T>
467  module_->doRespondToOpenInputFile(fb);
468  }
469 
470  template <typename T>
472  module_->doRespondToCloseInputFile(fb);
473  }
474 
475  template <typename T>
478  module_->doRegisterThinnedAssociations(registry, helper);
479  }
480 
481  template <typename T>
483  return Worker::TaskQueueAdaptor{};
484  }
485  template <>
487  return &(module_->sharedResourcesAcquirer().serialQueueChain());
488  }
489  template <>
491  return &(module_->sharedResourcesAcquirer().serialQueueChain());
492  }
493  template <>
495  return &(module_->sharedResourcesAcquirer().serialQueueChain());
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_->queue());
516  }
517  template <>
519  return &(module_->queue());
520  }
521  template <>
523  return &(module_->queue());
524  }
525  template <>
527  return &(module_->queue());
528  }
529 
530  namespace {
531  template <typename T>
532  bool mustPrefetchMayGet();
533 
534  template <>
535  bool mustPrefetchMayGet<EDAnalyzer>() {
536  return true;
537  }
538  template <>
539  bool mustPrefetchMayGet<EDProducer>() {
540  return true;
541  }
542  template <>
543  bool mustPrefetchMayGet<EDFilter>() {
544  return true;
545  }
546 
547  template <>
548  bool mustPrefetchMayGet<edm::one::EDProducerBase>() {
549  return true;
550  }
551  template <>
552  bool mustPrefetchMayGet<edm::one::EDFilterBase>() {
553  return true;
554  }
555  template <>
556  bool mustPrefetchMayGet<edm::one::EDAnalyzerBase>() {
557  return true;
558  }
559  template <>
560  bool mustPrefetchMayGet<edm::one::OutputModuleBase>() {
561  return true;
562  }
563 
564  template <>
565  bool mustPrefetchMayGet<edm::global::EDProducerBase>() {
566  return true;
567  }
568  template <>
569  bool mustPrefetchMayGet<edm::global::EDFilterBase>() {
570  return true;
571  }
572  template <>
573  bool mustPrefetchMayGet<edm::global::EDAnalyzerBase>() {
574  return true;
575  }
576  template <>
577  bool mustPrefetchMayGet<edm::global::OutputModuleBase>() {
578  return true;
579  }
580 
581  template <>
582  bool mustPrefetchMayGet<edm::limited::EDProducerBase>() {
583  return true;
584  }
585  template <>
586  bool mustPrefetchMayGet<edm::limited::EDFilterBase>() {
587  return true;
588  }
589  template <>
590  bool mustPrefetchMayGet<edm::limited::EDAnalyzerBase>() {
591  return true;
592  }
593  template <>
594  bool mustPrefetchMayGet<edm::limited::OutputModuleBase>() {
595  return true;
596  }
597 
598  template <>
599  bool mustPrefetchMayGet<edm::stream::EDProducerAdaptorBase>() {
600  return true;
601  }
602  template <>
603  bool mustPrefetchMayGet<edm::stream::EDFilterAdaptorBase>() {
604  return true;
605  }
606  template <>
607  bool mustPrefetchMayGet<edm::stream::EDAnalyzerAdaptorBase>() {
608  return true;
609  }
610 
611  } // namespace
612 
613  template <typename T>
615  module_->updateLookup(iBranchType, iHelper, mustPrefetchMayGet<T>());
616  }
617 
618  template <typename T>
620  module_->updateLookup(iPI);
621  }
622 
623  namespace {
624  using ModuleToResolverIndicies =
625  std::unordered_multimap<std::string, std::tuple<edm::TypeID const*, const char*, edm::ProductResolverIndex>>;
626  void resolvePutIndiciesImpl(void*,
627  BranchType iBranchType,
628  ModuleToResolverIndicies const& iIndicies,
629  std::string const& iModuleLabel) {
630  //Do nothing
631  }
632 
633  void resolvePutIndiciesImpl(ProducerBase* iProd,
634  BranchType iBranchType,
635  ModuleToResolverIndicies const& iIndicies,
636  std::string const& iModuleLabel) {
637  iProd->resolvePutIndicies(iBranchType, iIndicies, iModuleLabel);
638  }
639 
640  void resolvePutIndiciesImpl(edm::stream::EDProducerAdaptorBase* iProd,
641  BranchType iBranchType,
642  ModuleToResolverIndicies const& iIndicies,
643  std::string const& iModuleLabel) {
644  iProd->resolvePutIndicies(iBranchType, iIndicies, iModuleLabel);
645  }
646  void resolvePutIndiciesImpl(edm::stream::EDFilterAdaptorBase* iProd,
647  BranchType iBranchType,
648  ModuleToResolverIndicies const& iIndicies,
649  std::string const& iModuleLabel) {
650  iProd->resolvePutIndicies(iBranchType, iIndicies, iModuleLabel);
651  }
652 
653  std::vector<ProductResolverIndex> s_emptyIndexList;
654 
655  std::vector<ProductResolverIndex> const& itemsShouldPutInEventImpl(void const*) { return s_emptyIndexList; }
656 
657  std::vector<ProductResolverIndex> const& itemsShouldPutInEventImpl(ProducerBase const* iProd) {
658  return iProd->indiciesForPutProducts(edm::InEvent);
659  }
660 
661  std::vector<ProductResolverIndex> const& itemsShouldPutInEventImpl(edm::stream::EDProducerAdaptorBase const* iProd) {
662  return iProd->indiciesForPutProducts(edm::InEvent);
663  }
664 
665  std::vector<ProductResolverIndex> const& itemsShouldPutInEventImpl(edm::stream::EDFilterAdaptorBase const* iProd) {
666  return iProd->indiciesForPutProducts(edm::InEvent);
667  }
668 
669  } // namespace
670 
671  template <typename T>
673  BranchType iBranchType,
674  std::unordered_multimap<std::string, std::tuple<TypeID const*, const char*, edm::ProductResolverIndex>> const&
675  iIndicies) {
676  resolvePutIndiciesImpl(&module(), iBranchType, iIndicies, description().moduleLabel());
677  }
678 
679  template <typename T>
680  std::vector<ProductResolverIndex> const& WorkerT<T>::itemsShouldPutInEvent() const {
681  return itemsShouldPutInEventImpl(&module());
682  }
683 
684  template <>
686  return Worker::kAnalyzer;
687  }
688  template <>
690  return Worker::kProducer;
691  }
692  template <>
694  return Worker::kFilter;
695  }
696  template <>
698  return Worker::kProducer;
699  }
700  template <>
702  return Worker::kFilter;
703  }
704  template <>
706  return Worker::kAnalyzer;
707  }
708  template <>
710  return Worker::kOutputModule;
711  }
712 
713  template <>
715  return Worker::kProducer;
716  }
717  template <>
719  return Worker::kFilter;
720  }
721  template <>
723  return Worker::kAnalyzer;
724  }
725  template <>
727  return Worker::kOutputModule;
728  }
729 
730  template <>
732  return Worker::kProducer;
733  }
734  template <>
736  return Worker::kFilter;
737  }
738  template <>
740  return Worker::kAnalyzer;
741  }
742  template <>
744  return Worker::kOutputModule;
745  }
746 
747  template <>
749  return Worker::kProducer;
750  }
751  template <>
753  return Worker::kFilter;
754  }
755  template <>
757  return Worker::kAnalyzer;
758  }
759 
760  //Explicitly instantiate our needed templates to avoid having the compiler
761  // instantiate them in all of our libraries
762  template class WorkerT<EDProducer>;
763  template class WorkerT<EDFilter>;
764  template class WorkerT<EDAnalyzer>;
765  template class WorkerT<one::EDProducerBase>;
766  template class WorkerT<one::EDFilterBase>;
767  template class WorkerT<one::EDAnalyzerBase>;
768  template class WorkerT<one::OutputModuleBase>;
769  template class WorkerT<global::EDProducerBase>;
770  template class WorkerT<global::EDFilterBase>;
771  template class WorkerT<global::EDAnalyzerBase>;
772  template class WorkerT<global::OutputModuleBase>;
776  template class WorkerT<limited::EDProducerBase>;
777  template class WorkerT<limited::EDFilterBase>;
778  template class WorkerT<limited::EDAnalyzerBase>;
779  template class WorkerT<limited::OutputModuleBase>;
780 } // namespace edm
edm::WorkerT::implDoEnd
bool implDoEnd(RunPrincipal const &rp, EventSetupImpl const &c, ModuleCallingContext const *mcc) override
Definition: WorkerT.cc:362
edm::workerimpl::DoBeginStream
Definition: WorkerT.cc:85
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:143
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:145
WorkerT.h
edm::WorkerT::updateLookup
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &) final
Definition: WorkerT.cc:614
EDProducer.h
edm::EventSetupImpl
Definition: EventSetupImpl.h:44
edm::WorkerT::globalRunsQueue
SerialTaskQueue * globalRunsQueue() final
Definition: WorkerT.cc:141
edm::workerimpl::DoStreamEndTrans
Definition: WorkerT.cc:103
EDProducerBase.h
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::limited::EDFilterBase
Definition: EDFilterBase.h:50
edmLumisInFiles.description
description
Definition: edmLumisInFiles.py:11
edm::limited::EDProducerBase
Definition: EDProducerBase.h:51
edm::WorkerT::implDoStreamEnd
bool implDoStreamEnd(StreamID id, RunPrincipal const &rp, EventSetupImpl const &c, ModuleCallingContext const *mcc) override
Definition: WorkerT.cc:349
edm::LuminosityBlockPrincipal
Definition: LuminosityBlockPrincipal.h:31
edm::workerimpl::DoEndStream::operator()
void operator()(WorkerT< T > *iWorker, StreamID id)
Definition: WorkerT.cc:91
edm::WorkerT::implDoBegin
bool implDoBegin(RunPrincipal const &rp, EventSetupImpl const &c, ModuleCallingContext const *mcc) override
Definition: WorkerT.cc:314
cms::cuda::assert
assert(be >=bs)
EDFilter.h
edm::stream::ProducingModuleAdaptorBase::indiciesForPutProducts
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts(BranchType iBranchType) const
Definition: ProducingModuleAdaptorBase.cc:152
edm::SerialTaskQueue
Definition: SerialTaskQueue.h:67
edm::Worker::kProducer
Definition: Worker.h:86
EDAnalyzer.h
edm::WorkerT
Definition: Frameworkfwd.h:54
edm::Worker::Types
Types
Definition: Worker.h:86
edm::ProductResolverIndexHelper
Definition: ProductResolverIndexHelper.h:89
edm::WorkerT::callWorkerStreamEnd
void callWorkerStreamEnd(D, StreamID id, RunPrincipal const &rp, EventSetupImpl const &c, ModuleCallingContext const *mcc)
Definition: WorkerT.cc:330
edm::stream::EDProducerAdaptorBase
Definition: EDProducerAdaptorBase.h:48
edm::WorkerT::workerType
std::string workerType() const override
Definition: WorkerT.cc:425
EDAnalyzerBase.h
edm::BranchType
BranchType
Definition: BranchType.h:11
edm::ModuleDescription
Definition: ModuleDescription.h:21
edm::WorkerT::implDoStreamBegin
bool implDoStreamBegin(StreamID id, RunPrincipal const &rp, EventSetupImpl const &c, ModuleCallingContext const *mcc) override
Definition: WorkerT.cc:336
edm::ProductRegistry
Definition: ProductRegistry.h:34
edm::FileBlock
Definition: FileBlock.h:20
edm::WorkerT::implNeedToRunSelection
bool implNeedToRunSelection() const final
Definition: WorkerT.cc:251
edm::workerimpl::DoNothing
Definition: WorkerT.cc:79
edm::global::EDAnalyzerBase
Definition: EDAnalyzerBase.h:47
edm::WaitingTaskWithArenaHolder
Definition: WaitingTaskWithArenaHolder.h:31
edm::WorkerT::wantsStreamLuminosityBlocks
bool wantsStreamLuminosityBlocks() const final
Definition: WorkerT.cc:136
edm::Worker::kFilter
Definition: Worker.h:86
EDProducerBase.h
edm::WorkerT::module_
edm::propagate_const< std::shared_ptr< T > > module_
Definition: WorkerT.h:165
edm::EventPrincipal
Definition: EventPrincipal.h:46
edm::WorkerT::callWorkerStreamBegin
void callWorkerStreamBegin(D, StreamID id, RunPrincipal const &rp, EventSetupImpl const &c, ModuleCallingContext const *mcc)
Definition: WorkerT.cc:323
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:672
edm::workerimpl::DoNothing::operator()
void operator()(const T &...)
Definition: WorkerT.cc:81
EventPrincipal.h
edm::Worker::kAnalyzer
Definition: Worker.h:86
edm::workerimpl::DoBeginStream::operator()
void operator()(WorkerT< T > *iWorker, StreamID id)
Definition: WorkerT.cc:86
EDAnalyzerAdaptorBase.h
edm::global::EDProducerBase
Definition: EDProducerBase.h:51
edm::WorkerT::wantsGlobalRuns
bool wantsGlobalRuns() const final
Definition: WorkerT.cc:121
edm::InEvent
Definition: BranchType.h:11
edm::WorkerT::moduleType
Types moduleType() const override
edm::Worker
Definition: Worker.h:83
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:476
EDProducerAdaptorBase.h
edm::WorkerT::implEndStream
void implEndStream(StreamID) override
Definition: WorkerT.cc:459
edm::ThinnedAssociationsHelper
Definition: ThinnedAssociationsHelper.h:35
edm::limited::EDAnalyzerBase
Definition: EDAnalyzerBase.h:48
edm::WorkerT::itemsShouldPutInEvent
std::vector< ProductResolverIndex > const & itemsShouldPutInEvent() const override
Definition: WorkerT.cc:680
helper
Definition: helper.py:1
edm::WorkerT::callWorkerBeginStream
void callWorkerBeginStream(D, StreamID)
Definition: WorkerT.cc:441
value
Definition: value.py:1
edm::stream::EDAnalyzerAdaptorBase
Definition: EDAnalyzerAdaptorBase.h:62
edm::Worker::TaskQueueAdaptor
Definition: Worker.h:87
edm::ExceptionToActionTable
Definition: ExceptionActions.h:16
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
module
Definition: vlib.h:198
edm::stream::EDFilterAdaptorBase
Definition: EDFilterAdaptorBase.h:48
edm::workerimpl::DoStreamEndTrans::operator()
void operator()(WorkerT< T > *iWorker, StreamID id, P const &rp, EventSetupImpl const &c, ModuleCallingContext const *mcc)
Definition: WorkerT.cc:104
edm::WorkerT::wantsStreamRuns
bool wantsStreamRuns() const final
Definition: WorkerT.cc:131
edm::WorkerT::itemsToGetForSelection
void itemsToGetForSelection(std::vector< ProductResolverIndexAndSkipBit > &) const final
Definition: WorkerT.cc:262
edm::WorkerT::implBeginJob
void implBeginJob() override
Definition: WorkerT.cc:430
edm::WorkerT::implRespondToOpenInputFile
void implRespondToOpenInputFile(FileBlock const &fb) override
Definition: WorkerT.cc:466
EDFilterBase.h
edm::WorkerT::wantsGlobalLuminosityBlocks
bool wantsGlobalLuminosityBlocks() const final
Definition: WorkerT.cc:126
OutputModuleBase.h
funct::D
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:141
edm::workerimpl::has_stream_functions
Definition: WorkerT.cc:30
edm::WorkerT::implDo
bool implDo(EventPrincipal const &ep, EventSetupImpl const &c, ModuleCallingContext const *mcc) override
Definition: WorkerT.cc:207
edm::WorkerT::implDoPrePrefetchSelection
bool implDoPrePrefetchSelection(StreamID id, EventPrincipal const &ep, ModuleCallingContext const *mcc) override
Definition: WorkerT.cc:256
T
long double T
Definition: Basic3DVectorLD.h:48
relativeConstraints.value
value
Definition: relativeConstraints.py:53
edm::WorkerT::serializeRunModule
TaskQueueAdaptor serializeRunModule() override
Definition: WorkerT.cc:482
edm::workerimpl::DoEndStream
Definition: WorkerT.cc:90
edm::WorkerT::callWorkerEndStream
void callWorkerEndStream(D, StreamID)
Definition: WorkerT.cc:454
edm::global::EDFilterBase
Definition: EDFilterBase.h:50
edm::workerimpl::DoStreamBeginTrans::operator()
void operator()(WorkerT< T > *iWorker, StreamID id, P const &rp, EventSetupImpl const &c, ModuleCallingContext const *mcc)
Definition: WorkerT.cc:96
edm::WorkerT::implDoAcquire
void implDoAcquire(EventPrincipal const &ep, EventSetupImpl const &c, ModuleCallingContext const *mcc, WaitingTaskWithArenaHolder &holder) final
Definition: WorkerT.cc:213
edm::WorkerT::implBeginStream
void implBeginStream(StreamID) override
Definition: WorkerT.cc:446
EDFilterAdaptorBase.h
EDFilterBase.h
actions
roAction_t actions[nactions]
Definition: GenABIO.cc:181
OutputModuleBase.h
OutputModuleBase.h
HerwigMaxPtPartonFilter_cfi.moduleLabel
moduleLabel
Definition: HerwigMaxPtPartonFilter_cfi.py:4
edm::RunPrincipal
Definition: RunPrincipal.h:34
P
std::pair< OmniClusterRef, TrackingParticleRef > P
Definition: BDHadronTrackMonitoringAnalyzer.cc:202
EDProducerBase.h
EDAnalyzerBase.h
edm::Worker::kOutputModule
Definition: Worker.h:86
edm::WorkerT::implRespondToCloseInputFile
void implRespondToCloseInputFile(FileBlock const &fb) override
Definition: WorkerT.cc:471
edm::WorkerT::WorkerT
WorkerT(std::shared_ptr< T >, ModuleDescription const &, ExceptionToActionTable const *actions)
Definition: WorkerT.cc:112
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:118
edm::WorkerT::implEndJob
void implEndJob() override
Definition: WorkerT.cc:435
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29