CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
edm::SubProcessBlockHelper Class Reference

#include <SubProcessBlockHelper.h>

Inheritance diagram for edm::SubProcessBlockHelper:
edm::ProcessBlockHelperBase

Public Member Functions

std::vector< unsigned int > const & cacheEntriesPerFile () const final
 
std::vector< unsigned int > const & cacheIndexVectorsPerFile () const final
 
std::vector< std::vector< unsigned int > > const & nEntries () const final
 
unsigned int nProcessesInFirstFile () const final
 
unsigned int outerOffset () const final
 
std::vector< std::vector< unsigned int > > const & processBlockCacheIndices () const final
 
unsigned int processBlockIndex (std::string const &processName, EventToProcessBlockIndexes const &) const final
 
ProcessBlockHelperBase const * topProcessBlockHelper () const final
 
std::vector< std::string > const & topProcessesWithProcessBlockProducts () const final
 
void updateFromParentProcess (ProcessBlockHelperBase const &parentProcessBlockHelper, ProductRegistry const &)
 
- Public Member Functions inherited from edm::ProcessBlockHelperBase
std::vector< std::string > const & addedProcesses () const
 
void emplaceBackAddedProcessName (std::string const &processName)
 
void emplaceBackProcessName (std::string const &processName)
 
std::vector< std::string > const & processesWithProcessBlockProducts () const
 
std::string selectProcess (ProductRegistry const &, ProductLabels const &, TypeID const &) const
 
void setAddedProcesses (std::vector< std::string > const &val)
 
void setProcessesWithProcessBlockProducts (std::vector< std::string > const &val)
 
void updateForNewProcess (ProductRegistry const &, std::string const &processName)
 
virtual ~ProcessBlockHelperBase ()
 

Private Attributes

ProcessBlockHelperBase const * topProcessBlockHelper_ = nullptr
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::ProcessBlockHelperBase
static constexpr unsigned int invalidCacheIndex ()
 
static constexpr unsigned int invalidProcessIndex ()
 

Detailed Description

Author
W. David Dagenhart, created 4 January, 2021

Definition at line 17 of file SubProcessBlockHelper.h.

Member Function Documentation

◆ cacheEntriesPerFile()

std::vector< unsigned int > const & edm::SubProcessBlockHelper::cacheEntriesPerFile ( ) const
finalvirtual

◆ cacheIndexVectorsPerFile()

std::vector< unsigned int > const & edm::SubProcessBlockHelper::cacheIndexVectorsPerFile ( ) const
finalvirtual

◆ nEntries()

std::vector< std::vector< unsigned int > > const & edm::SubProcessBlockHelper::nEntries ( ) const
finalvirtual

◆ nProcessesInFirstFile()

unsigned int edm::SubProcessBlockHelper::nProcessesInFirstFile ( ) const
finalvirtual

◆ outerOffset()

unsigned int edm::SubProcessBlockHelper::outerOffset ( ) const
finalvirtual

◆ processBlockCacheIndices()

std::vector< std::vector< unsigned int > > const & edm::SubProcessBlockHelper::processBlockCacheIndices ( ) const
finalvirtual

◆ processBlockIndex()

unsigned int edm::SubProcessBlockHelper::processBlockIndex ( std::string const &  processName,
EventToProcessBlockIndexes const &  eventToProcessBlockIndexes 
) const
finalvirtual

◆ topProcessBlockHelper()

ProcessBlockHelperBase const * edm::SubProcessBlockHelper::topProcessBlockHelper ( ) const
finalvirtual

Implements edm::ProcessBlockHelperBase.

Definition at line 12 of file SubProcessBlockHelper.cc.

12 { return topProcessBlockHelper_; }

References topProcessBlockHelper_.

◆ topProcessesWithProcessBlockProducts()

std::vector< std::string > const & edm::SubProcessBlockHelper::topProcessesWithProcessBlockProducts ( ) const
finalvirtual

◆ updateFromParentProcess()

void edm::SubProcessBlockHelper::updateFromParentProcess ( ProcessBlockHelperBase const &  parentProcessBlockHelper,
ProductRegistry const &  productRegistry 
)

Definition at line 45 of file SubProcessBlockHelper.cc.

46  {
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  }

References edm::ProcessBlockHelperBase::addedProcesses(), cms::cuda::assert(), submitPVResolutionJobs::desc, edm::ProcessBlockHelperBase::emplaceBackAddedProcessName(), edm::ProcessBlockHelperBase::emplaceBackProcessName(), relativeConstraints::empty, edm::InProcess, B2GTnPMonitor_cfi::item, edm::ProcessBlockHelperBase::processesWithProcessBlockProducts(), SimL1EmulatorRepack_CalouGT_cff::processName, edm::ProductRegistry::productList(), edm::ProcessBlockHelperBase::topProcessBlockHelper(), and topProcessBlockHelper_.

Referenced by edm::ScheduleItems::ScheduleItems().

Member Data Documentation

◆ topProcessBlockHelper_

ProcessBlockHelperBase const* edm::SubProcessBlockHelper::topProcessBlockHelper_ = nullptr
private
edm::ProcessBlockHelperBase::topProcessBlockHelper
virtual ProcessBlockHelperBase const * topProcessBlockHelper() const =0
edm::ProcessBlockHelperBase::outerOffset
virtual unsigned int outerOffset() const =0
cms::cuda::assert
assert(be >=bs)
edm::ProcessBlockHelperBase::nProcessesInFirstFile
virtual unsigned int nProcessesInFirstFile() const =0
edm::ProcessBlockHelperBase::emplaceBackAddedProcessName
void emplaceBackAddedProcessName(std::string const &processName)
Definition: ProcessBlockHelperBase.h:34
edm::ProcessBlockHelperBase::cacheIndexVectorsPerFile
virtual std::vector< unsigned int > const & cacheIndexVectorsPerFile() const =0
edm::ProcessBlockHelperBase::addedProcesses
std::vector< std::string > const & addedProcesses() const
Definition: ProcessBlockHelperBase.h:32
edm::InProcess
Definition: BranchType.h:11
edm::ProcessBlockHelperBase::processBlockIndex
virtual unsigned int processBlockIndex(std::string const &processName, EventToProcessBlockIndexes const &) const =0
edm::ProcessBlockHelperBase::processesWithProcessBlockProducts
std::vector< std::string > const & processesWithProcessBlockProducts() const
Definition: ProcessBlockHelperBase.h:22
edm::ProcessBlockHelperBase::cacheEntriesPerFile
virtual std::vector< unsigned int > const & cacheEntriesPerFile() const =0
B2GTnPMonitor_cfi.item
item
Definition: B2GTnPMonitor_cfi.py:147
SimL1EmulatorRepack_CalouGT_cff.processName
processName
Definition: SimL1EmulatorRepack_CalouGT_cff.py:17
edm::ProcessBlockHelperBase::processBlockCacheIndices
virtual std::vector< std::vector< unsigned int > > const & processBlockCacheIndices() const =0
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
edm::SubProcessBlockHelper::topProcessBlockHelper_
ProcessBlockHelperBase const * topProcessBlockHelper_
Definition: SubProcessBlockHelper.h:32
edm::ProcessBlockHelperBase::emplaceBackProcessName
void emplaceBackProcessName(std::string const &processName)
Definition: ProcessBlockHelperBase.h:28
edm::ProcessBlockHelperBase::nEntries
virtual std::vector< std::vector< unsigned int > > const & nEntries() const =0