CMS 3D CMS Logo

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

#include <Schedule.h>

Public Types

typedef std::vector< edm::propagate_const< std::shared_ptr< OutputModuleCommunicator > > > AllOutputModuleCommunicators
 
typedef std::vector< Worker * > AllWorkers
 
typedef std::vector< std::string > vstring
 
typedef std::vector< Worker * > Workers
 

Public Member Functions

AllWorkers const & allWorkers () const
 returns the collection of pointers to workers More...
 
void availablePaths (std::vector< std::string > &oLabelsToFill) const
 adds to oLabelsToFill the labels for all paths in the process More...
 
void beginJob (ProductRegistry const &, eventsetup::ESRecordsToProxyIndices const &)
 
void beginStream (unsigned int)
 
bool changeModule (std::string const &iLabel, ParameterSet const &iPSet, const ProductRegistry &iRegistry, eventsetup::ESRecordsToProxyIndices const &)
 
void clearCounters ()
 Clear all the counters in the trigger report. More...
 
void closeOutputFiles ()
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
void deleteModule (std::string const &iLabel, ActivityRegistry *areg)
 Deletes module with label iLabel. More...
 
void enableEndPaths (bool active)
 
void endJob (ExceptionCollector &collector)
 
void endPaths (std::vector< std::string > &oLabelsToFill) const
 adds to oLabelsToFill the labels for all end paths in the process More...
 
bool endPathsEnabled () const
 
void endStream (unsigned int)
 
void fillModuleAndConsumesInfo (std::vector< ModuleDescription const * > &allModuleDescriptions, std::vector< std::pair< unsigned int, unsigned int >> &moduleIDToIndex, std::array< std::vector< std::vector< ModuleDescription const * >>, NumBranchTypes > &modulesWhoseProductsAreConsumedBy, std::vector< std::vector< ModuleProcessName >> &modulesInPreviousProcessesWhoseProductsAreConsumedBy, ProductRegistry const &preg) const
 
std::vector< ModuleDescription const * > getAllModuleDescriptions () const
 
void getTriggerReport (TriggerReport &rep) const
 
void getTriggerTimingReport (TriggerTimingReport &rep) const
 
void moduleDescriptionsInEndPath (std::string const &iEndPathLabel, std::vector< ModuleDescription const * > &descriptions, unsigned int hint) const
 
void moduleDescriptionsInPath (std::string const &iPathLabel, std::vector< ModuleDescription const * > &descriptions, unsigned int hint) const
 
void modulesInPath (std::string const &iPathLabel, std::vector< std::string > &oLabelsToFill) const
 adds to oLabelsToFill in execution order the labels of all modules in path iPathLabel More...
 
void openOutputFiles (FileBlock &fb)
 
void processOneEventAsync (WaitingTaskHolder iTask, unsigned int iStreamID, EventTransitionInfo &, ServiceToken const &token)
 
template<typename T >
void processOneGlobalAsync (WaitingTaskHolder iTask, typename T::TransitionInfoType &transitionInfo, ServiceToken const &token, bool cleaningUpAfterException=false)
 
template<typename T >
void processOneStreamAsync (WaitingTaskHolder iTask, unsigned int iStreamID, typename T::TransitionInfoType &transitionInfo, ServiceToken const &token, bool cleaningUpAfterException=false)
 
void respondToCloseInputFile (FileBlock const &fb)
 
void respondToOpenInputFile (FileBlock const &fb)
 
 Schedule (ParameterSet &proc_pset, service::TriggerNamesService const &tns, ProductRegistry &pregistry, BranchIDListHelper &branchIDListHelper, ThinnedAssociationsHelper &thinnedAssociationsHelper, SubProcessParentageHelper const *subProcessParentageHelper, ExceptionToActionTable const &actions, std::shared_ptr< ActivityRegistry > areg, std::shared_ptr< ProcessConfiguration > processConfiguration, bool hasSubprocesses, PreallocationConfiguration const &config, ProcessContext const *processContext)
 
bool shouldWeCloseOutput () const
 
bool terminate () const
 Return whether each output module has reached its maximum count. More...
 
int totalEvents () const
 
int totalEventsFailed () const
 
int totalEventsPassed () const
 
void triggerPaths (std::vector< std::string > &oLabelsToFill) const
 
void writeLumiAsync (WaitingTaskHolder iTask, LuminosityBlockPrincipal const &lbp, ProcessContext const *, ActivityRegistry *)
 
void writeProcessBlockAsync (WaitingTaskHolder iTask, ProcessBlockPrincipal const &, ProcessContext const *, ActivityRegistry *)
 
void writeRunAsync (WaitingTaskHolder iTask, RunPrincipal const &rp, ProcessContext const *, ActivityRegistry *, MergeableRunProductMetadata const *)
 

Private Member Functions

void limitOutput (ParameterSet const &proc_pset, BranchIDLists const &branchIDLists, SubProcessParentageHelper const *subProcessParentageHelper)
 
std::shared_ptr< ModuleRegistry > & moduleRegistry ()
 
std::shared_ptr< ModuleRegistry const > moduleRegistry () const
 
std::shared_ptr< TriggerResultInserter > & resultsInserter ()
 
std::shared_ptr< TriggerResultInserter const > resultsInserter () const
 

Private Attributes

AllOutputModuleCommunicators all_output_communicators_
 
std::vector< std::string > const * endPathNames_
 
volatile bool endpathsAreActive_
 
std::vector< edm::propagate_const< std::shared_ptr< EndPathStatusInserter > > > endPathStatusInserters_
 
edm::propagate_const< std::unique_ptr< GlobalSchedule > > globalSchedule_
 
edm::propagate_const< std::shared_ptr< ModuleRegistry > > moduleRegistry_
 
std::vector< std::string > const * pathNames_
 
std::vector< edm::propagate_const< std::shared_ptr< PathStatusInserter > > > pathStatusInserters_
 
PreallocationConfiguration preallocConfig_
 
edm::propagate_const< std::shared_ptr< TriggerResultInserter > > resultsInserter_
 
std::vector< edm::propagate_const< std::shared_ptr< StreamSchedule > > > streamSchedules_
 
edm::propagate_const< std::unique_ptr< SystemTimeKeeper > > summaryTimeKeeper_
 
bool wantSummary_
 

Detailed Description

Definition at line 121 of file Schedule.h.

Member Typedef Documentation

◆ AllOutputModuleCommunicators

Definition at line 125 of file Schedule.h.

◆ AllWorkers

typedef std::vector<Worker*> edm::Schedule::AllWorkers

Definition at line 124 of file Schedule.h.

◆ vstring

typedef std::vector<std::string> edm::Schedule::vstring

Definition at line 123 of file Schedule.h.

◆ Workers

typedef std::vector<Worker*> edm::Schedule::Workers

Definition at line 127 of file Schedule.h.

Constructor & Destructor Documentation

◆ Schedule()

edm::Schedule::Schedule ( ParameterSet proc_pset,
service::TriggerNamesService const &  tns,
ProductRegistry pregistry,
BranchIDListHelper branchIDListHelper,
ThinnedAssociationsHelper thinnedAssociationsHelper,
SubProcessParentageHelper const *  subProcessParentageHelper,
ExceptionToActionTable const &  actions,
std::shared_ptr< ActivityRegistry areg,
std::shared_ptr< ProcessConfiguration processConfiguration,
bool  hasSubprocesses,
PreallocationConfiguration const &  config,
ProcessContext const *  processContext 
)

Definition at line 657 of file Schedule.cc.

