CMS 3D CMS Logo

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

List of all members.

Public Types

typedef LuminosityBlockAuxiliary Auxiliary
typedef Principal Base

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 ()

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_

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.

                                        :
        Base(reg, pc, InLumi),
        runPrincipal_(rp),
        aux_(aux) {
  }
edm::LuminosityBlockPrincipal::~LuminosityBlockPrincipal ( ) [inline]

Definition at line 39 of file LuminosityBlockPrincipal.h.

{}

Member Function Documentation

LuminosityBlockAuxiliary const& edm::LuminosityBlockPrincipal::aux ( ) const [inline]
Timestamp const& edm::LuminosityBlockPrincipal::beginTime ( ) const [inline]
Timestamp const& edm::LuminosityBlockPrincipal::endTime ( ) const [inline]
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().

                                           {

    fillPrincipal(aux_->processHistoryID(), mapper, rtrv);
    if (runPrincipal_) {
      setProcessHistory(*runPrincipal_);
    }
    mapper->processHistoryID() = processHistoryID();
    for (const_iterator i = this->begin(), iEnd = this->end(); i != iEnd; ++i) {
      (*i)->setProvenance(mapper);
    }
  }
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_.

                                                             {
      return aux_->mergeAuxiliary(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(), Exception, g, edm::Principal::getExistingGroup(), edm::errors::InsertFailure, edm::ConstBranchDescription::produced(), and edm::Principal::putOrMerge().

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

                                                          {

    assert(bd.produced());
    if (edp.get() == 0) {
      throw edm::Exception(edm::errors::InsertFailure,"Null Pointer")
        << "put: Cannot put because auto_ptr to product is null."
        << "\n";
    }
    branchMapperPtr()->insert(*productProvenance);
    Group *g = getExistingGroup(bd.branchID());
    assert(g);
    // Group assumes ownership
    putOrMerge(edp, productProvenance, g);
  }
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().

                                                {
    for (Principal::const_iterator i = begin(), iEnd = end(); i != iEnd; ++i) {
      Group const& g = **i;
      if (!g.branchDescription().produced()) {
        if (!g.productUnavailable()) {
          resolveProductImmediate(g);
        }
      }
    }
    branchMapperPtr()->setDelayedRead(false);
  }
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().

                                                                        {
    if (g.branchDescription().produced()) return; // nothing to do.

    // must attempt to load from persistent store
    BranchKey const bk = BranchKey(g.branchDescription());
    std::auto_ptr<EDProduct> edp(store()->getProduct(bk, this));

    // Now fix up the Group
    if (edp.get() != 0) {
      putOrMerge(edp, &g);
    }
  }
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(), and edm::EventProcessor::endLumi().

                            {
      return aux().run();
    }
RunPrincipal const& edm::LuminosityBlockPrincipal::runPrincipal ( ) const [inline]

Definition at line 45 of file LuminosityBlockPrincipal.h.

References runPrincipal_.

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

                                             {
      return *runPrincipal_;
    }
RunPrincipal& edm::LuminosityBlockPrincipal::runPrincipal ( ) [inline]

Definition at line 49 of file LuminosityBlockPrincipal.h.

References runPrincipal_.

                                 {
      return *runPrincipal_;
    }
void edm::LuminosityBlockPrincipal::setEndTime ( Timestamp const &  time) [inline]

Definition at line 65 of file LuminosityBlockPrincipal.h.

References aux_.

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

                                           {
      aux_->setEndTime(time);
    }
void edm::LuminosityBlockPrincipal::setUnscheduledHandler ( boost::shared_ptr< UnscheduledHandler ) [inline]

Definition at line 85 of file LuminosityBlockPrincipal.h.

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

Definition at line 81 of file LuminosityBlockPrincipal.cc.

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

                                                                 {
    swapBase(iOther);
    std::swap(runPrincipal_,iOther.runPrincipal_);
    std::swap(aux_, iOther.aux_);
  }
virtual bool edm::LuminosityBlockPrincipal::unscheduledFill ( std::string const &  ) const [inline, private, virtual]

Implements edm::Principal.

Definition at line 97 of file LuminosityBlockPrincipal.h.

{return false;}

Member Data Documentation

Definition at line 101 of file LuminosityBlockPrincipal.h.

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