CMS 3D CMS Logo

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

#include <SubProcess.h>

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

Public Member Functions

void clearCounters ()
 Clear all the counters in the trigger report. More...
 
void closeOutputFiles ()
 
void deleteLumiFromCache (ProcessHistoryID const &parentPhID, int runNumber, int lumiNumber)
 
void deleteRunFromCache (ProcessHistoryID const &parentPhID, int runNumber)
 
void doBeginJob ()
 
void doBeginLuminosityBlock (LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
 
void doBeginLuminosityBlockAsync (WaitingTaskHolder iHolder, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
 
void doBeginRun (RunPrincipal const &principal, IOVSyncValue const &ts)
 
void doBeginRunAsync (WaitingTaskHolder iHolder, RunPrincipal const &principal, IOVSyncValue const &ts)
 
void doBeginStream (unsigned int)
 
void doEndJob ()
 
void doEndLuminosityBlock (LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
void doEndLuminosityBlockAsync (WaitingTaskHolder iHolder, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
void doEndRun (RunPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
void doEndRunAsync (WaitingTaskHolder iHolder, RunPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
void doEndStream (unsigned int)
 
void doEventAsync (WaitingTaskHolder iHolder, EventPrincipal const &principal)
 
void doStreamBeginLuminosityBlock (unsigned int iID, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
 
void doStreamBeginLuminosityBlockAsync (WaitingTaskHolder iHolder, unsigned int iID, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
 
void doStreamBeginRun (unsigned int iID, RunPrincipal const &principal, IOVSyncValue const &ts)
 
void doStreamBeginRunAsync (WaitingTaskHolder iHolder, unsigned int iID, RunPrincipal const &principal, IOVSyncValue const &ts)
 
void doStreamEndLuminosityBlock (unsigned int iID, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
void doStreamEndLuminosityBlockAsync (WaitingTaskHolder iHolder, unsigned int iID, LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
void doStreamEndRun (unsigned int iID, RunPrincipal const &principal, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
void doStreamEndRunAsync (WaitingTaskHolder iHolder, unsigned int iID, RunPrincipal const &principal, IOVSyncValue const &ts, 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 const &)=delete
 
SubProcessoperator= (SubProcess &&)=default
 
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 const &)=delete
 
 SubProcess (SubProcess &&)=default
 
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 writeLumi (ProcessHistoryID const &parentPhID, int runNumber, int lumiNumber)
 
void writeRun (ProcessHistoryID const &parentPhID, int runNumber)
 
virtual ~SubProcess ()
 
- 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void beginJob ()
 
void beginLuminosityBlock (LuminosityBlockPrincipal const &lb, IOVSyncValue const &ts)
 
void beginRun (RunPrincipal const &r, IOVSyncValue const &ts)
 
std::shared_ptr< BranchIDListHelper const > branchIDListHelper () const
 
std::shared_ptr< BranchIDListHelper > & branchIDListHelper ()
 
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID ()
 
void endJob ()
 
void endLuminosityBlock (LuminosityBlockPrincipal const &lb, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
void endRun (RunPrincipal const &r, IOVSyncValue const &ts, bool cleaningUpAfterException)
 
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)
 
void propagateProducts (BranchType type, Principal const &parentPrincipal, Principal &principal) const
 
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper () const
 
std::shared_ptr< ThinnedAssociationsHelperthinnedAssociationsHelper ()
 

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_
 
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

- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
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 ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 43 of file SubProcess.h.

Constructor & Destructor Documentation

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

References edm::ScheduleItems::act_table_, act_table_, edm::ScheduleItems::actReg_, actReg_, edm::ScheduleItems::addCPRandTNS(), edm::ScheduleItems::branchIDListHelper(), branchIDListHelper(), branchIDListHelper_, edm::detail::configureEventSelector(), edm::ActivityRegistry::connectToSubProcess(), edm::EDConsumerBase::consumesCollector(), droppedBranchIDToKeptBranchID_, esp_, edm::ParameterSet::exists(), edm::getAllTriggerNames(), edm::ParameterSet::getUntrackedParameterSet(), historyAppenders_, historyRunOffset_, diffTreeTool::index, edm::ScheduleItems::initMisc(), edm::ScheduleItems::initSchedule(), edm::ScheduleItems::initServices(), edm::PrincipalCache::insert(), mps_monitormerge::items, edm::eventsetup::EventSetupsController::makeProvider(), Data_TkAlMuonIsolated_Run2015B_PromptReco_v1_cff::maxEvents, eostools::move(), edm::PreallocationConfiguration::numberOfStreams(), cmsPerfStripChart::operate(), edm::ParameterSet::popParameterSet(), edm::popSubProcessVParameterSet(), edm::ScheduleItems::preg(), preg_, principalCache_, edm::ScheduleItems::processConfiguration(), 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(), edm::IllegalParameters::setThrowAnException(), AlCaHLTBitMon_QueryRunRegistry::string, subProcesses_, edm::ScheduleItems::subProcessParentageHelper(), subProcessParentageHelper_, edm::ScheduleItems::thinnedAssociationsHelper(), thinnedAssociationsHelper(), thinnedAssociationsHelper_, updateBranchIDListHelper(), and wantAllEvents_.

55  :
57  serviceToken_(),
58  parentPreg_(parentProductRegistry),
59  preg_(),
61  act_table_(),
63  historyLumiOffset_(preallocConfig.numberOfStreams()),
64  historyRunOffset_(historyLumiOffset_+preallocConfig.numberOfLuminosityBlocks()),
65  processHistoryRegistries_(historyRunOffset_+ preallocConfig.numberOfRuns()),
66  historyAppenders_(historyRunOffset_+preallocConfig.numberOfRuns()),
68  esp_(),
69  schedule_(),
71  subProcesses_(),
73  productSelectorRules_(parameterSet, "outputCommands", "OutputModule"),
75  wantAllEvents_(true) {
76 
77  //Setup the event selection
79 
80  ParameterSet selectevents =
81  parameterSet.getUntrackedParameterSet("SelectEvents", ParameterSet());
82 
83  selectevents.registerIt(); // Just in case this PSet is not registered
85  tns->getProcessName(),
87  selectors_,
89  std::map<std::string, std::vector<std::pair<std::string, int> > > outputModulePathPositions;
91  "",
92  outputModulePathPositions,
93  parentProductRegistry->anyProductProduced());
94 
95  std::map<BranchID, bool> keepAssociation;
96  selectProducts(*parentProductRegistry, parentThinnedAssociationsHelper, keepAssociation);
97 
98  std::string const maxEvents("maxEvents");
99  std::string const maxLumis("maxLuminosityBlocks");
100 
101  // propagate_const<T> has no reset() function
102  processParameterSet_ = std::unique_ptr<ParameterSet>(parameterSet.popParameterSet(std::string("process")).release());
103 
104  // if this process has a maxEvents or maxLuminosityBlocks parameter set, remove them.
105  if(processParameterSet_->exists(maxEvents)) {
106  processParameterSet_->popParameterSet(maxEvents);
107  }
108  if(processParameterSet_->exists(maxLumis)) {
109  processParameterSet_->popParameterSet(maxLumis);
110  }
111 
112  // if the top level process has a maxEvents or maxLuminosityBlocks parameter set, add them to this process.
113  if(topLevelParameterSet.exists(maxEvents)) {
114  processParameterSet_->addUntrackedParameter<ParameterSet>(maxEvents, topLevelParameterSet.getUntrackedParameterSet(maxEvents));
115  }
116  if(topLevelParameterSet.exists(maxLumis)) {
117  processParameterSet_->addUntrackedParameter<ParameterSet>(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  ScheduleItems items(*parentProductRegistry, *this);
125  actReg_ = items.actReg_;
126 
127  ParameterSet const& optionsPset(processParameterSet_->getUntrackedParameterSet("options", ParameterSet()));
128  IllegalParameters::setThrowAnException(optionsPset.getUntrackedParameter<bool>("throwIfIllegalParameter", true));
129 
130  //initialize the services
131  ServiceToken iToken;
132 
133  // get any configured services.
134  auto serviceSets = processParameterSet_->popVParameterSet(std::string("services"));
135 
136  ServiceToken newToken = items.initServices(serviceSets, *processParameterSet_, token, iLegacy, false);
137  parentActReg.connectToSubProcess(*items.actReg_);
138  serviceToken_ = items.addCPRandTNS(*processParameterSet_, newToken);
139 
140 
141  //make the services available
143 
144  // intialize miscellaneous items
145  items.initMisc(*processParameterSet_);
146 
147  // intialize the event setup provider
148  esp_ = esController.makeProvider(*processParameterSet_);
149 
150  branchIDListHelper_ = items.branchIDListHelper();
151  updateBranchIDListHelper(parentBranchIDListHelper->branchIDLists());
152 
153  thinnedAssociationsHelper_ = items.thinnedAssociationsHelper();
154  thinnedAssociationsHelper_->updateFromParentProcess(parentThinnedAssociationsHelper, keepAssociation, droppedBranchIDToKeptBranchID_);
155 
156  // intialize the Schedule
157  schedule_ = items.initSchedule(*processParameterSet_,hasSubProcesses,preallocConfig,&processContext_);
158 
159  // set the items
160  act_table_ = std::move(items.act_table_);
161  preg_ = items.preg();
162 
163  subProcessParentageHelper_ = items.subProcessParentageHelper();
164  subProcessParentageHelper_->update(parentSubProcessParentageHelper, *parentProductRegistry);
165 
166  //CMS-THREADING this only works since Run/Lumis are synchronous so when principalCache asks for
167  // the reducedProcessHistoryID from a full ProcessHistoryID that registry will not be in use by
168  // another thread. We really need to change how this is done in the PrincipalCache.
170 
171 
172  processConfiguration_ = items.processConfiguration();
174  processContext_.setParentProcessContext(parentProcessContext);
175 
177  for(unsigned int index = 0; index < preallocConfig.numberOfStreams(); ++index) {
178  auto ep = std::make_shared<EventPrincipal>(preg_,
183  index,
184  false /*not primary process*/);
186  }
187 
188  subProcesses_.reserve(subProcessVParameterSet.size());
189  for(auto& subProcessPSet : subProcessVParameterSet) {
190  subProcesses_.emplace_back(subProcessPSet,
191  topLevelParameterSet,
192  preg_,
194  *thinnedAssociationsHelper_,
196  esController,
197  *items.actReg_,
198  newToken,
199  iLegacy,
200  preallocConfig,
201  &processContext_);
202  }
203  }
unsigned int historyRunOffset_
Definition: SubProcess.h:277
unsigned int historyLumiOffset_
Definition: SubProcess.h:276
ParameterSetID selector_config_id_
Definition: SubProcess.h:297
void insert(std::shared_ptr< RunPrincipal > rp)
void setNumberOfConcurrentPrincipals(PreallocationConfiguration const &)
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: SubProcess.h:258
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
Definition: SubProcess.h:278
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: SubProcess.h:268
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
void updateBranchIDListHelper(BranchIDLists const &)
Definition: SubProcess.cc:769
void setParentProcessContext(ProcessContext const *parentProcessContext)
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
void selectProducts(ProductRegistry const &preg, ThinnedAssociationsHelper const &parentThinnedAssociationsHelper, std::map< BranchID, bool > &keepAssociation)
Definition: SubProcess.cc:253
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
static void setThrowAnException(bool v)
ProductSelectorRules productSelectorRules_
Definition: SubProcess.h:292
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
edm::propagate_const< std::unique_ptr< ParameterSet > > processParameterSet_
Definition: SubProcess.h:285
bool configureEventSelector(edm::ParameterSet const &iPSet, std::string const &iProcessName, std::vector< std::string > const &iAllTriggerNames, edm::detail::TriggerResultsBasedEventSelector &oSelector, ConsumesCollector &&iC)
void setProcessConfiguration(ProcessConfiguration const *processConfiguration)
std::unique_ptr< ExceptionToActionTable const > act_table_
Definition: SubProcess.h:270
std::vector< ParameterSet > popSubProcessVParameterSet(ParameterSet &parameterSet)
Definition: SubProcess.cc:784
void setProcessHistoryRegistry(ProcessHistoryRegistry const &phr)
std::map< BranchID::value_type, BranchID::value_type > droppedBranchIDToKeptBranchID_
Definition: SubProcess.h:302
ProductSelector productSelector_
Definition: SubProcess.h:293
detail::TriggerResultsBasedEventSelector selectors_
Definition: SubProcess.h:298
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:283
std::shared_ptr< ActivityRegistry > actReg_
Definition: SubProcess.h:263
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: SubProcess.h:267
std::vector< HistoryAppender > historyAppenders_
Definition: SubProcess.h:279
std::vector< std::string > const & getAllTriggerNames()
std::shared_ptr< ProductRegistry const > parentPreg_
Definition: SubProcess.h:265
ProcessContext processContext_
Definition: SubProcess.h:272
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)
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper() const
Definition: SubProcess.h:260
std::shared_ptr< ProductRegistry const > preg_
Definition: SubProcess.h:266
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
edm::propagate_const< std::shared_ptr< SubProcessParentageHelper > > subProcessParentageHelper_
Definition: SubProcess.h:269
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: SubProcess.h:271
def operate(timelog, memlog, json_f, num)
edm::SubProcess::~SubProcess ( )
virtual

Definition at line 205 of file SubProcess.cc.

205 {}
edm::SubProcess::SubProcess ( SubProcess const &  )
delete
edm::SubProcess::SubProcess ( SubProcess &&  )
default

Member Function Documentation

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

Definition at line 219 of file SubProcess.cc.

References actReg_, edm::checkForModuleDependencyCorrectness(), droppedBranchIDToKeptBranchID(), fixBranchIDListsForEDAliases(), edm::for_all(), edm::InEvent, edm::PathsAndConsumesOfModules::initialize(), cmsPerfStripChart::operate(), parentPreg_, pathsAndConsumesOfModules_, preg_, processConfiguration_, processContext_, schedule_, serviceToken_, subProcesses_, and edm::EDConsumerBase::updateLookup().

Referenced by doBeginJob().

219  {
220  // If event selection is being used, the SubProcess class reads TriggerResults
221  // object(s) in the parent process from the event. This next call is needed for
222  // getByToken to work properly. Normally, this is done by the worker, but since
223  // a SubProcess is not a module, it has no worker.
224  updateLookup(InEvent, *parentPreg_->productLookup(InEvent),false);
225 
226  if(!droppedBranchIDToKeptBranchID().empty()) {
228  }
230  schedule_->convertCurrentProcessAlias(processConfiguration_->processName());
232  //NOTE: this may throw
234  actReg_->preBeginJobSignal_(pathsAndConsumesOfModules_, processContext_);
235  schedule_->beginJob(*preg_);
236  for_all(subProcesses_, [](auto& subProcess){ subProcess.doBeginJob(); });
237  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
PathsAndConsumesOfModules pathsAndConsumesOfModules_
Definition: SubProcess.h:273
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID()
Definition: SubProcess.h:254
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
void initialize(Schedule const *, std::shared_ptr< ProductRegistry const >)
ServiceToken serviceToken_
Definition: SubProcess.h:264
void checkForModuleDependencyCorrectness(edm::PathsAndConsumesOfModulesBase const &iPnC, bool iPrintDependencies)
std::shared_ptr< ActivityRegistry > actReg_
Definition: SubProcess.h:263
std::shared_ptr< ProductRegistry const > parentPreg_
Definition: SubProcess.h:265
void fixBranchIDListsForEDAliases(std::map< BranchID::value_type, BranchID::value_type > const &droppedBranchIDToKeptBranchID)
Definition: SubProcess.cc:319
ProcessContext processContext_
Definition: SubProcess.h:272
std::shared_ptr< ProductRegistry const > preg_
Definition: SubProcess.h:266
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: SubProcess.h:271
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::beginLuminosityBlock ( LuminosityBlockPrincipal const &  lb,
IOVSyncValue const &  ts 
)
private

Definition at line 529 of file SubProcess.cc.

References printConversionInfo::aux, edm::LuminosityBlockPrincipal::aux(), esp_, edm::for_all(), historyAppenders_, historyLumiOffset_, edm::LuminosityBlockPrincipal::index(), edm::InLumi, edm::PrincipalCache::insert(), edm::PrincipalCache::lumiPrincipalPtr(), preg_, principalCache_, processConfiguration_, edm::Principal::processHistory(), edm::Principal::processHistoryID(), processHistoryRegistries_, propagateProducts(), edm::Principal::reader(), edm::PrincipalCache::runPrincipalPtr(), schedule_, and subProcesses_.

Referenced by doBeginLuminosityBlock().

529  {
530  auto aux = std::make_shared<LuminosityBlockAuxiliary>(principal.aux());
531  aux->setProcessHistoryID(principal.processHistoryID());
532  auto lbpp = std::make_shared<LuminosityBlockPrincipal>(aux, preg_, *processConfiguration_, &(historyAppenders_[historyLumiOffset_+principal.index()]),principal.index(),false);
533  auto & processHistoryRegistry = processHistoryRegistries_[historyLumiOffset_+principal.index()];
534  processHistoryRegistry.registerProcessHistory(principal.processHistory());
535  lbpp->fillLuminosityBlockPrincipal(processHistoryRegistry, principal.reader());
536  lbpp->setRunPrincipal(principalCache_.runPrincipalPtr());
537  principalCache_.insert(lbpp);
538  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
540  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalBegin> Traits;
541  schedule_->processOneGlobal<Traits>(lbp, esp_->eventSetupForInstance(ts));
542  for_all(subProcesses_, [&lbp, &ts](auto& subProcess){ subProcess.doBeginLuminosityBlock(lbp, ts); });
543  }
unsigned int historyLumiOffset_
Definition: SubProcess.h:276
void insert(std::shared_ptr< RunPrincipal > rp)
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
Definition: SubProcess.h:278
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
def principal(options)
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
std::vector< HistoryAppender > historyAppenders_
Definition: SubProcess.h:279
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
std::shared_ptr< ProductRegistry const > preg_
Definition: SubProcess.h:266
PrincipalCache principalCache_
Definition: SubProcess.h:280
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: SubProcess.h:271
void edm::SubProcess::beginRun ( RunPrincipal const &  r,
IOVSyncValue const &  ts 
)
private

Definition at line 417 of file SubProcess.cc.

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

Referenced by doBeginRun().

417  {
418  auto aux = std::make_shared<RunAuxiliary>(principal.aux());
419  aux->setProcessHistoryID(principal.processHistoryID());
420  auto rpp = std::make_shared<RunPrincipal>(aux, preg_, *processConfiguration_, &(historyAppenders_[historyRunOffset_+principal.index()]),principal.index(),false);
421  auto & processHistoryRegistry = processHistoryRegistries_[historyRunOffset_+principal.index()];
422  processHistoryRegistry.registerProcessHistory(principal.processHistory());
423  rpp->fillRunPrincipal(processHistoryRegistry, principal.reader());
424  principalCache_.insert(rpp);
425 
426  ProcessHistoryID const& parentInputReducedPHID = principal.reducedProcessHistoryID();
427  ProcessHistoryID const& inputReducedPHID = rpp->reducedProcessHistoryID();
428 
429  parentToChildPhID_.insert(std::make_pair(parentInputReducedPHID,inputReducedPHID));
430 
431  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
433  typedef OccurrenceTraits<RunPrincipal, BranchActionGlobalBegin> Traits;
434  schedule_->processOneGlobal<Traits>(rp, esp_->eventSetupForInstance(ts));
435  for_all(subProcesses_, [&rp, &ts](auto& subProcess){ subProcess.doBeginRun(rp, ts); });
436  }
unsigned int historyRunOffset_
Definition: SubProcess.h:277
void insert(std::shared_ptr< RunPrincipal > rp)
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
Definition: SubProcess.h:278
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
def principal(options)
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
Hash< ProcessHistoryType > ProcessHistoryID
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:283
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
std::vector< HistoryAppender > historyAppenders_
Definition: SubProcess.h:279
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
std::shared_ptr< ProductRegistry const > preg_
Definition: SubProcess.h:266
PrincipalCache principalCache_
Definition: SubProcess.h:280
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: SubProcess.h:271
std::shared_ptr<BranchIDListHelper const> edm::SubProcess::branchIDListHelper ( ) const
inlineprivate

Definition at line 258 of file SubProcess.h.

References edm::get_underlying_safe().

Referenced by SubProcess().

std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: SubProcess.h:267
std::shared_ptr<BranchIDListHelper>& edm::SubProcess::branchIDListHelper ( )
inlineprivate

Definition at line 259 of file SubProcess.h.

References edm::get_underlying_safe().

std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: SubProcess.h:267
void edm::SubProcess::clearCounters ( )
inline

Clear all the counters in the trigger report.

Definition at line 233 of file SubProcess.h.

References bk::beginJob(), MillePedeFileConverter_cfg::e, Ecal2004TBTDCRanges_v1_cff::endRun, edm::for_all(), cmsPerfStripChart::operate(), and alignCSCRings::r.

233  {
235  schedule_->clearCounters();
236  for_all(subProcesses_, [](auto& subProcess){ subProcess.clearCounters(); });
237  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::closeOutputFiles ( )
inline

Definition at line 130 of file SubProcess.h.

References edm::for_all(), and cmsPerfStripChart::operate().

130  {
132  schedule_->closeOutputFiles();
133  for_all(subProcesses_, [](auto& subProcess) { subProcess.closeOutputFiles(); });
134  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::deleteLumiFromCache ( ProcessHistoryID const &  parentPhID,
int  runNumber,
int  lumiNumber 
)

Definition at line 613 of file SubProcess.cc.

References edm::PrincipalCache::deleteLumi(), edm::for_all(), parentToChildPhID_, principalCache_, and subProcesses_.

613  {
614  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
615  assert(it != parentToChildPhID_.end());
616  auto const& childPhID = it->second;
617  principalCache_.deleteLumi(childPhID, runNumber, lumiNumber);
618  for_all(subProcesses_, [&childPhID, runNumber, lumiNumber](auto& subProcess){ subProcess.deleteLumiFromCache(childPhID, runNumber, lumiNumber); });
619  }
void deleteLumi(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi)
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:283
PrincipalCache principalCache_
Definition: SubProcess.h:280
void edm::SubProcess::deleteRunFromCache ( ProcessHistoryID const &  parentPhID,
int  runNumber 
)

Definition at line 514 of file SubProcess.cc.

References edm::PrincipalCache::deleteRun(), edm::for_all(), parentToChildPhID_, principalCache_, and subProcesses_.

514  {
515  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
516  assert(it != parentToChildPhID_.end());
517  auto const& childPhID = it->second;
518  principalCache_.deleteRun(childPhID, runNumber);
519  for_all(subProcesses_, [&childPhID, runNumber](auto& subProcess){ subProcess.deleteRunFromCache(childPhID, runNumber); });
520  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:283
void deleteRun(ProcessHistoryID const &phid, RunNumber_t run)
PrincipalCache principalCache_
Definition: SubProcess.h:280
void edm::SubProcess::doBeginJob ( )

Definition at line 208 of file SubProcess.cc.

References beginJob().

208  {
209  this->beginJob();
210  }
void edm::SubProcess::doBeginLuminosityBlock ( LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 523 of file SubProcess.cc.

References beginLuminosityBlock(), cmsPerfStripChart::operate(), and serviceToken_.

523  {
526  }
ServiceToken serviceToken_
Definition: SubProcess.h:264
def principal(options)
void beginLuminosityBlock(LuminosityBlockPrincipal const &lb, IOVSyncValue const &ts)
Definition: SubProcess.cc:529
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doBeginLuminosityBlockAsync ( WaitingTaskHolder  iHolder,
LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 546 of file SubProcess.cc.

References printConversionInfo::aux, edm::LuminosityBlockPrincipal::aux(), esp_, historyAppenders_, historyLumiOffset_, edm::LuminosityBlockPrincipal::index(), edm::InLumi, edm::PrincipalCache::insert(), edm::PrincipalCache::lumiPrincipalPtr(), eostools::move(), cmsPerfStripChart::operate(), preg_, principalCache_, processConfiguration_, edm::Principal::processHistory(), edm::Principal::processHistoryID(), processHistoryRegistries_, propagateProducts(), edm::Principal::reader(), edm::PrincipalCache::runPrincipalPtr(), schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoGlobalBeginTransitionAsync().

546  {
548 
549  auto aux = std::make_shared<LuminosityBlockAuxiliary>(principal.aux());
550  aux->setProcessHistoryID(principal.processHistoryID());
551  auto lbpp = std::make_shared<LuminosityBlockPrincipal>(aux, preg_, *processConfiguration_, &(historyAppenders_[historyLumiOffset_+principal.index()]),principal.index(),false);
552  auto & processHistoryRegistry = processHistoryRegistries_[historyLumiOffset_+principal.index()];
553  processHistoryRegistry.registerProcessHistory(principal.processHistory());
554  lbpp->fillLuminosityBlockPrincipal(processHistoryRegistry, principal.reader());
555  lbpp->setRunPrincipal(principalCache_.runPrincipalPtr());
556  principalCache_.insert(lbpp);
557  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
559  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalBegin> Traits;
560  beginGlobalTransitionAsync<Traits>(std::move(iHolder),
561  *schedule_,
562  lbp,
563  ts,
564  esp_->eventSetupForInstance(ts),
565  subProcesses_);
566  }
unsigned int historyLumiOffset_
Definition: SubProcess.h:276
void insert(std::shared_ptr< RunPrincipal > rp)
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
Definition: SubProcess.h:278
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
def principal(options)
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
std::vector< HistoryAppender > historyAppenders_
Definition: SubProcess.h:279
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
std::shared_ptr< ProductRegistry const > preg_
Definition: SubProcess.h:266
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: SubProcess.h:271
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doBeginRun ( RunPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 411 of file SubProcess.cc.

References beginRun(), cmsPerfStripChart::operate(), and serviceToken_.

411  {
413  beginRun(principal,ts);
414  }
void beginRun(RunPrincipal const &r, IOVSyncValue const &ts)
Definition: SubProcess.cc:417
ServiceToken serviceToken_
Definition: SubProcess.h:264
def principal(options)
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doBeginRunAsync ( WaitingTaskHolder  iHolder,
RunPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 439 of file SubProcess.cc.

References printConversionInfo::aux, edm::RunPrincipal::aux(), esp_, historyAppenders_, historyRunOffset_, edm::RunPrincipal::index(), edm::InRun, edm::PrincipalCache::insert(), eostools::move(), cmsPerfStripChart::operate(), parentToChildPhID_, preg_, 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().

439  {
441 
442  auto aux = std::make_shared<RunAuxiliary>(principal.aux());
443  aux->setProcessHistoryID(principal.processHistoryID());
444  auto rpp = std::make_shared<RunPrincipal>(aux, preg_, *processConfiguration_, &(historyAppenders_[historyRunOffset_+principal.index()]),principal.index(),false);
445  auto & processHistoryRegistry = processHistoryRegistries_[historyRunOffset_+principal.index()];
446  processHistoryRegistry.registerProcessHistory(principal.processHistory());
447  rpp->fillRunPrincipal(processHistoryRegistry, principal.reader());
448  principalCache_.insert(rpp);
449 
450  ProcessHistoryID const& parentInputReducedPHID = principal.reducedProcessHistoryID();
451  ProcessHistoryID const& inputReducedPHID = rpp->reducedProcessHistoryID();
452 
453  parentToChildPhID_.insert(std::make_pair(parentInputReducedPHID,inputReducedPHID));
454 
455  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
457  typedef OccurrenceTraits<RunPrincipal, BranchActionGlobalBegin> Traits;
458  beginGlobalTransitionAsync<Traits>(std::move(iHolder),
459  *schedule_,
460  rp,
461  ts,
462  esp_->eventSetupForInstance(ts),
463  subProcesses_);
464  }
unsigned int historyRunOffset_
Definition: SubProcess.h:277
void insert(std::shared_ptr< RunPrincipal > rp)
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
Definition: SubProcess.h:278
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
def principal(options)
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
Hash< ProcessHistoryType > ProcessHistoryID
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:283
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
std::vector< HistoryAppender > historyAppenders_
Definition: SubProcess.h:279
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
std::shared_ptr< ProductRegistry const > preg_
Definition: SubProcess.h:266
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
std::shared_ptr< ProcessConfiguration const > processConfiguration_
Definition: SubProcess.h:271
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doBeginStream ( unsigned int  iID)

Definition at line 622 of file SubProcess.cc.

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

622  {
624  schedule_->beginStream(iID);
625  for_all(subProcesses_, [iID](auto& subProcess){ subProcess.doBeginStream(iID); });
626  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doEndJob ( )

Definition at line 213 of file SubProcess.cc.

References endJob().

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

213  {
214  endJob();
215  }
void edm::SubProcess::doEndLuminosityBlock ( LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)

Definition at line 569 of file SubProcess.cc.

References endLuminosityBlock(), cmsPerfStripChart::operate(), and serviceToken_.

569  {
571  endLuminosityBlock(principal,ts,cleaningUpAfterException);
572  }
ServiceToken serviceToken_
Definition: SubProcess.h:264
def principal(options)
void endLuminosityBlock(LuminosityBlockPrincipal const &lb, IOVSyncValue const &ts, bool cleaningUpAfterException)
Definition: SubProcess.cc:575
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doEndLuminosityBlockAsync ( WaitingTaskHolder  iHolder,
LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)

Definition at line 586 of file SubProcess.cc.

References esp_, edm::InLumi, edm::PrincipalCache::lumiPrincipalPtr(), eostools::move(), principalCache_, propagateProducts(), schedule_, edm::Principal::setAtEndTransition(), edm::LuminosityBlockPrincipal::setComplete(), and subProcesses_.

Referenced by edm::subProcessDoGlobalEndTransitionAsync().

586  {
587  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
588  lbp.setComplete();
590  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalEnd> Traits;
591  lbp.setAtEndTransition(true);
592  endGlobalTransitionAsync<Traits>(std::move(iHolder),
593  *schedule_,
594  lbp,
595  ts,
596  esp_->eventSetupForInstance(ts),
598  cleaningUpAfterException);
599  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
def principal(options)
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
void edm::SubProcess::doEndRun ( RunPrincipal const &  principal,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)

Definition at line 468 of file SubProcess.cc.

References endRun(), cmsPerfStripChart::operate(), and serviceToken_.

468  {
470  endRun(principal,ts,cleaningUpAfterException);
471  }
ServiceToken serviceToken_
Definition: SubProcess.h:264
def principal(options)
void endRun(RunPrincipal const &r, IOVSyncValue const &ts, bool cleaningUpAfterException)
Definition: SubProcess.cc:474
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doEndRunAsync ( WaitingTaskHolder  iHolder,
RunPrincipal const &  principal,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)

Definition at line 485 of file SubProcess.cc.

References esp_, edm::InRun, eostools::move(), principalCache_, propagateProducts(), edm::PrincipalCache::runPrincipalPtr(), schedule_, edm::Principal::setAtEndTransition(), edm::RunPrincipal::setComplete(), and subProcesses_.

Referenced by edm::subProcessDoGlobalEndTransitionAsync().

488  {
489  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
490  rp.setComplete();
492  typedef OccurrenceTraits<RunPrincipal, BranchActionGlobalEnd> Traits;
493  rp.setAtEndTransition(true);
494  endGlobalTransitionAsync<Traits>(std::move(iHolder),
495  *schedule_,
496  rp,
497  ts,
498  esp_->eventSetupForInstance(ts),
500  cleaningUpAfterException);
501  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
def principal(options)
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
void edm::SubProcess::doEndStream ( unsigned int  iID)

Definition at line 629 of file SubProcess.cc.

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

629  {
631  schedule_->endStream(iID);
632  for_all(subProcesses_, [iID](auto& subProcess){ subProcess.doEndStream(iID); });
633  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doEventAsync ( WaitingTaskHolder  iHolder,
EventPrincipal const &  principal 
)

Definition at line 334 of file SubProcess.cc.

References MillePedeFileConverter_cfg::e, eostools::move(), cmsPerfStripChart::operate(), processAsync(), selectors_, serviceToken_, edm::OccurrenceForOutput::setConsumer(), wantAllEvents_, and edm::detail::TriggerResultsBasedEventSelector::wantEvent().

335  {
337  /* BEGIN relevant bits from OutputModule::doEvent */
338  if(!wantAllEvents_) {
339  EventForOutput e(ep, ModuleDescription(), nullptr);
340  e.setConsumer(this);
341  if(!selectors_.wantEvent(e)) {
342  return;
343  }
344  }
345  processAsync(std::move(iHolder),ep);
346  /* END relevant bits from OutputModule::doEvent */
347  }
ServiceToken serviceToken_
Definition: SubProcess.h:264
void processAsync(WaitingTaskHolder iHolder, EventPrincipal const &e)
Definition: SubProcess.cc:350
detail::TriggerResultsBasedEventSelector selectors_
Definition: SubProcess.h:298
def move(src, dest)
Definition: eostools.py:510
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doStreamBeginLuminosityBlock ( unsigned int  iID,
LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 694 of file SubProcess.cc.

References esp_, edm::for_all(), hcalTTPDigis_cfi::id, edm::PrincipalCache::lumiPrincipalPtr(), cmsPerfStripChart::operate(), principalCache_, schedule_, serviceToken_, and subProcesses_.

694  {
696  {
697  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
698  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamBegin> Traits;
699  schedule_->processOneStream<Traits>(id,lbp, esp_->eventSetupForInstance(ts));
700  for_all(subProcesses_, [id, &lbp, &ts](auto& subProcess){ subProcess.doStreamBeginLuminosityBlock(id,lbp, ts); });
701  }
702  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doStreamBeginLuminosityBlockAsync ( WaitingTaskHolder  iHolder,
unsigned int  iID,
LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 704 of file SubProcess.cc.

References esp_, hcalTTPDigis_cfi::id, edm::PrincipalCache::lumiPrincipalPtr(), eostools::move(), cmsPerfStripChart::operate(), principalCache_, schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoStreamBeginTransitionAsync().

705  {
707 
708  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamBegin> Traits;
709 
710  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
711 
712  beginStreamTransitionAsync<Traits>(std::move(iHolder),
713  *schedule_,
714  id,
715  lbp,
716  ts,
717  esp_->eventSetupForInstance(ts),
718  subProcesses_);
719  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doStreamBeginRun ( unsigned int  iID,
RunPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 636 of file SubProcess.cc.

References esp_, edm::for_all(), hcalTTPDigis_cfi::id, cmsPerfStripChart::operate(), principalCache_, edm::PrincipalCache::runPrincipalPtr(), schedule_, serviceToken_, and subProcesses_.

636  {
638  {
639  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
640  typedef OccurrenceTraits<RunPrincipal, BranchActionStreamBegin> Traits;
641  schedule_->processOneStream<Traits>(id,rp, esp_->eventSetupForInstance(ts));
642  for_all(subProcesses_, [id, &rp, &ts](auto& subProcess){ subProcess.doStreamBeginRun(id,rp, ts); });
643  }
644  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doStreamBeginRunAsync ( WaitingTaskHolder  iHolder,
unsigned int  iID,
RunPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 646 of file SubProcess.cc.

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

Referenced by edm::subProcessDoStreamBeginTransitionAsync().

647  {
649 
650  typedef OccurrenceTraits<RunPrincipal, BranchActionStreamBegin> Traits;
651 
652  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
653 
654  beginStreamTransitionAsync<Traits>(std::move(iHolder),
655  *schedule_,
656  id,
657  rp,
658  ts,
659  esp_->eventSetupForInstance(ts),
660  subProcesses_);
661 
662  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doStreamEndLuminosityBlock ( unsigned int  iID,
LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)

Definition at line 724 of file SubProcess.cc.

References esp_, edm::for_all(), hcalTTPDigis_cfi::id, edm::PrincipalCache::lumiPrincipalPtr(), cmsPerfStripChart::operate(), principalCache_, schedule_, serviceToken_, and subProcesses_.

724  {
726  {
727  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
728  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamEnd> Traits;
729  schedule_->processOneStream<Traits>(id,lbp, esp_->eventSetupForInstance(ts),cleaningUpAfterException);
730  for_all(subProcesses_, [id, &lbp, &ts, cleaningUpAfterException](auto& subProcess){ subProcess.doStreamEndLuminosityBlock(id,lbp, ts,cleaningUpAfterException); });
731  }
732  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doStreamEndLuminosityBlockAsync ( WaitingTaskHolder  iHolder,
unsigned int  iID,
LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)

Definition at line 735 of file SubProcess.cc.

References esp_, hcalTTPDigis_cfi::id, edm::PrincipalCache::lumiPrincipalPtr(), eostools::move(), cmsPerfStripChart::operate(), principalCache_, schedule_, serviceToken_, and subProcesses_.

Referenced by edm::subProcessDoStreamEndTransitionAsync().

736  {
738 
739  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
740  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionStreamEnd> Traits;
741  endStreamTransitionAsync<Traits>(std::move(iHolder),
742  *schedule_,
743  id,
744  lbp,
745  ts,
746  esp_->eventSetupForInstance(ts),
748  cleaningUpAfterException);
749  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doStreamEndRun ( unsigned int  iID,
RunPrincipal const &  principal,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)

Definition at line 666 of file SubProcess.cc.

References esp_, edm::for_all(), hcalTTPDigis_cfi::id, cmsPerfStripChart::operate(), principalCache_, edm::PrincipalCache::runPrincipalPtr(), schedule_, serviceToken_, and subProcesses_.

666  {
668  {
669  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
670  typedef OccurrenceTraits<RunPrincipal, BranchActionStreamEnd> Traits;
671  schedule_->processOneStream<Traits>(id,rp, esp_->eventSetupForInstance(ts),cleaningUpAfterException);
672  for_all(subProcesses_, [id, &rp, &ts, cleaningUpAfterException](auto& subProcess){ subProcess.doStreamEndRun(id,rp, ts,cleaningUpAfterException); });
673  }
674  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::doStreamEndRunAsync ( WaitingTaskHolder  iHolder,
unsigned int  iID,
RunPrincipal const &  principal,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)

Definition at line 677 of file SubProcess.cc.

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

Referenced by edm::subProcessDoStreamEndTransitionAsync().

678  {
680  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
681  typedef OccurrenceTraits<RunPrincipal, BranchActionStreamEnd> Traits;
682 
683  endStreamTransitionAsync<Traits>(std::move(iHolder),
684  *schedule_,
685  id,
686  rp,
687  ts,
688  esp_->eventSetupForInstance(ts),
690  cleaningUpAfterException);
691  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
def operate(timelog, memlog, json_f, num)
std::map<BranchID::value_type, BranchID::value_type> const& edm::SubProcess::droppedBranchIDToKeptBranchID ( )
inlineprivate

Definition at line 254 of file SubProcess.h.

Referenced by beginJob().

254  {
256  }
std::map< BranchID::value_type, BranchID::value_type > droppedBranchIDToKeptBranchID_
Definition: SubProcess.h:302
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 198 of file SubProcess.h.

References edm::for_all(), and cmsPerfStripChart::operate().

198  {
200  schedule_->enableEndPaths(active);
201  for_all(subProcesses_, [active](auto& subProcess){ subProcess.enableEndPaths(active); });
202  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::endJob ( void  )
private

Definition at line 240 of file SubProcess.cc.

References EnergyCorrector::c, edm::ExceptionCollector::call(), edm::ExceptionCollector::hasThrown(), cmsPerfStripChart::operate(), edm::ExceptionCollector::rethrow(), schedule_, serviceToken_, and subProcesses_.

Referenced by doEndJob().

240  {
242  ExceptionCollector c("Multiple exceptions were thrown while executing endJob. An exception message follows for each.");
243  schedule_->endJob(c);
244  for(auto& subProcess : subProcesses_) {
245  c.call([&subProcess](){ subProcess.doEndJob();});
246  }
247  if(c.hasThrown()) {
248  c.rethrow();
249  }
250  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::endLuminosityBlock ( LuminosityBlockPrincipal const &  lb,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)
private

Definition at line 575 of file SubProcess.cc.

References esp_, edm::for_all(), edm::InLumi, edm::PrincipalCache::lumiPrincipalPtr(), principalCache_, propagateProducts(), schedule_, edm::Principal::setAtEndTransition(), edm::LuminosityBlockPrincipal::setComplete(), and subProcesses_.

Referenced by doEndLuminosityBlock().

575  {
576  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
577  lbp.setComplete();
579  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionGlobalEnd> Traits;
580  lbp.setAtEndTransition(true);
581  schedule_->processOneGlobal<Traits>(lbp, esp_->eventSetupForInstance(ts), cleaningUpAfterException);
582  for_all(subProcesses_, [&lbp, &ts, cleaningUpAfterException](auto& subProcess){ subProcess.doEndLuminosityBlock(lbp, ts, cleaningUpAfterException); });
583  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
def principal(options)
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
bool edm::SubProcess::endPathsEnabled ( ) const
inline

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

Definition at line 205 of file SubProcess.h.

References cmsPerfStripChart::operate().

205  {
207  return schedule_->endPathsEnabled();
208  }
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::endRun ( RunPrincipal const &  r,
IOVSyncValue const &  ts,
bool  cleaningUpAfterException 
)
private

Definition at line 474 of file SubProcess.cc.

References esp_, edm::for_all(), edm::InRun, principalCache_, propagateProducts(), edm::PrincipalCache::runPrincipalPtr(), schedule_, edm::Principal::setAtEndTransition(), edm::RunPrincipal::setComplete(), and subProcesses_.

Referenced by doEndRun().

474  {
475  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
476  rp.setComplete();
478  typedef OccurrenceTraits<RunPrincipal, BranchActionGlobalEnd> Traits;
479  rp.setAtEndTransition(true);
480  schedule_->processOneGlobal<Traits>(rp, esp_->eventSetupForInstance(ts), cleaningUpAfterException);
481  for_all(subProcesses_, [&rp, &ts, cleaningUpAfterException](auto& subProcess){ subProcess.doEndRun(rp, ts, cleaningUpAfterException); });
482  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
def principal(options)
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
std::shared_ptr< RunPrincipal > const & runPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run) const
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
PrincipalCache principalCache_
Definition: SubProcess.h:280
void edm::SubProcess::fixBranchIDListsForEDAliases ( std::map< BranchID::value_type, BranchID::value_type > const &  droppedBranchIDToKeptBranchID)
private

Definition at line 319 of file SubProcess.cc.

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

Referenced by beginJob().

319  {
320  // Check for branches dropped while an EDAlias was kept.
321  // Replace BranchID of each dropped branch with that of the kept alias.
322  for(BranchIDList& branchIDList : branchIDListHelper_->mutableBranchIDLists()) {
323  for(BranchID::value_type& branchID : branchIDList) {
324  std::map<BranchID::value_type, BranchID::value_type>::const_iterator iter = droppedBranchIDToKeptBranchID.find(branchID);
325  if(iter != droppedBranchIDToKeptBranchID.end()) {
326  branchID = iter->second;
327  }
328  }
329  }
330  for_all(subProcesses_, [&droppedBranchIDToKeptBranchID](auto& subProcess){ subProcess.fixBranchIDListsForEDAliases(droppedBranchIDToKeptBranchID); });
331  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID()
Definition: SubProcess.h:254
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
unsigned int value_type
Definition: BranchID.h:16
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: SubProcess.h:267
std::vector< BranchID::value_type > BranchIDList
Definition: BranchIDList.h:18
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!

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

References cmsPerfStripChart::operate().

212  {
214  schedule_->getTriggerReport(rep);
215  }
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
rep
Definition: cuy.py:1188
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::keepThisBranch ( BranchDescription const &  desc,
std::map< BranchID, BranchDescription const * > &  trueBranchIDToKeptBranchDesc,
std::set< BranchID > &  keptProductsInEvent 
)
private

Definition at line 295 of file SubProcess.cc.

References edm::BranchDescription::branchID(), edm::BranchDescription::branchType(), edm::ProductSelector::checkForDuplicateKeptBranch(), edm::EDConsumerBase::consumes(), edm::InEvent, keptProducts_, edm::BranchDescription::moduleLabel(), edm::BranchDescription::originalBranchID(), edm::BranchDescription::processName(), edm::BranchDescription::produced(), edm::PRODUCT_TYPE, edm::BranchDescription::productInstanceName(), and edm::BranchDescription::unwrappedTypeID().

Referenced by selectProducts().

297  {
298 
300  trueBranchIDToKeptBranchDesc);
301 
302  if(desc.branchType() == InEvent) {
303  if(desc.produced()) {
304  keptProductsInEvent.insert(desc.originalBranchID());
305  } else {
306  keptProductsInEvent.insert(desc.branchID());
307  }
308  }
309  EDGetToken token = consumes(TypeToGet{desc.unwrappedTypeID(),PRODUCT_TYPE},
310  InputTag{desc.moduleLabel(),
311  desc.productInstanceName(),
312  desc.processName()});
313 
314  // Now put it in the list of selected branches.
315  keptProducts_[desc.branchType()].push_back(std::make_pair(&desc, token));
316  }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
SelectedProductsForBranchType keptProducts_
Definition: SubProcess.h:291
static void checkForDuplicateKeptBranch(BranchDescription const &desc, std::map< BranchID, BranchDescription const * > &trueBranchIDToKeptBranchDesc)
SelectedProductsForBranchType const& edm::SubProcess::keptProducts ( ) const
inline

Definition at line 70 of file SubProcess.h.

References cmsRelvalreport::principal(), and convertSQLiteXML::runNumber.

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

70 {return keptProducts_;}
SelectedProductsForBranchType keptProducts_
Definition: SubProcess.h:291
void edm::SubProcess::openOutputFiles ( FileBlock fb)
inline

Definition at line 137 of file SubProcess.h.

References benchmark_cfg::fb, edm::for_all(), and cmsPerfStripChart::operate().

137  {
139  schedule_->openOutputFiles(fb);
140  for_all(subProcesses_, [&fb](auto& subProcess) { subProcess.openOutputFiles(fb); });
141  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
SubProcess& edm::SubProcess::operator= ( SubProcess const &  )
delete
SubProcess& edm::SubProcess::operator= ( SubProcess &&  )
default
void edm::SubProcess::processAsync ( WaitingTaskHolder  iHolder,
EventPrincipal const &  e 
)
private

Definition at line 350 of file SubProcess.cc.

References edm::ProductRegistry::anyProductProduced(), printConversionInfo::aux, edm::EventPrincipal::aux(), branchIDListHelper_, edm::EventPrincipal::branchListIndexes(), edm::EventPrincipal::clearEventPrincipal(), edm::WaitingTaskHolder::doneWaiting(), esp_, edm::PrincipalCache::eventPrincipal(), edm::EventPrincipal::eventSelectionIDs(), edm::EventPrincipal::fillEventPrincipal(), edm::InEvent, edm::PrincipalCache::lumiPrincipalPtr(), 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_, edm::EventPrincipal::setLuminosityBlockPrincipal(), edm::EventPrincipal::streamID(), subProcesses_, edm::StreamID::value(), and wantAllEvents_.

Referenced by doEventAsync().

351  {
352  EventAuxiliary aux(principal.aux());
353  aux.setProcessHistoryID(principal.processHistoryID());
354 
355  EventSelectionIDVector esids{principal.eventSelectionIDs()};
356  if (principal.productRegistry().anyProductProduced() || !wantAllEvents_) {
357  esids.push_back(selector_config_id_);
358  }
359 
360  EventPrincipal& ep = principalCache_.eventPrincipal(principal.streamID().value());
361  auto & processHistoryRegistry = processHistoryRegistries_[principal.streamID().value()];
362  processHistoryRegistry.registerProcessHistory(principal.processHistory());
363  BranchListIndexes bli(principal.branchListIndexes());
364  branchIDListHelper_->fixBranchListIndexes(bli);
365  bool deepCopyRetriever = false;
366  ep.fillEventPrincipal(aux,
367  processHistoryRegistry,
368  std::move(esids),
369  std::move(bli),
370  *(principal.productProvenanceRetrieverPtr()),//NOTE: this transfers the per product provenance
371  principal.reader(),
372  deepCopyRetriever);
373  ep.setLuminosityBlockPrincipal(principalCache_.lumiPrincipalPtr());
375 
376  WaitingTaskHolder finalizeEventTask( make_waiting_task(tbb::task::allocate_root(),
377  [this,&ep,iHolder](std::exception_ptr const* iPtr) mutable
378  {
379  ep.clearEventPrincipal();
380  if(iPtr) {
381  iHolder.doneWaiting(*iPtr);
382  } else {
383  iHolder.doneWaiting(std::exception_ptr());
384  }
385  }
386  )
387  );
388  WaitingTaskHolder afterProcessTask;
389  if(subProcesses_.empty()) {
390  afterProcessTask = std::move(finalizeEventTask);
391  } else {
392  afterProcessTask = WaitingTaskHolder(
393  make_waiting_task(tbb::task::allocate_root(),
394  [this,&ep,finalizeEventTask] (std::exception_ptr const* iPtr) mutable{
395  if(not iPtr) {
396  for(auto& subProcess: boost::adaptors::reverse(subProcesses_)) {
397  subProcess.doEventAsync(finalizeEventTask,ep);
398  }
399  } else {
400  finalizeEventTask.doneWaiting(*iPtr);
401  }
402  })
403  );
404  }
405 
406  schedule_->processOneEventAsync(std::move(afterProcessTask),
407  ep.streamID().value(),ep, esp_->eventSetup());
408  }
ParameterSetID selector_config_id_
Definition: SubProcess.h:297
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
Definition: SubProcess.h:278
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
std::vector< EventSelectionID > EventSelectionIDVector
def principal(options)
std::vector< BranchListIndex > BranchListIndexes
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
Definition: SubProcess.h:281
EventPrincipal & eventPrincipal(unsigned int iStreamIndex) const
FunctorWaitingTask< F > * make_waiting_task(ALLOC &&iAlloc, F f)
Definition: WaitingTask.h:90
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: SubProcess.h:267
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:753
std::shared_ptr< LuminosityBlockPrincipal > const & lumiPrincipalPtr(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
PrincipalCache principalCache_
Definition: SubProcess.h:280
def move(src, dest)
Definition: eostools.py:510
void edm::SubProcess::propagateProducts ( BranchType  type,
Principal const &  parentPrincipal,
Principal principal 
) const
private

Definition at line 753 of file SubProcess.cc.

References edm::BranchDescription::branchID(), edm::ProductResolverBase::connectTo(), edm::Principal::getModifiableProductResolver(), edm::Principal::getProductResolver(), and keptProducts().

Referenced by beginLuminosityBlock(), beginRun(), doBeginLuminosityBlockAsync(), doBeginRunAsync(), doEndLuminosityBlockAsync(), doEndRunAsync(), endLuminosityBlock(), endRun(), and processAsync().

753  {
754  SelectedProducts const& keptVector = keptProducts()[type];
755  for(auto const& item : keptVector) {
756  BranchDescription const& desc = *item.first;
757  ProductResolverBase const* parentProductResolver = parentPrincipal.getProductResolver(desc.branchID());
758  if(parentProductResolver != nullptr) {
759  ProductResolverBase* productResolver = principal.getModifiableProductResolver(desc.branchID());
760  if(productResolver != nullptr) {
761  //Propagate the per event(run)(lumi) data for this product to the subprocess.
762  //First, the product itself.
763  productResolver->connectTo(*parentProductResolver, &parentPrincipal);
764  }
765  }
766  }
767  }
type
Definition: HCALResponse.h:21
SelectedProductsForBranchType const & keptProducts() const
Definition: SubProcess.h:70
std::vector< std::pair< BranchDescription const *, EDGetToken > > SelectedProducts
def principal(options)
void edm::SubProcess::respondToCloseInputFile ( FileBlock const &  fb)
inline

Definition at line 149 of file SubProcess.h.

References edm::for_all(), and cmsPerfStripChart::operate().

149  {
151  schedule_->respondToCloseInputFile(fb);
152  for_all(subProcesses_, [&fb](auto& subProcess) { subProcess.respondToCloseInputFile(fb); });
153  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::respondToOpenInputFile ( FileBlock const &  fb)

Definition at line 776 of file SubProcess.cc.

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

776  {
778  schedule_->respondToOpenInputFile(fb);
779  for_all(subProcesses_, [&fb](auto& subProcess){ subProcess.respondToOpenInputFile(fb); });
780  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::selectProducts ( ProductRegistry const &  preg,
ThinnedAssociationsHelper const &  parentThinnedAssociationsHelper,
std::map< BranchID, bool > &  keepAssociation 
)

Definition at line 253 of file SubProcess.cc.

References edm::ProductRegistry::allBranchDescriptions(), TrackValidation_cff::association, droppedBranchIDToKeptBranchID_, edm::ProductSelector::fillDroppedToKept(), edm::ProductSelector::initialize(), edm::ProductSelector::initialized(), keepThisBranch(), edm::BranchDescription::present(), edm::BranchDescription::produced(), edm::ProductRegistry::productList(), productSelector_, productSelectorRules_, edm::ThinnedAssociationsHelper::selectAssociationProducts(), edm::ProductSelector::selected(), edm::BranchDescription::transient(), and edm::BranchDescription::unwrappedType().

Referenced by SubProcess().

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

Definition at line 156 of file SubProcess.h.

References cmsPerfStripChart::operate().

156  {
158  if(schedule_->shouldWeCloseOutput()) {
159  return true;
160  }
161  for(auto const& subProcess : subProcesses_) {
162  if(subProcess.shouldWeCloseOutput()) {
163  return true;
164  }
165  }
166  return false;
167  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
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 219 of file SubProcess.h.

References cmsPerfStripChart::operate().

219  {
221  if(schedule_->terminate()) {
222  return true;
223  }
224  for(auto const& subProcess : subProcesses_) {
225  if(subProcess.terminate()) {
226  return true;
227  }
228  }
229  return false;
230  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
std::shared_ptr<ThinnedAssociationsHelper const> edm::SubProcess::thinnedAssociationsHelper ( ) const
inlineprivate

Definition at line 260 of file SubProcess.h.

References edm::get_underlying_safe().

Referenced by SubProcess().

edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: SubProcess.h:268
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
std::shared_ptr<ThinnedAssociationsHelper> edm::SubProcess::thinnedAssociationsHelper ( )
inlineprivate

Definition at line 261 of file SubProcess.h.

References edm::get_underlying_safe().

edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: SubProcess.h:268
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
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 179 of file SubProcess.h.

179  {
180  return schedule_->totalEvents();
181  }
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
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 191 of file SubProcess.h.

References cmsPerfStripChart::operate().

191  {
193  return schedule_->totalEventsFailed();
194  }
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
int edm::SubProcess::totalEventsPassed ( ) const
inline

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

Definition at line 184 of file SubProcess.h.

References cmsPerfStripChart::operate().

184  {
186  return schedule_->totalEventsPassed();
187  }
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
ServiceToken serviceToken_
Definition: SubProcess.h:264
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::updateBranchIDListHelper ( BranchIDLists const &  branchIDLists)

Definition at line 769 of file SubProcess.cc.

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

Referenced by SubProcess().

769  {
770  branchIDListHelper_->updateFromParent(branchIDLists);
771  for_all(subProcesses_, [this](auto& subProcess){ subProcess.updateBranchIDListHelper(branchIDListHelper_->branchIDLists()); });
772  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: SubProcess.h:267
void edm::SubProcess::writeLumi ( ProcessHistoryID const &  parentPhID,
int  runNumber,
int  lumiNumber 
)

Definition at line 603 of file SubProcess.cc.

References edm::for_all(), edm::PrincipalCache::lumiPrincipal(), cmsPerfStripChart::operate(), parentToChildPhID_, principalCache_, processContext_, schedule_, serviceToken_, and subProcesses_.

603  {
605  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
606  assert(it != parentToChildPhID_.end());
607  auto const& childPhID = it->second;
608  schedule_->writeLumi(principalCache_.lumiPrincipal(childPhID, runNumber, lumiNumber), &processContext_);
609  for_all(subProcesses_, [&childPhID, runNumber, lumiNumber](auto& subProcess){ subProcess.writeLumi(childPhID, runNumber, lumiNumber); });
610  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
LuminosityBlockPrincipal & lumiPrincipal(ProcessHistoryID const &phid, RunNumber_t run, LuminosityBlockNumber_t lumi) const
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:283
ProcessContext processContext_
Definition: SubProcess.h:272
PrincipalCache principalCache_
Definition: SubProcess.h:280
def operate(timelog, memlog, json_f, num)
void edm::SubProcess::writeRun ( ProcessHistoryID const &  parentPhID,
int  runNumber 
)

Definition at line 504 of file SubProcess.cc.

References edm::for_all(), cmsPerfStripChart::operate(), parentToChildPhID_, principalCache_, processContext_, edm::PrincipalCache::runPrincipal(), schedule_, serviceToken_, and subProcesses_.

504  {
506  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
507  assert(it != parentToChildPhID_.end());
508  auto const& childPhID = it->second;
510  for_all(subProcesses_, [&childPhID, runNumber](auto& subProcess){ subProcess.writeRun(childPhID, runNumber); });
511  }
std::vector< SubProcess > subProcesses_
Definition: SubProcess.h:284
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
Definition: SubProcess.h:282
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
ServiceToken serviceToken_
Definition: SubProcess.h:264
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:283
ProcessContext processContext_
Definition: SubProcess.h:272
PrincipalCache principalCache_
Definition: SubProcess.h:280
RunPrincipal & runPrincipal(ProcessHistoryID const &phid, RunNumber_t run) const
def operate(timelog, memlog, json_f, num)

Member Data Documentation

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

Definition at line 270 of file SubProcess.h.

Referenced by SubProcess().

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

Definition at line 263 of file SubProcess.h.

Referenced by beginJob(), and SubProcess().

edm::propagate_const<std::shared_ptr<BranchIDListHelper> > edm::SubProcess::branchIDListHelper_
private
std::map<BranchID::value_type, BranchID::value_type> edm::SubProcess::droppedBranchIDToKeptBranchID_
private

Definition at line 302 of file SubProcess.h.

Referenced by selectProducts(), and SubProcess().

edm::propagate_const<std::shared_ptr<eventsetup::EventSetupProvider> > edm::SubProcess::esp_
private
std::vector<HistoryAppender> edm::SubProcess::historyAppenders_
private
unsigned int edm::SubProcess::historyLumiOffset_
private

Definition at line 276 of file SubProcess.h.

Referenced by beginLuminosityBlock(), and doBeginLuminosityBlockAsync().

unsigned int edm::SubProcess::historyRunOffset_
private

Definition at line 277 of file SubProcess.h.

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

SelectedProductsForBranchType edm::SubProcess::keptProducts_
private

Definition at line 291 of file SubProcess.h.

Referenced by keepThisBranch().

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

Definition at line 265 of file SubProcess.h.

Referenced by beginJob().

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

Definition at line 273 of file SubProcess.h.

Referenced by beginJob().

std::shared_ptr<ProductRegistry const> edm::SubProcess::preg_
private
PrincipalCache edm::SubProcess::principalCache_
private
std::shared_ptr<ProcessConfiguration const> edm::SubProcess::processConfiguration_
private
ProcessContext edm::SubProcess::processContext_
private

Definition at line 272 of file SubProcess.h.

Referenced by beginJob(), SubProcess(), writeLumi(), and writeRun().

std::vector<ProcessHistoryRegistry> edm::SubProcess::processHistoryRegistries_
private
edm::propagate_const<std::unique_ptr<ParameterSet> > edm::SubProcess::processParameterSet_
private

Definition at line 285 of file SubProcess.h.

Referenced by SubProcess().

ProductSelector edm::SubProcess::productSelector_
private

Definition at line 293 of file SubProcess.h.

Referenced by selectProducts().

ProductSelectorRules edm::SubProcess::productSelectorRules_
private

Definition at line 292 of file SubProcess.h.

Referenced by selectProducts().

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

Definition at line 297 of file SubProcess.h.

Referenced by processAsync(), and SubProcess().

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

Definition at line 298 of file SubProcess.h.

Referenced by doEventAsync(), and SubProcess().

ServiceToken edm::SubProcess::serviceToken_
private
std::vector<SubProcess> edm::SubProcess::subProcesses_
private
edm::propagate_const<std::shared_ptr<SubProcessParentageHelper> > edm::SubProcess::subProcessParentageHelper_
private

Definition at line 269 of file SubProcess.h.

Referenced by SubProcess().

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

Definition at line 268 of file SubProcess.h.

Referenced by SubProcess().

bool edm::SubProcess::wantAllEvents_
private

Definition at line 296 of file SubProcess.h.

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