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;
41 class ProcessBlockTransitionInfo;
42 class ProductRegistry;
43 class PreallocationConfiguration;
44 class RunTransitionInfo;
45 class ThinnedAssociationsHelper;
46 class SubProcessParentageHelper;
49 namespace eventsetup {
50 class EventSetupsController;
56 std::shared_ptr<ProductRegistry const> parentProductRegistry,
57 std::shared_ptr<BranchIDListHelper const> parentBranchIDListHelper,
78 std::map<BranchID, bool>& keepAssociation);
91 std::vector<std::shared_ptr<const EventSetupImpl>>
const*);
93 template <
typename Traits>
96 bool cleaningUpAfterException);
100 bool cleaningUpAfterException);
106 bool cleaningUpAfterException);
112 bool cleaningUpAfterException);
121 bool cleaningUpAfterException);
128 bool cleaningUpAfterException);
176 if (subProcess.shouldWeCloseOutput()) {
223 if (subProcess.terminate()) {
242 std::vector<std::shared_ptr<const EventSetupImpl>>
const*);
249 std::map<BranchID, BranchDescription const*>& trueBranchIDToKeptBranchDesc,
250 std::set<BranchID>& keptProductsInEvent);
270 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)
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_
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)
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_