CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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  PuttableSourceBase(const PuttableSourceBase&) = delete;
35 
36  // ---------- const member functions ---------------------
37 
38  // ---------- static member functions --------------------
39 
40  // ---------- member functions ---------------------------
43  void registerProducts() final;
44 
45  bool hasAbilityToProduceInBeginRuns() const final { return true; }
46 
47  bool hasAbilityToProduceInBeginLumis() const final { return true; }
48 
49  protected:
50  //If inheriting class overrides, they need to call this function as well
51  void beginJob() override;
52 
53  private:
54  void doBeginLumi(LuminosityBlockPrincipal& lbp, ProcessContext const*) override;
55  void doBeginRun(RunPrincipal& rp, ProcessContext const*) override;
56 
57  virtual void beginRun(Run&);
59 
60  // ---------- member data --------------------------------
61  };
62 } // namespace edm
63 
64 #endif
virtual void beginRun(Run &)
bool hasAbilityToProduceInBeginRuns() const final
void beginJob() override
Begin protected makes it easier to do template programming.
void doBeginLumi(LuminosityBlockPrincipal &lbp, ProcessContext const *) override
Called by framework at beginning of lumi block.
void registerProducts() final
Register any produced products.
void registerProducts(ProducerBase *, ProductRegistry *, ModuleDescription const &)
Definition: ProducerBase.cc:57
void resolvePutIndicies(BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
Definition: ProducerBase.cc:79
virtual void beginLuminosityBlock(LuminosityBlock &)
void doBeginRun(RunPrincipal &rp, ProcessContext const *) override
Called by framework at beginning of run.
PuttableSourceBase(ParameterSet const &, InputSourceDescription const &)
bool hasAbilityToProduceInBeginLumis() const final
PuttableSourceBase & operator=(const PuttableSourceBase &)=delete
Definition: Run.h:45