CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends
edm::LuminosityBlock Class Reference

#include <LuminosityBlock.h>

Inheritance diagram for edm::LuminosityBlock:
edm::LuminosityBlockBase

Public Types

typedef unsigned long CacheIdentifier_t
 

Public Member Functions

CacheIdentifier_t cacheIdentifier () const
 
template<typename PROD , typename... Args>
void emplace (EDPutTokenT< PROD > token, Args &&...args)
 puts a new product More...
 
template<typename PROD , typename... Args>
void emplace (EDPutToken token, Args &&...args)
 
template<typename PROD >
PROD const & get (EDGetTokenT< PROD > token) const (false)
 
void getAllStableProvenance (std::vector< StableProvenance 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 More...
 
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 >
Handle< PRODgetHandle (EDGetTokenT< PROD > token) const
 
template<typename PROD >
void getManyByType (std::vector< Handle< PROD >> &results) const
 
Provenance getProvenance (BranchID const &theID) const
 
Run const & getRun () const
 
LuminosityBlockIndex index () const
 
void labelsForToken (EDGetToken const &iToken, ProductLabels &oLabels) const
 
 LuminosityBlock (LuminosityBlockPrincipal const &lbp, ModuleDescription const &md, ModuleCallingContext const *, bool isAtEnd)
 
LuminosityBlockAuxiliary const & luminosityBlockAuxiliary () const override
 
ModuleCallingContext const * moduleCallingContext () const
 
ProcessHistory const & processHistory () const
 
ProcessHistoryID const & processHistoryID () const
 
template<typename PROD >
void put (std::unique_ptr< PROD > product)
 Put a new product. More...
 
template<typename PROD >
void put (std::unique_ptr< PROD > product, std::string const &productInstanceName)
 Put a new product with a 'product instance name'. More...
 
template<typename PROD >
void put (EDPutToken token, std::unique_ptr< PROD > product)
 
template<typename PROD >
void put (EDPutTokenT< PROD > token, std::unique_ptr< PROD > product)
 
void setConsumer (EDConsumerBase const *iConsumer)
 
void setProducer (ProducerBase const *iProducer)
 
void setSharedResourcesAcquirer (SharedResourcesAcquirer *iResourceAcquirer)
 
 ~LuminosityBlock () override
 
- Public Member Functions inherited from edm::LuminosityBlockBase
Timestamp const & beginTime () const
 
Timestamp const & endTime () const
 
template<typename PROD >
bool getByLabel (InputTag const &tag, Handle< PROD > &result) const
 same as above, but using the InputTag class More...
 
template<class T >
bool getByLabel (const InputTag &tag, Handle< T > &result) const
 
LuminosityBlockID id () const
 
LuminosityBlockNumber_t luminosityBlock () const
 
 LuminosityBlockBase ()
 
RunNumber_t run () const
 
virtual ~LuminosityBlockBase ()
 

Private Types

typedef std::vector< edm::propagate_const< std::unique_ptr< WrapperBase > > > ProductPtrVec
 

Private Member Functions

void commit_ (std::vector< edm::ProductResolverIndex > const &iShouldPut)
 
template<typename PROD , typename... Args>
void emplaceImpl (EDPutToken::value_type token, Args &&...args)
 
void fillRun () const
 
BasicHandle getByLabelImpl (std::type_info const &iWrapperType, std::type_info const &iProductType, InputTag const &iTag) const override
 
LuminosityBlockPrincipal const & luminosityBlockPrincipal () const
 
template<typename PROD >
void putImpl (EDPutToken::value_type token, std::unique_ptr< PROD > product)
 
ProductPtrVecputProducts ()
 
ProductPtrVec const & putProducts () const
 

Private Attributes

LuminosityBlockAuxiliary const & aux_
 
ModuleCallingContext const * moduleCallingContext_
 
PrincipalGetAdapter provRecorder_
 
ProductPtrVec putProducts_
 
std::optional< Runrun_
 

Static Private Attributes

static const std::string emptyString_
 

Friends

class ProducerBase
 
class RawInputSource
 
template<typename T >
class stream::ProducingModuleAdaptorBase
 

Detailed Description

Definition at line 49 of file LuminosityBlock.h.

Member Typedef Documentation

If you are caching data from the LuminosityBlock, you should also keep this number. If this number changes then you know that the data you have cached is invalid. The value of '0' will never be returned so you can use that to denote that you have not yet checked the value.

Definition at line 70 of file LuminosityBlock.h.

typedef std::vector<edm::propagate_const<std::unique_ptr<WrapperBase> > > edm::LuminosityBlock::ProductPtrVec
private

Definition at line 163 of file LuminosityBlock.h.

Constructor & Destructor Documentation

LuminosityBlock::LuminosityBlock ( LuminosityBlockPrincipal const &  lbp,
ModuleDescription const &  md,
ModuleCallingContext const *  moduleCallingContext,
bool  isAtEnd 
)

Definition at line 12 of file LuminosityBlock.cc.

16  : provRecorder_(lbp, md, isAtEnd), aux_(lbp.aux()), run_(), moduleCallingContext_(moduleCallingContext) {}
ModuleCallingContext const * moduleCallingContext() const
LuminosityBlockAuxiliary const & aux_
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
std::optional< Run > run_
LuminosityBlock::~LuminosityBlock ( )
override

Definition at line 18 of file LuminosityBlock.cc.

18 {}

Member Function Documentation

LuminosityBlock::CacheIdentifier_t LuminosityBlock::cacheIdentifier ( ) const

Definition at line 22 of file LuminosityBlock.cc.

References edm::Principal::cacheIdentifier(), and luminosityBlockPrincipal().

22  {
24  }
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
CacheIdentifier_t cacheIdentifier() const
Definition: Principal.h:184
void LuminosityBlock::commit_ ( std::vector< edm::ProductResolverIndex > const &  iShouldPut)
private

Definition at line 65 of file LuminosityBlock.cc.

References edm::get_underlying_safe(), mps_fire::i, index(), edm::isEndTransition(), luminosityBlockPrincipal(), eostools::move(), AlCaHLTBitMon_ParallelJobs::p, edm::PrincipalGetAdapter::principal(), provRecorder_, edm::LuminosityBlockPrincipal::put(), putProducts(), edm::PrincipalGetAdapter::putTokenIndexToProductResolverIndex(), and edm::PrincipalGetAdapter::transition().

Referenced by edm::stream::ProducingModuleAdaptorBase< EDProducerBase >::commit().

65  {
66  LuminosityBlockPrincipal const& lbp = luminosityBlockPrincipal();
67  size_t nPut = 0;
68  for (size_t i = 0; i < putProducts().size(); ++i) {
69  auto& p = get_underlying_safe(putProducts()[i]);
70  if (p) {
72  ++nPut;
73  }
74  }
75 
76  auto sz = iShouldPut.size();
77  if (sz != 0 and sz != nPut) {
78  //some were missed
79  auto& p = provRecorder_.principal();
80  for (auto index : iShouldPut) {
81  auto resolver = p.getProductResolverByIndex(index);
82  if (not resolver->productResolved() and isEndTransition(provRecorder_.transition()) ==
83  resolver->branchDescription().availableOnlyAtEndTransition()) {
84  resolver->putProduct(std::unique_ptr<WrapperBase>());
85  }
86  }
87  }
88 
89  // the cleanup is all or none
90  putProducts().clear();
91  }
Transition transition() const
Principal const & principal() const
LuminosityBlockIndex index() const
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() const
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
constexpr bool isEndTransition(Transition iValue)
Definition: Transition.h:25
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
ProductPtrVec & putProducts()
PrincipalGetAdapter provRecorder_
def move(src, dest)
Definition: eostools.py:511
template<typename PROD , typename... Args>
void LuminosityBlock::emplace ( EDPutTokenT< PROD token,
Args &&...  args 
)

puts a new product

Definition at line 244 of file LuminosityBlock.h.

References writedatasetfile::args, edm::EDPutTokenT< T >::index(), edm::EDPutTokenT< T >::isUninitialized(), PROD, edm::principal_get_adapter_detail::throwOnPutOfUninitializedToken(), and UNLIKELY.

Referenced by ConditionDumperInEdm::endLuminosityBlockProduce(), and RawPCCProducer::globalEndLuminosityBlockProduce().

244  {
245  if (UNLIKELY(token.isUninitialized())) {
247  }
248  emplaceImpl<PROD>(token.index(), std::forward<Args>(args)...);
249  }
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21
template<typename PROD , typename... Args>
void LuminosityBlock::emplace ( EDPutToken  token,
Args &&...  args 
)

Definition at line 252 of file LuminosityBlock.h.

References writedatasetfile::args, edm::EDPutToken::index(), edm::EDPutToken::isUninitialized(), PROD, edm::principal_get_adapter_detail::throwOnPutOfUninitializedToken(), edm::principal_get_adapter_detail::throwOnPutOfWrongType(), and UNLIKELY.

252  {
253  if (UNLIKELY(token.isUninitialized())) {
255  }
256  if (UNLIKELY(provRecorder_.getTypeIDForPutTokenIndex(token.index()) != TypeID{typeid(PROD)})) {
259  }
260 
261  emplaceImpl(token.index(), std::forward<Args>(args)...);
262  }
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
TypeID const & getTypeIDForPutTokenIndex(EDPutToken::value_type index) const
void throwOnPutOfWrongType(std::type_info const &wrongType, TypeID const &rightType)
void emplaceImpl(EDPutToken::value_type token, Args &&...args)
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21
template<typename PROD , typename... Args>
void LuminosityBlock::emplaceImpl ( EDPutToken::value_type  token,
Args &&...  args 
)
private

Definition at line 265 of file LuminosityBlock.h.

References writedatasetfile::args, eostools::move(), findQualityFiles::size, and relativeConstraints::value.

265  {
266  assert(index < putProducts().size());
267 
268  std::unique_ptr<Wrapper<PROD>> wp(new Wrapper<PROD>(WrapperBase::Emplace{}, std::forward<Args>(args)...));
269 
270  // The following will call post_insert if T has such a function,
271  // and do nothing if T has no such function.
272  std::conditional_t<detail::has_postinsert<PROD>::value, DoPostInsert<PROD>, DoNotPostInsert<PROD>> maybe_inserter;
273  maybe_inserter(&(wp->bareProduct()));
274 
275  putProducts()[index] = std::move(wp);
276  }
size
Write out results.
LuminosityBlockIndex index() const
ProductPtrVec & putProducts()
def move(src, dest)
Definition: eostools.py:511
void LuminosityBlock::fillRun ( ) const
private

Definition at line 40 of file LuminosityBlock.cc.

References edm::PrincipalGetAdapter::getConsumer(), edm::PrincipalGetAdapter::getSharedResourcesAcquirer(), luminosityBlockPrincipal(), moduleCallingContext_, edm::PrincipalGetAdapter::moduleDescription(), provRecorder_, and run_.

40  {
41  run_.emplace(
43  run_->setSharedResourcesAcquirer(provRecorder_.getSharedResourcesAcquirer());
44  run_->setConsumer(provRecorder_.getConsumer());
45  }
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
EDConsumerBase const * getConsumer() const
SharedResourcesAcquirer * getSharedResourcesAcquirer() const
ModuleDescription const & moduleDescription() const
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
std::optional< Run > run_
template<typename PROD >
PROD const & LuminosityBlock::get ( EDGetTokenT< PROD token) const

Definition at line 354 of file LuminosityBlock.h.

References eostools::move(), edm::PRODUCT_TYPE, edm::principal_get_adapter_detail::throwOnPrematureRead(), unpackBuffers-CaloStage2::token, and UNLIKELY.

Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), rrapi.RRApi::columns(), rrapi.RRApi::count(), rrapi.RRApi::data(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getGeneral(), betterConfigParser.BetterConfigParser::getResultingSection(), rrapi.RRApi::report(), rrapi.RRApi::reports(), rrapi.RRApi::tables(), rrapi.RRApi::tags(), rrapi.RRApi::templates(), and rrapi.RRApi::workspaces().

354  {
355  if
358  }
359  BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)), PRODUCT_TYPE, token, moduleCallingContext_);
360  return *convert_handle<PROD>(std::move(bh));
361  }
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
#define UNLIKELY(x)
Definition: Likely.h:21
def move(src, dest)
Definition: eostools.py:511
void LuminosityBlock::getAllStableProvenance ( std::vector< StableProvenance const * > &  provenances) const

