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
 
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::vector< ModuleDescription const * > &modules, 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 125 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 227 of file SubProcess.cc.

227  {
228  // If event selection is being used, the SubProcess class reads TriggerResults
229  // object(s) in the parent process from the event. This next call is needed for
230  // getByToken to work properly. Normally, this is done by the worker, but since
231  // a SubProcess is not a module, it has no worker.
232  updateLookup(InEvent, *parentPreg_->productLookup(InEvent), false);
233 
234  if (!droppedBranchIDToKeptBranchID().empty()) {
236  }
238  schedule_->convertCurrentProcessAlias(processConfiguration_->processName());
240  //NOTE: this may throw
242  actReg_->preBeginJobSignal_(pathsAndConsumesOfModules_, processContext_);
243  schedule_->beginJob(*preg_, esp_->recordsToProxyIndices());
244  for_all(subProcesses_, [](auto& subProcess) { subProcess.doBeginJob(); });
245  }

References actReg_, edm::checkForModuleDependencyCorrectness(), droppedBranchIDToKeptBranchID(), esp_, fixBranchIDListsForEDAliases(), edm::for_all(), edm::InEvent, edm::PathsAndConsumesOfModules::initialize(), parentPreg_, pathsAndConsumesOfModules_, preg_, processConfiguration_, 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 266 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 263 of file SubProcess.h.

263  {
265  }

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 239 of file SubProcess.h.

239  {
241  schedule_->clearCounters();
242  for_all(subProcesses_, [](auto& subProcess) { subProcess.clearCounters(); });
243  }

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

◆ clearProcessBlockPrincipal()

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

Definition at line 555 of file SubProcess.cc.

555  {
556  ProcessBlockPrincipal& processBlockPrincipal = principalCache_.processBlockPrincipal(processBlockType);
557  processBlockPrincipal.clearPrincipal();
558  for (auto& s : subProcesses_) {
559  s.clearProcessBlockPrincipal(processBlockType);
560  }
561  }

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

◆ closeOutputFiles()

void edm::SubProcess::closeOutputFiles ( )
inline

Definition at line 138 of file SubProcess.h.

138  {
140  schedule_->closeOutputFiles();
141  for_all(subProcesses_, [](auto& subProcess) { subProcess.closeOutputFiles(); });
142  }

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

◆ deleteLumiFromCache()

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

Definition at line 617 of file SubProcess.cc.

617  {
618  //release from list but stay around till end of routine
619  auto lb = std::move(inUseLumiPrincipals_[principal.index()]);
620  for (auto& s : subProcesses_) {
621  s.deleteLumiFromCache(*lb);
622  }
623  lb->clearPrincipal();
624  }

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

◆ deleteRunFromCache()

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

Definition at line 546 of file SubProcess.cc.

546  {
547  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
548  assert(it != parentToChildPhID_.end());
549  auto const& childPhID = it->second;
550  principalCache_.deleteRun(childPhID, runNumber);
552  [&childPhID, runNumber](auto& subProcess) { subProcess.deleteRunFromCache(childPhID, runNumber); });
553  }

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

◆ doBeginJob()

void edm::SubProcess::doBeginJob ( )

Definition at line 223 of file SubProcess.cc.

223 { this->beginJob(); }

References beginJob().

◆ doBeginLuminosityBlockAsync()

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

Definition at line 563 of file SubProcess.cc.

563  {
565 
566  LuminosityBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
567  auto aux = parentPrincipal.aux();
568  aux.setProcessHistoryID(parentPrincipal.processHistoryID());
570  lbpp->setAux(aux);
571  auto& processHistoryRegistry = processHistoryRegistries_[historyLumiOffset_ + lbpp->index()];
572  inUseLumiPrincipals_[parentPrincipal.index()] = lbpp;
573  processHistoryRegistry.registerProcessHistory(parentPrincipal.processHistory());
574  lbpp->fillLuminosityBlockPrincipal(&parentPrincipal.processHistory(), parentPrincipal.reader());
575  lbpp->setRunPrincipal(principalCache_.runPrincipalPtr());
576  LuminosityBlockPrincipal& lbp = *lbpp;
577  propagateProducts(InLumi, parentPrincipal, lbp);
578 
579  std::vector<std::shared_ptr<const EventSetupImpl>> const* eventSetupImpls = iTransitionInfo.eventSetupImpls();
580  LumiTransitionInfo transitionInfo(lbp, *((*eventSetupImpls)[esp_->subProcessIndex()]), eventSetupImpls);
581  using Traits = OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalBegin>;
582  beginGlobalTransitionAsync<Traits>(std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_);
583  }

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 413 of file SubProcess.cc.

