CMS 3D CMS Logo

PuttableSourceBase.h
Go to the documentation of this file.
1 #ifndef FWCore_Sources_PuttableSourceBase_h
2 #define FWCore_Sources_PuttableSourceBase_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Sources
6 // Class : PuttableSourceBase
7 //
16 //
17 // Original Author: root
18 // Created: Tue, 26 Sep 2017 20:51:50 GMT
19 //
20 
21 // system include files
22 
23 // user include files
27 
28 // forward declarations
29 namespace edm {
30  class PuttableSourceBase : public InputSource, public ProducerBase {
31  public:
33 
34  // ---------- const member functions ---------------------
35 
36  // ---------- static member functions --------------------
37 
38  // ---------- member functions ---------------------------
41  void registerProducts() final;
42 
43  bool hasAbilityToProduceInBeginRuns() const final { return true; }
44 
45  bool hasAbilityToProduceInBeginLumis() const final { return true; }
46 
47  protected:
48  //If inheriting class overrides, they need to call this function as well
49  void beginJob() override;
50 
51  private:
52  void doBeginLumi(LuminosityBlockPrincipal& lbp, ProcessContext const*) override;
53  void doBeginRun(RunPrincipal& rp, ProcessContext const*) override;
54 
55  virtual void beginRun(Run&);
57 
58  PuttableSourceBase(const PuttableSourceBase&) = delete;
59 
61 
62  // ---------- member data --------------------------------
63  };
64 } // namespace edm
65 
66 #endif
edm::PuttableSourceBase::hasAbilityToProduceInBeginLumis
bool hasAbilityToProduceInBeginLumis() const final
Definition: PuttableSourceBase.h:45
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::Run
Definition: Run.h:45
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ProcessContext
Definition: ProcessContext.h:27
edm::LuminosityBlockPrincipal
Definition: LuminosityBlockPrincipal.h:31
edm::InputSourceDescription
Definition: InputSourceDescription.h:20
edm::PuttableSourceBase::beginJob
void beginJob() override
Begin protected makes it easier to do template programming.
Definition: PuttableSourceBase.cc:43
watchdog.const
const
Definition: watchdog.py:83
edm::PuttableSourceBase::PuttableSourceBase
PuttableSourceBase(ParameterSet const &, InputSourceDescription const &)
Definition: PuttableSourceBase.cc:38
edm::PuttableSourceBase::operator=
PuttableSourceBase & operator=(const PuttableSourceBase &)=delete
edm::PuttableSourceBase::doBeginRun
void doBeginRun(RunPrincipal &rp, ProcessContext const *) override
Called by framework at beginning of run.
Definition: PuttableSourceBase.cc:59
ProducerBase.h
edm::PuttableSourceBase::registerProducts
void registerProducts() final
Register any produced products.
Definition: PuttableSourceBase.cc:41
edm::ParameterSet
Definition: ParameterSet.h:36
edm::PuttableSourceBase::beginLuminosityBlock
virtual void beginLuminosityBlock(LuminosityBlock &)
Definition: PuttableSourceBase.cc:75
Frameworkfwd.h
InputSource.h
edm::ProducerBase::resolvePutIndicies
void resolvePutIndicies(BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
Definition: ProducerBase.cc:79
edm::PuttableSourceBase::beginRun
virtual void beginRun(Run &)
Definition: PuttableSourceBase.cc:73
edm::PuttableSourceBase::doBeginLumi
void doBeginLumi(LuminosityBlockPrincipal &lbp, ProcessContext const *) override
Called by framework at beginning of lumi block.
Definition: PuttableSourceBase.cc:66
edm::PuttableSourceBase::hasAbilityToProduceInBeginRuns
bool hasAbilityToProduceInBeginRuns() const final
Definition: PuttableSourceBase.h:43
edm::InputSource
Definition: InputSource.h:76
edm::RunPrincipal
Definition: RunPrincipal.h:34
edm::ProducerBase
Definition: ProducerBase.h:65
edm::ProducerBase::registerProducts
void registerProducts(ProducerBase *, ProductRegistry *, ModuleDescription const &)
Definition: ProducerBase.cc:57
edm::PuttableSourceBase
Definition: PuttableSourceBase.h:30