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
< FilledGroupPtr,
GroupCollection::const_iterator > 
const_iterator
 
typedef std::vector
< boost::shared_ptr< Group > > 
GroupCollection
 
typedef std::string ProcessName
 
typedef
ProcessHistory::const_iterator 
ProcessNameConstIterator
 
typedef boost::shared_ptr
< Group const > 
SharedConstGroupPtr
 
typedef boost::shared_ptr< GroupSharedGroupPtr
 
typedef GroupCollection::size_type size_type
 

Public Member Functions

LuminosityBlockAuxiliary const & aux () const
 
Timestamp const & beginTime () const
 
Timestamp const & endTime () const
 
void fillLuminosityBlockPrincipal (boost::shared_ptr< BranchMapper > mapper=boost::shared_ptr< BranchMapper >(new BranchMapper), boost::shared_ptr< DelayedReader > rtrv=boost::shared_ptr< DelayedReader >(new NoDelayedReader))
 
LuminosityBlockID id () const
 
LuminosityBlockNumber_t luminosityBlock () const
 
 LuminosityBlockPrincipal (boost::shared_ptr< LuminosityBlockAuxiliary > aux, boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, boost::shared_ptr< RunPrincipal > rp)
 
void mergeAuxiliary (LuminosityBlockAuxiliary const &aux)
 
void put (ConstBranchDescription const &bd, std::auto_ptr< EDProduct > edp, std::auto_ptr< ProductProvenance > productProvenance)
 
void readImmediate () const
 
RunNumber_t run () const
 
RunPrincipal const & runPrincipal () const
 
RunPrincipalrunPrincipal ()
 
void setEndTime (Timestamp const &time)
 
void setUnscheduledHandler (boost::shared_ptr< UnscheduledHandler >)
 
void swap (LuminosityBlockPrincipal &)
 
 ~LuminosityBlockPrincipal ()
 
- Public Member Functions inherited from edm::Principal
void addGroupInput (boost::shared_ptr< ConstBranchDescription > bd)
 
void addGroupScheduled (boost::shared_ptr< ConstBranchDescription > bd)
 
void addGroupSource (boost::shared_ptr< ConstBranchDescription > bd)
 
void addOnDemandGroup (boost::shared_ptr< ConstBranchDescription > bd)
 
void adjustIndexesAfterProductRegistryAddition ()
 
bool adjustToNewProductRegistry (ProductRegistry const &reg)
 
const_iterator begin () const
 
boost::shared_ptr< BranchMapperbranchMapperPtr () const
 
BranchType const & branchType () const
 
void clearPrincipal ()
 
const_iterator end () const
 
void fillPrincipal (ProcessHistoryID const &hist, boost::shared_ptr< BranchMapper > mapper, boost::shared_ptr< DelayedReader > rtrv)
 
void getAllProvenance (std::vector< Provenance const * > &provenances) const
 
BasicHandle getByLabel (TypeID const &tid, std::string const &label, std::string const &productInstanceName, std::string const &processName, size_t &cachedOffset, int &fillCount) const
 
BasicHandle getBySelector (TypeID const &tid, SelectorBase const &s) const
 
BasicHandle getByType (TypeID const &tid) const
 
OutputHandle getForOutput (BranchID const &bid, bool getProd) const
 
SharedConstGroupPtr const getGroup (BranchID const &oid, bool resolveProd, bool fillOnDemand) const
 
void getMany (TypeID const &tid, SelectorBase const &, BasicHandleVec &results) const
 
void getManyByType (TypeID const &tid, BasicHandleVec &results) const
 
size_t getMatchingSequence (TypeID const &typeID, SelectorBase const &selector, BasicHandle &result) const
 
Provenance getProvenance (BranchID const &bid) const
 
void maybeFlushCache (TypeID const &tid, InputTag const &tag) const
 
 Principal (boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, BranchType bt)
 
ProcessConfiguration const & processConfiguration () const
 
ProcessHistory const & processHistory () const
 
ProcessHistoryID const & processHistoryID () const
 
EDProductGetter const * prodGetter () const
 
ProductRegistry const & productRegistry () const
 
void recombine (Principal &other, std::vector< BranchID > const &bids)
 
size_t size () const
 
boost::shared_ptr< DelayedReaderstore () const
 
virtual ~Principal ()
 
- Public Member Functions inherited from edm::EDProductGetter
 EDProductGetter ()
 
ProductID oldToNewProductID (ProductID const &oldProductID) const
 
virtual ~EDProductGetter ()
 

Private Member Functions

void resolveProductImmediate (Group const &g) const
 
virtual bool unscheduledFill (std::string const &) const
 

Private Attributes

boost::shared_ptr
< LuminosityBlockAuxiliary
aux_
 
boost::shared_ptr< RunPrincipalrunPrincipal_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::Principal
void addGroup_ (std::auto_ptr< Group > g)
 
void addGroupOrThrow (std::auto_ptr< Group > g)
 
void checkUniquenessAndType (std::auto_ptr< EDProduct > &prod, Group const *group) const
 