669  : //Only create a resultsInserter if there is a trigger path
670  resultsInserter_{tns.getTrigPaths().empty()
671  ? std::shared_ptr<TriggerResultInserter>{}
672  : makeInserter(proc_pset, prealloc, preg, actions, areg, processConfiguration)},
673  moduleRegistry_(new ModuleRegistry()),
675  preallocConfig_(prealloc),
676  pathNames_(&tns.getTrigPaths()),
677  endPathNames_(&tns.getEndPaths()),
678  wantSummary_(tns.wantSummary()),
679  endpathsAreActive_(true) {
680  makePathStatusInserters(pathStatusInserters_,
681  *pathNames_,
682  prealloc,
683  preg,
684  areg,
685  processConfiguration,
686  std::string("PathStatusInserter"));
687 
688  makePathStatusInserters(endPathStatusInserters_,
689  *endPathNames_,
690  prealloc,
691  preg,
692  areg,
693  processConfiguration,
694  std::string("EndPathStatusInserter"));
695 
696  assert(0 < prealloc.numberOfStreams());
697  streamSchedules_.reserve(prealloc.numberOfStreams());
698  for (unsigned int i = 0; i < prealloc.numberOfStreams(); ++i) {
699  streamSchedules_.emplace_back(make_shared_noexcept_false<StreamSchedule>(resultsInserter(),
702  moduleRegistry(),
703  proc_pset,
704  tns,
705  prealloc,
706  preg,
707  branchIDListHelper,
708  actions,
709  areg,
710  processConfiguration,
711  !hasSubprocesses,
712  StreamID{i},
713  processContext));
714  }
715 
716  //TriggerResults are injected automatically by StreamSchedules and are
717  // unknown to the ModuleRegistry
718  const std::string kTriggerResults("TriggerResults");
719  std::vector<std::string> modulesToUse;
720  modulesToUse.reserve(streamSchedules_[0]->allWorkers().size());
721  for (auto const& worker : streamSchedules_[0]->allWorkers()) {
722  if (worker->description()->moduleLabel() != kTriggerResults) {
723  modulesToUse.push_back(worker->description()->moduleLabel());
724  }
725  }
726  //The unscheduled modules are at the end of the list, but we want them at the front
727  unsigned int const nUnscheduledModules = streamSchedules_[0]->numberOfUnscheduledModules();
728  if (nUnscheduledModules > 0) {
729  std::vector<std::string> temp;
730  temp.reserve(modulesToUse.size());
731  auto itBeginUnscheduled = modulesToUse.begin() + modulesToUse.size() - nUnscheduledModules;
732  std::copy(itBeginUnscheduled, modulesToUse.end(), std::back_inserter(temp));
733  std::copy(modulesToUse.begin(), itBeginUnscheduled, std::back_inserter(temp));
734  temp.swap(modulesToUse);
735  }
736 
737  // propagate_const<T> has no reset() function
738  globalSchedule_ = std::make_unique<GlobalSchedule>(resultsInserter(),
741  moduleRegistry(),
742  modulesToUse,
743  proc_pset,
744  preg,
745  prealloc,
746  actions,
747  areg,
748  processConfiguration,
749  processContext);
750 
751  //TriggerResults is not in the top level ParameterSet so the call to
752  // reduceParameterSet would fail to find it. Just remove it up front.
753  std::set<std::string> usedModuleLabels;
754  for (auto const& worker : allWorkers()) {
755  if (worker->description()->moduleLabel() != kTriggerResults) {
756  usedModuleLabels.insert(worker->description()->moduleLabel());
757  }
758  }
759  std::vector<std::string> modulesInConfig(proc_pset.getParameter<std::vector<std::string>>("@all_modules"));
760  std::map<std::string, std::vector<std::pair<std::string, int>>> outputModulePathPositions;
761  reduceParameterSet(proc_pset, tns.getEndPaths(), modulesInConfig, usedModuleLabels, outputModulePathPositions);
762  processEDAliases(proc_pset, processConfiguration->processName(), preg);
763 
764  // At this point all BranchDescriptions are created. Mark now the
765  // ones of unscheduled workers to be on-demand.
766  if (nUnscheduledModules > 0) {
767  std::set<std::string> unscheduledModules(modulesToUse.begin(), modulesToUse.begin() + nUnscheduledModules);
768  preg.setUnscheduledProducts(unscheduledModules);
769  }
770 
771  processSwitchProducers(proc_pset, processConfiguration->processName(), preg);
772  proc_pset.registerIt();
773  processConfiguration->setParameterSetID(proc_pset.id());
774  processConfiguration->setProcessConfigurationID();
775 
776  // This is used for a little sanity-check to make sure no code
777  // modifications alter the number of workers at a later date.
778  size_t all_workers_count = allWorkers().size();
779 
780  moduleRegistry_->forAllModuleHolders([this](maker::ModuleHolder* iHolder) {
781  auto comm = iHolder->createOutputModuleCommunicator();
782  if (comm) {
783  all_output_communicators_.emplace_back(std::shared_ptr<OutputModuleCommunicator>{comm.release()});
784  }
785  });
786  // Now that the output workers are filled in, set any output limits or information.
787  limitOutput(proc_pset, branchIDListHelper.branchIDLists(), subProcessParentageHelper);
788 
789  // Sanity check: make sure nobody has added a worker after we've
790  // already relied on the WorkerManager being full.
791  assert(all_workers_count == allWorkers().size());
792 
793  branchIDListHelper.updateFromRegistry(preg);
794 
795  for (auto const& worker : streamSchedules_[0]->allWorkers()) {
796  worker->registerThinnedAssociations(preg, thinnedAssociationsHelper);
797  }
798 
799  // The output modules consume products in kept branches.
800  // So we must set this up before freezing.
801  for (auto& c : all_output_communicators_) {
802  c->selectProducts(preg, thinnedAssociationsHelper);
803  }
804 
805  for (auto& product : preg.productListUpdator()) {
806  setIsMergeable(product.second);
807  }
808 
809  {
810  // We now get a collection of types that may be consumed.
811  std::set<TypeID> productTypesConsumed;
812  std::set<TypeID> elementTypesConsumed;
813  // Loop over all modules
814  for (auto const& worker : allWorkers()) {
815  for (auto const& consumesInfo : worker->consumesInfo()) {
816  if (consumesInfo.kindOfType() == PRODUCT_TYPE) {
817  productTypesConsumed.emplace(consumesInfo.type());
818  } else {
819  elementTypesConsumed.emplace(consumesInfo.type());
820  }
821  }
822  }
823  // The SubProcess class is not a module, yet it may consume.
824  if (hasSubprocesses) {
825  productTypesConsumed.emplace(typeid(TriggerResults));
826  }
827  // The RandomNumberGeneratorService is not a module, yet it consumes.
828  { RngEDConsumer rngConsumer = RngEDConsumer(productTypesConsumed); }
829  preg.setFrozen(productTypesConsumed, elementTypesConsumed, processConfiguration->processName());
830  }
831 
832  for (auto& c : all_output_communicators_) {
833  c->setEventSelectionInfo(outputModulePathPositions, preg.anyProductProduced());
834  }
835 
836  if (wantSummary_) {
837  std::vector<const ModuleDescription*> modDesc;
838  const auto& workers = allWorkers();
839  modDesc.reserve(workers.size());
840 
841  std::transform(workers.begin(),
842  workers.end(),
843  std::back_inserter(modDesc),
844  [](const Worker* iWorker) -> const ModuleDescription* { return iWorker->description(); });
845 
846  // propagate_const<T> has no reset() function
847  summaryTimeKeeper_ = std::make_unique<SystemTimeKeeper>(prealloc.numberOfStreams(), modDesc, tns, processContext);
848  auto timeKeeperPtr = summaryTimeKeeper_.get();
849 
850  areg->watchPreModuleDestruction(timeKeeperPtr, &SystemTimeKeeper::removeModuleIfExists);
851 
852  areg->watchPreModuleEvent(timeKeeperPtr, &SystemTimeKeeper::startModuleEvent);
853  areg->watchPostModuleEvent(timeKeeperPtr, &SystemTimeKeeper::stopModuleEvent);
854  areg->watchPreModuleEventAcquire(timeKeeperPtr, &SystemTimeKeeper::restartModuleEvent);
855  areg->watchPostModuleEventAcquire(timeKeeperPtr, &SystemTimeKeeper::stopModuleEvent);
856  areg->watchPreModuleEventDelayedGet(timeKeeperPtr, &SystemTimeKeeper::pauseModuleEvent);
857  areg->watchPostModuleEventDelayedGet(timeKeeperPtr, &SystemTimeKeeper::restartModuleEvent);
858 
859  areg->watchPreSourceEvent(timeKeeperPtr, &SystemTimeKeeper::startEvent);
860  areg->watchPostEvent(timeKeeperPtr, &SystemTimeKeeper::stopEvent);
861 
862  areg->watchPrePathEvent(timeKeeperPtr, &SystemTimeKeeper::startPath);
863  areg->watchPostPathEvent(timeKeeperPtr, &SystemTimeKeeper::stopPath);
864 
865  areg->watchPostBeginJob(timeKeeperPtr, &SystemTimeKeeper::startProcessingLoop);
866  areg->watchPreEndJob(timeKeeperPtr, &SystemTimeKeeper::stopProcessingLoop);
867  //areg->preModuleEventSignal_.connect([timeKeeperPtr](StreamContext const& iContext, ModuleCallingContext const& iMod) {
868  //timeKeeperPtr->startModuleEvent(iContext,iMod);
869  //});
870  }
871 
872  } // Schedule::Schedule

References actions, and edm::service::TriggerNamesService::getTrigPaths().

Member Function Documentation

◆ allWorkers()

Schedule::AllWorkers const & edm::Schedule::allWorkers ( ) const

◆ availablePaths()

void edm::Schedule::availablePaths ( std::vector< std::string > &  oLabelsToFill) const

adds to oLabelsToFill the labels for all paths in the process

Definition at line 1453 of file Schedule.cc.

1453  {
1454  streamSchedules_[0]->availablePaths(oLabelsToFill);
1455  }

References streamSchedules_.

Referenced by edm::ScheduleInfo::availablePaths().

◆ beginJob()

void edm::Schedule::beginJob ( ProductRegistry const &  iRegistry,
eventsetup::ESRecordsToProxyIndices const &  iESIndices 
)

Definition at line 1355 of file Schedule.cc.

1355  {
1356  globalSchedule_->beginJob(iRegistry, iESIndices);
1357  }

References globalSchedule_.

◆ beginStream()

void edm::Schedule::beginStream ( unsigned int  iStreamID)

Definition at line 1359 of file Schedule.cc.

1359  {
1360  assert(iStreamID < streamSchedules_.size());
1361  streamSchedules_[iStreamID]->beginStream();
1362  }

References cms::cuda::assert(), and streamSchedules_.

◆ changeModule()

bool edm::Schedule::changeModule ( std::string const &  iLabel,
ParameterSet const &  iPSet,
const ProductRegistry iRegistry,
eventsetup::ESRecordsToProxyIndices const &  iIndices 
)

