1 #ifndef FWCore_Framework_SubProcess_h 2 #define FWCore_Framework_SubProcess_h 31 class BranchDescription;
32 class BranchIDListHelper;
35 class HistoryAppender;
36 class LuminosityBlockPrincipal;
37 class LumiTransitionInfo;
38 class MergeableRunProductMetadata;
39 class ModuleTypeResolverMaker;
42 class ProcessBlockTransitionInfo;
43 class ProductRegistry;
44 class PreallocationConfiguration;
45 class RunTransitionInfo;
46 class ThinnedAssociationsHelper;
47 class SubProcessParentageHelper;
50 namespace eventsetup {
51 class EventSetupsController;
57 std::shared_ptr<ProductRegistry const> parentProductRegistry,
58 std::shared_ptr<BranchIDListHelper const> parentBranchIDListHelper,
80 std::map<BranchID, bool>& keepAssociation);
93 std::vector<std::shared_ptr<const EventSetupImpl>>
const*);
95 template <
typename Traits>
98 bool cleaningUpAfterException);
102 bool cleaningUpAfterException);
108 bool cleaningUpAfterException);
114 bool cleaningUpAfterException);
123 bool cleaningUpAfterException);
130 bool cleaningUpAfterException);
178 if (subProcess.shouldWeCloseOutput()) {
225 if (subProcess.terminate()) {
244 std::vector<std::shared_ptr<const EventSetupImpl>>
const*);
251 std::map<BranchID, BranchDescription const*>& trueBranchIDToKeptBranchDesc,
252 std::set<BranchID>& keptProductsInEvent);
272 std::shared_ptr<ProductRegistry const>
preg_;
unsigned int historyRunOffset_
void doStreamEndLuminosityBlockAsync(WaitingTaskHolder iHolder, unsigned int iID, LumiTransitionInfo const &, bool cleaningUpAfterException)
unsigned int historyLumiOffset_
ParameterSetID selector_config_id_
std::shared_ptr< ThinnedAssociationsHelper > thinnedAssociationsHelper()
void respondToOpenInputFile(FileBlock const &fb)
SelectedProductsForBranchType const & keptProducts() const
std::vector< BranchIDList > BranchIDLists
void clearLumiPrincipal(LuminosityBlockPrincipal &)
bool parentProducedProductIsKept(Principal const &parentPrincipal, Principal &principal) const
std::vector< ProcessHistoryRegistry > processHistoryRegistries_
std::array< SelectedProducts, NumBranchTypes > SelectedProductsForBranchType
void clearProcessBlockPrincipal(ProcessBlockType)
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
std::vector< SubProcess > subProcesses_
edm::propagate_const< std::shared_ptr< SubProcessBlockHelper > > processBlockHelper_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
void writeRunAsync(WaitingTaskHolder, RunPrincipal const &, MergeableRunProductMetadata const *)
void doBeginProcessBlockAsync(WaitingTaskHolder iHolder, ProcessBlockTransitionInfo const &iTransitionInfo, bool cleaningUpAfterException)
PathsAndConsumesOfModules pathsAndConsumesOfModules_
void doStreamEndRunAsync(WaitingTaskHolder iHolder, unsigned int iID, RunTransitionInfo const &, bool cleaningUpAfterException)
void updateBranchIDListHelper(BranchIDLists const &)
void processAsync(WaitingTaskHolder iHolder, EventPrincipal const &e, std::vector< std::shared_ptr< const EventSetupImpl >> const *)
void doEndStream(unsigned int)
SubProcess & operator=(SubProcess const &)=delete
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
void openOutputFiles(FileBlock &fb)
SubProcess(ParameterSet ¶meterSet, ParameterSet const &topLevelParameterSet, std::shared_ptr< ProductRegistry const > parentProductRegistry, std::shared_ptr< BranchIDListHelper const > parentBranchIDListHelper, ProcessBlockHelperBase const &parentProcessBlockHelper, ThinnedAssociationsHelper const &parentThinnedAssociationsHelper, SubProcessParentageHelper const &parentSubProcessParentageHelper, eventsetup::EventSetupsController &esController, ActivityRegistry &parentActReg, ServiceToken const &token, serviceregistry::ServiceLegacy iLegacy, PreallocationConfiguration const &preallocConfig, ProcessContext const *parentProcessContext, ModuleTypeResolverMaker const *typeResolverMaker)
ParameterSet const & parameterSet(StableProvenance const &provenance, ProcessHistory const &history)
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID()
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
void doEndProcessBlockAsync(WaitingTaskHolder iHolder, ProcessBlockTransitionInfo const &iTransitionInfo, bool cleaningUpAfterException)
void getTriggerReport(TriggerReport &rep) const
int totalEventsFailed() const
std::vector< std::shared_ptr< RunPrincipal > > inUseRunPrincipals_
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper() const
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
void doEventAsync(WaitingTaskHolder iHolder, EventPrincipal const &principal, std::vector< std::shared_ptr< const EventSetupImpl >> const *)
ServiceToken serviceToken_
std::vector< std::shared_ptr< LuminosityBlockPrincipal > > inUseLumiPrincipals_
void doBeginLuminosityBlockAsync(WaitingTaskHolder iHolder, LumiTransitionInfo const &iTransitionInfo)
int totalEventsPassed() const
Return the number of events which have been passed by one or more trigger paths.
SelectedProductsForBranchType keptProducts_
void selectProducts(ProductRegistry const &preg, ThinnedAssociationsHelper const &parentThinnedAssociationsHelper, std::map< BranchID, bool > &keepAssociation)
ProductSelectorRules productSelectorRules_
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
edm::propagate_const< std::unique_ptr< ParameterSet > > processParameterSet_
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
std::vector< ModuleDescription const * > getAllModuleDescriptions() const
Return a vector allowing const access to all the ModuleDescriptions for this SubProcess.
void writeProcessBlockAsync(edm::WaitingTaskHolder task, ProcessBlockType)
std::unique_ptr< ExceptionToActionTable const > act_table_
std::vector< ParameterSet > popSubProcessVParameterSet(ParameterSet ¶meterSet)
std::map< BranchID::value_type, BranchID::value_type > droppedBranchIDToKeptBranchID_
ProductSelector productSelector_
detail::TriggerResultsBasedEventSelector selectors_
void doStreamBeginLuminosityBlockAsync(WaitingTaskHolder iHolder, unsigned int iID, LumiTransitionInfo const &)
void doStreamBeginRunAsync(WaitingTaskHolder iHolder, unsigned int iID, RunTransitionInfo const &)
void respondToCloseInputFile(FileBlock const &fb)
std::shared_ptr< ActivityRegistry > actReg_
void doEndRunAsync(WaitingTaskHolder iHolder, RunTransitionInfo const &iTransitionInfo, bool cleaningUpAfterException)
void doBeginRunAsync(WaitingTaskHolder iHolder, RunTransitionInfo const &iTransitionInfo)
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
std::vector< HistoryAppender > historyAppenders_
void clearRunPrincipal(RunPrincipal &)
void doBeginStream(unsigned int)
std::shared_ptr< ProductRegistry const > parentPreg_
void fixBranchIDListsForEDAliases(std::map< BranchID::value_type, BranchID::value_type > const &droppedBranchIDToKeptBranchID)
std::shared_ptr< BranchIDListHelper > & branchIDListHelper()
ProcessContext processContext_
bool shouldWeCloseOutput() const
std::vector< ModuleProcessName > keepOnlyConsumedUnscheduledModules(bool deleteModules)
void keepThisBranch(BranchDescription const &desc, std::map< BranchID, BranchDescription const *> &trueBranchIDToKeptBranchDesc, std::set< BranchID > &keptProductsInEvent)
void clearCounters()
Clear all the counters in the trigger report.
void doEndLuminosityBlockAsync(WaitingTaskHolder iHolder, LumiTransitionInfo const &iTransitionInfo, bool cleaningUpAfterException)
void writeLumiAsync(WaitingTaskHolder, LuminosityBlockPrincipal &)
std::shared_ptr< ProductRegistry const > preg_
PrincipalCache principalCache_
edm::propagate_const< std::shared_ptr< SubProcessParentageHelper > > subProcessParentageHelper_
std::shared_ptr< ProcessConfiguration const > processConfiguration_