CMS 3D CMS Logo

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

#include <SubProcess.h>

Inheritance diagram for edm::SubProcess:
edm::EDConsumerBase

Public Types

using ProcessBlockType = PrincipalCache::ProcessBlockType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

void clearCounters ()
 Clear all the counters in the trigger report. More...
 
void clearProcessBlockPrincipal (ProcessBlockType)
 
void closeOutputFiles ()
 
void deleteLumiFromCache (LuminosityBlockPrincipal &)
 
void deleteRunFromCache (ProcessHistoryID const &parentPhID, int runNumber)
 
void doBeginJob ()
 
void doBeginLuminosityBlockAsync (WaitingTaskHolder iHolder, LumiTransitionInfo const &iTransitionInfo)
 
template<typename Traits >
void doBeginProcessBlockAsync (WaitingTaskHolder iHolder, ProcessBlockTransitionInfo const &iTransitionInfo)
 
template<>
void doBeginProcessBlockAsync (WaitingTaskHolder iHolder, ProcessBlockTransitionInfo const &iTransitionInfo)
 
template<>
void doBeginProcessBlockAsync (WaitingTaskHolder iHolder, ProcessBlockTransitionInfo const &iTransitionInfo)
 
void doBeginRunAsync (WaitingTaskHolder iHolder, RunTransitionInfo const &iTransitionInfo)
 
void doBeginStream (unsigned int)
 
void doEndJob ()
 
void doEndLuminosityBlockAsync (WaitingTaskHolder iHolder, LumiTransitionInfo const &iTransitionInfo, bool cleaningUpAfterException)
 
void doEndProcessBlockAsync (WaitingTaskHolder iHolder, ProcessBlockTransitionInfo const &iTransitionInfo, bool cleaningUpAfterException)
 
void doEndRunAsync (WaitingTaskHolder iHolder, RunTransitionInfo const &iTransitionInfo, bool cleaningUpAfterException)
 
void doEndStream (unsigned int)
 
void doEventAsync (WaitingTaskHolder iHolder, EventPrincipal const &principal, std::vector< std::shared_ptr< const EventSetupImpl >> const *)
 
void doStreamBeginLuminosityBlockAsync (WaitingTaskHolder iHolder, unsigned int iID, LumiTransitionInfo const &)
 
void doStreamBeginRunAsync (WaitingTaskHolder iHolder, unsigned int iID, RunTransitionInfo const &)
 
void doStreamEndLuminosityBlockAsync (WaitingTaskHolder iHolder, unsigned int iID, LumiTransitionInfo const &, bool cleaningUpAfterException)
 
void doStreamEndRunAsync (WaitingTaskHolder iHolder, unsigned int iID, RunTransitionInfo const &, bool cleaningUpAfterException)
 
void enableEndPaths (bool active)
 
bool endPathsEnabled () const
 Return true if end_paths are active, and false if they are inactive. More...
 
std::vector< ModuleDescription const * > getAllModuleDescriptions () const
 Return a vector allowing const access to all the ModuleDescriptions for this SubProcess. More...
 
void getTriggerReport (TriggerReport &rep) const
 
std::vector< ModuleProcessNamekeepOnlyConsumedUnscheduledModules (bool deleteModules)
 
SelectedProductsForBranchType const & keptProducts () const
 
void openOutputFiles (FileBlock &fb)
 
SubProcessoperator= (SubProcess &&)=delete
 
SubProcessoperator= (SubProcess const &)=delete
 
void respondToCloseInputFile (FileBlock const &fb)
 
void respondToOpenInputFile (FileBlock const &fb)
 
void selectProducts (ProductRegistry const &preg, ThinnedAssociationsHelper const &parentThinnedAssociationsHelper, std::map< BranchID, bool > &keepAssociation)
 
bool shouldWeCloseOutput () const
 
 SubProcess (ParameterSet &parameterSet, ParameterSet const &topLevelParameterSet, std::shared_ptr< ProductRegistry const > parentProductRegistry, std::shared_ptr< BranchIDListHelper const > parentBranchIDListHelper, ThinnedAssociationsHelper const &parentThinnedAssociationsHelper, SubProcessParentageHelper const &parentSubProcessParentageHelper, eventsetup::EventSetupsController &esController, ActivityRegistry &parentActReg, ServiceToken const &token, serviceregistry::ServiceLegacy iLegacy, PreallocationConfiguration const &preallocConfig, ProcessContext const *parentProcessContext)
 
 SubProcess (SubProcess &&)=default
 
 SubProcess (SubProcess const &)=delete
 
bool terminate () const
 
int totalEvents () const
 
int totalEventsFailed () const
 
int totalEventsPassed () const
 Return the number of events which have been passed by one or more trigger paths. More...
 
void updateBranchIDListHelper (BranchIDLists const &)
 
void writeLumiAsync (WaitingTaskHolder, LuminosityBlockPrincipal &)
 
void writeProcessBlockAsync (edm::WaitingTaskHolder task, ProcessBlockType)
 
void writeRunAsync (WaitingTaskHolder, ProcessHistoryID const &parentPhID, int runNumber, MergeableRunProductMetadata const *)
 
 ~SubProcess () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void beginJob ()
 
std::shared_ptr< BranchIDListHelper > & branchIDListHelper ()
 
std::shared_ptr< BranchIDListHelper const > branchIDListHelper () const
 
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID ()
 
void endJob ()
 
void fixBranchIDListsForEDAliases (std::map< BranchID::value_type, BranchID::value_type > const &droppedBranchIDToKeptBranchID)
 
void keepThisBranch (BranchDescription const &desc, std::map< BranchID, BranchDescription const * > &trueBranchIDToKeptBranchDesc, std::set< BranchID > &keptProductsInEvent)
 
void processAsync (WaitingTaskHolder iHolder, EventPrincipal const &e, std::vector< std::shared_ptr< const EventSetupImpl >> const *)
 
void propagateProducts (BranchType type, Principal const &parentPrincipal, Principal &principal) const
 
std::shared_ptr< ThinnedAssociationsHelperthinnedAssociationsHelper ()
 
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper () const
 

Private Attributes

std::unique_ptr< ExceptionToActionTable const > act_table_
 
std::shared_ptr< ActivityRegistryactReg_
 
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
 
std::map< BranchID::value_type, BranchID::value_typedroppedBranchIDToKeptBranchID_
 
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
 
std::vector< HistoryAppenderhistoryAppenders_
 
unsigned int historyLumiOffset_
 
unsigned int historyRunOffset_
 
std::vector< std::shared_ptr< LuminosityBlockPrincipal > > inUseLumiPrincipals_
 
SelectedProductsForBranchType keptProducts_
 
std::shared_ptr< ProductRegistry const > parentPreg_
 
std::map< ProcessHistoryID, ProcessHistoryIDparentToChildPhID_
 
PathsAndConsumesOfModules pathsAndConsumesOfModules_
 
std::shared_ptr< ProductRegistry const > preg_
 
PrincipalCache principalCache_
 
std::shared_ptr< ProcessConfiguration const > processConfiguration_
 
ProcessContext processContext_
 
std::vector< ProcessHistoryRegistryprocessHistoryRegistries_
 
edm::propagate_const< std::unique_ptr< ParameterSet > > processParameterSet_
 
ProductSelector productSelector_
 
ProductSelectorRules productSelectorRules_
 
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
 
ParameterSetID selector_config_id_
 
detail::TriggerResultsBasedEventSelector selectors_
 
ServiceToken serviceToken_
 
std::vector< SubProcesssubProcesses_
 
edm::propagate_const< std::shared_ptr< SubProcessParentageHelper > > subProcessParentageHelper_
 
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
 
bool wantAllEvents_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 50 of file SubProcess.h.

Member Typedef Documentation

◆ ProcessBlockType

Definition at line 129 of file SubProcess.h.

Constructor & Destructor Documentation

◆ SubProcess() [1/3]

edm::SubProcess::SubProcess ( ParameterSet parameterSet,
ParameterSet const &  topLevelParameterSet,
std::shared_ptr< ProductRegistry const >  parentProductRegistry,
std::shared_ptr< BranchIDListHelper const >  parentBranchIDListHelper,
ThinnedAssociationsHelper const &  parentThinnedAssociationsHelper,
SubProcessParentageHelper const &  parentSubProcessParentageHelper,
eventsetup::EventSetupsController esController,
ActivityRegistry parentActReg,
ServiceToken const &  token,
serviceregistry::ServiceLegacy  iLegacy,
PreallocationConfiguration const &  preallocConfig,
ProcessContext const *  parentProcessContext 
)

Definition at line 48 of file SubProcess.cc.

