![]() |
![]() |
#include <LuminosityBlock.h>
Public Member Functions | |
void | getAllProvenance (std::vector< Provenance const * > &provenances) const |
template<typename PROD > | |
bool | getByLabel (std::string const &label, Handle< PROD > &result) const |
template<typename PROD > | |
bool | getByLabel (std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const |
template<typename PROD > | |
bool | getByLabel (InputTag const &tag, Handle< PROD > &result) const |
same as above, but using the InputTag class | |
template<typename PROD > | |
bool | getByToken (EDGetToken token, Handle< PROD > &result) const |
template<typename PROD > | |
bool | getByToken (EDGetTokenT< PROD > token, Handle< PROD > &result) const |
template<typename PROD > | |
void | getManyByType (std::vector< Handle< PROD > > &results) const |
Provenance | getProvenance (BranchID const &theID) const |
Run const & | getRun () const |
LuminosityBlock (LuminosityBlockPrincipal &lbp, ModuleDescription const &md) | |
LuminosityBlockAuxiliary const & | luminosityBlockAuxiliary () const |
ProcessHistory const & | processHistory () const |
ProcessHistoryID const & | processHistoryID () const |
template<typename PROD > | |
void | put (std::auto_ptr< PROD > product) |
Put a new product. | |
template<typename PROD > | |
void | put (std::auto_ptr< PROD > product, std::string const &productInstanceName) |
Put a new product with a 'product instance name'. | |
void | setConsumer (EDConsumerBase const *iConsumer) |
~LuminosityBlock () | |
Private Types | |
typedef std::set< BranchID > | BranchIDSet |
typedef std::vector< std::pair < WrapperOwningHolder, ConstBranchDescription const * > > | ProductPtrVec |
Private Member Functions | |
void | addToGotBranchIDs (Provenance const &prov) const |
void | commit_ () |
virtual BasicHandle | getByLabelImpl (std::type_info const &iWrapperType, std::type_info const &iProductType, InputTag const &iTag) const |
LuminosityBlockPrincipal & | luminosityBlockPrincipal () |
LuminosityBlockPrincipal const & | luminosityBlockPrincipal () const |
ProductPtrVec & | putProducts () |
ProductPtrVec const & | putProducts () const |
Private Attributes | |
LuminosityBlockAuxiliary const & | aux_ |
BranchIDSet | gotBranchIDs_ |
PrincipalGetAdapter | provRecorder_ |
ProductPtrVec | putProducts_ |
boost::shared_ptr< Run const > const | run_ |
Static Private Attributes | |
static const std::string | emptyString_ |
Friends | |
class | DaqSource |
class | InputSource |
class | ProducerBase |
class | RawInputSource |
Definition at line 41 of file LuminosityBlock.h.
typedef std::set<BranchID> edm::LuminosityBlock::BranchIDSet [private] |
Definition at line 135 of file LuminosityBlock.h.
typedef std::vector<std::pair<WrapperOwningHolder, ConstBranchDescription const*> > edm::LuminosityBlock::ProductPtrVec [private] |
Definition at line 115 of file LuminosityBlock.h.
LuminosityBlock::LuminosityBlock | ( | LuminosityBlockPrincipal & | lbp, |
ModuleDescription const & | md | ||
) |
Definition at line 11 of file LuminosityBlock.cc.
: provRecorder_(lbp, md), aux_(lbp.aux()), run_(new Run(lbp.runPrincipal(), md)) { }
LuminosityBlock::~LuminosityBlock | ( | ) |
Definition at line 17 of file LuminosityBlock.cc.
References edm::for_all(), and putProducts_.
{ // anything left here must be the result of a failure // let's record them as failed attempts in the event principal for_all(putProducts_, principal_get_adapter_detail::deleter()); }
void LuminosityBlock::addToGotBranchIDs | ( | Provenance const & | prov | ) | const [private] |
Definition at line 79 of file LuminosityBlock.cc.
References edm::Provenance::branchID(), and gotBranchIDs_.
Referenced by getByLabelImpl().
{ gotBranchIDs_.insert(prov.branchID()); }
void LuminosityBlock::commit_ | ( | ) | [private] |
Definition at line 52 of file LuminosityBlock.cc.
References begin, end, luminosityBlockPrincipal(), edm::LuminosityBlockPrincipal::put(), and putProducts().
Referenced by edm::InputSource::doBeginLumi(), and edm::InputSource::doEndLumi().
{ LuminosityBlockPrincipal& lbp = luminosityBlockPrincipal(); ProductPtrVec::iterator pit(putProducts().begin()); ProductPtrVec::iterator pie(putProducts().end()); while(pit != pie) { lbp.put(*pit->second, pit->first); // Ownership has passed, so clear the pointer. pit->first.reset(); ++pit; } // the cleanup is all or none putProducts().clear(); }
void LuminosityBlock::getAllProvenance | ( | std::vector< Provenance const * > & | provenances | ) | const |
Definition at line 47 of file LuminosityBlock.cc.
References edm::Principal::getAllProvenance(), and luminosityBlockPrincipal().
{ luminosityBlockPrincipal().getAllProvenance(provenances); }
bool LuminosityBlock::getByLabel | ( | InputTag const & | tag, |
Handle< PROD > & | result | ||
) | const |
same as above, but using the InputTag class
Reimplemented from edm::LuminosityBlockBase.
Definition at line 192 of file LuminosityBlock.h.
References edm::PrincipalGetAdapter::checkIfComplete(), edm::HandleBase::clear(), edm::convert_handle(), edm::BasicHandle::failedToGet(), edm::PrincipalGetAdapter::getByLabel_(), edm::InputTag::instance(), edm::InputTag::label(), PROD, provRecorder_, and edm::principal_get_adapter_detail::throwOnPrematureRead().
{ if(!provRecorder_.checkIfComplete<PROD>()) { principal_get_adapter_detail::throwOnPrematureRead("Lumi", TypeID(typeid(PROD)), tag.label(), tag.instance()); } result.clear(); BasicHandle bh = provRecorder_.getByLabel_(TypeID(typeid(PROD)), tag); convert_handle(bh, result); // throws on conversion error if (bh.failedToGet()) { return false; } return true; }
bool LuminosityBlock::getByLabel | ( | std::string const & | label, |
std::string const & | productInstanceName, | ||
Handle< PROD > & | result | ||
) | const |
Definition at line 174 of file LuminosityBlock.h.
References edm::PrincipalGetAdapter::checkIfComplete(), edm::HandleBase::clear(), edm::convert_handle(), emptyString_, edm::BasicHandle::failedToGet(), edm::PrincipalGetAdapter::getByLabel_(), PROD, provRecorder_, and edm::principal_get_adapter_detail::throwOnPrematureRead().
{ if(!provRecorder_.checkIfComplete<PROD>()) { principal_get_adapter_detail::throwOnPrematureRead("Lumi", TypeID(typeid(PROD)), label, productInstanceName); } result.clear(); BasicHandle bh = provRecorder_.getByLabel_(TypeID(typeid(PROD)), label, productInstanceName, emptyString_); convert_handle(bh, result); // throws on conversion error if (bh.failedToGet()) { return false; } return true; }
bool LuminosityBlock::getByLabel | ( | std::string const & | label, |
Handle< PROD > & | result | ||
) | const |
Definition at line 168 of file LuminosityBlock.h.
References emptyString_.
Referenced by EventHeader::analyze(), L1GtAnalyzer::analyzeConditionsInLumiBlock(), pat::PATTriggerEventProducer::beginLuminosityBlock(), pat::PATTriggerProducer::beginLuminosityBlock(), LogErrorEventFilter::beginLuminosityBlock(), HLTPrescaleRecorder::beginLuminosityBlock(), DQMLumiMonitor::endLuminosityBlock(), LumiCalculator::endLuminosityBlock(), GenFilterEfficiencyAnalyzer::endLuminosityBlock(), BPhysicsOniaDQM::endLuminosityBlock(), edm::GetterOfProducts< l1extra::L1EtMissParticleCollection >::fillHandles(), GetLumi::getRawValue(), edm::service::RandomNumberGeneratorService::readFromLuminosityBlock(), and AlcaBeamSpotManager::readLumi().
{ return getByLabel(label, emptyString_, result); }
BasicHandle LuminosityBlock::getByLabelImpl | ( | std::type_info const & | iWrapperType, |
std::type_info const & | iProductType, | ||
InputTag const & | iTag | ||
) | const [private, virtual] |
Implements edm::LuminosityBlockBase.
Definition at line 84 of file LuminosityBlock.cc.
References addToGotBranchIDs(), edm::PrincipalGetAdapter::getByLabel_(), h, edm::BasicHandle::isValid(), edm::BasicHandle::provenance(), and provRecorder_.
{ BasicHandle h = provRecorder_.getByLabel_(TypeID(iProductType), iTag); if (h.isValid()) { addToGotBranchIDs(*(h.provenance())); } return h; }
bool LuminosityBlock::getByToken | ( | EDGetToken | token, |
Handle< PROD > & | result | ||
) | const |
Definition at line 207 of file LuminosityBlock.h.
References edm::PrincipalGetAdapter::checkIfComplete(), edm::HandleBase::clear(), edm::convert_handle(), edm::BasicHandle::failedToGet(), edm::PrincipalGetAdapter::getByToken_(), PROD, edm::PRODUCT_TYPE, provRecorder_, and edm::principal_get_adapter_detail::throwOnPrematureRead().
{ if(!provRecorder_.checkIfComplete<PROD>()) { principal_get_adapter_detail::throwOnPrematureRead("Lumi", TypeID(typeid(PROD)), token); } result.clear(); BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)),PRODUCT_TYPE, token); convert_handle(bh, result); // throws on conversion error if (bh.failedToGet()) { return false; } return true; }
bool LuminosityBlock::getByToken | ( | EDGetTokenT< PROD > | token, |
Handle< PROD > & | result | ||
) | const |
Definition at line 222 of file LuminosityBlock.h.
References edm::PrincipalGetAdapter::checkIfComplete(), edm::HandleBase::clear(), edm::convert_handle(), edm::BasicHandle::failedToGet(), edm::PrincipalGetAdapter::getByToken_(), PROD, edm::PRODUCT_TYPE, provRecorder_, and edm::principal_get_adapter_detail::throwOnPrematureRead().
{ if(!provRecorder_.checkIfComplete<PROD>()) { principal_get_adapter_detail::throwOnPrematureRead("Lumi", TypeID(typeid(PROD)), token); } result.clear(); BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)),PRODUCT_TYPE, token); convert_handle(bh, result); // throws on conversion error if (bh.failedToGet()) { return false; } return true; }
void LuminosityBlock::getManyByType | ( | std::vector< Handle< PROD > > & | results | ) | const |
Definition at line 238 of file LuminosityBlock.h.
References edm::PrincipalGetAdapter::checkIfComplete(), edm::PrincipalGetAdapter::getManyByType(), PROD, provRecorder_, python::entryComment::results, and edm::principal_get_adapter_detail::throwOnPrematureRead().
{ if(!provRecorder_.checkIfComplete<PROD>()) { principal_get_adapter_detail::throwOnPrematureRead("Lumi", TypeID(typeid(PROD))); } return provRecorder_.getManyByType(results); }
Provenance LuminosityBlock::getProvenance | ( | BranchID const & | theID | ) | const |
Definition at line 42 of file LuminosityBlock.cc.
References edm::Principal::getProvenance(), and luminosityBlockPrincipal().
{ return luminosityBlockPrincipal().getProvenance(bid); }
Run const& edm::LuminosityBlock::getRun | ( | ) | const [inline] |
Definition at line 80 of file LuminosityBlock.h.
References run_.
Referenced by LumiCalculator::endLuminosityBlock(), and edm::Event::getRun().
{ return *run_; }
LuminosityBlockAuxiliary const& edm::LuminosityBlock::luminosityBlockAuxiliary | ( | ) | const [inline, virtual] |
Implements edm::LuminosityBlockBase.
Definition at line 47 of file LuminosityBlock.h.
References aux_.
{return aux_;}
LuminosityBlockPrincipal const & LuminosityBlock::luminosityBlockPrincipal | ( | ) | const [private] |
Definition at line 37 of file LuminosityBlock.cc.
References compareJSON::const, edm::PrincipalGetAdapter::principal(), and provRecorder_.
Referenced by commit_(), getAllProvenance(), getProvenance(), and processHistoryID().
{ return dynamic_cast<LuminosityBlockPrincipal const&>(provRecorder_.principal()); }
LuminosityBlockPrincipal & LuminosityBlock::luminosityBlockPrincipal | ( | ) | [private] |
Definition at line 24 of file LuminosityBlock.cc.
References edm::PrincipalGetAdapter::principal(), and provRecorder_.
{ return dynamic_cast<LuminosityBlockPrincipal&>(provRecorder_.principal()); }
ProcessHistory const & LuminosityBlock::processHistory | ( | ) | const |
Definition at line 74 of file LuminosityBlock.cc.
References edm::PrincipalGetAdapter::processHistory(), and provRecorder_.
{ return provRecorder_.processHistory(); }
ProcessHistoryID const & LuminosityBlock::processHistoryID | ( | ) | const |
Definition at line 69 of file LuminosityBlock.cc.
References luminosityBlockPrincipal(), and edm::Principal::processHistoryID().
{ return luminosityBlockPrincipal().processHistoryID(); }
void LuminosityBlock::put | ( | std::auto_ptr< PROD > | product, |
std::string const & | productInstanceName | ||
) |
Put a new product with a 'product instance name'.
Definition at line 143 of file LuminosityBlock.h.
References edm::PrincipalGetAdapter::getBranchDescription(), PROD, provRecorder_, putProducts(), edm::principal_get_adapter_detail::throwOnPutOfNullProduct(), and relativeConstraints::value.
{ if(product.get() == 0) { // null pointer is illegal TypeID typeID(typeid(PROD)); principal_get_adapter_detail::throwOnPutOfNullProduct("LuminosityBlock", typeID, productInstanceName); } // The following will call post_insert if T has such a function, // and do nothing if T has no such function. typename boost::mpl::if_c<detail::has_postinsert<PROD>::value, DoPostInsert<PROD>, DoNotPostInsert<PROD> >::type maybe_inserter; maybe_inserter(product.get()); ConstBranchDescription const& desc = provRecorder_.getBranchDescription(TypeID(*product), productInstanceName); WrapperOwningHolder edp(new Wrapper<PROD>(product), Wrapper<PROD>::getInterface()); putProducts().emplace_back(edp, &desc); // product.release(); // The object has been copied into the Wrapper. // The old copy must be deleted, so we cannot release ownership. }
void edm::LuminosityBlock::put | ( | std::auto_ptr< PROD > | product | ) | [inline] |
Put a new product.
Definition at line 87 of file LuminosityBlock.h.
References AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by LumiProducer::beginLuminosityBlockProduce(), RandomEngineStateProducer::beginLuminosityBlockProduce(), AlcaBeamSpotFromDB::endLuminosityBlockProduce(), HLTPrescaleRecorder::endLuminosityBlockProduce(), ConditionDumperInEdm::endLuminosityBlockProduce(), LogErrorEventFilter::endLuminosityBlockProduce(), GenFilterEfficiencyProducer::endLuminosityBlockProduce(), EventCountProducer::endLuminosityBlockProduce(), AlcaBeamSpotProducer::endLuminosityBlockProduce(), ExpressLumiProducer::writeEmptyProductForEntry(), ExpressLumiProducer::writeProductsForEntry(), and LumiProducer::writeProductsForEntry().
{put<PROD>(product, std::string());}
ProductPtrVec const& edm::LuminosityBlock::putProducts | ( | ) | const [inline, private] |
ProductPtrVec& edm::LuminosityBlock::putProducts | ( | ) | [inline, private] |
Definition at line 116 of file LuminosityBlock.h.
References putProducts_.
Referenced by commit_(), and put().
{return putProducts_;}
void LuminosityBlock::setConsumer | ( | EDConsumerBase const * | iConsumer | ) |
Definition at line 29 of file LuminosityBlock.cc.
References provRecorder_, run_, and edm::PrincipalGetAdapter::setConsumer().
Referenced by edm::one::EDProducerBase::doBeginLuminosityBlock(), edm::EDFilter::doBeginLuminosityBlock(), edm::one::EDFilterBase::doBeginLuminosityBlock(), edm::EDAnalyzer::doBeginLuminosityBlock(), edm::EDProducer::doBeginLuminosityBlock(), edm::one::EDFilterBase::doEndLuminosityBlock(), edm::EDAnalyzer::doEndLuminosityBlock(), edm::EDFilter::doEndLuminosityBlock(), edm::one::EDProducerBase::doEndLuminosityBlock(), and edm::EDProducer::doEndLuminosityBlock().
{ provRecorder_.setConsumer(iConsumer); if(run_) { const_cast<Run*>(run_.get())->setConsumer(iConsumer); } }
friend class DaqSource [friend] |
Definition at line 124 of file LuminosityBlock.h.
friend class InputSource [friend] |
Definition at line 123 of file LuminosityBlock.h.
friend class ProducerBase [friend] |
Definition at line 126 of file LuminosityBlock.h.
friend class RawInputSource [friend] |
Definition at line 125 of file LuminosityBlock.h.
LuminosityBlockAuxiliary const& edm::LuminosityBlock::aux_ [private] |
Definition at line 133 of file LuminosityBlock.h.
Referenced by luminosityBlockAuxiliary().
std::string const LuminosityBlock::emptyString_ [static, private] |
Definition at line 138 of file LuminosityBlock.h.
Referenced by getByLabel().
BranchIDSet edm::LuminosityBlock::gotBranchIDs_ [mutable, private] |
Definition at line 136 of file LuminosityBlock.h.
Referenced by addToGotBranchIDs().
Definition at line 131 of file LuminosityBlock.h.
Referenced by getByLabel(), getByLabelImpl(), getByToken(), getManyByType(), luminosityBlockPrincipal(), processHistory(), put(), and setConsumer().
Definition at line 132 of file LuminosityBlock.h.
Referenced by putProducts(), and ~LuminosityBlock().
boost::shared_ptr<Run const> const edm::LuminosityBlock::run_ [private] |
Definition at line 134 of file LuminosityBlock.h.
Referenced by getRun(), and setConsumer().