CMS 3D CMS Logo

Principal.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_Principal_h
2 #define FWCore_Framework_Principal_h
3 
4 /*----------------------------------------------------------------------
5 
6 Principal: This is the implementation of the classes responsible
7 for management of EDProducts. It is not seen by reconstruction code.
8 
9 The major internal component of the Principal is the ProductResolver, which
10 contains an EDProduct and its associated Provenance, along with
11 ancillary transient information regarding the two. ProductResolvers are handled
12 through shared pointers.
13 
14 The Principal returns BasicHandle, rather than a shared
15 pointer to a ProductResolver, when queried.
16 
17 (Historical note: prior to April 2007 this class was named DataBlockImpl)
18 
19 ----------------------------------------------------------------------*/
33 
34 #include "boost/iterator/filter_iterator.hpp"
35 
36 #include <map>
37 #include <memory>
38 #include <set>
39 #include <string>
40 #include <vector>
41 
42 namespace edm {
43 
44  class HistoryAppender;
45  class MergeableRunProductMetadata;
46  class ModuleCallingContext;
47  class ProductResolverIndexHelper;
48  class EDConsumerBase;
51 
53  bool operator()(propagate_const<std::shared_ptr<ProductResolverBase>> const& iObj) { return bool(iObj); }
54  };
55 
56  class Principal : public EDProductGetter {
57  public:
58  typedef std::vector<propagate_const<std::shared_ptr<ProductResolverBase>>> ProductResolverCollection;
59  typedef boost::filter_iterator<FilledProductPtr, ProductResolverCollection::const_iterator> const_iterator;
60  typedef boost::filter_iterator<FilledProductPtr, ProductResolverCollection::iterator> iterator;
63  typedef std::vector<BasicHandle> BasicHandleVec;
65 
66  typedef std::shared_ptr<ProductResolverBase> SharedProductPtr;
68 
69  Principal(std::shared_ptr<ProductRegistry const> reg,
70  std::shared_ptr<ProductResolverIndexHelper const> productLookup,
71  ProcessConfiguration const& pc,
72  BranchType bt,
73  HistoryAppender* historyAppender,
74  bool isForPrimaryProcess = true);
75 
76  ~Principal() override;
77 
79 
81 
84  void fillPrincipal(std::string const& processNameOfBlock, DelayedReader* reader);
85 
86  void clearPrincipal();
87 
89 
90  void deleteProduct(BranchID const& id) const;
91 
92  EDProductGetter const* prodGetter() const { return this; }
93 
94  // Return a BasicHandle to the product which:
95  // 1. matches the given label, instance, and process
96  // (if process if empty gets the match from the most recent process)
97  // 2. If kindOfType is PRODUCT, then the type of the product matches typeID
98  // 3. If kindOfType is ELEMENT
99  // a. the product is a sequence,
100  // b. the sequence has the nested type 'value_type'
101  // c. typeID is the same as or a public base of
102  // this value_type,
103 
104  BasicHandle getByLabel(KindOfType kindOfType,
105  TypeID const& typeID,
106  InputTag const& inputTag,
107  EDConsumerBase const* consumes,
109  ModuleCallingContext const* mcc) const;
110 
111  BasicHandle getByLabel(KindOfType kindOfType,
112  TypeID const& typeID,
113  std::string const& label,
114  std::string const& instance,
115  std::string const& process,
116  EDConsumerBase const* consumes,
118  ModuleCallingContext const* mcc) const;
119 
120  BasicHandle getByToken(KindOfType kindOfType,
121  TypeID const& typeID,
123  bool skipCurrentProcess,
124  bool& ambiguous,
126  ModuleCallingContext const* mcc) const;
127 
128  void prefetchAsync(WaitingTaskHolder waitTask,
130  bool skipCurrentProcess,
131  ServiceToken const& token,
132  ModuleCallingContext const* mcc) const;
133 
134  void getManyByType(TypeID const& typeID,
136  EDConsumerBase const* consumes,
138  ModuleCallingContext const* mcc) const;
139 
141 
143 
145 
146  ProductRegistry const& productRegistry() const { return *preg_; }
147 
149 
150  // merge Principals containing different products.
151  void recombine(Principal& other, std::vector<BranchID> const& bids);
152 
154  return const_cast<ProductResolverBase*>(const_cast<const Principal*>(this)->getProductResolver(oid));
155  }
156 
157  size_t size() const;
158 
159  // These iterators skip over any null shared pointers
161  return boost::make_filter_iterator<FilledProductPtr>(productResolvers_.begin(), productResolvers_.end());
162  }
163  const_iterator end() const {
164  return boost::make_filter_iterator<FilledProductPtr>(productResolvers_.end(), productResolvers_.end());
165  }
166 
168  return boost::make_filter_iterator<FilledProductPtr>(productResolvers_.begin(), productResolvers_.end());
169  }
171  return boost::make_filter_iterator<FilledProductPtr>(productResolvers_.end(), productResolvers_.end());
172  }
173 
174  Provenance const& getProvenance(BranchID const& bid) const;
175  StableProvenance const& getStableProvenance(BranchID const& bid) const;
176 
177  void getAllProvenance(std::vector<Provenance const*>& provenances) const;
178 
179  void getAllStableProvenance(std::vector<StableProvenance const*>& provenances) const;
180 
181  BranchType const& branchType() const { return branchType_; }
182 
183  //This will never return 0 so you can use 0 to mean unset
184  typedef unsigned long CacheIdentifier_t;
186 
187  DelayedReader* reader() const { return reader_; }
188 
190 
191  ProductData const* findProductByTag(TypeID const& typeID,
192  InputTag const& tag,
193  ModuleCallingContext const* mcc) const;
194 
195  void readAllFromSourceAndMergeImmediately(MergeableRunProductMetadata const* mergeableRunProductMetadata = nullptr);
196 
197  std::vector<unsigned int> const& lookupProcessOrder() const { return lookupProcessOrder_; }
198 
200 
201  virtual unsigned int processBlockIndex(std::string const& processName) const;
202 
203  protected:
204  // ----- Add a new ProductResolver
205  // *this takes ownership of the ProductResolver, which in turn owns its
206  // data.
207  void addProduct_(std::unique_ptr<ProductResolverBase> phb);
208  void addProductOrThrow(std::unique_ptr<ProductResolverBase> phb);
210  ProductResolverBase const* getExistingProduct(BranchID const& branchID) const;
212 
213  void put_(BranchDescription const& bd, std::unique_ptr<WrapperBase> edp) const;
214 
215  //F must take an argument of type ProductResolverBase*
216  template <typename F>
217  void applyToResolvers(F iFunc) {
218  for (auto& resolver : productResolvers_) {
219  iFunc(resolver.get());
220  }
221  }
222 
223  private:
224  //called by adjustIndexesAfterProductRegistryAddition only if an index actually changed
225  virtual void changedIndexes_() {}
226 
227  void addScheduledProduct(std::shared_ptr<BranchDescription const> bd);
228  void addSourceProduct(std::shared_ptr<BranchDescription const> bd);
229  void addDelayedReaderInputProduct(std::shared_ptr<BranchDescription const> bd);
230  void addPutOnReadInputProduct(std::shared_ptr<BranchDescription const> bd);
231  void addUnscheduledProduct(std::shared_ptr<BranchDescription const> bd);
232  void addAliasedProduct(std::shared_ptr<BranchDescription const> bd);
233  void addSwitchProducerProduct(std::shared_ptr<BranchDescription const> bd);
234  void addSwitchAliasProduct(std::shared_ptr<BranchDescription const> bd);
235  void addParentProcessProduct(std::shared_ptr<BranchDescription const> bd);
236 
237  WrapperBase const* getIt(ProductID const&) const override;
238  std::optional<std::tuple<WrapperBase const*, unsigned int>> getThinnedProduct(ProductID const&,
239  unsigned int) const override;
240  void getThinnedProducts(ProductID const&,
241  std::vector<WrapperBase const*>&,
242  std::vector<unsigned int>&) const override;
244  unsigned int key,
245  ProductID const& thinned) const override;
246 
247  void findProducts(std::vector<ProductResolverBase const*> const& holders,
248  TypeID const& typeID,
251  ModuleCallingContext const* mcc) const;
252 
253  ProductData const* findProductByLabel(KindOfType kindOfType,
254  TypeID const& typeID,
255  InputTag const& inputTag,
256  EDConsumerBase const* consumer,
258  ModuleCallingContext const* mcc) const;
259 
260  ProductData const* findProductByLabel(KindOfType kindOfType,
261  TypeID const& typeID,
262  std::string const& label,
263  std::string const& instance,
264  std::string const& process,
265  EDConsumerBase const* consumer,
267  ModuleCallingContext const* mcc) const;
268 
269  void put_(std::unique_ptr<WrapperBase> prod, ProductResolverBase const* productResolver) const;
270 
271  std::shared_ptr<ProcessHistory const> processHistoryPtr_;
272 
275 
277 
278  // A vector of product holders.
279  ProductResolverCollection productResolvers_; // products and provenances are persistent
280 
281  // Pointer to the product registry. There is one entry in the registry
282  // for each EDProduct in the event.
283  std::shared_ptr<ProductRegistry const> preg_;
284  std::shared_ptr<ProductResolverIndexHelper const> productLookup_;
285 
286  std::vector<unsigned int> lookupProcessOrder_;
288 
289  // Pointer to the 'source' that will be used to obtain EDProducts
290  // from the persistent store. This 'source' is owned by the input source.
292 
294 
295  // In use cases where the new process should not be appended to
296  // input ProcessHistory, the following pointer should be null.
297  // The Principal does not own this object.
299 
301  };
302 
303  template <typename PROD>
304  inline std::shared_ptr<Wrapper<PROD> const> getProductByTag(Principal const& ep,
305  InputTag const& tag,
306  ModuleCallingContext const* mcc) {
307  TypeID tid = TypeID(typeid(PROD));
308  ProductData const* result = ep.findProductByTag(tid, tag, mcc);
309  if (result == nullptr) {
310  return std::shared_ptr<Wrapper<PROD> const>();
311  }
312 
313  if (!(result->wrapper()->dynamicTypeInfo() == typeid(PROD))) {
314  handleimpl::throwConvertTypeError(typeid(PROD), result->wrapper()->dynamicTypeInfo());
315  }
316  return std::static_pointer_cast<Wrapper<PROD> const>(result->sharedConstWrapper());
317  }
318 } // namespace edm
319 #endif
edm::Principal::ProductResolverCollection
std::vector< propagate_const< std::shared_ptr< ProductResolverBase > > > ProductResolverCollection
Definition: Principal.h:58
edm::Principal::processBlockIndex
virtual unsigned int processBlockIndex(std::string const &processName) const
Definition: Principal.cc:567
edm::SharedResourcesAcquirer
Definition: SharedResourcesAcquirer.h:34
ProvenanceFwd.h
ProductResolverBase.h
edm::ProductResolverIndex
unsigned int ProductResolverIndex
Definition: ProductResolverIndex.h:8
electrons_cff.bool
bool
Definition: electrons_cff.py:366
edm::Principal::findProducts
void findProducts(std::vector< ProductResolverBase const * > const &holders, TypeID const &typeID, BasicHandleVec &results, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: Principal.cc:719
edm::Principal::put_
void put_(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp) const
Definition: Principal.cc:927
edm::BasicHandle
Definition: BasicHandle.h:43
propagate_const.h
edm::FilledProductPtr
Definition: Principal.h:52
WaitingTaskHolder.h
edm::Principal::ProcessNameConstIterator
ProcessHistory::const_iterator ProcessNameConstIterator
Definition: Principal.h:61
edm::FilledProductPtr::operator()
bool operator()(propagate_const< std::shared_ptr< ProductResolverBase >> const &iObj)
Definition: Principal.h:53
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::Principal::readAllFromSourceAndMergeImmediately
void readAllFromSourceAndMergeImmediately(MergeableRunProductMetadata const *mergeableRunProductMetadata=nullptr)
Definition: Principal.cc:968
deep_tau::DeepTauBase::BasicDiscriminator
BasicDiscriminator
Definition: DeepTauBase.h:115
edm::Principal::adjustToNewProductRegistry
bool adjustToNewProductRegistry(ProductRegistry const &reg)
Definition: Principal.cc:315
edm::Principal::ConstProductResolverPtr
ProductResolverBase const * ConstProductResolverPtr
Definition: Principal.h:62
edm::Principal::findProductByTag
ProductData const * findProductByTag(TypeID const &typeID, InputTag const &tag, ModuleCallingContext const *mcc) const
Definition: Principal.cc:827
edm::Principal
Definition: Principal.h:56
bookConverter.results
results
Definition: bookConverter.py:144
edm::Principal::addSwitchProducerProduct
void addSwitchProducerProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:361
edm::ProductResolverIndexHelper
Definition: ProductResolverIndexHelper.h:89
edm::Principal::processHistory
ProcessHistory const & processHistory() const
Definition: Principal.h:140
edm::Principal::begin
const_iterator begin() const
Definition: Principal.h:160
edm::Principal::const_iterator
boost::filter_iterator< FilledProductPtr, ProductResolverCollection::const_iterator > const_iterator
Definition: Principal.h:59
edm::Principal::getThinnedKeyFrom
OptionalThinnedKey getThinnedKeyFrom(ProductID const &parent, unsigned int key, ProductID const &thinned) const override
Definition: Principal.cc:918
edm::Principal::recombine
void recombine(Principal &other, std::vector< BranchID > const &bids)
Definition: Principal.cc:890
edm::Principal::getProductResolverByIndex
ConstProductResolverPtr getProductResolverByIndex(ProductResolverIndex const &oid) const
Definition: Principal.cc:562
edm::BranchType
BranchType
Definition: BranchType.h:11
edm::Wrapper
Definition: Product.h:10
edm::Principal::addParentProcessProduct
void addParentProcessProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:377
edm::Principal::adjustIndexesAfterProductRegistryAddition
void adjustIndexesAfterProductRegistryAddition()
Definition: Principal.cc:939
edm::Principal::addScheduledProduct
void addScheduledProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:331
F
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163
edm::ProductRegistry
Definition: ProductRegistry.h:37
edm::EDProductGetter
Definition: EDProductGetter.h:41
edm::ServiceToken
Definition: ServiceToken.h:42
edm::EDConsumerBase
Definition: EDConsumerBase.h:71
edm::handleimpl::throwConvertTypeError
void throwConvertTypeError(std::type_info const &expected, std::type_info const &actual)
Definition: ConvertHandle.cc:17
edm::propagate_const
Definition: propagate_const.h:32
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
edm::Principal::getThinnedProducts
void getThinnedProducts(ProductID const &, std::vector< WrapperBase const * > &, std::vector< unsigned int > &) const override
Definition: Principal.cc:912
ProcessHistory.h
edm::Principal::getAllProvenance
void getAllProvenance(std::vector< Provenance const * > &provenances) const
Definition: Principal.cc:862
edm::Principal::processHistoryID
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:142
edm::Principal::getProvenance
Provenance const & getProvenance(BranchID const &bid) const
Definition: Principal.cc:837
edm::Principal::end
iterator end()
Definition: Principal.h:170
edm::BranchID
Definition: BranchID.h:14
edm::Principal::reader
DelayedReader * reader() const
Definition: Principal.h:187
dumpMFGeometry_cfg.prod
prod
Definition: dumpMFGeometry_cfg.py:24
edm::Principal::getAllStableProvenance
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
Definition: Principal.cc:879
edm::Principal::BasicHandleVec
std::vector< BasicHandle > BasicHandleVec
Definition: Principal.h:63
edm::Principal::branchType
BranchType const & branchType() const
Definition: Principal.h:181
edm::Principal::processHistoryIDBeforeConfig_
ProcessHistoryID processHistoryIDBeforeConfig_
Definition: Principal.h:274
edm::MergeableRunProductMetadata
Definition: MergeableRunProductMetadata.h:52
edm::Principal::CacheIdentifier_t
unsigned long CacheIdentifier_t
Definition: Principal.h:184
edm::Principal::getProductResolver
ConstProductResolverPtr getProductResolver(BranchID const &oid) const
Definition: Principal.cc:554
edm::Hash< ProcessHistoryType >
trackingPlots.other
other
Definition: trackingPlots.py:1464
edm::Principal::end
const_iterator end() const
Definition: Principal.h:163
edm::Principal::size_type
ProductResolverCollection::size_type size_type
Definition: Principal.h:64
edm::Principal::productRegistry
ProductRegistry const & productRegistry() const
Definition: Principal.h:146
WrapperBase.h
SharedResourcesAcquirer
edm::Principal::reader_
DelayedReader * reader_
Definition: Principal.h:291
edm::Principal::begin
iterator begin()
Definition: Principal.h:167
edm::Principal::productLookup
ProductResolverIndexHelper const & productLookup() const
Definition: Principal.h:148
edm::Principal::ProcessName
std::string ProcessName
Definition: Principal.h:67
ConvertHandle.h
edm::WaitingTaskHolder
Definition: WaitingTaskHolder.h:32
edm::ProcessHistory::const_iterator
collection_type::const_iterator const_iterator
Definition: ProcessHistory.h:19
edm::Principal::fillPrincipal
void fillPrincipal(DelayedReader *reader)
Definition: Principal.cc:402
makeGlobalPositionRcd_cfg.tag
tag
Definition: makeGlobalPositionRcd_cfg.py:6
edm::StableProvenance
Definition: StableProvenance.h:30
edm::Principal::processHistoryPtr_
std::shared_ptr< ProcessHistory const > processHistoryPtr_
Definition: Principal.h:271
edm::Principal::getModifiableProductResolver
ProductResolverBase * getModifiableProductResolver(BranchID const &oid)
Definition: Principal.h:153
gpuVertexFinder::hist
__shared__ Hist hist
Definition: gpuClusterTracksDBSCAN.h:48
LaserDQM_cfg.process
process
Definition: LaserDQM_cfg.py:3
edm::Principal::processConfiguration_
ProcessConfiguration const * processConfiguration_
Definition: Principal.h:276
edm::Principal::addSwitchAliasProduct
void addSwitchAliasProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:369
edm::Principal::setupUnscheduled
void setupUnscheduled(UnscheduledConfigurator const &)
Definition: Principal.cc:398
edm::Principal::getStableProvenance
StableProvenance const & getStableProvenance(BranchID const &bid) const
Definition: Principal.cc:850
edm::WrapperBase
Definition: WrapperBase.h:23
edm::Principal::getThinnedProduct
std::optional< std::tuple< WrapperBase const *, unsigned int > > getThinnedProduct(ProductID const &, unsigned int) const override
Definition: Principal.cc:906
edm::Principal::getExistingProduct
ProductResolverBase * getExistingProduct(BranchID const &branchID)
Definition: Principal.cc:501
edm::Principal::branchType_
BranchType branchType_
Definition: Principal.h:293
edm::UnscheduledConfigurator
Definition: UnscheduledConfigurator.h:32
edm::HistoryAppender
Definition: HistoryAppender.h:13
edm::Principal::lookupProcessOrder
std::vector< unsigned int > const & lookupProcessOrder() const
Definition: Principal.h:197
edm::Principal::clearPrincipal
void clearPrincipal()
Definition: Principal.cc:382
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::Principal::SharedProductPtr
std::shared_ptr< ProductResolverBase > SharedProductPtr
Definition: Principal.h:66
instance
static PFTauRenderPlugin instance
Definition: PFTauRenderPlugin.cc:70
InputTag.h
SimL1EmulatorRepack_CalouGT_cff.processName
processName
Definition: SimL1EmulatorRepack_CalouGT_cff.py:17
edm::Principal::addAliasedProduct
void addAliasedProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:353
edm::OptionalThinnedKey
std::variant< unsigned int, detail::GetThinnedKeyFromExceptionFactory, std::monostate > OptionalThinnedKey
Definition: EDProductGetter.h:39
edm::Principal::getByToken
BasicHandle getByToken(KindOfType kindOfType, TypeID const &typeID, ProductResolverIndex index, bool skipCurrentProcess, bool &ambiguous, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: Principal.cc:613
edm::TypeID
Definition: TypeID.h:22
edm::Principal::productResolvers_
ProductResolverCollection productResolvers_
Definition: Principal.h:279
Wrapper.h
edm::KindOfType
KindOfType
Definition: ProductKindOfType.h:5
edm::Principal::prodGetter
EDProductGetter const * prodGetter() const
Definition: Principal.h:92
edm::Principal::getManyByType
void getManyByType(TypeID const &typeID, BasicHandleVec &results, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: Principal.cc:649
Frameworkfwd.h
edm::ProductResolverBase
Definition: ProductResolverBase.h:34
edm::Principal::size
size_t size() const
Definition: Principal.cc:303
edm::Principal::productLookup_
std::shared_ptr< ProductResolverIndexHelper const > productLookup_
Definition: Principal.h:284
edm::ProductData
Definition: ProductData.h:20
edm::Principal::iterator
boost::filter_iterator< FilledProductPtr, ProductResolverCollection::iterator > iterator
Definition: Principal.h:60
UnscheduledConfigurator
BasicHandle.h
edm::Principal::addProduct_
void addProduct_(std::unique_ptr< ProductResolverBase > phb)
Definition: Principal.cc:529
edm::DelayedReader
Definition: DelayedReader.h:29
edm::getProductByTag
std::shared_ptr< Wrapper< PROD > const > getProductByTag(Principal const &ep, InputTag const &tag, ModuleCallingContext const *mcc)
Definition: Principal.h:304
edm::Principal::processHistoryID_
ProcessHistoryID processHistoryID_
Definition: Principal.h:273
edm::Principal::getByLabel
BasicHandle getByLabel(KindOfType kindOfType, TypeID const &typeID, InputTag const &inputTag, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: Principal.cc:571
OfflineOutput_cfi.consumer
consumer
Definition: OfflineOutput_cfi.py:3
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::Principal::~Principal
~Principal() override
Definition: Principal.cc:298
EDProductGetter.h
edm::Principal::applyToResolvers
void applyToResolvers(F iFunc)
Definition: Principal.h:217
edm::Principal::changedIndexes_
virtual void changedIndexes_()
Definition: Principal.h:225
edm::BranchDescription
Definition: BranchDescription.h:32
edm::Principal::addSourceProduct
void addSourceProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:336
mps_fire.result
result
Definition: mps_fire.py:311
PROD
#define PROD(A, B)
Definition: Simplify_begin.h:55
edm::ProcessHistory
Definition: ProcessHistory.h:13
edm::Principal::findProductByLabel
ProductData const * findProductByLabel(KindOfType kindOfType, TypeID const &typeID, InputTag const &inputTag, EDConsumerBase const *consumer, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: Principal.cc:744
edm::Principal::prefetchAsync
void prefetchAsync(WaitingTaskHolder waitTask, ProductResolverIndex index, bool skipCurrentProcess, ServiceToken const &token, ModuleCallingContext const *mcc) const
Definition: Principal.cc:639
SimL1EmulatorRepack_Full_cff.inputTag
inputTag
Definition: SimL1EmulatorRepack_Full_cff.py:56
edm::Principal::addProductOrThrow
void addProductOrThrow(std::unique_ptr< ProductResolverBase > phb)
Definition: Principal.cc:542
edm::Provenance
Definition: Provenance.h:34
edm::Principal::cacheIdentifier_
CacheIdentifier_t cacheIdentifier_
Definition: Principal.h:300
edm::Principal::lookupProcessOrder_
std::vector< unsigned int > lookupProcessOrder_
Definition: Principal.h:286
edm::Principal::processConfiguration
ProcessConfiguration const & processConfiguration() const
Definition: Principal.h:144
crabWrapper.key
key
Definition: crabWrapper.py:19
edm::Principal::deleteProduct
void deleteProduct(BranchID const &id) const
Definition: Principal.cc:392
edm::Principal::historyAppender_
edm::propagate_const< HistoryAppender * > historyAppender_
Definition: Principal.h:298
edm::Principal::getIt
WrapperBase const * getIt(ProductID const &) const override
Definition: Principal.cc:901
edm::Principal::cacheIdentifier
CacheIdentifier_t cacheIdentifier() const
Definition: Principal.h:185
edm::Principal::addUnscheduledProduct
void addUnscheduledProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:349
edm::Principal::Principal
Principal(std::shared_ptr< ProductRegistry const > reg, std::shared_ptr< ProductResolverIndexHelper const > productLookup, ProcessConfiguration const &pc, BranchType bt, HistoryAppender *historyAppender, bool isForPrimaryProcess=true)
Definition: Principal.cc:122
class-composition.parent
parent
Definition: class-composition.py:98
ProductKindOfType.h
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
edm::InputTag
Definition: InputTag.h:15
label
const char * label
Definition: PFTauDecayModeTools.cc:11
edm::ProductID
Definition: ProductID.h:27
edm::ProcessConfiguration
Definition: ProcessConfiguration.h:14
edm::Principal::orderProcessHistoryID_
ProcessHistoryID orderProcessHistoryID_
Definition: Principal.h:287
edm::Principal::addDelayedReaderInputProduct
void addDelayedReaderInputProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:341
edm::Principal::addPutOnReadInputProduct
void addPutOnReadInputProduct(std::shared_ptr< BranchDescription const > bd)
Definition: Principal.cc:345
edm::Principal::preg_
std::shared_ptr< ProductRegistry const > preg_
Definition: Principal.h:283
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316