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  boost::shared_ptr<RunPrincipal> rp,
39  HistoryAppender* historyAppender = 0);
40 
42 
44 
45  RunPrincipal const& runPrincipal() const {
46  return *runPrincipal_;
47  }
48 
50  return *runPrincipal_;
51  }
52 
54  return aux().id();
55  }
56 
57  Timestamp const& beginTime() const {
58  return aux().beginTime();
59  }
60 
61  Timestamp const& endTime() const {
62  return aux().endTime();
63  }
64 
65  void setEndTime(Timestamp const& time) {
66  aux_->setEndTime(time);
67  }
68 
70  return aux().luminosityBlock();
71  }
72 
73  LuminosityBlockAuxiliary const& aux() const {
74  return *aux_;
75  }
76 
77  RunNumber_t run() const {
78  return aux().run();
79  }
80 
82  return aux_->mergeAuxiliary(aux);
83  }
84 
85  void setUnscheduledHandler(boost::shared_ptr<UnscheduledHandler>) {}
86 
87  void put(
88  ConstBranchDescription const& bd,
89  WrapperOwningHolder const& edp);
90 
91  void readImmediate() const;
92 
93  private:
94  virtual bool unscheduledFill(std::string const&) const {return false;}
95 
96  void resolveProductImmediate(Group const& g) const;
97 
98  boost::shared_ptr<RunPrincipal> runPrincipal_;
99 
100  boost::shared_ptr<LuminosityBlockAuxiliary> aux_;
101  };
102 }
103 #endif
104 
RunPrincipal const & runPrincipal() const
boost::shared_ptr< RunPrincipal > runPrincipal_
Timestamp const & beginTime() const
Timestamp const & endTime() const
virtual bool unscheduledFill(std::string const &) const
LuminosityBlockAuxiliary const & aux() const
unsigned int LuminosityBlockNumber_t
Definition: EventID.h:31
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
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:149
void setUnscheduledHandler(boost::shared_ptr< UnscheduledHandler >)
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 resolveProductImmediate(Group const &g) const
LuminosityBlockID const & id() const
LuminosityBlockPrincipal(boost::shared_ptr< LuminosityBlockAuxiliary > aux, boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, boost::shared_ptr< RunPrincipal > rp, HistoryAppender *historyAppender=0)