CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edm::LuminosityBlockPrincipal Class Reference

#include <LuminosityBlockPrincipal.h>

Inheritance diagram for edm::LuminosityBlockPrincipal:
edm::Principal edm::EDProductGetter

Public Types

typedef LuminosityBlockAuxiliary Auxiliary
 
typedef Principal Base
 
- Public Types inherited from edm::Principal
typedef std::vector< BasicHandleBasicHandleVec
 
typedef boost::filter_iterator
< FilledProductPtr,
ProductHolderCollection::const_iterator > 
const_iterator
 
typedef ProductHolderBase const * ConstProductPtr
 
typedef std::string ProcessName
 
typedef
ProcessHistory::const_iterator 
ProcessNameConstIterator
 
typedef std::vector
< boost::shared_ptr
< ProductHolderBase > > 
ProductHolderCollection
 
typedef boost::shared_ptr
< ProductHolderBase
SharedProductPtr
 
typedef
ProductHolderCollection::size_type 
size_type
 

Public Member Functions

LuminosityBlockAuxiliary const & aux () const
 
Timestamp const & beginTime () const
 
Timestamp const & endTime () const
 
void fillLuminosityBlockPrincipal (DelayedReader *reader=0)
 
LuminosityBlockID id () const
 
LuminosityBlockNumber_t luminosityBlock () const
 
 LuminosityBlockPrincipal (boost::shared_ptr< LuminosityBlockAuxiliary > aux, boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, HistoryAppender *historyAppender)
 
void mergeAuxiliary (LuminosityBlockAuxiliary const &aux)
 
void put (ConstBranchDescription const &bd, WrapperOwningHolder const &edp)
 
void readImmediate () const
 
RunNumber_t run () const
 
RunPrincipal const & runPrincipal () const
 
RunPrincipalrunPrincipal ()
 
void setComplete ()
 
void setEndTime (Timestamp const &time)
 
void setRunPrincipal (boost::shared_ptr< RunPrincipal > rp)
 
void setUnscheduledHandler (boost::shared_ptr< UnscheduledHandler >)
 
 ~LuminosityBlockPrincipal ()
 
- Public Member Functions inherited from edm::Principal
void addAliasedProduct (boost::shared_ptr< ConstBranchDescription > bd)
 
void addInputProduct (boost::shared_ptr< ConstBranchDescription > bd)
 
void addScheduledProduct (boost::shared_ptr< ConstBranchDescription > bd)
 
void addSourceProduct (boost::shared_ptr< ConstBranchDescription > bd)
 
void addUnscheduledProduct (boost::shared_ptr< ConstBranchDescription > bd)
 
void adjustIndexesAfterProductRegistryAddition ()
 
bool adjustToNewProductRegistry (ProductRegistry const &reg)
 
const_iterator begin () const
 
BranchType const & branchType () const
 
void clearPrincipal ()
 
void deleteProduct (BranchID const &id)
 
const_iterator end () const
 
void fillPrincipal (ProcessHistoryID const &hist, DelayedReader *reader)
 
ProductData const * findProductByTag (TypeID const &typeID, InputTag const &tag) const
 
void getAllProvenance (std::vector< Provenance const * > &provenances) const
 
BasicHandle getByLabel (KindOfType kindOfType, TypeID const &typeID, InputTag const &inputTag) const
 
BasicHandle getByLabel (KindOfType kindOfType, TypeID const &typeID, std::string const &label, std::string const &instance, std::string const &process) const
 
BasicHandle getByToken (KindOfType kindOfType, TypeID const &typeID, ProductHolderIndex index, bool skipCurrentProcess, bool &ambiguous) const
 
OutputHandle getForOutput (BranchID const &bid, bool getProd) const
 
void getManyByType (TypeID const &typeID, BasicHandleVec &results) const
 
ConstProductPtr getProductByIndex (ProductHolderIndex const &oid, bool resolveProd, bool fillOnDemand) const
 
ConstProductPtr getProductHolder (BranchID const &oid, bool resolveProd, bool fillOnDemand) const
 
Provenance getProvenance (BranchID const &bid) const
 
bool isComplete () const
 
std::vector< unsigned int > const & lookupProcessOrder () const
 
 Principal (boost::shared_ptr< ProductRegistry const > reg, boost::shared_ptr< ProductHolderIndexHelper const > productLookup, ProcessConfiguration const &pc, BranchType bt, HistoryAppender *historyAppender)
 