414  {
416 
417  ProcessBlockPrincipal& processBlockPrincipal = principalCache_.inputProcessBlockPrincipal();
418  ProcessBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
419  processBlockPrincipal.fillProcessBlockPrincipal(parentPrincipal.processName(), parentPrincipal.reader());
420  propagateProducts(InProcess, parentPrincipal, processBlockPrincipal);
421 
422  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
423  using Traits = OccurrenceTraits<ProcessBlockPrincipal, BranchActionProcessBlockInput>;
424  beginGlobalTransitionAsync<Traits>(std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_);
425  }

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 428 of file SubProcess.cc.

429  {
431 
432  ProcessBlockPrincipal& processBlockPrincipal = principalCache_.processBlockPrincipal();
433  ProcessBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
434  processBlockPrincipal.fillProcessBlockPrincipal(processConfiguration_->processName());
435  propagateProducts(InProcess, parentPrincipal, processBlockPrincipal);
436 
437  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
438  using Traits = OccurrenceTraits<ProcessBlockPrincipal, BranchActionGlobalBegin>;
439  beginGlobalTransitionAsync<Traits>(std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_);
440  }

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

◆ doBeginRunAsync()

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

Definition at line 455 of file SubProcess.cc.

455  {
457 
458  RunPrincipal const& parentPrincipal = iTransitionInfo.principal();
459  auto aux = std::make_shared<RunAuxiliary>(parentPrincipal.aux());
460  aux->setProcessHistoryID(parentPrincipal.processHistoryID());
461  auto rpp = std::make_shared<RunPrincipal>(aux,
462  preg_,
464  &(historyAppenders_[historyRunOffset_ + parentPrincipal.index()]),
465  parentPrincipal.index(),
466  false);
467  auto& processHistoryRegistry = processHistoryRegistries_[historyRunOffset_ + parentPrincipal.index()];
468  processHistoryRegistry.registerProcessHistory(parentPrincipal.processHistory());
469  rpp->fillRunPrincipal(processHistoryRegistry, parentPrincipal.reader());
470  principalCache_.insert(rpp);
471 
472  ProcessHistoryID const& parentInputReducedPHID = parentPrincipal.reducedProcessHistoryID();
473  ProcessHistoryID const& inputReducedPHID = rpp->reducedProcessHistoryID();
474 
475  parentToChildPhID_.insert(std::make_pair(parentInputReducedPHID, inputReducedPHID));
476 
477  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
478  propagateProducts(InRun, parentPrincipal, rp);
479 
480  RunTransitionInfo transitionInfo(rp, esp_->eventSetupImpl());
481  using Traits = OccurrenceTraits<RunPrincipal, BranchActionGlobalBegin>;
482  beginGlobalTransitionAsync<Traits>(std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_);
483  }

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 626 of file SubProcess.cc.

626  {
628  schedule_->beginStream(iID);
629  for_all(subProcesses_, [iID](auto& subProcess) { subProcess.doBeginStream(iID); });
630  }

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

◆ doEndJob()

void edm::SubProcess::doEndJob ( )

Definition at line 225 of file SubProcess.cc.

225 { endJob(); }

References endJob().

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

◆ doEndLuminosityBlockAsync()

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

Definition at line 585 of file SubProcess.cc.