GroupgetExistingGroup (BranchID const &branchID)
 
GroupgetExistingGroup (Group const &g)
 
SharedConstGroupPtr const getGroupByIndex (ProductTransientIndex const &oid, bool resolveProd, bool fillOnDemand) const
 
ProcessHistoryprocessHistoryUpdate ()
 
void putOrMerge (std::auto_ptr< EDProduct > prod, Group const *group) const
 
void putOrMerge (std::auto_ptr< EDProduct > prod, std::auto_ptr< ProductProvenance > prov, Group *group)
 
void resolveProduct (Group const &g, bool fillOnDemand) const
 
void setProcessHistory (Principal const &principal)
 
void swapBase (Principal &)
 

Detailed Description

Definition at line 29 of file LuminosityBlockPrincipal.h.

Member Typedef Documentation

Definition at line 31 of file LuminosityBlockPrincipal.h.

Definition at line 32 of file LuminosityBlockPrincipal.h.

Constructor & Destructor Documentation

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

Definition at line 9 of file LuminosityBlockPrincipal.cc.

13  :
14  Base(reg, pc, InLumi),
15  runPrincipal_(rp),
16  aux_(aux) {
17  }
boost::shared_ptr< RunPrincipal > runPrincipal_
LuminosityBlockAuxiliary const & aux() const
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
edm::LuminosityBlockPrincipal::~LuminosityBlockPrincipal ( )
inline

Definition at line 39 of file LuminosityBlockPrincipal.h.

39 {}

Member Function Documentation

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

Definition at line 73 of file LuminosityBlockPrincipal.h.

References aux_.

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

73  {
74  return *aux_;
75  }
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
Timestamp const& edm::LuminosityBlockPrincipal::beginTime ( ) const
inline
Timestamp const& edm::LuminosityBlockPrincipal::endTime ( ) const
inline

Definition at line 61 of file LuminosityBlockPrincipal.h.

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

Referenced by edm::EventProcessor::endLumi().

61  {
62  return aux().endTime();
63  }
LuminosityBlockAuxiliary const & aux() const
Timestamp const & endTime() const
void edm::LuminosityBlockPrincipal::fillLuminosityBlockPrincipal ( boost::shared_ptr< BranchMapper mapper = boost::shared_ptr<BranchMapper>(new BranchMapper),
boost::shared_ptr< DelayedReader rtrv = boost::shared_ptr<DelayedReader>(new NoDelayedReader) 
)

Definition at line 20 of file LuminosityBlockPrincipal.cc.

References aux_, edm::Principal::begin(), edm::Principal::end(), edm::Principal::fillPrincipal(), i, edm::Principal::processHistoryID(), runPrincipal_, and edm::Principal::setProcessHistory().

22  {
23 
24  fillPrincipal(aux_->processHistoryID(), mapper, rtrv);
25  if (runPrincipal_) {
27  }
28  mapper->processHistoryID() = processHistoryID();
29  for (const_iterator i = this->begin(), iEnd = this->end(); i != iEnd; ++i) {
30  (*i)->setProvenance(mapper);
31  }
32  }
int i
Definition: DBlmapReader.cc:9
boost::shared_ptr< RunPrincipal > runPrincipal_
const_iterator end() const
Definition: Principal.h:131
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:116
void setProcessHistory(Principal const &principal)
Definition: Principal.cc:201
void fillPrincipal(ProcessHistoryID const &hist, boost::shared_ptr< BranchMapper > mapper, boost::shared_ptr< DelayedReader > rtrv)
Definition: Principal.cc:138
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
const_iterator begin() const
Definition: Principal.h:130
boost::filter_iterator< FilledGroupPtr, GroupCollection::const_iterator > const_iterator
Definition: Principal.h:48
LuminosityBlockID edm::LuminosityBlockPrincipal::id ( void  ) const
inline
LuminosityBlockNumber_t edm::LuminosityBlockPrincipal::luminosityBlock ( ) const
inline
void edm::LuminosityBlockPrincipal::mergeAuxiliary ( LuminosityBlockAuxiliary const &  aux)
inline

Definition at line 81 of file LuminosityBlockPrincipal.h.

References aux_.

81  {
82  return aux_->mergeAuxiliary(aux);
83  }
LuminosityBlockAuxiliary const & aux() const
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
void edm::LuminosityBlockPrincipal::put ( ConstBranchDescription const &  bd,
std::auto_ptr< EDProduct edp,
std::auto_ptr< ProductProvenance productProvenance 
)

Definition at line 35 of file LuminosityBlockPrincipal.cc.

References edm::ConstBranchDescription::branchID(), edm::Principal::branchMapperPtr(), edm::hlt::Exception, g, edm::Principal::getExistingGroup(), edm::errors::InsertFailure, edm::ConstBranchDescription::produced(), and edm::Principal::putOrMerge().

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