Definition at line 61 of file LuminosityBlock.cc.

References edm::Principal::getAllStableProvenance(), and luminosityBlockPrincipal().

61  {
63  }
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
Definition: Principal.cc:832
template<typename PROD >
bool LuminosityBlock::getByLabel ( std::string const &  label,
Handle< PROD > &  result 
) const

Definition at line 279 of file LuminosityBlock.h.

Referenced by pat::PATTriggerProducer::beginLuminosityBlock(), LumiCalculator::endLuminosityBlock(), LogErrorEventFilter::globalBeginLuminosityBlock(), and edm::service::RandomNumberGeneratorService::readFromLuminosityBlock().

279  {
280  return getByLabel(label, emptyString_, result);
281  }
static const std::string emptyString_
bool getByLabel(std::string const &label, Handle< PROD > &result) const
char const * label
template<typename PROD >
bool LuminosityBlock::getByLabel ( std::string const &  label,
std::string const &  productInstanceName,
Handle< PROD > &  result 
) const

Definition at line 284 of file LuminosityBlock.h.

References edm::HandleBase::clear(), edm::HandleBase::failedToGet(), eostools::move(), and edm::principal_get_adapter_detail::throwOnPrematureRead().

286  {
288  principal_get_adapter_detail::throwOnPrematureRead("Lumi", TypeID(typeid(PROD)), label, productInstanceName);
289  }
290  result.clear();
291  BasicHandle bh = provRecorder_.getByLabel_(
292  TypeID(typeid(PROD)), label, productInstanceName, emptyString_, moduleCallingContext_);
293  result = convert_handle<PROD>(std::move(bh)); // throws on conversion error
294  if (result.failedToGet()) {
295  return false;
296  }
297  return true;
298  }
BasicHandle getByLabel_(TypeID const &tid, InputTag const &tag, ModuleCallingContext const *mcc) const
static const std::string emptyString_
char const * label
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511
template<typename PROD >
bool LuminosityBlock::getByLabel ( InputTag const &  tag,
Handle< PROD > &  result 
) const

