|
|
Go to the documentation of this file. 1 #ifndef FWCore_Framework_stream_ProducingModuleAdaptor_h
2 #define FWCore_Framework_stream_ProducingModuleAdaptor_h
40 template <
typename T,
typename M,
typename B>
48 typename T::GlobalCache
const*
dummy =
nullptr;
59 return T::HasAbility::kWatchProcessBlock
or T::HasAbility::kBeginProcessBlockProducer
or
60 T::HasAbility::kEndProcessBlockProducer;
69 T::HasAbility::kBeginLuminosityBlockProducer
or T::HasAbility::kEndLuminosityBlockProducer;
92 this->createStreamModules([
this]() -> M* {
125 if constexpr (T::HasAbility::kWatchProcessBlock
or T::HasAbility::kBeginProcessBlockProducer) {
126 ProcessBlock processBlock(pbp, this->moduleDescription(), mcc,
false);
130 if constexpr (T::HasAbility::kBeginProcessBlockProducer) {
133 this->commit(processBlock);
139 if constexpr (T::HasAbility::kInputProcessBlockCache) {
140 ProcessBlock processBlock(pbp, this->moduleDescription(), mcc,
false);
148 if constexpr (T::HasAbility::kWatchProcessBlock
or T::HasAbility::kEndProcessBlockProducer) {
149 ProcessBlock processBlock(pbp, this->moduleDescription(), mcc,
true);
153 if constexpr (T::HasAbility::kEndProcessBlockProducer) {
156 this->commit(processBlock);
164 Run r(rp, this->moduleDescription(), mcc,
false);
167 Run const& cnstR =
r;
186 Run r(rp, this->moduleDescription(), mcc,
true);
207 T::HasAbility::kBeginLuminosityBlockProducer) {
224 if constexpr (T::HasAbility::kBeginLuminosityBlockProducer) {
232 T::HasAbility::kEndLuminosityBlockProducer) {
246 if constexpr (T::HasAbility::kEndLuminosityBlockProducer) {
static void endJob(typename T::GlobalCache *iCache)
RunPrincipal const & runPrincipal() const
static void produce(edm::Run &, edm::EventSetup const &, typename T::RunContext const *, typename T::RunSummaryCache const *)
bool hasAccumulator() const final
static void fillDescriptions(ConfigurationDescriptions &descriptions)
impl::choose_shared_vec< typename T::LuminosityBlockCache const >::type m_lumis
bool wantsProcessBlocks() const final
ProducingModuleAdaptor(edm::ParameterSet const &iPSet)
void setProducer(ProducerBase const *iProducer)
~ProducingModuleAdaptor() override
static void streamEndRunSummary(B *iProd, edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunSummaryCache *iCache)
impl::choose_shared_vec< typename T::RunSummaryCache >::type m_runSummaries
static void beginLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::RunContext const *iRC, std::shared_ptr< typename T::LuminosityBlockCache const > &oCache)
std::vector< std::shared_ptr< T > > type
static void set(B *iProd, typename T::GlobalCache const *iCache)
static void set(B *iProd, typename T::RunCache const *iCache)
void setProducer(ProducerBase const *iProducer)
static void produce(edm::LuminosityBlock &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, typename T::LuminosityBlockSummaryCache const *)
static void endLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext)
bool wantsGlobalLuminosityBlocks() const final
void doBeginProcessBlock(ProcessBlockPrincipal const &pbp, ModuleCallingContext const *mcc) final
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC)
static void endRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext)
static void beginJob(typename T::GlobalCache *iCache)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC)
static void globalEndLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext, typename T::LuminosityBlockSummaryCache *iCache)
void streamEndLuminosityBlockSummary(M *iProd, edm::LuminosityBlock const &iLumi, edm::EventSetup const &iES) final
void setConsumer(EDConsumerBase const *iConsumer)
void doBeginLuminosityBlock(LumiTransitionInfo const &info, ModuleCallingContext const *mcc) final
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
impl::choose_shared_vec< typename T::RunCache const >::type m_runs
impl::choose_unique_ptr< typename T::GlobalCache >::type m_global
void doEndProcessBlock(ProcessBlockPrincipal const &pbp, ModuleCallingContext const *mcc) final
void doEndLuminosityBlock(LumiTransitionInfo const &info, ModuleCallingContext const *mcc) final
bool wantsGlobalRuns() const final
static void prevalidate(ConfigurationDescriptions &descriptions)
void streamEndRunSummary(M *iProd, edm::Run const &iRun, edm::EventSetup const &iES) final
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, std::shared_ptr< typename T::RunSummaryCache > &oCache)
static void endProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)
bool wantsInputProcessBlocks() const final
void setConsumer(EDConsumerBase const *iConsumer)
void doBeginRun(RunTransitionInfo const &info, ModuleCallingContext const *mcc) final
T const & get(Event const &event, InputTag const &tag) noexcept(false)
const ProducingModuleAdaptor & operator=(const ProducingModuleAdaptor &)=delete
static void globalEndRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext, typename T::RunSummaryCache *iCache)
void setupStreamModules() final
std::unique_ptr< T > type
void setProducer(ProducerBase const *iProducer)
impl::choose_mutex< typename T::RunSummaryCache >::type m_runSummaryLock
static const std::string B
static void set(B *iProd, typename T::LuminosityBlockCache const *iCache)
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *globalCache)
ParameterSet const * m_pset
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::GlobalCache const *iGC, std::shared_ptr< typename T::RunCache const > &oCache)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *globalCache)
LuminosityBlockIndex index() const
static void streamEndLuminosityBlockSummary(B *iProd, edm::LuminosityBlock const &iLumi, edm::EventSetup const &iES, typename T::LuminosityBlockSummaryCache *iCache)
static void beginLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, std::shared_ptr< typename T::LuminosityBlockSummaryCache > &oCache)
void doEndRun(RunTransitionInfo const &info, ModuleCallingContext const *mcc) final
impl::choose_shared_vec< typename T::LuminosityBlockSummaryCache >::type m_lumiSummaries
void setupLuminosityBlock(M *iProd, LuminosityBlockIndex iIndex) final
void setupRun(M *iProd, RunIndex iIndex) final
void doAccessInputProcessBlock(ProcessBlockPrincipal const &pbp, ModuleCallingContext const *mcc) final
static void beginProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)
bool hasAcquire() const final
void preallocLumis(unsigned int iNLumis) final
impl::choose_mutex< typename T::LuminosityBlockSummaryCache >::type m_lumiSummaryLock