CMS 3D CMS Logo

LuminosityBlock.cc
Go to the documentation of this file.
2 
7 
8 namespace edm {
9 
11 
13  ModuleDescription const& md,
14  ModuleCallingContext const* moduleCallingContext,
15  bool isAtEnd)
16  : provRecorder_(lbp, md, isAtEnd),
17  aux_(lbp.aux()),
18  run_(new Run(lbp.runPrincipal(), md, moduleCallingContext, false)),
19  moduleCallingContext_(moduleCallingContext) {}
20 
22 
24 
27  }
28 
30  provRecorder_.setConsumer(iConsumer);
31  if (run_) {
32  const_cast<Run*>(run_.get())->setConsumer(iConsumer);
33  }
34  }
35 
37  provRecorder_.setSharedResourcesAcquirer(iResourceAcquirer);
38  const_cast<Run*>(run_.get())->setSharedResourcesAcquirer(iResourceAcquirer);
39  }
40 
41  void LuminosityBlock::setProducer(ProducerBase const* iProducer) {
42  provRecorder_.setProducer(iProducer);
43  //set appropriate size
45  }
46 
48  return dynamic_cast<LuminosityBlockPrincipal const&>(provRecorder_.principal());
49  }
50 
53  }
54 
55  void LuminosityBlock::getAllStableProvenance(std::vector<StableProvenance const*>& provenances) const {
57  }
58 
59  void LuminosityBlock::commit_(std::vector<edm::ProductResolverIndex> const& iShouldPut) {
61  size_t nPut = 0;
62  for (size_t i = 0; i < putProducts().size(); ++i) {
63  auto& p = get_underlying_safe(putProducts()[i]);
64  if (p) {
66  ++nPut;
67  }
68  }
69 
70  auto sz = iShouldPut.size();
71  if (sz != 0 and sz != nPut) {
72  //some were missed
73  auto& p = provRecorder_.principal();
74  for (auto index : iShouldPut) {
75  auto resolver = p.getProductResolverByIndex(index);
76  if (not resolver->productResolved() and isEndTransition(provRecorder_.transition()) ==
77  resolver->branchDescription().availableOnlyAtEndTransition()) {
78  resolver->putProduct(std::unique_ptr<WrapperBase>());
79  }
80  }
81  }
82 
83  // the cleanup is all or none
84  putProducts().clear();
85  }
86 
89  }
90 
92 
94  std::type_info const& iProductType,
95  const InputTag& iTag) const {
97  return h;
98  }
99 } // namespace edm
ProcessHistory const & processHistory() const
CacheIdentifier_t cacheIdentifier() const
void setConsumer(EDConsumerBase const *iConsumer)
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
void setConsumer(EDConsumerBase const *iConsumer)
void put(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp) const
Transition transition() const
Principal const & principal() const
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
BasicHandle getByLabel_(TypeID const &tid, InputTag const &tag, ModuleCallingContext const *mcc) const
LuminosityBlockIndex index() const
ProductPtrVec putProducts_
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() const
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
Definition: Principal.cc:830
Provenance getProvenance(BranchID const &bid, ModuleCallingContext const *mcc) const
Definition: Principal.cc:796
void setSharedResourcesAcquirer(SharedResourcesAcquirer *iResourceAcquirer)
LuminosityBlockIndex index() const
CacheIdentifier_t cacheIdentifier() const
Definition: Principal.h:184
std::shared_ptr< Run const > const run_
static const std::string emptyString_
void setSharedResourcesAcquirer(SharedResourcesAcquirer *iSra)
BasicHandle getByLabelImpl(std::type_info const &iWrapperType, std::type_info const &iProductType, InputTag const &iTag) const override
constexpr bool isEndTransition(Transition iValue)
Definition: Transition.h:25
void setProducer(ProducerBase const *iProd)
unsigned long CacheIdentifier_t
ProcessHistory const & processHistory() const
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:142
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
Provenance getProvenance(BranchID const &theID) const
ProductPtrVec & putProducts()
ModuleCallingContext const * moduleCallingContext_
void setProducer(ProducerBase const *iProducer)
PrincipalGetAdapter provRecorder_
LuminosityBlock(LuminosityBlockPrincipal const &lbp, ModuleDescription const &md, ModuleCallingContext const *, bool isAtEnd)
HLT enums.
ProcessHistoryID const & processHistoryID() const
void commit_(std::vector< edm::ProductResolverIndex > const &iShouldPut)
def move(src, dest)
Definition: eostools.py:511
Definition: Run.h:45