1 #ifndef FWCore_Framework_Schedule_h
2 #define FWCore_Framework_Schedule_h
95 class TriggerNamesService;
98 class BranchIDListHelper;
100 class ExceptionCollector;
101 class OutputModuleCommunicator;
102 class ProcessContext;
103 class ProductRegistry;
104 class PreallocationConfiguration;
105 class StreamSchedule;
106 class GlobalSchedule;
107 struct TriggerTimingReport;
108 class ModuleRegistry;
109 class ThinnedAssociationsHelper;
110 class TriggerResultInserter;
126 std::shared_ptr<ActivityRegistry>
areg,
128 bool hasSubprocesses,
132 template <
typename T>
136 bool cleaningUpAfterException =
false);
138 template <
typename T>
141 bool cleaningUpAfterException =
false);
143 template <
typename T>
147 bool cleaningUpAfterException =
false);
191 void availablePaths(std::vector<std::string>& oLabelsToFill)
const;
196 void triggerPaths(std::vector<std::string>& oLabelsToFill)
const;
199 void endPaths(std::vector<std::string>& oLabelsToFill)
const;
203 std::vector<std::string>& oLabelsToFill)
const;
208 std::vector<ModuleDescription const*>& descriptions,
209 unsigned int hint)
const;
214 std::vector<ModuleDescription const*>& descriptions,
215 unsigned int hint)
const;
218 std::vector<std::pair<unsigned int, unsigned int> >& moduleIDToIndex,
219 std::vector<std::vector<ModuleDescription const*> >& modulesWhoseProductsAreConsumedBy,
294 template <
typename T>
296 typename T::MyPrincipal& ep,
298 bool cleaningUpAfterException) {
303 template <
typename T>
305 typename T::MyPrincipal& ep,
307 bool cleaningUpAfterException) {
309 streamSchedules_[iStreamID]->processOneStream<
T>(ep,es,cleaningUpAfterException);
311 template <
typename T>
315 bool cleaningUpAfterException) {
void checkForCorrectness() const
Check that the schedule is actually runable.
std::vector< BranchIDList > BranchIDLists
void fillModuleAndConsumesInfo(std::vector< ModuleDescription const * > &allModuleDescriptions, std::vector< std::pair< unsigned int, unsigned int > > &moduleIDToIndex, std::vector< std::vector< ModuleDescription const * > > &modulesWhoseProductsAreConsumedBy, ProductRegistry const &preg) const
AllWorkers const & allWorkers() const
returns the collection of pointers to workers
void availablePaths(std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill the labels for all paths in the process
bool endPathsEnabled() const
void respondToCloseInputFile(FileBlock const &fb)
std::shared_ptr< ModuleRegistry const > moduleRegistry() const
std::vector< Worker * > AllWorkers
void writeRun(RunPrincipal const &rp, ProcessContext const *)
void endStream(unsigned int)
void processOneEvent(unsigned int iStreamID, typename T::MyPrincipal &principal, EventSetup const &eventSetup, bool cleaningUpAfterException=false)
void writeLumi(LuminosityBlockPrincipal const &lbp, ProcessContext const *)
void enableEndPaths(bool active)
void moduleDescriptionsInEndPath(std::string const &iEndPathLabel, std::vector< ModuleDescription const * > &descriptions, unsigned int hint) const
edm::propagate_const< std::unique_ptr< SystemTimeKeeper > > summaryTimeKeeper_
int totalEventsFailed() const
edm::propagate_const< std::unique_ptr< GlobalSchedule > > globalSchedule_
bool changeModule(std::string const &iLabel, ParameterSet const &iPSet, const ProductRegistry &iRegistry)
std::shared_ptr< TriggerResultInserter > & resultsInserter()
int totalEventsPassed() const
void triggerPaths(std::vector< std::string > &oLabelsToFill) const
void limitOutput(ParameterSet const &proc_pset, BranchIDLists const &branchIDLists)
edm::propagate_const< std::shared_ptr< TriggerResultInserter > > resultsInserter_
void clearCounters()
Clear all the counters in the trigger report.
std::vector< std::string > vstring
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
bool terminate() const
Return whether each output module has reached its maximum count.
void respondToOpenInputFile(FileBlock const &fb)
edm::propagate_const< std::shared_ptr< ModuleRegistry > > moduleRegistry_
std::vector< Worker * > Workers
void getTriggerReport(TriggerReport &rep) const
void processOneGlobal(typename T::MyPrincipal &principal, EventSetup const &eventSetup, bool cleaningUpAfterException=false)
PreallocationConfiguration preallocConfig_
std::vector< edm::propagate_const< std::shared_ptr< StreamSchedule > > > streamSchedules_
volatile bool endpathsAreActive_
std::shared_ptr< TriggerResultInserter const > resultsInserter() const
AllOutputModuleCommunicators all_output_communicators_
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 ...
std::vector< edm::propagate_const< std::shared_ptr< OutputModuleCommunicator > > > AllOutputModuleCommunicators
void beginStream(unsigned int)
void postForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren)
std::vector< ModuleDescription const * > getAllModuleDescriptions() const
void processOneStream(unsigned int iStreamID, typename T::MyPrincipal &principal, EventSetup const &eventSetup, bool cleaningUpAfterException=false)
void beginJob(ProductRegistry const &)
std::shared_ptr< ModuleRegistry > & moduleRegistry()
void openNewOutputFilesIfNeeded()
void preForkReleaseResources()
void openOutputFiles(FileBlock &fb)
Schedule(ParameterSet &proc_pset, service::TriggerNamesService &tns, ProductRegistry &pregistry, BranchIDListHelper &branchIDListHelper, ThinnedAssociationsHelper &thinnedAssociationsHelper, ExceptionToActionTable const &actions, std::shared_ptr< ActivityRegistry > areg, std::shared_ptr< ProcessConfiguration > processConfiguration, bool hasSubprocesses, PreallocationConfiguration const &config, ProcessContext const *processContext)
void endJob(ExceptionCollector &collector)
void getTriggerTimingReport(TriggerTimingReport &rep) const
bool shouldWeCloseOutput() const
void endPaths(std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill the labels for all end paths in the process
void moduleDescriptionsInPath(std::string const &iPathLabel, std::vector< ModuleDescription const * > &descriptions, unsigned int hint) const