1 #ifndef FWCore_Framework_stream_EDAnalyzerAdaptor_h 2 #define FWCore_Framework_stream_EDAnalyzerAdaptor_h 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);
68 T::prevalidate(descriptions);
84 auto tmp = impl::makeStreamModule<T>(*m_pset,m_global.get());
85 MyGlobal::set(
tmp,m_global.get());
92 m_lumis.resize(iNLumis);
93 m_lumiSummaries.resize(iNLumis);
97 MyGlobal::endJob(m_global.get());
100 MyGlobalRun::set(iProd, m_runs[iIndex].
get());
105 auto s = m_runSummaries[iRun.index()].get();
106 std::lock_guard<decltype(m_runSummaryLock)> guard(m_runSummaryLock);
107 MyGlobalRunSummary::streamEndRunSummary(iProd,iRun,iES,
s);
112 MyGlobalLuminosityBlock::set(iProd, m_lumis[iIndex].
get());
117 auto s = m_lumiSummaries[iLumi.index()].get();
118 std::lock_guard<decltype(m_lumiSummaryLock)> guard(m_lumiSummaryLock);
119 MyGlobalLuminosityBlockSummary::streamEndLuminosityBlockSummary(iProd,iLumi,iES,
s);
126 Run r(rp, moduleDescription(), mcc,
false);
128 Run const& cnstR =
r;
130 MyGlobalRun::beginRun(cnstR,
c,m_global.get(),m_runs[ri]);
131 typename T::RunContext rc(m_runs[ri].
get(),m_global.get());
132 MyGlobalRunSummary::beginRun(cnstR,
c,&rc,m_runSummaries[ri]);
141 Run r(rp, moduleDescription(), mcc,
true);
145 typename T::RunContext rc(m_runs[ri].
get(),m_global.get());
146 MyGlobalRunSummary::globalEndRun(r,
c,&rc,m_runSummaries[ri].
get());
160 RunIndex ri = lbp.runPrincipal().index();
161 typename T::RunContext rc(m_runs[ri].
get(),m_global.get());
162 MyGlobalLuminosityBlock::beginLuminosityBlock(cnstLb,
c,&rc,m_lumis[li]);
163 typename T::LuminosityBlockContext lc(m_lumis[li].
get(),m_runs[ri].
get(),m_global.get());
164 MyGlobalLuminosityBlockSummary::beginLuminosityBlock(cnstLb,
c,&lc,m_lumiSummaries[li]);
177 RunIndex ri = lbp.runPrincipal().index();
178 typename T::LuminosityBlockContext lc(m_lumis[li].
get(),m_runs[ri].
get(),m_global.get());
179 MyGlobalLuminosityBlockSummary::globalEndLuminosityBlock(lb,
c,&lc,m_lumiSummaries[li].
get());
180 MyGlobalLuminosityBlock::endLuminosityBlock(lb,
c,&lc);
205 template<
typename ModType>
208 auto module = std::make_unique<Adaptor>(
pset);
209 return std::unique_ptr<Base>(
module.release());
CallGlobalRun< T > MyGlobalRun
void streamEndRunSummary(EDAnalyzerBase *iProd, edm::Run const &iRun, edm::EventSetup const &iES) final
void doEndLuminosityBlock(LuminosityBlockPrincipal const &lbp, EventSetup const &c, ModuleCallingContext const *mcc) final
void doBeginLuminosityBlock(LuminosityBlockPrincipal const &lbp, EventSetup const &c, ModuleCallingContext const *mcc) 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, EventSetup const &c, ModuleCallingContext const *mcc) final
void preallocLumis(unsigned int iNLumis) final
void doEndRun(RunPrincipal const &rp, EventSetup const &c, ModuleCallingContext const *mcc) 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
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
impl::choose_shared_vec< typename T::LuminosityBlockSummaryCache >::type m_lumiSummaries
std::unique_ptr< T > type
EDAnalyzerAdaptor(edm::ParameterSet const &iPSet)
void setupStreamModules() final
impl::choose_shared_vec< typename T::LuminosityBlockCache const >::type m_lumis
CallGlobalLuminosityBlockSummary< T > MyGlobalLuminosityBlockSummary
~EDAnalyzerAdaptor() override
edm::stream::EDAnalyzerAdaptorBase Base
std::vector< std::vector< double > > tmp
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 setupRun(EDAnalyzerBase *iProd, RunIndex iIndex) final
static void prevalidate(ConfigurationDescriptions &descriptions)