same as above, but using the InputTag class

Definition at line 302 of file LuminosityBlock.h.

References edm::HandleBase::clear(), edm::HandleBase::failedToGet(), edm::InputTag::instance(), edm::InputTag::label(), eostools::move(), and edm::principal_get_adapter_detail::throwOnPrematureRead().

302  {
304  principal_get_adapter_detail::throwOnPrematureRead("Lumi", TypeID(typeid(PROD)), tag.label(), tag.instance());
305  }
306  result.clear();
307  BasicHandle bh = provRecorder_.getByLabel_(TypeID(typeid(PROD)), tag, moduleCallingContext_);
308  result = convert_handle<PROD>(std::move(bh)); // throws on conversion error
309  if (result.failedToGet()) {
310  return false;
311  }
312  return true;
313  }
BasicHandle getByLabel_(TypeID const &tid, InputTag const &tag, ModuleCallingContext const *mcc) const
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511
BasicHandle LuminosityBlock::getByLabelImpl ( std::type_info const &  iWrapperType,
std::type_info const &  iProductType,
InputTag const &  iTag 
) const
overrideprivate

Definition at line 99 of file LuminosityBlock.cc.

References edm::PrincipalGetAdapter::getByLabel_(), h, moduleCallingContext_, and provRecorder_.

