1 #ifndef FWCore_Framework_Schedule_h 2 #define FWCore_Framework_Schedule_h 98 class TriggerNamesService;
100 namespace evetnsetup {
101 class ESRecordsToProductResolverIndices;
135 std::shared_ptr<ActivityRegistry> areg,
136 std::shared_ptr<ProcessConfiguration const> processConfiguration,
147 std::shared_ptr<ActivityRegistry> areg,
148 std::shared_ptr<ProcessConfiguration> processConfiguration,
149 bool hasSubprocesses,
154 unsigned int iStreamID,
158 template <
typename T>
160 typename T::TransitionInfoType& transitionInfo,
162 bool cleaningUpAfterException =
false);
164 template <
typename T>
166 unsigned int iStreamID,
167 typename T::TransitionInfoType& transitionInfo,
169 bool cleaningUpAfterException =
false);
224 void availablePaths(std::vector<std::string>& oLabelsToFill)
const;
229 void triggerPaths(std::vector<std::string>& oLabelsToFill)
const;
232 void endPaths(std::vector<std::string>& oLabelsToFill)
const;
240 std::vector<ModuleDescription const*>& descriptions,
241 unsigned int hint)
const;
246 std::vector<ModuleDescription const*>& descriptions,
247 unsigned int hint)
const;
250 std::vector<ModuleDescription const*>& allModuleDescriptions,
251 std::vector<std::pair<unsigned int, unsigned int>>& moduleIDToIndex,
253 modulesWhoseProductsAreConsumedBy,
254 std::vector<std::vector<ModuleProcessName>>& modulesInPreviousProcessesWhoseProductsAreConsumedBy,
295 std::multimap<std::string, std::string>
const& referencesToBranches,
296 std::vector<std::string>
const& modulesToSkip,
335 template <
typename T>
337 unsigned int iStreamID,
338 typename T::TransitionInfoType& transitionInfo,
340 bool cleaningUpAfterException) {
343 std::move(iTaskHolder), transitionInfo,
token, cleaningUpAfterException);
346 template <
typename T>
348 typename T::TransitionInfoType& transitionInfo,
350 bool cleaningUpAfterException) {
351 globalSchedule_->processOneGlobalAsync<
T>(iTaskHolder, transitionInfo,
token, cleaningUpAfterException);
void endPaths(std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill the labels for all end paths in the process
bool terminate() const
Return whether each output module has reached its maximum count.
std::vector< BranchIDList > BranchIDLists
void getTriggerTimingReport(TriggerTimingReport &rep) const
roAction_t actions[nactions]
void writeProcessBlockAsync(WaitingTaskHolder iTask, ProcessBlockPrincipal const &, ProcessContext const *, ActivityRegistry *)
void respondToCloseInputFile(FileBlock const &fb)
void processOneStreamAsync(WaitingTaskHolder iTask, unsigned int iStreamID, typename T::TransitionInfoType &transitionInfo, ServiceToken const &token, bool cleaningUpAfterException=false)
std::vector< Worker * > AllWorkers
void processOneGlobalAsync(WaitingTaskHolder iTask, typename T::TransitionInfoType &transitionInfo, ServiceToken const &token, bool cleaningUpAfterException=false)
void moduleDescriptionsInPath(std::string const &iPathLabel, std::vector< ModuleDescription const *> &descriptions, unsigned int hint) const
std::vector< std::string > const * pathNames_
void getTriggerReport(TriggerReport &rep) const
void convertCurrentProcessAlias(std::string const &processName)
Convert "@currentProcess" in InputTag process names to the actual current process name...
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
edm::propagate_const< std::unique_ptr< SystemTimeKeeper > > summaryTimeKeeper_
void processOneEventAsync(WaitingTaskHolder iTask, unsigned int iStreamID, EventTransitionInfo &, ServiceToken const &token)
edm::propagate_const< std::unique_ptr< GlobalSchedule > > globalSchedule_
std::shared_ptr< TriggerResultInserter > & resultsInserter()
void deleteModule(std::string const &iLabel, ActivityRegistry *areg)
Deletes module with label iLabel.
std::vector< ModuleDescription const * > getAllModuleDescriptions() const
std::vector< edm::propagate_const< std::shared_ptr< PathStatusInserter > > > pathStatusInserters_
bool changeModule(std::string const &iLabel, ParameterSet const &iPSet, const ProductRegistry &iRegistry, eventsetup::ESRecordsToProductResolverIndices const &)
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
Schedule(ParameterSet &proc_pset, service::TriggerNamesService const &tns, ProductRegistry &pregistry, ExceptionToActionTable const &actions, std::shared_ptr< ActivityRegistry > areg, std::shared_ptr< ProcessConfiguration const > processConfiguration, PreallocationConfiguration const &config, ProcessContext const *processContext, ModuleTypeResolverMaker const *resolverMaker)
edm::propagate_const< std::shared_ptr< TriggerResultInserter > > resultsInserter_
void clearCounters()
Clear all the counters in the trigger report.
std::vector< std::string > vstring
void limitOutput(ParameterSet const &proc_pset, BranchIDLists const &branchIDLists, SubProcessParentageHelper const *subProcessParentageHelper)
void respondToOpenInputFile(FileBlock const &fb)
edm::propagate_const< std::shared_ptr< ModuleRegistry > > moduleRegistry_
void beginStream(unsigned int streamID)
void writeRunAsync(WaitingTaskHolder iTask, RunPrincipal const &rp, ProcessContext const *, ActivityRegistry *, MergeableRunProductMetadata const *)
int totalEventsPassed() const
std::shared_ptr< ModuleRegistry const > moduleRegistry() const
std::vector< Worker * > Workers
void availablePaths(std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill the labels for all paths in the process
PreallocationConfiguration preallocConfig_
std::vector< edm::propagate_const< std::shared_ptr< StreamSchedule > > > streamSchedules_
AllWorkers const & allWorkers() const
returns the collection of pointers to workers
void endStream(unsigned int streamID, ExceptionCollector &collector, std::mutex &collectorMutex) noexcept
bool shouldWeCloseOutput() const
void moduleDescriptionsInEndPath(std::string const &iEndPathLabel, std::vector< ModuleDescription const *> &descriptions, unsigned int hint) const
std::vector< edm::propagate_const< std::shared_ptr< EndPathStatusInserter > > > endPathStatusInserters_
AllOutputModuleCommunicators all_output_communicators_
std::vector< edm::propagate_const< std::shared_ptr< OutputModuleCommunicator > > > AllOutputModuleCommunicators
std::vector< std::string > const * endPathNames_
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 ...
void finishSetup(ParameterSet &proc_pset, service::TriggerNamesService const &tns, ProductRegistry &preg, BranchIDListHelper &branchIDListHelper, ProcessBlockHelperBase &processBlockHelper, ThinnedAssociationsHelper &thinnedAssociationsHelper, SubProcessParentageHelper const *subProcessParentageHelper, std::shared_ptr< ActivityRegistry > areg, std::shared_ptr< ProcessConfiguration > processConfiguration, bool hasSubprocesses, PreallocationConfiguration const &prealloc, ProcessContext const *processContext)
std::shared_ptr< ModuleRegistry > & moduleRegistry()
void sendFwkSummaryToMessageLogger() const
std::shared_ptr< TriggerResultInserter const > resultsInserter() const
void openOutputFiles(FileBlock &fb)
void writeLumiAsync(WaitingTaskHolder iTask, LuminosityBlockPrincipal const &lbp, ProcessContext const *, ActivityRegistry *)
void initializeEarlyDelete(std::vector< std::string > const &branchesToDeleteEarly, std::multimap< std::string, std::string > const &referencesToBranches, std::vector< std::string > const &modulesToSkip, edm::ProductRegistry const &preg)
void endJob(ExceptionCollector &collector)
int totalEventsFailed() const
void beginJob(ProductRegistry const &, eventsetup::ESRecordsToProductResolverIndices const &, ProcessBlockHelperBase const &, PathsAndConsumesOfModulesBase const &, ProcessContext const &)
void triggerPaths(std::vector< std::string > &oLabelsToFill) const