#include <IndexIntoFile.h>
Classes | |
class | EventEntry |
class | EventFinder |
class | IndexIntoFileItr |
class | IndexIntoFileItrEntryOrder |
class | IndexIntoFileItrImpl |
class | IndexIntoFileItrNoSort |
class | IndexIntoFileItrSorted |
class | IndexRunKey |
class | IndexRunLumiEventKey |
class | IndexRunLumiKey |
class | RunOrLumiEntry |
class | RunOrLumiIndexes |
class | SortedRunOrLumiItr |
struct | Transients |
Public Types | |
using | EntryNumber_t = long long |
enum | EntryType { kRun, kLumi, kEvent, kEnd } |
enum | SortOrder { numericalOrder, firstAppearanceOrder, entryOrder } |
Static Public Attributes | |
static constexpr EntryNumber_t | invalidEntry = -1LL |
static constexpr EventNumber_t | invalidEvent = 0U |
static constexpr int | invalidIndex = -1 |
static constexpr LuminosityBlockNumber_t | invalidLumi = 0U |
static constexpr RunNumber_t | invalidRun = 0U |
Private Member Functions | |
EntryNumber_t & | beginEvents () const |
int & | currentIndex () const |
LuminosityBlockNumber_t & | currentLumi () const |
RunNumber_t & | currentRun () const |
EntryNumber_t & | endEvents () const |
std::vector< EventEntry > & | eventEntries () const |
std::vector< EventNumber_t > & | eventNumbers () const |
void | fillRunOrLumiIndexes () const |
void | fillUnsortedEventNumbers () const |
EventNumber_t | getEventNumberOfEntry (EntryNumber_t entry) const |
std::map< IndexRunLumiKey, EntryNumber_t > & | lumiToOrder () const |
size_t | numberOfEvents () const |
int & | previousAddedIndex () const |
void | resetEventFinder () const |
std::vector< RunOrLumiIndexes > & | runOrLumiIndexes () const |
std::map< IndexRunKey, EntryNumber_t > & | runToOrder () const |
void | sortEventEntries () const |
void | sortEvents () const |
std::vector< EventNumber_t > & | unsortedEventNumbersMutable () const |
Private Attributes | |
std::vector< ProcessHistoryID > | processHistoryIDs_ |
std::vector< RunOrLumiEntry > | runOrLumiEntries_ |
Transients | transient_ |
Friends | |
class | ::TestIndexIntoFile |
class | ::TestIndexIntoFile1 |
class | ::TestIndexIntoFile2 |
class | ::TestIndexIntoFile3 |
class | ::TestIndexIntoFile4 |
class | ::TestIndexIntoFile5 |
Used to quickly find the Events, Lumis, and Runs in a single ROOT format data file and step through them in the desired order.
A list of the most important functions that a client would use directly follows. There are detailed comments below with the declaration of each function.
The begin and end functions are used to start and stop an iteration loop. An argument to the iterator constructor determines the order of iteration.
The functions findPosition, findEventPosition, findRunPosition, and findLumiPosition are used to navigate directly to specific runs, lumis, and events.
The functions mentioned above return an object of type IndexIntoFileItr. The IndexIntoFileItr class has member functions which allow one to navigate forward and backward through the runs, lumis, and events in alternative ways. See more comments with the declaration of each public member function in IndexIntoFileItr.
The iterator will know what the current item is (as one would expect). This could be a run, lumi, or event. It knows more than that though, it knows all three as is explained below.
In the run state, IndexIntoFileItr knows which lumi will be processed next after the run and also which event will be processed after the lumi. These may not be the first ones in the run if the skip functions were used.
In the lumi state, the IndexIntoFileItr will always point at the last associated run and the next event to be processed after the lumi. This may not be the first event if the skip function was used.
In the event state, the IndexIntoFileItr will always point at the last corresponding run and also the last corresponding lumi.
There can be multiple run entries in a TTree associated with the same run number and ProcessHistoryID in a file. There can also be multiple lumi entries associated with the same lumi number, run number, and ProcessHistoryID. The sorting orders identified as numericalOrder and firstAppearanceOrder will make these subgroups contiguous, but beyond that is up to the client (normally PoolSource, which passes them up to the EventProcessor) to deal with merging the multiple run (or lumi) entries together.
In entryOrder, the Events are processed in the order they appear in the Events TTree. The event entries associated with a run might not be contiguous. The event entries associated with a lumi might not be contiguous. Even so, the iteration order will always follow the pattern run followed by contained lumis followed by contained events (note it's possible there are no contained events for a lumi or no contained lumis for a run). Because the events are not contiguous, this leads to run or lumi entries appearing more than once in the iteration (once for each contained contiguous sequence of events plus possibly one additional time near the end for the run or lumi to be processed and merged, although this might or might not occur with the last contiguous sequence of events). The iterator is designed to automatically step to each event once, even when it points at the same RunOrLumiEntry with the same events more than once in the iteration. The client does not need to do anything special related to events. On the other hand, the client (usually PoolSource, which passes the value into the Principal) needs to check the iterator functions named shouldProcessLumi or shouldProcessRun to determine whether a lumi or run is being encountered more than once. Those functions will return true only once. At that time, run or lumi products are read, possibly merged, and written to output. When those functions return false, transitions still occur but products are not read, merged or written. If a module attempts to get run or lumi products in those transitions, there will be a "ProductNotFound" exception or invalid Handle. In general, getting run or lumi products from events does not work with the EntryOrder iterator type.
One final comment with regards to IndexIntoFileItr. This is not an STL iterator and it cannot be used with std:: algorithms. The data structures are complex and designed to optimize memory usage. It would be difficult or impossible implement an iterator that is STL compliant.
Here is a summary of the data structures in IndexIntoFile. The persistent data consists of two vectors.
processHistoryIDs_ is a std::vector<ProcessHistoryID> that contains the ProcessHistoryIDs with one element in the vector for each unique ProcessHistoryID. On output they are ordered as they first written out for each output file. On input they are ordered as they are first seen in each process. Note that each ProcessHistoryID is stored once in this separate vector. Everywhere else it is needed it stored as an index into this vector because the ProcessHistoryID itself is large and it would take more memory to store them repeatedly in the other vectors. Note that the ProcessHistoryID's referenced in this class are always the "reduced" ProcessHistoryID's, not the ProcessHistoryID of the full ProcessHistory. You cannot use them to directly access the ProcessHistory from the ProcessHistoryRegistry.
runOrLumiEntries_ is a std::vector<RunOrLumiEntry>. This vector holds one element per entry in the run TTree and one element per entry in the lumi TTree. When sorted, everything associated with a given run and ProcessHistoryID will be contiguous in the vector. These groups of elements will be sorted by an OutputModule in the order they first appear when an Event, Lumi or Run is written to output (close to input order but because of concurrency it might not be exactly the same). Within each of these groups the run entries come first in order, followed by the elements associated with the lumis. The lumis are also contiguous and sorted by first appearance by the output module in a way similar to runs. Within a lumi they are sorted by entry order. And each luminosity element corresponds to one contiguous sequence of Events in the Events TTree. Before we implemented concurrent processing of luminosity blocks that was the full story. After that it became more complicated because the sequence of events written to an output file that were associated with a particular luminosity block TTree entry might no longer be contiguous. Events from another concurrent luminosity block could get mixed in because with multiple events processing simultaneously, there is no longer any guarantee they will finish in the same order that they were read. This is handled by writing additional elements to the runOrLumiEntries_ vector, one for each contiguous block of events associated with a particular luminosity block. Only one of these vector elements will be associated with each entry in the luminosity block TTree and all the others will contain a TTree entry number that is invalid (note the one element with a valid entry might or might not be associated with a contiguous block of events). In the sort of elements related to a particular luminosity block, the entries with invalid entry numbers will come before the valid ones.
There are a number of transient data members also. The 3 most important of these are vectors. To save memory, these are only filled when needed.
runOrLumiIndexes_ is a std::vector<RunOrLumiIndexes>. There is a one to one correspondence between the elements of this vector and the elements of runOrLumiEntries_. The elements of this vector are sorted in numerical order using the ProcessHistoryID index, the run number, and the lumi number. This ordering allows iteration in numerical order and also fast lookup based on run number and lumi number. Each element also has indexes into the eventNumbers_ and eventEntries_ vectors which hold the information giving the event numbers and event entry numbers. Note this vector is initially formed in the identical order as runOrLumiEntries_ and then sorted with a stable sort. The fact that it is a stable sort means that within the subrange associated with a particular luminosity block the elements with an invalid TTree entry number come first and the later come the elements with a valid TTree entry number which are in order of TTree entry number.
eventNumbers_ is a std::vector containing EventNumber_t's. eventEntries_ is a std::vector containing EventEntry's. If filled, both vectors contain the same number of entries with identical event numbers sorted in the same order. The only difference is that one includes the entry numbers and thus takes more memory. Each element of runOrLumiIndexes_ associated with a luminosity block has the indexes necessary to find the range inside eventNumbers_ or eventEntries_ corresponding to its lumi. Within that range the elements are sorted by event number, which is used for the numerical order iteration and to find an event by the event number.
The details of the data structure are a little different when reading files written before release 3_8_0 (backward compatibility, see RootFile::fillIndexIntoFile for the details).
This data structure is optimized for low memory usage when there are large numbers of events. The optimal case would occur when there was was one run in a file, one luminosity block in that run and everything had the same ProcessHistoryID. If duplicate checking were off and the process simply iterated through the file in the default order, then only the persistent vectors would be filled. One vector would contain 2 elements, one for the run and the other for the lumi. The other vector would contain one element, the ProcessHistoryID. Even if there were a billion events, that would be all that would exist and take up memory. The data structure is not the optimal structure for a very sparse skim, but the overheads should be tolerable given the number of runs and luminosity blocks that should occur in CMS data.
Normally only the persistent parts of the data structure are filled in the output module. The output module fills them using two functions designed specifically for that purpose. The functions are addEntry and sortVector_Run_Or_Lumi_Entries.
There are some complexities associated with filling the data structure, mostly revolving around optimizations to minimize the per event memory usage. The client needs to know which parts of the data structure to fill. See the functions below named fixIndexes, setNumberOfEvents, setEventFinder, fillEventNumbers, fillEventEntries, and inputFileClosed.
Note that this class is not intended to be used directly by the average CMS user. PoolSource and PoolOutputModule are the main clients. Other executables that read ROOT format data files, but do not use PoolSource may also need to use it directly (FWLite, Fireworks, edmFileUtil ...). The interface is too complex for general use.
Definition at line 255 of file IndexIntoFile.h.
using edm::IndexIntoFile::EntryNumber_t = long long |
Definition at line 261 of file IndexIntoFile.h.
Enumerator | |
---|---|
kRun | |
kLumi | |
kEvent | |
kEnd |
Definition at line 268 of file IndexIntoFile.h.
This enum is used to specify the order of iteration. In firstAppearanceOrder there are 3 sort criteria, in order of precedence these are:
In numerical order the criteria are in order of precedence are:
In entryOrder the order of iteration is as follows:
All runs and lumis associated with a run should be processed when the last contiguous sequence of events for that run is processed. If a run has no events, then it is interspersed within that sequence of runs according to its run TTree entry number.
Note that the ordering above will allow the client (usually PoolSource) to merge all run entries associated with a single run and merge all lumi entries associated with a single lumi the first time an input file is read. This is the same as in the other two orderings.
Enumerator | |
---|---|
numericalOrder | |
firstAppearanceOrder | |
entryOrder |
Definition at line 333 of file IndexIntoFile.h.
edm::IndexIntoFile::IndexIntoFile | ( | ) |
Definition at line 51 of file IndexIntoFile.cc.
edm::IndexIntoFile::~IndexIntoFile | ( | ) |
Definition at line 53 of file IndexIntoFile.cc.
void edm::IndexIntoFile::addEntry | ( | ProcessHistoryID const & | processHistoryID, |
RunNumber_t | run, | ||
LuminosityBlockNumber_t | lumi, | ||
EventNumber_t | event, | ||
EntryNumber_t | entry | ||
) |
Used by RootOutputModule to fill the persistent data. This will not work properly if entries are not added in the same order as in RootOutputModule
Definition at line 75 of file IndexIntoFile.cc.
References addLumi(), cms::cuda::assert(), beginEvents(), currentIndex(), currentLumi(), currentRun(), endEvents(), mps_splice::entry, invalidEntry, invalidEvent, invalidIndex, invalidLumi, invalidRun, BXlumiParameters_cfi::lumi, numberOfEvents(), or, previousAddedIndex(), processHistoryID(), processHistoryIDs_, writedatasetfile::run, runOrLumiEntries_, runToOrder(), and setNumberOfEvents().
Referenced by edm::RootOutputFile::writeLuminosityBlock(), edm::RootOutputFile::writeOne(), and edm::RootOutputFile::writeRun().
void edm::IndexIntoFile::addLumi | ( | int | index, |
RunNumber_t | run, | ||
LuminosityBlockNumber_t | lumi, | ||
EntryNumber_t | entry | ||
) |
Definition at line 59 of file IndexIntoFile.cc.
References beginEvents(), endEvents(), mps_splice::entry, invalidEntry, BXlumiParameters_cfi::lumi, lumiToOrder(), writedatasetfile::run, and runOrLumiEntries_.
Referenced by addEntry().
IndexIntoFile::IndexIntoFileItr edm::IndexIntoFile::begin | ( | SortOrder | sortOrder | ) | const |
Used to start an iteration over the Runs, Lumis, and Events in a file. Note the argument specifies the order
Definition at line 506 of file IndexIntoFile.cc.
References empty(), end(), edm::IndexIntoFile::IndexIntoFileItr::initializeRun(), invalidIndex, and kRun.
Referenced by containsDuplicateEvents(), findPosition(), iterationWillBeInEntryOrder(), edm::postIndexIntoFilePrintEventLists(), edm::postIndexIntoFilePrintEventsInLumis(), edm::RootFile::RootFile(), set_intersection(), sortEventEntries(), and sortEvents().
|
inlineprivate |
Definition at line 1285 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::beginEvents_, and transient_.
Referenced by addEntry(), addLumi(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesSortedByEventEntry(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::fillLumisWithNoRemainingEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::gatherNeededInfo(), edm::IndexIntoFile::IndexIntoFileItrNoSort::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrNoSort::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrNoSort::previousEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::previousEventRange(), edm::IndexIntoFile::IndexIntoFileItrNoSort::setToLastEventInRange(), and edm::IndexIntoFile::IndexIntoFileItrEntryOrder::setToLastEventInRange().
IndexIntoFile::SortedRunOrLumiItr edm::IndexIntoFile::beginRunOrLumi | ( | ) | const |
Definition at line 755 of file IndexIntoFile.cc.
Referenced by containsDuplicateEvents(), fillEventNumbersOrEntries(), and set_intersection().
void edm::IndexIntoFile::checkForMissingRunOrLumiEntry | ( | ) | const |
Run this check just after sorting.
Definition at line 405 of file IndexIntoFile.cc.
References currentLumi(), currentRun(), edm::IndexIntoFile::RunOrLumiEntry::entry(), Exception, invalidEntry, B2GTnPMonitor_cfi::item, edm::errors::LogicError, edm::IndexIntoFile::RunOrLumiEntry::lumi(), edm::IndexIntoFile::RunOrLumiEntry::run(), and runOrLumiEntries_.
Referenced by sortVector_Run_Or_Lumi_Entries().
bool edm::IndexIntoFile::containsDuplicateEvents | ( | ) | const |
Returns true if the IndexIntoFile contains 2 events with the same ProcessHistoryID index, run number, lumi number and event number.
Definition at line 863 of file IndexIntoFile.cc.
References begin(), edm::IndexIntoFile::RunOrLumiIndexes::beginEventNumbers(), beginRunOrLumi(), empty(), edm::IndexIntoFile::RunOrLumiIndexes::endEventNumbers(), endRunOrLumi(), eventEntries(), eventNumbers(), fillEventNumbers(), edm::IndexIntoFile::RunOrLumiIndexes::isRun(), and dqmdumpme::last.
Referenced by edm::DuplicateChecker::inputFileOpened().
bool edm::IndexIntoFile::containsEvent | ( | RunNumber_t | run, |
LuminosityBlockNumber_t | lumi, | ||
EventNumber_t | event | ||
) | const |
Definition at line 745 of file IndexIntoFile.cc.
References findEventPosition(), edm::IndexIntoFile::IndexIntoFileItr::getEntryType(), kEnd, and writedatasetfile::run.
Referenced by containsItem().
bool edm::IndexIntoFile::containsItem | ( | RunNumber_t | run, |
LuminosityBlockNumber_t | lumi, | ||
EventNumber_t | event | ||
) | const |
Definition at line 741 of file IndexIntoFile.cc.
References containsEvent(), containsLumi(), containsRun(), and writedatasetfile::run.
Referenced by edm::RootFile::containsItem().
bool edm::IndexIntoFile::containsLumi | ( | RunNumber_t | run, |
LuminosityBlockNumber_t | lumi | ||
) | const |
Definition at line 749 of file IndexIntoFile.cc.
References findLumiPosition(), edm::IndexIntoFile::IndexIntoFileItr::getEntryType(), kEnd, and writedatasetfile::run.
Referenced by containsItem().
bool edm::IndexIntoFile::containsRun | ( | RunNumber_t | run | ) | const |
Definition at line 753 of file IndexIntoFile.cc.
References findRunPosition(), edm::IndexIntoFile::IndexIntoFileItr::getEntryType(), kEnd, and writedatasetfile::run.
Referenced by containsItem().
|
inlineprivate |
Definition at line 1287 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::currentIndex_, and transient_.
Referenced by addEntry(), and edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesSortedByEventEntry().
|
inlineprivate |
Definition at line 1289 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::currentLumi_, and transient_.
Referenced by addEntry(), checkForMissingRunOrLumiEntry(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesToLastContiguousEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::fillLumisWithNoRemainingEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleLumiEntriesNoRemainingEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleLumiWithEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleToEndOfContiguousEventsInLumis(), and edm::IndexIntoFile::IndexIntoFileItrEntryOrder::lowestInLumi().
|
inlineprivate |
Definition at line 1288 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::currentRun_, and transient_.
Referenced by addEntry(), checkForMissingRunOrLumiEntry(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesToLastContiguousEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::fillLumisWithNoRemainingEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleToEndOfContiguousEventsInLumis(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleToEndOfContiguousEventsInRun(), and edm::IndexIntoFile::IndexIntoFileItrEntryOrder::IndexIntoFileItrEntryOrder().
void edm::IndexIntoFile::doneFileInitialization | ( | ) |
Clears the temporary vector of event numbers to reduce memory usage.
Definition at line 299 of file IndexIntoFile.cc.
References edm::swap(), and unsortedEventNumbers().
Referenced by edm::RootFile::RootFile().
bool edm::IndexIntoFile::empty | ( | ) | const |
True if no runs, lumis, or events are in the file.
Definition at line 532 of file IndexIntoFile.cc.
References runOrLumiEntries().
Referenced by begin(), containsDuplicateEvents(), fwlite::EntryFinder::empty(), fillEventNumbersOrEntries(), fillUnsortedEventNumbers(), fwlite::EntryFinder::findEvent(), fwlite::EntryFinder::findLumi(), findPosition(), fwlite::EntryFinder::findRun(), set_intersection(), and edm::RootFile::validateFile().
IndexIntoFile::IndexIntoFileItr edm::IndexIntoFile::end | ( | SortOrder | sortOrder | ) | const |
Used to end an iteration over the Runs, Lumis, and Events in a file.
Definition at line 515 of file IndexIntoFile.cc.
References invalidIndex, and kEnd.
Referenced by begin(), Types.LuminosityBlockRange::cppID(), Types.EventRange::cppID(), fwlite::EntryFinder::findEvent(), fwlite::EntryFinder::findLumi(), findPosition(), fwlite::EntryFinder::findRun(), edm::RootFile::goToEvent(), iterationWillBeInEntryOrder(), edm::postIndexIntoFilePrintEventLists(), edm::postIndexIntoFilePrintEventsInLumis(), and edm::RootFile::RootFile().
|
inlineprivate |
Definition at line 1286 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::endEvents_, and transient_.
Referenced by addEntry(), addLumi(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesSortedByEventEntry(), edm::IndexIntoFile::IndexIntoFileItrNoSort::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrNoSort::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrNoSort::previousEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::previousEventRange(), edm::IndexIntoFile::IndexIntoFileItrNoSort::setToLastEventInRange(), and edm::IndexIntoFile::IndexIntoFileItrEntryOrder::setToLastEventInRange().
IndexIntoFile::SortedRunOrLumiItr edm::IndexIntoFile::endRunOrLumi | ( | ) | const |
Definition at line 757 of file IndexIntoFile.cc.
References runOrLumiEntries(), and findQualityFiles::size.
Referenced by containsDuplicateEvents(), fillEventNumbersOrEntries(), and set_intersection().
|
inlineprivate |
Definition at line 1278 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::eventEntries_, and transient_.
Referenced by containsDuplicateEvents(), fillEventNumbersOrEntries(), findPosition(), inputFileClosed(), set_intersection(), and sortEventEntries().
|
inlineprivate |
Definition at line 1279 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::eventNumbers_, and transient_.
Referenced by containsDuplicateEvents(), fillEventNumbersOrEntries(), findPosition(), set_intersection(), and sortEvents().
void edm::IndexIntoFile::fillEventEntries | ( | ) | const |
Fills a vector of objects that contain an event number and the corresponding TTree entry number for the event. Not filling it reduces the memory used by IndexIntoFile. As long as the event finder is still pointing at an open file this will automatically be called on demand (when the event numbers and entries are are needed). It makes sense for the client to fill this explicitly in advance if it is known that it will be needed, because in some cases this will prevent the event numbers vector from being unnecessarily filled (wasting memory). This vector will be needed when iterating over events in numerical order or looking up specific events. The entry numbers are needed if the events are actually read from the input file.
Definition at line 193 of file IndexIntoFile.cc.
References fillEventNumbersOrEntries().
void edm::IndexIntoFile::fillEventNumbers | ( | ) | const |
Fills a vector of event numbers. Not filling it reduces the memory used by IndexIntoFile. As long as the event finder is still pointing at an open file this will automatically be called on demand (when the event numbers are are needed). In cases, where the input file may be closed when the need arises, the client code must call this explicitly and fill the vector before the file is closed. In PoolSource, this is necessary when duplicate checking across all files and when doing lookups to see if an event is in a previously opened file. Either this vector or the one that also contains event entry numbers can be used when looking for duplicate events within the same file or looking up events in in the current file without reading them.
Definition at line 191 of file IndexIntoFile.cc.
References fillEventNumbersOrEntries().
Referenced by containsDuplicateEvents(), findPosition(), edm::RootFile::goToEvent(), and set_intersection().
void edm::IndexIntoFile::fillEventNumbersOrEntries | ( | bool | needEventNumbers, |
bool | needEventEntries | ||
) | const |
If needEventNumbers is true then this function does the same thing as fillEventNumbers. If NeedEventEntries is true, then this function does the same thing as fillEventEntries. If both are true, it fills both within the same loop and it uses less CPU than calling those two functions separately.
Definition at line 195 of file IndexIntoFile.cc.
References cms::cuda::assert(), beginRunOrLumi(), empty(), endRunOrLumi(), mps_splice::entry, edmPickEvents::event, eventEntries(), eventNumbers(), fillUnsortedEventNumbers(), invalidEntry, invalidEvent, L1DTConfigBti_cff::LL, numberOfEvents(), hltrates_dqm_sourceclient-live_cfg::offset, findQualityFiles::size, sortEventEntries(), sortEvents(), mitigatedMETSequence_cff::U, and unsortedEventNumbers().
Referenced by fillEventEntries(), fillEventNumbers(), and edm::RootFile::validateFile().
|
private |
This function will automatically get called when needed. It depends only on the fact that the persistent data has been filled already.
Definition at line 144 of file IndexIntoFile.cc.
References cms::cuda::assert(), invalidEntry, B2GTnPMonitor_cfi::item, submitPVValidationJobs::nEvents, runOrLumiEntries_, runOrLumiIndexes(), findQualityFiles::size, and edm::stable_sort_all().
Referenced by findPosition(), edm::IndexIntoFile::IndexIntoFileItrSorted::IndexIntoFileItrSorted(), set_intersection(), edm::IndexIntoFile::SortedRunOrLumiItr::SortedRunOrLumiItr(), sortEventEntries(), and sortEvents().
|
private |
Definition at line 272 of file IndexIntoFile.cc.
References empty(), mps_splice::entry, getEventNumberOfEntry(), numberOfEvents(), mitigatedMETSequence_cff::U, unsortedEventNumbers(), and unsortedEventNumbersMutable().
Referenced by fillEventNumbersOrEntries().
IndexIntoFile::IndexIntoFileItr edm::IndexIntoFile::findEventPosition | ( | RunNumber_t | run, |
LuminosityBlockNumber_t | lumi, | ||
EventNumber_t | event | ||
) | const |
Same as findPosition,except the entry type of the returned iterator will be kEvent or kEnd and the event argument must be nonzero. This means the next thing to be processed will be the event if it is found.
Definition at line 721 of file IndexIntoFile.cc.
References edm::IndexIntoFile::IndexIntoFileItr::advanceToEvent(), cms::cuda::assert(), findPosition(), invalidEvent, and writedatasetfile::run.
Referenced by containsEvent(), fwlite::EntryFinder::findEvent(), and edm::RootFile::setEntryAtEvent().
IndexIntoFile::IndexIntoFileItr edm::IndexIntoFile::findLumiPosition | ( | RunNumber_t | run, |
LuminosityBlockNumber_t | lumi | ||
) | const |
Same as findPosition,except the entry type of the returned iterator will be kLumi or kEnd and the lumi argument must be nonzero. This means the next thing to be processed will be the lumi if it is found.
Definition at line 730 of file IndexIntoFile.cc.
References edm::IndexIntoFile::IndexIntoFileItr::advanceToLumi(), cms::cuda::assert(), findPosition(), invalidLumi, writedatasetfile::run, and mitigatedMETSequence_cff::U.
Referenced by containsLumi(), fwlite::EntryFinder::findLumi(), and edm::RootFile::setEntryAtLumi().
IndexIntoFile::IndexIntoFileItr edm::IndexIntoFile::findPosition | ( | RunNumber_t | run, |
LuminosityBlockNumber_t | lumi = 0U , |
||
EventNumber_t | event = 0U |
||
) | const |
Find a run, lumi, or event. Returns an iterator pointing at it. The iterator will always be in numericalOrder mode. If it is not found the entry type of the iterator will be kEnd. If it is found the entry type of the iterator will always be kRun so the next thing to be processed is the run containing the desired lumi or event or if looking for a run, the run itself. If the lumi and event arguments are 0 (invalid), then it will find a run. If only the event argument is 0 (invalid), then it will find a lumi. If will look for an event if all three arguments are nonzero or if only the lumi argument is 0 (invalid). Note that it will find the first match only so if there is more than one match then the others cannot be found with this method. The order of the search is by processHistoryID index, then run number, then lumi number, then event entry. If searching for a lumi the iterator will advance directly to the desired lumi after the run even if it is not the first lumi in the run. If searching for an event, the iterator will advance to the lumi containing the run and then the requested event after run even if there are other lumis earlier in that run and other events earlier in that lumi.
Definition at line 534 of file IndexIntoFile.cc.
References cms::cuda::assert(), begin(), empty(), mps_splice::entry, edmPickEvents::event, eventEntries(), eventNumbers(), fillEventNumbers(), fillRunOrLumiIndexes(), edm::IndexIntoFile::IndexIntoFileItr::initializeLumi(), edm::IndexIntoFile::IndexIntoFileItr::initializeRun(), invalidEntry, invalidEvent, invalidIndex, invalidLumi, kEnd, kRun, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, BXlumiParameters_cfi::lumi, numericalOrder, writedatasetfile::run, runOrLumiEntries_, runOrLumiIndexes(), and pfDeepBoostedJetPreprocessParams_cfi::upper_bound.
Referenced by findEventPosition(), findLumiPosition(), findPosition(), findRunPosition(), and edm::RootFile::goToEvent().
IndexIntoFile::IndexIntoFileItr edm::IndexIntoFile::findPosition | ( | SortOrder | sortOrder, |
RunNumber_t | run, | ||
LuminosityBlockNumber_t | lumi = 0U , |
||
EventNumber_t | event = 0U |
||
) | const |
Definition at line 680 of file IndexIntoFile.cc.
References edm::IndexIntoFile::IndexIntoFileItr::advanceToNextRun(), begin(), end(), findPosition(), getEventNumberOfEntry(), invalidEvent, invalidLumi, BXlumiParameters_cfi::lumi, numericalOrder, edm::IndexIntoFile::IndexIntoFileItr::peekAheadAtEventEntry(), edm::IndexIntoFile::IndexIntoFileItr::peekAheadAtLumi(), writedatasetfile::run, edm::IndexIntoFile::IndexIntoFileItr::run(), edm::IndexIntoFile::IndexIntoFileItr::skipLumiInRun(), and edm::IndexIntoFile::IndexIntoFileItr::skipToNextEventInLumi().
IndexIntoFile::IndexIntoFileItr edm::IndexIntoFile::findRunPosition | ( | RunNumber_t | run | ) | const |
Same as findPosition.
Definition at line 737 of file IndexIntoFile.cc.
References findPosition(), writedatasetfile::run, and mitigatedMETSequence_cff::U.
Referenced by containsRun(), fwlite::EntryFinder::findRun(), and edm::RootFile::setEntryAtRun().
void edm::IndexIntoFile::fixIndexes | ( | std::vector< ProcessHistoryID > & | processHistoryIDs | ) |
Used by PoolSource to force the ProcessHistoryID indexes to be consistent across all input files. Currently this consistency is important when duplicate checking across all input files. It may be important for other reasons in the future. It is important this be called immediately after reading in the object from the input file, before filling the transient data members or using the indexes in any way.
Definition at line 363 of file IndexIntoFile.cc.
References spr::find(), B2GTnPMonitor_cfi::item, processHistoryIDs(), processHistoryIDs_, and runOrLumiEntries_.
Referenced by edm::RootFile::validateFile().
|
inlineprivate |
Definition at line 1292 of file IndexIntoFile.h.
References mps_splice::entry, edm::IndexIntoFile::Transients::eventFinder_, and transient_.
Referenced by fillUnsortedEventNumbers(), and findPosition().
|
inline |
Definition at line 1241 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::reset(), and transient_.
void edm::IndexIntoFile::inputFileClosed | ( | ) |
Clear some vectors and eventFinder when an input file is closed. This reduces the memory used by IndexIntoFile
Definition at line 292 of file IndexIntoFile.cc.
References eventEntries(), resetEventFinder(), runOrLumiIndexes(), edm::swap(), and unsortedEventNumbers().
bool edm::IndexIntoFile::iterationWillBeInEntryOrder | ( | SortOrder | sortOrder | ) | const |
Used to determine whether or not to disable fast cloning.
Definition at line 519 of file IndexIntoFile.cc.
References begin(), end(), invalidEntry, and kEvent.
Referenced by edm::postIndexIntoFilePrintEventLists(), and edm::RootFile::setIfFastClonable().
|
inlineprivate |
Definition at line 1284 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::lumiToOrder_, and transient_.
Referenced by addLumi().
|
inlineprivate |
Definition at line 1291 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::numberOfEvents_, and transient_.
Referenced by addEntry(), fillEventNumbersOrEntries(), and fillUnsortedEventNumbers().
|
inlineprivate |
Definition at line 1282 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::previousAddedIndex_, and transient_.
Referenced by addEntry().
ProcessHistoryID const & edm::IndexIntoFile::processHistoryID | ( | int | i | ) | const |
Definition at line 55 of file IndexIntoFile.cc.
References mps_fire::i, and processHistoryIDs_.
Referenced by addEntry(), and edm::RootFile::readCurrentEvent().
std::vector< ProcessHistoryID > const & edm::IndexIntoFile::processHistoryIDs | ( | ) | const |
Definition at line 57 of file IndexIntoFile.cc.
References processHistoryIDs_.
Referenced by fixIndexes().
void edm::IndexIntoFile::reduceProcessHistoryIDs | ( | ProcessHistoryRegistry const & | processHistoryRegistry | ) |
Used for backward compatibility to convert objects created with releases that used the full ProcessHistoryID in IndexIntoFile to use the reduced ProcessHistoryID.
Definition at line 301 of file IndexIntoFile.cc.
References B2GTnPMonitor_cfi::item, processHistoryIDs_, edm::ProcessHistoryRegistry::reducedProcessHistoryID(), and runOrLumiEntries_.
Referenced by edm::RootFile::validateFile().
|
inlineprivate |
Definition at line 1277 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::eventFinder_, and transient_.
Referenced by inputFileClosed().
|
inline |
Used internally and for test purposes.
Definition at line 1236 of file IndexIntoFile.h.
References runOrLumiEntries_.
Referenced by edm::IndexIntoFile::IndexIntoFileItrEntryOrder::addRunsWithNoEvents(), empty(), endRunOrLumi(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesSortedByEventEntry(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesToLastContiguousEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::fillLumisWithNoRemainingEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::gatherNeededInfo(), edm::IndexIntoFile::IndexIntoFileItrNoSort::getRunOrLumiEntryType(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleLumiEntriesNoRemainingEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleLumisWithNoEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleLumiWithEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleToEndOfContiguousEventsInLumis(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleToEndOfContiguousEventsInRun(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::IndexIntoFileItrEntryOrder(), edm::IndexIntoFile::IndexIntoFileItrNoSort::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::lowestInLumi(), edm::IndexIntoFile::IndexIntoFileItrNoSort::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::nextEventSequence(), edm::IndexIntoFile::IndexIntoFileItrNoSort::previousEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::resizeVectors(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::runOrLumisEntry(), edm::IndexIntoFile::IndexIntoFileItrNoSort::setToLastEventInRange(), edm::IndexIntoFile::IndexIntoFileItrNoSort::skipLumiInRun(), and edm::IndexIntoFile::SortedRunOrLumiItr::SortedRunOrLumiItr().
|
inlineprivate |
Definition at line 1290 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::runOrLumiIndexes_, and transient_.
Referenced by fillRunOrLumiIndexes(), findPosition(), edm::IndexIntoFile::IndexIntoFileItrSorted::getRunOrLumiEntryType(), edm::IndexIntoFile::IndexIntoFileItrSorted::initializeLumi_(), inputFileClosed(), set_intersection(), edm::IndexIntoFile::IndexIntoFileItrSorted::setToLastEventInRange(), edm::IndexIntoFile::IndexIntoFileItrSorted::skipLumiInRun(), sortEventEntries(), and sortEvents().
|
inlineprivate |
Definition at line 1283 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::runToOrder_, and transient_.
Referenced by addEntry(), and sortVector_Run_Or_Lumi_Entries().
void edm::IndexIntoFile::set_intersection | ( | IndexIntoFile const & | indexIntoFile, |
std::set< IndexRunLumiEventKey > & | intersection | ||
) | const |
The intersection argument will be filled with an entry for each event in both IndexIntoFile objects. To be added the event must have the same ProcessHistoryID index, run number, lumi number and event number.
Definition at line 761 of file IndexIntoFile.cc.
References begin(), edm::IndexIntoFile::RunOrLumiIndexes::beginEventNumbers(), beginRunOrLumi(), empty(), edm::IndexIntoFile::RunOrLumiIndexes::endEventNumbers(), endRunOrLumi(), mps_splice::entry, eventEntries(), eventNumbers(), fillEventNumbers(), fillRunOrLumiIndexes(), reco::helper::VirtualJetProducerHelper::intersection(), edm::IndexIntoFile::RunOrLumiIndexes::isRun(), edm::IndexIntoFile::SortedRunOrLumiItr::isRun(), edm::IndexIntoFile::RunOrLumiIndexes::lumi(), edm::IndexIntoFile::RunOrLumiIndexes::processHistoryIDIndex(), edm::IndexIntoFile::RunOrLumiIndexes::run(), edm::IndexIntoFile::SortedRunOrLumiItr::runOrLumiIndexes(), runOrLumiIndexes(), and DBoxMetadataHelper::set_intersection().
Referenced by edm::DuplicateChecker::inputFileOpened().
|
inline |
Calling this enables the functions that fill the event vectors to get the event numbers. It needs to be called before filling the events vectors This implies the client needs to define a class that inherits from EventFinder and then create one. This function is used to pass in a pointer to its base class.
Definition at line 1165 of file IndexIntoFile.h.
References edm::IndexIntoFile::Transients::eventFinder_, and transient_.
Referenced by fwlite::EntryFinder::fillIndex(), and edm::RootFile::validateFile().
|
inline |
The number of events needs to be set before filling the transient event vectors. It is used to resize them.
Definition at line 1158 of file IndexIntoFile.h.
References cmsHarvester::nevents, edm::IndexIntoFile::Transients::numberOfEvents_, and transient_.
Referenced by addEntry(), fwlite::EntryFinder::fillIndex(), and edm::RootFile::validateFile().
|
inline |
Used for backward compatibility and tests. RootFile::fillIndexIntoFile uses this to deal with input files created with releases before 3_8_0 which do not contain an IndexIntoFile.
Definition at line 1225 of file IndexIntoFile.h.
References processHistoryIDs_.
Referenced by edm::RootFile::fillIndexIntoFile(), and edm::RootFile::validateFile().
|
inline |
Used for backward compatibility and tests. RootFile::fillIndexIntoFile uses this to deal with input files created with releases before 3_8_0 which do not contain an IndexIntoFile.
Definition at line 1220 of file IndexIntoFile.h.
References runOrLumiEntries_.
Referenced by edm::RootFile::fillIndexIntoFile().
|
private |
Definition at line 481 of file IndexIntoFile.cc.
References cms::cuda::assert(), begin(), eventEntries(), fillRunOrLumiIndexes(), runOrLumiIndexes(), and jetUpdater_cfi::sort.
Referenced by fillEventNumbersOrEntries().
|
private |
Definition at line 456 of file IndexIntoFile.cc.
References cms::cuda::assert(), begin(), eventNumbers(), fillRunOrLumiIndexes(), runOrLumiIndexes(), and jetUpdater_cfi::sort.
Referenced by fillEventNumbersOrEntries().
void edm::IndexIntoFile::sortVector_Run_Or_Lumi_Entries | ( | ) |
Used by RootOutputModule after all entries have been added. This only works after the correct sequence of addEntry calls, because it makes some corrections before sorting. A std::stable_sort works in cases where those corrections are not needed.
Definition at line 385 of file IndexIntoFile.cc.
References checkForMissingRunOrLumiEntry(), Exception, B2GTnPMonitor_cfi::item, edm::errors::LogicError, runOrLumiEntries_, runToOrder(), and edm::stable_sort_all().
Referenced by edm::RootOutputFile::writeIndexIntoFile().
|
inline |
If something external to IndexIntoFile is reading through the EventAuxiliary then it could use this to fill in the event numbers so that IndexIntoFile will not read through it again.
Definition at line 1207 of file IndexIntoFile.h.
References transient_, and edm::IndexIntoFile::Transients::unsortedEventNumbers_.
Referenced by doneFileInitialization(), fillEventNumbersOrEntries(), edm::RootFile::fillIndexIntoFile(), fillUnsortedEventNumbers(), and inputFileClosed().
|
inline |
Definition at line 1208 of file IndexIntoFile.h.
References transient_, and edm::IndexIntoFile::Transients::unsortedEventNumbers_.
|
inlineprivate |
Definition at line 1275 of file IndexIntoFile.h.
References transient_, and edm::IndexIntoFile::Transients::unsortedEventNumbers_.
Referenced by fillUnsortedEventNumbers().
|
friend |
Definition at line 1264 of file IndexIntoFile.h.
|
friend |
Definition at line 1265 of file IndexIntoFile.h.
|
friend |
Definition at line 1266 of file IndexIntoFile.h.
|
friend |
Definition at line 1267 of file IndexIntoFile.h.
|
friend |
Definition at line 1268 of file IndexIntoFile.h.
|
friend |
Definition at line 1269 of file IndexIntoFile.h.
|
static |
Definition at line 266 of file IndexIntoFile.h.
Referenced by addEntry(), addLumi(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::addRunsWithNoEvents(), checkForMissingRunOrLumiEntry(), edm::IndexIntoFile::IndexIntoFileItrNoSort::entry(), edm::IndexIntoFile::IndexIntoFileItrSorted::entry(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::entry(), fillEventNumbersOrEntries(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesSortedByEventEntry(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesToLastContiguousEvents(), edm::RootFile::fillIndexIntoFile(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::fillLumisWithNoRemainingEvents(), fillRunOrLumiIndexes(), findPosition(), edm::IndexIntoFile::IndexIntoFileItrImpl::firstEventEntryThisLumi(), edm::IndexIntoFile::IndexIntoFileItrImpl::firstEventEntryThisRun(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::gatherNeededInfo(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleLumiEntriesNoRemainingEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleLumisWithNoEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleLumiWithEvents(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::handleToEndOfContiguousEventsInLumis(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::IndexIntoFileItrEntryOrder(), edm::RootFile::initializeDuplicateChecker(), edm::RootFile::initializeFirstProcessBlockEntry(), edm::IndexIntoFile::IndexIntoFileItrNoSort::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::initializeLumi_(), iterationWillBeInEntryOrder(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::lowestInLumi(), edm::IndexIntoFile::IndexIntoFileItrNoSort::lumiIterationStartingIndex(), edm::IndexIntoFile::IndexIntoFileItrSorted::lumiIterationStartingIndex(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::lumiIterationStartingIndex(), edm::IndexIntoFile::IndexIntoFileItrNoSort::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrNoSort::peekAheadAtEventEntry(), edm::IndexIntoFile::IndexIntoFileItrSorted::peekAheadAtEventEntry(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::peekAheadAtEventEntry(), edm::IndexIntoFile::IndexIntoFileItrNoSort::previousEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::previousEventRange(), edm::RootFile::readLuminosityBlockAuxiliary_(), edm::RootEmbeddedFileSequence::readOneSequential(), edm::RootFile::readRunAuxiliary_(), edm::IndexIntoFile::Transients::reset(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::resizeVectors(), edm::RootTree::rewindToInvalid(), edm::RootEmbeddedFileSequence::RootEmbeddedFileSequence(), edm::IndexIntoFile::IndexIntoFileItrNoSort::setToLastEventInRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::setToLastEventInRange(), edm::RootEmbeddedFileSequence::skipEntries(), edm::IndexIntoFile::IndexIntoFileItrImpl::skipEventBackward(), edm::IndexIntoFile::IndexIntoFileItrImpl::skipEventForward(), edm::RootFile::skipEvents(), and edm::RootFile::wasFirstEventJustRead().
|
static |
Definition at line 265 of file IndexIntoFile.h.
Referenced by addEntry(), fillEventNumbersOrEntries(), findEventPosition(), findPosition(), and edm::PoolSource::getNextItemType().
|
static |
Definition at line 262 of file IndexIntoFile.h.
Referenced by addEntry(), edm::IndexIntoFile::IndexIntoFileItrImpl::advanceToNextLumiOrRun(), begin(), end(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::fillIndexesSortedByEventEntry(), findPosition(), edm::IndexIntoFile::IndexIntoFileItrImpl::firstEventEntryThisLumi(), edm::IndexIntoFile::IndexIntoFileItrImpl::firstEventEntryThisRun(), edm::IndexIntoFile::IndexIntoFileItrNoSort::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrSorted::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::initializeLumi_(), edm::IndexIntoFile::IndexIntoFileItrImpl::initializeRun(), edm::IndexIntoFile::IndexIntoFileItrNoSort::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::nextEventRange(), edm::IndexIntoFile::IndexIntoFileItrNoSort::peekAheadAtEventEntry(), edm::IndexIntoFile::IndexIntoFileItrSorted::peekAheadAtEventEntry(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::peekAheadAtEventEntry(), edm::IndexIntoFile::IndexIntoFileItrNoSort::peekAheadAtLumi(), edm::IndexIntoFile::IndexIntoFileItrSorted::peekAheadAtLumi(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::peekAheadAtLumi(), edm::IndexIntoFile::IndexIntoFileItrNoSort::previousEventRange(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::previousEventRange(), edm::IndexIntoFile::IndexIntoFileItrImpl::previousLumiWithEvents(), edm::IndexIntoFile::IndexIntoFileItrNoSort::processHistoryIDIndex(), edm::IndexIntoFile::IndexIntoFileItrSorted::processHistoryIDIndex(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::processHistoryIDIndex(), edm::IndexIntoFile::Transients::reset(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::EntryOrderInitializationInfo::resizeVectors(), edm::IndexIntoFile::IndexIntoFileItrImpl::setInvalid(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::shouldProcessLumi(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::shouldProcessRun(), edm::IndexIntoFile::IndexIntoFileItrImpl::skipEventBackward(), edm::IndexIntoFile::IndexIntoFileItrImpl::skipEventForward(), edm::RootFile::skipEvents(), edm::IndexIntoFile::IndexIntoFileItrNoSort::skipLumiInRun(), edm::IndexIntoFile::IndexIntoFileItrSorted::skipLumiInRun(), and edm::IndexIntoFile::IndexIntoFileItrEntryOrder::skipLumiInRun().
|
static |
Definition at line 264 of file IndexIntoFile.h.
Referenced by addEntry(), findLumiPosition(), findPosition(), edm::IndexIntoFile::IndexIntoFileItrImpl::getLumisInRun(), edm::PoolSource::getNextItemType(), edm::IndexIntoFile::RunOrLumiEntry::isRun(), edm::IndexIntoFile::RunOrLumiIndexes::isRun(), edm::IndexIntoFile::SortedRunOrLumiItr::isRun(), edm::IndexIntoFile::IndexIntoFileItrNoSort::lumi(), edm::IndexIntoFile::IndexIntoFileItrSorted::lumi(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::lumi(), edm::IndexIntoFile::IndexIntoFileItrNoSort::peekAheadAtLumi(), edm::IndexIntoFile::IndexIntoFileItrSorted::peekAheadAtLumi(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::peekAheadAtLumi(), edm::IndexIntoFile::Transients::reset(), edm::IndexIntoFile::IndexIntoFileItrImpl::skipEventBackward(), edm::IndexIntoFile::IndexIntoFileItrImpl::skipEventForward(), edm::RootFile::skipEvents(), and edm::RootFile::skipThisEntry().
|
static |
Definition at line 263 of file IndexIntoFile.h.
Referenced by addEntry(), edm::PoolSource::getNextItemType(), edm::IndexIntoFile::Transients::reset(), edm::IndexIntoFile::IndexIntoFileItrNoSort::run(), edm::IndexIntoFile::IndexIntoFileItrSorted::run(), edm::IndexIntoFile::IndexIntoFileItrEntryOrder::run(), edm::IndexIntoFile::IndexIntoFileItrImpl::skipEventBackward(), edm::IndexIntoFile::IndexIntoFileItrImpl::skipEventForward(), and edm::RootFile::skipEvents().
|
private |
Definition at line 1299 of file IndexIntoFile.h.
Referenced by addEntry(), fixIndexes(), processHistoryID(), processHistoryIDs(), reduceProcessHistoryIDs(), and setProcessHistoryIDs().
|
private |
Definition at line 1300 of file IndexIntoFile.h.
Referenced by addEntry(), addLumi(), checkForMissingRunOrLumiEntry(), fillRunOrLumiIndexes(), findPosition(), fixIndexes(), reduceProcessHistoryIDs(), runOrLumiEntries(), setRunOrLumiEntries(), and sortVector_Run_Or_Lumi_Entries().
|
mutableprivate |
Definition at line 1297 of file IndexIntoFile.h.
Referenced by beginEvents(), currentIndex(), currentLumi(), currentRun(), endEvents(), eventEntries(), eventNumbers(), getEventNumberOfEntry(), initializeTransients(), lumiToOrder(), numberOfEvents(), previousAddedIndex(), resetEventFinder(), runOrLumiIndexes(), runToOrder(), setEventFinder(), setNumberOfEvents(), unsortedEventNumbers(), and unsortedEventNumbersMutable().