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 Group const * ConstGroupPtr
 
typedef std::vector
< boost::shared_ptr< Group > > 
GroupCollection
 
typedef std::string ProcessName
 
typedef
ProcessHistory::const_iterator 
ProcessNameConstIterator
 
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 (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, boost::shared_ptr< RunPrincipal > rp, HistoryAppender *historyAppender=0)
 
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 setEndTime (Timestamp const &time)
 
void setUnscheduledHandler (boost::shared_ptr< UnscheduledHandler >)
 
 ~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
 
BranchType const & branchType () const
 
void clearPrincipal ()
 
void deleteProduct (BranchID const &id)
 
const_iterator end () const
 
void fillPrincipal (ProcessHistoryID const &hist, DelayedReader *reader)
 
ProductData const * findGroupByTag (TypeID const &typeID, InputTag const &tag) const
 
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
 
ConstGroupPtr 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, HistoryAppender *historyAppender)
 
ProcessConfiguration const & processConfiguration () const
 
ProcessHistory const & processHistory () const
 
ProcessHistoryID const & processHistoryID () const
 
EDProductGetter const * prodGetter () const
 
ProductRegistry const & productRegistry () const
 
DelayedReaderreader () const
 
void recombine (Principal &other, std::vector< BranchID > const &bids)
 
size_t size () const
 
virtual ~Principal ()
 
- Public Member Functions inherited from edm::EDProductGetter
 EDProductGetter ()
 
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

- 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 addGroup_ (std::auto_ptr< Group > g)
 
void addGroupOrThrow (std::auto_ptr< Group > g)
 
void checkUniquenessAndType (WrapperOwningHolder const &prod, Group const *group) const
 
GroupgetExistingGroup (BranchID const &branchID)
 
GroupgetExistingGroup (Group const &g)
 
ConstGroupPtr getGroupByIndex (ProductTransientIndex const &oid, bool resolveProd, bool fillOnDemand) const
 
void putOrMerge (WrapperOwningHolder const &prod, Group const *group) const
 
void putOrMerge (WrapperOwningHolder const &prod, ProductProvenance &prov, Group *group)
 
void resolveProduct (Group const &g, bool fillOnDemand) const
 

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,
boost::shared_ptr< RunPrincipal rp,
HistoryAppender historyAppender = 0 
)

Definition at line 11 of file LuminosityBlockPrincipal.cc.

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

Definition at line 41 of file LuminosityBlockPrincipal.h.

41 {}

Member Function Documentation

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

Definition at line 73 of file LuminosityBlockPrincipal.h.

References aux_.

Referenced by edm::SubProcess::beginLuminosityBlock(), 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(), and DQMRootOutputModule::writeLuminosityBlock().

61  {
62  return aux().endTime();
63  }
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(), edm::Principal::end(), edm::Principal::fillPrincipal(), i, edm::Principal::processHistoryID(), and edm::Principal::reader().

24  {
25 
26  fillPrincipal(aux_->processHistoryID(), reader);
27 
28  for(const_iterator i = this->begin(), iEnd = this->end(); i != iEnd; ++i) {
29  (*i)->setProcessHistoryID(processHistoryID());
30  }
31  }
int i
Definition: DBlmapReader.cc:9
const_iterator end() const
Definition: Principal.h:141
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:126
boost::shared_ptr< LuminosityBlockAuxiliary > aux_
DelayedReader * reader() const
Definition: Principal.h:149
const_iterator begin() const
Definition: Principal.h:140
boost::filter_iterator< FilledGroupPtr, GroupCollection::const_iterator > const_iterator
Definition: Principal.h:55
void fillPrincipal(ProcessHistoryID const &hist, DelayedReader *reader)
Definition: Principal.cc:229
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,
WrapperOwningHolder const &  edp 
)

Definition at line 34 of file LuminosityBlockPrincipal.cc.

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

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

36  {
37 
38  assert(bd.produced());
39  if(!edp.isValid()) {
40  throw edm::Exception(edm::errors::InsertFailure,"Null Pointer")
41  << "put: Cannot put because auto_ptr to product is null."
42  << "\n";
43  }
44  Group *g = getExistingGroup(bd.branchID());
45  assert(g);
46  // Group assumes ownership
47  putOrMerge(edp, g);
48  }
Group * getExistingGroup(BranchID const &branchID)
Definition: Principal.cc:267
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
void putOrMerge(WrapperOwningHolder const &prod, Group const *group) const
Definition: Principal.cc:759
void edm::LuminosityBlockPrincipal::readImmediate ( ) const

Definition at line 51 of file LuminosityBlockPrincipal.cc.

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

51  {
52  for(Principal::const_iterator i = begin(), iEnd = end(); i != iEnd; ++i) {
53  Group const& g = **i;
54  if(!g.branchDescription().produced()) {
55  if(!g.productUnavailable()) {
57  }
58  }
59  }
60  }
int i
Definition: DBlmapReader.cc:9
const_iterator end() const
Definition: Principal.h:141
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:140
boost::filter_iterator< FilledGroupPtr, GroupCollection::const_iterator > const_iterator
Definition: Principal.h:55
void resolveProductImmediate(Group const &g) const
void edm::LuminosityBlockPrincipal::resolveProductImmediate ( Group const &  g) const
private

Definition at line 63 of file LuminosityBlockPrincipal.cc.

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

Referenced by readImmediate().

63  {
64  if(g.branchDescription().produced()) return; // nothing to do.
65  if(!reader()) return; // nothing to do.
66 
67  // must attempt to load from persistent store
68  BranchKey const bk = BranchKey(g.branchDescription());
69  WrapperOwningHolder edp(reader()->getProduct(bk, g.productData().getInterface(), this));
70 
71  // Now fix up the Group
72  if(edp.isValid()) {
73  putOrMerge(edp, &g);
74  }
75  }
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:33
DelayedReader * reader() const
Definition: Principal.h:149
void putOrMerge(WrapperOwningHolder const &prod, Group const *group) const
Definition: Principal.cc:759
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 {}
virtual bool edm::LuminosityBlockPrincipal::unscheduledFill ( std::string const &  ) const
inlineprivatevirtual

Implements edm::Principal.

Definition at line 94 of file LuminosityBlockPrincipal.h.

94 {return false;}

Member Data Documentation

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

Definition at line 98 of file LuminosityBlockPrincipal.h.

Referenced by runPrincipal().