clone the type of module with label iLabel but configure with iPSet. Returns true if successful.

Definition at line 1377 of file Schedule.cc.

1380  {
1381  Worker* found = nullptr;
1382  for (auto const& worker : allWorkers()) {
1383  if (worker->description()->moduleLabel() == iLabel) {
1384  found = worker;
1385  break;
1386  }
1387  }
1388  if (nullptr == found) {
1389  return false;
1390  }
1391 
1392  auto newMod = moduleRegistry_->replaceModule(iLabel, iPSet, preallocConfig_);
1393 
1394  globalSchedule_->replaceModule(newMod, iLabel);
1395 
1396  for (auto& s : streamSchedules_) {
1397  s->replaceModule(newMod, iLabel);
1398  }
1399 
1400  {
1401  //Need to updateLookup in order to make getByToken work
1402  auto const processBlockLookup = iRegistry.productLookup(InProcess);
1403  auto const runLookup = iRegistry.productLookup(InRun);
1404  auto const lumiLookup = iRegistry.productLookup(InLumi);
1405  auto const eventLookup = iRegistry.productLookup(InEvent);
1406  found->updateLookup(InProcess, *runLookup);
1407  found->updateLookup(InRun, *runLookup);
1408  found->updateLookup(InLumi, *lumiLookup);
1409  found->updateLookup(InEvent, *eventLookup);
1410  found->updateLookup(iIndices);
1411 
1412  auto const& processName = newMod->moduleDescription().processName();
1413  auto const& processBlockModuleToIndicies = processBlockLookup->indiciesForModulesInProcess(processName);
1414  auto const& runModuleToIndicies = runLookup->indiciesForModulesInProcess(processName);
1415  auto const& lumiModuleToIndicies = lumiLookup->indiciesForModulesInProcess(processName);
1416  auto const& eventModuleToIndicies = eventLookup->indiciesForModulesInProcess(processName);
1417  found->resolvePutIndicies(InProcess, processBlockModuleToIndicies);
1418  found->resolvePutIndicies(InRun, runModuleToIndicies);
1419  found->resolvePutIndicies(InLumi, lumiModuleToIndicies);
1420  found->resolvePutIndicies(InEvent, eventModuleToIndicies);
1421  }
1422 
1423  return true;
1424  }

References allWorkers(), newFWLiteAna::found, globalSchedule_, edm::InEvent, edm::InLumi, edm::InProcess, edm::InRun, moduleRegistry_, preallocConfig_, SimL1EmulatorRepack_CalouGT_cff::processName, edm::ProductRegistry::productLookup(), alignCSCRings::s, and streamSchedules_.

◆ clearCounters()

void edm::Schedule::clearCounters ( )

Clear all the counters in the trigger report.

Definition at line 1578 of file Schedule.cc.

1578  {
1579  for (auto& s : streamSchedules_) {
1580  s->clearCounters();
1581  }
1582  }

References alignCSCRings::s, and streamSchedules_.

◆ closeOutputFiles()

void edm::Schedule::closeOutputFiles ( )

Definition at line 1213 of file Schedule.cc.

1213  {
1214  using std::placeholders::_1;
1216  }

References all_output_communicators_, edm::OutputModuleCommunicator::closeFile(), and edm::for_all().

◆ convertCurrentProcessAlias()

void edm::Schedule::convertCurrentProcessAlias ( std::string const &  processName)

Convert "@currentProcess" in InputTag process names to the actual current process name.

Definition at line 1447 of file Schedule.cc.

1447  {
1448  for (auto const& worker : allWorkers()) {
1449  worker->convertCurrentProcessAlias(processName);
1450  }
1451  }

References allWorkers(), and SimL1EmulatorRepack_CalouGT_cff::processName.

◆ deleteModule()

void edm::Schedule::deleteModule ( std::string const &  iLabel,
ActivityRegistry areg 
)

Deletes module with label iLabel.

Definition at line 1426 of file Schedule.cc.

1426  {
1427  globalSchedule_->deleteModule(iLabel);
1428  for (auto& stream : streamSchedules_) {
1429  stream->deleteModule(iLabel);
1430  }
1431  moduleRegistry_->deleteModule(iLabel, areg->preModuleDestructionSignal_, areg->postModuleDestructionSignal_);
1432  }

References globalSchedule_, moduleRegistry_, edm::ActivityRegistry::postModuleDestructionSignal_, edm::ActivityRegistry::preModuleDestructionSignal_, cms::cuda::stream, and streamSchedules_.

◆ enableEndPaths()

void edm::Schedule::enableEndPaths ( bool  active)

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

Definition at line 1528 of file Schedule.cc.

1528  {
1529  endpathsAreActive_ = active;
1530  for (auto& s : streamSchedules_) {
1531  s->enableEndPaths(active);
1532  }
1533  }

References endpathsAreActive_, alignCSCRings::s, and streamSchedules_.

◆ endJob()

void edm::Schedule::endJob ( ExceptionCollector collector)

Definition at line 930 of file Schedule.cc.