60  : EDConsumerBase(),
61  serviceToken_(),
62  parentPreg_(parentProductRegistry),
63  preg_(),
65  act_table_(),
67  historyLumiOffset_(preallocConfig.numberOfStreams()),
68  historyRunOffset_(historyLumiOffset_ + preallocConfig.numberOfLuminosityBlocks()),
69  processHistoryRegistries_(historyRunOffset_ + preallocConfig.numberOfRuns()),
70  historyAppenders_(historyRunOffset_ + preallocConfig.numberOfRuns()),
72  esp_(),
73  schedule_(),
75  subProcesses_(),
77  productSelectorRules_(parameterSet, "outputCommands", "OutputModule"),
79  wantAllEvents_(true) {
80  //Setup the event selection
82 
83  ParameterSet selectevents = parameterSet.getUntrackedParameterSet("SelectEvents", ParameterSet());
84 
85  selectevents.registerIt(); // Just in case this PSet is not registered
87  selectevents, tns->getProcessName(), getAllTriggerNames(), selectors_, consumesCollector());
88  std::map<std::string, std::vector<std::pair<std::string, int>>> outputModulePathPositions;
90  selectevents, "", outputModulePathPositions, parentProductRegistry->anyProductProduced());
91 
92  std::map<BranchID, bool> keepAssociation;
93  selectProducts(*parentProductRegistry, parentThinnedAssociationsHelper, keepAssociation);
94 
95  std::string const maxEvents("maxEvents");
96  std::string const maxLumis("maxLuminosityBlocks");
97 
98  // propagate_const<T> has no reset() function
100  std::unique_ptr<ParameterSet>(parameterSet.popParameterSet(std::string("process")).release());
101 
102  // if this process has a maxEvents or maxLuminosityBlocks parameter set, remove them.
103  if (processParameterSet_->exists(maxEvents)) {
104  processParameterSet_->popParameterSet(maxEvents);
105  }
106  if (processParameterSet_->exists(maxLumis)) {
107  processParameterSet_->popParameterSet(maxLumis);
108  }
109 
110  // if the top level process has a maxEvents or maxLuminosityBlocks parameter set, add them to this process.
111  if (topLevelParameterSet.exists(maxEvents)) {
112  processParameterSet_->addUntrackedParameter<ParameterSet>(
113  maxEvents, topLevelParameterSet.getUntrackedParameterSet(maxEvents));
114  }
115  if (topLevelParameterSet.exists(maxLumis)) {
116  processParameterSet_->addUntrackedParameter<ParameterSet>(
117  maxLumis, topLevelParameterSet.getUntrackedParameterSet(maxLumis));
118  }
119 
120  // If there are subprocesses, pop the subprocess parameter sets out of the process parameter set
121  auto subProcessVParameterSet = popSubProcessVParameterSet(*processParameterSet_);
122  bool hasSubProcesses = subProcessVParameterSet.size() != 0ull;
123 
124  // Validates the parameters in the 'options', 'maxEvents', and 'maxLuminosityBlocks'
125  // top level parameter sets. Default values are also set in here if the
126  // parameters were not explicitly set.
128 
129  ScheduleItems items(*parentProductRegistry, *this);
130  actReg_ = items.actReg_;
131 
132  //initialize the services
133  ServiceToken iToken;
134 
135  // get any configured services.
136  auto serviceSets = processParameterSet_->popVParameterSet(std::string("services"));
137 
138  ServiceToken newToken = items.initServices(serviceSets, *processParameterSet_, token, iLegacy, false);
139  parentActReg.connectToSubProcess(*items.actReg_);
140  serviceToken_ = items.addCPRandTNS(*processParameterSet_, newToken);
141 
142  //make the services available
144 
145  // intialize miscellaneous items
146  items.initMisc(*processParameterSet_);
147 
148  // intialize the event setup provider
149  esp_ = esController.makeProvider(*processParameterSet_, actReg_.get());
150 
151  branchIDListHelper_ = items.branchIDListHelper();
152  updateBranchIDListHelper(parentBranchIDListHelper->branchIDLists());
153 
154  thinnedAssociationsHelper_ = items.thinnedAssociationsHelper();
155  thinnedAssociationsHelper_->updateFromParentProcess(
156  parentThinnedAssociationsHelper, keepAssociation, droppedBranchIDToKeptBranchID_);
157 
158  // intialize the Schedule
159  schedule_ = items.initSchedule(*processParameterSet_, hasSubProcesses, preallocConfig, &processContext_);
160 
161  // set the items
162  act_table_ = std::move(items.act_table_);
163  preg_ = items.preg();
164 
165  subProcessParentageHelper_ = items.subProcessParentageHelper();
166  subProcessParentageHelper_->update(parentSubProcessParentageHelper, *parentProductRegistry);
167 
168  //CMS-THREADING this only works since Run/Lumis are synchronous so when principalCache asks for
169  // the reducedProcessHistoryID from a full ProcessHistoryID that registry will not be in use by
170  // another thread. We really need to change how this is done in the PrincipalCache.
172 
173  processConfiguration_ = items.processConfiguration();
175  processContext_.setParentProcessContext(parentProcessContext);
176 
178  for (unsigned int index = 0; index < preallocConfig.numberOfStreams(); ++index) {
179  auto ep = std::make_shared<EventPrincipal>(preg_,
184  index,
185  false /*not primary process*/);
187  }
188  for (unsigned int index = 0; index < preallocConfig.numberOfLuminosityBlocks(); ++index) {
189  auto lbpp = std::make_unique<LuminosityBlockPrincipal>(
192  }
193 
194  {
195  auto pb = std::make_unique<ProcessBlockPrincipal>(preg_, *processConfiguration_, false);
197 
198  auto pbForInput = std::make_unique<ProcessBlockPrincipal>(preg_, *processConfiguration_, false);
200  }
201 
202  inUseLumiPrincipals_.resize(preallocConfig.numberOfLuminosityBlocks());
203 
204  subProcesses_.reserve(subProcessVParameterSet.size());
205  for (auto& subProcessPSet : subProcessVParameterSet) {
206  subProcesses_.emplace_back(subProcessPSet,
207  topLevelParameterSet,
208  preg_,
212  esController,
213  *items.actReg_,
214  newToken,
215  iLegacy,
216  preallocConfig,
217  &processContext_);
218  }
219  }

References act_table_, actReg_, branchIDListHelper(), branchIDListHelper_, edm::detail::configureEventSelector(), edm::ActivityRegistry::connectToSubProcess(), edm::EDConsumerBase::consumesCollector(), droppedBranchIDToKeptBranchID_, SiStripBadComponentsDQMServiceTemplate_cfg::ep, esp_, edm::ParameterSet::exists(), edm::getAllTriggerNames(), edm::ParameterSet::getUntrackedParameterSet(), historyAppenders_, historyLumiOffset_, historyRunOffset_, edm::PrincipalCache::insert(), edm::PrincipalCache::insertForInput(), inUseLumiPrincipals_, mps_monitormerge::items, edm::eventsetup::EventSetupsController::makeProvider(), Data_TkAlMinBias_Run2018C_PromptReco_v3_cff::maxEvents, eostools::move(), edm::PreallocationConfiguration::numberOfLuminosityBlocks(), edm::PreallocationConfiguration::numberOfStreams(), edm::parameterSet(), edm::ParameterSet::popParameterSet(), edm::popSubProcessVParameterSet(), preg_, principalCache_, processConfiguration_, processContext_, processHistoryRegistries_, processParameterSet_, edm::ParameterSet::registerIt(), edm::detail::registerProperSelectionInfo(), schedule_, selector_config_id_, selectors_, selectProducts(), serviceToken_, edm::PrincipalCache::setNumberOfConcurrentPrincipals(), edm::ProcessContext::setParentProcessContext(), edm::ProcessContext::setProcessConfiguration(), edm::PrincipalCache::setProcessHistoryRegistry(), AlCaHLTBitMon_QueryRunRegistry::string, subProcesses_, subProcessParentageHelper_, thinnedAssociationsHelper(), thinnedAssociationsHelper_, unpackBuffers-CaloStage2::token, updateBranchIDListHelper(), edm::validateTopLevelParameterSets(), and wantAllEvents_.

◆ ~SubProcess()

edm::SubProcess::~SubProcess ( )
override

Definition at line 221 of file SubProcess.cc.

221 {}

◆ SubProcess() [2/3]

edm::SubProcess::SubProcess ( SubProcess const &  )
delete

◆ SubProcess() [3/3]

edm::SubProcess::SubProcess ( SubProcess &&  )
default

Member Function Documentation

◆ beginJob()

void edm::SubProcess::beginJob ( void  )
private

Definition at line 282 of file SubProcess.cc.

282  {
283  // If event selection is being used, the SubProcess class reads TriggerResults
284  // object(s) in the parent process from the event. This next call is needed for
285  // getByToken to work properly. Normally, this is done by the worker, but since
286  // a SubProcess is not a module, it has no worker.
287  updateLookup(InEvent, *parentPreg_->productLookup(InEvent), false);
288 
289  if (!droppedBranchIDToKeptBranchID().empty()) {
291  }
293  actReg_->preBeginJobSignal_(pathsAndConsumesOfModules_, processContext_);
294  schedule_->beginJob(*preg_, esp_->recordsToProxyIndices());
295  for_all(subProcesses_, [](auto& subProcess) { subProcess.doBeginJob(); });
296  }

References actReg_, droppedBranchIDToKeptBranchID(), esp_, fixBranchIDListsForEDAliases(), edm::for_all(), edm::InEvent, parentPreg_, pathsAndConsumesOfModules_, preg_, processContext_, schedule_, serviceToken_, subProcesses_, and edm::EDConsumerBase::updateLookup().

Referenced by doBeginJob().

◆ branchIDListHelper() [1/2]

std::shared_ptr<BranchIDListHelper>& edm::SubProcess::branchIDListHelper ( )
inlineprivate

Definition at line 270 of file SubProcess.h.

References branchIDListHelper_, and edm::get_underlying_safe().

◆ branchIDListHelper() [2/2]

std::shared_ptr<BranchIDListHelper const> edm::SubProcess::branchIDListHelper ( ) const
inlineprivate

Definition at line 267 of file SubProcess.h.

267  {
269  }

References branchIDListHelper_, and edm::get_underlying_safe().

Referenced by SubProcess().

◆ clearCounters()

void edm::SubProcess::clearCounters ( )
inline

Clear all the counters in the trigger report.

Definition at line 243 of file SubProcess.h.

243  {
245  schedule_->clearCounters();
246  for_all(subProcesses_, [](auto& subProcess) { subProcess.clearCounters(); });
247  }

References edm::for_all(), schedule_, serviceToken_, and subProcesses_.

◆ clearProcessBlockPrincipal()

void edm::SubProcess::clearProcessBlockPrincipal ( ProcessBlockType  processBlockType)

Definition at line 604 of file SubProcess.cc.

604  {
605  ProcessBlockPrincipal& processBlockPrincipal = principalCache_.processBlockPrincipal(processBlockType);
606  processBlockPrincipal.clearPrincipal();
607  for (auto& s : subProcesses_) {
608  s.clearProcessBlockPrincipal(processBlockType);
609  }
610  }

References edm::Principal::clearPrincipal(), principalCache_, edm::PrincipalCache::processBlockPrincipal(), alignCSCRings::s, and subProcesses_.

◆ closeOutputFiles()

void edm::SubProcess::closeOutputFiles ( )
inline

Definition at line 142 of file SubProcess.h.

142  {
144  schedule_->closeOutputFiles();
145  for_all(subProcesses_, [](auto& subProcess) { subProcess.closeOutputFiles(); });
146  }

References edm::for_all(), schedule_, serviceToken_, and subProcesses_.

◆ deleteLumiFromCache()

void edm::SubProcess::deleteLumiFromCache ( LuminosityBlockPrincipal principal)

Definition at line 665 of file SubProcess.cc.

