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 &, ProcessBlockHelperBase 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, ProcessBlockHelperBase &, 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 122 of file Schedule.h.

Member Typedef Documentation

◆ AllOutputModuleCommunicators

Definition at line 126 of file Schedule.h.

◆ AllWorkers

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

Definition at line 125 of file Schedule.h.

◆ vstring

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

Definition at line 124 of file Schedule.h.

◆ Workers

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

Definition at line 128 of file Schedule.h.

Constructor & Destructor Documentation

◆ Schedule()

edm::Schedule::Schedule ( ParameterSet proc_pset,
service::TriggerNamesService const &  tns,
ProductRegistry pregistry,
BranchIDListHelper branchIDListHelper,
ProcessBlockHelperBase processBlockHelper,
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 658 of file Schedule.cc.

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

1462  {
1463  streamSchedules_[0]->availablePaths(oLabelsToFill);
1464  }

References streamSchedules_.

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

◆ beginJob()

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

Definition at line 1362 of file Schedule.cc.

1364  {
1365  globalSchedule_->beginJob(iRegistry, iESIndices, processBlockHelperBase);
1366  }

References globalSchedule_.

◆ beginStream()

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

Definition at line 1368 of file Schedule.cc.

1368  {
1369  assert(iStreamID < streamSchedules_.size());
1370  streamSchedules_[iStreamID]->beginStream();
1371  }

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 1386 of file Schedule.cc.

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

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 1587 of file Schedule.cc.

1587  {
1588  for (auto& s : streamSchedules_) {
1589  s->clearCounters();
1590  }
1591  }

References alignCSCRings::s, and streamSchedules_.

◆ closeOutputFiles()

void edm::Schedule::closeOutputFiles ( )

Definition at line 1217 of file Schedule.cc.

1217  {
1218  using std::placeholders::_1;
1220  for (auto& worker : allWorkers()) {
1221  worker->respondToCloseOutputFile();
1222  }
1223  }

References all_output_communicators_, allWorkers(), 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 1456 of file Schedule.cc.

1456  {
1457  for (auto const& worker : allWorkers()) {
1458  worker->convertCurrentProcessAlias(processName);
1459  }
1460  }

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 1435 of file Schedule.cc.

1435  {
1436  globalSchedule_->deleteModule(iLabel);
1437  for (auto& stream : streamSchedules_) {
1438  stream->deleteModule(iLabel);
1439  }
1440  moduleRegistry_->deleteModule(iLabel, areg->preModuleDestructionSignal_, areg->postModuleDestructionSignal_);
1441  }

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 1537 of file Schedule.cc.

1537  {
1538  endpathsAreActive_ = active;
1539  for (auto& s : streamSchedules_) {
1540  s->enableEndPaths(active);
1541  }
1542  }

References endpathsAreActive_, alignCSCRings::s, and streamSchedules_.

◆ endJob()

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

Definition at line 934 of file Schedule.cc.

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

References visDQMUpload::context, 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 1468 of file Schedule.cc.

1468 { 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 1544 of file Schedule.cc.

1544 { return endpathsAreActive_; }

References endpathsAreActive_.

◆ endStream()

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

Definition at line 1373 of file Schedule.cc.

1373  {
1374  assert(iStreamID < streamSchedules_.size());
1375  streamSchedules_[iStreamID]->endStream();
1376  }

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 1486 of file Schedule.cc.

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

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 1443 of file Schedule.cc.

1443  {
1444  std::vector<ModuleDescription const*> result;
1445  result.reserve(allWorkers().size());
1446 
1447  for (auto const& worker : allWorkers()) {
1448  ModuleDescription const* p = worker->description();
1449  result.push_back(p);
1450  }
1451  return result;
1452  }

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 1546 of file Schedule.cc.

1546  {
1547  rep.eventSummary.totalEvents = 0;
1548  rep.eventSummary.totalEventsPassed = 0;
1549  rep.eventSummary.totalEventsFailed = 0;
1550  for (auto& s : streamSchedules_) {
1551  s->getTriggerReport(rep);
1552  }
1553  sort_all(rep.workerSummaries);
1554  }

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 1556 of file Schedule.cc.

1556  {
1557  rep.eventSummary.totalEvents = 0;
1558  rep.eventSummary.cpuTime = 0.;
1559  rep.eventSummary.realTime = 0.;
1560  summaryTimeKeeper_->fillTriggerTimingReport(rep);
1561  }

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 878 of file Schedule.cc.

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

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 1480 of file Schedule.cc.

1482  {
1483  streamSchedules_[0]->moduleDescriptionsInEndPath(iEndPathLabel, descriptions, hint);
1484  }

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 1474 of file Schedule.cc.

1476  {
1477  streamSchedules_[0]->moduleDescriptionsInPath(iPathLabel, descriptions, hint);
1478  }

References streamSchedules_.

◆ moduleRegistry() [1/2]

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

Definition at line 304 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 303 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 1470 of file Schedule.cc.

1470  {
1471  streamSchedules_[0]->modulesInPath(iPathLabel, oLabelsToFill);
1472  }

References streamSchedules_.

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

◆ openOutputFiles()

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

Definition at line 1225 of file Schedule.cc.

1225  {
1226  using std::placeholders::_1;
1227  for_all(all_output_communicators_, std::bind(&OutputModuleCommunicator::openFile, _1, std::cref(fb)));
1228  }

References all_output_communicators_, 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 1378 of file Schedule.cc.

1381  {
1382  assert(iStreamID < streamSchedules_.size());
1383  streamSchedules_[iStreamID]->processOneEventAsync(std::move(iTask), info, token, pathStatusInserters_);
1384  }

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 338 of file Schedule.h.

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

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 327 of file Schedule.h.

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

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 1357 of file Schedule.cc.

1357  {
1358  using std::placeholders::_1;
1359  for_all(allWorkers(), std::bind(&Worker::respondToCloseInputFile, _1, std::cref(fb)));
1360  }

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

◆ respondToOpenInputFile()

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

Definition at line 1352 of file Schedule.cc.

1352  {
1353  using std::placeholders::_1;
1354  for_all(allWorkers(), std::bind(&Worker::respondToOpenInputFile, _1, std::cref(fb)));
1355  }

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

◆ resultsInserter() [1/2]

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

Definition at line 302 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 299 of file Schedule.h.

299  {
301  }

References edm::get_underlying_safe(), and resultsInserter_.

◆ shouldWeCloseOutput()

bool edm::Schedule::shouldWeCloseOutput ( ) const

Definition at line 1343 of file Schedule.cc.

1343  {
1344  using std::placeholders::_1;
1345  // Return true iff at least one output module returns true.
1346  return (std::find_if(all_output_communicators_.begin(),
1350  }

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 919 of file Schedule.cc.

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

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 1563 of file Schedule.cc.

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

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 1579 of file Schedule.cc.

1579  {
1580  int returnValue = 0;
1581  for (auto& s : streamSchedules_) {
1582  returnValue += s->totalEventsFailed();
1583  }
1584  return returnValue;
1585  }

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 1571 of file Schedule.cc.

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

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 1466 of file Schedule.cc.

1466 { oLabelsToFill = *pathNames_; }

References pathNames_.

◆ writeLumiAsync()

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

Definition at line 1306 of file Schedule.cc.

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

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 1268 of file Schedule.cc.

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

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 1230 of file Schedule.cc.

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

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 320 of file Schedule.h.

Referenced by endPaths().

◆ endpathsAreActive_

volatile bool edm::Schedule::endpathsAreActive_
private

Definition at line 323 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 308 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 309 of file Schedule.h.

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

◆ pathNames_

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

Definition at line 319 of file Schedule.h.

Referenced by triggerPaths().

◆ pathStatusInserters_

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

Definition at line 307 of file Schedule.h.

Referenced by processOneEventAsync().

◆ preallocConfig_

PreallocationConfiguration edm::Schedule::preallocConfig_
private

Definition at line 315 of file Schedule.h.

Referenced by changeModule(), and endJob().

◆ resultsInserter_

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

Definition at line 306 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 317 of file Schedule.h.

Referenced by getTriggerTimingReport().

◆ wantSummary_

bool edm::Schedule::wantSummary_
private

Definition at line 321 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:878
edm::Schedule::pathNames_
std::vector< std::string > const * pathNames_
Definition: Schedule.h:319
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:303
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
mod
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
cms::cuda::stream
uint32_t const T *__restrict__ const uint32_t *__restrict__ int32_t int Histo::index_type cudaStream_t stream
Definition: HistoContainer.h:51
edm::GlobalContext::Transition::kWriteProcessBlock
cms::cuda::assert
assert(be >=bs)
edm::Worker::respondToOpenInputFile
void respondToOpenInputFile(FileBlock const &fb)
Definition: Worker.h:173
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:308
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
edm::Schedule::totalEvents
int totalEvents() const
Definition: Schedule.cc:1563
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:321
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
visDQMUpload.context
context
Definition: visDQMUpload.py:37
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:253
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
edm::Schedule::getTriggerReport
void getTriggerReport(TriggerReport &rep) const
Definition: Schedule.cc:1546
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:310
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
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:307
edm::ServiceRegistry::presentToken
ServiceToken presentToken() const
Definition: ServiceRegistry.cc:63
Exception
edm::Schedule::endpathsAreActive_
volatile bool endpathsAreActive_
Definition: Schedule.h:323
cuy.rep
rep
Definition: cuy.py:1189
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:174
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:314
edm::ServiceRegistry::instance
static ServiceRegistry & instance()
Definition: ServiceRegistry.cc:90
edm::RunIndex::invalidRunIndex
static RunIndex invalidRunIndex()
Definition: RunIndex.cc:9
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SimL1EmulatorRepack_CalouGT_cff.processName
processName
Definition: SimL1EmulatorRepack_CalouGT_cff.py:17
edm::Schedule::endPathNames_
std::vector< std::string > const * endPathNames_
Definition: Schedule.h:320
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:1454
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:299
edm::Schedule::summaryTimeKeeper_
edm::propagate_const< std::unique_ptr< SystemTimeKeeper > > summaryTimeKeeper_
Definition: Schedule.h:317
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:312
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:309
HerwigMaxPtPartonFilter_cfi.moduleLabel
moduleLabel
Definition: HerwigMaxPtPartonFilter_cfi.py:4
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:56
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:315
edm::Schedule::getTriggerTimingReport
void getTriggerTimingReport(TriggerTimingReport &rep) const
Definition: Schedule.cc:1556
edm::Schedule::resultsInserter_
edm::propagate_const< std::shared_ptr< TriggerResultInserter > > resultsInserter_
Definition: Schedule.h:306
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316