930  {
931  globalSchedule_->endJob(collector);
932  if (collector.hasThrown()) {
933  return;
934  }
935 
936  if (wantSummary_ == false)
937  return;
938  {
939  TriggerReport tr;
940  getTriggerReport(tr);
941 
942  // The trigger report (pass/fail etc.):
943 
944  LogFwkVerbatim("FwkSummary") << "";
945  if (streamSchedules_[0]->context().processContext()->isSubProcess()) {
946  LogFwkVerbatim("FwkSummary") << "TrigReport Process: "
947  << streamSchedules_[0]->context().processContext()->processName();
948  }
949  LogFwkVerbatim("FwkSummary") << "TrigReport "
950  << "---------- Event Summary ------------";
951  if (!tr.trigPathSummaries.empty()) {
952  LogFwkVerbatim("FwkSummary") << "TrigReport"
953  << " Events total = " << tr.eventSummary.totalEvents
954  << " passed = " << tr.eventSummary.totalEventsPassed
955  << " failed = " << tr.eventSummary.totalEventsFailed << "";
956  } else {
957  LogFwkVerbatim("FwkSummary") << "TrigReport"
958  << " Events total = " << tr.eventSummary.totalEvents
959  << " passed = " << tr.eventSummary.totalEvents << " failed = 0";
960  }
961 
962  LogFwkVerbatim("FwkSummary") << "";
963  LogFwkVerbatim("FwkSummary") << "TrigReport "
964  << "---------- Path Summary ------------";
965  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(10) << "Trig Bit#"
966  << " " << std::right << std::setw(10) << "Executed"
967  << " " << std::right << std::setw(10) << "Passed"
968  << " " << std::right << std::setw(10) << "Failed"
969  << " " << std::right << std::setw(10) << "Error"
970  << " "
971  << "Name"
972  << "";
973  for (auto const& p : tr.trigPathSummaries) {
974  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(5) << 1 << std::right << std::setw(5)
975  << p.bitPosition << " " << std::right << std::setw(10) << p.timesRun << " "
976  << std::right << std::setw(10) << p.timesPassed << " " << std::right
977  << std::setw(10) << p.timesFailed << " " << std::right << std::setw(10)
978  << p.timesExcept << " " << p.name << "";
979  }
980 
981  /*
982  std::vector<int>::const_iterator epi = empty_trig_paths_.begin();
983  std::vector<int>::const_iterator epe = empty_trig_paths_.end();
984  std::vector<std::string>::const_iterator epn = empty_trig_path_names_.begin();
985  for (; epi != epe; ++epi, ++epn) {
986 
987  LogFwkVerbatim("FwkSummary") << "TrigReport "
988  << std::right << std::setw(5) << 1
989  << std::right << std::setw(5) << *epi << " "
990  << std::right << std::setw(10) << totalEvents() << " "
991  << std::right << std::setw(10) << totalEvents() << " "
992  << std::right << std::setw(10) << 0 << " "
993  << std::right << std::setw(10) << 0 << " "
994  << *epn << "";
995  }
996  */
997 
998  LogFwkVerbatim("FwkSummary") << "";
999  LogFwkVerbatim("FwkSummary") << "TrigReport "
1000  << "-------End-Path Summary ------------";
1001  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(10) << "Trig Bit#"
1002  << " " << std::right << std::setw(10) << "Executed"
1003  << " " << std::right << std::setw(10) << "Passed"
1004  << " " << std::right << std::setw(10) << "Failed"
1005  << " " << std::right << std::setw(10) << "Error"
1006  << " "
1007  << "Name"
1008  << "";
1009  for (auto const& p : tr.endPathSummaries) {
1010  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(5) << 0 << std::right << std::setw(5)
1011  << p.bitPosition << " " << std::right << std::setw(10) << p.timesRun << " "
1012  << std::right << std::setw(10) << p.timesPassed << " " << std::right
1013  << std::setw(10) << p.timesFailed << " " << std::right << std::setw(10)
1014  << p.timesExcept << " " << p.name << "";
1015  }
1016 
1017  for (auto const& p : tr.trigPathSummaries) {
1018  LogFwkVerbatim("FwkSummary") << "";
1019  LogFwkVerbatim("FwkSummary") << "TrigReport "
1020  << "---------- Modules in Path: " << p.name << " ------------";
1021  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(10) << "Trig Bit#"
1022  << " " << std::right << std::setw(10) << "Visited"
1023  << " " << std::right << std::setw(10) << "Passed"
1024  << " " << std::right << std::setw(10) << "Failed"
1025  << " " << std::right << std::setw(10) << "Error"
1026  << " "
1027  << "Name"
1028  << "";
1029 
1030  unsigned int bitpos = 0;
1031  for (auto const& mod : p.moduleInPathSummaries) {
1032  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(5) << 1 << std::right << std::setw(5)
1033  << bitpos << " " << std::right << std::setw(10) << mod.timesVisited << " "
1034  << std::right << std::setw(10) << mod.timesPassed << " " << std::right
1035  << std::setw(10) << mod.timesFailed << " " << std::right << std::setw(10)
1036  << mod.timesExcept << " " << mod.moduleLabel << "";
1037  ++bitpos;
1038  }
1039  }
1040 
1041  for (auto const& p : tr.endPathSummaries) {
1042  LogFwkVerbatim("FwkSummary") << "";
1043  LogFwkVerbatim("FwkSummary") << "TrigReport "
1044  << "------ Modules in End-Path: " << p.name << " ------------";
1045  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(10) << "Trig Bit#"
1046  << " " << std::right << std::setw(10) << "Visited"
1047  << " " << std::right << std::setw(10) << "Passed"
1048  << " " << std::right << std::setw(10) << "Failed"
1049  << " " << std::right << std::setw(10) << "Error"
1050  << " "
1051  << "Name"
1052  << "";
1053 
1054  unsigned int bitpos = 0;
1055  for (auto const& mod : p.moduleInPathSummaries) {
1056  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(5) << 0 << std::right << std::setw(5)
1057  << bitpos << " " << std::right << std::setw(10) << mod.timesVisited << " "
1058  << std::right << std::setw(10) << mod.timesPassed << " " << std::right
1059  << std::setw(10) << mod.timesFailed << " " << std::right << std::setw(10)
1060  << mod.timesExcept << " " << mod.moduleLabel << "";
1061  ++bitpos;
1062  }
1063  }
1064 
1065  LogFwkVerbatim("FwkSummary") << "";
1066  LogFwkVerbatim("FwkSummary") << "TrigReport "
1067  << "---------- Module Summary ------------";
1068  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(10) << "Visited"
1069  << " " << std::right << std::setw(10) << "Executed"
1070  << " " << std::right << std::setw(10) << "Passed"
1071  << " " << std::right << std::setw(10) << "Failed"
1072  << " " << std::right << std::setw(10) << "Error"
1073  << " "
1074  << "Name"
1075  << "";
1076  for (auto const& worker : tr.workerSummaries) {
1077  LogFwkVerbatim("FwkSummary") << "TrigReport " << std::right << std::setw(10) << worker.timesVisited << " "
1078  << std::right << std::setw(10) << worker.timesRun << " " << std::right
1079  << std::setw(10) << worker.timesPassed << " " << std::right << std::setw(10)
1080  << worker.timesFailed << " " << std::right << std::setw(10) << worker.timesExcept
1081  << " " << worker.moduleLabel << "";
1082  }
1083  LogFwkVerbatim("FwkSummary") << "";
1084  }
1085  // The timing report (CPU and Real Time):
1086  TriggerTimingReport tr;
1088 
1089  const int totalEvents = std::max(1, tr.eventSummary.totalEvents);
1090 
1091  LogFwkVerbatim("FwkSummary") << "TimeReport "
1092  << "---------- Event Summary ---[sec]----";
1093  LogFwkVerbatim("FwkSummary") << "TimeReport" << std::setprecision(6) << std::fixed
1094  << " event loop CPU/event = " << tr.eventSummary.cpuTime / totalEvents;
1095  LogFwkVerbatim("FwkSummary") << "TimeReport" << std::setprecision(6) << std::fixed
1096  << " event loop Real/event = " << tr.eventSummary.realTime / totalEvents;
1097  LogFwkVerbatim("FwkSummary") << "TimeReport" << std::setprecision(6) << std::fixed
1098  << " sum Streams Real/event = " << tr.eventSummary.sumStreamRealTime / totalEvents;
1099  LogFwkVerbatim("FwkSummary") << "TimeReport" << std::setprecision(6) << std::fixed
1100  << " efficiency CPU/Real/thread = "
1101  << tr.eventSummary.cpuTime / tr.eventSummary.realTime /
1103 
1104  constexpr int kColumn1Size = 10;
1105  constexpr int kColumn2Size = 12;
1106  constexpr int kColumn3Size = 12;
1107  LogFwkVerbatim("FwkSummary") << "";
1108  LogFwkVerbatim("FwkSummary") << "TimeReport "
1109  << "---------- Path Summary ---[Real sec]----";
1110  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1111  << " " << std::right << std::setw(kColumn2Size) << "per exec"
1112  << " Name";
1113  for (auto const& p : tr.trigPathSummaries) {
1114  const int timesRun = std::max(1, p.timesRun);
1115  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::setprecision(6) << std::fixed << std::right
1116  << std::setw(kColumn1Size) << p.realTime / totalEvents << " " << std::right
1117  << std::setw(kColumn2Size) << p.realTime / timesRun << " " << p.name << "";
1118  }
1119  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1120  << " " << std::right << std::setw(kColumn2Size) << "per exec"
1121  << " Name"
1122  << "";
1123 
1124  LogFwkVerbatim("FwkSummary") << "";
1125  LogFwkVerbatim("FwkSummary") << "TimeReport "
1126  << "-------End-Path Summary ---[Real sec]----";
1127  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1128  << " " << std::right << std::setw(kColumn2Size) << "per exec"
1129  << " Name"
1130  << "";
1131  for (auto const& p : tr.endPathSummaries) {
1132  const int timesRun = std::max(1, p.timesRun);
1133 
1134  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::setprecision(6) << std::fixed << std::right
1135  << std::setw(kColumn1Size) << p.realTime / totalEvents << " " << std::right
1136  << std::setw(kColumn2Size) << p.realTime / timesRun << " " << p.name << "";
1137  }
1138  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1139  << " " << std::right << std::setw(kColumn2Size) << "per exec"
1140  << " Name"
1141  << "";
1142 
1143  for (auto const& p : tr.trigPathSummaries) {
1144  LogFwkVerbatim("FwkSummary") << "";
1145  LogFwkVerbatim("FwkSummary") << "TimeReport "
1146  << "---------- Modules in Path: " << p.name << " ---[Real sec]----";
1147  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1148  << " " << std::right << std::setw(kColumn2Size) << "per visit"
1149  << " Name"
1150  << "";
1151  for (auto const& mod : p.moduleInPathSummaries) {
1152  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::setprecision(6) << std::fixed << std::right
1153  << std::setw(kColumn1Size) << mod.realTime / totalEvents << " " << std::right
1154  << std::setw(kColumn2Size) << mod.realTime / std::max(1, mod.timesVisited) << " "
1155  << mod.moduleLabel << "";
1156  }
1157  }
1158  if (not tr.trigPathSummaries.empty()) {
1159  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1160  << " " << std::right << std::setw(kColumn2Size) << "per visit"
1161  << " Name"
1162  << "";
1163  }
1164  for (auto const& p : tr.endPathSummaries) {
1165  LogFwkVerbatim("FwkSummary") << "";
1166  LogFwkVerbatim("FwkSummary") << "TimeReport "
1167  << "------ Modules in End-Path: " << p.name << " ---[Real sec]----";
1168  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1169  << " " << std::right << std::setw(kColumn2Size) << "per visit"
1170  << " Name"
1171  << "";
1172  for (auto const& mod : p.moduleInPathSummaries) {
1173  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::setprecision(6) << std::fixed << std::right
1174  << std::setw(kColumn1Size) << mod.realTime / totalEvents << " " << std::right
1175  << std::setw(kColumn2Size) << mod.realTime / std::max(1, mod.timesVisited) << " "
1176  << mod.moduleLabel << "";
1177  }
1178  }
1179  if (not tr.endPathSummaries.empty()) {
1180  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1181  << " " << std::right << std::setw(kColumn2Size) << "per visit"
1182  << " Name"
1183  << "";
1184  }
1185  LogFwkVerbatim("FwkSummary") << "";
1186  LogFwkVerbatim("FwkSummary") << "TimeReport "
1187  << "---------- Module Summary ---[Real sec]----";
1188  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1189  << " " << std::right << std::setw(kColumn2Size) << "per exec"
1190  << " " << std::right << std::setw(kColumn3Size) << "per visit"
1191  << " Name"
1192  << "";
1193  for (auto const& worker : tr.workerSummaries) {
1194  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::setprecision(6) << std::fixed << std::right
1195  << std::setw(kColumn1Size) << worker.realTime / totalEvents << " " << std::right
1196  << std::setw(kColumn2Size) << worker.realTime / std::max(1, worker.timesRun) << " "
1197  << std::right << std::setw(kColumn3Size)
1198  << worker.realTime / std::max(1, worker.timesVisited) << " " << worker.moduleLabel
1199  << "";
1200  }
1201  LogFwkVerbatim("FwkSummary") << "TimeReport " << std::right << std::setw(kColumn1Size) << "per event"
1202  << " " << std::right << std::setw(kColumn2Size) << "per exec"
1203  << " " << std::right << std::setw(kColumn3Size) << "per visit"
1204  << " Name"
1205  << "";
1206 
1207  LogFwkVerbatim("FwkSummary") << "";
1208  LogFwkVerbatim("FwkSummary") << "T---Report end!"
1209  << "";
1210  LogFwkVerbatim("FwkSummary") << "";
1211  }

