CMS 3D CMS Logo

SubProcessBlockHelper.cc
Go to the documentation of this file.
2 
6 
7 #include <cassert>
8 #include <string>
9 
10 namespace edm {
11 
13 
14  std::vector<std::string> const& SubProcessBlockHelper::topProcessesWithProcessBlockProducts() const {
16  }
17 
20  }
21 
22  std::vector<std::vector<unsigned int>> const& SubProcessBlockHelper::processBlockCacheIndices() const {
24  }
25 
26  std::vector<std::vector<unsigned int>> const& SubProcessBlockHelper::nEntries() const {
28  }
29 
30  std::vector<unsigned int> const& SubProcessBlockHelper::cacheIndexVectorsPerFile() const {
32  }
33 
34  std::vector<unsigned int> const& SubProcessBlockHelper::cacheEntriesPerFile() const {
36  }
37 
39  std::string const& processName, EventToProcessBlockIndexes const& eventToProcessBlockIndexes) const {
40  return topProcessBlockHelper_->processBlockIndex(processName, eventToProcessBlockIndexes);
41  }
42 
44 
46  ProductRegistry const& productRegistry) {
47  topProcessBlockHelper_ = parentProcessBlockHelper.topProcessBlockHelper();
48 
49  // If a SubProcess keeps any ProcessBlock products from its parent process, then insert their
50  // process names.
52  for (auto const& processName : parentProcessBlockHelper.processesWithProcessBlockProducts()) {
53  for (auto const& item : productRegistry.productList()) {
54  BranchDescription const& desc = item.second;
55  if (desc.branchType() == InProcess && desc.present() && desc.processName() == processName) {
57  break;
58  }
59  }
60  }
61 
62  // Repeat for addedProcesses
64  for (auto const& processName : parentProcessBlockHelper.addedProcesses()) {
65  for (auto const& item : productRegistry.productList()) {
66  BranchDescription const& desc = item.second;
67  if (desc.branchType() == InProcess && desc.present() && desc.processName() == processName) {
69  break;
70  }
71  }
72  }
73  }
74 
75 } // namespace edm
virtual ProcessBlockHelperBase const * topProcessBlockHelper() const =0
std::vector< std::vector< unsigned int > > const & processBlockCacheIndices() const final
virtual unsigned int nProcessesInFirstFile() const =0
ProductList const & productList() const
std::vector< unsigned int > const & cacheEntriesPerFile() const final
std::vector< std::vector< unsigned int > > const & nEntries() const final
std::vector< std::string > const & topProcessesWithProcessBlockProducts() const final
unsigned int outerOffset() const final
assert(be >=bs)
virtual unsigned int outerOffset() const =0
unsigned int nProcessesInFirstFile() const final
void updateFromParentProcess(ProcessBlockHelperBase const &parentProcessBlockHelper, ProductRegistry const &)
std::vector< std::string > const & addedProcesses() const
void emplaceBackAddedProcessName(std::string const &processName)
virtual std::vector< unsigned int > const & cacheIndexVectorsPerFile() const =0
std::vector< std::string > const & processesWithProcessBlockProducts() const
ProcessBlockHelperBase const * topProcessBlockHelper() const final
virtual unsigned int processBlockIndex(std::string const &processName, EventToProcessBlockIndexes const &) const =0
void emplaceBackProcessName(std::string const &processName)
virtual std::vector< unsigned int > const & cacheEntriesPerFile() const =0
virtual std::vector< std::vector< unsigned int > > const & nEntries() const =0
HLT enums.
std::vector< unsigned int > const & cacheIndexVectorsPerFile() const final
virtual std::vector< std::vector< unsigned int > > const & processBlockCacheIndices() const =0
ProcessBlockHelperBase const * topProcessBlockHelper_
unsigned int processBlockIndex(std::string const &processName, EventToProcessBlockIndexes const &) const final