1 #ifndef FWCore_Framework_stream_EDAnalyzerAdaptor_h 2 #define FWCore_Framework_stream_EDAnalyzerAdaptor_h 40 template <
typename ABase,
typename ModType>
45 template <
typename ModType>
56 m_runSummaries.resize(1);
57 m_lumiSummaries.resize(1);
58 typename T::GlobalCache
const*
dummy =
nullptr;
59 m_global = impl::makeGlobal<T>(iPSet, dummy);
80 auto tmp = impl::makeStreamModule<T>(*m_pset, m_global.get());
81 MyGlobal::set(
tmp, m_global.get());
88 m_lumis.resize(iNLumis);
89 m_lumiSummaries.resize(iNLumis);
92 void doEndJob() final { MyGlobal::endJob(m_global.get()); }
95 auto s = m_runSummaries[iRun.index()].get();
96 std::lock_guard<decltype(m_runSummaryLock)> guard(m_runSummaryLock);
97 MyGlobalRunSummary::streamEndRunSummary(iProd, iRun, iES,
s);
101 MyGlobalLuminosityBlock::set(iProd, m_lumis[iIndex].
get());
106 auto s = m_lumiSummaries[iLumi.index()].get();
107 std::lock_guard<decltype(m_lumiSummaryLock)> guard(m_lumiSummaryLock);
108 MyGlobalLuminosityBlockSummary::streamEndLuminosityBlockSummary(iProd, iLumi, iES,
s);
113 Run r(rp, moduleDescription(), mcc,
false);
115 Run const& cnstR =
r;
121 MyGlobalRun::beginRun(cnstR,
c, m_global.get(), m_runs[ri]);
122 typename T::RunContext rc(m_runs[ri].
get(), m_global.get());
123 MyGlobalRunSummary::beginRun(cnstR,
c, &rc, m_runSummaries[ri]);
128 Run r(rp, moduleDescription(), mcc,
true);
132 typename T::RunContext rc(m_runs[ri].
get(), m_global.get());
137 MyGlobalRunSummary::globalEndRun(r,
c, &rc, m_runSummaries[ri].
get());
150 RunIndex ri = lbp.runPrincipal().index();
151 typename T::RunContext rc(m_runs[ri].
get(), m_global.get());
156 MyGlobalLuminosityBlock::beginLuminosityBlock(cnstLb,
c, &rc, m_lumis[li]);
157 typename T::LuminosityBlockContext lc(m_lumis[li].
get(), m_runs[ri].
get(), m_global.get());
158 MyGlobalLuminosityBlockSummary::beginLuminosityBlock(cnstLb,
c, &lc, m_lumiSummaries[li]);
169 RunIndex ri = lbp.runPrincipal().index();
170 typename T::LuminosityBlockContext lc(m_lumis[li].
get(), m_runs[ri].
get(), m_global.get());
175 MyGlobalLuminosityBlockSummary::globalEndLuminosityBlock(lb,
c, &lc, m_lumiSummaries[li].
get());
176 MyGlobalLuminosityBlock::endLuminosityBlock(lb,
c, &lc);
201 template <
typename ModType>
204 auto module = std::make_unique<Adaptor>(
pset);
205 return std::unique_ptr<Base>(
module.release());
CallGlobalRun< T > MyGlobalRun
void streamEndRunSummary(EDAnalyzerBase *iProd, edm::Run const &iRun, edm::EventSetup const &iES) final
impl::choose_shared_vec< typename T::RunCache const >::type m_runs
static void fillDescriptions(ConfigurationDescriptions &descriptions)
void setConsumer(EDConsumerBase const *iConsumer)
static std::unique_ptr< Base > makeModule(ParameterSet const &pset)
void streamEndLuminosityBlockSummary(EDAnalyzerBase *iProd, edm::LuminosityBlock const &iLumi, edm::EventSetup const &iES) final
bool wantsGlobalRuns() const final
void doBeginRun(RunPrincipal const &rp, EventSetupImpl const &ci, ModuleCallingContext const *mcc) final
void preallocLumis(unsigned int iNLumis) final
void setupLuminosityBlock(EDAnalyzerBase *iProd, LuminosityBlockIndex iIndex) final
impl::choose_unique_ptr< typename T::GlobalCache >::type m_global
EDAnalyzerAdaptor< ModType > Type
impl::choose_shared_vec< typename T::RunSummaryCache >::type m_runSummaries
impl::choose_mutex< typename T::RunSummaryCache >::type m_runSummaryLock
CallGlobalLuminosityBlock< T > MyGlobalLuminosityBlock
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
bool wantsGlobalLuminosityBlocks() const final
impl::choose_shared_vec< typename T::LuminosityBlockSummaryCache >::type m_lumiSummaries
std::unique_ptr< T > type
EDAnalyzerAdaptor(edm::ParameterSet const &iPSet)
void setupStreamModules() final
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void doEndRun(RunPrincipal const &rp, EventSetupImpl const &ci, ModuleCallingContext const *mcc) final
impl::choose_shared_vec< typename T::LuminosityBlockCache const >::type m_lumis
void doBeginLuminosityBlock(LuminosityBlockPrincipal const &lbp, EventSetupImpl const &ci, ModuleCallingContext const *mcc) final
CallGlobalLuminosityBlockSummary< T > MyGlobalLuminosityBlockSummary
~EDAnalyzerAdaptor() override
edm::stream::EDAnalyzerAdaptorBase Base
impl::choose_mutex< typename T::LuminosityBlockSummaryCache >::type m_lumiSummaryLock
std::vector< std::shared_ptr< T > > type
ParameterSet const * m_pset
void setConsumer(EDConsumerBase const *iConsumer)
CallGlobalRunSummary< T > MyGlobalRunSummary
void doEndLuminosityBlock(LuminosityBlockPrincipal const &lbp, EventSetupImpl const &ci, ModuleCallingContext const *mcc) final
void setupRun(EDAnalyzerBase *iProd, RunIndex iIndex) final
static void prevalidate(ConfigurationDescriptions &descriptions)