References edm::EventTimingSummary::cpuTime, edm::TriggerTimingReport::endPathSummaries, edm::TriggerReport::endPathSummaries, edm::TriggerTimingReport::eventSummary, edm::TriggerReport::eventSummary, alignBH_cfg::fixed, getTriggerReport(), getTriggerTimingReport(), globalSchedule_, edm::ExceptionCollector::hasThrown(), SiStripPI::max, mod(), edm::PreallocationConfiguration::numberOfThreads(), AlCaHLTBitMon_ParallelJobs::p, preallocConfig_, edm::EventTimingSummary::realTime, streamSchedules_, edm::EventTimingSummary::sumStreamRealTime, edm::EventTimingSummary::totalEvents, edm::EventSummary::totalEvents, totalEvents(), edm::EventSummary::totalEventsFailed, edm::EventSummary::totalEventsPassed, edm::TriggerTimingReport::trigPathSummaries, edm::TriggerReport::trigPathSummaries, wantSummary_, edm::TriggerTimingReport::workerSummaries, and edm::TriggerReport::workerSummaries.

◆ endPaths()

void edm::Schedule::endPaths ( std::vector< std::string > &  oLabelsToFill) const

adds to oLabelsToFill the labels for all end paths in the process

Definition at line 1459 of file Schedule.cc.

1459 { oLabelsToFill = *endPathNames_; }

References endPathNames_.

◆ endPathsEnabled()

bool edm::Schedule::endPathsEnabled ( ) const

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

Definition at line 1535 of file Schedule.cc.

1535 { return endpathsAreActive_; }

References endpathsAreActive_.

◆ endStream()

void edm::Schedule::endStream ( unsigned int  iStreamID)

Definition at line 1364 of file Schedule.cc.

1364  {
1365  assert(iStreamID < streamSchedules_.size());
1366  streamSchedules_[iStreamID]->endStream();
1367  }

References cms::cuda::assert(), and streamSchedules_.

◆ fillModuleAndConsumesInfo()

void edm::Schedule::fillModuleAndConsumesInfo ( std::vector< ModuleDescription const * > &  allModuleDescriptions,
std::vector< std::pair< unsigned int, unsigned int >> &  moduleIDToIndex,
std::array< std::vector< std::vector< ModuleDescription const * >>, NumBranchTypes > &  modulesWhoseProductsAreConsumedBy,
std::vector< std::vector< ModuleProcessName >> &  modulesInPreviousProcessesWhoseProductsAreConsumedBy,
ProductRegistry const &  preg 
) const

Definition at line 1477 of file Schedule.cc.

1482  {
1483  allModuleDescriptions.clear();
1484  moduleIDToIndex.clear();
1485  for (auto iBranchType = 0U; iBranchType < NumBranchTypes; ++iBranchType) {
1486  modulesWhoseProductsAreConsumedBy[iBranchType].clear();
1487  }
1488  modulesInPreviousProcessesWhoseProductsAreConsumedBy.clear();
1489 
1490  allModuleDescriptions.reserve(allWorkers().size());
1491  moduleIDToIndex.reserve(allWorkers().size());
1492  for (auto iBranchType = 0U; iBranchType < NumBranchTypes; ++iBranchType) {
1493  modulesWhoseProductsAreConsumedBy[iBranchType].resize(allWorkers().size());
1494  }
1495  modulesInPreviousProcessesWhoseProductsAreConsumedBy.resize(allWorkers().size());
1496 
1497  std::map<std::string, ModuleDescription const*> labelToDesc;
1498  unsigned int i = 0;
1499  for (auto const& worker : allWorkers()) {
1500  ModuleDescription const* p = worker->description();
1501  allModuleDescriptions.push_back(p);
1502  moduleIDToIndex.push_back(std::pair<unsigned int, unsigned int>(p->id(), i));
1503  labelToDesc[p->moduleLabel()] = p;
1504  ++i;
1505  }
1506  sort_all(moduleIDToIndex);
1507 
1508  i = 0;
1509  for (auto const& worker : allWorkers()) {
1510  std::array<std::vector<ModuleDescription const*>*, NumBranchTypes> modules;
1511  for (auto iBranchType = 0U; iBranchType < NumBranchTypes; ++iBranchType) {
1512  modules[iBranchType] = &modulesWhoseProductsAreConsumedBy[iBranchType].at(i);
1513  }
1514 
1515  std::vector<ModuleProcessName>& modulesInPreviousProcesses =
1516  modulesInPreviousProcessesWhoseProductsAreConsumedBy.at(i);
1517  try {
1518  worker->modulesWhoseProductsAreConsumed(modules, modulesInPreviousProcesses, preg, labelToDesc);
1519  } catch (cms::Exception& ex) {
1520  ex.addContext("Calling Worker::modulesWhoseProductsAreConsumed() for module " +
1521  worker->description()->moduleLabel());
1522  throw;
1523  }
1524  ++i;
1525  }
1526  }

References cms::Exception::addContext(), allWorkers(), mps_fire::i, LogMessageMonitor_cff::modules, edm::NumBranchTypes, AlCaHLTBitMon_ParallelJobs::p, findQualityFiles::size, edm::sort_all(), and mitigatedMETSequence_cff::U.

◆ getAllModuleDescriptions()

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

Return a vector allowing const access to all the ModuleDescriptions for this Schedule. *** N.B. *** Ownership of the ModuleDescriptions is not *** passed to the caller. Do not call delete on these *** pointers!

Definition at line 1434 of file Schedule.cc.

1434  {
1435  std::vector<ModuleDescription const*> result;
1436  result.reserve(allWorkers().size());
1437 
1438  for (auto const& worker : allWorkers()) {
1439  ModuleDescription const* p = worker->description();
1440  result.push_back(p);
1441  }
1442  return result;
1443  }

References allWorkers(), AlCaHLTBitMon_ParallelJobs::p, mps_fire::result, and findQualityFiles::size.

Referenced by edm::ScheduleInfo::availableModuleLabels(), and edm::ScheduleInfo::parametersForModule().

◆ getTriggerReport()

void edm::Schedule::getTriggerReport ( TriggerReport rep) const

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

Definition at line 1537 of file Schedule.cc.

1537  {
1538  rep.eventSummary.totalEvents = 0;
1539  rep.eventSummary.totalEventsPassed = 0;
1540  rep.eventSummary.totalEventsFailed = 0;
1541  for (auto& s : streamSchedules_) {
1542  s->getTriggerReport(rep);
1543  }
1544  sort_all(rep.workerSummaries);
1545  }

References cuy::rep, alignCSCRings::s, edm::sort_all(), and streamSchedules_.

Referenced by endJob().

◆ getTriggerTimingReport()

void edm::Schedule::getTriggerTimingReport ( TriggerTimingReport rep) const

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

Definition at line 1547 of file Schedule.cc.

1547  {
1548  rep.eventSummary.totalEvents = 0;
1549  rep.eventSummary.cpuTime = 0.;
1550  rep.eventSummary.realTime = 0.;
1551  summaryTimeKeeper_->fillTriggerTimingReport(rep);
1552  }

References cuy::rep, and summaryTimeKeeper_.

Referenced by endJob().

◆ limitOutput()

void edm::Schedule::limitOutput ( ParameterSet const &  proc_pset,
BranchIDLists const &  branchIDLists,
SubProcessParentageHelper const *  subProcessParentageHelper 
)
private

Definition at line 874 of file Schedule.cc.

876  {
877  std::string const output("output");
878 
879  ParameterSet const& maxEventsPSet = proc_pset.getUntrackedParameterSet("maxEvents");
880  int maxEventSpecs = 0;
881  int maxEventsOut = -1;
882  ParameterSet const* vMaxEventsOut = nullptr;
883  std::vector<std::string> intNamesE = maxEventsPSet.getParameterNamesForType<int>(false);
884  if (search_all(intNamesE, output)) {
885  maxEventsOut = maxEventsPSet.getUntrackedParameter<int>(output);
886  ++maxEventSpecs;
887  }
888  std::vector<std::string> psetNamesE;
889  maxEventsPSet.getParameterSetNames(psetNamesE, false);
890  if (search_all(psetNamesE, output)) {
891  vMaxEventsOut = &maxEventsPSet.getUntrackedParameterSet(output);
892  ++maxEventSpecs;
893  }
894 
895  if (maxEventSpecs > 1) {
897  << "\nAt most, one form of 'output' may appear in the 'maxEvents' parameter set";
898  }
899 
900  for (auto& c : all_output_communicators_) {
901  OutputModuleDescription desc(branchIDLists, maxEventsOut, subProcessParentageHelper);
902  if (vMaxEventsOut != nullptr && !vMaxEventsOut->empty()) {
903  std::string const& moduleLabel = c->description().moduleLabel();
904  try {
905  desc.maxEvents_ = vMaxEventsOut->getUntrackedParameter<int>(moduleLabel);
906  } catch (Exception const&) {
908  << "\nNo entry in 'maxEvents' for output module label '" << moduleLabel << "'.\n";
909  }
910  }
911  c->configure(desc);
912  }
913  }