ProcessConfiguration const & processConfiguration () const
 
ProcessHistory const & processHistory () const
 
ProcessHistoryID const & processHistoryID () const
 
EDProductGetter const * prodGetter () const
 
ProductHolderIndexHelper const & productLookup () const
 
ProductRegistry const & productRegistry () const
 
DelayedReaderreader () const
 
void recombine (Principal &other, std::vector< BranchID > const &bids)
 
void resolveProduct (ProductHolderBase const &phb, bool fillOnDemand) const
 
size_t size () const
 
virtual ~Principal ()
 
- Public Member Functions inherited from edm::EDProductGetter
 EDProductGetter ()
 
virtual ~EDProductGetter ()
 

Private Member Functions

virtual bool isComplete_ () const override
 
void resolveProductImmediate (ProductHolderBase const &phb) const
 
virtual bool unscheduledFill (std::string const &) const override
 

Private Attributes

boost::shared_ptr
< LuminosityBlockAuxiliary
aux_
 
bool complete_
 
boost::shared_ptr< RunPrincipalrunPrincipal_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDProductGetter
static void assignEDProductGetter (EDProductGetter const *&)
 
static EDProductGetter const * switchProductGetter (EDProductGetter const *)
 These can only be used internally by the framework. More...
 
- Protected Member Functions inherited from edm::Principal
void addProduct_ (std::auto_ptr< ProductHolderBase > phb)
 
void addProductOrThrow (std::auto_ptr< ProductHolderBase > phb)
 
void checkUniquenessAndType (WrapperOwningHolder const &prod, ProductHolderBase const *productHolder) const
 
ProductHolderBasegetExistingProduct (BranchID const &branchID)
 
ProductHolderBasegetExistingProduct (ProductHolderBase const &phb)
 
void putOrMerge (WrapperOwningHolder const &prod, ProductHolderBase const *productHolder) const
 
void putOrMerge (WrapperOwningHolder const &prod, ProductProvenance &prov, ProductHolderBase *productHolder)
 

Detailed Description

Definition at line 30 of file LuminosityBlockPrincipal.h.

Member Typedef Documentation

Definition at line 32 of file LuminosityBlockPrincipal.h.

Definition at line 33 of file LuminosityBlockPrincipal.h.

Constructor & Destructor Documentation

edm::LuminosityBlockPrincipal::LuminosityBlockPrincipal ( boost::shared_ptr< LuminosityBlockAuxiliary aux,
boost::shared_ptr< ProductRegistry const >  reg,
ProcessConfiguration const &  pc,
HistoryAppender historyAppender 
)

Definition at line 11 of file LuminosityBlockPrincipal.cc.

15  :
16  Base(reg, reg->productLookup(InLumi), pc, InLumi, historyAppender),
17  runPrincipal_(),
18  aux_(aux),
19  complete_(false) {
20  }
boost::shared_ptr< RunPrincipal > runPrincipal_
LuminosityBlockAuxiliary const & aux() const
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
edm::LuminosityBlockPrincipal::~LuminosityBlockPrincipal ( )
inline

Definition at line 40 of file LuminosityBlockPrincipal.h.

40 {}

Member Function Documentation

LuminosityBlockAuxiliary const& edm::LuminosityBlockPrincipal::aux ( ) const
inline

Definition at line 76 of file LuminosityBlockPrincipal.h.

References aux_.

Referenced by edm::SubProcess::beginLuminosityBlock(), beginTime(), endTime(), id(), luminosityBlock(), run(), and edm::RootOutputFile::writeLuminosityBlock().

76  {
77  return *aux_;
78  }
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
Timestamp const& edm::LuminosityBlockPrincipal::beginTime ( ) const
inline
Timestamp const& edm::LuminosityBlockPrincipal::endTime ( ) const
inline

Definition at line 64 of file LuminosityBlockPrincipal.h.

References aux(), and edm::LuminosityBlockAuxiliary::endTime().

Referenced by edm::EventProcessor::endLumi(), and DQMRootOutputModule::writeLuminosityBlock().