587  {
588  LuminosityBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
589  LuminosityBlockPrincipal& lbp = *inUseLumiPrincipals_[parentPrincipal.index()];
590  propagateProducts(InLumi, parentPrincipal, lbp);
591 
592  std::vector<std::shared_ptr<const EventSetupImpl>> const* eventSetupImpls = iTransitionInfo.eventSetupImpls();
593  LumiTransitionInfo transitionInfo(lbp, *((*eventSetupImpls)[esp_->subProcessIndex()]), eventSetupImpls);
594  using Traits = OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalEnd>;
595  endGlobalTransitionAsync<Traits>(
596  std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
597  }

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 442 of file SubProcess.cc.

444  {
445  ProcessBlockPrincipal& processBlockPrincipal = principalCache_.processBlockPrincipal();
446  ProcessBlockPrincipal const& parentPrincipal = iTransitionInfo.principal();
447  propagateProducts(InProcess, parentPrincipal, processBlockPrincipal);
448 
449  ProcessBlockTransitionInfo transitionInfo(processBlockPrincipal);
450  using Traits = OccurrenceTraits<ProcessBlockPrincipal, BranchActionGlobalEnd>;
451  endGlobalTransitionAsync<Traits>(
452  std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
453  }

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 485 of file SubProcess.cc.

487  {
488  RunPrincipal const& parentPrincipal = iTransitionInfo.principal();
489  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
490  propagateProducts(InRun, parentPrincipal, rp);
491 
492  RunTransitionInfo transitionInfo(rp, esp_->eventSetupImpl());
493  using Traits = OccurrenceTraits<RunPrincipal, BranchActionGlobalEnd>;
494  endGlobalTransitionAsync<Traits>(
495  std::move(iHolder), *schedule_, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
496  }

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 632 of file SubProcess.cc.

632  {
634  schedule_->endStream(iID);
635  for_all(subProcesses_, [iID](auto& subProcess) { subProcess.doEndStream(iID); });
636  }

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 339 of file SubProcess.cc.

341  {
343  /* BEGIN relevant bits from OutputModule::doEvent */
344  if (!wantAllEvents_) {
345  EventForOutput e(ep, ModuleDescription(), nullptr);
346  e.setConsumer(this);
347  if (!selectors_.wantEvent(e)) {
348  return;
349  }
350  }
351  processAsync(std::move(iHolder), ep, iEventSetupImpls);
352  /* END relevant bits from OutputModule::doEvent */
353  }

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 660 of file SubProcess.cc.

662  {
663  using Traits = OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamBegin>;
664 
665  LuminosityBlockPrincipal& lbp = *inUseLumiPrincipals_[iTransitionInfo.principal().index()];
666  std::vector<std::shared_ptr<const EventSetupImpl>> const* eventSetupImpls = iTransitionInfo.eventSetupImpls();
667  LumiTransitionInfo transitionInfo(lbp, *((*eventSetupImpls)[esp_->subProcessIndex()]), eventSetupImpls);
668  beginStreamTransitionAsync<Traits>(
669  std::move(iHolder), *schedule_, id, transitionInfo, serviceToken_, subProcesses_);
670  }

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 638 of file SubProcess.cc.

638  {
639  using Traits = OccurrenceTraits<RunPrincipal, BranchActionStreamBegin>;
640 
641  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
642 
643  RunTransitionInfo transitionInfo(rp, esp_->eventSetupImpl());
644  beginStreamTransitionAsync<Traits>(
645  std::move(iHolder), *schedule_, id, transitionInfo, serviceToken_, subProcesses_);
646  }

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 672 of file SubProcess.cc.

675  {
676  LuminosityBlockPrincipal& lbp = *inUseLumiPrincipals_[iTransitionInfo.principal().index()];
677  using Traits = OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamEnd>;
678  std::vector<std::shared_ptr<const EventSetupImpl>> const* eventSetupImpls = iTransitionInfo.eventSetupImpls();
679  LumiTransitionInfo transitionInfo(lbp, *((*eventSetupImpls)[esp_->subProcessIndex()]), eventSetupImpls);
680  endStreamTransitionAsync<Traits>(
681  std::move(iHolder), *schedule_, id, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
682  }

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 648 of file SubProcess.cc.

651  {
652  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
653  using Traits = OccurrenceTraits<RunPrincipal, BranchActionStreamEnd>;
654 
655  RunTransitionInfo transitionInfo(rp, esp_->eventSetupImpl());
656  endStreamTransitionAsync<Traits>(
657  std::move(iHolder), *schedule_, id, transitionInfo, serviceToken_, subProcesses_, cleaningUpAfterException);
658  }

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 259 of file SubProcess.h.

259  {
261  }

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 204 of file SubProcess.h.

204  {
206  schedule_->enableEndPaths(active);
207  for_all(subProcesses_, [active](auto& subProcess) { subProcess.enableEndPaths(active); });
208  }

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

◆ endJob()

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

Definition at line 247 of file SubProcess.cc.

247  {
249  ExceptionCollector c(
250  "Multiple exceptions were thrown while executing endJob. An exception message follows for each.");
251  schedule_->endJob(c);
252  for (auto& subProcess : subProcesses_) {
253  c.call([&subProcess]() { subProcess.doEndJob(); });
254  }
255  if (c.hasThrown()) {
256  c.rethrow();
257  }
258  }

References HltBtagPostValidation_cff::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 211 of file SubProcess.h.

211  {
213  return schedule_->endPathsEnabled();
214  }

References schedule_, and serviceToken_.

◆ fixBranchIDListsForEDAliases()

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

Definition at line 321 of file SubProcess.cc.

322  {
323  // Check for branches dropped while an EDAlias was kept.
324  // Replace BranchID of each dropped branch with that of the kept alias.
325  for (BranchIDList& branchIDList : branchIDListHelper_->mutableBranchIDLists()) {
326  for (BranchID::value_type& branchID : branchIDList) {
327  std::map<BranchID::value_type, BranchID::value_type>::const_iterator iter =
328  droppedBranchIDToKeptBranchID.find(branchID);
329  if (iter != droppedBranchIDToKeptBranchID.end()) {
330  branchID = iter->second;
331  }
332  }
333  }
334  for_all(subProcesses_, [&droppedBranchIDToKeptBranchID](auto& subProcess) {
335  subProcess.fixBranchIDListsForEDAliases(droppedBranchIDToKeptBranchID);
336  });
337  }

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 218 of file SubProcess.h.

218  {
220  schedule_->getTriggerReport(rep);
221  }

References cuy::rep, schedule_, and serviceToken_.

◆ keepThisBranch()

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

Definition at line 302 of file SubProcess.cc.

304  {
305  ProductSelector::checkForDuplicateKeptBranch(desc, trueBranchIDToKeptBranchDesc);
306 
307  if (desc.branchType() == InEvent) {
308  if (desc.produced()) {
309  keptProductsInEvent.insert(desc.originalBranchID());
310  } else {
311  keptProductsInEvent.insert(desc.branchID());
312  }
313  }
314  EDGetToken token = consumes(TypeToGet{desc.unwrappedTypeID(), PRODUCT_TYPE},
315  InputTag{desc.moduleLabel(), desc.productInstanceName(), desc.processName()});
316 
317  // Now put it in the list of selected branches.
318  keptProducts_[desc.branchType()].push_back(std::make_pair(&desc, token));
319  }

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 145 of file SubProcess.h.

145  {
147  schedule_->openOutputFiles(fb);
148  for_all(subProcesses_, [&fb](auto& subProcess) { subProcess.openOutputFiles(fb); });
149  }

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 355 of file SubProcess.cc.

357  {
358  EventAuxiliary aux(principal.aux());
359  aux.setProcessHistoryID(principal.processHistoryID());
360 
361  EventSelectionIDVector esids{principal.eventSelectionIDs()};
362  if (principal.productRegistry().anyProductProduced() || !wantAllEvents_) {
363  esids.push_back(selector_config_id_);
364  }
365 
366  EventPrincipal& ep = principalCache_.eventPrincipal(principal.streamID().value());
367  auto& processHistoryRegistry = processHistoryRegistries_[principal.streamID().value()];
368  processHistoryRegistry.registerProcessHistory(principal.processHistory());
369  BranchListIndexes bli(principal.branchListIndexes());
370  branchIDListHelper_->fixBranchListIndexes(bli);
371  bool deepCopyRetriever = false;
372  ep.fillEventPrincipal(
373  aux,
374  &principal.processHistory(),
375  std::move(esids),
376  std::move(bli),
377  *(principal.productProvenanceRetrieverPtr()), //NOTE: this transfers the per product provenance
378  principal.reader(),
379  deepCopyRetriever);
380  ep.setLuminosityBlockPrincipal(inUseLumiPrincipals_[principal.luminosityBlockPrincipal().index()].get());
381  propagateProducts(InEvent, principal, ep);
382 
383  WaitingTaskHolder finalizeEventTask(
384  make_waiting_task(tbb::task::allocate_root(), [&ep, iHolder](std::exception_ptr const* iPtr) mutable {
385  ep.clearEventPrincipal();
386  if (iPtr) {
387  iHolder.doneWaiting(*iPtr);
388  } else {
389  iHolder.doneWaiting(std::exception_ptr());
390  }
391  }));
392  WaitingTaskHolder afterProcessTask;
393  if (subProcesses_.empty()) {
394  afterProcessTask = std::move(finalizeEventTask);
395  } else {
396  afterProcessTask = WaitingTaskHolder(
397  make_waiting_task(tbb::task::allocate_root(),
398  [this, &ep, finalizeEventTask, iEventSetupImpls](std::exception_ptr const* iPtr) mutable {
399  if (not iPtr) {
400  for (auto& subProcess : boost::adaptors::reverse(subProcesses_)) {
401  subProcess.doEventAsync(finalizeEventTask, ep, iEventSetupImpls);
402  }
403  } else {
404  finalizeEventTask.doneWaiting(*iPtr);
405  }
406  }));
407  }
408  EventTransitionInfo info(ep, *((*iEventSetupImpls)[esp_->subProcessIndex()]));
409  schedule_->processOneEventAsync(std::move(afterProcessTask), ep.streamID().value(), info, serviceToken_);
410  }

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::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 684 of file SubProcess.cc.

684  {
685  SelectedProducts const& keptVector = keptProducts()[type];
686  for (auto const& item : keptVector) {
687  BranchDescription const& desc = *item.first;
688  ProductResolverBase const* parentProductResolver = parentPrincipal.getProductResolver(desc.branchID());
689  if (parentProductResolver != nullptr) {
690  ProductResolverBase* productResolver = principal.getModifiableProductResolver(desc.branchID());
691  if (productResolver != nullptr) {
692  //Propagate the per event(run)(lumi)(processBlock) data for this product to the subprocess.
693  productResolver->connectTo(*parentProductResolver, &parentPrincipal);
694  }
695  }
696  }
697  }

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 157 of file SubProcess.h.

157  {
159  schedule_->respondToCloseInputFile(fb);
160  for_all(subProcesses_, [&fb](auto& subProcess) { subProcess.respondToCloseInputFile(fb); });
161  }

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

◆ respondToOpenInputFile()

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

Definition at line 706 of file SubProcess.cc.

706  {
708  schedule_->respondToOpenInputFile(fb);
709  for_all(subProcesses_, [&fb](auto& subProcess) { subProcess.respondToOpenInputFile(fb); });
710  }

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 260 of file SubProcess.cc.

262  {
264  return;
265  productSelector_.initialize(productSelectorRules_, preg.allBranchDescriptions());
266 
267  // TODO: See if we can collapse keptProducts_ and productSelector_ into a
268  // single object. See the notes in the header for ProductSelector
269  // for more information.
270 
271  std::map<BranchID, BranchDescription const*> trueBranchIDToKeptBranchDesc;
272  std::vector<BranchDescription const*> associationDescriptions;
273  std::set<BranchID> keptProductsInEvent;
274 
275  for (auto const& it : preg.productList()) {
276  BranchDescription const& desc = it.second;
277  if (desc.transient()) {
278  // if the class of the branch is marked transient, output nothing
279  } else if (!desc.present() && !desc.produced()) {
280  // else if the branch containing the product has been previously dropped,
281  // output nothing
282  } else if (desc.unwrappedType() == typeid(ThinnedAssociation)) {
283  associationDescriptions.push_back(&desc);
284  } else if (productSelector_.selected(desc)) {
285  keepThisBranch(desc, trueBranchIDToKeptBranchDesc, keptProductsInEvent);
286  }
287  }
288 
289  parentThinnedAssociationsHelper.selectAssociationProducts(
290  associationDescriptions, keptProductsInEvent, keepAssociation);
291 
292  for (auto association : associationDescriptions) {
293  if (keepAssociation[association->branchID()]) {
294  keepThisBranch(*association, trueBranchIDToKeptBranchDesc, keptProductsInEvent);
295  }
296  }
297 
298  // Now fill in a mapping needed in the case that a branch was dropped while its EDAlias was kept.
299  ProductSelector::fillDroppedToKept(preg, trueBranchIDToKeptBranchDesc, droppedBranchIDToKeptBranchID_);
300  }

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 164 of file SubProcess.h.

164  {
166  if (schedule_->shouldWeCloseOutput()) {
167  return true;
168  }
169  for (auto const& subProcess : subProcesses_) {
170  if (subProcess.shouldWeCloseOutput()) {
171  return true;
172  }
173  }
174  return false;
175  }

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 225 of file SubProcess.h.

225  {
227  if (schedule_->terminate()) {
228  return true;
229  }
230  for (auto const& subProcess : subProcesses_) {
231  if (subProcess.terminate()) {
232  return true;
233  }
234  }
235  return false;
236  }

References schedule_, serviceToken_, and subProcesses_.

◆ thinnedAssociationsHelper() [1/2]

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

Definition at line 270 of file SubProcess.h.

270  {
272  }

References edm::get_underlying_safe(), and thinnedAssociationsHelper_.

◆ thinnedAssociationsHelper() [2/2]

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

Definition at line 267 of file SubProcess.h.

267  {
269  }

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 187 of file SubProcess.h.

187 { 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 197 of file SubProcess.h.

197  {
199  return schedule_->totalEventsFailed();
200  }

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 190 of file SubProcess.h.

190  {
192  return schedule_->totalEventsPassed();
193  }

References schedule_, and serviceToken_.

◆ updateBranchIDListHelper()

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

Definition at line 699 of file SubProcess.cc.

699  {
700  branchIDListHelper_->updateFromParent(branchIDLists);
702  [this](auto& subProcess) { subProcess.updateBranchIDListHelper(branchIDListHelper_->branchIDLists()); });
703  }

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

Referenced by SubProcess().

◆ writeLumiAsync()

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

Definition at line 599 of file SubProcess.cc.

599  {
601 
602  auto l = inUseLumiPrincipals_[principal.index()];
603  auto subTasks =
604  edm::make_waiting_task(tbb::task::allocate_root(), [this, l, task](std::exception_ptr const* iExcept) mutable {
605  if (iExcept) {
606  task.doneWaiting(*iExcept);
607  } else {
608  ServiceRegistry::Operate operateWriteLumi(serviceToken_);
609  for (auto& s : subProcesses_) {
610  s.writeLumiAsync(task, *l);
611  }
612  }
613  });
614  schedule_->writeLumiAsync(WaitingTaskHolder(subTasks), *l, &processContext_, actReg_.get());
615  }

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 498 of file SubProcess.cc.

498  {
500 
501  auto subTasks = edm::make_waiting_task(tbb::task::allocate_root(),
502  [this, task, processBlockType](std::exception_ptr const* iExcept) mutable {
503  if (iExcept) {
504  task.doneWaiting(*iExcept);
505  } else {
507  for (auto& s : subProcesses_) {
508  s.writeProcessBlockAsync(task, processBlockType);
509  }
510  }
511  });
512  schedule_->writeProcessBlockAsync(WaitingTaskHolder(subTasks),
513  principalCache_.processBlockPrincipal(processBlockType),
515  actReg_.get());
516  }

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 518 of file SubProcess.cc.

521  {
523  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
524  assert(it != parentToChildPhID_.end());
525  auto const& childPhID = it->second;
526 
527  auto subTasks = edm::make_waiting_task(
528  tbb::task::allocate_root(),
529  [this, childPhID, runNumber, task, mergeableRunProductMetadata](std::exception_ptr const* iExcept) mutable {
530  if (iExcept) {
531  task.doneWaiting(*iExcept);
532  } else {
533  ServiceRegistry::Operate operateWriteRun(serviceToken_);
534  for (auto& s : subProcesses_) {
535  s.writeRunAsync(task, childPhID, runNumber, mergeableRunProductMetadata);
536  }
537  }
538  });
539  schedule_->writeRunAsync(WaitingTaskHolder(subTasks),
542  actReg_.get(),
543  mergeableRunProductMetadata);
544  }

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 281 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 315 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 290 of file SubProcess.h.

Referenced by doBeginRunAsync(), and SubProcess().

◆ historyLumiOffset_

unsigned int edm::SubProcess::historyLumiOffset_
private

Definition at line 287 of file SubProcess.h.

Referenced by doBeginLuminosityBlockAsync(), and SubProcess().

◆ historyRunOffset_

unsigned int edm::SubProcess::historyRunOffset_
private

Definition at line 288 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 304 of file SubProcess.h.

Referenced by keepThisBranch(), and keptProducts().

◆ parentPreg_

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

Definition at line 276 of file SubProcess.h.

Referenced by beginJob().

◆ parentToChildPhID_

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

Definition at line 296 of file SubProcess.h.

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

◆ pathsAndConsumesOfModules_

PathsAndConsumesOfModules edm::SubProcess::pathsAndConsumesOfModules_
private

Definition at line 284 of file SubProcess.h.

Referenced by beginJob().

◆ preg_

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

Definition at line 277 of file SubProcess.h.

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

◆ principalCache_

PrincipalCache edm::SubProcess::principalCache_
private

◆ processConfiguration_

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

Definition at line 282 of file SubProcess.h.

Referenced by beginJob(), doBeginRunAsync(), 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 298 of file SubProcess.h.

Referenced by SubProcess().

◆ productSelector_

ProductSelector edm::SubProcess::productSelector_
private

Definition at line 306 of file SubProcess.h.

Referenced by selectProducts().

◆ productSelectorRules_

ProductSelectorRules edm::SubProcess::productSelectorRules_
private

Definition at line 305 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 310 of file SubProcess.h.

Referenced by processAsync(), and SubProcess().

◆ selectors_

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

Definition at line 311 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 280 of file SubProcess.h.

Referenced by SubProcess().

◆ thinnedAssociationsHelper_

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

Definition at line 279 of file SubProcess.h.

Referenced by SubProcess(), and thinnedAssociationsHelper().

◆ wantAllEvents_

bool edm::SubProcess::wantAllEvents_
private

Definition at line 309 of file SubProcess.h.

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

edm::SubProcess::beginJob
void beginJob()
Definition: SubProcess.cc:227
edm::SubProcess::processConfiguration_
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: SubProcess.h:282
edm::SubProcess::historyRunOffset_
unsigned int historyRunOffset_
Definition: SubProcess.h:288
TypeToGet
edm::SubProcess::historyLumiOffset_
unsigned int historyLumiOffset_
Definition: SubProcess.h:287
edm::SubProcess::selector_config_id_
ParameterSetID selector_config_id_
Definition: SubProcess.h:310
edm::popSubProcessVParameterSet
std::vector< ParameterSet > popSubProcessVParameterSet(ParameterSet &parameterSet)
Definition: SubProcess.cc:713
edm::getAllTriggerNames
std::vector< std::string > const & getAllTriggerNames()
Definition: getAllTriggerNames.cc:22
edm::SubProcess::processHistoryRegistries_
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
Definition: SubProcess.h:289
edm::PRODUCT_TYPE
Definition: ProductKindOfType.h:5
edm::SubProcess::branchIDListHelper
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: SubProcess.h:263
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:89
edm::SubProcess::pathsAndConsumesOfModules_
PathsAndConsumesOfModules pathsAndConsumesOfModules_
Definition: SubProcess.h:284
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:699
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89353
hgcal::association
std::tuple< layerClusterToCaloParticle, caloParticleToLayerCluster > association
Definition: LayerClusterAssociatorByEnergyScoreImpl.h:44
edm::BranchListIndexes
std::vector< BranchListIndex > BranchListIndexes
Definition: BranchListIndex.h:18
edm::SubProcess::thinnedAssociationsHelper_
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: SubProcess.h:279
edm::SubProcess::subProcesses_
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:297
cms::cuda::assert
assert(be >=bs)
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:46
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::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:355
edm::PathsAndConsumesOfModules::initialize
void initialize(Schedule const *, std::shared_ptr< ProductRegistry const >)
Definition: PathsAndConsumesOfModules.cc:14
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::SubProcess::wantAllEvents_
bool wantAllEvents_
Definition: SubProcess.h:309
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:259
edm::SubProcess::schedule_
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:295
edm::SubProcess::inUseLumiPrincipals_
std::vector< std::shared_ptr< LuminosityBlockPrincipal > > inUseLumiPrincipals_
Definition: SubProcess.h:293
edm::ProductSelector::initialized
bool initialized() const
Definition: ProductSelector.h:38
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:267
edm::SubProcess::selectProducts
void selectProducts(ProductRegistry const &preg, ThinnedAssociationsHelper const &parentThinnedAssociationsHelper, std::map< BranchID, bool > &keepAssociation)
Definition: SubProcess.cc:260
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:130
WaitingTaskHolder
edm::SubProcess::serviceToken_
ServiceToken serviceToken_
Definition: SubProcess.h:275
edm::SubProcess::esp_
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:294
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::make_waiting_task
FunctorWaitingTask< F > * make_waiting_task(ALLOC &&iAlloc, F f)
Definition: WaitingTask.h:87
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:684
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::SubProcess::keptProducts_
SelectedProductsForBranchType keptProducts_
Definition: SubProcess.h:304
edm::ServiceRegistry::Operate
friend class Operate
Definition: ServiceRegistry.h:54
edm::SubProcess::productSelectorRules_
ProductSelectorRules productSelectorRules_
Definition: SubProcess.h:305
edm::ProcessContext::setParentProcessContext
void setParentProcessContext(ProcessContext const *parentProcessContext)
Definition: ProcessContext.cc:23
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:298
edm::SubProcess::act_table_
std::unique_ptr< ExceptionToActionTable const > act_table_
Definition: SubProcess.h:281
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:39
edm::SubProcess::keepThisBranch
void keepThisBranch(BranchDescription const &desc, std::map< BranchID, BranchDescription const * > &trueBranchIDToKeptBranchDesc, std::set< BranchID > &keptProductsInEvent)
Definition: SubProcess.cc:302
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:315
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
edm::EDConsumerBase::updateLookup
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
Definition: EDConsumerBase.cc:111
edm::EDConsumerBase::EDConsumerBase
EDConsumerBase()
Definition: EDConsumerBase.cc:38
edm::SubProcess::selectors_
detail::TriggerResultsBasedEventSelector selectors_
Definition: SubProcess.h:311
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
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
edm::SubProcess::actReg_
std::shared_ptr< ActivityRegistry > actReg_
Definition: SubProcess.h:274
ServiceToken
edm::Principal::clearPrincipal
void clearPrincipal()
Definition: Principal.cc:373
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:15
edm::SubProcess::productSelector_
ProductSelector productSelector_
Definition: SubProcess.h:306
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:247
edm::SubProcess::parentToChildPhID_
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:296
edm::ProcessHistoryID
Hash< ProcessHistoryType > ProcessHistoryID
Definition: ProcessHistoryID.h:8
edm::SubProcess::parentPreg_
std::shared_ptr< ProductRegistry const > parentPreg_
Definition: SubProcess.h:276
edm::SubProcess::fixBranchIDListsForEDAliases
void fixBranchIDListsForEDAliases(std::map< BranchID::value_type, BranchID::value_type > const &droppedBranchIDToKeptBranchID)
Definition: SubProcess.cc:321
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:278
edm::parameterSet
ParameterSet const & parameterSet(Provenance const &provenance, ProcessHistory const &history)
Definition: Provenance.cc:11
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:290
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:153
edm::SubProcess::processContext_
ProcessContext processContext_
Definition: SubProcess.h:283
edm::PrincipalCache::eventPrincipal
EventPrincipal & eventPrincipal(unsigned int iStreamIndex) const
Definition: PrincipalCache.h:70
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:280
edm::EventSelectionIDVector
std::vector< EventSelectionID > EventSelectionIDVector
Definition: EventSelectionID.h:16
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:277
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:318
edm::SubProcess::principalCache_
PrincipalCache principalCache_
Definition: SubProcess.h:291