CMS 3D CMS Logo

implementors.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_limited_implementors_h
2 #define FWCore_Framework_limited_implementors_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : implementors
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Thu, 18 Jul 2013 11:52:34 GMT
19 //
20 
21 // system include files
22 #include <memory>
23 #include <mutex>
24 #include <string>
25 #include <tuple>
26 #include <utility>
27 #include <vector>
28 
29 // user include files
41 
42 // forward declarations
43 namespace edm {
44 
45  namespace limited {
46  namespace impl {
47  class EmptyType {
48  public:
50  };
51 
52  template <typename T, typename C>
53  class StreamCacheHolder : public virtual T {
54  public:
55  StreamCacheHolder(edm::ParameterSet const& iPSet) : T(iPSet) {}
58  ~StreamCacheHolder() override {
59  for (auto c : caches_) {
60  delete c;
61  }
62  }
63 
64  protected:
65  C* streamCache(edm::StreamID iID) const { return caches_[iID.value()]; }
66 
67  private:
68  void preallocStreams(unsigned int iNStreams) final { caches_.resize(iNStreams, static_cast<C*>(nullptr)); }
69  void doBeginStream_(StreamID id) final { caches_[id.value()] = beginStream(id).release(); }
70  void doEndStream_(StreamID id) final {
71  endStream(id);
72  delete caches_[id.value()];
73  caches_[id.value()] = nullptr;
74  }
75  void doStreamBeginRun_(StreamID id, Run const& rp, EventSetup const& c) final { streamBeginRun(id, rp, c); }
76  void doStreamEndRun_(StreamID id, Run const& rp, EventSetup const& c) final { streamEndRun(id, rp, c); }
77  void doStreamBeginLuminosityBlock_(StreamID id, LuminosityBlock const& lbp, EventSetup const& c) final {
78  streamBeginLuminosityBlock(id, lbp, c);
79  }
80  void doStreamEndLuminosityBlock_(StreamID id, LuminosityBlock const& lbp, EventSetup const& c) final {
81  streamEndLuminosityBlock(id, lbp, c);
82  }
83 
84  virtual std::unique_ptr<C> beginStream(edm::StreamID) const = 0;
85  virtual void streamBeginRun(edm::StreamID, edm::Run const&, edm::EventSetup const&) const {}
87  edm::LuminosityBlock const&,
88  edm::EventSetup const&) const {}
90  edm::LuminosityBlock const&,
91  edm::EventSetup const&) const {}
92  virtual void streamEndRun(edm::StreamID, edm::Run const&, edm::EventSetup const&) const {}
93  virtual void endStream(edm::StreamID) const {}
94 
95  //When threaded we will have a container for N items whre N is # of streams
96  std::vector<C*> caches_;
97  };
98 
99  template <typename T, typename... CacheTypes>
100  class InputProcessBlockCacheHolder : public virtual T {
101  public:
105  ~InputProcessBlockCacheHolder() noexcept(false) override {}
106 
107  std::tuple<CacheHandle<CacheTypes>...> processBlockCaches(Event const& event) const {
108  return cacheImpl_.processBlockCaches(event);
109  }
110 
111  template <std::size_t ICacheType, typename DataType, typename Func>
113  cacheImpl_.template registerProcessBlockCacheFiller<ICacheType, DataType, Func>(token,
114  std::forward<Func>(func));
115  }
116 
117  template <typename CacheType, typename DataType, typename Func>
119  cacheImpl_.template registerProcessBlockCacheFiller<CacheType, DataType, Func>(token,
120  std::forward<Func>(func));
121  }
122 
123  // This is intended for use by Framework unit tests only
124  unsigned int cacheSize() const { return cacheImpl_.cacheSize(); }
125 
126  private:
127  void doSelectInputProcessBlocks(ProductRegistry const& productRegistry,
128  ProcessBlockHelperBase const& processBlockHelperBase) final {
129  cacheImpl_.selectInputProcessBlocks(productRegistry, processBlockHelperBase, *this);
130  }
131 
132  void doAccessInputProcessBlock_(ProcessBlock const& pb) final {
133  cacheImpl_.accessInputProcessBlock(pb);
135  }
136 
137  // Alternate method to access ProcessBlocks without using the caches
138  // Mostly intended for unit testing, but might have other uses...
139  virtual void accessInputProcessBlock(ProcessBlock const&) {}
140 
141  void clearInputProcessBlockCaches() final { cacheImpl_.clearCaches(); }
142 
144  };
145 
146  template <typename T, typename C>
147  class RunCacheHolder : public virtual T {
148  public:
149  RunCacheHolder(edm::ParameterSet const& iPSet) : T(iPSet) {}
150  RunCacheHolder(RunCacheHolder<T, C> const&) = delete;
152  ~RunCacheHolder() noexcept(false) override{};
153 
154  protected:
155  C const* runCache(edm::RunIndex iID) const { return cache_.get(); }
156 
157  private:
158  void doBeginRun_(Run const& rp, EventSetup const& c) final { cache_ = globalBeginRun(rp, c); }
159  void doEndRun_(Run const& rp, EventSetup const& c) final {
160  globalEndRun(rp, c);
161  cache_ = nullptr; // propagate_const<T> has no reset() function
162  }
163 
164  virtual std::shared_ptr<C> globalBeginRun(edm::Run const&, edm::EventSetup const&) const = 0;
165  virtual void globalEndRun(edm::Run const&, edm::EventSetup const&) const = 0;
166  //When threaded we will have a container for N items whre N is # of simultaneous runs
168  };
169 
170  template <typename T, typename C>
171  class LuminosityBlockCacheHolder : public virtual T {
172  public:
176  ~LuminosityBlockCacheHolder() noexcept(false) override{};
177 
178  protected:
179  C const* luminosityBlockCache(edm::LuminosityBlockIndex iID) const { return caches_[iID].get(); }
180 
181  private:
182  void preallocLumis(unsigned int iNLumis) final { caches_.reset(new std::shared_ptr<C>[iNLumis]); }
183 
184  void doBeginLuminosityBlock_(LuminosityBlock const& lp, EventSetup const& c) final {
185  caches_[lp.index()] = globalBeginLuminosityBlock(lp, c);
186  }
187  void doEndLuminosityBlock_(LuminosityBlock const& lp, EventSetup const& c) final {
189  caches_[lp.index()].reset();
190  }
191 
192  virtual std::shared_ptr<C> globalBeginLuminosityBlock(edm::LuminosityBlock const&,
193  edm::EventSetup const&) const = 0;
194  virtual void globalEndLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) const = 0;
195  //When threaded we will have a container for N items whre N is # of simultaneous runs
196  std::unique_ptr<std::shared_ptr<C>[]> caches_;
197  };
198 
199  template <typename T, typename C>
201 
202  template <typename T, typename C>
203  class RunSummaryCacheHolder : public virtual T {
204  public:
205  RunSummaryCacheHolder(edm::ParameterSet const& iPSet) : T(iPSet) {}
208  ~RunSummaryCacheHolder() noexcept(false) override{};
209 
210  private:
211  friend class EndRunSummaryProducer<T, C>;
212  void doBeginRunSummary_(edm::Run const& rp, EventSetup const& c) final {
214  }
215  void doStreamEndRunSummary_(StreamID id, Run const& rp, EventSetup const& c) final {
216  //NOTE: in future this will need to be serialized
217  std::lock_guard<std::mutex> guard(mutex_);
218  streamEndRunSummary(id, rp, c, cache_.get());
219  }
220  void doEndRunSummary_(Run const& rp, EventSetup const& c) final { globalEndRunSummary(rp, c, cache_.get()); }
221 
222  virtual std::shared_ptr<C> globalBeginRunSummary(edm::Run const&, edm::EventSetup const&) const = 0;
223  virtual void streamEndRunSummary(StreamID, edm::Run const&, edm::EventSetup const&, C*) const = 0;
224 
225  virtual void globalEndRunSummary(edm::Run const&, edm::EventSetup const&, C*) const = 0;
226 
227  //When threaded we will have a container for N items where N is # of simultaneous runs
228  std::shared_ptr<C> cache_;
230  };
231 
232  template <typename T, typename C>
234 
235  template <typename T, typename C>
236  class LuminosityBlockSummaryCacheHolder : public virtual T {
237  public:
242 
243  private:
244  void preallocLumisSummary(unsigned int iNLumis) final { caches_.reset(new std::shared_ptr<C>[iNLumis]); }
245 
247 
249  caches_[lb.index()] = globalBeginLuminosityBlockSummary(lb, c);
250  }
251 
253  std::lock_guard<std::mutex> guard(mutex_);
254  streamEndLuminosityBlockSummary(id, lb, c, caches_[lb.index()].get());
255  }
257  globalEndLuminosityBlockSummary(lb, c, caches_[lb.index()].get());
258  maybeClearCache(lb);
259  }
260 
261  virtual std::shared_ptr<C> globalBeginLuminosityBlockSummary(edm::LuminosityBlock const&,
262  edm::EventSetup const&) const = 0;
264  edm::LuminosityBlock const&,
265  edm::EventSetup const&,
266  C*) const = 0;
267 
268  virtual void globalEndLuminosityBlockSummary(edm::LuminosityBlock const&, edm::EventSetup const&, C*) const = 0;
269 
270  virtual void maybeClearCache(LuminosityBlock const& lb) { caches_[lb.index()].reset(); }
271 
272  //When threaded we will have a container for N items where N is # of simultaneous Lumis
273  std::unique_ptr<std::shared_ptr<C>[]> caches_;
275  };
276 
277  template <typename T>
278  class WatchProcessBlock : public virtual T {
279  public:
280  WatchProcessBlock(edm::ParameterSet const& iPSet) : T(iPSet) {}
281  WatchProcessBlock(WatchProcessBlock const&) = delete;
283  ~WatchProcessBlock() noexcept(false) override{};
284 
285  private:
286  void doBeginProcessBlock_(ProcessBlock const&) final;
287  void doEndProcessBlock_(ProcessBlock const&) final;
288 
289  virtual void beginProcessBlock(ProcessBlock const&) {}
290  virtual void endProcessBlock(ProcessBlock const&) {}
291  };
292 
293  template <typename T>
294  class BeginProcessBlockProducer : public virtual T {
295  public:
299  ~BeginProcessBlockProducer() noexcept(false) override{};
300 
301  private:
303 
304  virtual void beginProcessBlockProduce(edm::ProcessBlock&) = 0;
305  };
306 
307  template <typename T>
308  class EndProcessBlockProducer : public virtual T {
309  public:
310  EndProcessBlockProducer(edm::ParameterSet const& iPSet) : T(iPSet) {}
313  ~EndProcessBlockProducer() noexcept(false) override{};
314 
315  private:
317 
318  virtual void endProcessBlockProduce(edm::ProcessBlock&) = 0;
319  };
320 
321  template <typename T>
322  class BeginRunProducer : public virtual T {
323  public:
324  BeginRunProducer(edm::ParameterSet const& iPSet) : T(iPSet) {}
325  BeginRunProducer(BeginRunProducer const&) = delete;
326  BeginRunProducer& operator=(BeginRunProducer const&) = delete;
327  ~BeginRunProducer() noexcept(false) override{};
328 
329  private:
330  void doBeginRunProduce_(Run& rp, EventSetup const& c) final;
331 
332  virtual void globalBeginRunProduce(edm::Run&, edm::EventSetup const&) const = 0;
333  };
334 
335  template <typename T>
336  class EndRunProducer : public virtual T {
337  public:
338  EndRunProducer(edm::ParameterSet const& iPSet) : T(iPSet) {}
339  EndRunProducer(EndRunProducer const&) = delete;
340  EndRunProducer& operator=(EndRunProducer const&) = delete;
341  ~EndRunProducer() noexcept(false) override{};
342 
343  private:
344  void doEndRunProduce_(Run& rp, EventSetup const& c) final;
345 
346  virtual void globalEndRunProduce(edm::Run&, edm::EventSetup const&) const = 0;
347  };
348 
349  template <typename T, typename C>
350  class EndRunSummaryProducer : public RunSummaryCacheHolder<T, C> {
351  public:
352  EndRunSummaryProducer(edm::ParameterSet const& iPSet) : T(iPSet), RunSummaryCacheHolder<T, C>(iPSet) {}
355  ~EndRunSummaryProducer() noexcept(false) override{};
356 
357  private:
358  void doEndRunProduce_(Run& rp, EventSetup const& c) final {
360  }
361 
362  virtual void globalEndRunProduce(edm::Run&, edm::EventSetup const&, C const*) const = 0;
363  };
364 
365  template <typename T>
366  class BeginLuminosityBlockProducer : public virtual T {
367  public:
371  ~BeginLuminosityBlockProducer() noexcept(false) override{};
372 
373  private:
376  };
377 
378  template <typename T>
379  class EndLuminosityBlockProducer : public virtual T {
380  public:
384  ~EndLuminosityBlockProducer() noexcept(false) override{};
385 
386  private:
389  };
390 
391  template <typename T, typename S>
392  class EndLuminosityBlockSummaryProducer : public LuminosityBlockSummaryCacheHolder<T, S> {
393  public:
395  : T(iPSet), LuminosityBlockSummaryCacheHolder<T, S>(iPSet) {}
399 
400  private:
404  }
405 
406  virtual void globalEndLuminosityBlockProduce(edm::LuminosityBlock&, edm::EventSetup const&, S const*) const = 0;
407 
408  // Do nothing because the cache is cleared in doEndLuminosityBlockProduce_
409  void maybeClearCache(LuminosityBlock const&) final {}
410  };
411 
412  template <typename T>
413  class Accumulator : public virtual T {
414  public:
415  Accumulator(edm::ParameterSet const& iPSet) : T(iPSet) {}
416  Accumulator() = default;
417  Accumulator(Accumulator const&) = delete;
418  Accumulator& operator=(Accumulator const&) = delete;
419  ~Accumulator() noexcept(false) override{};
420 
421  private:
422  bool hasAccumulator() const override { return true; }
423 
424  void produce(StreamID streamID, Event& ev, EventSetup const& es) const final { accumulate(streamID, ev, es); }
425 
426  virtual void accumulate(StreamID streamID, Event const& ev, EventSetup const& es) const = 0;
427  };
428  } // namespace impl
429  } // namespace limited
430 } // namespace edm
431 
432 #endif
edm::limited::impl::RunCacheHolder::globalEndRun
virtual void globalEndRun(edm::Run const &, edm::EventSetup const &) const =0
edm::limited::impl::InputProcessBlockCacheHolder::doAccessInputProcessBlock_
void doAccessInputProcessBlock_(ProcessBlock const &pb) final
Definition: implementors.h:132
edm::limited::impl::RunSummaryCacheHolder
Definition: implementors.h:203
edm::limited::impl::EndLuminosityBlockSummaryProducer
Definition: implementors.h:233
edm::StreamID
Definition: StreamID.h:30
edm::limited::impl::LuminosityBlockSummaryCacheHolder::doBeginLuminosityBlockSummary_
void doBeginLuminosityBlockSummary_(edm::LuminosityBlock const &lb, EventSetup const &c) final
Definition: implementors.h:248
edm::limited::impl::BeginProcessBlockProducer::beginProcessBlockProduce
virtual void beginProcessBlockProduce(edm::ProcessBlock &)=0
edm::limited::impl::EndLuminosityBlockProducer::~EndLuminosityBlockProducer
~EndLuminosityBlockProducer() noexcept(false) override
Definition: implementors.h:384
edm::limited::impl::StreamCacheHolder::streamBeginRun
virtual void streamBeginRun(edm::StreamID, edm::Run const &, edm::EventSetup const &) const
Definition: implementors.h:85
edm::limited::impl::StreamCacheHolder::beginStream
virtual std::unique_ptr< C > beginStream(edm::StreamID) const =0
edm::limited::impl::EndRunProducer::doEndRunProduce_
void doEndRunProduce_(Run &rp, EventSetup const &c) final
Definition: implementorsMethods.h:57
edm::limited::impl::LuminosityBlockSummaryCacheHolder::preallocLumisSummary
void preallocLumisSummary(unsigned int iNLumis) final
Definition: implementors.h:244
edm::limited::impl::EndProcessBlockProducer::endProcessBlockProduce
virtual void endProcessBlockProduce(edm::ProcessBlock &)=0
edm::limited::impl::RunSummaryCacheHolder::doEndRunSummary_
void doEndRunSummary_(Run const &rp, EventSetup const &c) final
Definition: implementors.h:220
edm::limited::impl::RunCacheHolder::~RunCacheHolder
~RunCacheHolder() noexcept(false) override
Definition: implementors.h:152
funct::false
false
Definition: Factorize.h:29
edm::limited::impl::BeginLuminosityBlockProducer::BeginLuminosityBlockProducer
BeginLuminosityBlockProducer(edm::ParameterSet const &iPSet)
Definition: implementors.h:368
edm::limited::impl::InputProcessBlockCacheHolder::clearInputProcessBlockCaches
void clearInputProcessBlockCaches() final
Definition: implementors.h:141
edm::limited::impl::EndRunSummaryProducer::~EndRunSummaryProducer
~EndRunSummaryProducer() noexcept(false) override
Definition: implementors.h:355
edm::limited::impl::LuminosityBlockCacheHolder::globalEndLuminosityBlock
virtual void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
edm::limited::impl::InputProcessBlockCacheHolder::processBlockCaches
std::tuple< CacheHandle< CacheTypes >... > processBlockCaches(Event const &event) const
Definition: implementors.h:107
edm::limited::impl::RunCacheHolder::doBeginRun_
void doBeginRun_(Run const &rp, EventSetup const &c) final
Definition: implementors.h:158
propagate_const.h
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::Run
Definition: Run.h:45
edm::limited::impl::InputProcessBlockCacheHolder::operator=
InputProcessBlockCacheHolder & operator=(InputProcessBlockCacheHolder const &)=delete
edm::limited::impl::BeginLuminosityBlockProducer::~BeginLuminosityBlockProducer
~BeginLuminosityBlockProducer() noexcept(false) override
Definition: implementors.h:371
edm::EDGetTokenT
Definition: EDGetToken.h:33
LuminosityBlock.h
edm::LuminosityBlock::index
LuminosityBlockIndex index() const
Definition: LuminosityBlock.cc:28
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::limited::impl::RunCacheHolder::doEndRun_
void doEndRun_(Run const &rp, EventSetup const &c) final
Definition: implementors.h:159
edm::limited::impl::BeginRunProducer::operator=
BeginRunProducer & operator=(BeginRunProducer const &)=delete
edm::limited::impl::BeginProcessBlockProducer::BeginProcessBlockProducer
BeginProcessBlockProducer(edm::ParameterSet const &iPSet)
Definition: implementors.h:296
edm::limited::impl::InputProcessBlockCacheHolder::cacheImpl_
edm::impl::InputProcessBlockCacheImpl< CacheTypes... > cacheImpl_
Definition: implementors.h:143
edm::limited::impl::LuminosityBlockCacheHolder
Definition: implementors.h:171
edm::limited::impl::EndProcessBlockProducer
Definition: implementors.h:308
edm::limited::impl::EndLuminosityBlockSummaryProducer::operator=
EndLuminosityBlockSummaryProducer & operator=(EndLuminosityBlockSummaryProducer const &)=delete
edm::limited::impl::EndRunProducer::operator=
EndRunProducer & operator=(EndRunProducer const &)=delete
edm::propagate_const::get
constexpr element_type const * get() const
Definition: propagate_const.h:64
edm::limited::impl::BeginRunProducer
Definition: implementors.h:322
edm::limited::impl::StreamCacheHolder::streamEndRun
virtual void streamEndRun(edm::StreamID, edm::Run const &, edm::EventSetup const &) const
Definition: implementors.h:92
edm::limited::impl::LuminosityBlockCacheHolder::LuminosityBlockCacheHolder
LuminosityBlockCacheHolder(edm::ParameterSet const &iPSet)
Definition: implementors.h:173
edm::limited::impl::InputProcessBlockCacheHolder::cacheSize
unsigned int cacheSize() const
Definition: implementors.h:124
ProcessBlockIndex.h
edm::limited::impl::RunCacheHolder::globalBeginRun
virtual std::shared_ptr< C > globalBeginRun(edm::Run const &, edm::EventSetup const &) const =0
edm::limited::impl::StreamCacheHolder::doEndStream_
void doEndStream_(StreamID id) final
Definition: implementors.h:70
edm::limited::impl::EndRunSummaryProducer::EndRunSummaryProducer
EndRunSummaryProducer(edm::ParameterSet const &iPSet)
Definition: implementors.h:352
edm::StreamID::value
unsigned int value() const
Definition: StreamID.h:43
edm::limited::impl::BeginLuminosityBlockProducer::operator=
BeginLuminosityBlockProducer & operator=(BeginLuminosityBlockProducer const &)=delete
edm::limited::impl::WatchProcessBlock::operator=
WatchProcessBlock & operator=(WatchProcessBlock const &)=delete
edm::limited::impl::LuminosityBlockSummaryCacheHolder::globalEndLuminosityBlockSummary
virtual void globalEndLuminosityBlockSummary(edm::LuminosityBlock const &, edm::EventSetup const &, C *) const =0
edm::limited::impl::EndLuminosityBlockProducer::doEndLuminosityBlockProduce_
void doEndLuminosityBlockProduce_(LuminosityBlock &lb, EventSetup const &c) final
Definition: implementorsMethods.h:67
edm::impl::InputProcessBlockCacheImpl
Definition: InputProcessBlockCacheImpl.h:77
edm::limited::impl::WatchProcessBlock::~WatchProcessBlock
~WatchProcessBlock() noexcept(false) override
Definition: implementors.h:283
edm::limited::impl::RunCacheHolder::RunCacheHolder
RunCacheHolder(edm::ParameterSet const &iPSet)
Definition: implementors.h:149
edm::limited::impl::RunCacheHolder::cache_
edm::propagate_const< std::shared_ptr< C > > cache_
Definition: implementors.h:167
edm::limited::impl::EmptyType
Definition: implementors.h:47
edm::limited::impl::RunSummaryCacheHolder::streamEndRunSummary
virtual void streamEndRunSummary(StreamID, edm::Run const &, edm::EventSetup const &, C *) const =0
edm::ProductRegistry
Definition: ProductRegistry.h:37
edm::limited::impl::LuminosityBlockCacheHolder::caches_
std::unique_ptr< std::shared_ptr< C >[]> caches_
Definition: implementors.h:196
edm::limited::impl::BeginProcessBlockProducer
Definition: implementors.h:294
edm::limited::impl::StreamCacheHolder::doStreamBeginLuminosityBlock_
void doStreamBeginLuminosityBlock_(StreamID id, LuminosityBlock const &lbp, EventSetup const &c) final
Definition: implementors.h:77
edm::limited::impl::LuminosityBlockSummaryCacheHolder::doEndLuminosityBlockSummary_
void doEndLuminosityBlockSummary_(LuminosityBlock const &lb, EventSetup const &c) final
Definition: implementors.h:256
edm::limited::impl::LuminosityBlockSummaryCacheHolder::LuminosityBlockSummaryCacheHolder
LuminosityBlockSummaryCacheHolder(edm::ParameterSet const &iPSet)
Definition: implementors.h:238
edm::propagate_const
Definition: propagate_const.h:32
edm::limited::impl::RunCacheHolder::runCache
C const * runCache(edm::RunIndex iID) const
Definition: implementors.h:155
edm::limited::impl::WatchProcessBlock::WatchProcessBlock
WatchProcessBlock(edm::ParameterSet const &iPSet)
Definition: implementors.h:280
edm::limited::impl::StreamCacheHolder::preallocStreams
void preallocStreams(unsigned int iNStreams) final
Definition: implementors.h:68
edm::limited::impl::WatchProcessBlock::endProcessBlock
virtual void endProcessBlock(ProcessBlock const &)
Definition: implementors.h:290
edm::LuminosityBlockIndex
Definition: LuminosityBlockIndex.h:33
edm::limited::impl::LuminosityBlockCacheHolder::globalBeginLuminosityBlock
virtual std::shared_ptr< C > globalBeginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
edm::limited::impl::BeginLuminosityBlockProducer::globalBeginLuminosityBlockProduce
virtual void globalBeginLuminosityBlockProduce(edm::LuminosityBlock &, edm::EventSetup const &) const =0
edm::limited::impl::LuminosityBlockCacheHolder::~LuminosityBlockCacheHolder
~LuminosityBlockCacheHolder() noexcept(false) override
Definition: implementors.h:176
edm::limited::impl::BeginLuminosityBlockProducer::doBeginLuminosityBlockProduce_
void doBeginLuminosityBlockProduce_(LuminosityBlock &lb, EventSetup const &c) final
Definition: implementorsMethods.h:62
edm::limited::impl::EndRunSummaryProducer
Definition: implementors.h:200
edm::limited::impl::LuminosityBlockCacheHolder::doBeginLuminosityBlock_
void doBeginLuminosityBlock_(LuminosityBlock const &lp, EventSetup const &c) final
Definition: implementors.h:184
edm::limited::impl::Accumulator::accumulate
virtual void accumulate(StreamID streamID, Event const &ev, EventSetup const &es) const =0
edm::limited::impl::Accumulator::~Accumulator
~Accumulator() noexcept(false) override
Definition: implementors.h:419
edm::limited::impl::InputProcessBlockCacheHolder::InputProcessBlockCacheHolder
InputProcessBlockCacheHolder(edm::ParameterSet const &iPSet)
Definition: implementors.h:102
edm::limited::impl::EndProcessBlockProducer::operator=
EndProcessBlockProducer & operator=(EndProcessBlockProducer const &)=delete
edm::limited::impl::LuminosityBlockCacheHolder::luminosityBlockCache
C const * luminosityBlockCache(edm::LuminosityBlockIndex iID) const
Definition: implementors.h:179
edm::limited::impl::WatchProcessBlock::beginProcessBlock
virtual void beginProcessBlock(ProcessBlock const &)
Definition: implementors.h:289
CacheHandle.h
edm::limited::impl::EndRunProducer::~EndRunProducer
~EndRunProducer() noexcept(false) override
Definition: implementors.h:341
edm::limited::impl::LuminosityBlockCacheHolder::doEndLuminosityBlock_
void doEndLuminosityBlock_(LuminosityBlock const &lp, EventSetup const &c) final
Definition: implementors.h:187
edm::limited::impl::RunSummaryCacheHolder::operator=
RunSummaryCacheHolder< T, C > & operator=(RunSummaryCacheHolder< T, C > const &)=delete
edm::limited::impl::EndRunSummaryProducer::doEndRunProduce_
void doEndRunProduce_(Run &rp, EventSetup const &c) final
Definition: implementors.h:358
edm::limited::impl::RunSummaryCacheHolder::RunSummaryCacheHolder
RunSummaryCacheHolder(edm::ParameterSet const &iPSet)
Definition: implementors.h:205
InputProcessBlockCacheImpl.h
edm::limited::impl::RunSummaryCacheHolder::globalEndRunSummary
virtual void globalEndRunSummary(edm::Run const &, edm::EventSetup const &, C *) const =0
edm::limited::impl::StreamCacheHolder::doStreamEndLuminosityBlock_
void doStreamEndLuminosityBlock_(StreamID id, LuminosityBlock const &lbp, EventSetup const &c) final
Definition: implementors.h:80
edm::limited::impl::RunSummaryCacheHolder::cache_
std::shared_ptr< C > cache_
Definition: implementors.h:228
EDGetToken.h
edm::limited::impl::EndProcessBlockProducer::EndProcessBlockProducer
EndProcessBlockProducer(edm::ParameterSet const &iPSet)
Definition: implementors.h:310
edm::limited::impl::StreamCacheHolder::streamCache
C * streamCache(edm::StreamID iID) const
Definition: implementors.h:65
edm::limited::impl::WatchProcessBlock::doBeginProcessBlock_
void doBeginProcessBlock_(ProcessBlock const &) final
Definition: implementorsMethods.h:32
RunIndex.h
edm::limited::impl::Accumulator::Accumulator
Accumulator(edm::ParameterSet const &iPSet)
Definition: implementors.h:415
edm::limited::impl::Accumulator::operator=
Accumulator & operator=(Accumulator const &)=delete
edm::limited::impl::EndRunSummaryProducer::operator=
EndRunSummaryProducer & operator=(EndRunSummaryProducer const &)=delete
edm::limited::impl::EndProcessBlockProducer::doEndProcessBlockProduce_
void doEndProcessBlockProduce_(ProcessBlock &) final
Definition: implementorsMethods.h:47
edm::limited::impl::EmptyType::EmptyType
EmptyType(edm::ParameterSet const &)
Definition: implementors.h:49
edm::limited::impl::EndLuminosityBlockProducer
Definition: implementors.h:379
edm::limited::impl::LuminosityBlockSummaryCacheHolder::doStreamEndLuminosityBlockSummary_
void doStreamEndLuminosityBlockSummary_(StreamID id, LuminosityBlock const &lb, EventSetup const &c) final
Definition: implementors.h:252
edm::ProcessBlockHelperBase
Definition: ProcessBlockHelperBase.h:18
edm::limited::impl::WatchProcessBlock
Definition: implementors.h:278
edm::ParameterSet
Definition: ParameterSet.h:47
edm::limited::impl::InputProcessBlockCacheHolder::registerProcessBlockCacheFiller
void registerProcessBlockCacheFiller(EDGetTokenT< DataType > const &token, Func &&func)
Definition: implementors.h:112
edm::limited::impl::RunSummaryCacheHolder::globalBeginRunSummary
virtual std::shared_ptr< C > globalBeginRunSummary(edm::Run const &, edm::EventSetup const &) const =0
edm::limited::impl::RunSummaryCacheHolder::doStreamEndRunSummary_
void doStreamEndRunSummary_(StreamID id, Run const &rp, EventSetup const &c) final
Definition: implementors.h:215
edm::limited::impl::EndLuminosityBlockSummaryProducer::maybeClearCache
void maybeClearCache(LuminosityBlock const &) final
Definition: implementors.h:409
edm::limited::impl::EndRunProducer::globalEndRunProduce
virtual void globalEndRunProduce(edm::Run &, edm::EventSetup const &) const =0
edm::limited::impl::LuminosityBlockSummaryCacheHolder::streamEndLuminosityBlockSummary
virtual void streamEndLuminosityBlockSummary(StreamID, edm::LuminosityBlock const &, edm::EventSetup const &, C *) const =0
edm::limited::impl::EndLuminosityBlockSummaryProducer::~EndLuminosityBlockSummaryProducer
~EndLuminosityBlockSummaryProducer() noexcept(false) override
Definition: implementors.h:398
edm::limited::impl::Accumulator
Definition: implementors.h:413
edm::limited::impl::Accumulator::produce
void produce(StreamID streamID, Event &ev, EventSetup const &es) const final
Definition: implementors.h:424
edm::get
T const & get(Event const &event, InputTag const &tag) noexcept(false)
Definition: Event.h:679
edm::limited::impl::LuminosityBlockSummaryCacheHolder::operator=
LuminosityBlockSummaryCacheHolder< T, C > & operator=(LuminosityBlockSummaryCacheHolder< T, C > const &)=delete
edm::limited::impl::EndLuminosityBlockProducer::globalEndLuminosityBlockProduce
virtual void globalEndLuminosityBlockProduce(edm::LuminosityBlock &, edm::EventSetup const &) const =0
edm::limited::impl::StreamCacheHolder::StreamCacheHolder
StreamCacheHolder(edm::ParameterSet const &iPSet)
Definition: implementors.h:55
edm::limited::impl::StreamCacheHolder::caches_
std::vector< C * > caches_
Definition: implementors.h:96
mutex
static std::mutex mutex
Definition: Proxy.cc:8
edm::limited::impl::StreamCacheHolder::doStreamBeginRun_
void doStreamBeginRun_(StreamID id, Run const &rp, EventSetup const &c) final
Definition: implementors.h:75
edm::limited::impl::BeginRunProducer::~BeginRunProducer
~BeginRunProducer() noexcept(false) override
Definition: implementors.h:327
edm::limited::impl::RunSummaryCacheHolder::mutex_
std::mutex mutex_
Definition: implementors.h:229
edm::global::impl::EndLuminosityBlockSummaryProducer
Definition: implementors.h:233
edm::limited::impl::BeginRunProducer::doBeginRunProduce_
void doBeginRunProduce_(Run &rp, EventSetup const &c) final
Definition: implementorsMethods.h:52
edm::EventSetup
Definition: EventSetup.h:58
edm::limited::impl::EndLuminosityBlockSummaryProducer::doEndLuminosityBlockProduce_
void doEndLuminosityBlockProduce_(LuminosityBlock &lb, EventSetup const &c) final
Definition: implementors.h:401
edm::limited::impl::EndRunProducer
Definition: implementors.h:336
TrackCollections2monitor_cff.func
func
Definition: TrackCollections2monitor_cff.py:359
edm::limited::impl::EndProcessBlockProducer::~EndProcessBlockProducer
~EndProcessBlockProducer() noexcept(false) override
Definition: implementors.h:313
edm::limited::impl::InputProcessBlockCacheHolder::doSelectInputProcessBlocks
void doSelectInputProcessBlocks(ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase) final
Definition: implementors.h:127
edm::limited::impl::LuminosityBlockSummaryCacheHolder::globalBeginLuminosityBlockSummary
virtual std::shared_ptr< C > globalBeginLuminosityBlockSummary(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
edm::limited::impl::BeginLuminosityBlockProducer
Definition: implementors.h:366
edm::limited::impl::InputProcessBlockCacheHolder
Definition: implementors.h:100
impl
Definition: trackAlgoPriorityOrder.h:18
edm::limited::impl::EndLuminosityBlockProducer::operator=
EndLuminosityBlockProducer & operator=(EndLuminosityBlockProducer const &)=delete
edm::limited::impl::StreamCacheHolder::streamEndLuminosityBlock
virtual void streamEndLuminosityBlock(edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &) const
Definition: implementors.h:89
edm::limited::impl::EndLuminosityBlockSummaryProducer::EndLuminosityBlockSummaryProducer
EndLuminosityBlockSummaryProducer(edm::ParameterSet const &iPSet)
Definition: implementors.h:394
edm::limited::impl::BeginProcessBlockProducer::~BeginProcessBlockProducer
~BeginProcessBlockProducer() noexcept(false) override
Definition: implementors.h:299
gen::C
C
Definition: PomwigHadronizer.cc:78
edm::limited::impl::WatchProcessBlock::doEndProcessBlock_
void doEndProcessBlock_(ProcessBlock const &) final
Definition: implementorsMethods.h:37
Frameworkfwd.h
T
long double T
Definition: Basic3DVectorLD.h:48
edm::limited::impl::EndRunProducer::EndRunProducer
EndRunProducer(edm::ParameterSet const &iPSet)
Definition: implementors.h:338
edm::limited::impl::EndLuminosityBlockSummaryProducer::globalEndLuminosityBlockProduce
virtual void globalEndLuminosityBlockProduce(edm::LuminosityBlock &, edm::EventSetup const &, S const *) const =0
ev
bool ev
Definition: Hydjet2Hadronizer.cc:97
edm::limited::impl::StreamCacheHolder::~StreamCacheHolder
~StreamCacheHolder() override
Definition: implementors.h:58
edm::limited::impl::RunSummaryCacheHolder::~RunSummaryCacheHolder
~RunSummaryCacheHolder() noexcept(false) override
Definition: implementors.h:208
edm::limited::impl::StreamCacheHolder
Definition: implementors.h:53
edm::limited::impl::StreamCacheHolder::streamBeginLuminosityBlock
virtual void streamBeginLuminosityBlock(edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &) const
Definition: implementors.h:86
edm::limited::impl::StreamCacheHolder::doBeginStream_
void doBeginStream_(StreamID id) final
Definition: implementors.h:69
edm::RunIndex
Definition: RunIndex.h:32
LuminosityBlockIndex.h
edm::limited::impl::LuminosityBlockSummaryCacheHolder::maybeClearCache
virtual void maybeClearCache(LuminosityBlock const &lb)
Definition: implementors.h:270
S
Definition: CSCDBL1TPParametersExtended.h:16
edm::limited::impl::BeginRunProducer::globalBeginRunProduce
virtual void globalBeginRunProduce(edm::Run &, edm::EventSetup const &) const =0
edm::limited::impl::StreamCacheHolder::operator=
StreamCacheHolder< T, C > & operator=(StreamCacheHolder< T, C > const &)=delete
edm::limited::impl::LuminosityBlockSummaryCacheHolder
Definition: implementors.h:236
edm::limited::impl::RunCacheHolder
Definition: implementors.h:147
edm::limited::impl::LuminosityBlockSummaryCacheHolder::caches_
std::unique_ptr< std::shared_ptr< C >[]> caches_
Definition: implementors.h:273
edm::limited::impl::RunSummaryCacheHolder::doBeginRunSummary_
void doBeginRunSummary_(edm::Run const &rp, EventSetup const &c) final
Definition: implementors.h:212
edm::limited::impl::Accumulator::Accumulator
Accumulator()=default
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:56
edm::limited::impl::BeginProcessBlockProducer::operator=
BeginProcessBlockProducer & operator=(BeginProcessBlockProducer const &)=delete
event
Definition: event.py:1
edm::limited::impl::LuminosityBlockCacheHolder::preallocLumis
void preallocLumis(unsigned int iNLumis) final
Definition: implementors.h:182
edm::limited::impl::LuminosityBlockSummaryCacheHolder::~LuminosityBlockSummaryCacheHolder
~LuminosityBlockSummaryCacheHolder() noexcept(false) override
Definition: implementors.h:241
edm::Event
Definition: Event.h:73
edm::limited::impl::RunCacheHolder::operator=
RunCacheHolder< T, C > & operator=(RunCacheHolder< T, C > const &)=delete
StreamID.h
edm::limited::impl::LuminosityBlockCacheHolder::operator=
LuminosityBlockCacheHolder< T, C > & operator=(LuminosityBlockCacheHolder< T, C > const &)=delete
edm::ProcessBlock
Definition: ProcessBlock.h:36
edm::limited::impl::EndRunSummaryProducer::globalEndRunProduce
virtual void globalEndRunProduce(edm::Run &, edm::EventSetup const &, C const *) const =0
edm::limited::impl::StreamCacheHolder::endStream
virtual void endStream(edm::StreamID) const
Definition: implementors.h:93
edm::limited::impl::InputProcessBlockCacheHolder::accessInputProcessBlock
virtual void accessInputProcessBlock(ProcessBlock const &)
Definition: implementors.h:139
edm::limited::impl::BeginProcessBlockProducer::doBeginProcessBlockProduce_
void doBeginProcessBlockProduce_(ProcessBlock &) final
Definition: implementorsMethods.h:42
edm::limited::impl::EndLuminosityBlockProducer::EndLuminosityBlockProducer
EndLuminosityBlockProducer(edm::ParameterSet const &iPSet)
Definition: implementors.h:381
edm::limited::impl::BeginRunProducer::BeginRunProducer
BeginRunProducer(edm::ParameterSet const &iPSet)
Definition: implementors.h:324
edm::limited::impl::StreamCacheHolder::doStreamEndRun_
void doStreamEndRun_(StreamID id, Run const &rp, EventSetup const &c) final
Definition: implementors.h:76
FWCoreCommonFwd.h
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316
edm::limited::impl::InputProcessBlockCacheHolder::~InputProcessBlockCacheHolder
~InputProcessBlockCacheHolder() noexcept(false) override
Definition: implementors.h:105
edm::limited::impl::LuminosityBlockSummaryCacheHolder::mutex_
std::mutex mutex_
Definition: implementors.h:274
edm::limited::impl::Accumulator::hasAccumulator
bool hasAccumulator() const override
Definition: implementors.h:422