64  {
65  return aux().endTime();
66  }
LuminosityBlockAuxiliary const & aux() const
Timestamp const & endTime() const
void edm::LuminosityBlockPrincipal::fillLuminosityBlockPrincipal ( DelayedReader reader = 0)

Definition at line 23 of file LuminosityBlockPrincipal.cc.

References aux_, edm::Principal::begin(), complete_, edm::Principal::end(), edm::Principal::fillPrincipal(), i, edm::Principal::processHistoryID(), and edm::Principal::reader().

24  {
25 
26  complete_ = false;
27 
28  fillPrincipal(aux_->processHistoryID(), reader);
29 
30  for(const_iterator i = this->begin(), iEnd = this->end(); i != iEnd; ++i) {
31  (*i)->setProcessHistoryID(processHistoryID());
32  }
33  }
int i
Definition: DBlmapReader.cc:9
const_iterator end() const
Definition: Principal.h:146
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:129
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
DelayedReader * reader() const
Definition: Principal.h:154
const_iterator begin() const
Definition: Principal.h:145
boost::filter_iterator< FilledProductPtr, ProductHolderCollection::const_iterator > const_iterator
Definition: Principal.h:55
void fillPrincipal(ProcessHistoryID const &hist, DelayedReader *reader)
Definition: Principal.cc:303
LuminosityBlockID edm::LuminosityBlockPrincipal::id ( void  ) const
inline
virtual bool edm::LuminosityBlockPrincipal::isComplete_ ( ) const
inlineoverrideprivatevirtual

Reimplemented from edm::Principal.

Definition at line 102 of file LuminosityBlockPrincipal.h.

References complete_.

LuminosityBlockNumber_t edm::LuminosityBlockPrincipal::luminosityBlock ( ) const
inline
void edm::LuminosityBlockPrincipal::mergeAuxiliary ( LuminosityBlockAuxiliary const &  aux)
inline

Definition at line 84 of file LuminosityBlockPrincipal.h.

References aux_.

84  {
85  return aux_->mergeAuxiliary(aux);
86  }
LuminosityBlockAuxiliary const & aux() const
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
void edm::LuminosityBlockPrincipal::put ( ConstBranchDescription const &  bd,
WrapperOwningHolder const &  edp 
)

Definition at line 36 of file LuminosityBlockPrincipal.cc.

References edm::ConstBranchDescription::branchID(), edm::hlt::Exception, edm::Principal::getExistingProduct(), edm::errors::InsertFailure, edm::WrapperHolder::isValid(), edm::ConstBranchDescription::produced(), and edm::Principal::putOrMerge().

Referenced by edm::LuminosityBlock::commit_().

38  {
39 
40  assert(bd.produced());
41  if(!edp.isValid()) {
42  throw edm::Exception(edm::errors::InsertFailure,"Null Pointer")
43  << "put: Cannot put because auto_ptr to product is null."
44  << "\n";
45  }
46  ProductHolderBase* phb = getExistingProduct(bd.branchID());
47  assert(phb);
48  // ProductHolder assumes ownership
49  putOrMerge(edp, phb);
50  }
void putOrMerge(WrapperOwningHolder const &prod, ProductHolderBase const *productHolder) const
Definition: Principal.cc:761
ProductHolderBase * getExistingProduct(BranchID const &branchID)
Definition: Principal.cc:353
void edm::LuminosityBlockPrincipal::readImmediate ( ) const

Definition at line 53 of file LuminosityBlockPrincipal.cc.

References edm::Principal::begin(), edm::ProductHolderBase::branchDescription(), edm::Principal::end(), i, edm::ConstBranchDescription::produced(), edm::ProductHolderBase::productUnavailable(), resolveProductImmediate(), and edm::ProductHolderBase::singleProduct().

53  {
54  for(Principal::const_iterator i = begin(), iEnd = end(); i != iEnd; ++i) {
55  ProductHolderBase const& phb = **i;
56  if(phb.singleProduct() && !phb.branchDescription().produced()) {
57  if(!phb.productUnavailable()) {
59  }
60  }
61  }
62  }
int i
Definition: DBlmapReader.cc:9
const_iterator end() const
Definition: Principal.h:146
const_iterator begin() const
Definition: Principal.h:145
boost::filter_iterator< FilledProductPtr, ProductHolderCollection::const_iterator > const_iterator
Definition: Principal.h:55
void resolveProductImmediate(ProductHolderBase const &phb) const
void edm::LuminosityBlockPrincipal::resolveProductImmediate ( ProductHolderBase const &  phb) const
private

