CMS 3D CMS Logo

EDLooperBase.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: <package>
4 // Module: EDLooperBase
5 //
6 // Author: Valentin Kuznetsov
7 // Created: Wed Jul 5 11:44:26 EDT 2006
8 
35 #include "tbb/global_control.h"
36 
37 namespace edm {
38 
40  : iCounter_(0),
41  act_table_(nullptr),
42  moduleChanger_(nullptr),
43  moduleDescription_("Looper", "looper"),
44  moduleCallingContext_(&moduleDescription_) {}
46 
48 
50  const edm::EventSetupImpl& esi,
51  edm::ProcessingController& ioController,
52  StreamContext* streamContext) {
54  streamContext->setEventID(eventPrincipal.id());
55  streamContext->setRunIndex(eventPrincipal.luminosityBlockPrincipal().runPrincipal().index());
56  streamContext->setLuminosityBlockIndex(eventPrincipal.luminosityBlockPrincipal().index());
57  streamContext->setTimestamp(eventPrincipal.time());
58  ParentContext parentContext(streamContext);
59  ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext);
61  event.setConsumer(this);
62 
64  try {
66  const EventSetup es{
67  esi, static_cast<unsigned int>(Transition::Event), esGetTokenIndices(Transition::Event), parentC, false};
68  status = duringLoop(event, es, ioController);
69  } catch (cms::Exception& e) {
70  e.addContext("Calling the 'duringLoop' method of a looper");
73  edm::printCmsExceptionWarning("SkipEvent", e);
74  } else {
75  throw;
76  }
77  }
78  return status;
79  }
80 
83  const EventSetup es{
84  esi, static_cast<unsigned int>(Transition::EndRun), esGetTokenIndices(Transition::EndRun), parentC, false};
85  return endOfLoop(es, iCounter_);
86  }
87 
89  ++iCounter_;
90 
91  std::set<edm::eventsetup::EventSetupRecordKey> const& keys = modifyingRecords();
92  for_all(keys,
93  std::bind(&eventsetup::EventSetupProvider::resetRecordPlusDependentRecords, esp, std::placeholders::_1));
94  }
95 
98  beginOfJob(EventSetup{iImpl,
99  static_cast<unsigned int>(Transition::BeginRun),
101  parentC,
102  false});
103  }
106 
108 
109  void EDLooperBase::doBeginRun(RunPrincipal& iRP, EventSetupImpl const& iES, ProcessContext* processContext) {
111  LuminosityBlockID(iRP.run(), 0),
112  iRP.index(),
114  iRP.beginTime(),
115  processContext);
116  ParentContext parentContext(&globalContext);
117  ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext);
119  run.setConsumer(this);
121  const EventSetup es{
122  iES, static_cast<unsigned int>(Transition::BeginRun), esGetTokenIndices(Transition::BeginRun), parentC, false};
123  beginRun(run, es);
124  }
125 
126  void EDLooperBase::doEndRun(RunPrincipal& iRP, EventSetupImpl const& iES, ProcessContext* processContext) {
128  LuminosityBlockID(iRP.run(), 0),
129  iRP.index(),
131  iRP.endTime(),
132  processContext);
133  ParentContext parentContext(&globalContext);
134  ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext);
136  run.setConsumer(this);
138  const EventSetup es{
139  iES, static_cast<unsigned int>(Transition::EndRun), esGetTokenIndices(Transition::EndRun), parentC, false};
140  endRun(run, es);
141  }
143  EventSetupImpl const& iES,
144  ProcessContext* processContext) {
146  iLB.id(),
147  iLB.runPrincipal().index(),
148  iLB.index(),
149  iLB.beginTime(),
150  processContext);
151  ParentContext parentContext(&globalContext);
152  ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext);
153  LuminosityBlock luminosityBlock(iLB, moduleDescription_, &moduleCallingContext_, false);
154  luminosityBlock.setConsumer(this);
156  const EventSetup es{iES,
157  static_cast<unsigned int>(Transition::BeginLuminosityBlock),
159  parentC,
160  false};
161  beginLuminosityBlock(luminosityBlock, es);
162  }
164  EventSetupImpl const& iES,
165  ProcessContext* processContext) {
167  iLB.id(),
168  iLB.runPrincipal().index(),
169  iLB.index(),
170  iLB.beginTime(),
171  processContext);
172  ParentContext parentContext(&globalContext);
173  ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext);
174  LuminosityBlock luminosityBlock(iLB, moduleDescription_, &moduleCallingContext_, true);
175  luminosityBlock.setConsumer(this);
177  const EventSetup es{iES,
178  static_cast<unsigned int>(Transition::EndLuminosityBlock),
180  parentC,
181  false};
182  endLuminosityBlock(luminosityBlock, es);
183  }
184 
185  void EDLooperBase::beginRun(Run const&, EventSetup const&) {}
186  void EDLooperBase::endRun(Run const&, EventSetup const&) {}
189 
191 
193  ServiceToken const& token,
194  Transition iTrans,
195  Principal const& iPrincipal,
196  EventSetupImpl const& iImpl) const {
197  esPrefetchAsync(iTask, iImpl, iTrans, token);
198  edPrefetchAsync(std::move(iTask), token, iPrincipal);
199  }
200 
202  ServiceToken const& token,
203  Principal const& iPrincipal) const {
204  //Based on Worker edPrefetchAsync
205 
206  // Prefetch products the module declares it consumes
207  std::vector<ProductResolverIndexAndSkipBit> const& items = itemsToGetFrom(iPrincipal.branchType());
208 
209  for (auto const& item : items) {
210  ProductResolverIndex productResolverIndex = item.productResolverIndex();
211  bool skipCurrentProcess = item.skipCurrentProcess();
212  if (productResolverIndex != ProductResolverIndexAmbiguous) {
213  iPrincipal.prefetchAsync(iTask, productResolverIndex, skipCurrentProcess, token, &moduleCallingContext_);
214  }
215  }
216  }
217 
219  EventSetupImpl const& iImpl,
220  Transition iTrans,
221  ServiceToken const& iToken) const {
222  //Based on Worker::esPrefetchAsync
224  return;
225  }
226  auto const& recs = esGetTokenRecordIndicesVector(iTrans);
227  auto const& items = esGetTokenIndicesVector(iTrans);
228 
229  assert(items.size() == recs.size());
230  if (items.empty()) {
231  return;
232  }
233 
234  //Thread case of 1 thread special. The master thread is doing a wait_for_all on the
235  // default tbb arena. It will not process any tasks on the es arena. We need to add a
236  // task that will synchronously do a wait_for_all in the es arena to be sure prefetching
237  // will work.
238 
239  if UNLIKELY (tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) == 1) {
240  auto taskGroup = iTask.group();
241  ServiceWeakToken weakToken = iToken;
242  taskGroup->run([this, task = std::move(iTask), iTrans, &iImpl, weakToken]() {
243  std::exception_ptr exceptPtr{};
244  iImpl.taskArena()->execute([this, iTrans, &iImpl, weakToken, &exceptPtr]() {
245  exceptPtr = syncWait([&](WaitingTaskHolder&& iHolder) {
246  auto const& recs = esGetTokenRecordIndicesVector(iTrans);
247  auto const& items = esGetTokenIndicesVector(iTrans);
248  auto hWaitTask = std::move(iHolder);
249  auto token = weakToken.lock();
250  for (size_t i = 0; i != items.size(); ++i) {
251  if (recs[i] != ESRecordIndex{}) {
252  auto rec = iImpl.findImpl(recs[i]);
253  if (rec) {
254  rec->prefetchAsync(hWaitTask, items[i], &iImpl, token, ESParentContext(&moduleCallingContext_));
255  }
256  }
257  }
258  }); //syncWait
259  }); //esTaskArena().execute
260  //note use of a copy gets around declaring the lambda as mutable
261  auto tempTask = task;
262  tempTask.doneWaiting(exceptPtr);
263  }); //group.run
264  } else {
265  auto group = iTask.group();
266  //We need iTask to run in the default arena since it is not an ES task
267  auto task = make_waiting_task(
268  [holder = WaitingTaskWithArenaHolder(std::move(iTask))](std::exception_ptr const* iExcept) mutable {
269  if (iExcept) {
270  holder.doneWaiting(*iExcept);
271  } else {
272  holder.doneWaiting(std::exception_ptr{});
273  }
274  });
275 
276  WaitingTaskHolder tempH(*group, task);
277  iImpl.taskArena()->execute([&]() {
278  for (size_t i = 0; i != items.size(); ++i) {
279  if (recs[i] != ESRecordIndex{}) {
280  auto rec = iImpl.findImpl(recs[i]);
281  if (rec) {
282  rec->prefetchAsync(tempH, items[i], &iImpl, iToken, ESParentContext(&moduleCallingContext_));
283  }
284  }
285  }
286  });
287  }
288  }
289 
290  std::set<eventsetup::EventSetupRecordKey> EDLooperBase::modifyingRecords() const {
291  return std::set<eventsetup::EventSetupRecordKey>();
292  }
293 
294  void EDLooperBase::copyInfo(const ScheduleInfo& iInfo) { scheduleInfo_ = std::make_unique<ScheduleInfo>(iInfo); }
296 
298  const ScheduleInfo* EDLooperBase::scheduleInfo() const { return scheduleInfo_.get(); }
299 
300 } // namespace edm
edm::EDLooperBase::Status
Status
Definition: EDLooperBase.h:82
edm::RunPrincipal::endTime
Timestamp const & endTime() const
Definition: RunPrincipal.h:69
edm::LuminosityBlockPrincipal::runPrincipal
RunPrincipal const & runPrincipal() const
Definition: LuminosityBlockPrincipal.h:45
edm::EventSetupImpl::findImpl
eventsetup::EventSetupRecordImpl const * findImpl(const eventsetup::EventSetupRecordKey &) const
Definition: EventSetupImpl.cc:60
ModuleCallingContext.h
edm::ProductResolverIndex
unsigned int ProductResolverIndex
Definition: ProductResolverIndex.h:8
mps_fire.i
i
Definition: mps_fire.py:428
edm::EventPrincipal::luminosityBlockPrincipal
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
Definition: EventPrincipal.h:85
funct::false
false
Definition: Factorize.h:29
edm::ServiceWeakToken
Definition: ServiceToken.h:86
edm::StreamContext::setTransition
void setTransition(Transition v)
Definition: StreamContext.h:65
EventSetupProvider.h
ScheduleInfo.h
edm::EDLooperBase::EDLooperBase
EDLooperBase()
Definition: EDLooperBase.cc:39
edm::exception_actions::Rethrow
Definition: ExceptionActions.h:11
edm::ModuleContextSentry
Definition: ModuleContextSentry.h:11
edm::EventSetupImpl
Definition: EventSetupImpl.h:49
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
mps_update.status
status
Definition: mps_update.py:68
edm::Run
Definition: Run.h:45
WaitingTaskHolder.h
edm::EDLooperBase::copyInfo
void copyInfo(ScheduleInfo const &)
Definition: EDLooperBase.cc:294
LuminosityBlock.h
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::Transition::Event
edm::ProcessContext
Definition: ProcessContext.h:27
edm::printCmsExceptionWarning
void printCmsExceptionWarning(char const *behavior, cms::Exception const &e)
Definition: ExceptionMessages.cc:25
edm::StreamContext::setTimestamp
void setTimestamp(Timestamp const &v)
Definition: StreamContext.h:69
edm::LuminosityBlockPrincipal
Definition: LuminosityBlockPrincipal.h:31
Algorithms.h
edm::StreamContext::setLuminosityBlockIndex
void setLuminosityBlockIndex(LuminosityBlockIndex const &v)
Definition: StreamContext.h:68
cms::cuda::assert
assert(be >=bs)
edm::Principal
Definition: Principal.h:56
edm::EDConsumerBase::esGetTokenIndicesVector
std::vector< ESProxyIndex > const & esGetTokenIndicesVector(edm::Transition iTrans) const
Definition: EDConsumerBase.h:135
ServiceToken.h
relativeConstraints.keys
keys
Definition: relativeConstraints.py:89
edm::EDLooperBase::doBeginRun
void doBeginRun(RunPrincipal &, EventSetupImpl const &, ProcessContext *)
Definition: EDLooperBase.cc:109
edm::EDLooperBase::prepareForNextLoop
void prepareForNextLoop(eventsetup::EventSetupProvider *esp)
Definition: EDLooperBase.cc:88
edm::EDConsumerBase::itemsToGetFrom
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom(BranchType iType) const
Definition: EDConsumerBase.h:91
edm::EDLooperBase::doStartingNewLoop
void doStartingNewLoop()
Definition: EDLooperBase.cc:47
edm::EDLooperBase::~EDLooperBase
~EDLooperBase() noexcept(false) override
Definition: EDLooperBase.cc:45
edm::ESRecordIndex
Definition: ESIndices.h:80
edm::EventPrincipal::id
EventID const & id() const
Definition: EventPrincipal.h:96
edm::eventsetup::EventSetupRecordImpl::prefetchAsync
void prefetchAsync(WaitingTaskHolder iTask, ESProxyIndex iProxyIndex, EventSetupImpl const *, ServiceToken const &, ESParentContext) const
prefetch the data to setup for subsequent calls to getImplementation
Definition: EventSetupRecordImpl.cc:265
edm::GlobalContext::Transition::kEndRun
edm::EDLooperBase::setModuleChanger
void setModuleChanger(ModuleChanger *)
Definition: EDLooperBase.cc:295
edm::ProcessingController
Definition: ProcessingController.h:29
edm::eventsetup::EventSetupProvider::resetRecordPlusDependentRecords
void resetRecordPlusDependentRecords(EventSetupRecordKey const &)
Used when we need to force a Record to reset all its proxies.
Definition: EventSetupProvider.cc:369
mps_monitormerge.items
list items
Definition: mps_monitormerge.py:29
edm::for_all
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:14
edm::EDLooperBase::act_table_
ExceptionToActionTable const * act_table_
Definition: EDLooperBase.h:165
ModuleDescription.h
edm::EDLooperBase::iCounter_
unsigned int iCounter_
Definition: EDLooperBase.h:164
edm::ServiceToken
Definition: ServiceToken.h:42
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
edm::WaitingTaskWithArenaHolder
Definition: WaitingTaskWithArenaHolder.h:34
edm::RunPrincipal::beginTime
Timestamp const & beginTime() const
Definition: RunPrincipal.h:67
edm::EventPrincipal::time
Timestamp const & time() const
Definition: EventPrincipal.h:98
edm::EventPrincipal
Definition: EventPrincipal.h:48
edm::StreamContext
Definition: StreamContext.h:31
edm::EDLooperBase::moduleChanger_
edm::propagate_const< ModuleChanger * > moduleChanger_
Definition: EDLooperBase.h:168
edm::EDConsumerBase::esGetTokenRecordIndicesVector
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector(edm::Transition iTrans) const
Definition: EDConsumerBase.h:140
edm::eventsetup::EventSetupProvider
Definition: EventSetupProvider.h:50
EventPrincipal.h
edm::EDLooperBase::endRun
virtual void endRun(Run const &, EventSetup const &)
Called after all event modules have processed the end of a Run.
Definition: EDLooperBase.cc:186
edm::EDLooperBase::scheduleInfo
ScheduleInfo const * scheduleInfo() const
This returns a non-zero value after the constructor has been called.
Definition: EDLooperBase.cc:298
TrackValidation_cff.task
task
Definition: TrackValidation_cff.py:253
edm::ActivityRegistry
Definition: ActivityRegistry.h:134
edm::EDLooperBase::beginRun
virtual void beginRun(Run const &, EventSetup const &)
Called after all event modules have processed the begin of a Run.
Definition: EDLooperBase.cc:185
Run.h
edm::Principal::branchType
BranchType const & branchType() const
Definition: Principal.h:181
edm::EventSetupImpl::taskArena
tbb::task_arena * taskArena() const
Definition: EventSetupImpl.h:74
edm::EDLooperBase::startingNewLoop
virtual void startingNewLoop(unsigned int)=0
edm::GlobalContext::Transition::kEndLuminosityBlock
edm::EDLooperBase::prefetchAsync
void prefetchAsync(WaitingTaskHolder iTask, ServiceToken const &token, Transition iTrans, Principal const &iPrincipal, EventSetupImpl const &iImpl) const
Definition: EDLooperBase.cc:192
edm::Transition::BeginLuminosityBlock
edm::LuminosityBlockID
Definition: LuminosityBlockID.h:31
edm::EDLooperBase::edPrefetchAsync
void edPrefetchAsync(WaitingTaskHolder iTask, ServiceToken const &token, Principal const &iPrincipal) const
Definition: EDLooperBase.cc:201
edm::ParentContext
Definition: ParentContext.h:27
edm::RunPrincipal::index
RunIndex index() const
Definition: RunPrincipal.h:57
edm::EDLooperBase::endLuminosityBlock
virtual void endLuminosityBlock(LuminosityBlock const &, EventSetup const &)
Called after all event modules have processed the end of a LuminosityBlock.
Definition: EDLooperBase.cc:188
include_first_syncWait.h
edm::GlobalContext
Definition: GlobalContext.h:29
edm::Transition
Transition
Definition: Transition.h:12
edm::EDLooperBase::moduleDescription_
ModuleDescription moduleDescription_
Definition: EDLooperBase.h:170
GlobalContext.h
edm::make_waiting_task
FunctorWaitingTask< F > * make_waiting_task(F f)
Definition: WaitingTask.h:101
ESParentContext.h
Event.h
edm::LuminosityBlockIndex::invalidLuminosityBlockIndex
static LuminosityBlockIndex invalidLuminosityBlockIndex()
Definition: LuminosityBlockIndex.cc:9
WaitingTaskWithArenaHolder.h
edm::WaitingTaskHolder
Definition: WaitingTaskHolder.h:32
edm::LuminosityBlock::setConsumer
void setConsumer(EDConsumerBase const *iConsumer)
Definition: LuminosityBlock.cc:34
edm::EDLooperBase::moduleChanger
ModuleChanger * moduleChanger()
This only returns a non-zero value during the call to endOfLoop.
Definition: EDLooperBase.cc:297
edm::EDLooperBase::doEndLuminosityBlock
void doEndLuminosityBlock(LuminosityBlockPrincipal &, EventSetupImpl const &, ProcessContext *)
Definition: EDLooperBase.cc:163
EDLooperBase.h
edm::EDLooperBase::endOfLoop
virtual Status endOfLoop(EventSetup const &, unsigned int iCounter)=0
edm::EDLooperBase::moduleCallingContext_
ModuleCallingContext moduleCallingContext_
Definition: EDLooperBase.h:171
ExceptionMessages.h
RunPrincipal.h
edmPickEvents.event
event
Definition: edmPickEvents.py:273
edm::RunPrincipal::run
RunNumber_t run() const
Definition: RunPrincipal.h:61
edm::EDLooperBase::doDuringLoop
Status doDuringLoop(EventPrincipal &eventPrincipal, EventSetupImpl const &es, ProcessingController &, StreamContext *)
Definition: EDLooperBase.cc:49
edm::GlobalContext::Transition::kBeginLuminosityBlock
writedatasetfile.action
action
Definition: writedatasetfile.py:8
edm::StreamContext::setEventID
void setEventID(EventID const &v)
Definition: StreamContext.h:66
ExceptionActions.h
edm::StreamContext::Transition::kEvent
edm::ServiceWeakToken::lock
ServiceToken lock() const
Definition: ServiceToken.h:101
B2GTnPMonitor_cfi.item
item
Definition: B2GTnPMonitor_cfi.py:147
edm::EventSetup
Definition: EventSetup.h:58
edm::ESParentContext
Definition: ESParentContext.h:21
edm::EDLooperBase::kContinue
Definition: EDLooperBase.h:82
edm::ScheduleInfo
Definition: ScheduleInfo.h:32
edm::EDLooperBase::endOfJob
virtual void endOfJob()
Definition: EDLooperBase.cc:107
LuminosityBlockPrincipal.h
WaitingTask.h
edm::ProductResolverIndexAmbiguous
Definition: ProductResolverIndex.h:18
edm::EDLooperBase::doEndOfLoop
Status doEndOfLoop(EventSetupImpl const &es)
Definition: EDLooperBase.cc:81
ParentContext.h
edm::Transition::EndLuminosityBlock
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::EDLooperBase::doEndRun
void doEndRun(RunPrincipal &, EventSetupImpl const &, ProcessContext *)
Definition: EDLooperBase.cc:126
writedatasetfile.run
run
Definition: writedatasetfile.py:27
edm::StreamContext::setRunIndex
void setRunIndex(RunIndex const &v)
Definition: StreamContext.h:67
edm::LuminosityBlockPrincipal::id
LuminosityBlockID id() const
Definition: LuminosityBlockPrincipal.h:53
edm::EDConsumerBase::esGetTokenIndices
ESProxyIndex const * esGetTokenIndices(edm::Transition iTrans) const
Definition: EDConsumerBase.h:124
edm::Transition::BeginRun
edm::EDLooperBase::duringLoop
virtual Status duringLoop(Event const &, EventSetup const &, ProcessingController &)=0
edm::EDLooperBase::attachTo
virtual void attachTo(ActivityRegistry &)
Override this method if you need to monitor the state of the processing.
Definition: EDLooperBase.cc:190
EventSetup.h
Exception.h
edm::ExceptionToActionTable::find
exception_actions::ActionCodes find(const std::string &category) const
Definition: ExceptionActions.cc:85
edm::EDLooperBase::modifyingRecords
virtual std::set< eventsetup::EventSetupRecordKey > modifyingRecords() const
Definition: EDLooperBase.cc:290
edm::syncWait
std::exception_ptr syncWait(F &&iFunc)
Definition: include_first_syncWait.h:17
cms::Exception
Definition: Exception.h:70
edm::LuminosityBlockPrincipal::index
LuminosityBlockIndex index() const
Definition: LuminosityBlockPrincipal.h:51
edm::LuminosityBlockPrincipal::beginTime
Timestamp const & beginTime() const
Definition: LuminosityBlockPrincipal.h:55
edm::Principal::prefetchAsync
void prefetchAsync(WaitingTaskHolder waitTask, ProductResolverIndex index, bool skipCurrentProcess, ServiceToken const &token, ModuleCallingContext const *mcc) const
Definition: Principal.cc:639
StreamContext.h
edm::RunPrincipal
Definition: RunPrincipal.h:34
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
edm::Transition::EndRun
edm::EDLooperBase::scheduleInfo_
edm::propagate_const< std::unique_ptr< ScheduleInfo > > scheduleInfo_
Definition: EDLooperBase.h:167
ModuleContextSentry.h
edm::GlobalContext::Transition::kBeginRun
edm::WaitingTaskHolder::group
tbb::task_group * group() const noexcept
Definition: WaitingTaskHolder.h:77
edm::EDLooperBase::doBeginLuminosityBlock
void doBeginLuminosityBlock(LuminosityBlockPrincipal &, EventSetupImpl const &, ProcessContext *)
Definition: EDLooperBase.cc:142
edm::ModuleChanger
Definition: ModuleChanger.h:36
edm::exception_actions::ActionCodes
ActionCodes
Definition: ExceptionActions.h:11
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
edm::EDLooperBase::beginOfJob
virtual void beginOfJob()
Definition: EDLooperBase.cc:105
watchdog.group
group
Definition: watchdog.py:82
edm::Transition::NumberOfEventSetupTransitions
edm::EDLooperBase::esPrefetchAsync
void esPrefetchAsync(WaitingTaskHolder iTask, EventSetupImpl const &iImpl, Transition iTrans, ServiceToken const &iToken) const
Definition: EDLooperBase.cc:218
edm::EDLooperBase::beginLuminosityBlock
virtual void beginLuminosityBlock(LuminosityBlock const &, EventSetup const &)
Called after all event modules have processed the begin of a LuminosityBlock.
Definition: EDLooperBase.cc:187
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316