101  {
102  BasicHandle h = provRecorder_.getByLabel_(TypeID(iProductType), iTag, moduleCallingContext_);
103  return h;
104  }
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
BasicHandle getByLabel_(TypeID const &tid, InputTag const &tag, ModuleCallingContext const *mcc) const
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
template<typename PROD >
bool LuminosityBlock::getByToken ( EDGetToken  token,
Handle< PROD > &  result 
) const

Definition at line 316 of file LuminosityBlock.h.

References edm::HandleBase::clear(), edm::HandleBase::failedToGet(), eostools::move(), edm::PRODUCT_TYPE, and edm::principal_get_adapter_detail::throwOnPrematureRead().

Referenced by EventHeader::analyze(), TrackCount::analyze(), IsoTrig::analyze(), L1GtAnalyzer::analyzeConditionsInLumiBlock(), RivetAnalyzer::beginLuminosityBlock(), HLTPrescaleRecorder::beginLuminosityBlock(), pat::PATTriggerEventProducer::beginLuminosityBlock(), BrilClient::dqmEndLuminosityBlock(), GenFilterEfficiencyAnalyzer::endLuminosityBlock(), MillePedeFileExtractor::endLuminosityBlock(), DQMLumiMonitor::endLuminosityBlock(), GenXSecAnalyzer::endLuminosityBlock(), CorrPCCProducer::endLuminosityBlock(), VertexHistogramMaker::fill(), DigiLumiCorrHistogramMaker::fill(), EDMtoMEConverter::Tokens< T >::getData(), GetLumi::getRawValue(), RawPCCProducer::globalEndLuminosityBlockProduce(), AlcaBeamSpotManager::readLumi(), SiPixelStatusManager::readLumi(), and GenWeightsTableProducer::streamBeginLuminosityBlock().

316  {
318  principal_get_adapter_detail::throwOnPrematureRead("Lumi", TypeID(typeid(PROD)), token);
319  }
320  result.clear();
321  BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)), PRODUCT_TYPE, token, moduleCallingContext_);
322  result = convert_handle<PROD>(std::move(bh)); // throws on conversion error
323  if (result.failedToGet()) {
324  return false;
325  }
326  return true;
327  }
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511
template<typename PROD >
bool LuminosityBlock::getByToken ( EDGetTokenT< PROD token,
Handle< PROD > &  result 
) const

Definition at line 330 of file LuminosityBlock.h.

References edm::HandleBase::clear(), edm::HandleBase::failedToGet(), eostools::move(), edm::PRODUCT_TYPE, and edm::principal_get_adapter_detail::throwOnPrematureRead().

330  {
333  }
334  result.clear();
335  BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)), PRODUCT_TYPE, token, moduleCallingContext_);
336  result = convert_handle<PROD>(std::move(bh)); // throws on conversion error
337  if (result.failedToGet()) {
338  return false;
339  }
340  return true;
341  }
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511
template<typename PROD >
Handle< PROD > LuminosityBlock::getHandle ( EDGetTokenT< PROD token) const

Definition at line 344 of file LuminosityBlock.h.

References eostools::move(), edm::PRODUCT_TYPE, edm::principal_get_adapter_detail::throwOnPrematureRead(), and UNLIKELY.

Referenced by edm::GetterOfProducts< trigger::HLTPrescaleTable >::fillHandles().

344  {
345  if
348  }
349  BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)), PRODUCT_TYPE, token, moduleCallingContext_);
350  return convert_handle<PROD>(std::move(bh));
351  }
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
#define UNLIKELY(x)
Definition: Likely.h:21
def move(src, dest)
Definition: eostools.py:511
template<typename PROD >
void LuminosityBlock::getManyByType ( std::vector< Handle< PROD >> &  results) const

Definition at line 364 of file LuminosityBlock.h.

References bookConverter::results, and edm::principal_get_adapter_detail::throwOnPrematureRead().

