1 #ifndef FWCore_Framework_Schedule_h
2 #define FWCore_Framework_Schedule_h
82 #include "boost/shared_ptr.hpp"
93 class TriggerNamesService;
96 class BranchIDListHelper;
98 class ExceptionCollector;
101 class UnscheduledCallProducer;
122 boost::shared_ptr<ActivityRegistry> areg,
123 boost::shared_ptr<ProcessConfiguration> processConfiguration,
128 template <
typename T>
131 bool cleaningUpAfterException =
false);
182 void availablePaths(std::vector<std::string>& oLabelsToFill)
const;
186 std::vector<std::string>& oLabelsToFill)
const;
249 template <
typename T>
252 template <
typename T>
263 std::set<std::string>
const& modulesInConfigSet,
266 std::map<
std::string, std::vector<std::pair<std::string, int> > >& outputModulePathPositions);
270 boost::shared_ptr<ProcessConfiguration const> processConfiguration,
275 boost::shared_ptr<ProcessConfiguration const> processConfiguration,
277 vstring* labelsOnTriggerPaths);
280 boost::shared_ptr<ProcessConfiguration const> processConfiguration,
341 template <
typename T>
346 ep(principal),
es(setup) {};
351 typename T::MyPrincipal&
ep;
359 reportSvc->reportSkippedEvent(ep.
id().
run(), ep.
id().
event());
362 template <
typename T>
366 bool cleaningUpAfterException) {
385 if (runTriggerPaths<T>(ep, es)) {
407 ex.
addContext(
"Calling produce method for module TriggerResultInserter");
409 std::ostringstream ost;
410 ost <<
"Processing " << ep.id();
438 template <
typename T>
445 template <
typename T>
std::vector< Path > NonTrigPaths
EventNumber_t event() const
void initializeEarlyDelete(edm::ParameterSet const &opts, edm::ProductRegistry const &preg, edm::ParameterSet const *subProcPSet)
std::pair< double, double > timeCpuReal() const
std::vector< BranchIDList > BranchIDLists
roAction_t actions[nactions]
void availablePaths(std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill the labels for all paths in the process
AllOutputWorkers all_output_workers_
WorkerPtr results_inserter_
bool endPathsEnabled() const
void respondToCloseInputFile(FileBlock const &fb)
std::vector< OutputWorker * > AllOutputWorkers
std::vector< std::string > vstring
bool changeModule(std::string const &iLabel, ParameterSet const &iPSet)
void writeLumi(LuminosityBlockPrincipal const &lbp)
std::vector< Worker * > AllWorkers
std::vector< EarlyDeleteHelper > earlyDeleteHelpers_
WorkerRegistry worker_reg_
std::vector< WorkerInPath > PathWorkers
void reportSkipped(LuminosityBlockPrincipal const &) const
EventID const & id() const
void enableEndPaths(bool active)
void addContextAndPrintException(char const *context, cms::Exception &ex, bool disablePrint)
std::string const & category() const
TrigResPtr endpath_results_
Schedule(ParameterSet &proc_pset, service::TriggerNamesService &tns, ProductRegistry &pregistry, BranchIDListHelper &branchIDListHelper, ActionTable const &actions, boost::shared_ptr< ActivityRegistry > areg, boost::shared_ptr< ProcessConfiguration > processConfiguration, const ParameterSet *subProcPSet)
boost::shared_ptr< HLTGlobalStatus > TrigResPtr
int totalEventsFailed() const
void fillEndPath(ParameterSet &proc_pset, ProductRegistry &preg, boost::shared_ptr< ProcessConfiguration const > processConfiguration, int bitpos, std::string const &name)
RunStopwatch::StopwatchPointer stopwatch_
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
void runEndPaths(typename T::MyPrincipal &, EventSetup const &)
int totalEventsPassed() const
void processOneOccurrence(typename T::MyPrincipal &, EventSetup const &)
boost::shared_ptr< CPUTimer > StopwatchPointer
void limitOutput(ParameterSet const &proc_pset, BranchIDLists const &branchIDLists)
void reduceParameterSet(ParameterSet &proc_pset, vstring &modulesInConfig, std::set< std::string > const &modulesInConfigSet, vstring &labelsOnTriggerPaths, vstring &shouldBeUsedLabels, std::map< std::string, std::vector< std::pair< std::string, int > > > &outputModulePathPositions)
void stdToEDM(std::exception const &e)
std::vector< int > empty_trig_paths_
AllWorkers::iterator workersBegin()
void clearCounters()
Clear all the counters in the trigger report.
std::list< std::string > const & context() const
void printCmsExceptionWarning(char const *behavior, cms::Exception const &e, edm::JobReport *jobRep=0, int rc=-1)
bool runTriggerPaths(typename T::MyPrincipal &, EventSetup const &)
void respondToCloseOutputFiles(FileBlock const &fb)
std::vector< std::string > vstring
bool terminate() const
Return whether each output module has reached its maximum count.
void respondToOpenInputFile(FileBlock const &fb)
ActionTable const * act_table_
std::vector< Worker * > Workers
AllWorkers::const_iterator workersBegin() const
void getTriggerReport(TriggerReport &rep) const
boost::shared_ptr< Worker > WorkerPtr
void respondToOpenOutputFiles(FileBlock const &fb)
void charPtrToEDM(char const *c)
void stringToEDM(std::string &s)
volatile bool endpathsAreActive_
void reportSkipped(RunPrincipal const &) const
void addContext(std::string const &context)
vstring empty_trig_path_names_
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 reportSkipped(EventPrincipal const &ep) const
void postForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren)
std::vector< unsigned int > earlyDeleteHelperToBranchIndicies_
std::vector< ModuleDescription const * > getAllModuleDescriptions() const
void fillTrigPath(ParameterSet &proc_pset, ProductRegistry &preg, boost::shared_ptr< ProcessConfiguration const > processConfiguration, int bitpos, std::string const &name, TrigResPtr, vstring *labelsOnTriggerPaths)
void processOneOccurrence(typename T::MyPrincipal &principal, EventSetup const &eventSetup, bool cleaningUpAfterException=false)
void beginJob(ProductRegistry const &)
actions::ActionCodes find(const std::string &category) const
std::vector< Path > TrigPaths
void openNewOutputFilesIfNeeded()
void preForkReleaseResources()
void openOutputFiles(FileBlock &fb)
void writeRun(RunPrincipal const &rp)
ProcessOneOccurrence(typename T::MyPrincipal &principal, EventSetup const &setup)
std::vector< std::pair< BranchID, unsigned int > > earlyDeleteBranchToCount_
void endJob(ExceptionCollector &collector)
AllWorkers::iterator workersEnd()
bool shouldWeCloseOutput() const
void setupOnDemandSystem(EventPrincipal &principal, EventSetup const &es)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
void fillWorkers(ParameterSet &proc_pset, ProductRegistry &preg, boost::shared_ptr< ProcessConfiguration const > processConfiguration, std::string const &name, bool ignoreFilters, PathWorkers &out, vstring *labelsOnPaths)
vstring end_path_name_list_
AllWorkers::const_iterator workersEnd() const
void addToAllWorkers(Worker *w)
boost::shared_ptr< ActivityRegistry > actReg_
boost::shared_ptr< UnscheduledCallProducer > unscheduled_