CMS 3D CMS Logo

InputSource.cc
Go to the documentation of this file.
1 /*----------------------------------------------------------------------
2 ----------------------------------------------------------------------*/
4 
24 
25 #include <cassert>
26 #include <fstream>
27 #include <iomanip>
28 
29 namespace edm {
30 
31  namespace {
32  std::string const& suffix(int count) {
33  static std::string const st("st");
34  static std::string const nd("nd");
35  static std::string const rd("rd");
36  static std::string const th("th");
37  // *0, *4 - *9 use "th".
38  int lastDigit = count % 10;
39  if(lastDigit >= 4 || lastDigit == 0) return th;
40  // *11, *12, or *13 use "th".
41  if(count % 100 - lastDigit == 10) return th;
42  return (lastDigit == 1 ? st : (lastDigit == 2 ? nd : rd));
43  }
44  }
45 
48  actReg_(desc.actReg_),
49  maxEvents_(desc.maxEvents_),
50  remainingEvents_(maxEvents_),
51  maxLumis_(desc.maxLumis_),
52  remainingLumis_(maxLumis_),
53  readCount_(0),
54  maxSecondsUntilRampdown_(desc.maxSecondsUntilRampdown_),
55  processingMode_(RunsLumisAndEvents),
56  moduleDescription_(desc.moduleDescription_),
57  productRegistry_(desc.productRegistry_),
58  processHistoryRegistry_(new ProcessHistoryRegistry),
59  branchIDListHelper_(desc.branchIDListHelper_),
60  thinnedAssociationsHelper_(desc.thinnedAssociationsHelper_),
61  processGUID_(createGlobalIdentifier()),
62  time_(),
63  newRun_(true),
64  newLumi_(true),
65  eventCached_(false),
66  state_(IsInvalid),
67  runAuxiliary_(),
68  lumiAuxiliary_(),
69  statusFileName_(),
70  numberOfEventsBeforeBigSkip_(0) {
71 
72  if(pset.getUntrackedParameter<bool>("writeStatusFile", false)) {
73  std::ostringstream statusfilename;
74  statusfilename << "source_" << getpid();
75  statusFileName_ = statusfilename.str();
76  }
77  if (maxSecondsUntilRampdown_ > 0) {
79  }
80 
81  std::string const defaultMode("RunsLumisAndEvents");
82  std::string const runMode("Runs");
83  std::string const runLumiMode("RunsAndLumis");
84 
85  // The default value provided as the second argument to the getUntrackedParameter function call
86  // is not used when the ParameterSet has been validated and the parameters are not optional
87  // in the description. As soon as all primary input sources and all modules with a secondary
88  // input sources have defined descriptions, the defaults in the getUntrackedParameterSet function
89  // calls can and should be deleted from the code.
90  std::string processingMode = pset.getUntrackedParameter<std::string>("processingMode", defaultMode);
91  if(processingMode == runMode) {
93  } else if(processingMode == runLumiMode) {
95  } else if(processingMode != defaultMode) {
97  << "InputSource::InputSource()\n"
98  << "The 'processingMode' parameter for sources has an illegal value '" << processingMode << "'\n"
99  << "Legal values are '" << defaultMode << "', '" << runLumiMode << "', or '" << runMode << "'.\n";
100  }
101  }
102 
104 
105  void
108  desc.setUnknown();
109  descriptions.addDefault(desc);
110  }
111 
112  void
114  }
115 
116 
117  static std::string const kBaseType("Source");
118 
119  std::string const&
121  return kBaseType;
122  }
123 
124  void
126  std::string defaultString("RunsLumisAndEvents");
127  desc.addUntracked<std::string>("processingMode", defaultString)->setComment(
128  "'RunsLumisAndEvents': process runs, lumis, and events.\n"
129  "'RunsAndLumis': process runs and lumis (not events).\n"
130  "'Runs': process runs (not lumis or events).");
131  desc.addUntracked<bool>("writeStatusFile", false)->setComment("Write a status file. Intended for use by workflow management.");
132  }
133 
134  // This next function is to guarantee that "runs only" mode does not return events or lumis,
135  // and that "runs and lumis only" mode does not return events.
136  // For input sources that are not random access (e.g. you need to read through the events
137  // to get to the lumis and runs), this is all that is involved to implement these modes.
138  // For input sources where events or lumis can be skipped, getNextItemType() should
139  // implement the skipping internally, so that the performance gain is realized.
140  // If this is done for a source, the 'if' blocks in this function will never be entered
141  // for that source.
144  ItemType itemType = callWithTryCatchAndPrint<ItemType>( [this](){ return getNextItemType(); }, "Calling InputSource::getNextItemType" );
145 
146  if(itemType == IsEvent && processingMode() != RunsLumisAndEvents) {
147  skipEvents(1);
148  return nextItemType_();
149  }
150  if(itemType == IsLumi && processingMode() == Runs) {
151  // QQQ skipLuminosityBlock_();
152  return nextItemType_();
153  }
154  return itemType;
155  }
156 
159  ItemType oldState = state_;
160  if(eventLimitReached()) {
161  // If the maximum event limit has been reached, stop.
162  state_ = IsStop;
163  } else if(lumiLimitReached()) {
164  // If the maximum lumi limit has been reached, stop
165  // when reaching a new file, run, or lumi.
166  if(oldState == IsInvalid || oldState == IsFile || oldState == IsRun || processingMode() != RunsLumisAndEvents) {
167  state_ = IsStop;
168  } else {
169  ItemType newState = nextItemType_();
170  if(newState == IsEvent) {
171  assert (processingMode() == RunsLumisAndEvents);
172  state_ = IsEvent;
173  } else {
174  state_ = IsStop;
175  }
176  }
177  } else {
178  ItemType newState = nextItemType_();
179  if(newState == IsStop) {
180  state_ = IsStop;
181  } else if(newState == IsSynchronize) {
183  } else if(newState == IsFile || oldState == IsInvalid) {
184  state_ = IsFile;
185  } else if(newState == IsRun || oldState == IsFile) {
187  state_ = IsRun;
188  } else if(newState == IsLumi || oldState == IsRun) {
189  assert (processingMode() != Runs);
191  state_ = IsLumi;
192  } else {
193  assert (processingMode() == RunsLumisAndEvents);
194  state_ = IsEvent;
195  }
196  }
197  if(state_ == IsStop) {
198  lumiAuxiliary_.reset();
199  runAuxiliary_.reset();
200  }
201  return state_;
202  }
203 
204  std::shared_ptr<LuminosityBlockAuxiliary>
206  return callWithTryCatchAndPrint<std::shared_ptr<LuminosityBlockAuxiliary> >( [this](){ return readLuminosityBlockAuxiliary_(); },
207  "Calling InputSource::readLuminosityBlockAuxiliary_" );
208  }
209 
210  std::shared_ptr<RunAuxiliary>
212  return callWithTryCatchAndPrint<std::shared_ptr<RunAuxiliary> >( [this](){ return readRunAuxiliary_(); },
213  "Calling InputSource::readRunAuxiliary_" );
214  }
215 
216  void
218  this->beginJob();
219  }
220 
221  void
223  endJob();
224  }
225 
226  std::pair<SharedResourcesAcquirer*,std::recursive_mutex*>
229  }
230 
231  std::pair<SharedResourcesAcquirer*,std::recursive_mutex*>
233  return std::pair<SharedResourcesAcquirer*,std::recursive_mutex*>(nullptr,nullptr);
234  }
235 
236  void
238  if(!typeLabelList().empty()) {
240  }
241  }
242 
243  // Return a dummy file block.
244  std::unique_ptr<FileBlock>
246  assert(state_ == IsFile);
247  assert(!limitReached());
248  return callWithTryCatchAndPrint<std::unique_ptr<FileBlock> >( [this](){ return readFile_(); },
249  "Calling InputSource::readFile_" );
250  }
251 
252  void
253  InputSource::closeFile(FileBlock* fb, bool cleaningUpAfterException) {
254  if(fb != nullptr) fb->close();
255  callWithTryCatchAndPrint<void>( [this](){ closeFile_(); },
256  "Calling InputSource::closeFile_",
257  cleaningUpAfterException );
258  return;
259  }
260 
261  // Return a dummy file block.
262  // This function must be overridden for any input source that reads a file
263  // containing Products.
264  std::unique_ptr<FileBlock>
266  return std::make_unique<FileBlock>();
267  }
268 
269  void
271  RunSourceSentry sentry(*this);
272  callWithTryCatchAndPrint<void>( [this,&runPrincipal](){ readRun_(runPrincipal); }, "Calling InputSource::readRun_" );
273  }
274 
275  void
277  RunSourceSentry sentry(*this);
278  callWithTryCatchAndPrint<void>( [this,&rp](){ readRun_(rp); }, "Calling InputSource::readRun_" );
279  }
280 
281  void
283  LumiSourceSentry sentry(*this);
284  callWithTryCatchAndPrint<void>( [this,&lumiPrincipal](){ readLuminosityBlock_(lumiPrincipal); }, "Calling InputSource::readLuminosityBlock_" );
285  if(remainingLumis_ > 0) {
286  --remainingLumis_;
287  }
288  }
289 
290  void
292  LumiSourceSentry sentry(*this);
293  callWithTryCatchAndPrint<void>( [this,&lbp](){ readLuminosityBlock_(lbp); }, "Calling InputSource::readLuminosityBlock_" );
294  if(remainingLumis_ > 0) {
295  --remainingLumis_;
296  }
297  }
298 
299  void
301  // Note: For the moment, we do not support saving and restoring the state of the
302  // random number generator if random numbers are generated during processing of runs
303  // (e.g. beginRun(), endRun())
305  }
306 
307  void
310  }
311 
312  void
314  assert(state_ == IsEvent);
315  assert(!eventLimitReached());
316  {
317  // block scope, in order to issue the PostSourceEvent signal before calling postRead and issueReports
318  EventSourceSentry sentry(*this, streamContext);
319 
320  callWithTryCatchAndPrint<void>( [this,&ep](){ readEvent_(ep); }, "Calling InputSource::readEvent_" );
321  }
322 
324  ++readCount_;
325  setTimestamp(ep.time());
326  issueReports(ep.id());
327  }
328 
329  bool
330  InputSource::readEvent(EventPrincipal& ep, EventID const& eventID, StreamContext& streamContext) {
331  bool result = false;
332 
333  if (not limitReached()) {
334  // the Pre/PostSourceEvent signals should be generated only if the event is actually found.
335  // this should be taken care of by an EventSourceSentry in the implementaion of readIt()
336 
337  //result = callWithTryCatchAndPrint<bool>( [this,&eventID,&ep](){ return readIt(eventID, ep); }, "Calling InputSource::readIt" );
338  result = readIt(eventID, ep, streamContext);
339 
340  if (result) {
342  ++readCount_;
343  issueReports(ep.id());
344  }
345  }
346  return result;
347  }
348 
349  void
351  callWithTryCatchAndPrint<void>( [this,&offset](){ skip(offset); }, "Calling InputSource::skip" );
352  }
353 
354  bool
355  InputSource::goToEvent(EventID const& eventID) {
356  return callWithTryCatchAndPrint<bool>( [this,&eventID](){ return goToEvent_(eventID); }, "Calling InputSource::goToEvent_" );
357  }
358 
359  void
361  state_ = IsInvalid;
363  setNewRun();
364  setNewLumi();
366  callWithTryCatchAndPrint<void>( [this](){ rewind_(); }, "Calling InputSource::rewind_" );
367  }
368 
369  void
371  if(isInfoEnabled()) {
372  LogVerbatim("FwkReport") << "Begin processing the " << readCount_
373  << suffix(readCount_) << " record. Run " << eventID.run()
374  << ", Event " << eventID.event()
375  << ", LumiSection " << eventID.luminosityBlock()
376  << " at " << std::setprecision(3) << TimeOfDay();
377  }
378  if(!statusFileName_.empty()) {
379  std::ofstream statusFile(statusFileName_.c_str());
380  statusFile << eventID << " time: " << std::setprecision(3) << TimeOfDay() << '\n';
381  statusFile.close();
382  }
383 
384  // At some point we may want to initiate checkpointing here
385  }
386 
387  bool
390  << "InputSource::readIt()\n"
391  << "Random access is not implemented for this type of Input Source\n"
392  << "Contact a Framework Developer\n";
393  }
394 
395  void
398  << "InputSource::setRun()\n"
399  << "Run number cannot be modified for this type of Input Source\n"
400  << "Contact a Framework Developer\n";
401  }
402 
403  void
406  << "InputSource::setLumi()\n"
407  << "Luminosity Block ID cannot be modified for this type of Input Source\n"
408  << "Contact a Framework Developer\n";
409  }
410 
411  void
414  << "InputSource::skip()\n"
415  << "Random access are not implemented for this type of Input Source\n"
416  << "Contact a Framework Developer\n";
417  }
418 
419  bool
422  << "InputSource::goToEvent_()\n"
423  << "Random access is not implemented for this type of Input Source\n"
424  << "Contact a Framework Developer\n";
425  return true;
426  }
427 
428  void
431  << "InputSource::rewind()\n"
432  << "Random access are not implemented for this type of Input Source\n"
433  << "Contact a Framework Developer\n";
434  }
435 
436  void
438  if(-1 == remainingEvents_) {
439  return;
440  }
441  if(iSkipped < remainingEvents_) {
442  remainingEvents_ -= iSkipped;
443  } else {
444  remainingEvents_ = 0;
445  }
446  }
447 
448  void
450  Run run(rp, moduleDescription(), nullptr);
451  callWithTryCatchAndPrint<void>( [this,&run](){ beginRun(run); }, "Calling InputSource::beginRun" );
452  run.commit_(std::vector<edm::ProductResolverIndex>());
453  }
454 
455  void
456  InputSource::doEndRun(RunPrincipal& rp, bool cleaningUpAfterException, ProcessContext const* ) {
457  Run run(rp, moduleDescription(), nullptr);
458  callWithTryCatchAndPrint<void>( [this,&run](){ endRun(run); }, "Calling InputSource::endRun", cleaningUpAfterException );
459  run.commit_(std::vector<edm::ProductResolverIndex>());
460  }
461 
462  void
464  LuminosityBlock lb(lbp, moduleDescription(), nullptr);
465  callWithTryCatchAndPrint<void>( [this,&lb](){ beginLuminosityBlock(lb); }, "Calling InputSource::beginLuminosityBlock" );
466  lb.commit_(std::vector<edm::ProductResolverIndex>());
467  }
468 
469  void
470  InputSource::doEndLumi(LuminosityBlockPrincipal& lbp, bool cleaningUpAfterException, ProcessContext const* ) {
471  LuminosityBlock lb(lbp, moduleDescription(), nullptr);
472  callWithTryCatchAndPrint<void>( [this,&lb](){ endLuminosityBlock(lb); }, "Calling InputSource::endLuminosityBlock", cleaningUpAfterException );
473  lb.commit_(std::vector<edm::ProductResolverIndex>());
474  }
475 
476  bool
478  return callWithTryCatchAndPrint<bool>( [this](){ return randomAccess_(); },
479  "Calling InputSource::randomAccess_" );
480  }
481 
484  return callWithTryCatchAndPrint<ProcessingController::ForwardState>( [this](){ return forwardState_(); },
485  "Calling InputSource::forwardState_" );
486  }
487 
490  return callWithTryCatchAndPrint<ProcessingController::ReverseState>( [this](){ return reverseState_(); },
491  "Calling InputSource::reverseState__" );
492  }
493 
494  void
496 
497  void
499 
500  void
502 
503  void
505 
506  void
508 
509  void
511 
512  bool
514  return false;
515  }
516 
520  }
521 
525  }
526 
527  ProcessHistoryID const&
529  assert(runAuxiliary());
530  return processHistoryRegistry_->reducedProcessHistoryID(runAuxiliary()->processHistoryID());
531  }
532 
535  assert(runAuxiliary());
536  return runAuxiliary()->run();
537  }
538 
541  assert(luminosityBlockAuxiliary());
542  return luminosityBlockAuxiliary()->luminosityBlock();
543  }
544 
545  InputSource::SourceSentry::SourceSentry(Sig& pre, Sig& post) : post_(post) {
546  pre();
547  }
548 
550  post_();
551  }
552 
554  source_(source),
555  sc_(sc)
556  {
557  source.actReg()->preSourceSignal_(sc_.streamID());
558  }
559 
561  source_.actReg()->postSourceSignal_(sc_.streamID());
562  }
563 
565  sentry_(source.actReg()->preSourceLumiSignal_, source.actReg()->postSourceLumiSignal_) {
566  }
567 
569  sentry_(source.actReg()->preSourceRunSignal_, source.actReg()->postSourceRunSignal_) {
570  }
571 
573  std::string const& lfn,
574  bool usedFallback) :
575  post_(source.actReg()->postOpenFileSignal_),
576  lfn_(lfn),
577  usedFallback_(usedFallback) {
578  source.actReg()->preOpenFileSignal_(lfn, usedFallback);
579  }
580 
583  }
584 
586  std::string const& lfn,
587  bool usedFallback) :
588  post_(source.actReg()->postCloseFileSignal_),
589  lfn_(lfn),
590  usedFallback_(usedFallback) {
591  source.actReg()->preCloseFileSignal_(lfn, usedFallback);
592  }
593 
596  }
597 }
RunNumber_t run() const
Definition: EventID.h:39
EventNumber_t event() const
Definition: EventID.h:41
ProcessHistoryRegistry const & processHistoryRegistry() const
Accessors for process history registry.
Definition: InputSource.h:168
T getUntrackedParameter(std::string const &, T const &) const
virtual void setRun(RunNumber_t r)
Definition: InputSource.cc:396
virtual void endRun(Run &)
Definition: InputSource.cc:504
void issueReports(EventID const &eventID)
issue an event report
Definition: InputSource.cc:370
std::shared_ptr< RunAuxiliary > runAuxiliary_
Definition: InputSource.h:442
void doBeginJob()
Called by framework at beginning of job.
Definition: InputSource.cc:217
virtual std::shared_ptr< LuminosityBlockAuxiliary > readLuminosityBlockAuxiliary_()=0
std::shared_ptr< LuminosityBlockAuxiliary > lumiAuxiliary_
Definition: InputSource.h:443
ProductRegistry & productRegistryUpdate()
Definition: InputSource.h:344
void decreaseRemainingEventsBy(int iSkipped)
Definition: InputSource.cc:437
virtual void closeFile_()
Definition: InputSource.h:403
static std::string const source("source")
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void doBeginRun(RunPrincipal &rp, ProcessContext const *)
Called by framework at beginning of run.
Definition: InputSource.cc:449
void doEndJob()
Called by framework at end of job.
Definition: InputSource.cc:222
RunSourceSentry(InputSource const &source)
Definition: InputSource.cc:568
std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > resourceSharedWithDelayedReader()
Returns nullptr if no resource shared between the Source and a DelayedReader.
Definition: InputSource.cc:227
void readAndMergeRun(RunPrincipal &rp)
Read next run (same as a prior run)
Definition: InputSource.cc:276
std::string statusFileName_
Definition: InputSource.h:444
void registerProducts()
Register any produced products.
Definition: InputSource.cc:237
virtual void setLumi(LuminosityBlockNumber_t lb)
Definition: InputSource.cc:404
EventID const & id() const
virtual void rewind_()
Definition: InputSource.cc:429
#define noexcept
std::shared_ptr< RunAuxiliary > readRunAuxiliary()
Read next run Auxiliary.
Definition: InputSource.cc:211
ProcessingMode processingMode() const
RunsLumisAndEvents (default), RunsAndLumis, or Runs.
Definition: InputSource.h:246
void setTimestamp(Timestamp const &theTime)
To set the current time, as seen by the input source.
Definition: InputSource.h:342
RunNumber_t run() const
Accessor for current run number.
Definition: InputSource.cc:534
void fillRunPrincipal(ProcessHistoryRegistry const &processHistoryRegistry, DelayedReader *reader=0)
Definition: RunPrincipal.cc:20
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:40
unsigned int LuminosityBlockNumber_t
virtual void beginLuminosityBlock(LuminosityBlock &)
Definition: InputSource.cc:495
virtual void readEvent_(EventPrincipal &eventPrincipal)=0
void closeFile(FileBlock *, bool cleaningUpAfterException)
close current file
Definition: InputSource.cc:253
ProcessHistoryID const & reducedProcessHistoryID() const
Definition: InputSource.cc:528
bool limitReached() const
Definition: InputSource.h:393
Timestamp const & time() const
virtual bool goToEvent_(EventID const &eventID)
Definition: InputSource.cc:420
void close()
Definition: FileBlock.h:114
std::chrono::time_point< std::chrono::steady_clock > processingStart_
Definition: InputSource.h:429
FileCloseSentry(InputSource const &source, std::string const &lfn, bool usedFallback)
Definition: InputSource.cc:585
ProcessingController::ForwardState forwardState() const
Definition: InputSource.cc:483
TypeLabelList & typeLabelList()
used by the fwk to register the list of products of this module
EventSourceSentry(InputSource const &source, StreamContext &sc)
Definition: InputSource.cc:553
virtual ProcessingController::ForwardState forwardState_() const
Definition: InputSource.cc:518
virtual std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > resourceSharedWithDelayedReader_()
Definition: InputSource.cc:232
void fillLuminosityBlockPrincipal(ProcessHistoryRegistry const &processHistoryRegistry, DelayedReader *reader=0)
ProcessingController::ReverseState reverseState() const
Definition: InputSource.cc:489
void addDefault(ParameterSetDescription const &psetDescription)
bool lumiLimitReached() const
Definition: InputSource.h:385
void readRun(RunPrincipal &runPrincipal, HistoryAppender &historyAppender)
Read next run (new run)
Definition: InputSource.cc:270
virtual void beginJob()
Definition: InputSource.cc:507
ProcessingMode processingMode_
Definition: InputSource.h:430
int maxSecondsUntilRampdown_
Definition: InputSource.h:428
void commit_(std::vector< edm::ProductResolverIndex > const &iShouldPut)
Definition: Run.cc:79
std::shared_ptr< LuminosityBlockAuxiliary > readLuminosityBlockAuxiliary()
Read next luminosity block Auxilary.
Definition: InputSource.cc:205
void doBeginLumi(LuminosityBlockPrincipal &lbp, ProcessContext const *)
Called by framework at beginning of lumi block.
Definition: InputSource.cc:463
virtual ItemType getNextItemType()=0
static const std::string & baseType()
Definition: InputSource.cc:120
void doEndLumi(LuminosityBlockPrincipal &lbp, bool cleaningUpAfterException, ProcessContext const *)
Called by framework at end of lumi block.
Definition: InputSource.cc:470
virtual bool readIt(EventID const &id, EventPrincipal &eventPrincipal, StreamContext &streamContext)
Definition: InputSource.cc:388
bool goToEvent(EventID const &eventID)
Definition: InputSource.cc:355
SourceSentry(Sig &pre, Sig &post)
Definition: InputSource.cc:545
#define end
Definition: vmac.h:37
runMode
define run mode.
void resetEventCached()
Definition: InputSource.h:377
StreamID const & streamID() const
Definition: StreamContext.h:57
virtual ~InputSource() noexcept(false)
Destructor.
Definition: InputSource.cc:103
LuminosityBlockNumber_t luminosityBlock() const
Accessor for current luminosity block number.
Definition: InputSource.cc:540
bool eventLimitReached() const
Definition: InputSource.h:384
void readAndMergeLumi(LuminosityBlockPrincipal &lbp)
Read next luminosity block (same as a prior lumi)
Definition: InputSource.cc:291
void skipEvents(int offset)
Definition: InputSource.cc:350
virtual void beginRun(Run &)
Definition: InputSource.cc:501
virtual void readRun_(RunPrincipal &runPrincipal)
Definition: InputSource.cc:300
virtual std::unique_ptr< FileBlock > readFile_()
Definition: InputSource.cc:265
static void fillDescriptions(ConfigurationDescriptions &descriptions)
Definition: InputSource.cc:106
std::shared_ptr< RunAuxiliary > runAuxiliary() const
Called by the framework to merge or insert run in principal cache.
Definition: InputSource.h:252
void readEvent(EventPrincipal &ep, StreamContext &)
Read next event.
Definition: InputSource.cc:313
std::unique_ptr< FileBlock > readFile()
Read next file.
Definition: InputSource.cc:245
virtual bool randomAccess_() const
Definition: InputSource.cc:513
static const std::string kBaseType("EDAnalyzer")
bool isInfoEnabled()
virtual std::shared_ptr< RunAuxiliary > readRunAuxiliary_()=0
ItemType nextItemType_()
Definition: InputSource.cc:143
#define begin
Definition: vmac.h:30
HLT enums.
std::shared_ptr< ActivityRegistry > actReg() const
Accessor for Activity Registry.
Definition: InputSource.h:249
edm::propagate_const< std::unique_ptr< ProcessHistoryRegistry > > processHistoryRegistry_
Definition: InputSource.h:433
virtual ProcessingController::ReverseState reverseState_() const
Definition: InputSource.cc:523
bool randomAccess() const
Definition: InputSource.cc:477
static void fillDescription(ParameterSetDescription &desc)
Definition: InputSource.cc:125
void rewind()
Begin again at the first event.
Definition: InputSource.cc:360
ModuleDescription const & moduleDescription() const
Accessor for &#39;module&#39; description.
Definition: InputSource.h:205
unsigned int RunNumber_t
virtual void readLuminosityBlock_(LuminosityBlockPrincipal &lumiPrincipal)
Definition: InputSource.cc:308
void readLuminosityBlock(LuminosityBlockPrincipal &lumiPrincipal, HistoryAppender &historyAppender)
Read next luminosity block (new lumi)
Definition: InputSource.cc:282
FileOpenSentry(InputSource const &source, std::string const &lfn, bool usedFallback)
Definition: InputSource.cc:572
static void addToRegistry(TypeLabelList::const_iterator const &iBegin, TypeLabelList::const_iterator const &iEnd, ModuleDescription const &iDesc, ProductRegistry &iReg, bool iIsListener=false)
void doEndRun(RunPrincipal &rp, bool cleaningUpAfterException, ProcessContext const *)
Called by framework at end of run.
Definition: InputSource.cc:456
LumiSourceSentry(InputSource const &source)
Definition: InputSource.cc:564
std::shared_ptr< LuminosityBlockAuxiliary > luminosityBlockAuxiliary() const
Called by the framework to merge or insert lumi in principal cache.
Definition: InputSource.h:255
ItemType nextItemType()
Advances the source to the next item.
Definition: InputSource.cc:158
InputSource(ParameterSet const &, InputSourceDescription const &)
Constructor.
Definition: InputSource.cc:46
virtual void endJob()
Definition: InputSource.cc:510
static void prevalidate(ConfigurationDescriptions &)
Definition: InputSource.cc:113
void commit_(std::vector< edm::ProductResolverIndex > const &iShouldPut)
virtual void skip(int offset)
Definition: InputSource.cc:412
std::string createGlobalIdentifier()
Definition: Run.h:42
virtual void endLuminosityBlock(LuminosityBlock &)
Definition: InputSource.cc:498