References all_output_communicators_, c, edm::errors::Configuration, submitPVResolutionJobs::desc, edm::ParameterSet::empty(), Exception, edm::ParameterSet::getParameterNamesForType(), edm::ParameterSet::getParameterSetNames(), edm::ParameterSet::getUntrackedParameter(), edm::ParameterSet::getUntrackedParameterSet(), HerwigMaxPtPartonFilter_cfi::moduleLabel, convertSQLitetoXML_cfg::output, edm::search_all(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ moduleDescriptionsInEndPath()

void edm::Schedule::moduleDescriptionsInEndPath ( std::string const &  iEndPathLabel,
std::vector< ModuleDescription const * > &  descriptions,
unsigned int  hint 
) const

adds the ModuleDescriptions into the vector for the modules scheduled in path iEndPathLabel hint is a performance optimization if you might know the position of the module in the path

Definition at line 1471 of file Schedule.cc.

1473  {
1474  streamSchedules_[0]->moduleDescriptionsInEndPath(iEndPathLabel, descriptions, hint);
1475  }

References streamSchedules_.

◆ moduleDescriptionsInPath()

void edm::Schedule::moduleDescriptionsInPath ( std::string const &  iPathLabel,
std::vector< ModuleDescription const * > &  descriptions,
unsigned int  hint 
) const

adds the ModuleDescriptions into the vector for the modules scheduled in path iPathLabel hint is a performance optimization if you might know the position of the module in the path

Definition at line 1465 of file Schedule.cc.

1467  {
1468  streamSchedules_[0]->moduleDescriptionsInPath(iPathLabel, descriptions, hint);
1469  }

References streamSchedules_.

◆ moduleRegistry() [1/2]

std::shared_ptr<ModuleRegistry>& edm::Schedule::moduleRegistry ( )
inlineprivate

Definition at line 302 of file Schedule.h.

References edm::get_underlying_safe(), and moduleRegistry_.

◆ moduleRegistry() [2/2]

std::shared_ptr<ModuleRegistry const> edm::Schedule::moduleRegistry ( ) const
inlineprivate

Definition at line 301 of file Schedule.h.

References edm::get_underlying_safe(), and moduleRegistry_.

◆ modulesInPath()

void edm::Schedule::modulesInPath ( std::string const &  iPathLabel,
std::vector< std::string > &  oLabelsToFill 
) const

adds to oLabelsToFill in execution order the labels of all modules in path iPathLabel

Definition at line 1461 of file Schedule.cc.

1461  {
1462  streamSchedules_[0]->modulesInPath(iPathLabel, oLabelsToFill);
1463  }

References streamSchedules_.

Referenced by edm::ScheduleInfo::modulesInPath().

◆ openOutputFiles()

void edm::Schedule::openOutputFiles ( FileBlock fb)

Definition at line 1218 of file Schedule.cc.

1218  {
1219  using std::placeholders::_1;
1221  }

References all_output_communicators_, benchmark_cfg::fb, edm::for_all(), and edm::OutputModuleCommunicator::openFile().

◆ processOneEventAsync()

void edm::Schedule::processOneEventAsync ( WaitingTaskHolder  iTask,
unsigned int  iStreamID,
EventTransitionInfo info,
ServiceToken const &  token 
)

Definition at line 1369 of file Schedule.cc.

1372  {
1373  assert(iStreamID < streamSchedules_.size());
1374  streamSchedules_[iStreamID]->processOneEventAsync(std::move(iTask), info, token, pathStatusInserters_);
1375  }

References cms::cuda::assert(), info(), eostools::move(), pathStatusInserters_, streamSchedules_, and unpackBuffers-CaloStage2::token.

◆ processOneGlobalAsync()

template<typename T >
void edm::Schedule::processOneGlobalAsync ( WaitingTaskHolder  iTask,
typename T::TransitionInfoType &  transitionInfo,
ServiceToken const &  token,
bool  cleaningUpAfterException = false 
)

Definition at line 336 of file Schedule.h.

339  {
340  globalSchedule_->processOneGlobalAsync<T>(iTaskHolder, transitionInfo, token, cleaningUpAfterException);
341  }

References globalSchedule_, and unpackBuffers-CaloStage2::token.

Referenced by edm::beginGlobalTransitionAsync(), and edm::endGlobalTransitionAsync().

◆ processOneStreamAsync()

template<typename T >
void edm::Schedule::processOneStreamAsync ( WaitingTaskHolder  iTask,
unsigned int  iStreamID,
typename T::TransitionInfoType &  transitionInfo,
ServiceToken const &  token,
bool  cleaningUpAfterException = false 
)

Definition at line 325 of file Schedule.h.

329  {
330  assert(iStreamID < streamSchedules_.size());
331  streamSchedules_[iStreamID]->processOneStreamAsync<T>(
332  std::move(iTaskHolder), transitionInfo, token, cleaningUpAfterException);
333  }

References cms::cuda::assert(), eostools::move(), streamSchedules_, and unpackBuffers-CaloStage2::token.

Referenced by edm::beginStreamTransitionAsync(), and edm::endStreamTransitionAsync().

◆ respondToCloseInputFile()

void edm::Schedule::respondToCloseInputFile ( FileBlock const &  fb)

Definition at line 1350 of file Schedule.cc.

1350  {
1351  using std::placeholders::_1;
1352  for_all(allWorkers(), std::bind(&Worker::respondToCloseInputFile, _1, std::cref(fb)));
1353  }

References allWorkers(), benchmark_cfg::fb, edm::for_all(), and edm::Worker::respondToCloseInputFile().

◆ respondToOpenInputFile()

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

Definition at line 1345 of file Schedule.cc.

1345  {
1346  using std::placeholders::_1;
1347  for_all(allWorkers(), std::bind(&Worker::respondToOpenInputFile, _1, std::cref(fb)));
1348  }

References allWorkers(), benchmark_cfg::fb, edm::for_all(), and edm::Worker::respondToOpenInputFile().

◆ resultsInserter() [1/2]

std::shared_ptr<TriggerResultInserter>& edm::Schedule::resultsInserter ( )
inlineprivate

Definition at line 300 of file Schedule.h.

References edm::get_underlying_safe(), and resultsInserter_.

◆ resultsInserter() [2/2]

std::shared_ptr<TriggerResultInserter const> edm::Schedule::resultsInserter ( ) const
inlineprivate

Definition at line 297 of file Schedule.h.

297  {
299  }

References edm::get_underlying_safe(), and resultsInserter_.

◆ shouldWeCloseOutput()

bool edm::Schedule::shouldWeCloseOutput ( ) const

Definition at line 1336 of file Schedule.cc.

1336  {
1337  using std::placeholders::_1;
1338  // Return true iff at least one output module returns true.
1339  return (std::find_if(all_output_communicators_.begin(),
1343  }

References all_output_communicators_, and edm::OutputModuleCommunicator::shouldWeCloseFile().

◆ terminate()

bool edm::Schedule::terminate ( void  ) const

Return whether each output module has reached its maximum count.

Definition at line 915 of file Schedule.cc.

915  {
916  if (all_output_communicators_.empty()) {
917  return false;
918  }
919  for (auto& c : all_output_communicators_) {
920  if (!c->limitReached()) {
921  // Found an output module that has not reached output event count.
922  return false;
923  }
924  }
925  LogInfo("SuccessfulTermination") << "The job is terminating successfully because each output module\n"
926  << "has reached its configured limit.\n";
927  return true;
928  }

References all_output_communicators_, and c.

◆ totalEvents()

int edm::Schedule::totalEvents ( ) const

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

Definition at line 1554 of file Schedule.cc.

1554  {
1555  int returnValue = 0;
1556  for (auto& s : streamSchedules_) {
1557  returnValue += s->totalEvents();
1558  }
1559  return returnValue;
1560  }

References alignCSCRings::s, and streamSchedules_.

Referenced by endJob().

◆ totalEventsFailed()

int edm::Schedule::totalEventsFailed ( ) const

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

Definition at line 1570 of file Schedule.cc.

1570  {
1571  int returnValue = 0;
1572  for (auto& s : streamSchedules_) {
1573  returnValue += s->totalEventsFailed();
1574  }
1575  return returnValue;
1576  }

References alignCSCRings::s, and streamSchedules_.

◆ totalEventsPassed()

int edm::Schedule::totalEventsPassed ( ) const

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

Definition at line 1562 of file Schedule.cc.

1562  {
1563  int returnValue = 0;
1564  for (auto& s : streamSchedules_) {
1565  returnValue += s->totalEventsPassed();
1566  }
1567  return returnValue;
1568  }

References alignCSCRings::s, and streamSchedules_.

◆ triggerPaths()

void edm::Schedule::triggerPaths ( std::vector< std::string > &  oLabelsToFill) const

Adds to oLabelsToFill the labels for all trigger paths in the process. This is different from availablePaths because it includes the empty paths to match the entries in TriggerResults exactly.

Definition at line 1457 of file Schedule.cc.

1457 { oLabelsToFill = *pathNames_; }

References pathNames_.

◆ writeLumiAsync()

void edm::Schedule::writeLumiAsync ( WaitingTaskHolder  iTask,
LuminosityBlockPrincipal const &  lbp,
ProcessContext const *  processContext,
ActivityRegistry activityRegistry 
)

Definition at line 1299 of file Schedule.cc.

1302  {
1304  GlobalContext globalContext(GlobalContext::Transition::kWriteLuminosityBlock,
1305  lbp.id(),
1306  lbp.runPrincipal().index(),
1307  lbp.index(),
1308  lbp.beginTime(),
1309  processContext);
1310 
1311  auto t =
1312  make_waiting_task([task, activityRegistry, globalContext, token](std::exception_ptr const* iExcept) mutable {
1313  // Propagating the exception would be nontrivial, and signal actions are not supposed to throw exceptions
1314  CMS_SA_ALLOW try {
1315  //services can depend on other services
1317 
1318  activityRegistry->postGlobalWriteLumiSignal_(globalContext);
1319  } catch (...) {
1320  }
1321  std::exception_ptr ptr;
1322  if (iExcept) {
1323  ptr = *iExcept;
1324  }
1325  task.doneWaiting(ptr);
1326  });
1327  // Propagating the exception would be nontrivial, and signal actions are not supposed to throw exceptions
1328  CMS_SA_ALLOW try { activityRegistry->preGlobalWriteLumiSignal_(globalContext); } catch (...) {
1329  }
1330  WaitingTaskHolder tHolder(*task.group(), t);
1331  for (auto& c : all_output_communicators_) {
1332  c->writeLumiAsync(tHolder, lbp, processContext, activityRegistry);
1333  }
1334  }

References all_output_communicators_, edm::LuminosityBlockPrincipal::beginTime(), c, CMS_SA_ALLOW, edm::LuminosityBlockPrincipal::id(), edm::LuminosityBlockPrincipal::index(), edm::RunPrincipal::index(), edm::ServiceRegistry::instance(), edm::GlobalContext::kWriteLuminosityBlock, edm::make_waiting_task(), edm::ActivityRegistry::postGlobalWriteLumiSignal_, edm::ActivityRegistry::preGlobalWriteLumiSignal_, edm::ServiceRegistry::presentToken(), edm::LuminosityBlockPrincipal::runPrincipal(), submitPVValidationJobs::t, TrackValidation_cff::task, and unpackBuffers-CaloStage2::token.

◆ writeProcessBlockAsync()

void edm::Schedule::writeProcessBlockAsync ( WaitingTaskHolder  iTask,
ProcessBlockPrincipal const &  pbp,
ProcessContext const *  processContext,
ActivityRegistry activityRegistry 
)

Definition at line 1261 of file Schedule.cc.

1264  {
1266  GlobalContext globalContext(GlobalContext::Transition::kWriteProcessBlock,
1267  LuminosityBlockID(),
1271  processContext);
1272 
1273  auto t =
1274  make_waiting_task([task, activityRegistry, globalContext, token](std::exception_ptr const* iExcept) mutable {
1275  // Propagating the exception would be nontrivial, and signal actions are not supposed to throw exceptions
1276  CMS_SA_ALLOW try {
1277  //services can depend on other services
1279 
1280  activityRegistry->postWriteProcessBlockSignal_(globalContext);
1281  } catch (...) {
1282  }
1283  std::exception_ptr ptr;
1284  if (iExcept) {
1285  ptr = *iExcept;
1286  }
1287  task.doneWaiting(ptr);
1288  });
1289  // Propagating the exception would be nontrivial, and signal actions are not supposed to throw exceptions
1290  CMS_SA_ALLOW try { activityRegistry->preWriteProcessBlockSignal_(globalContext); } catch (...) {
1291  }
1292  WaitingTaskHolder tHolder(*task.group(), t);
1293 
1294  for (auto& c : all_output_communicators_) {
1295  c->writeProcessBlockAsync(tHolder, pbp, processContext, activityRegistry);
1296  }
1297  }

References all_output_communicators_, c, CMS_SA_ALLOW, edm::ServiceRegistry::instance(), edm::LuminosityBlockIndex::invalidLuminosityBlockIndex(), edm::RunIndex::invalidRunIndex(), edm::Timestamp::invalidTimestamp(), edm::GlobalContext::kWriteProcessBlock, edm::make_waiting_task(), edm::ActivityRegistry::postWriteProcessBlockSignal_, edm::ServiceRegistry::presentToken(), edm::ActivityRegistry::preWriteProcessBlockSignal_, submitPVValidationJobs::t, TrackValidation_cff::task, and unpackBuffers-CaloStage2::token.

◆ writeRunAsync()

void edm::Schedule::writeRunAsync ( WaitingTaskHolder  iTask,
RunPrincipal const &  rp,
ProcessContext const *  processContext,
ActivityRegistry activityRegistry,
MergeableRunProductMetadata const *  mergeableRunProductMetadata 
)

Definition at line 1223 of file Schedule.cc.

1227  {
1229  GlobalContext globalContext(GlobalContext::Transition::kWriteRun,
1230  LuminosityBlockID(rp.run(), 0),
1231  rp.index(),
1233  rp.endTime(),
1234  processContext);
1235  auto t =
1236  make_waiting_task([task, activityRegistry, globalContext, token](std::exception_ptr const* iExcept) mutable {
1237  // Propagating the exception would be nontrivial, and signal actions are not supposed to throw exceptions
1238  CMS_SA_ALLOW try {
1239  //services can depend on other services
1241 
1242  activityRegistry->postGlobalWriteRunSignal_(globalContext);
1243  } catch (...) {
1244  }
1245  std::exception_ptr ptr;
1246  if (iExcept) {
1247  ptr = *iExcept;
1248  }
1249  task.doneWaiting(ptr);
1250  });
1251  // Propagating the exception would be nontrivial, and signal actions are not supposed to throw exceptions
1252  CMS_SA_ALLOW try { activityRegistry->preGlobalWriteRunSignal_(globalContext); } catch (...) {
1253  }
1254  WaitingTaskHolder tHolder(*task.group(), t);
1255 
1256  for (auto& c : all_output_communicators_) {
1257  c->writeRunAsync(tHolder, rp, processContext, activityRegistry, mergeableRunProductMetadata);
1258  }
1259  }

References all_output_communicators_, c, CMS_SA_ALLOW, edm::RunPrincipal::endTime(), edm::RunPrincipal::index(), edm::ServiceRegistry::instance(), edm::LuminosityBlockIndex::invalidLuminosityBlockIndex(), edm::GlobalContext::kWriteRun, edm::make_waiting_task(), edm::ActivityRegistry::postGlobalWriteRunSignal_, edm::ActivityRegistry::preGlobalWriteRunSignal_, edm::ServiceRegistry::presentToken(), edm::RunPrincipal::run(), submitPVValidationJobs::t, TrackValidation_cff::task, and unpackBuffers-CaloStage2::token.

Member Data Documentation

◆ all_output_communicators_

AllOutputModuleCommunicators edm::Schedule::all_output_communicators_
private

◆ endPathNames_

std::vector<std::string> const* edm::Schedule::endPathNames_
private

Definition at line 318 of file Schedule.h.

Referenced by endPaths().

◆ endpathsAreActive_

volatile bool edm::Schedule::endpathsAreActive_
private

Definition at line 321 of file Schedule.h.

Referenced by enableEndPaths(), and endPathsEnabled().

◆ endPathStatusInserters_

std::vector<edm::propagate_const<std::shared_ptr<EndPathStatusInserter> > > edm::Schedule::endPathStatusInserters_
private

Definition at line 306 of file Schedule.h.

◆ globalSchedule_

edm::propagate_const<std::unique_ptr<GlobalSchedule> > edm::Schedule::globalSchedule_
private

◆ moduleRegistry_

edm::propagate_const<std::shared_ptr<ModuleRegistry> > edm::Schedule::moduleRegistry_
private

Definition at line 307 of file Schedule.h.

Referenced by changeModule(), deleteModule(), and moduleRegistry().

◆ pathNames_

std::vector<std::string> const* edm::Schedule::pathNames_
private

Definition at line 317 of file Schedule.h.

Referenced by triggerPaths().

◆ pathStatusInserters_

std::vector<edm::propagate_const<std::shared_ptr<PathStatusInserter> > > edm::Schedule::pathStatusInserters_
private

Definition at line 305 of file Schedule.h.

Referenced by processOneEventAsync().

◆ preallocConfig_

PreallocationConfiguration edm::Schedule::preallocConfig_
private

Definition at line 313 of file Schedule.h.

Referenced by changeModule(), and endJob().

◆ resultsInserter_

edm::propagate_const<std::shared_ptr<TriggerResultInserter> > edm::Schedule::resultsInserter_
private

Definition at line 304 of file Schedule.h.

Referenced by resultsInserter().

◆ streamSchedules_

std::vector<edm::propagate_const<std::shared_ptr<StreamSchedule> > > edm::Schedule::streamSchedules_
private

◆ summaryTimeKeeper_

edm::propagate_const<std::unique_ptr<SystemTimeKeeper> > edm::Schedule::summaryTimeKeeper_
private

Definition at line 315 of file Schedule.h.

Referenced by getTriggerTimingReport().

◆ wantSummary_

bool edm::Schedule::wantSummary_
private

Definition at line 319 of file Schedule.h.

Referenced by endJob().

alignBH_cfg.fixed
fixed
Definition: alignBH_cfg.py:54
mps_fire.i
i
Definition: mps_fire.py:428
edm::Schedule::limitOutput
void limitOutput(ParameterSet const &proc_pset, BranchIDLists const &branchIDLists, SubProcessParentageHelper const *subProcessParentageHelper)
Definition: Schedule.cc:874
edm::Schedule::pathNames_
std::vector< std::string > const * pathNames_
Definition: Schedule.h:317
LogMessageMonitor_cff.modules
modules
Definition: LogMessageMonitor_cff.py:7
edm::LogFwkVerbatim
Log< level::FwkInfo, true > LogFwkVerbatim
Definition: MessageLogger.h:129
cms::Exception::addContext
void addContext(std::string const &context)
Definition: Exception.cc:165
edm::PRODUCT_TYPE
Definition: ProductKindOfType.h:5
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
edm::Schedule::moduleRegistry
std::shared_ptr< ModuleRegistry const > moduleRegistry() const
Definition: Schedule.h:301
edm::setIsMergeable
void setIsMergeable(BranchDescription &)
Definition: setIsMergeable.cc:15
edm::sort_all
void sort_all(RandomAccessSequence &s)
wrappers for std::sort
Definition: Algorithms.h:92
edm::SystemTimeKeeper::removeModuleIfExists
void removeModuleIfExists(ModuleDescription const &module)
Definition: SystemTimeKeeper.cc:109
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
edm::PreallocationConfiguration::numberOfThreads
unsigned int numberOfThreads() const
Definition: PreallocationConfiguration.h:34
modules
Definition: MuonCleanerBySegments.cc:35
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
cms::cuda::stream
cudaStream_t stream
Definition: HistoContainer.h:57
mod
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
edm::GlobalContext::Transition::kWriteProcessBlock
cms::cuda::assert
assert(be >=bs)
edm::Worker::respondToOpenInputFile
void respondToOpenInputFile(FileBlock const &fb)
Definition: Worker.h:171
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
edm::SystemTimeKeeper::startProcessingLoop
void startProcessingLoop()
Definition: SystemTimeKeeper.cc:205
edm::get_underlying_safe
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
Definition: get_underlying_safe.h:41
edm::Schedule::endPathStatusInserters_
std::vector< edm::propagate_const< std::shared_ptr< EndPathStatusInserter > > > endPathStatusInserters_
Definition: Schedule.h:306
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
edm::Schedule::totalEvents
int totalEvents() const
Definition: Schedule.cc:1554
edm::SystemTimeKeeper::stopProcessingLoop
void stopProcessingLoop()
Definition: SystemTimeKeeper.cc:207
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
edm::InRun
Definition: BranchType.h:11
CMS_SA_ALLOW
#define CMS_SA_ALLOW
Definition: thread_safety_macros.h:5
edm::Schedule::wantSummary_
bool wantSummary_
Definition: Schedule.h:319
edm::SystemTimeKeeper::startModuleEvent
void startModuleEvent(StreamContext const &, ModuleCallingContext const &)
Definition: SystemTimeKeeper.cc:165
edm::NumBranchTypes
Definition: BranchType.h:11
edm::for_all
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:14
edm::InProcess
Definition: BranchType.h:11
alignCSCRings.s
s
Definition: alignCSCRings.py:92
edm::SystemTimeKeeper::startEvent
void startEvent(StreamID)
Definition: SystemTimeKeeper.cc:136
TrackValidation_cff.task
task
Definition: TrackValidation_cff.py:252
WaitingTaskHolder
HcalDetIdTransform::transform
unsigned transform(const HcalDetId &id, unsigned transformCode)
Definition: HcalDetIdTransform.cc:7
edm::InEvent
Definition: BranchType.h:11
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::Schedule::getTriggerReport
void getTriggerReport(TriggerReport &rep) const
Definition: Schedule.cc:1537
edm::OutputModuleCommunicator::shouldWeCloseFile
virtual bool shouldWeCloseFile() const =0
edm::GlobalContext::Transition::kWriteLuminosityBlock
edm::ServiceRegistry::Operate
friend class Operate
Definition: ServiceRegistry.h:54
edm::Schedule::streamSchedules_
std::vector< edm::propagate_const< std::shared_ptr< StreamSchedule > > > streamSchedules_
Definition: Schedule.h:308
edm::make_waiting_task
FunctorWaitingTask< F > * make_waiting_task(F f)
Definition: WaitingTask.h:101
edm::LuminosityBlockIndex::invalidLuminosityBlockIndex
static LuminosityBlockIndex invalidLuminosityBlockIndex()
Definition: LuminosityBlockIndex.cc:9
ParameterSet
Definition: Functions.h:16
edm::InLumi
Definition: BranchType.h:11
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
edm::OutputModuleCommunicator::openFile
virtual void openFile(FileBlock const &fb)=0
edm::Schedule::pathStatusInserters_
std::vector< edm::propagate_const< std::shared_ptr< PathStatusInserter > > > pathStatusInserters_
Definition: Schedule.h:305
edm::ServiceRegistry::presentToken
ServiceToken presentToken() const
Definition: ServiceRegistry.cc:63
Exception
edm::Schedule::endpathsAreActive_
volatile bool endpathsAreActive_
Definition: Schedule.h:321
cuy.rep
rep
Definition: cuy.py:1190
edm::SystemTimeKeeper::stopPath
void stopPath(StreamContext const &, PathContext const &, HLTPathStatus const &)
Definition: SystemTimeKeeper.cc:152
edm::GlobalContext::Transition::kWriteRun
edm::Worker::respondToCloseInputFile
void respondToCloseInputFile(FileBlock const &fb)
Definition: Worker.h:172
edm::SystemTimeKeeper::stopModuleEvent
void stopModuleEvent(StreamContext const &, ModuleCallingContext const &)
Definition: SystemTimeKeeper.cc:172
edm::Schedule::all_output_communicators_
AllOutputModuleCommunicators all_output_communicators_
Definition: Schedule.h:312
edm::ServiceRegistry::instance
static ServiceRegistry & instance()
Definition: ServiceRegistry.cc:90
edm::RunIndex::invalidRunIndex
static RunIndex invalidRunIndex()
Definition: RunIndex.cc:9
SimL1EmulatorRepack_CalouGT_cff.processName
processName
Definition: SimL1EmulatorRepack_CalouGT_cff.py:17
edm::Schedule::endPathNames_
std::vector< std::string > const * endPathNames_
Definition: Schedule.h:318
edm::Timestamp::invalidTimestamp
static Timestamp invalidTimestamp()
Definition: Timestamp.h:82
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::Schedule::allWorkers
AllWorkers const & allWorkers() const
returns the collection of pointers to workers
Definition: Schedule.cc:1445
edm::SystemTimeKeeper::startPath
void startPath(StreamContext const &, PathContext const &)
Definition: SystemTimeKeeper.cc:145
edm::Schedule::resultsInserter
std::shared_ptr< TriggerResultInserter const > resultsInserter() const
Definition: Schedule.h:297
edm::Schedule::summaryTimeKeeper_
edm::propagate_const< std::unique_ptr< SystemTimeKeeper > > summaryTimeKeeper_
Definition: Schedule.h:315
T
long double T
Definition: Basic3DVectorLD.h:48
Exception
Definition: hltDiff.cc:245
edm::SystemTimeKeeper::pauseModuleEvent
void pauseModuleEvent(StreamContext const &, ModuleCallingContext const &)
Definition: SystemTimeKeeper.cc:185
edm::OutputModuleCommunicator::closeFile
virtual void closeFile()=0
edm::Schedule::globalSchedule_
edm::propagate_const< std::unique_ptr< GlobalSchedule > > globalSchedule_
Definition: Schedule.h:310
actions
roAction_t actions[nactions]
Definition: GenABIO.cc:181
mps_fire.result
result
Definition: mps_fire.py:311
edm::search_all
bool search_all(ForwardSequence const &s, Datum const &d)
Definition: Algorithms.h:36
cms::Exception
Definition: Exception.h:70
edm::Schedule::moduleRegistry_
edm::propagate_const< std::shared_ptr< ModuleRegistry > > moduleRegistry_
Definition: Schedule.h:307
HerwigMaxPtPartonFilter_cfi.moduleLabel
moduleLabel
Definition: HerwigMaxPtPartonFilter_cfi.py:4
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
edm::SystemTimeKeeper::stopEvent
void stopEvent(StreamContext const &)
Definition: SystemTimeKeeper.cc:141
HLTObjectsMonitor_cfi.TriggerResults
TriggerResults
Definition: HLTObjectsMonitor_cfi.py:9
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
edm::errors::Configuration
Definition: EDMException.h:36
EcalCalibMonitorClient_cfi.workers
workers
Definition: EcalCalibMonitorClient_cfi.py:19
edm::SystemTimeKeeper::restartModuleEvent
void restartModuleEvent(StreamContext const &, ModuleCallingContext const &)
Definition: SystemTimeKeeper.cc:198
edm::Schedule::preallocConfig_
PreallocationConfiguration preallocConfig_
Definition: Schedule.h:313
edm::Schedule::getTriggerTimingReport
void getTriggerTimingReport(TriggerTimingReport &rep) const
Definition: Schedule.cc:1547
benchmark_cfg.fb
fb
Definition: benchmark_cfg.py:14
edm::Schedule::resultsInserter_
edm::propagate_const< std::shared_ptr< TriggerResultInserter > > resultsInserter_
Definition: Schedule.h:304
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316