665  {
666  //release from list but stay around till end of routine
667  auto lb = std::move(inUseLumiPrincipals_[principal.index()]);
668  for (auto& s : subProcesses_) {
669  s.deleteLumiFromCache(*lb);
670  }
671  lb->clearPrincipal();
672  }

References edm::LuminosityBlockPrincipal::index(), inUseLumiPrincipals_, eostools::move(), alignCSCRings::s, and subProcesses_.

◆ deleteRunFromCache()

void edm::SubProcess::deleteRunFromCache ( ProcessHistoryID const &  parentPhID,
int  runNumber 
)

Definition at line 595 of file SubProcess.cc.

595  {
596  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
597  assert(it != parentToChildPhID_.end());
598  auto const& childPhID = it->second;
599  principalCache_.deleteRun(childPhID, runNumber);
601  [&childPhID, runNumber](auto& subProcess) { subProcess.deleteRunFromCache(childPhID, runNumber); });
602  }

References cms::cuda::assert(), edm::PrincipalCache::deleteRun(), edm::for_all(), parentToChildPhID_, principalCache_, convertSQLiteXML::runNumber, and subProcesses_.

◆ doBeginJob()

void edm::SubProcess::doBeginJob ( )

Definition at line 278 of file SubProcess.cc.

278 { this->beginJob(); }

References beginJob().

◆ doBeginLuminosityBlockAsync()

void edm::SubProcess::doBeginLuminosityBlockAsync ( WaitingTaskHolder  iHolder,
LumiTransitionInfo const &  iTransitionInfo 
)

Definition at line 612 of file SubProcess.cc.

612  {
614 
615  LuminosityBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
616  auto aux = parentPrincipal.aux();
617  aux.setProcessHistoryID(parentPrincipal.processHistoryID());
619  lbpp->setAux(aux);
620  auto& processHistoryRegistry = processHistoryRegistries_[historyLumiOffset_ + lbpp->index()];
621  inUseLumiPrincipals_[parentPrincipal.index()] = lbpp;
622  processHistoryRegistry.registerProcessHistory(parentPrincipal.processHistory());
623  lbpp->fillLuminosityBlockPrincipal(&parentPrincipal.processHistory(), parentPrincipal.reader());
624  lbpp->setRunPrincipal(principalCache_.runPrincipalPtr());
625  LuminosityBlockPrincipal& lbp = *lbpp;
626  propagateProducts(InLumi, parentPrincipal, lbp);
627 
628  std::vector<std::shared_ptr<const EventSetupImpl>> const* eventSetupImpls = iTransitionInfo.eventSetupImpls();
629  LumiTransitionInfo transitionInfo(lbp, *((*eventSetupImpls)[esp_->subProcessIndex()]), eventSetupImpls);
630  using Traits = OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalBegin>;
631  beginGlobalTransitionAsync<Traits>(std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_);
632  }