Definition at line 65 of file LuminosityBlockPrincipal.cc.

References edm::ProductHolderBase::branchDescription(), edm::ProductData::getInterface(), edm::getProduct(), edm::ConstBranchDescription::produced(), edm::ProductHolderBase::productData(), edm::Principal::putOrMerge(), and edm::Principal::reader().

Referenced by readImmediate().

65  {
66  if(phb.branchDescription().produced()) return; // nothing to do.
67  if(!reader()) return; // nothing to do.
68 
69  // must attempt to load from persistent store
70  BranchKey const bk = BranchKey(phb.branchDescription());
71  WrapperOwningHolder edp(reader()->getProduct(bk, phb.productData().getInterface(), this));
72 
73  // Now fix up the ProductHolder
74  if(edp.isValid()) {
75  putOrMerge(edp, &phb);
76  }
77  }
void putOrMerge(WrapperOwningHolder const &prod, ProductHolderBase const *productHolder) const
Definition: Principal.cc:761
T const * getProduct(RefCore const &ref)
Definition: RefCoreGet.h:33
DelayedReader * reader() const
Definition: Principal.h:154
RunNumber_t edm::LuminosityBlockPrincipal::run ( void  ) const
inline

Definition at line 80 of file LuminosityBlockPrincipal.h.

References aux(), and edm::LuminosityBlockAuxiliary::run().

Referenced by edm::EventProcessor::beginLumi(), Types.LuminosityBlockID::cppID(), and edm::EventProcessor::endLumi().

80  {
81  return aux().run();
82  }
LuminosityBlockAuxiliary const & aux() const
RunPrincipal const& edm::LuminosityBlockPrincipal::runPrincipal ( ) const
inline

Definition at line 44 of file LuminosityBlockPrincipal.h.

References runPrincipal_.

Referenced by edm::EventPrincipal::runPrincipal().

44  {
45  return *runPrincipal_;
46  }
boost::shared_ptr< RunPrincipal > runPrincipal_
RunPrincipal& edm::LuminosityBlockPrincipal::runPrincipal ( )
inline

Definition at line 48 of file LuminosityBlockPrincipal.h.

References runPrincipal_.

48  {
49  return *runPrincipal_;
50  }
boost::shared_ptr< RunPrincipal > runPrincipal_
void edm::LuminosityBlockPrincipal::setComplete ( )
inline

Definition at line 96 of file LuminosityBlockPrincipal.h.

References complete_.

Referenced by edm::InputSource::doEndLumi().

96  {
97  complete_ = true;
98  }
void edm::LuminosityBlockPrincipal::setEndTime ( Timestamp const &  time)
inline

Definition at line 68 of file LuminosityBlockPrincipal.h.

References aux_.

Referenced by edm::InputSource::doEndLumi().

68  {
69  aux_->setEndTime(time);
70  }
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
void edm::LuminosityBlockPrincipal::setRunPrincipal ( boost::shared_ptr< RunPrincipal rp)
inline

Definition at line 52 of file LuminosityBlockPrincipal.h.

References runPrincipal_.

52  {
53  runPrincipal_ = rp;
54  }
boost::shared_ptr< RunPrincipal > runPrincipal_
void edm::LuminosityBlockPrincipal::setUnscheduledHandler ( boost::shared_ptr< UnscheduledHandler )
inline

Definition at line 88 of file LuminosityBlockPrincipal.h.

88 {}
virtual bool edm::LuminosityBlockPrincipal::unscheduledFill ( std::string const &  ) const
inlineoverrideprivatevirtual

Implements edm::Principal.

Definition at line 104 of file LuminosityBlockPrincipal.h.

104 {return false;}

Member Data Documentation

boost::shared_ptr<LuminosityBlockAuxiliary> edm::LuminosityBlockPrincipal::aux_
private
bool edm::LuminosityBlockPrincipal::complete_
private
boost::shared_ptr<RunPrincipal> edm::LuminosityBlockPrincipal::runPrincipal_
private

Definition at line 108 of file LuminosityBlockPrincipal.h.

Referenced by runPrincipal(), and setRunPrincipal().