38  {
39 
40  assert(bd.produced());
41  if (edp.get() == 0) {
42  throw edm::Exception(edm::errors::InsertFailure,"Null Pointer")
43  << "put: Cannot put because auto_ptr to product is null."
44  << "\n";
45  }
46  branchMapperPtr()->insert(*productProvenance);
47  Group *g = getExistingGroup(bd.branchID());
48  assert(g);
49  // Group assumes ownership
50  putOrMerge(edp, productProvenance, g);
51  }
Group * getExistingGroup(BranchID const &branchID)
Definition: Principal.cc:155
void putOrMerge(std::auto_ptr< EDProduct > prod, Group const *group) const
Definition: Principal.cc:623
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
boost::shared_ptr< BranchMapper > branchMapperPtr() const
Definition: Principal.h:139
void edm::LuminosityBlockPrincipal::readImmediate ( ) const

Definition at line 54 of file LuminosityBlockPrincipal.cc.

References edm::Principal::begin(), edm::Group::branchDescription(), edm::Principal::branchMapperPtr(), edm::Principal::end(), g, i, edm::ConstBranchDescription::produced(), edm::Group::productUnavailable(), and resolveProductImmediate().

54  {
55  for (Principal::const_iterator i = begin(), iEnd = end(); i != iEnd; ++i) {
56  Group const& g = **i;
57  if (!g.branchDescription().produced()) {
58  if (!g.productUnavailable()) {
60  }
61  }
62  }
63  branchMapperPtr()->setDelayedRead(false);
64  }
int i
Definition: DBlmapReader.cc:9
const_iterator end() const
Definition: Principal.h:131
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
const_iterator begin() const
Definition: Principal.h:130
boost::filter_iterator< FilledGroupPtr, GroupCollection::const_iterator > const_iterator
Definition: Principal.h:48
boost::shared_ptr< BranchMapper > branchMapperPtr() const
Definition: Principal.h:139
void resolveProductImmediate(Group const &g) const
void edm::LuminosityBlockPrincipal::resolveProductImmediate ( Group const &  g) const
private

Definition at line 67 of file LuminosityBlockPrincipal.cc.

References edm::Group::branchDescription(), edm::getProduct(), edm::ConstBranchDescription::produced(), edm::Principal::putOrMerge(), and edm::Principal::store().

Referenced by readImmediate().

67  {
68  if (g.branchDescription().produced()) return; // nothing to do.
69 
70  // must attempt to load from persistent store
71  BranchKey const bk = BranchKey(g.branchDescription());
72  std::auto_ptr<EDProduct> edp(store()->getProduct(bk, this));
73 
74  // Now fix up the Group
75  if (edp.get() != 0) {
76  putOrMerge(edp, &g);
77  }
78  }
boost::shared_ptr< DelayedReader > store() const
Definition: Principal.h:141
void putOrMerge(std::auto_ptr< EDProduct > prod, Group const *group) const
Definition: Principal.cc:623
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
T const * getProduct(RefCore const &ref)
Definition: RefCoreGet.h:37
RunNumber_t edm::LuminosityBlockPrincipal::run ( void  ) const
inline

Definition at line 77 of file LuminosityBlockPrincipal.h.

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

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

77  {
78  return aux().run();
79  }
LuminosityBlockAuxiliary const & aux() const
RunPrincipal const& edm::LuminosityBlockPrincipal::runPrincipal ( ) const
inline

Definition at line 45 of file LuminosityBlockPrincipal.h.

References runPrincipal_.

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

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

Definition at line 49 of file LuminosityBlockPrincipal.h.

References runPrincipal_.

49  {
50  return *runPrincipal_;
51  }
boost::shared_ptr< RunPrincipal > runPrincipal_
void edm::LuminosityBlockPrincipal::setEndTime ( Timestamp const &  time)
inline

Definition at line 65 of file LuminosityBlockPrincipal.h.

References aux_.

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

65  {
66  aux_->setEndTime(time);
67  }
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
void edm::LuminosityBlockPrincipal::setUnscheduledHandler ( boost::shared_ptr< UnscheduledHandler )
inline

Definition at line 85 of file LuminosityBlockPrincipal.h.

85 {}
void edm::LuminosityBlockPrincipal::swap ( LuminosityBlockPrincipal iOther)

Definition at line 81 of file LuminosityBlockPrincipal.cc.

References aux_, runPrincipal_, std::swap(), and edm::Principal::swapBase().

81  {
82  swapBase(iOther);
83  std::swap(runPrincipal_,iOther.runPrincipal_);
84  std::swap(aux_, iOther.aux_);
85  }
void swapBase(Principal &)
Definition: Principal.cc:647
boost::shared_ptr< RunPrincipal > runPrincipal_
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
virtual bool edm::LuminosityBlockPrincipal::unscheduledFill ( std::string const &  ) const
inlineprivatevirtual

Implements edm::Principal.

Definition at line 97 of file LuminosityBlockPrincipal.h.

97 {return false;}

Member Data Documentation

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

Definition at line 101 of file LuminosityBlockPrincipal.h.

Referenced by fillLuminosityBlockPrincipal(), runPrincipal(), and swap().