References printConversionInfo::aux, edm::LuminosityBlockPrincipal::aux(), esp_, edm::LumiTransitionInfo::eventSetupImpls(), edm::PrincipalCache::getAvailableLumiPrincipalPtr(), historyLumiOffset_, edm::LuminosityBlockPrincipal::index(), edm::InLumi, inUseLumiPrincipals_, eostools::move(), edm::LumiTransitionInfo::principal(), principalCache_, edm::Principal::processHistory(), edm::Principal::processHistoryID(), processHistoryRegistries_, propagateProducts(), edm::Principal::reader(), edm::PrincipalCache::runPrincipalPtr(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoGlobalBeginTransitionAsync().

◆ doBeginProcessBlockAsync() [1/3]

template<typename Traits >
void edm::SubProcess::doBeginProcessBlockAsync ( WaitingTaskHolder  iHolder,
ProcessBlockTransitionInfo const &  iTransitionInfo 
)

◆ doBeginProcessBlockAsync() [2/3]

template<>
void edm::SubProcess::doBeginProcessBlockAsync ( WaitingTaskHolder  iHolder,
ProcessBlockTransitionInfo const &  iTransitionInfo 
)

Definition at line 464 of file SubProcess.cc.

465  {
467 
468  ProcessBlockPrincipal& processBlockPrincipal = principalCache_.inputProcessBlockPrincipal();
469  ProcessBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
470  processBlockPrincipal.fillProcessBlockPrincipal(parentPrincipal.processName(), parentPrincipal.reader());
471  propagateProducts(InProcess, parentPrincipal, processBlockPrincipal);
472 
473  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
474  using Traits = OccurrenceTraits<ProcessBlockPrincipal, BranchActionProcessBlockInput>;
475  beginGlobalTransitionAsync<Traits>(std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_);
476  }

References edm::ProcessBlockPrincipal::fillProcessBlockPrincipal(), edm::InProcess, eostools::move(), edm::ProcessBlockPrincipal::processName(), and edm::Principal::reader().

◆ doBeginProcessBlockAsync() [3/3]

template<>
void edm::SubProcess::doBeginProcessBlockAsync ( WaitingTaskHolder  iHolder,
ProcessBlockTransitionInfo const &  iTransitionInfo 
)

Definition at line 479 of file SubProcess.cc.

480  {
482 
483  ProcessBlockPrincipal& processBlockPrincipal = principalCache_.processBlockPrincipal();
484  ProcessBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
485  processBlockPrincipal.fillProcessBlockPrincipal(processConfiguration_->processName());
486  propagateProducts(InProcess, parentPrincipal, processBlockPrincipal);
487 
488  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
489  using Traits = OccurrenceTraits<ProcessBlockPrincipal, BranchActionGlobalBegin>;
490  beginGlobalTransitionAsync<Traits>(std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_);
491  }

References edm::ProcessBlockPrincipal::fillProcessBlockPrincipal(), edm::InProcess, and eostools::move().

◆ doBeginRunAsync()

void edm::SubProcess::doBeginRunAsync ( WaitingTaskHolder  iHolder,
RunTransitionInfo const &  iTransitionInfo 
)

Definition at line 506 of file SubProcess.cc.

506  {
508 
509  RunPrincipal const& parentPrincipal = iTransitionInfo.principal();
510  auto aux = std::make_shared<RunAuxiliary>(parentPrincipal.aux());
511  aux->setProcessHistoryID(parentPrincipal.processHistoryID());
512  auto rpp = std::make_shared<RunPrincipal>(aux,
513  preg_,
515  &(historyAppenders_[historyRunOffset_ + parentPrincipal.index()]),
516  parentPrincipal.index(),
517  false);
518  auto& processHistoryRegistry = processHistoryRegistries_[historyRunOffset_ + parentPrincipal.index()];
519  processHistoryRegistry.registerProcessHistory(parentPrincipal.processHistory());
520  rpp->fillRunPrincipal(processHistoryRegistry, parentPrincipal.reader());
521  principalCache_.insert(rpp);
522 
523  ProcessHistoryID const& parentInputReducedPHID = parentPrincipal.reducedProcessHistoryID();
524  ProcessHistoryID const& inputReducedPHID = rpp->reducedProcessHistoryID();
525 
526  parentToChildPhID_.insert(std::make_pair(parentInputReducedPHID, inputReducedPHID));
527 
528  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
529  propagateProducts(InRun, parentPrincipal, rp);
530 
531  RunTransitionInfo transitionInfo(rp, esp_->eventSetupImpl());
532  using Traits = OccurrenceTraits<RunPrincipal, BranchActionGlobalBegin>;
533  beginGlobalTransitionAsync<Traits>(std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_);
534  }

References printConversionInfo::aux, edm::RunPrincipal::aux(), esp_, historyAppenders_, historyRunOffset_, edm::RunPrincipal::index(), edm::InRun, edm::PrincipalCache::insert(), eostools::move(), parentToChildPhID_, preg_, edm::RunTransitionInfo::principal(), principalCache_, processConfiguration_, edm::Principal::processHistory(), edm::Principal::processHistoryID(), processHistoryRegistries_, propagateProducts(), edm::Principal::reader(), edm::RunPrincipal::reducedProcessHistoryID(), edm::PrincipalCache::runPrincipalPtr(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoGlobalBeginTransitionAsync().

◆ doBeginStream()

void edm::SubProcess::doBeginStream ( unsigned int  iID)

Definition at line 674 of file SubProcess.cc.

674  {
676  schedule_->beginStream(iID);
677  for_all(subProcesses_, [iID](auto& subProcess) { subProcess.doBeginStream(iID); });
678  }

References edm::for_all(), schedule_, serviceToken_, and subProcesses_.

◆ doEndJob()

void edm::SubProcess::doEndJob ( )

Definition at line 280 of file SubProcess.cc.

280 { endJob(); }

References endJob().

Referenced by edm::EventProcessor::endJob().

◆ doEndLuminosityBlockAsync()

void edm::SubProcess::doEndLuminosityBlockAsync ( WaitingTaskHolder  iHolder,
LumiTransitionInfo const &  iTransitionInfo,
bool  cleaningUpAfterException 
)

Definition at line 634 of file SubProcess.cc.

636  {
637  LuminosityBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
638  LuminosityBlockPrincipal& lbp = *inUseLumiPrincipals_[parentPrincipal.index()];
639  propagateProducts(InLumi, parentPrincipal, lbp);
640 
641  std::vector<std::shared_ptr<const EventSetupImpl>> const* eventSetupImpls = iTransitionInfo.eventSetupImpls();
642  LumiTransitionInfo transitionInfo(lbp, *((*eventSetupImpls)[esp_->subProcessIndex()]), eventSetupImpls);
643  using Traits = OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalEnd>;
644  endGlobalTransitionAsync<Traits>(
645  std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
646  }

References esp_, edm::LumiTransitionInfo::eventSetupImpls(), edm::LuminosityBlockPrincipal::index(), edm::InLumi, inUseLumiPrincipals_, eostools::move(), edm::LumiTransitionInfo::principal(), propagateProducts(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoGlobalEndTransitionAsync().

◆ doEndProcessBlockAsync()

void edm::SubProcess::doEndProcessBlockAsync ( WaitingTaskHolder  iHolder,
ProcessBlockTransitionInfo const &  iTransitionInfo,
bool  cleaningUpAfterException 
)

Definition at line 493 of file SubProcess.cc.

495  {
496  ProcessBlockPrincipal& processBlockPrincipal = principalCache_.processBlockPrincipal();
497  ProcessBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
498  propagateProducts(InProcess, parentPrincipal, processBlockPrincipal);
499 
500  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
501  using Traits = OccurrenceTraits<ProcessBlockPrincipal, BranchActionGlobalEnd>;
502  endGlobalTransitionAsync<Traits>(
503  std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
504  }

References edm::InProcess, eostools::move(), edm::ProcessBlockTransitionInfo::principal(), principalCache_, edm::PrincipalCache::processBlockPrincipal(), propagateProducts(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoGlobalEndTransitionAsync().

◆ doEndRunAsync()

void edm::SubProcess::doEndRunAsync ( WaitingTaskHolder  iHolder,
RunTransitionInfo const &  iTransitionInfo,
bool  cleaningUpAfterException 
)

Definition at line 536 of file SubProcess.cc.

538  {
539  RunPrincipal const& parentPrincipal = iTransitionInfo.principal();
540  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
541  propagateProducts(InRun, parentPrincipal, rp);
542 
543  RunTransitionInfo transitionInfo(rp, esp_->eventSetupImpl());
544  using Traits = OccurrenceTraits<RunPrincipal, BranchActionGlobalEnd>;
545  endGlobalTransitionAsync<Traits>(
546  std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
547  }

References esp_, edm::InRun, eostools::move(), edm::RunTransitionInfo::principal(), principalCache_, propagateProducts(), edm::PrincipalCache::runPrincipalPtr(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoGlobalEndTransitionAsync().

◆ doEndStream()

void edm::SubProcess::doEndStream ( unsigned int  iID)

Definition at line 680 of file SubProcess.cc.

680  {
682  schedule_->endStream(iID);
683  for_all(subProcesses_, [iID](auto& subProcess) { subProcess.doEndStream(iID); });
684  }

References edm::for_all(), schedule_, serviceToken_, and subProcesses_.

◆ doEventAsync()

void edm::SubProcess::doEventAsync ( WaitingTaskHolder  iHolder,
EventPrincipal const &  principal,
std::vector< std::shared_ptr< const EventSetupImpl >> const *  iEventSetupImpls 
)

Definition at line 390 of file SubProcess.cc.

392  {
394  /* BEGIN relevant bits from OutputModule::doEvent */
395  if (!wantAllEvents_) {
396  EventForOutput e(ep, ModuleDescription(), nullptr);
397  e.setConsumer(this);
398  if (!selectors_.wantEvent(e)) {
399  return;
400  }
401  }
402  processAsync(std::move(iHolder), ep, iEventSetupImpls);
403  /* END relevant bits from OutputModule::doEvent */
404  }

References MillePedeFileConverter_cfg::e, SiStripBadComponentsDQMServiceTemplate_cfg::ep, eostools::move(), processAsync(), selectors_, serviceToken_, wantAllEvents_, and edm::detail::TriggerResultsBasedEventSelector::wantEvent().

◆ doStreamBeginLuminosityBlockAsync()

void edm::SubProcess::doStreamBeginLuminosityBlockAsync ( WaitingTaskHolder  iHolder,
unsigned int  iID,
LumiTransitionInfo const &  iTransitionInfo 
)

Definition at line 708 of file SubProcess.cc.

710  {
711  using Traits = OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamBegin>;
712 
713  LuminosityBlockPrincipal& lbp = *inUseLumiPrincipals_[iTransitionInfo.principal().index()];
714  std::vector<std::shared_ptr<const EventSetupImpl>> const* eventSetupImpls = iTransitionInfo.eventSetupImpls();
715  LumiTransitionInfo transitionInfo(lbp, *((*eventSetupImpls)[esp_->subProcessIndex()]), eventSetupImpls);
716  beginStreamTransitionAsync<Traits>(
717  std::move(iHolder), *schedule_, id, transitionInfo, serviceToken_, subProcesses_);
718  }

References esp_, edm::LumiTransitionInfo::eventSetupImpls(), edm::LuminosityBlockPrincipal::index(), inUseLumiPrincipals_, eostools::move(), edm::LumiTransitionInfo::principal(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoStreamBeginTransitionAsync().

◆ doStreamBeginRunAsync()

void edm::SubProcess::doStreamBeginRunAsync ( WaitingTaskHolder  iHolder,
unsigned int  iID,
RunTransitionInfo const &   
)

Definition at line 686 of file SubProcess.cc.

686  {
687  using Traits = OccurrenceTraits<RunPrincipal, BranchActionStreamBegin>;
688 
689  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
690 
691  RunTransitionInfo transitionInfo(rp, esp_->eventSetupImpl());
692  beginStreamTransitionAsync<Traits>(
693  std::move(iHolder), *schedule_, id, transitionInfo, serviceToken_, subProcesses_);
694  }

References esp_, eostools::move(), principalCache_, edm::PrincipalCache::runPrincipalPtr(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoStreamBeginTransitionAsync().

◆ doStreamEndLuminosityBlockAsync()

void edm::SubProcess::doStreamEndLuminosityBlockAsync ( WaitingTaskHolder  iHolder,
unsigned int  iID,
LumiTransitionInfo const &  iTransitionInfo,
bool  cleaningUpAfterException 
)

Definition at line 720 of file SubProcess.cc.

723  {
724  LuminosityBlockPrincipal& lbp = *inUseLumiPrincipals_[iTransitionInfo.principal().index()];
725  using Traits = OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamEnd>;
726  std::vector<std::shared_ptr<const EventSetupImpl>> const* eventSetupImpls = iTransitionInfo.eventSetupImpls();
727  LumiTransitionInfo transitionInfo(lbp, *((*eventSetupImpls)[esp_->subProcessIndex()]), eventSetupImpls);
728  endStreamTransitionAsync<Traits>(
729  std::move(iHolder), *schedule_, id, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
730  }

References esp_, edm::LumiTransitionInfo::eventSetupImpls(), edm::LuminosityBlockPrincipal::index(), inUseLumiPrincipals_, eostools::move(), edm::LumiTransitionInfo::principal(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoStreamEndTransitionAsync().

◆ doStreamEndRunAsync()

void edm::SubProcess::doStreamEndRunAsync ( WaitingTaskHolder  iHolder,
unsigned int  iID,
RunTransitionInfo const &  ,
bool  cleaningUpAfterException 
)

Definition at line 696 of file SubProcess.cc.

699  {
700  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
701  using Traits = OccurrenceTraits<RunPrincipal, BranchActionStreamEnd>;
702 
703  RunTransitionInfo transitionInfo(rp, esp_->eventSetupImpl());
704  endStreamTransitionAsync<Traits>(
705  std::move(iHolder), *schedule_, id, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
706  }

References esp_, eostools::move(), principalCache_, edm::PrincipalCache::runPrincipalPtr(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoStreamEndTransitionAsync().

◆ droppedBranchIDToKeptBranchID()

std::map<BranchID::value_type, BranchID::value_type> const& edm::SubProcess::droppedBranchIDToKeptBranchID ( )
inlineprivate

Definition at line 263 of file SubProcess.h.

263  {
265  }

References droppedBranchIDToKeptBranchID_.

Referenced by beginJob(), and fixBranchIDListsForEDAliases().

◆ enableEndPaths()

void edm::SubProcess::enableEndPaths ( bool  active)
inline

Turn end_paths "off" if "active" is false; Turn end_paths "on" if "active" is true.

Definition at line 208 of file SubProcess.h.

208  {
210  schedule_->enableEndPaths(active);
211  for_all(subProcesses_, [active](auto& subProcess) { subProcess.enableEndPaths(active); });
212  }

References edm::for_all(), schedule_, serviceToken_, and subProcesses_.

◆ endJob()

void edm::SubProcess::endJob ( void  )
private

Definition at line 298 of file SubProcess.cc.

298  {
300  ExceptionCollector c(
301  "Multiple exceptions were thrown while executing endJob. An exception message follows for each.");
302  schedule_->endJob(c);
303  for (auto& subProcess : subProcesses_) {
304  c.call([&subProcess]() { subProcess.doEndJob(); });
305  }
306  if (c.hasThrown()) {
307  c.rethrow();
308  }
309  }

References c, schedule_, serviceToken_, and subProcesses_.

Referenced by doEndJob().

◆ endPathsEnabled()

bool edm::SubProcess::endPathsEnabled ( ) const
inline

Return true if end_paths are active, and false if they are inactive.

Definition at line 215 of file SubProcess.h.

215  {
217  return schedule_->endPathsEnabled();
218  }

References schedule_, and serviceToken_.

◆ fixBranchIDListsForEDAliases()

void edm::SubProcess::fixBranchIDListsForEDAliases ( std::map< BranchID::value_type, BranchID::value_type > const &  droppedBranchIDToKeptBranchID)
private

Definition at line 372 of file SubProcess.cc.

373  {
374  // Check for branches dropped while an EDAlias was kept.
375  // Replace BranchID of each dropped branch with that of the kept alias.
376  for (BranchIDList& branchIDList : branchIDListHelper_->mutableBranchIDLists()) {
377  for (BranchID::value_type& branchID : branchIDList) {
378  std::map<BranchID::value_type, BranchID::value_type>::const_iterator iter =
379  droppedBranchIDToKeptBranchID.find(branchID);
380  if (iter != droppedBranchIDToKeptBranchID.end()) {
381  branchID = iter->second;
382  }
383  }
384  }
385  for_all(subProcesses_, [&droppedBranchIDToKeptBranchID](auto& subProcess) {
386  subProcess.fixBranchIDListsForEDAliases(droppedBranchIDToKeptBranchID);
387  });
388  }

References branchIDListHelper_, droppedBranchIDToKeptBranchID(), edm::for_all(), and subProcesses_.

Referenced by beginJob().

◆ getAllModuleDescriptions()

std::vector<ModuleDescription const*> edm::SubProcess::getAllModuleDescriptions ( ) const

Return a vector allowing const access to all the ModuleDescriptions for this SubProcess.

*** N.B. *** Ownership of the ModuleDescriptions is not *** passed to the caller. Do not call delete on these *** pointers!

◆ getTriggerReport()

void edm::SubProcess::getTriggerReport ( TriggerReport rep) const
inline

Return the trigger report information on paths, modules-in-path, modules-in-endpath, and modules.

Definition at line 222 of file SubProcess.h.

222  {
224  schedule_->getTriggerReport(rep);
225  }

References cuy::rep, schedule_, and serviceToken_.

◆ keepOnlyConsumedUnscheduledModules()

std::vector< ModuleProcessName > edm::SubProcess::keepOnlyConsumedUnscheduledModules ( bool  deleteModules)

Definition at line 223 of file SubProcess.cc.

223  {
224  schedule_->convertCurrentProcessAlias(processConfiguration_->processName());
226 
227  // Note: all these may throw
229 
230  // Consumes information from the child SubProcesses
231  std::vector<ModuleProcessName> consumedByChildren;
232  for_all(subProcesses_, [&consumedByChildren, deleteModules](auto& subProcess) {
233  auto c = subProcess.keepOnlyConsumedUnscheduledModules(deleteModules);
234  if (consumedByChildren.empty()) {
235  std::swap(consumedByChildren, c);
236  } else if (not c.empty()) {
237  std::vector<ModuleProcessName> tmp;
238  tmp.reserve(consumedByChildren.size() + c.size());
239  std::merge(consumedByChildren.begin(), consumedByChildren.end(), c.begin(), c.end(), std::back_inserter(tmp));
240  std::swap(consumedByChildren, tmp);
241  }
242  });
243 
244  // Non-consumed unscheduled modules in this SubProcess, take into account of the consumes from child SubProcesses
245  if (deleteModules) {
246  if (auto const unusedModules = nonConsumedUnscheduledModules(pathsAndConsumesOfModules_, consumedByChildren);
247  not unusedModules.empty()) {
249 
250  edm::LogInfo("DeleteModules").log([&unusedModules, this](auto& l) {
251  l << "Following modules are not in any Path or EndPath, nor is their output consumed by any other module, "
252  "and "
253  "therefore they are deleted from SubProcess "
254  << processConfiguration_->processName() << " before beginJob transition.";
255  for (auto const& description : unusedModules) {
256  l << "\n " << description->moduleLabel();
257  }
258  });
259  for (auto const& description : unusedModules) {
260  schedule_->deleteModule(description->moduleLabel(), actReg_.get());
261  }
262  }
263  }
264 
265  // Products possibly consumed from the parent (Sub)Process
266  for (auto const& description : pathsAndConsumesOfModules_.allModules()) {
267  for (auto const& dep :
269  auto it = std::lower_bound(consumedByChildren.begin(),
270  consumedByChildren.end(),
271  ModuleProcessName{dep.moduleLabel(), dep.processName()});
272  consumedByChildren.emplace(it, dep.moduleLabel(), dep.processName());
273  }
274  }
275  return consumedByChildren;
276  }

References actReg_, edm::PathsAndConsumesOfModulesBase::allModules(), c, edm::checkForModuleDependencyCorrectness(), edmLumisInFiles::description, edm::for_all(), edm::PathsAndConsumesOfModules::initialize(), cmsLHEtoEOSManager::l, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, MatrixUtil::merge(), edm::ModuleProcessName::moduleLabel(), edm::PathsAndConsumesOfModules::modulesInPreviousProcessesWhoseProductsAreConsumedBy(), edm::nonConsumedUnscheduledModules(), pathsAndConsumesOfModules_, preg_, processConfiguration_, edm::PathsAndConsumesOfModules::removeModules(), schedule_, subProcesses_, std::swap(), and createJobs::tmp.

◆ keepThisBranch()

void edm::SubProcess::keepThisBranch ( BranchDescription const &  desc,
std::map< BranchID, BranchDescription const * > &  trueBranchIDToKeptBranchDesc,
std::set< BranchID > &  keptProductsInEvent 
)
private

Definition at line 353 of file SubProcess.cc.

355  {
356  ProductSelector::checkForDuplicateKeptBranch(desc, trueBranchIDToKeptBranchDesc);
357 
358  if (desc.branchType() == InEvent) {
359  if (desc.produced()) {
360  keptProductsInEvent.insert(desc.originalBranchID());
361  } else {
362  keptProductsInEvent.insert(desc.branchID());
363  }
364  }
365  EDGetToken token = consumes(TypeToGet{desc.unwrappedTypeID(), PRODUCT_TYPE},
366  InputTag{desc.moduleLabel(), desc.productInstanceName(), desc.processName()});
367 
368  // Now put it in the list of selected branches.
369  keptProducts_[desc.branchType()].push_back(std::make_pair(&desc, token));
370  }

References edm::ProductSelector::checkForDuplicateKeptBranch(), edm::EDConsumerBase::consumes(), submitPVResolutionJobs::desc, edm::InEvent, keptProducts_, edm::PRODUCT_TYPE, and unpackBuffers-CaloStage2::token.

Referenced by selectProducts().

◆ keptProducts()

SelectedProductsForBranchType const& edm::SubProcess::keptProducts ( ) const
inline

Definition at line 77 of file SubProcess.h.

77 { return keptProducts_; }

References keptProducts_.

Referenced by propagateProducts(), and edm::ScheduleItems::ScheduleItems().

◆ openOutputFiles()

void edm::SubProcess::openOutputFiles ( FileBlock fb)
inline

Definition at line 149 of file SubProcess.h.

149  {
151  schedule_->openOutputFiles(fb);
152  for_all(subProcesses_, [&fb](auto& subProcess) { subProcess.openOutputFiles(fb); });
153  }

References benchmark_cfg::fb, edm::for_all(), schedule_, serviceToken_, and subProcesses_.

◆ operator=() [1/2]

SubProcess& edm::SubProcess::operator= ( SubProcess &&  )
delete

◆ operator=() [2/2]

SubProcess& edm::SubProcess::operator= ( SubProcess const &  )
delete

◆ processAsync()

void edm::SubProcess::processAsync ( WaitingTaskHolder  iHolder,
EventPrincipal const &  e,
std::vector< std::shared_ptr< const EventSetupImpl >> const *  iEventSetupImpls 
)
private

Definition at line 406 of file SubProcess.cc.

408  {
409  EventAuxiliary aux(principal.aux());
410  aux.setProcessHistoryID(principal.processHistoryID());
411 
412  EventSelectionIDVector esids{principal.eventSelectionIDs()};
413  if (principal.productRegistry().anyProductProduced() || !wantAllEvents_) {
414  esids.push_back(selector_config_id_);
415  }
416 
417  EventPrincipal& ep = principalCache_.eventPrincipal(principal.streamID().value());
418  auto& processHistoryRegistry = processHistoryRegistries_[principal.streamID().value()];
419  processHistoryRegistry.registerProcessHistory(principal.processHistory());
420  BranchListIndexes bli(principal.branchListIndexes());
421  branchIDListHelper_->fixBranchListIndexes(bli);
422  bool deepCopyRetriever = false;
423  ep.fillEventPrincipal(
424  aux,
425  &principal.processHistory(),
426  std::move(esids),
427  std::move(bli),
428  *(principal.productProvenanceRetrieverPtr()), //NOTE: this transfers the per product provenance
429  principal.reader(),
430  deepCopyRetriever);
431  ep.setLuminosityBlockPrincipal(inUseLumiPrincipals_[principal.luminosityBlockPrincipal().index()].get());
432  propagateProducts(InEvent, principal, ep);
433 
434  WaitingTaskHolder finalizeEventTask(*iHolder.group(),
435  make_waiting_task([&ep, iHolder](std::exception_ptr const* iPtr) mutable {
436  ep.clearEventPrincipal();
437  if (iPtr) {
438  iHolder.doneWaiting(*iPtr);
439  } else {
440  iHolder.doneWaiting(std::exception_ptr());
441  }
442  }));
443  WaitingTaskHolder afterProcessTask;
444  if (subProcesses_.empty()) {
445  afterProcessTask = std::move(finalizeEventTask);
446  } else {
447  afterProcessTask = WaitingTaskHolder(
448  *iHolder.group(),
449  make_waiting_task([this, &ep, finalizeEventTask, iEventSetupImpls](std::exception_ptr const* iPtr) mutable {
450  if (not iPtr) {
451  for (auto& subProcess : boost::adaptors::reverse(subProcesses_)) {
452  subProcess.doEventAsync(finalizeEventTask, ep, iEventSetupImpls);
453  }
454  } else {
455  finalizeEventTask.doneWaiting(*iPtr);
456  }
457  }));
458  }
459  EventTransitionInfo info(ep, *((*iEventSetupImpls)[esp_->subProcessIndex()]));
460  schedule_->processOneEventAsync(std::move(afterProcessTask), ep.streamID().value(), info, serviceToken_);
461  }

References edm::ProductRegistry::anyProductProduced(), printConversionInfo::aux, edm::EventPrincipal::aux(), branchIDListHelper_, edm::EventPrincipal::branchListIndexes(), edm::WaitingTaskHolder::doneWaiting(), SiStripBadComponentsDQMServiceTemplate_cfg::ep, esp_, edm::PrincipalCache::eventPrincipal(), edm::EventPrincipal::eventSelectionIDs(), edm::WaitingTaskHolder::group(), edm::LuminosityBlockPrincipal::index(), edm::InEvent, info(), inUseLumiPrincipals_, edm::EventPrincipal::luminosityBlockPrincipal(), edm::make_waiting_task(), eostools::move(), principalCache_, edm::Principal::processHistory(), edm::Principal::processHistoryID(), processHistoryRegistries_, edm::EventPrincipal::productProvenanceRetrieverPtr(), edm::Principal::productRegistry(), propagateProducts(), edm::Principal::reader(), groupFilesInBlocks::reverse, schedule_, selector_config_id_, serviceToken_, edm::EventPrincipal::streamID(), subProcesses_, edm::StreamID::value(), and wantAllEvents_.

Referenced by doEventAsync().

◆ propagateProducts()

void edm::SubProcess::propagateProducts ( BranchType  type,
Principal const &  parentPrincipal,
Principal principal 
) const
private

Definition at line 732 of file SubProcess.cc.

732  {
733  SelectedProducts const& keptVector = keptProducts()[type];
734  for (auto const& item : keptVector) {
735  BranchDescription const& desc = *item.first;
736  ProductResolverBase const* parentProductResolver = parentPrincipal.getProductResolver(desc.branchID());
737  if (parentProductResolver != nullptr) {
738  ProductResolverBase* productResolver = principal.getModifiableProductResolver(desc.branchID());
739  if (productResolver != nullptr) {
740  //Propagate the per event(run)(lumi)(processBlock) data for this product to the subprocess.
741  productResolver->connectTo(*parentProductResolver, &parentPrincipal);
742  }
743  }
744  }
745  }

References edm::ProductResolverBase::connectTo(), submitPVResolutionJobs::desc, edm::Principal::getModifiableProductResolver(), edm::Principal::getProductResolver(), B2GTnPMonitor_cfi::item, and keptProducts().

Referenced by doBeginLuminosityBlockAsync(), doBeginRunAsync(), doEndLuminosityBlockAsync(), doEndProcessBlockAsync(), doEndRunAsync(), and processAsync().

◆ respondToCloseInputFile()

void edm::SubProcess::respondToCloseInputFile ( FileBlock const &  fb)
inline

Definition at line 161 of file SubProcess.h.

161  {
163  schedule_->respondToCloseInputFile(fb);
164  for_all(subProcesses_, [&fb](auto& subProcess) { subProcess.respondToCloseInputFile(fb); });
165  }

References benchmark_cfg::fb, edm::for_all(), schedule_, serviceToken_, and subProcesses_.

◆ respondToOpenInputFile()

void edm::SubProcess::respondToOpenInputFile ( FileBlock const &  fb)

Definition at line 754 of file SubProcess.cc.

754  {
756  schedule_->respondToOpenInputFile(fb);
757  for_all(subProcesses_, [&fb](auto& subProcess) { subProcess.respondToOpenInputFile(fb); });
758  }

References benchmark_cfg::fb, edm::for_all(), schedule_, serviceToken_, and subProcesses_.

◆ selectProducts()

void edm::SubProcess::selectProducts ( ProductRegistry const &  preg,
ThinnedAssociationsHelper const &  parentThinnedAssociationsHelper,
std::map< BranchID, bool > &  keepAssociation 
)

Definition at line 311 of file SubProcess.cc.

313  {
315  return;
316  productSelector_.initialize(productSelectorRules_, preg.allBranchDescriptions());
317 
318  // TODO: See if we can collapse keptProducts_ and productSelector_ into a
319  // single object. See the notes in the header for ProductSelector
320  // for more information.
321 
322  std::map<BranchID, BranchDescription const*> trueBranchIDToKeptBranchDesc;
323  std::vector<BranchDescription const*> associationDescriptions;
324  std::set<BranchID> keptProductsInEvent;
325 
326  for (auto const& it : preg.productList()) {
327  BranchDescription const& desc = it.second;
328  if (desc.transient()) {
329  // if the class of the branch is marked transient, output nothing
330  } else if (!desc.present() && !desc.produced()) {
331  // else if the branch containing the product has been previously dropped,
332  // output nothing
333  } else if (desc.unwrappedType() == typeid(ThinnedAssociation)) {
334  associationDescriptions.push_back(&desc);
335  } else if (productSelector_.selected(desc)) {
336  keepThisBranch(desc, trueBranchIDToKeptBranchDesc, keptProductsInEvent);
337  }
338  }
339 
340  parentThinnedAssociationsHelper.selectAssociationProducts(
341  associationDescriptions, keptProductsInEvent, keepAssociation);
342 
343  for (auto association : associationDescriptions) {
344  if (keepAssociation[association->branchID()]) {
345  keepThisBranch(*association, trueBranchIDToKeptBranchDesc, keptProductsInEvent);
346  }
347  }
348 
349  // Now fill in a mapping needed in the case that a branch was dropped while its EDAlias was kept.
350  ProductSelector::fillDroppedToKept(preg, trueBranchIDToKeptBranchDesc, droppedBranchIDToKeptBranchID_);
351  }

References edm::ProductRegistry::allBranchDescriptions(), submitPVResolutionJobs::desc, droppedBranchIDToKeptBranchID_, edm::ProductSelector::fillDroppedToKept(), edm::ProductSelector::initialize(), edm::ProductSelector::initialized(), keepThisBranch(), edm::ProductRegistry::productList(), productSelector_, productSelectorRules_, edm::ThinnedAssociationsHelper::selectAssociationProducts(), and edm::ProductSelector::selected().

Referenced by SubProcess().

◆ shouldWeCloseOutput()

bool edm::SubProcess::shouldWeCloseOutput ( ) const
inline

Definition at line 168 of file SubProcess.h.

168  {
170  if (schedule_->shouldWeCloseOutput()) {
171  return true;
172  }
173  for (auto const& subProcess : subProcesses_) {
174  if (subProcess.shouldWeCloseOutput()) {
175  return true;
176  }
177  }
178  return false;
179  }

References schedule_, serviceToken_, and subProcesses_.

◆ terminate()

bool edm::SubProcess::terminate ( void  ) const
inline

Return whether each output module has reached its maximum count. If there is a subprocess, get this information from the subprocess.

Definition at line 229 of file SubProcess.h.

229  {
231  if (schedule_->terminate()) {
232  return true;
233  }
234  for (auto const& subProcess : subProcesses_) {
235  if (subProcess.terminate()) {
236  return true;
237  }
238  }
239  return false;
240  }

References schedule_, serviceToken_, and subProcesses_.

◆ thinnedAssociationsHelper() [1/2]

std::shared_ptr<ThinnedAssociationsHelper> edm::SubProcess::thinnedAssociationsHelper ( )
inlineprivate

Definition at line 274 of file SubProcess.h.

274  {
276  }

References edm::get_underlying_safe(), and thinnedAssociationsHelper_.

◆ thinnedAssociationsHelper() [2/2]

std::shared_ptr<ThinnedAssociationsHelper const> edm::SubProcess::thinnedAssociationsHelper ( ) const
inlineprivate

Definition at line 271 of file SubProcess.h.

271  {
273  }

References edm::get_underlying_safe(), and thinnedAssociationsHelper_.

Referenced by SubProcess().

◆ totalEvents()

int edm::SubProcess::totalEvents ( ) const
inline

Return the number of events this SubProcess has tried to process (inclues both successes and failures, including failures due to exceptions during processing).

Definition at line 191 of file SubProcess.h.

191 { return schedule_->totalEvents(); }

References schedule_.

◆ totalEventsFailed()

int edm::SubProcess::totalEventsFailed ( ) const
inline

Return the number of events that have not passed any trigger. (N.B. totalEventsFailed() + totalEventsPassed() == totalEvents()

Definition at line 201 of file SubProcess.h.

201  {
203  return schedule_->totalEventsFailed();
204  }

References schedule_, and serviceToken_.

◆ totalEventsPassed()

int edm::SubProcess::totalEventsPassed ( ) const
inline

Return the number of events which have been passed by one or more trigger paths.

Definition at line 194 of file SubProcess.h.

194  {
196  return schedule_->totalEventsPassed();
197  }

References schedule_, and serviceToken_.

◆ updateBranchIDListHelper()

void edm::SubProcess::updateBranchIDListHelper ( BranchIDLists const &  branchIDLists)

Definition at line 747 of file SubProcess.cc.

747  {
748  branchIDListHelper_->updateFromParent(branchIDLists);
750  [this](auto& subProcess) { subProcess.updateBranchIDListHelper(branchIDListHelper_->branchIDLists()); });
751  }

References branchIDListHelper_, edm::for_all(), and subProcesses_.

Referenced by SubProcess().

◆ writeLumiAsync()

void edm::SubProcess::writeLumiAsync ( WaitingTaskHolder  task,
LuminosityBlockPrincipal principal 
)

Definition at line 648 of file SubProcess.cc.

648  {
650 
651  auto l = inUseLumiPrincipals_[principal.index()];
652  auto subTasks = edm::make_waiting_task([this, l, task](std::exception_ptr const* iExcept) mutable {
653  if (iExcept) {
654  task.doneWaiting(*iExcept);
655  } else {
656  ServiceRegistry::Operate operateWriteLumi(serviceToken_);
657  for (auto& s : subProcesses_) {
658  s.writeLumiAsync(task, *l);
659  }
660  }
661  });
662  schedule_->writeLumiAsync(WaitingTaskHolder(*task.group(), subTasks), *l, &processContext_, actReg_.get());
663  }

References actReg_, edm::LuminosityBlockPrincipal::index(), inUseLumiPrincipals_, cmsLHEtoEOSManager::l, edm::make_waiting_task(), processContext_, alignCSCRings::s, schedule_, serviceToken_, subProcesses_, and TrackValidation_cff::task.

◆ writeProcessBlockAsync()

void edm::SubProcess::writeProcessBlockAsync ( edm::WaitingTaskHolder  task,
ProcessBlockType  processBlockType 
)

Definition at line 549 of file SubProcess.cc.

549  {
551 
552  auto subTasks = edm::make_waiting_task([this, task, processBlockType](std::exception_ptr const* iExcept) mutable {
553  if (iExcept) {
554  task.doneWaiting(*iExcept);
555  } else {
557  for (auto& s : subProcesses_) {
558  s.writeProcessBlockAsync(task, processBlockType);
559  }
560  }
561  });
562  schedule_->writeProcessBlockAsync(WaitingTaskHolder(*task.group(), subTasks),
563  principalCache_.processBlockPrincipal(processBlockType),
565  actReg_.get());
566  }

References actReg_, edm::make_waiting_task(), principalCache_, edm::PrincipalCache::processBlockPrincipal(), processContext_, alignCSCRings::s, schedule_, serviceToken_, subProcesses_, and TrackValidation_cff::task.

◆ writeRunAsync()

void edm::SubProcess::writeRunAsync ( edm::WaitingTaskHolder  task,
ProcessHistoryID const &  parentPhID,
int  runNumber,
MergeableRunProductMetadata const *  mergeableRunProductMetadata 
)

Definition at line 568 of file SubProcess.cc.

571  {
573  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
574  assert(it != parentToChildPhID_.end());
575  auto const& childPhID = it->second;
576 
577  auto subTasks = edm::make_waiting_task(
578  [this, childPhID, runNumber, task, mergeableRunProductMetadata](std::exception_ptr const* iExcept) mutable {
579  if (iExcept) {
580  task.doneWaiting(*iExcept);
581  } else {
582  ServiceRegistry::Operate operateWriteRun(serviceToken_);
583  for (auto& s : subProcesses_) {
584  s.writeRunAsync(task, childPhID, runNumber, mergeableRunProductMetadata);
585  }
586  }
587  });
588  schedule_->writeRunAsync(WaitingTaskHolder(*task.group(), subTasks),
591  actReg_.get(),
592  mergeableRunProductMetadata);
593  }

References actReg_, cms::cuda::assert(), edm::make_waiting_task(), parentToChildPhID_, principalCache_, processContext_, convertSQLiteXML::runNumber, edm::PrincipalCache::runPrincipal(), alignCSCRings::s, schedule_, serviceToken_, subProcesses_, and TrackValidation_cff::task.

Member Data Documentation

◆ act_table_

std::unique_ptr<ExceptionToActionTable const> edm::SubProcess::act_table_
private

Definition at line 285 of file SubProcess.h.

Referenced by SubProcess().

◆ actReg_

std::shared_ptr<ActivityRegistry> edm::SubProcess::actReg_
private

◆ branchIDListHelper_

edm::propagate_const<std::shared_ptr<BranchIDListHelper> > edm::SubProcess::branchIDListHelper_
private

◆ droppedBranchIDToKeptBranchID_

std::map<BranchID::value_type, BranchID::value_type> edm::SubProcess::droppedBranchIDToKeptBranchID_
private

Definition at line 319 of file SubProcess.h.

Referenced by droppedBranchIDToKeptBranchID(), selectProducts(), and SubProcess().

◆ esp_

edm::propagate_const<std::shared_ptr<eventsetup::EventSetupProvider> > edm::SubProcess::esp_
private

◆ historyAppenders_

std::vector<HistoryAppender> edm::SubProcess::historyAppenders_
private

Definition at line 294 of file SubProcess.h.

Referenced by doBeginRunAsync(), and SubProcess().

◆ historyLumiOffset_

unsigned int edm::SubProcess::historyLumiOffset_
private

Definition at line 291 of file SubProcess.h.

Referenced by doBeginLuminosityBlockAsync(), and SubProcess().

◆ historyRunOffset_

unsigned int edm::SubProcess::historyRunOffset_
private

Definition at line 292 of file SubProcess.h.

Referenced by doBeginRunAsync(), and SubProcess().

◆ inUseLumiPrincipals_

std::vector<std::shared_ptr<LuminosityBlockPrincipal> > edm::SubProcess::inUseLumiPrincipals_
private

◆ keptProducts_

SelectedProductsForBranchType edm::SubProcess::keptProducts_
private

Definition at line 308 of file SubProcess.h.

Referenced by keepThisBranch(), and keptProducts().

◆ parentPreg_

std::shared_ptr<ProductRegistry const> edm::SubProcess::parentPreg_
private

Definition at line 280 of file SubProcess.h.

Referenced by beginJob().

◆ parentToChildPhID_

std::map<ProcessHistoryID, ProcessHistoryID> edm::SubProcess::parentToChildPhID_
private

Definition at line 300 of file SubProcess.h.

Referenced by deleteRunFromCache(), doBeginRunAsync(), and writeRunAsync().

◆ pathsAndConsumesOfModules_

PathsAndConsumesOfModules edm::SubProcess::pathsAndConsumesOfModules_
private

Definition at line 288 of file SubProcess.h.

Referenced by beginJob(), and keepOnlyConsumedUnscheduledModules().

◆ preg_

std::shared_ptr<ProductRegistry const> edm::SubProcess::preg_
private

◆ principalCache_

PrincipalCache edm::SubProcess::principalCache_
private

◆ processConfiguration_

std::shared_ptr<ProcessConfiguration const> edm::SubProcess::processConfiguration_
private

Definition at line 286 of file SubProcess.h.

Referenced by doBeginRunAsync(), keepOnlyConsumedUnscheduledModules(), and SubProcess().

◆ processContext_

ProcessContext edm::SubProcess::processContext_
private

◆ processHistoryRegistries_

std::vector<ProcessHistoryRegistry> edm::SubProcess::processHistoryRegistries_
private

◆ processParameterSet_

edm::propagate_const<std::unique_ptr<ParameterSet> > edm::SubProcess::processParameterSet_
private

Definition at line 302 of file SubProcess.h.

Referenced by SubProcess().

◆ productSelector_

ProductSelector edm::SubProcess::productSelector_
private

Definition at line 310 of file SubProcess.h.

Referenced by selectProducts().

◆ productSelectorRules_

ProductSelectorRules edm::SubProcess::productSelectorRules_
private

Definition at line 309 of file SubProcess.h.

Referenced by selectProducts().

◆ schedule_

edm::propagate_const<std::unique_ptr<Schedule> > edm::SubProcess::schedule_
private

◆ selector_config_id_

ParameterSetID edm::SubProcess::selector_config_id_
private

Definition at line 314 of file SubProcess.h.

Referenced by processAsync(), and SubProcess().

◆ selectors_

detail::TriggerResultsBasedEventSelector edm::SubProcess::selectors_
mutableprivate

Definition at line 315 of file SubProcess.h.

Referenced by doEventAsync(), and SubProcess().

◆ serviceToken_

ServiceToken edm::SubProcess::serviceToken_
private

◆ subProcesses_

std::vector<SubProcess> edm::SubProcess::subProcesses_
private

◆ subProcessParentageHelper_

edm::propagate_const<std::shared_ptr<SubProcessParentageHelper> > edm::SubProcess::subProcessParentageHelper_
private

Definition at line 284 of file SubProcess.h.

Referenced by SubProcess().

◆ thinnedAssociationsHelper_

edm::propagate_const<std::shared_ptr<ThinnedAssociationsHelper> > edm::SubProcess::thinnedAssociationsHelper_
private

Definition at line 283 of file SubProcess.h.

Referenced by SubProcess(), and thinnedAssociationsHelper().

◆ wantAllEvents_

bool edm::SubProcess::wantAllEvents_
private

Definition at line 313 of file SubProcess.h.

Referenced by doEventAsync(), processAsync(), and SubProcess().

edm::SubProcess::beginJob
void beginJob()
Definition: SubProcess.cc:282
edm::SubProcess::processConfiguration_
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: SubProcess.h:286
edm::SubProcess::historyRunOffset_
unsigned int historyRunOffset_
Definition: SubProcess.h:292
TypeToGet
edm::SubProcess::historyLumiOffset_
unsigned int historyLumiOffset_
Definition: SubProcess.h:291
edm::SubProcess::selector_config_id_
ParameterSetID selector_config_id_
Definition: SubProcess.h:314
edm::popSubProcessVParameterSet
std::vector< ParameterSet > popSubProcessVParameterSet(ParameterSet &parameterSet)
Definition: SubProcess.cc:761
edm::getAllTriggerNames
std::vector< std::string > const & getAllTriggerNames()
Definition: getAllTriggerNames.cc:22
edm::SubProcess::processHistoryRegistries_
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
Definition: SubProcess.h:293
edm::PRODUCT_TYPE
Definition: ProductKindOfType.h:5
edm::PathsAndConsumesOfModules::modulesInPreviousProcessesWhoseProductsAreConsumedBy
std::vector< ModuleProcessName > const & modulesInPreviousProcessesWhoseProductsAreConsumedBy(unsigned int moduleID) const
Definition: PathsAndConsumesOfModules.cc:90
edm::SubProcess::branchIDListHelper
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: SubProcess.h:267
edm::ParameterSet::getUntrackedParameterSet
ParameterSet getUntrackedParameterSet(std::string const &name, ParameterSet const &defaultValue) const
Definition: ParameterSet.cc:2136
edm::SubProcess::keptProducts
SelectedProductsForBranchType const & keptProducts() const
Definition: SubProcess.h:77
edm::validateTopLevelParameterSets
void validateTopLevelParameterSets(ParameterSet *processParameterSet)
Definition: validateTopLevelParameterSets.cc:93
edm::SubProcess::pathsAndConsumesOfModules_
PathsAndConsumesOfModules pathsAndConsumesOfModules_
Definition: SubProcess.h:288
edmLumisInFiles.description
description
Definition: edmLumisInFiles.py:11
edm::PrincipalCache::setProcessHistoryRegistry
void setProcessHistoryRegistry(ProcessHistoryRegistry const &phr)
Definition: PrincipalCache.h:87
edm::ProductSelector::initialize
void initialize(ProductSelectorRules const &rules, std::vector< BranchDescription const * > const &branchDescriptions)
Definition: ProductSelector.cc:20
edm::SubProcess::updateBranchIDListHelper
void updateBranchIDListHelper(BranchIDLists const &)
Definition: SubProcess.cc:747
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
edm::BranchListIndexes
std::vector< BranchListIndex > BranchListIndexes
Definition: BranchListIndex.h:18
edm::SubProcess::thinnedAssociationsHelper_
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: SubProcess.h:283
edm::SubProcess::subProcesses_
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:301
cms::cuda::assert
assert(be >=bs)
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:47
edm::ProductSelector::selected
bool selected(BranchDescription const &desc) const
Definition: ProductSelector.cc:55
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
edm::get_underlying_safe
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
Definition: get_underlying_safe.h:41
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
edm::PrincipalCache::runPrincipalPtr
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
Definition: PrincipalCache.cc:28
edm::InRun
Definition: BranchType.h:11
edm::SubProcess::processAsync
void processAsync(WaitingTaskHolder iHolder, EventPrincipal const &e, std::vector< std::shared_ptr< const EventSetupImpl >> const *)
Definition: SubProcess.cc:406
edm::PathsAndConsumesOfModules::initialize
void initialize(Schedule const *, std::shared_ptr< ProductRegistry const >)
Definition: PathsAndConsumesOfModules.cc:16
mps_monitormerge.items
list items
Definition: mps_monitormerge.py:29
groupFilesInBlocks.reverse
reverse
Definition: groupFilesInBlocks.py:131
convertSQLiteXML.runNumber
runNumber
Definition: convertSQLiteXML.py:91
edm::SelectedProducts
std::vector< std::pair< BranchDescription const *, EDGetToken > > SelectedProducts
Definition: SelectedProducts.h:11
edm::for_all
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:14
edm::parameterSet
ParameterSet const & parameterSet(StableProvenance const &provenance, ProcessHistory const &history)
Definition: Provenance.cc:11
edm::SubProcess::wantAllEvents_
bool wantAllEvents_
Definition: SubProcess.h:313
edm::InProcess
Definition: BranchType.h:11
edm::PrincipalCache::runPrincipal
RunPrincipal & runPrincipal(ProcessHistoryID const &phid, RunNumber_t run) const
Definition: PrincipalCache.cc:21
edm::ParameterSet::popParameterSet
std::unique_ptr< ParameterSet > popParameterSet(std::string const &name)
Definition: ParameterSet.cc:121
edm::ProcessContext::setProcessConfiguration
void setProcessConfiguration(ProcessConfiguration const *processConfiguration)
Definition: ProcessContext.cc:19
alignCSCRings.s
s
Definition: alignCSCRings.py:92
edm::SubProcess::droppedBranchIDToKeptBranchID
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID()
Definition: SubProcess.h:263
edm::SubProcess::schedule_
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:299
edm::SubProcess::inUseLumiPrincipals_
std::vector< std::shared_ptr< LuminosityBlockPrincipal > > inUseLumiPrincipals_
Definition: SubProcess.h:297
edm::ProductSelector::initialized
bool initialized() const
Definition: ProductSelector.h:38
std::swap
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
Definition: DataFrameContainer.h:209
edm::BranchIDList
std::vector< BranchID::value_type > BranchIDList
Definition: BranchIDList.h:18
edm::SubProcess::thinnedAssociationsHelper
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper() const
Definition: SubProcess.h:271
edm::SubProcess::selectProducts
void selectProducts(ProductRegistry const &preg, ThinnedAssociationsHelper const &parentThinnedAssociationsHelper, std::map< BranchID, bool > &keepAssociation)
Definition: SubProcess.cc:311
edm::ProductSelector::checkForDuplicateKeptBranch
static void checkForDuplicateKeptBranch(BranchDescription const &desc, std::map< BranchID, BranchDescription const * > &trueBranchIDToKeptBranchDesc)
Definition: ProductSelector.cc:71
TrackValidation_cff.task
task
Definition: TrackValidation_cff.py:252
Service
edm::checkForModuleDependencyCorrectness
void checkForModuleDependencyCorrectness(edm::PathsAndConsumesOfModulesBase const &iPnC, bool iPrintDependencies)
Definition: PathsAndConsumesOfModules.cc:269
WaitingTaskHolder
edm::SubProcess::serviceToken_
ServiceToken serviceToken_
Definition: SubProcess.h:279
edm::SubProcess::esp_
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:298
edm::InEvent
Definition: BranchType.h:11
edm::ProductSelector::fillDroppedToKept
static void fillDroppedToKept(ProductRegistry const &preg, std::map< BranchID, BranchDescription const * > const &trueBranchIDToKeptBranchDesc, std::map< BranchID::value_type, BranchID::value_type > &droppedBranchIDToKeptBranchID_)
Definition: ProductSelector.cc:99
edm::BranchID::value_type
unsigned int value_type
Definition: BranchID.h:16
edm::SubProcess::propagateProducts
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:732
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::SubProcess::keptProducts_
SelectedProductsForBranchType keptProducts_
Definition: SubProcess.h:308
pfDeepBoostedJetPreprocessParams_cfi.lower_bound
lower_bound
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:15
edm::ServiceRegistry::Operate
friend class Operate
Definition: ServiceRegistry.h:54
edm::SubProcess::productSelectorRules_
ProductSelectorRules productSelectorRules_
Definition: SubProcess.h:309
edm::ProcessContext::setParentProcessContext
void setParentProcessContext(ProcessContext const *parentProcessContext)
Definition: ProcessContext.cc:23
edm::make_waiting_task
FunctorWaitingTask< F > * make_waiting_task(F f)
Definition: WaitingTask.h:101
edm::detail::TriggerResultsBasedEventSelector::wantEvent
bool wantEvent(EventForOutput const &e)
Definition: TriggerResultsBasedEventSelector.cc:148
ParameterSet
Definition: Functions.h:16
edm::InLumi
Definition: BranchType.h:11
edm::SubProcess::processParameterSet_
edm::propagate_const< std::unique_ptr< ParameterSet > > processParameterSet_
Definition: SubProcess.h:302
edm::SubProcess::act_table_
std::unique_ptr< ExceptionToActionTable const > act_table_
Definition: SubProcess.h:285
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
edm::SubProcess::keepThisBranch
void keepThisBranch(BranchDescription const &desc, std::map< BranchID, BranchDescription const * > &trueBranchIDToKeptBranchDesc, std::set< BranchID > &keptProductsInEvent)
Definition: SubProcess.cc:353
edm::PrincipalCache::deleteRun
void deleteRun(ProcessHistoryID const &phid, RunNumber_t run)
Definition: PrincipalCache.cc:110
edm::SubProcess::droppedBranchIDToKeptBranchID_
std::map< BranchID::value_type, BranchID::value_type > droppedBranchIDToKeptBranchID_
Definition: SubProcess.h:319
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
edm::EDConsumerBase::updateLookup
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
Definition: EDConsumerBase.cc:112
edm::EDConsumerBase::EDConsumerBase
EDConsumerBase()
Definition: EDConsumerBase.cc:39
edm::SubProcess::selectors_
detail::TriggerResultsBasedEventSelector selectors_
Definition: SubProcess.h:315
cuy.rep
rep
Definition: cuy.py:1190
edm::PrincipalCache::insertForInput
void insertForInput(std::unique_ptr< ProcessBlockPrincipal >)
Definition: PrincipalCache.cc:98
B2GTnPMonitor_cfi.item
item
Definition: B2GTnPMonitor_cfi.py:147
edm::SubProcess::actReg_
std::shared_ptr< ActivityRegistry > actReg_
Definition: SubProcess.h:278
ServiceToken
edm::Principal::clearPrincipal
void clearPrincipal()
Definition: Principal.cc:382
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:204
edm::PrincipalCache::inputProcessBlockPrincipal
ProcessBlockPrincipal & inputProcessBlockPrincipal() const
Definition: PrincipalCache.h:55
edm::detail::configureEventSelector
bool configureEventSelector(edm::ParameterSet const &iPSet, std::string const &iProcessName, std::vector< std::string > const &iAllTriggerNames, edm::detail::TriggerResultsBasedEventSelector &oSelector, ConsumesCollector &&iC)
Definition: TriggerResultsBasedEventSelector.cc:80
edm::ProcessBlockPrincipal::fillProcessBlockPrincipal
void fillProcessBlockPrincipal(std::string const &processName, DelayedReader *reader=nullptr)
Definition: ProcessBlockPrincipal.cc:16
edm::SubProcess::productSelector_
ProductSelector productSelector_
Definition: SubProcess.h:310
EDGetToken
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::detail::registerProperSelectionInfo
ParameterSetID registerProperSelectionInfo(edm::ParameterSet const &iInitial, std::string const &iLabel, std::map< std::string, std::vector< std::pair< std::string, int > > > const &outputModulePathPositions, bool anyProductProduced)
Definition: TriggerResultsBasedEventSelector.cc:163
edm::SubProcess::endJob
void endJob()
Definition: SubProcess.cc:298
hgcal::association
std::tuple< layerClusterToCaloParticle, caloParticleToLayerCluster > association
Definition: LayerClusterAssociatorByEnergyScoreImpl.h:44
edm::SubProcess::parentToChildPhID_
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:300
edm::ProcessHistoryID
Hash< ProcessHistoryType > ProcessHistoryID
Definition: ProcessHistoryID.h:8
edm::nonConsumedUnscheduledModules
std::vector< ModuleDescription const * > nonConsumedUnscheduledModules(edm::PathsAndConsumesOfModulesBase const &iPnC, std::vector< ModuleProcessName > &consumedByChildren)
Definition: PathsAndConsumesOfModules.cc:165
edm::SubProcess::parentPreg_
std::shared_ptr< ProductRegistry const > parentPreg_
Definition: SubProcess.h:280
edm::PathsAndConsumesOfModules::removeModules
void removeModules(std::vector< ModuleDescription const * > const &modules)
Definition: PathsAndConsumesOfModules.cc:53
edm::SubProcess::fixBranchIDListsForEDAliases
void fixBranchIDListsForEDAliases(std::map< BranchID::value_type, BranchID::value_type > const &droppedBranchIDToKeptBranchID)
Definition: SubProcess.cc:372
edm::PrincipalCache::getAvailableLumiPrincipalPtr
std::shared_ptr< LuminosityBlockPrincipal > getAvailableLumiPrincipalPtr()
Definition: PrincipalCache.cc:50
edm::SubProcess::branchIDListHelper_
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: SubProcess.h:282
Data_TkAlMinBias_Run2018C_PromptReco_v3_cff.maxEvents
maxEvents
Definition: Data_TkAlMinBias_Run2018C_PromptReco_v3_cff.py:3
edm::SubProcess::historyAppenders_
std::vector< HistoryAppender > historyAppenders_
Definition: SubProcess.h:294
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::PrincipalCache::processBlockPrincipal
ProcessBlockPrincipal & processBlockPrincipal() const
Definition: PrincipalCache.h:54
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:155
edm::SubProcess::processContext_
ProcessContext processContext_
Definition: SubProcess.h:287
edm::PrincipalCache::eventPrincipal
EventPrincipal & eventPrincipal(unsigned int iStreamIndex) const
Definition: PrincipalCache.h:70
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
edm::PrincipalCache::insert
void insert(std::unique_ptr< ProcessBlockPrincipal >)
Definition: PrincipalCache.cc:96
edm::SubProcess::subProcessParentageHelper_
edm::propagate_const< std::shared_ptr< SubProcessParentageHelper > > subProcessParentageHelper_
Definition: SubProcess.h:284
edm::EventSelectionIDVector
std::vector< EventSelectionID > EventSelectionIDVector
Definition: EventSelectionID.h:16
MatrixUtil.merge
def merge(dictlist, TELL=False)
Definition: MatrixUtil.py:201
edm::PathsAndConsumesOfModulesBase::allModules
std::vector< ModuleDescription const * > const & allModules() const
Definition: PathsAndConsumesOfModulesBase.h:42
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
benchmark_cfg.fb
fb
Definition: benchmark_cfg.py:14
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
edm::PrincipalCache::setNumberOfConcurrentPrincipals
void setNumberOfConcurrentPrincipals(PreallocationConfiguration const &)
Definition: PrincipalCache.cc:17
edm::SubProcess::preg_
std::shared_ptr< ProductRegistry const > preg_
Definition: SubProcess.h:281
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316
edm::SubProcess::principalCache_
PrincipalCache principalCache_
Definition: SubProcess.h:295