CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
LuminosityBlockPrincipal.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_LuminosityBlockPrincipal_h
2 #define FWCore_Framework_LuminosityBlockPrincipal_h
3 
4 /*----------------------------------------------------------------------
5 
6 LuminosityBlockPrincipal: This is the class responsible for management of
7 per luminosity block EDProducts. It is not seen by reconstruction code;
8 such code sees the LuminosityBlock class, which is a proxy for LuminosityBlockPrincipal.
9 
10 The major internal component of the LuminosityBlockPrincipal
11 is the DataBlock.
12 
13 ----------------------------------------------------------------------*/
14 
20 
21 #include <memory>
22 
23 #include <vector>
24 
25 namespace edm {
26 
27  class HistoryAppender;
28  class ModuleCallingContext;
29  class RunPrincipal;
30 
32  public:
34  typedef Principal Base;
35  LuminosityBlockPrincipal(std::shared_ptr<ProductRegistry const> reg,
36  ProcessConfiguration const& pc,
37  HistoryAppender* historyAppender,
38  unsigned int index,
39  bool isForPrimaryProcess = true);
40 
42 
44 
45  RunPrincipal const& runPrincipal() const { return *runPrincipal_; }
46 
48 
49  void setRunPrincipal(std::shared_ptr<RunPrincipal> rp) { runPrincipal_ = rp; }
50 
51  void setWillBeContinued(bool iContinued) { willBeContinued_ = iContinued; }
52 
53  LuminosityBlockIndex index() const { return index_; }
54 
55  LuminosityBlockID id() const { return aux().id(); }
56 
57  Timestamp const& beginTime() const { return aux().beginTime(); }
58 
59  Timestamp const& endTime() const { return aux().endTime(); }
60 
61  void setEndTime(Timestamp const& time) { aux_.setEndTime(time); }
62 
64 
66  LuminosityBlockAuxiliary const& aux() const { return aux_; }
67 
68  RunNumber_t run() const { return aux().run(); }
69 
71 
72  void put(BranchDescription const& bd, std::unique_ptr<WrapperBase> edp) const;
73 
74  void put(ProductResolverIndex index, std::unique_ptr<WrapperBase> edp) const;
75 
77  bool willBeContinued() const { return willBeContinued_; }
78 
79  private:
80  unsigned int transitionIndex_() const override;
81 
83 
85 
87 
88  bool willBeContinued_ = false;
89  };
90 } // namespace edm
91 #endif
RunPrincipal const & runPrincipal() const
unsigned int ProductResolverIndex
Timestamp const & beginTime() const
void put(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp) const
void fillLuminosityBlockPrincipal(ProcessHistory const *processHistory, DelayedReader *reader=nullptr)
bool willBeContinued() const
The source is replaying overlapping LuminosityBlocks and this is not the last part for this Lumiosity...
void setEndTime(Timestamp const &time)
Timestamp const & endTime() const
LuminosityBlockAuxiliary const & aux() const
LuminosityBlockIndex index() const
unsigned int LuminosityBlockNumber_t
ProcessHistory const & processHistory() const
Definition: Principal.h:140
LuminosityBlockNumber_t luminosityBlock() const
void setEndTime(Timestamp const &time)
unsigned int transitionIndex_() const override
LuminosityBlockPrincipal(std::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, HistoryAppender *historyAppender, unsigned int index, bool isForPrimaryProcess=true)
def move
Definition: eostools.py:511
void mergeAuxiliary(LuminosityBlockAuxiliary const &newAux)
LuminosityBlockAuxiliary Auxiliary
Timestamp const & endTime() const
Timestamp const & beginTime() const
LuminosityBlockNumber_t luminosityBlock() const
DelayedReader * reader() const
Definition: Principal.h:187
void setRunPrincipal(std::shared_ptr< RunPrincipal > rp)
edm::propagate_const< std::shared_ptr< RunPrincipal > > runPrincipal_
void mergeAuxiliary(LuminosityBlockAuxiliary const &aux)
void setWillBeContinued(bool iContinued)
unsigned int RunNumber_t
void setAux(LuminosityBlockAuxiliary iAux)
LuminosityBlockID const & id() const