CMS 3D CMS Logo

callAbilities.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_stream_callAbilities_h
2 #define FWCore_Framework_stream_callAbilities_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : callAbilities
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Sat, 03 Aug 2013 16:28:35 GMT
19 //
20 
21 // system include files
22 #include <memory>
23 #include <type_traits>
24 
25 // user include files
29 
30 // forward declarations
31 namespace edm {
32  class EDConsumerBase;
33  class Run;
34  class EventSetup;
35  class LuminosityBlock;
36  class ProcessBlock;
37  namespace stream {
38  //********************************
39  // CallGlobal
40  //********************************
41  namespace callGlobalDetail {
42  template <typename, typename = std::void_t<>>
43  struct has_globalBeginJob : std::false_type {};
44 
45  template <typename T>
46  struct has_globalBeginJob<T, std::void_t<decltype(T::globalBeginJob(nullptr))>> : std::true_type {};
47  } // namespace callGlobalDetail
48  template <typename T, bool>
49  struct CallGlobalImpl {
50  template <typename B>
51  static void set(B* iProd, typename T::GlobalCache const* iCache) {
52  static_cast<T*>(iProd)->setGlobalCache(iCache);
53  }
54  static void beginJob(typename T::GlobalCache* iCache) {
56  T::globalBeginJob(iCache);
57  }
58  }
59  static void endJob(typename T::GlobalCache* iCache) { T::globalEndJob(iCache); }
60  };
61  template <typename T>
62  struct CallGlobalImpl<T, false> {
63  static void set(void* iProd, void const* iCache) {}
64  static void beginJob(void* iCache) {}
65  static void endJob(void* iCache) {}
66  };
67 
68  template <typename T>
70 
71  //********************************
72  // CallInputProcessBlock
73  //********************************
74  template <typename T, bool, bool>
76  static void set(T* iProd,
78  unsigned int iStreamModule) {
79  iProd->setProcessBlockCache(iCaches->get());
80  if (iStreamModule == 0 && iProd->cacheFillersRegistered()) {
81  (*iCaches)->moveProcessBlockCacheFiller(iProd->tokenInfos(), iProd->cacheFillers());
82  }
83  iProd->clearRegistration();
84  }
85 
88  ProductRegistry const& productRegistry,
89  ProcessBlockHelperBase const& processBlockHelperBase,
90  EDConsumerBase const& edConsumerBase) {
91  iCaches->selectInputProcessBlocks(productRegistry, processBlockHelperBase, edConsumerBase);
92  }
93 
95  edm::ProcessBlock const& processBlock,
96  typename T::GlobalCache* iGC,
98  iCaches->accessInputProcessBlock(processBlock);
99  T::accessInputProcessBlock(processBlock, iGC);
100  }
101 
103  iCaches->clearCaches();
104  }
105  };
106 
107  template <typename T>
109  static void set(T* iProd,
111  unsigned int iStreamModule) {
112  iProd->setProcessBlockCache(iCaches->get());
113  if (iStreamModule == 0 && iProd->cacheFillersRegistered()) {
114  (*iCaches)->moveProcessBlockCacheFiller(iProd->tokenInfos(), iProd->cacheFillers());
115  }
116  iProd->clearRegistration();
117  }
118 
121  ProductRegistry const& productRegistry,
122  ProcessBlockHelperBase const& processBlockHelperBase,
123  EDConsumerBase const& edConsumerBase) {
124  iCaches->selectInputProcessBlocks(productRegistry, processBlockHelperBase, edConsumerBase);
125  }
126 
128  edm::ProcessBlock const& processBlock,
129  typename T::GlobalCache*,
131  iCaches->accessInputProcessBlock(processBlock);
132  T::accessInputProcessBlock(processBlock);
133  }
134 
136  iCaches->clearCaches();
137  }
138  };
139 
140  template <typename T>
142  static void set(void*, void const*, unsigned int) {}
144  ProductRegistry const&,
145  ProcessBlockHelperBase const&,
146  EDConsumerBase const&) {}
147 
149  edm::ProcessBlock const&,
150  typename T::GlobalCache*,
152 
154  };
155 
156  template <typename T>
158  static void set(void*, void const*, unsigned int) {}
160  ProductRegistry const&,
161  ProcessBlockHelperBase const&,
162  EDConsumerBase const&) {}
164  edm::ProcessBlock const&,
165  typename T::GlobalCache*,
167 
169  };
170 
171  template <typename T>
172  using CallInputProcessBlock =
174 
175  //********************************
176  // CallGlobalRun
177  //********************************
178  template <typename T, bool>
180  static void beginRun(edm::Run const& iRun,
181  edm::EventSetup const& iES,
182  typename T::GlobalCache const* iGC,
183  std::shared_ptr<typename T::RunCache const>& oCache) {
184  oCache = T::globalBeginRun(iRun, iES, iGC);
185  }
186 
187  template <typename B>
188  static void set(B* iProd, typename T::RunCache const* iCache) {
189  static_cast<T*>(iProd)->setRunCache(iCache);
190  }
191 
192  static void endRun(edm::Run const& iRun, edm::EventSetup const& iES, typename T::RunContext const* iContext) {
193  T::globalEndRun(iRun, iES, iContext);
194  }
195  };
196 
197  template <typename T>
199  static void beginRun(edm::Run const&, edm::EventSetup const&, typename T::GlobalCache const*, impl::dummy_ptr) {}
200  static void set(void* iProd, typename T::RunCache const* iCache) {}
201  static void endRun(edm::Run const&, edm::EventSetup const&, typename T::RunContext const*) {}
202  };
203 
204  template <typename T>
206 
207  //********************************
208  // CallGlobalRunSummary
209  //********************************
210  template <typename T, bool>
212  static void beginRun(edm::Run const& iRun,
213  edm::EventSetup const& iES,
214  typename T::RunContext const* iRC,
215  std::shared_ptr<typename T::RunSummaryCache>& oCache) {
216  oCache = T::globalBeginRunSummary(iRun, iES, iRC);
217  }
218  template <typename B>
219  static void streamEndRunSummary(B* iProd,
220  edm::Run const& iRun,
221  edm::EventSetup const& iES,
222  typename T::RunSummaryCache* iCache) {
223  static_cast<T*>(iProd)->endRunSummary(iRun, iES, iCache);
224  }
225 
226  static void globalEndRun(edm::Run const& iRun,
227  edm::EventSetup const& iES,
228  typename T::RunContext const* iContext,
229  typename T::RunSummaryCache* iCache) {
230  T::globalEndRunSummary(iRun, iES, iContext, iCache);
231  }
232  };
233 
234  template <typename T>
236  static void beginRun(edm::Run const&, edm::EventSetup const&, typename T::RunContext const*, impl::dummy_ptr) {}
237  static void streamEndRunSummary(void* iProd,
238  edm::Run const&,
239  edm::EventSetup const&,
240  typename T::RunSummaryCache const* iCache) {}
241  static void globalEndRun(edm::Run const&,
242  edm::EventSetup const&,
243  typename T::RunContext const*,
244  typename T::RunSummaryCache*) {}
245  };
246 
247  template <typename T>
249 
250  //********************************
251  // CallGlobalLuminosityBlock
252  //********************************
253  template <typename T, bool>
256  edm::EventSetup const& iES,
257  typename T::RunContext const* iRC,
258  std::shared_ptr<typename T::LuminosityBlockCache const>& oCache) {
259  oCache = T::globalBeginLuminosityBlock(Lumi, iES, iRC);
260  }
261 
262  template <typename B>
263  static void set(B* iProd, typename T::LuminosityBlockCache const* iCache) {
264  static_cast<T*>(iProd)->setLuminosityBlockCache(iCache);
265  }
266 
268  edm::EventSetup const& iES,
269  typename T::LuminosityBlockContext const* iContext) {
270  T::globalEndLuminosityBlock(Lumi, iES, iContext);
271  }
272  };
273 
274  template <typename T>
277  edm::EventSetup const&,
278  typename T::RunContext const*,
279  impl::dummy_ptr) {}
280  static void set(void* iProd, typename T::LuminosityBlockCache const* iCache) {}
282  edm::EventSetup const&,
283  typename T::LuminosityBlockContext const*) {}
284  };
285  template <typename T>
287 
288  //********************************
289  // CallGlobalLuminosityBlockSummary
290  //********************************
291  template <typename T, bool>
294  edm::EventSetup const& iES,
295  typename T::LuminosityBlockContext const* iRC,
296  std::shared_ptr<typename T::LuminosityBlockSummaryCache>& oCache) {
297  oCache = T::globalBeginLuminosityBlockSummary(Lumi, iES, iRC);
298  }
299  template <typename B>
300  static void streamEndLuminosityBlockSummary(B* iProd,
302  edm::EventSetup const& iES,
303  typename T::LuminosityBlockSummaryCache* iCache) {
304  static_cast<T*>(iProd)->endLuminosityBlockSummary(iLumi, iES, iCache);
305  }
306 
308  edm::EventSetup const& iES,
309  typename T::LuminosityBlockContext const* iContext,
310  typename T::LuminosityBlockSummaryCache* iCache) {
311  T::globalEndLuminosityBlockSummary(Lumi, iES, iContext, iCache);
312  }
313  };
314 
315  template <typename T>
318  edm::EventSetup const&,
319  typename T::LuminosityBlockContext const*,
320  impl::dummy_ptr) {}
321  static void streamEndLuminosityBlockSummary(void* iProd,
322  edm::LuminosityBlock const&,
323  edm::EventSetup const&,
324  typename T::LuminosityBlockSummaryCache* iCache) {}
326  edm::EventSetup const&,
327  typename T::LuminosityBlockContext const*,
328  typename T::LuminosityBlockSummaryCache*) {}
329  };
330 
331  template <typename T>
334 
335  //********************************
336  // CallWatchProcessBlock
337  //********************************
338  template <typename T, bool, bool>
340  static void beginProcessBlock(edm::ProcessBlock const& iProcessBlock, typename T::GlobalCache* iGC) {
341  T::beginProcessBlock(iProcessBlock, iGC);
342  }
343 
344  static void endProcessBlock(edm::ProcessBlock const& iProcessBlock, typename T::GlobalCache* iGC) {
345  T::endProcessBlock(iProcessBlock, iGC);
346  }
347  };
348 
349  template <typename T>
351  static void beginProcessBlock(edm::ProcessBlock const& processBlock, typename T::GlobalCache*) {
352  T::beginProcessBlock(processBlock);
353  }
354 
355  static void endProcessBlock(edm::ProcessBlock const& processBlock, typename T::GlobalCache*) {
356  T::endProcessBlock(processBlock);
357  }
358  };
359 
360  template <typename T>
362  static void beginProcessBlock(edm::ProcessBlock const&, typename T::GlobalCache*) {}
363  static void endProcessBlock(edm::ProcessBlock const&, typename T::GlobalCache*) {}
364  };
365 
366  template <typename T>
368  static void beginProcessBlock(edm::ProcessBlock const&, typename T::GlobalCache*) {}
369  static void endProcessBlock(edm::ProcessBlock const&, typename T::GlobalCache*) {}
370  };
371 
372  template <typename T>
373  using CallWatchProcessBlock =
375 
376  //********************************
377  // CallBeginProcessBlockProduce
378  //********************************
379  template <typename T, bool, bool>
381  static void produce(edm::ProcessBlock& processBlock, typename T::GlobalCache* globalCache) {
382  T::beginProcessBlockProduce(processBlock, globalCache);
383  }
384  };
385 
386  template <typename T>
388  static void produce(edm::ProcessBlock& processBlock, typename T::GlobalCache*) {
389  T::beginProcessBlockProduce(processBlock);
390  }
391  };
392 
393  template <typename T>
395  static void produce(edm::ProcessBlock&, typename T::GlobalCache*) {}
396  };
397 
398  template <typename T>
400  static void produce(edm::ProcessBlock&, typename T::GlobalCache*) {}
401  };
402 
403  template <typename T>
406 
407  //********************************
408  // CallEndProcessBlockProduce
409  //********************************
410  template <typename T, bool, bool>
412  static void produce(edm::ProcessBlock& processBlock, typename T::GlobalCache* globalCache) {
413  T::endProcessBlockProduce(processBlock, globalCache);
414  }
415  };
416 
417  template <typename T>
419  static void produce(edm::ProcessBlock& processBlock, typename T::GlobalCache*) {
420  T::endProcessBlockProduce(processBlock);
421  }
422  };
423 
424  template <typename T>
426  static void produce(edm::ProcessBlock&, typename T::GlobalCache*) {}
427  };
428 
429  template <typename T>
431  static void produce(edm::ProcessBlock&, typename T::GlobalCache*) {}
432  };
433 
434  template <typename T>
437 
438  //********************************
439  // CallBeginRunProduce
440  //********************************
441  template <typename T, bool>
443  static void produce(edm::Run& iRun, edm::EventSetup const& iES, typename T::RunContext const* iRC) {
444  T::globalBeginRunProduce(iRun, iES, iRC);
445  }
446  };
447 
448  template <typename T>
450  static void produce(edm::Run& iRun, edm::EventSetup const& iES, typename T::RunContext const* iRC) {}
451  };
452 
453  template <typename T>
455 
456  //********************************
457  // CallEndRunProduce
458  //********************************
459  template <typename T, bool bProduce, bool bSummary>
461  static void produce(edm::Run&,
462  edm::EventSetup const&,
463  typename T::RunContext const*,
464  typename T::RunSummaryCache const*) {}
465  };
466 
467  template <typename T>
469  static void produce(edm::Run& iRun,
470  edm::EventSetup const& iES,
471  typename T::RunContext const* iRC,
472  typename T::RunSummaryCache const*) {
473  T::globalEndRunProduce(iRun, iES, iRC);
474  }
475  };
476 
477  template <typename T>
479  static void produce(edm::Run& iRun,
480  edm::EventSetup const& iES,
481  typename T::RunContext const* iRC,
482  typename T::RunSummaryCache const* iRS) {
483  T::globalEndRunProduce(iRun, iES, iRC, iRS);
484  }
485  };
486 
487  template <typename T>
489 
490  //********************************
491  // CallBeginLuminosityBlockProduce
492  //********************************
493  template <typename T, bool>
496  edm::EventSetup const& iES,
497  typename T::LuminosityBlockContext const* iRC) {
498  T::globalBeginLuminosityBlockProduce(Lumi, iES, iRC);
499  }
500  };
501 
502  template <typename T>
505  edm::EventSetup const& iES,
506  typename T::LuminosityBlockContext const* iRC) {}
507  };
508 
509  template <typename T>
512 
513  //********************************
514  // CallEndLuminosityBlockProduce
515  //********************************
516  template <typename T, bool bProduce, bool bSummary>
519  edm::EventSetup const&,
520  typename T::LuminosityBlockContext const*,
521  typename T::LuminosityBlockSummaryCache const*) {}
522  };
523 
524  template <typename T>
527  edm::EventSetup const& iES,
528  typename T::LuminosityBlockContext const* iRC,
529  typename T::LuminosityBlockSummaryCache const*) {
530  T::globalEndLuminosityBlockProduce(Lumi, iES, iRC);
531  }
532  };
533 
534  template <typename T>
537  edm::EventSetup const& iES,
538  typename T::LuminosityBlockContext const* iRC,
539  typename T::LuminosityBlockSummaryCache const* iRS) {
540  T::globalEndLuminosityBlockProduce(Lumi, iES, iRC, iRS);
541  }
542  };
543 
544  template <typename T>
546  CallEndLuminosityBlockProduceImpl<T,
547  T::HasAbility::kEndLuminosityBlockProducer,
548  T::HasAbility::kLuminosityBlockSummaryCache>;
549 
550  } // namespace stream
551 } // namespace edm
552 
553 #endif
static void endLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC)
static void accessInputProcessBlock(edm::ProcessBlock const &processBlock, typename T::GlobalCache *, typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &iCaches)
static void beginProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, std::shared_ptr< typename T::RunSummaryCache > &oCache)
static void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, typename T::LuminosityBlockSummaryCache *)
static void endProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *)
static void endRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext)
Definition: APVGainStruct.h:7
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::GlobalCache const *iGC, std::shared_ptr< typename T::RunCache const > &oCache)
CallBeginLuminosityBlockProduceImpl< T, T::HasAbility::kBeginLuminosityBlockProducer > CallBeginLuminosityBlockProduce
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC)
static void produce(edm::LuminosityBlock &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, typename T::LuminosityBlockSummaryCache const *)
static void produce(edm::ProcessBlock &, typename T::GlobalCache *)
static void produce(edm::ProcessBlock &, typename T::GlobalCache *)
static void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, impl::dummy_ptr)
static void endProcessBlock(edm::ProcessBlock const &processBlock, typename T::GlobalCache *)
static void selectInputProcessBlocks(typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &iCaches, ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase, EDConsumerBase const &edConsumerBase)
static void endProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *)
static void selectInputProcessBlocks(typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &iCaches, ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase, EDConsumerBase const &edConsumerBase)
Definition: callAbilities.h:86
static void clearCaches(typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &iCaches)
CallWatchProcessBlockImpl< T, T::HasAbility::kWatchProcessBlock, T::HasAbility::kGlobalCache > CallWatchProcessBlock
static void streamEndRunSummary(B *iProd, edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunSummaryCache *iCache)
static void accessInputProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *, typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &iCaches)
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
static void accessInputProcessBlock(edm::ProcessBlock const &processBlock, typename T::GlobalCache *iGC, typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &iCaches)
Definition: callAbilities.h:94
static void selectInputProcessBlocks(typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &, ProductRegistry const &, ProcessBlockHelperBase const &, EDConsumerBase const &)
static void clearCaches(typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC)
static void clearCaches(typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &iCaches)
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *globalCache)
static void selectInputProcessBlocks(typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &, ProductRegistry const &, ProcessBlockHelperBase const &, EDConsumerBase const &)
static void beginLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::RunContext const *iRC, std::shared_ptr< typename T::LuminosityBlockCache const > &oCache)
static void beginLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, std::shared_ptr< typename T::LuminosityBlockSummaryCache > &oCache)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC)
static void globalEndRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *, typename T::RunSummaryCache *)
static void beginRun(edm::Run const &, edm::EventSetup const &, typename T::GlobalCache const *, impl::dummy_ptr)
static void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockContext const *)
static void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::RunContext const *, impl::dummy_ptr)
static void beginRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *, impl::dummy_ptr)
static void produce(edm::ProcessBlock &, typename T::GlobalCache *)
static void clearCaches(typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &)
static void beginProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, typename T::RunSummaryCache const *iRS)
static void accessInputProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *, typename impl::choose_unique_ptr< typename T::InputProcessBlockCache >::type &iCaches)
CallBeginProcessBlockProduceImpl< T, T::HasAbility::kBeginProcessBlockProducer, T::HasAbility::kGlobalCache > CallBeginProcessBlockProduce
static void streamEndRunSummary(void *iProd, edm::Run const &, edm::EventSetup const &, typename T::RunSummaryCache const *iCache)
CallInputProcessBlockImpl< T, T::HasAbility::kInputProcessBlockCache, T::HasAbility::kGlobalCache > CallInputProcessBlock
static void endJob(typename T::GlobalCache *iCache)
Definition: callAbilities.h:59
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, typename T::LuminosityBlockSummaryCache const *iRS)
static void streamEndLuminosityBlockSummary(B *iProd, edm::LuminosityBlock const &iLumi, edm::EventSetup const &iES, typename T::LuminosityBlockSummaryCache *iCache)
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *)
static void globalEndRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext, typename T::RunSummaryCache *iCache)
static void endJob(void *iCache)
Definition: callAbilities.h:65
static void beginJob(void *iCache)
Definition: callAbilities.h:64
static void produce(edm::ProcessBlock &, typename T::GlobalCache *)
static void streamEndLuminosityBlockSummary(void *iProd, edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockSummaryCache *iCache)
CallEndProcessBlockProduceImpl< T, T::HasAbility::kEndProcessBlockProducer, T::HasAbility::kGlobalCache > CallEndProcessBlockProduce
CallEndLuminosityBlockProduceImpl< T, T::HasAbility::kEndLuminosityBlockProducer, T::HasAbility::kLuminosityBlockSummaryCache > CallEndLuminosityBlockProduce
HLT enums.
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, typename T::RunSummaryCache const *)
static void produce(edm::Run &, edm::EventSetup const &, typename T::RunContext const *, typename T::RunSummaryCache const *)
static void beginJob(typename T::GlobalCache *iCache)
Definition: callAbilities.h:54
static void beginProcessBlock(edm::ProcessBlock const &processBlock, typename T::GlobalCache *)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, typename T::LuminosityBlockSummaryCache const *)
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *)
static void beginProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *)
static void globalEndLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext, typename T::LuminosityBlockSummaryCache *iCache)
long double T
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *globalCache)
Definition: Run.h:45
static void endProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)
static void endRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *)
CallGlobalLuminosityBlockSummaryImpl< T, T::HasAbility::kLuminosityBlockSummaryCache > CallGlobalLuminosityBlockSummary