364  {
367  }
369  }
void getManyByType(std::vector< Handle< PROD > > &results, ModuleCallingContext const *mcc) const
ModuleCallingContext const * moduleCallingContext_
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
Provenance LuminosityBlock::getProvenance ( BranchID const &  theID) const

Definition at line 57 of file LuminosityBlock.cc.

References edm::Principal::getProvenance(), luminosityBlockPrincipal(), and moduleCallingContext_.

57  {
59  }
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
Provenance getProvenance(BranchID const &bid, ModuleCallingContext const *mcc) const
Definition: Principal.cc:798
ModuleCallingContext const * moduleCallingContext_
Run const& edm::LuminosityBlock::getRun ( ) const
inline
LuminosityBlockIndex LuminosityBlock::index ( ) const
Returns
Reusable index which can be used to separate data for different simultaneous LuminosityBlocks.

Definition at line 20 of file LuminosityBlock.cc.

References edm::LuminosityBlockPrincipal::index(), and luminosityBlockPrincipal().

Referenced by TotemTimingDQMSource::analyze(), CTPPSDiamondDQMSource::analyze(), HLTrigReport::analyze(), L1TSync_Offline::analyze(), CTPPSCommonDQMSource::analyzeCTPPSRecord(), edm::CosMuoGenProducer::beginLuminosityBlock(), edm::BeamHaloProducer::beginLuminosityBlock(), gen::Pythia6Gun::beginLuminosityBlock(), EcalDigiProducer::beginLuminosityBlock(), edm::GeneratorFilter< HAD, DEC >::beginLuminosityBlockProduce(), edm::HadronizerFilter< HAD, DEC >::beginLuminosityBlockProduce(), commit_(), ConditionDumperInEdm::endLuminosityBlockProduce(), LogErrorEventFilter::filter(), RandomEngineStateProducer::globalBeginLuminosityBlockProduce(), CTPPSCommonDQMSource::globalEndLuminosityBlock(), TotemTimingDQMSource::globalEndLuminosityBlock(), CTPPSDiamondDQMSource::globalEndLuminosityBlock(), HLTrigReport::globalEndLuminosityBlock(), LogErrorEventFilter::globalEndLuminosityBlock(), GenFilterEfficiencyProducer::globalEndLuminosityBlockProduce(), LogErrorEventFilter::globalEndLuminosityBlockProduce(), BeautifulSoup.PageElement::insert(), edm::global::impl::LuminosityBlockSummaryCacheHolder< T, S >::maybeClearCache(), edm::limited::impl::LuminosityBlockSummaryCacheHolder< T, S >::maybeClearCache(), edm::service::RandomNumberGeneratorService::preBeginLumi(), SiPixelDigiToRaw::produce(), ConditionDumperInEdm::produce(), GenFilterEfficiencyProducer::produce(), and edm::service::RandomNumberGeneratorService::readFromLuminosityBlock().

20 { return luminosityBlockPrincipal().index(); }
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
LuminosityBlockIndex index() const
void edm::LuminosityBlock::labelsForToken ( EDGetToken const &  iToken,
ProductLabels oLabels 
) const
inline

Definition at line 145 of file LuminosityBlock.h.

References writedatasetfile::args, and PROD.

145  {
146  provRecorder_.labelsForToken(iToken, oLabels);
147  }
PrincipalGetAdapter provRecorder_
void labelsForToken(EDGetToken const &iToken, ProductLabels &oLabels) const
LuminosityBlockAuxiliary const& edm::LuminosityBlock::luminosityBlockAuxiliary ( ) const
inlineoverridevirtual

Implements edm::LuminosityBlockBase.

Definition at line 58 of file LuminosityBlock.h.

Referenced by PixelLumiDQM::beginLuminosityBlock(), edm::PileUp::beginLuminosityBlock(), and PixelLumiDQM::endLuminosityBlock().

58 { return aux_; }
LuminosityBlockAuxiliary const & aux_
LuminosityBlockPrincipal const & LuminosityBlock::luminosityBlockPrincipal ( ) const
private

Definition at line 53 of file LuminosityBlock.cc.

References watchdog::const, edm::PrincipalGetAdapter::principal(), and provRecorder_.

Referenced by cacheIdentifier(), commit_(), fillRun(), getAllStableProvenance(), getProvenance(), index(), and processHistoryID().

53  {
54  return dynamic_cast<LuminosityBlockPrincipal const&>(provRecorder_.principal());
55  }
Principal const & principal() const
PrincipalGetAdapter provRecorder_
ModuleCallingContext const* edm::LuminosityBlock::moduleCallingContext ( ) const
inline

Definition at line 143 of file LuminosityBlock.h.

Referenced by edm::PileUp::beginLuminosityBlock(), and edm::PileUp::endLuminosityBlock().

143 { return moduleCallingContext_; }
ModuleCallingContext const * moduleCallingContext_
ProcessHistory const & LuminosityBlock::processHistory ( ) const

Definition at line 97 of file LuminosityBlock.cc.

