CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 
15 
19 
20 #include "boost/shared_ptr.hpp"
21 
22 #include <vector>
23 
24 namespace edm {
25 
26  class HistoryAppender;
27  class RunPrincipal;
28  class UnscheduledHandler;
29 
31  public:
33  typedef Principal Base;
35  boost::shared_ptr<LuminosityBlockAuxiliary> aux,
36  boost::shared_ptr<ProductRegistry const> reg,
37  ProcessConfiguration const& pc,
38  HistoryAppender* historyAppender);
39 
41 
43 
44  RunPrincipal const& runPrincipal() const {
45  return *runPrincipal_;
46  }
47 
49  return *runPrincipal_;
50  }
51 
52  void setRunPrincipal(boost::shared_ptr<RunPrincipal> rp) {
53  runPrincipal_ = rp;
54  }
55 
57  return aux().id();
58  }
59 
60  Timestamp const& beginTime() const {
61  return aux().beginTime();
62  }
63 
64  Timestamp const& endTime() const {
65  return aux().endTime();
66  }
67 
68  void setEndTime(Timestamp const& time) {
69  aux_->setEndTime(time);
70  }
71 
73  return aux().luminosityBlock();
74  }
75 
76  LuminosityBlockAuxiliary const& aux() const {
77  return *aux_;
78  }
79 
80  RunNumber_t run() const {
81  return aux().run();
82  }
83 
85  return aux_->mergeAuxiliary(aux);
86  }
87 
88  void setUnscheduledHandler(boost::shared_ptr<UnscheduledHandler>) {}
89 
90  void put(
91  ConstBranchDescription const& bd,
92  WrapperOwningHolder const& edp);
93 
94  void readImmediate() const;
95 
96  void setComplete() {
97  complete_ = true;
98  }
99 
100  private:
101 
102  virtual bool isComplete_() const override {return complete_;}
103 
104  virtual bool unscheduledFill(std::string const&) const override {return false;}
105 
106  void resolveProductImmediate(ProductHolderBase const& phb) const;
107 
108  boost::shared_ptr<RunPrincipal> runPrincipal_;
109 
110  boost::shared_ptr<LuminosityBlockAuxiliary> aux_;
111 
112  bool complete_;
113  };
114 }
115 #endif
116 
RunPrincipal const & runPrincipal() const
boost::shared_ptr< RunPrincipal > runPrincipal_
Timestamp const & beginTime() const
LuminosityBlockPrincipal(boost::shared_ptr< LuminosityBlockAuxiliary > aux, boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, HistoryAppender *historyAppender)
Timestamp const & endTime() const
virtual bool isComplete_() const override
LuminosityBlockAuxiliary const & aux() const
unsigned int LuminosityBlockNumber_t
Definition: EventID.h:31
LuminosityBlockNumber_t luminosityBlock() const
void setEndTime(Timestamp const &time)
LuminosityBlockAuxiliary Auxiliary
Timestamp const & endTime() const
Timestamp const & beginTime() const
LuminosityBlockNumber_t luminosityBlock() const
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
DelayedReader * reader() const
Definition: Principal.h:154
void setUnscheduledHandler(boost::shared_ptr< UnscheduledHandler >)
virtual bool unscheduledFill(std::string const &) const override
void mergeAuxiliary(LuminosityBlockAuxiliary const &aux)
unsigned int RunNumber_t
Definition: EventRange.h:32
void put(ConstBranchDescription const &bd, WrapperOwningHolder const &edp)
void fillLuminosityBlockPrincipal(DelayedReader *reader=0)
void setRunPrincipal(boost::shared_ptr< RunPrincipal > rp)
void resolveProductImmediate(ProductHolderBase const &phb) const
LuminosityBlockID const & id() const