CMS 3D CMS Logo

EDAnalyzerAdaptor.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_stream_EDAnalyzerAdaptor_h
2 #define FWCore_Framework_stream_EDAnalyzerAdaptor_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : EDAnalyzerAdaptor
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Fri, 02 Aug 2013 18:09:18 GMT
19 //
20 
21 // system include files
22 
23 // user include files
36 
37 // forward declarations
38 
39 namespace edm {
40  namespace stream {
41 
42  template <typename ABase, typename ModType>
43  struct BaseToAdaptor;
44 
45  template <typename T>
47  template <typename ModType>
50  };
51 
52  template <typename T>
54  public:
55  EDAnalyzerAdaptor(edm::ParameterSet const& iPSet) : m_pset(&iPSet) {
56  m_runs.resize(1);
57  m_lumis.resize(1);
58  m_runSummaries.resize(1);
59  m_lumiSummaries.resize(1);
60  typename T::GlobalCache const* dummy = nullptr;
61  m_global = impl::makeGlobal<T>(iPSet, dummy);
62  }
63  EDAnalyzerAdaptor(const EDAnalyzerAdaptor&) = delete; // stop default
64  const EDAnalyzerAdaptor& operator=(const EDAnalyzerAdaptor&) = delete; // stop default
65  ~EDAnalyzerAdaptor() override {}
66 
67  static void fillDescriptions(ConfigurationDescriptions& descriptions) { T::fillDescriptions(descriptions); }
68  static void prevalidate(ConfigurationDescriptions& descriptions) { T::prevalidate(descriptions); }
69 
70  bool wantsProcessBlocks() const final { return T::HasAbility::kWatchProcessBlock; }
71  bool wantsInputProcessBlocks() const final { return T::HasAbility::kInputProcessBlockCache; }
75  }
76 
77  private:
85 
86  void setupStreamModules() final {
87  this->createStreamModules([this]() -> EDAnalyzerBase* {
88  auto tmp = impl::makeStreamModule<T>(*m_pset, m_global.get());
89  MyGlobal::set(tmp, m_global.get());
90  return tmp;
91  });
92  m_pset = nullptr;
93  }
94 
95  void preallocLumis(unsigned int iNLumis) final {
96  m_lumis.resize(iNLumis);
97  m_lumiSummaries.resize(iNLumis);
98  }
99 
100  void doBeginJob() final { MyGlobal::beginJob(m_global.get()); }
101  void doEndJob() final { MyGlobal::endJob(m_global.get()); }
102  void setupRun(EDAnalyzerBase* iProd, RunIndex iIndex) final { MyGlobalRun::set(iProd, m_runs[iIndex].get()); }
103  void streamEndRunSummary(EDAnalyzerBase* iProd, edm::Run const& iRun, edm::EventSetup const& iES) final {
104  auto s = m_runSummaries[iRun.index()].get();
105  std::lock_guard<decltype(m_runSummaryLock)> guard(m_runSummaryLock);
106  MyGlobalRunSummary::streamEndRunSummary(iProd, iRun, iES, s);
107  }
108 
110  MyGlobalLuminosityBlock::set(iProd, m_lumis[iIndex].get());
111  }
113  edm::LuminosityBlock const& iLumi,
114  edm::EventSetup const& iES) final {
115  auto s = m_lumiSummaries[iLumi.index()].get();
116  std::lock_guard<decltype(m_lumiSummaryLock)> guard(m_lumiSummaryLock);
118  }
119 
121  if constexpr (T::HasAbility::kWatchProcessBlock) {
122  ProcessBlock processBlock(pbp, moduleDescription(), mcc, false);
123  processBlock.setConsumer(consumer());
124  ProcessBlock const& cnstProcessBlock = processBlock;
125  MyWatchProcessBlock::beginProcessBlock(cnstProcessBlock, m_global.get());
126  }
127  }
128 
130  if constexpr (T::HasAbility::kInputProcessBlockCache) {
131  ProcessBlock processBlock(pbp, moduleDescription(), mcc, false);
132  processBlock.setConsumer(consumer());
133  ProcessBlock const& cnstProcessBlock = processBlock;
135  }
136  }
137 
138  void doEndProcessBlock(ProcessBlockPrincipal const& pbp, ModuleCallingContext const* mcc) final {
139  if constexpr (T::HasAbility::kWatchProcessBlock) {
140  ProcessBlock processBlock(pbp, moduleDescription(), mcc, true);
141  processBlock.setConsumer(consumer());
142  ProcessBlock const& cnstProcessBlock = processBlock;
143  MyWatchProcessBlock::endProcessBlock(cnstProcessBlock, m_global.get());
144  }
145  }
146 
147  void doBeginRun(RunTransitionInfo const& info, ModuleCallingContext const* mcc) final {
149  RunPrincipal const& rp = info.principal();
150  Run r(rp, moduleDescription(), mcc, false);
151  r.setConsumer(consumer());
152  Run const& cnstR = r;
153  RunIndex ri = rp.index();
154  const EventSetup c{info,
155  static_cast<unsigned int>(Transition::BeginRun),
157  false};
158  MyGlobalRun::beginRun(cnstR, c, m_global.get(), m_runs[ri]);
159  typename T::RunContext rc(m_runs[ri].get(), m_global.get());
161  }
162  }
163  void doEndRun(RunTransitionInfo const& info, ModuleCallingContext const* mcc) final {
165  RunPrincipal const& rp = info.principal();
166  Run r(rp, moduleDescription(), mcc, true);
167  r.setConsumer(consumer());
168 
169  RunIndex ri = rp.index();
170  typename T::RunContext rc(m_runs[ri].get(), m_global.get());
171  const EventSetup c{info,
172  static_cast<unsigned int>(Transition::EndRun),
174  false};
176  MyGlobalRun::endRun(r, c, &rc);
177  }
178  }
179 
182  LuminosityBlockPrincipal const& lbp = info.principal();
183  LuminosityBlock lb(lbp, moduleDescription(), mcc, false);
184  lb.setConsumer(consumer());
185  LuminosityBlock const& cnstLb = lb;
186  LuminosityBlockIndex li = lbp.index();
187  RunIndex ri = lbp.runPrincipal().index();
188  typename T::RunContext rc(m_runs[ri].get(), m_global.get());
189  const EventSetup c{info,
190  static_cast<unsigned int>(Transition::BeginLuminosityBlock),
192  false};
194  typename T::LuminosityBlockContext lc(m_lumis[li].get(), m_runs[ri].get(), m_global.get());
196  }
197  }
200  LuminosityBlockPrincipal const& lbp = info.principal();
201  LuminosityBlock lb(lbp, moduleDescription(), mcc, true);
202  lb.setConsumer(consumer());
203 
204  LuminosityBlockIndex li = lbp.index();
205  RunIndex ri = lbp.runPrincipal().index();
206  typename T::LuminosityBlockContext lc(m_lumis[li].get(), m_runs[ri].get(), m_global.get());
207  const EventSetup c{info,
208  static_cast<unsigned int>(Transition::EndLuminosityBlock),
210  false};
213  }
214  }
215 
216  // ---------- member data --------------------------------
225  };
226  } // namespace stream
227 
228  template <>
231 
232  public:
233  template <typename ModType>
234  static std::unique_ptr<Base> makeModule(ParameterSet const& pset) {
235  typedef typename stream::BaseToAdaptor<Base, ModType>::Type Adaptor;
236  auto module = std::make_unique<Adaptor>(pset);
237  return std::unique_ptr<Base>(module.release());
238  }
239  };
240 
241 } // namespace edm
242 
243 #endif
edm::stream::CallGlobalImpl::endJob
static void endJob(typename T::GlobalCache *iCache)
Definition: callAbilities.h:55
edm::stream::CallGlobalLuminosityBlockImpl
Definition: callAbilities.h:179
edm::LuminosityBlockPrincipal::runPrincipal
RunPrincipal const & runPrincipal() const
Definition: LuminosityBlockPrincipal.h:45
edm::stream::EDAnalyzerAdaptor::streamEndRunSummary
void streamEndRunSummary(EDAnalyzerBase *iProd, edm::Run const &iRun, edm::EventSetup const &iES) final
Definition: EDAnalyzerAdaptor.h:103
edm::stream::EDAnalyzerAdaptor::m_lumiSummaryLock
impl::choose_mutex< typename T::LuminosityBlockSummaryCache >::type m_lumiSummaryLock
Definition: EDAnalyzerAdaptor.h:223
edm::LumiTransitionInfo
Definition: TransitionInfoTypes.h:42
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::stream::CallGlobalLuminosityBlockSummaryImpl
Definition: callAbilities.h:217
edm::Run
Definition: Run.h:45
LuminosityBlock.h
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::stream::CallGlobalRunSummaryImpl::streamEndRunSummary
static void streamEndRunSummary(B *iProd, edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunSummaryCache *iCache)
Definition: callAbilities.h:144
cms::cuda::stream
cudaStream_t stream
Definition: HistoContainer.h:57
ProcessBlock.h
edm::stream::CallGlobalLuminosityBlockImpl::beginLuminosityBlock
static void beginLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::RunContext const *iRC, std::shared_ptr< typename T::LuminosityBlockCache const > &oCache)
Definition: callAbilities.h:180
edm::MakeModuleHelper< edm::stream::EDAnalyzerAdaptorBase >::makeModule
static std::unique_ptr< Base > makeModule(ParameterSet const &pset)
Definition: EDAnalyzerAdaptor.h:234
edm::stream::EDAnalyzerAdaptor::doAccessInputProcessBlock
void doAccessInputProcessBlock(ProcessBlockPrincipal const &pbp, ModuleCallingContext const *mcc) final
Definition: EDAnalyzerAdaptor.h:129
edm::stream::CallGlobalRunSummaryImpl
Definition: callAbilities.h:136
edm::stream::BaseToAdaptor< EDAnalyzerAdaptorBase, ModType >::Type
EDAnalyzerAdaptor< ModType > Type
Definition: EDAnalyzerAdaptor.h:49
edm::LuminosityBlockPrincipal
Definition: LuminosityBlockPrincipal.h:31
edm::stream::impl::choose_shared_vec::type
std::vector< std::shared_ptr< T > > type
Definition: dummy_helpers.h:64
edm::stream::CallGlobalImpl::set
static void set(B *iProd, typename T::GlobalCache const *iCache)
Definition: callAbilities.h:47
edm::stream::CallGlobalRunImpl::set
static void set(B *iProd, typename T::RunCache const *iCache)
Definition: callAbilities.h:113
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
edm::stream::EDAnalyzerAdaptor::doEndJob
void doEndJob() final
Definition: EDAnalyzerAdaptor.h:101
callAbilities.h
edm::stream::CallGlobalLuminosityBlockImpl::endLuminosityBlock
static void endLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext)
Definition: callAbilities.h:192
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
edm::RunTransitionInfo
Definition: TransitionInfoTypes.h:64
watchdog.const
const
Definition: watchdog.py:83
edm::ProcessBlockPrincipal
Definition: ProcessBlockPrincipal.h:22
edm::stream::EDAnalyzerAdaptor::m_global
impl::choose_unique_ptr< typename T::GlobalCache >::type m_global
Definition: EDAnalyzerAdaptor.h:217
makeGlobal.h
edm::stream::EDAnalyzerAdaptor::doEndRun
void doEndRun(RunTransitionInfo const &info, ModuleCallingContext const *mcc) final
Definition: EDAnalyzerAdaptor.h:163
edm::stream::EDAnalyzerAdaptor::doBeginLuminosityBlock
void doBeginLuminosityBlock(LumiTransitionInfo const &info, ModuleCallingContext const *mcc) final
Definition: EDAnalyzerAdaptor.h:180
edm::stream::CallGlobalRunImpl::endRun
static void endRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext)
Definition: callAbilities.h:117
edm::stream::EDAnalyzerAdaptor::doBeginJob
void doBeginJob() final
Definition: EDAnalyzerAdaptor.h:100
edm::stream::EDAnalyzerAdaptor::wantsGlobalLuminosityBlocks
bool wantsGlobalLuminosityBlocks() const final
Definition: EDAnalyzerAdaptor.h:73
alignCSCRings.s
s
Definition: alignCSCRings.py:92
edm::stream::CallGlobalImpl::beginJob
static void beginJob(typename T::GlobalCache *iCache)
Definition: callAbilities.h:50
edm::stream::EDAnalyzerAdaptor::doEndProcessBlock
void doEndProcessBlock(ProcessBlockPrincipal const &pbp, ModuleCallingContext const *mcc) final
Definition: EDAnalyzerAdaptor.h:138
edm::LuminosityBlockIndex
Definition: LuminosityBlockIndex.h:33
edm::stream::CallGlobalLuminosityBlockSummaryImpl::globalEndLuminosityBlock
static void globalEndLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext, typename T::LuminosityBlockSummaryCache *iCache)
Definition: callAbilities.h:232
edm::stream::EDAnalyzerAdaptorBase::createStreamModules
void createStreamModules(T iFunc)
Definition: EDAnalyzerAdaptorBase.h:94
edm::ProcessBlock::setConsumer
void setConsumer(EDConsumerBase const *iConsumer)
Definition: ProcessBlock.h:53
edm::stream::EDAnalyzerAdaptor
Definition: EDAnalyzerAdaptor.h:46
fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::stream::EDAnalyzerAdaptor::m_lumis
impl::choose_shared_vec< typename T::LuminosityBlockCache const >::type m_lumis
Definition: EDAnalyzerAdaptor.h:219
Run.h
EDAnalyzerAdaptorBase.h
edm::Transition::BeginLuminosityBlock
edm::MakeModuleHelper
Definition: MakeModuleHelper.h:30
edm::stream::CallGlobalImpl
Definition: callAbilities.h:45
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
edm::RunPrincipal::index
RunIndex index() const
Definition: RunPrincipal.h:57
edm::stream::EDAnalyzerAdaptor::doEndLuminosityBlock
void doEndLuminosityBlock(LumiTransitionInfo const &info, ModuleCallingContext const *mcc) final
Definition: EDAnalyzerAdaptor.h:198
edm::stream::CallGlobalRunSummaryImpl::beginRun
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, std::shared_ptr< typename T::RunSummaryCache > &oCache)
Definition: callAbilities.h:137
edm::stream::CallWatchProcessBlockImpl::endProcessBlock
static void endProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)
Definition: callAbilities.h:269
edm::stream::EDAnalyzerAdaptor::EDAnalyzerAdaptor
EDAnalyzerAdaptor(edm::ParameterSet const &iPSet)
Definition: EDAnalyzerAdaptor.h:55
edm::ParameterSet
Definition: ParameterSet.h:47
edm::stream::EDAnalyzerAdaptor::m_pset
ParameterSet const * m_pset
Definition: EDAnalyzerAdaptor.h:224
edm::LuminosityBlock::setConsumer
void setConsumer(EDConsumerBase const *iConsumer)
Definition: LuminosityBlock.cc:33
edm::stream::EDAnalyzerAdaptor::m_runSummaries
impl::choose_shared_vec< typename T::RunSummaryCache >::type m_runSummaries
Definition: EDAnalyzerAdaptor.h:220
edm::module::AbilityBits::kRunSummaryCache
Definition: moduleAbilityEnums.h:59
RunPrincipal.h
edm::get
T const & get(Event const &event, InputTag const &tag) noexcept(false)
Definition: Event.h:671
edm::stream::EDAnalyzerAdaptor::m_runSummaryLock
impl::choose_mutex< typename T::RunSummaryCache >::type m_runSummaryLock
Definition: EDAnalyzerAdaptor.h:221
MakeModuleHelper.h
edm::stream::EDAnalyzerAdaptor::doBeginProcessBlock
void doBeginProcessBlock(ProcessBlockPrincipal const &pbp, ModuleCallingContext const *mcc) final
Definition: EDAnalyzerAdaptor.h:120
edm::stream::EDAnalyzerAdaptor::~EDAnalyzerAdaptor
~EDAnalyzerAdaptor() override
Definition: EDAnalyzerAdaptor.h:65
edm::stream::CallGlobalRunSummaryImpl::globalEndRun
static void globalEndRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext, typename T::RunSummaryCache *iCache)
Definition: callAbilities.h:151
edm::stream::BaseToAdaptor
Definition: EDAnalyzerAdaptor.h:43
edm::stream::EDAnalyzerAdaptorBase
Definition: EDAnalyzerAdaptorBase.h:63
edm::EventSetup
Definition: EventSetup.h:57
edm::stream::CallInputProcessBlockImpl::accessInputProcessBlock
static void accessInputProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)
Definition: callAbilities.h:72
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
edm::stream::impl::choose_unique_ptr::type
std::unique_ptr< T > type
Definition: dummy_helpers.h:50
LuminosityBlockPrincipal.h
edm::stream::EDAnalyzerAdaptor::m_runs
impl::choose_shared_vec< typename T::RunCache const >::type m_runs
Definition: EDAnalyzerAdaptor.h:218
alignCSCRings.r
r
Definition: alignCSCRings.py:93
edm::stream::EDAnalyzerAdaptor::prevalidate
static void prevalidate(ConfigurationDescriptions &descriptions)
Definition: EDAnalyzerAdaptor.h:68
edm::stream::EDAnalyzerAdaptor::setupLuminosityBlock
void setupLuminosityBlock(EDAnalyzerBase *iProd, LuminosityBlockIndex iIndex) final
Definition: EDAnalyzerAdaptor.h:109
edm::Transition::EndLuminosityBlock
edm::stream::CallGlobalLuminosityBlockImpl::set
static void set(B *iProd, typename T::LuminosityBlockCache const *iCache)
Definition: callAbilities.h:188
edm::module::AbilityBits::kRunCache
Definition: moduleAbilityEnums.h:57
edm::stream::EDAnalyzerBase
Definition: EDAnalyzerBase.h:35
edm::EDConsumerBase::esGetTokenIndices
ESProxyIndex const * esGetTokenIndices(edm::Transition iTrans) const
Definition: EDConsumerBase.h:118
edm::stream::CallGlobalRunImpl::beginRun
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::GlobalCache const *iGC, std::shared_ptr< typename T::RunCache const > &oCache)
Definition: callAbilities.h:105
edm::Transition::BeginRun
edm::stream::EDAnalyzerAdaptor::operator=
const EDAnalyzerAdaptor & operator=(const EDAnalyzerAdaptor &)=delete
edm::module::AbilityBits::kLuminosityBlockSummaryCache
Definition: moduleAbilityEnums.h:60
edm::stream::EDAnalyzerAdaptor::wantsProcessBlocks
bool wantsProcessBlocks() const final
Definition: EDAnalyzerAdaptor.h:70
edm::stream::EDAnalyzerAdaptor::streamEndLuminosityBlockSummary
void streamEndLuminosityBlockSummary(EDAnalyzerBase *iProd, edm::LuminosityBlock const &iLumi, edm::EventSetup const &iES) final
Definition: EDAnalyzerAdaptor.h:112
edm::module::AbilityBits::kLuminosityBlockCache
Definition: moduleAbilityEnums.h:58
edm::stream::CallWatchProcessBlockImpl
Definition: callAbilities.h:264
EventSetup.h
or
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
Definition: Activities.doc:12
edm::stream::EDAnalyzerAdaptor::preallocLumis
void preallocLumis(unsigned int iNLumis) final
Definition: EDAnalyzerAdaptor.h:95
edm::RunIndex
Definition: RunIndex.h:32
edm::stream::EDAnalyzerAdaptor::doBeginRun
void doBeginRun(RunTransitionInfo const &info, ModuleCallingContext const *mcc) final
Definition: EDAnalyzerAdaptor.h:147
edm::stream::CallInputProcessBlockImpl
Definition: callAbilities.h:71
edm::stream::EDAnalyzerAdaptor::m_lumiSummaries
impl::choose_shared_vec< typename T::LuminosityBlockSummaryCache >::type m_lumiSummaries
Definition: EDAnalyzerAdaptor.h:222
dummy_helpers.h
TransitionInfoTypes.h
edm::LuminosityBlockPrincipal::index
LuminosityBlockIndex index() const
Definition: LuminosityBlockPrincipal.h:51
dummy
Definition: DummySelector.h:38
edm::RunPrincipal
Definition: RunPrincipal.h:34
edm::stream::EDAnalyzerAdaptor::wantsInputProcessBlocks
bool wantsInputProcessBlocks() const final
Definition: EDAnalyzerAdaptor.h:71
edm::stream::CallGlobalLuminosityBlockSummaryImpl::streamEndLuminosityBlockSummary
static void streamEndLuminosityBlockSummary(B *iProd, edm::LuminosityBlock const &iLumi, edm::EventSetup const &iES, typename T::LuminosityBlockSummaryCache *iCache)
Definition: callAbilities.h:225
edm::stream::CallGlobalLuminosityBlockSummaryImpl::beginLuminosityBlock
static void beginLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, std::shared_ptr< typename T::LuminosityBlockSummaryCache > &oCache)
Definition: callAbilities.h:218
edm::stream::impl::choose_mutex::type
std::mutex type
Definition: dummy_helpers.h:76
edm::stream::EDAnalyzerAdaptor::fillDescriptions
static void fillDescriptions(ConfigurationDescriptions &descriptions)
Definition: EDAnalyzerAdaptor.h:67
edm::Transition::EndRun
edm::stream::EDAnalyzerAdaptor::setupStreamModules
void setupStreamModules() final
Definition: EDAnalyzerAdaptor.h:86
edm::stream::EDAnalyzerAdaptorBase::consumer
const EDConsumerBase * consumer() const
Definition: EDAnalyzerAdaptorBase.cc:122
edm::MakeModuleHelper< edm::stream::EDAnalyzerAdaptorBase >::Base
edm::stream::EDAnalyzerAdaptorBase Base
Definition: EDAnalyzerAdaptor.h:230
edm::stream::EDAnalyzerAdaptor::setupRun
void setupRun(EDAnalyzerBase *iProd, RunIndex iIndex) final
Definition: EDAnalyzerAdaptor.h:102
edm::stream::EDAnalyzerAdaptorBase::moduleDescription
const ModuleDescription & moduleDescription() const
Definition: EDAnalyzerAdaptorBase.h:80
edm::ProcessBlock
Definition: ProcessBlock.h:36
edm::stream::CallWatchProcessBlockImpl::beginProcessBlock
static void beginProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)
Definition: callAbilities.h:265
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
edm::stream::EDAnalyzerAdaptor::wantsGlobalRuns
bool wantsGlobalRuns() const final
Definition: EDAnalyzerAdaptor.h:72
edm::stream::CallGlobalRunImpl
Definition: callAbilities.h:104
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29