References edm::PrincipalGetAdapter::processHistory(), and provRecorder_.

Referenced by gen::BaseHadronizer::generateLHE().

97 { return provRecorder_.processHistory(); }
ProcessHistory const & processHistory() const
PrincipalGetAdapter provRecorder_
ProcessHistoryID const & LuminosityBlock::processHistoryID ( ) const

Definition at line 93 of file LuminosityBlock.cc.

References luminosityBlockPrincipal(), and edm::Principal::processHistoryID().

93  {
95  }
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:142
template<typename PROD >
void edm::LuminosityBlock::put ( std::unique_ptr< PROD product)
inline

Put a new product.

Definition at line 114 of file LuminosityBlock.h.

References writedatasetfile::args, eostools::move(), PROD, put(), AlCaHLTBitMon_QueryRunRegistry::string, and unpackBuffers-CaloStage2::token.

Referenced by dqmservices::DQMProtobufReader::beginLuminosityBlock(), edm::GeneratorFilter< HAD, DEC >::beginLuminosityBlockProduce(), edm::HadronizerFilter< HAD, DEC >::beginLuminosityBlockProduce(), LumiProducer::beginLuminosityBlockProduce(), AlcaBeamSpotFromDB::endLuminosityBlockProduce(), AlcaBeamSpotProducer::endLuminosityBlockProduce(), DQMEDHarvester::endLuminosityBlockProduce(), MillePedeFileConverter::endLuminosityBlockProduce(), EventCountProducer::endLuminosityBlockProduce(), AlcaPCCProducer::endLuminosityBlockProduce(), SiPixelStatusProducer::endLuminosityBlockProduce(), HLTPrescaleRecorder::endLuminosityBlockProduce(), edm::GeneratorFilter< HAD, DEC >::endLuminosityBlockProduce(), EDMtoMEConverter::endLuminosityBlockProduce(), edm::HadronizerFilter< HAD, DEC >::endLuminosityBlockProduce(), RandomEngineStateProducer::globalBeginLuminosityBlockProduce(), GenFilterEfficiencyProducer::globalEndLuminosityBlockProduce(), LogErrorEventFilter::globalEndLuminosityBlockProduce(), ExpressLumiProducer::writeEmptyProductForEntry(), ExpressLumiProducer::writeProductsForEntry(), and LumiProducer::writeProductsForEntry().

114  {
115  put<PROD>(std::move(product), std::string());
116  }
def move(src, dest)
Definition: eostools.py:511
template<typename PROD >
void LuminosityBlock::put ( std::unique_ptr< PROD product,
std::string const &  productInstanceName 
)

Put a new product with a 'product instance name'.

Definition at line 203 of file LuminosityBlock.h.

References eostools::move(), PROD, edm::principal_get_adapter_detail::throwOnPutOfNullProduct(), and UNLIKELY.

