1 #ifndef FWCore_Framework_Schedule_h
2 #define FWCore_Framework_Schedule_h
75 #include "boost/shared_ptr.hpp"
85 class TriggerNamesService;
91 class UnscheduledCallProducer;
111 boost::shared_ptr<ActivityRegistry> areg,
112 boost::shared_ptr<ProcessConfiguration> processConfiguration);
116 template <
typename T>
168 void availablePaths(std::vector<std::string>& oLabelsToFill)
const;
172 std::vector<std::string>& oLabelsToFill)
const;
235 template <
typename T>
238 template <
typename T>
249 boost::shared_ptr<ProcessConfiguration const> processConfiguration,
253 boost::shared_ptr<ProcessConfiguration const> processConfiguration,
257 boost::shared_ptr<ProcessConfiguration const> processConfiguration,
258 int bitpos, std::string
const&
name);
296 template <
typename T>
301 ep(principal),
es(setup) {};
306 typename T::MyPrincipal&
ep;
314 assert(0 != aWorker);
318 template <
typename T>
326 it->second->doWork<T>(
p, es, 0, &timer);
336 std::map<std::string, Worker*>::const_iterator itFound =
352 reportSvc->reportSkippedEvent(ep.
id().
run(), ep.
id().
event());
355 template <
typename T>
372 if (runTriggerPaths<T>(ep, es)) {
384 <<
"an exception occurred and all paths for the event are being skipped: \n"
396 e <<
"EventProcessingStopped\n";
397 e <<
"Attempt to insert TriggerResults into event failed.\n";
411 <<
"exception being ignored for current event:\n"
417 e <<
"EventProcessingStopped\n";
418 e <<
"an exception occurred during current event processing\n";
425 <<
"an exception occurred during current event processing\n";
435 template <
typename T>
442 template <
typename T>
virtual char const * what() const
std::vector< Path > NonTrigPaths
EventNumber_t event() const
std::pair< double, double > timeCpuReal() const
ModuleDescription const & description() const
roAction_t actions[nactions]
void availablePaths(std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill the labels for all paths in the process
void limitOutput(ParameterSet const &proc_pset)
AllOutputWorkers all_output_workers_
WorkerPtr results_inserter_
bool endPathsEnabled() const
std::string rootCause() const
void respondToCloseInputFile(FileBlock const &fb)
std::vector< OutputWorker * > AllOutputWorkers
bool changeModule(std::string const &iLabel, ParameterSet const &iPSet)
void writeLumi(LuminosityBlockPrincipal const &lbp)
std::vector< Worker * > AllWorkers
void processOneOccurrence(typename T::MyPrincipal &principal, EventSetup const &eventSetup)
WorkerRegistry worker_reg_
std::vector< WorkerInPath > PathWorkers
void reportSkipped(LuminosityBlockPrincipal const &) const
EventID const & id() const
void enableEndPaths(bool active)
TrigResPtr endpath_results_
std::string const & moduleLabel() const
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 &)
void addWorker(Worker *aWorker)
int totalEventsPassed() const
void processOneOccurrence(typename T::MyPrincipal &, EventSetup const &)
boost::shared_ptr< CPUTimer > StopwatchPointer
void runNow(typename T::MyPrincipal &p, EventSetup const &es)
void fillWorkers(ParameterSet &proc_pset, ProductRegistry &preg, boost::shared_ptr< ProcessConfiguration const > processConfiguration, std::string const &name, bool ignoreFilters, PathWorkers &out)
AllWorkers::iterator workersBegin()
void clearCounters()
Clear all the counters in the trigger report.
bool runTriggerPaths(typename T::MyPrincipal &, EventSetup const &)
void respondToCloseOutputFiles(FileBlock const &fb)
std::vector< std::string > vstring
void respondToOpenInputFile(FileBlock const &fb)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
virtual bool tryToFillImpl(std::string const &moduleLabel, EventPrincipal &event, EventSetup const &eventSetup, CurrentProcessingContext const *iContext)
ActionTable const * act_table_
UnscheduledCallProducer()
std::vector< Worker * > Workers
AllWorkers::const_iterator workersBegin() const
void getTriggerReport(TriggerReport &rep) const
boost::shared_ptr< Worker > WorkerPtr
void respondToOpenOutputFiles(FileBlock const &fb)
volatile bool endpathsAreActive_
void reportSkipped(RunPrincipal const &) 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 ...
void reportSkipped(EventPrincipal const &ep) const
void postForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren)
author Stefano ARGIRO author Bill Tanenbaum
bool const terminate() const
Return whether each output module has reached its maximum count.
std::vector< ModuleDescription const * > getAllModuleDescriptions() 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)
Schedule(ParameterSet &proc_pset, service::TriggerNamesService &tns, ProductRegistry &pregistry, ActionTable const &actions, boost::shared_ptr< ActivityRegistry > areg, boost::shared_ptr< ProcessConfiguration > processConfiguration)
AllWorkers::iterator workersEnd()
bool shouldWeCloseOutput() const
void setupOnDemandSystem(EventPrincipal &principal, EventSetup const &es)
std::map< std::string, Worker * > labelToWorkers_
vstring end_path_name_list_
AllWorkers::const_iterator workersEnd() const
void addToAllWorkers(Worker *w)
const std::string * moduleLabel() const
boost::shared_ptr< ActivityRegistry > actReg_
void fillTrigPath(ParameterSet &proc_pset, ProductRegistry &preg, boost::shared_ptr< ProcessConfiguration const > processConfiguration, int bitpos, std::string const &name, TrigResPtr)
boost::shared_ptr< UnscheduledCallProducer > unscheduled_
std::string category() const