CMS 3D CMS Logo

RootPrimaryFileSequence.cc
Go to the documentation of this file.
1 /*----------------------------------------------------------------------
2 ----------------------------------------------------------------------*/
3 #include "DuplicateChecker.h"
4 #include "InputFile.h"
5 #include "PoolSource.h"
6 #include "RootFile.h"
8 #include "RootTree.h"
9 
20 
21 namespace edm {
26  input_(input),
27  firstFile_(true),
28  branchesMustMatch_(BranchDescription::Permissive),
29  orderedProcessHistoryIDs_(),
30  eventSkipperByID_(EventSkipperByID::create(pset).release()),
31  initialNumberOfEventsToSkip_(pset.getUntrackedParameter<unsigned int>("skipEvents")),
32  noEventSort_(pset.getUntrackedParameter<bool>("noEventSort")),
33  treeCacheSize_(noEventSort_ ? pset.getUntrackedParameter<unsigned int>("cacheSize") : 0U),
34  duplicateChecker_(new DuplicateChecker(pset)),
35  usingGoToEvent_(false),
36  enablePrefetching_(false),
37  enforceGUIDInFileName_(pset.getUntrackedParameter<bool>("enforceGUIDInFileName")) {
38  // The SiteLocalConfig controls the TTreeCache size and the prefetching settings.
40  if (pSLC.isAvailable()) {
41  if (treeCacheSize_ != 0U && pSLC->sourceTTreeCacheSize()) {
42  treeCacheSize_ = *(pSLC->sourceTTreeCacheSize());
43  }
44  enablePrefetching_ = pSLC->enablePrefetching();
45  }
46 
47  std::string branchesMustMatch =
48  pset.getUntrackedParameter<std::string>("branchesMustMatch", std::string("permissive"));
49  if (branchesMustMatch == std::string("strict"))
51 
52  // Prestage the files
55  }
56  // Open the first file.
59  if (rootFile())
60  break;
61  }
62  if (rootFile()) {
63  input_.productRegistryUpdate().updateFromInput(rootFile()->productRegistry()->productList());
66  }
67  }
68  }
69 
71 
73 
74  std::shared_ptr<FileBlock> RootPrimaryFileSequence::readFile_() {
75  std::shared_ptr<FileBlock> fileBlock;
76  if (firstFile_) {
77  firstFile_ = false;
78  // Usually the first input file will already be open
79  if (!rootFile()) {
81  }
82  } else if (goToEventInNewFile_) {
83  goToEventInNewFile_ = false;
85  initFile(false);
86  assert(rootFile());
87  bool found = rootFile()->goToEvent(goToEventID_);
88  assert(found);
89  } else if (skipIntoNewFile_) {
90  skipIntoNewFile_ = false;
92  initFile(false);
93  assert(rootFile());
94  if (skipToOffsetInFinalFile_ < 0) {
95  rootFile()->setToLastEntry();
96  }
97  bool atEnd = rootFile()->skipEvents(skipToOffsetInFinalFile_);
98  assert(!atEnd && skipToOffsetInFinalFile_ == 0);
99  } else {
100  if (!nextFile()) {
101  // handle case with last file bad and
102  // skipBadFiles true
103  fb_ = fileBlock;
104  return fileBlock;
105  }
106  }
107  if (!rootFile()) {
108  fileBlock = std::make_shared<FileBlock>();
109  fb_ = fileBlock;
110  return fileBlock;
111  }
112  fileBlock = rootFile()->createFileBlock();
113  fb_ = fileBlock;
114  return fileBlock;
115  }
116 
118  // close the currently open file, if any, and delete the RootFile object.
119  if (rootFile()) {
120  auto sentry = std::make_unique<InputSource::FileCloseSentry>(input_, lfn(), usedFallback());
121  rootFile()->close();
122  if (duplicateChecker_)
123  duplicateChecker_->inputFileClosed();
124  rootFile().reset();
125  }
126  }
127 
129  // If we are not duplicate checking across files and we are not using random access to find events,
130  // then we can delete the IndexIntoFile for the file we are closing.
131  // If we can't delete all of it, then we can delete the parts we do not need.
132  bool deleteIndexIntoFile = !usingGoToEvent_ && !(duplicateChecker_ && duplicateChecker_->checkingAllFiles() &&
133  !duplicateChecker_->checkDisabled());
134  initTheFile(skipBadFiles, deleteIndexIntoFile, &input_, "primaryFiles", InputType::Primary);
135  }
136 
138  size_t currentIndexIntoFile = sequenceNumberOfFile();
139  return std::make_shared<RootFile>(fileNames()[0],
141  logicalFileName(),
142  filePtr,
145  remainingEvents(),
147  input_.nStreams(),
151  input_.runHelper(),
152  noEventSort_,
156  input_.processBlockHelper().get(),
158  nullptr, // associationsFromSecondary
163  currentIndexIntoFile,
170  }
171 
173  do {
174  if (!noMoreFiles())
175  setAtNextFile();
176  if (noMoreFiles()) {
177  return false;
178  }
179 
181  if (rootFile()) {
182  break;
183  }
184  // If we are not skipping bad files and the file
185  // open failed, then initFile should have thrown
187  } while (true);
188 
189  // make sure the new product registry is compatible with the main one
190  std::string mergeInfo =
191  input_.productRegistryUpdate().merge(*rootFile()->productRegistry(), fileNames()[0], branchesMustMatch_);
192  if (!mergeInfo.empty()) {
193  throw Exception(errors::MismatchedInputFiles, "RootPrimaryFileSequence::nextFile()") << mergeInfo;
194  }
195  return true;
196  }
197 
199  if (atFirstFile()) {
200  return false;
201  }
203 
204  initFile(false);
205 
206  if (rootFile()) {
207  // make sure the new product registry is compatible to the main one
208  std::string mergeInfo =
209  input_.productRegistryUpdate().merge(*rootFile()->productRegistry(), fileNames()[0], branchesMustMatch_);
210  if (!mergeInfo.empty()) {
211  throw Exception(errors::MismatchedInputFiles, "RootPrimaryFileSequence::previousEvent()") << mergeInfo;
212  }
213  }
214  if (rootFile())
215  rootFile()->setToLastEntry();
216  return true;
217  }
218 
221  EventNumber_t& event) {
222  if (noMoreFiles() || skipToStop_) {
223  skipToStop_ = false;
224  return InputSource::IsStop;
225  }
227  return InputSource::IsFile;
228  }
229  if (rootFile()) {
230  IndexIntoFile::EntryType entryType = rootFile()->getNextItemType(run, lumi, event);
231  if (entryType == IndexIntoFile::kEvent) {
232  return InputSource::IsEvent;
233  } else if (entryType == IndexIntoFile::kLumi) {
234  return InputSource::IsLumi;
235  } else if (entryType == IndexIntoFile::kRun) {
236  return InputSource::IsRun;
237  }
238  assert(entryType == IndexIntoFile::kEnd);
239  }
240  if (atLastFile()) {
241  return InputSource::IsStop;
242  }
243  return InputSource::IsFile;
244  }
245 
246  // Rewind to before the first event that was read.
248  if (!atFirstFile()) {
249  closeFile_();
250  setAtFirstFile();
251  }
252  if (!rootFile()) {
253  initFile(false);
254  }
255  rewindFile();
256  firstFile_ = true;
257  goToEventInNewFile_ = false;
258  skipIntoNewFile_ = false;
259  skipToStop_ = false;
260  if (rootFile()) {
261  if (initialNumberOfEventsToSkip_ != 0) {
263  }
264  }
265  }
266 
267  // Rewind to the beginning of the current file
269  if (rootFile())
270  rootFile()->rewind();
271  }
272 
273  // Advance "offset" events. Offset will be positive.
275  assert(rootFile());
276  assert(offset >= 0);
277  while (offset != 0) {
278  bool atEnd = rootFile()->skipEvents(offset);
279  if ((offset > 0 || atEnd) && !nextFile()) {
280  return;
281  }
282  }
283  }
284 
285  // Advance "offset" events. Offset can be positive or negative (or zero).
287  assert(rootFile());
288 
289  bool atEnd = rootFile()->skipEvents(offset);
290  if (!atEnd && offset == 0) {
291  // successfully completed skip within current file
292  return;
293  }
294 
295  // Return, if without closing the current file we know the skip cannot be completed
296  skipToStop_ = false;
297  if (offset > 0 || atEnd) {
298  if (atLastFile() || noMoreFiles()) {
299  skipToStop_ = true;
300  return;
301  }
302  }
303  if (offset < 0 && atFirstFile()) {
304  skipToStop_ = true;
305  return;
306  }
307 
308  // Save the current file and position so that we can restore them
309  size_t const originalFileSequenceNumber = sequenceNumberOfFile();
310  IndexIntoFile::IndexIntoFileItr originalPosition = rootFile()->indexIntoFileIter();
311 
312  if ((offset > 0 || atEnd) && !nextFile()) {
313  skipToStop_ = true; // Can only get here if skipBadFiles is true
314  }
315  if (offset < 0 && !previousFile()) {
316  skipToStop_ = true; // Can't actually get here
317  }
318 
319  if (!skipToStop_) {
320  while (offset != 0) {
322  bool atEnd = rootFile()->skipEvents(offset);
323  if ((offset > 0 || atEnd) && !nextFile()) {
324  skipToStop_ = true;
325  break;
326  }
327  if (offset < 0 && !previousFile()) {
328  skipToStop_ = true;
329  break;
330  }
331  }
332  if (!skipToStop_) {
333  skipIntoNewFile_ = true;
334  }
335  }
337 
338  // Restore the original file and position
339  setAtFileSequenceNumber(originalFileSequenceNumber);
340  initFile(false);
341  assert(rootFile());
342  rootFile()->setPosition(originalPosition);
343  rootFile()->updateFileBlock(*fb_);
344  }
345 
347  usingGoToEvent_ = true;
348  if (rootFile()) {
349  if (rootFile()->goToEvent(eventID)) {
350  return true;
351  }
352  // If only one input file, give up now, to save time.
353  if (rootFile() && indexesIntoFiles().size() == 1) {
354  return false;
355  }
356  // Look for item (run/lumi/event) in files previously opened without reopening unnecessary files.
357  for (auto it = indexesIntoFiles().begin(), itEnd = indexesIntoFiles().end(); it != itEnd; ++it) {
358  if (*it && (*it)->containsItem(eventID.run(), eventID.luminosityBlock(), eventID.event())) {
359  goToEventInNewFile_ = true;
360  goToFileSequenceOffset_ = it - indexesIntoFiles().begin();
361  goToEventID_ = eventID;
362  return true;
363  }
364  }
365 
366  // Save the current file and position so that we can restore them
367  bool closedOriginalFile = false;
368  size_t const originalFileSequenceNumber = sequenceNumberOfFile();
369  IndexIntoFile::IndexIntoFileItr originalPosition = rootFile()->indexIntoFileIter();
370 
371  // Look for item in files not yet opened.
372  bool foundIt = false;
373  for (auto it = indexesIntoFiles().begin(), itEnd = indexesIntoFiles().end(); it != itEnd; ++it) {
374  if (!*it) {
376  initFile(false);
377  assert(rootFile());
378  closedOriginalFile = true;
379  if ((*it)->containsItem(eventID.run(), eventID.luminosityBlock(), eventID.event())) {
380  foundIt = true;
381  goToEventInNewFile_ = true;
382  goToFileSequenceOffset_ = it - indexesIntoFiles().begin();
383  goToEventID_ = eventID;
384  }
385  }
386  }
387  if (closedOriginalFile) {
388  setAtFileSequenceNumber(originalFileSequenceNumber);
389  initFile(false);
390  assert(rootFile());
391  rootFile()->setPosition(originalPosition);
392  rootFile()->updateFileBlock(*fb_);
393  }
394  return foundIt;
395  }
396  return false;
397  }
398 
400 
402 
404  desc.addUntracked<unsigned int>("skipEvents", 0U)
405  ->setComment("Skip the first 'skipEvents' events that otherwise would have been processed.");
406  desc.addUntracked<bool>("noEventSort", true)
407  ->setComment(
408  "True: Process runs, lumis and events in the order they appear in the file (but see notes 1 and 2).\n"
409  "False: Process runs, lumis and events in each file in numerical order (run#, lumi#, event#) (but see note "
410  "3).\n"
411  "Note 1: Events within the same lumi will always be processed contiguously.\n"
412  "Note 2: Lumis within the same run will always be processed contiguously.\n"
413  "Note 3: Any sorting occurs independently in each input file (no sorting across input files).");
414  desc.addUntracked<unsigned int>("cacheSize", roottree::defaultCacheSize)
415  ->setComment("Size of ROOT TTree prefetch cache. Affects performance.");
416  std::string defaultString("permissive");
417  desc.addUntracked<std::string>("branchesMustMatch", defaultString)
418  ->setComment(
419  "'strict': Branches in each input file must match those in the first file.\n"
420  "'permissive': Branches in each input file may be any subset of those in the first file.");
421  desc.addUntracked<bool>("enforceGUIDInFileName", false)
422  ->setComment(
423  "True: file name part is required to be equal to the GUID of the file\n"
424  "False: file name can be anything");
425 
428  }
429 
431  if (rootFile()) {
432  if (!rootFile()->wasLastEventJustRead()) {
434  }
435  if (noMoreFiles() || atLastFile()) {
437  } else {
439  }
440  }
442  }
443 
445  if (rootFile()) {
446  if (!rootFile()->wasFirstEventJustRead()) {
448  }
449  if (!atFirstFile()) {
451  }
453  }
455  }
456 
457 } // namespace edm
edm::RootPrimaryFileSequence::initFile_
void initFile_(bool skipBadFiles) override
Definition: RootPrimaryFileSequence.cc:128
edm::RootInputFileSequence::noMoreFiles
bool noMoreFiles() const
Definition: RootInputFileSequence.h:71
edm::RootPrimaryFileSequence::firstFile_
bool firstFile_
Definition: RootPrimaryFileSequence.h:65
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
edm::RootPrimaryFileSequence::fb_
edm::propagate_const< std::shared_ptr< FileBlock > > fb_
Definition: RootPrimaryFileSequence.h:74
edm::IndexIntoFile::kLumi
Definition: IndexIntoFile.h:238
edm::RootPrimaryFileSequence::goToEventID_
EventID goToEventID_
Definition: RootPrimaryFileSequence.h:83
edm::errors::MismatchedInputFiles
Definition: EDMException.h:52
electrons_cff.bool
bool
Definition: electrons_cff.py:366
edm::RootPrimaryFileSequence::skipToStop_
bool skipToStop_
Definition: RootPrimaryFileSequence.h:84
edm::ProcessingController::kAtLastEvent
Definition: ProcessingController.h:34
edm::RootPrimaryFileSequence::previousFile
bool previousFile()
Definition: RootPrimaryFileSequence.cc:198
edm::PoolSource
Definition: PoolSource.h:32
DuplicateChecker.h
input
static const std::string input
Definition: EdmProvDump.cc:48
edm::RootInputFileSequence::setAtFirstFile
void setAtFirstFile()
Definition: RootInputFileSequence.h:76
MessageLogger.h
funct::false
false
Definition: Factorize.h:29
edm::PoolSource::labelRawDataLikeMC
bool labelRawDataLikeMC() const
Definition: PoolSource.h:43
edm::RootPrimaryFileSequence::nextFile
bool nextFile()
Definition: RootPrimaryFileSequence.cc:172
edm::RootInputFileSequence::setAtFileSequenceNumber
void setAtFileSequenceNumber(size_t offset)
Definition: RootInputFileSequence.h:77
edm::ProcessingController::kUnknownReverse
Definition: ProcessingController.h:42
edm::PoolSource::productRegistryUpdate
ProductRegistry & productRegistryUpdate()
Definition: InputSource.h:330
getEcalConditions_orcoffint2r_cff.catalog
catalog
Definition: getEcalConditions_orcoffint2r_cff.py:40
edm::InputSource::thinnedAssociationsHelper
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper() const
Accessors for thinnedAssociationsHelper.
Definition: InputSource.h:156
edm::IndexIntoFile::kEvent
Definition: IndexIntoFile.h:238
edm::RootPrimaryFileSequence::input_
PoolSource & input_
Definition: RootPrimaryFileSequence.h:64
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::RootInputFileSequence::atFirstFile
bool atFirstFile() const
Definition: RootInputFileSequence.h:69
BranchID.h
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
edm::DuplicateChecker::fillDescription
static void fillDescription(ParameterSetDescription &desc)
Definition: DuplicateChecker.cc:109
edm::ProductRegistry::updateFromInput
void updateFromInput(ProductList const &other)
Definition: ProductRegistry.cc:209
RootTree.h
cms::cuda::assert
assert(be >=bs)
edm::RootPrimaryFileSequence::goToFileSequenceOffset_
size_t goToFileSequenceOffset_
Definition: RootPrimaryFileSequence.h:82
edm::RootPrimaryFileSequence::duplicateChecker
std::shared_ptr< DuplicateChecker const > duplicateChecker() const
Definition: RootPrimaryFileSequence.h:71
edm::InputFileCatalog
Definition: InputFileCatalog.h:32
ProductRegistry.h
InputFileCatalog.h
beamerCreator.create
def create(alignables, pedeDump, additionalData, outputFile, config)
Definition: beamerCreator.py:44
edm::PoolSource::nStreams
unsigned int nStreams() const
Definition: PoolSource.h:44
edm::BranchDescription::Strict
Definition: BranchDescription.h:36
remoteMonitoring_LED_IterMethod_cfg.skipBadFiles
skipBadFiles
Definition: remoteMonitoring_LED_IterMethod_cfg.py:24
edm::RootInputFileSequence::logicalFileName
std::string const & logicalFileName() const
Definition: RootInputFileSequence.h:84
edm::RootPrimaryFileSequence::usingGoToEvent_
bool usingGoToEvent_
Definition: RootPrimaryFileSequence.h:80
edm::EventID::luminosityBlock
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::LuminosityBlockNumber_t
unsigned int LuminosityBlockNumber_t
Definition: RunLumiEventNumber.h:13
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
edm::PoolSource::skipBadFiles
bool skipBadFiles() const
Definition: PoolSource.h:40
edm::RootPrimaryFileSequence::endJob
void endJob()
Definition: RootPrimaryFileSequence.cc:72
PoolSource.h
edm::RootPrimaryFileSequence::remainingEvents
int remainingEvents() const
Definition: RootPrimaryFileSequence.cc:399
edm::InputSource::IsRun
Definition: InputSource.h:54
edm::InputSource::remainingLuminosityBlocks
int remainingLuminosityBlocks() const
Definition: InputSource.h:186
RootPrimaryFileSequence.h
edm::RootPrimaryFileSequence::remainingLuminosityBlocks
int remainingLuminosityBlocks() const
Definition: RootPrimaryFileSequence.cc:401
edm::RootInputFileSequence::initFile
void initFile(bool skipBadFiles)
Definition: RootInputFileSequence.h:59
edm::RootPrimaryFileSequence::duplicateChecker_
edm::propagate_const< std::shared_ptr< DuplicateChecker > > duplicateChecker_
Definition: RootPrimaryFileSequence.h:79
edm::RootInputFileSequence::RootFileSharedPtr
std::shared_ptr< RootFile > RootFileSharedPtr
Definition: RootInputFileSequence.h:58
edm::ProcessingController::ForwardState
ForwardState
Definition: ProcessingController.h:31
edm::PoolSource::processHistoryRegistryForUpdate
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:331
edm::RootPrimaryFileSequence::rewindFile
void rewindFile()
Definition: RootPrimaryFileSequence.cc:268
edm::IndexIntoFile::kRun
Definition: IndexIntoFile.h:238
edm::ProcessingController::kNextFileExists
Definition: ProcessingController.h:33
Service.h
edm::PoolSource::runHelper
RunHelperBase * runHelper()
Definition: PoolSource.h:47
StorageFactory::get
static const StorageFactory * get(void)
Definition: StorageFactory.cc:28
edm::RootPrimaryFileSequence::eventSkipperByID
std::shared_ptr< EventSkipperByID const > eventSkipperByID() const
Definition: RootPrimaryFileSequence.h:69
mps_fire.end
end
Definition: mps_fire.py:242
edm::RootInputFileSequence::setAtNextFile
void setAtNextFile()
Definition: RootInputFileSequence.h:79
edm::RootPrimaryFileSequence::skipEvents
void skipEvents(int offset)
Definition: RootPrimaryFileSequence.cc:286
edm::RootPrimaryFileSequence::skipEventsAtBeginning
void skipEventsAtBeginning(int offset)
Definition: RootPrimaryFileSequence.cc:274
edm::ProcessingController::kAtFirstEvent
Definition: ProcessingController.h:41
StorageFactory::stagein
void stagein(const std::string &url) const
Definition: StorageFactory.cc:159
edm::RootPrimaryFileSequence::~RootPrimaryFileSequence
~RootPrimaryFileSequence() override
Definition: RootPrimaryFileSequence.cc:70
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
edm::RootInputFileSequence::atLastFile
bool atLastFile() const
Definition: RootInputFileSequence.h:70
edm::EventSkipperByID
Definition: EventSkipperByID.h:17
edm::roottree::defaultCacheSize
unsigned const int defaultCacheSize
Definition: RootTree.h:38
ParameterSetDescription.h
edm::EventID::run
RunNumber_t run() const
Definition: EventID.h:38
edm::RootPrimaryFileSequence::noEventSort_
bool noEventSort_
Definition: RootPrimaryFileSequence.h:77
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
edm::ProcessingController::kEventsAheadInFile
Definition: ProcessingController.h:32
edm::InputSource::processingMode
ProcessingMode processingMode() const
RunsLumisAndEvents (default), RunsAndLumis, or Runs.
Definition: InputSource.h:224
edm::RootPrimaryFileSequence::skipToFileSequenceNumber_
size_t skipToFileSequenceNumber_
Definition: RootPrimaryFileSequence.h:86
edm::InputSource::IsFile
Definition: InputSource.h:54
funct::true
true
Definition: Factorize.h:173
edm::RootInputFileSequence
Definition: RootInputFileSequence.h:32
edm::RootPrimaryFileSequence::enablePrefetching_
bool enablePrefetching_
Definition: RootPrimaryFileSequence.h:88
edm::ParameterSet
Definition: ParameterSet.h:47
edm::RootPrimaryFileSequence::treeCacheSize_
unsigned int treeCacheSize_
Definition: RootPrimaryFileSequence.h:78
fetchall_from_DQM_v2.release
release
Definition: fetchall_from_DQM_v2.py:92
edm::PoolSource::treeMaxVirtualSize
int treeMaxVirtualSize() const
Definition: PoolSource.h:45
edm::IndexIntoFile::IndexIntoFileItr
Definition: IndexIntoFile.h:681
edm::InputSource::IsLumi
Definition: InputSource.h:54
edm::RootPrimaryFileSequence::forwardState
ProcessingController::ForwardState forwardState() const
Definition: RootPrimaryFileSequence.cc:430
edm::RootPrimaryFileSequence::RootPrimaryFileSequence
RootPrimaryFileSequence(ParameterSet const &pset, PoolSource &input, InputFileCatalog const &catalog)
Definition: RootPrimaryFileSequence.cc:22
edm::RootPrimaryFileSequence::getNextItemType
InputSource::ItemType getNextItemType(RunNumber_t &run, LuminosityBlockNumber_t &lumi, EventNumber_t &event)
Definition: RootPrimaryFileSequence.cc:219
edm::EventID::event
EventNumber_t event() const
Definition: EventID.h:40
edm::RootInputFileSequence::rootFile
std::shared_ptr< RootFile const > rootFile() const
Definition: RootInputFileSequence.h:93
StorageFactory.h
edm::Service
Definition: Service.h:30
createfilelist.int
int
Definition: createfilelist.py:10
edm::RootPrimaryFileSequence::closeFile_
void closeFile_() override
Definition: RootPrimaryFileSequence.cc:117
edm::InputSource::IsStop
Definition: InputSource.h:54
RootFile.h
InputFile.h
edm::RootPrimaryFileSequence::goToEventInNewFile_
bool goToEventInNewFile_
Definition: RootPrimaryFileSequence.h:81
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FileBlock.h
edm::RootInputFileSequence::lfn
std::string const & lfn() const
Definition: RootInputFileSequence.h:85
edm::RootPrimaryFileSequence::rewind_
void rewind_()
Definition: RootPrimaryFileSequence.cc:247
edm::InputSource::ItemType
ItemType
Definition: InputSource.h:54
edm::DuplicateChecker
Definition: DuplicateChecker.h:30
edm::InputSource::branchIDListHelper
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Accessors for branchIDListHelper.
Definition: InputSource.h:144
edm::ProcessingController::kEventsBackwardsInFile
Definition: ProcessingController.h:39
edm::InputSource::processConfiguration
ProcessConfiguration const & processConfiguration() const
Accessor for Process Configuration.
Definition: InputSource.h:192
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
writedatasetfile.run
run
Definition: writedatasetfile.py:27
edm::InputType::Primary
edm::RootPrimaryFileSequence::initialNumberOfEventsToSkip_
int initialNumberOfEventsToSkip_
Definition: RootPrimaryFileSequence.h:76
edm::PoolSource::dropDescendants
bool dropDescendants() const
Definition: PoolSource.h:41
edm::InputSource::processBlockHelper
std::shared_ptr< ProcessBlockHelper const > processBlockHelper() const
Accessors for processBlockHelper.
Definition: InputSource.h:150
Exception
Definition: hltDiff.cc:245
edm::InputSource::remainingEvents
int remainingEvents() const
Definition: InputSource.h:178
edm::ProcessingController::kUnknownForward
Definition: ProcessingController.h:35
edm::EventSkipperByID::fillDescription
static void fillDescription(ParameterSetDescription &desc)
Definition: EventSkipperByID.cc:116
edm::RootPrimaryFileSequence::branchesMustMatch_
BranchDescription::MatchMode branchesMustMatch_
Definition: RootPrimaryFileSequence.h:66
edm::ProcessingController::kPreviousFileExists
Definition: ProcessingController.h:40
edm::RootPrimaryFileSequence::fillDescription
static void fillDescription(ParameterSetDescription &desc)
Definition: RootPrimaryFileSequence.cc:403
edm::RootInputFileSequence::initTheFile
void initTheFile(bool skipBadFiles, bool deleteIndexIntoFile, InputSource *input, char const *inputTypeName, InputType inputType)
Definition: RootInputFileSequence.cc:197
edm::RootInputFileSequence::usedFallback
bool usedFallback() const
Definition: RootInputFileSequence.h:91
edm::RootInputFileSequence::setAtPreviousFile
void setAtPreviousFile()
Definition: RootInputFileSequence.h:80
edm::RootPrimaryFileSequence::enforceGUIDInFileName_
bool enforceGUIDInFileName_
Definition: RootPrimaryFileSequence.h:89
edm::BranchDescription
Definition: BranchDescription.h:32
edm::RootInputFileSequence::indexesIntoFiles
std::vector< std::shared_ptr< IndexIntoFile > > const & indexesIntoFiles() const
Definition: RootInputFileSequence.h:88
edm::IndexIntoFile::kEnd
Definition: IndexIntoFile.h:238
edm::ProductRegistry::merge
std::string merge(ProductRegistry const &other, std::string const &fileName, BranchDescription::MatchMode branchesMustMatch=BranchDescription::Permissive)
Definition: ProductRegistry.cc:250
edm::InputSource::IsEvent
Definition: InputSource.h:54
ParameterSet.h
edm::PoolSource::productSelectorRules
ProductSelectorRules const & productSelectorRules() const
Definition: PoolSource.h:46
event
Definition: event.py:1
edm::EventID
Definition: EventID.h:31
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
edm::ProcessingController::ReverseState
ReverseState
Definition: ProcessingController.h:38
edm::PoolSource::bypassVersionCheck
bool bypassVersionCheck() const
Definition: PoolSource.h:42
lumi
Definition: LumiSectionData.h:20
edm::RootPrimaryFileSequence::orderedProcessHistoryIDs_
std::vector< ProcessHistoryID > orderedProcessHistoryIDs_
Definition: RootPrimaryFileSequence.h:67
edm::RootInputFileSequence::sequenceNumberOfFile
size_t sequenceNumberOfFile() const
Definition: RootInputFileSequence.h:73
edm::RootPrimaryFileSequence::skipToOffsetInFinalFile_
int skipToOffsetInFinalFile_
Definition: RootPrimaryFileSequence.h:87
edm::RootPrimaryFileSequence::goToEvent
bool goToEvent(EventID const &eventID)
Definition: RootPrimaryFileSequence.cc:346
edm::RootInputFileSequence::fileNames
std::vector< std::string > const & fileNames() const
Definition: RootInputFileSequence.h:82
edm::RootPrimaryFileSequence::makeRootFile
RootFileSharedPtr makeRootFile(std::shared_ptr< InputFile > filePtr) override
Definition: RootPrimaryFileSequence.cc:137
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
SiteLocalConfig.h
edm::RootPrimaryFileSequence::readFile_
std::shared_ptr< FileBlock > readFile_()
Definition: RootPrimaryFileSequence.cc:74
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
edm::IndexIntoFile::EntryType
EntryType
Definition: IndexIntoFile.h:238
edm::RootPrimaryFileSequence::reverseState
ProcessingController::ReverseState reverseState() const
Definition: RootPrimaryFileSequence.cc:444
edm::RootPrimaryFileSequence::skipIntoNewFile_
bool skipIntoNewFile_
Definition: RootPrimaryFileSequence.h:85