203  {
204  if (UNLIKELY(product.get() == nullptr)) { // null pointer is illegal
205  TypeID typeID(typeid(PROD));
206  principal_get_adapter_detail::throwOnPutOfNullProduct("LuminosityBlock", typeID, productInstanceName);
207  }
208  auto index = provRecorder_.getPutTokenIndex(TypeID(*product), productInstanceName);
209  putImpl(index, std::move(product));
210  }
LuminosityBlockIndex index() const
void putImpl(EDPutToken::value_type token, std::unique_ptr< PROD > product)
PrincipalGetAdapter provRecorder_
EDPutToken::value_type getPutTokenIndex(TypeID const &type, std::string const &productInstanceName) const
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21
void throwOnPutOfNullProduct(char const *principalType, TypeID const &productType, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511
template<typename PROD >
void LuminosityBlock::put ( EDPutToken  token,
std::unique_ptr< PROD product 
)

Definition at line 226 of file LuminosityBlock.h.

References edm::EDPutToken::index(), edm::EDPutToken::isUninitialized(), eostools::move(), PROD, edm::principal_get_adapter_detail::throwOnPutOfNullProduct(), edm::principal_get_adapter_detail::throwOnPutOfUninitializedToken(), edm::principal_get_adapter_detail::throwOnPutOfWrongType(), and UNLIKELY.

226  {
227  if (UNLIKELY(product.get() == 0)) { // null pointer is illegal
228  TypeID typeID(typeid(PROD));
230  "LuminosityBlock", typeID, provRecorder_.productInstanceLabel(token));
231  }
232  if (UNLIKELY(token.isUninitialized())) {
234  }
235  if (UNLIKELY(provRecorder_.getTypeIDForPutTokenIndex(token.index()) != TypeID{typeid(PROD)})) {
238  }
239 
240  putImpl(token.index(), std::move(product));
241  }
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
TypeID const & getTypeIDForPutTokenIndex(EDPutToken::value_type index) const
void putImpl(EDPutToken::value_type token, std::unique_ptr< PROD > product)
void throwOnPutOfWrongType(std::type_info const &wrongType, TypeID const &rightType)
std::string const & productInstanceLabel(EDPutToken) const
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21
void throwOnPutOfNullProduct(char const *principalType, TypeID const &productType, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511
template<typename PROD >
void LuminosityBlock::put ( EDPutTokenT< PROD token,
std::unique_ptr< PROD product 
)

Definition at line 213 of file LuminosityBlock.h.

References edm::EDPutTokenT< T >::index(), edm::EDPutTokenT< T >::isUninitialized(), eostools::move(), PROD, edm::principal_get_adapter_detail::throwOnPutOfNullProduct(), edm::principal_get_adapter_detail::throwOnPutOfUninitializedToken(), and UNLIKELY.

213  {
214  if (UNLIKELY(product.get() == 0)) { // null pointer is illegal
215  TypeID typeID(typeid(PROD));
217  "LuminosityBlock", typeID, provRecorder_.productInstanceLabel(token));
218  }
219  if (UNLIKELY(token.isUninitialized())) {
221  }
222  putImpl(token.index(), std::move(product));
223  }
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
void putImpl(EDPutToken::value_type token, std::unique_ptr< PROD > product)
std::string const & productInstanceLabel(EDPutToken) const
PrincipalGetAdapter provRecorder_
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21
void throwOnPutOfNullProduct(char const *principalType, TypeID const &productType, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511
template<typename PROD >
void LuminosityBlock::putImpl ( EDPutToken::value_type  token,
std::unique_ptr< PROD product 
)
private

Definition at line 190 of file LuminosityBlock.h.

References eostools::move(), findQualityFiles::size, and relativeConstraints::value.

190  {
191  // The following will call post_insert if T has such a function,
192  // and do nothing if T has no such function.
193  std::conditional_t<detail::has_postinsert<PROD>::value, DoPostInsert<PROD>, DoNotPostInsert<PROD>> maybe_inserter;
194  maybe_inserter(product.get());
195 
196  assert(index < putProducts().size());
197 
198  std::unique_ptr<Wrapper<PROD>> wp(new Wrapper<PROD>(std::move(product)));
199  putProducts()[index] = std::move(wp);
200  }
size
Write out results.
LuminosityBlockIndex index() const
ProductPtrVec & putProducts()
def move(src, dest)
Definition: eostools.py:511
ProductPtrVec& edm::LuminosityBlock::putProducts ( )
inlineprivate

Definition at line 164 of file LuminosityBlock.h.

Referenced by commit_().

164 { return putProducts_; }
ProductPtrVec putProducts_
ProductPtrVec const& edm::LuminosityBlock::putProducts ( ) const
inlineprivate

Definition at line 165 of file LuminosityBlock.h.

165 { return putProducts_; }
ProductPtrVec putProducts_
void LuminosityBlock::setConsumer ( EDConsumerBase const *  iConsumer)

Definition at line 26 of file LuminosityBlock.cc.

References provRecorder_, run_, and edm::PrincipalGetAdapter::setConsumer().

Referenced by edm::EDAnalyzer::doBeginLuminosityBlock(), edm::EDProducer::doBeginLuminosityBlock(), edm::EDFilter::doBeginLuminosityBlock(), edm::one::EDProducerBase::doBeginLuminosityBlock(), edm::one::EDFilterBase::doBeginLuminosityBlock(), edm::one::EDAnalyzerBase::doBeginLuminosityBlock(), edm::global::EDAnalyzerBase::doBeginLuminosityBlock(), edm::limited::EDProducerBase::doBeginLuminosityBlock(), edm::global::EDProducerBase::doBeginLuminosityBlock(), edm::limited::EDFilterBase::doBeginLuminosityBlock(), edm::global::EDFilterBase::doBeginLuminosityBlock(), edm::limited::EDAnalyzerBase::doBeginLuminosityBlock(), edm::stream::EDAnalyzerAdaptor< T >::doBeginLuminosityBlock(), edm::stream::ProducingModuleAdaptor< T, M, B >::doBeginLuminosityBlock(), edm::EDAnalyzer::doEndLuminosityBlock(), edm::EDProducer::doEndLuminosityBlock(), edm::EDFilter::doEndLuminosityBlock(), edm::one::EDProducerBase::doEndLuminosityBlock(), edm::one::EDFilterBase::doEndLuminosityBlock(), edm::one::EDAnalyzerBase::doEndLuminosityBlock(), edm::global::EDAnalyzerBase::doEndLuminosityBlock(), edm::limited::EDProducerBase::doEndLuminosityBlock(), edm::global::EDProducerBase::doEndLuminosityBlock(), edm::limited::EDFilterBase::doEndLuminosityBlock(), edm::global::EDFilterBase::doEndLuminosityBlock(), edm::limited::EDAnalyzerBase::doEndLuminosityBlock(), edm::stream::EDAnalyzerAdaptor< T >::doEndLuminosityBlock(), edm::stream::ProducingModuleAdaptor< T, M, B >::doEndLuminosityBlock(), edm::global::EDAnalyzerBase::doStreamBeginLuminosityBlock(), edm::limited::EDProducerBase::doStreamBeginLuminosityBlock(), edm::global::EDProducerBase::doStreamBeginLuminosityBlock(), edm::limited::EDFilterBase::doStreamBeginLuminosityBlock(), edm::global::EDFilterBase::doStreamBeginLuminosityBlock(), edm::limited::EDAnalyzerBase::doStreamBeginLuminosityBlock(), edm::global::EDAnalyzerBase::doStreamEndLuminosityBlock(), edm::limited::EDProducerBase::doStreamEndLuminosityBlock(), edm::global::EDProducerBase::doStreamEndLuminosityBlock(), edm::limited::EDFilterBase::doStreamEndLuminosityBlock(), edm::global::EDFilterBase::doStreamEndLuminosityBlock(), edm::limited::EDAnalyzerBase::doStreamEndLuminosityBlock(), edm::stream::EDAnalyzerAdaptorBase::doStreamEndLuminosityBlock(), and edm::stream::ProducingModuleAdaptorBase< T >::doStreamEndLuminosityBlock().

26  {
27  provRecorder_.setConsumer(iConsumer);
28  if (run_) {
29  run_->setConsumer(iConsumer);
30  }
31  }
void setConsumer(EDConsumerBase const *iConsumer)
PrincipalGetAdapter provRecorder_
std::optional< Run > run_
void LuminosityBlock::setProducer ( ProducerBase const *  iProducer)

Definition at line 47 of file LuminosityBlock.cc.

References provRecorder_, putProducts_, edm::PrincipalGetAdapter::putTokenIndexToProductResolverIndex(), and edm::PrincipalGetAdapter::setProducer().

Referenced by edm::PuttableSourceBase::doBeginLumi(), edm::one::EDFilterBase::doBeginLuminosityBlock(), edm::one::EDProducerBase::doBeginLuminosityBlock(), edm::limited::EDProducerBase::doBeginLuminosityBlock(), edm::global::EDProducerBase::doBeginLuminosityBlock(), edm::limited::EDFilterBase::doBeginLuminosityBlock(), edm::global::EDFilterBase::doBeginLuminosityBlock(), edm::stream::ProducingModuleAdaptor< T, M, B >::doBeginLuminosityBlock(), edm::one::EDFilterBase::doEndLuminosityBlock(), edm::one::EDProducerBase::doEndLuminosityBlock(), edm::limited::EDProducerBase::doEndLuminosityBlock(), edm::global::EDProducerBase::doEndLuminosityBlock(), edm::limited::EDFilterBase::doEndLuminosityBlock(), edm::global::EDFilterBase::doEndLuminosityBlock(), and edm::stream::ProducingModuleAdaptor< T, M, B >::doEndLuminosityBlock().

47  {
48  provRecorder_.setProducer(iProducer);
49  //set appropriate size
51  }
ProductPtrVec putProducts_
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() const
void setProducer(ProducerBase const *iProd)
PrincipalGetAdapter provRecorder_
void LuminosityBlock::setSharedResourcesAcquirer ( SharedResourcesAcquirer iResourceAcquirer)

Definition at line 33 of file LuminosityBlock.cc.

References provRecorder_, run_, and edm::PrincipalGetAdapter::setSharedResourcesAcquirer().

33  {
34  provRecorder_.setSharedResourcesAcquirer(iResourceAcquirer);
35  if (run_) {
36  run_->setSharedResourcesAcquirer(iResourceAcquirer);
37  }
38  }
void setSharedResourcesAcquirer(SharedResourcesAcquirer *iSra)
PrincipalGetAdapter provRecorder_
std::optional< Run > run_

Friends And Related Function Documentation

friend class ProducerBase
friend

Definition at line 174 of file LuminosityBlock.h.

friend class RawInputSource
friend

Definition at line 173 of file LuminosityBlock.h.

template<typename T >
friend class stream::ProducingModuleAdaptorBase
friend

Definition at line 176 of file LuminosityBlock.h.

Member Data Documentation

LuminosityBlockAuxiliary const& edm::LuminosityBlock::aux_
private

Definition at line 182 of file LuminosityBlock.h.

std::string const LuminosityBlock::emptyString_
staticprivate

Definition at line 186 of file LuminosityBlock.h.

ModuleCallingContext const* edm::LuminosityBlock::moduleCallingContext_
private

Definition at line 184 of file LuminosityBlock.h.

Referenced by fillRun(), getByLabelImpl(), and getProvenance().

PrincipalGetAdapter edm::LuminosityBlock::provRecorder_
private
ProductPtrVec edm::LuminosityBlock::putProducts_
private

Definition at line 181 of file LuminosityBlock.h.

Referenced by setProducer().

std::optional<Run> edm::LuminosityBlock::run_
mutableprivate

Definition at line 183 of file LuminosityBlock.h.

Referenced by fillRun(), setConsumer(), and setSharedResourcesAcquirer().