CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
edm::IndexIntoFile::IndexIntoFileItrEntryOrder Class Reference

#include <IndexIntoFile.h>

Inheritance diagram for edm::IndexIntoFile::IndexIntoFileItrEntryOrder:
edm::IndexIntoFile::IndexIntoFileItrImpl

Public Member Functions

IndexIntoFileItrImplclone () const override
 
EntryNumber_t entry () const override
 
bool entryContinues () const override
 
 IndexIntoFileItrEntryOrder (IndexIntoFile const *indexIntoFile, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
 
LuminosityBlockNumber_t lumi () const override
 
bool lumiEntryValid (int index) const override
 
EntryNumber_t peekAheadAtEventEntry () const override
 
LuminosityBlockNumber_t peekAheadAtLumi () const override
 
int processHistoryIDIndex () const override
 
RunNumber_t run () const override
 
bool skipLumiInRun () override
 
- Public Member Functions inherited from edm::IndexIntoFile::IndexIntoFileItrImpl
void advanceToNextLumiOrRun ()
 
void advanceToNextRun ()
 
void copyPosition (IndexIntoFileItrImpl const &position)
 
EntryNumber_t firstEventEntryThisLumi ()
 
EntryNumber_t firstEventEntryThisRun ()
 
EntryType getEntryType () const
 
void getLumisInRun (std::vector< LuminosityBlockNumber_t > &lumis) const
 
IndexIntoFile const * indexIntoFile () const
 
 IndexIntoFileItrImpl (IndexIntoFile const *indexIntoFile, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
 
long long indexToEvent () const
 
int indexToEventRange () const
 
int indexToLumi () const
 
int indexToRun () const
 
void initializeLumi ()
 
void initializeRun ()
 
long long nEvents () const
 
void next ()
 
bool operator== (IndexIntoFileItrImpl const &right) const
 
int size () const
 
void skipEventBackward (int &phIndexOfEvent, RunNumber_t &runOfEvent, LuminosityBlockNumber_t &lumiOfEvent, EntryNumber_t &eventEntry)
 
void skipEventForward (int &phIndexOfSkippedEvent, RunNumber_t &runOfSkippedEvent, LuminosityBlockNumber_t &lumiOfSkippedEvent, EntryNumber_t &skippedEventEntry)
 
bool skipToNextEventInLumi ()
 
EntryType type () const
 
virtual ~IndexIntoFileItrImpl ()
 

Private Member Functions

EntryType getRunOrLumiEntryType (int index) const override
 
void initializeLumi_ () override
 
bool isSameLumi (int index1, int index2) const override
 
bool isSameRun (int index1, int index2) const override
 
LuminosityBlockNumber_t lumi (int index) const override
 
bool nextEventRange () override
 
bool previousEventRange () override
 
RunOrLumiEntry const & runOrLumisEntry (EntryNumber_t iEntry) const
 
bool setToLastEventInRange (int index) override
 

Private Attributes

std::vector< EntryNumber_tfileOrderRunOrLumiEntry_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::IndexIntoFile::IndexIntoFileItrImpl
void setIndexToEvent (long long value)
 
void setIndexToEventRange (int value)
 
void setIndexToLumi (int value)
 
void setInvalid ()
 
void setNEvents (long long value)
 

Detailed Description

Definition at line 685 of file IndexIntoFile.h.

Constructor & Destructor Documentation

edm::IndexIntoFile::IndexIntoFileItrEntryOrder::IndexIntoFileItrEntryOrder ( IndexIntoFile const *  indexIntoFile,
EntryType  entryType,
int  indexToRun,
int  indexToLumi,
int  indexToEventRange,
long long  indexToEvent,
long long  nEvents 
)

Definition at line 1729 of file IndexIntoFile.cc.

References cms::cuda::assert(), edm::IndexIntoFile::beginEvents(), fileOrderRunOrLumiEntry_, spr::find(), edm::IndexIntoFile::IndexIntoFileItrImpl::indexIntoFile(), edm::IndexIntoFile::invalidEntry, and edm::IndexIntoFile::runOrLumiEntries().

1738  auto const& runOrLumiEntries = this->indexIntoFile()->runOrLumiEntries();
1740  auto const itBegin = runOrLumiEntries.begin();
1741  auto itPresentEntryToRunOrLumis = runOrLumiEntries.begin();
1742  auto itRestartSearchAt = runOrLumiEntries.begin();
1743  EntryNumber_t endOfContiguousEventEntry = 0;
1744  std::vector<bool> usedEntry(runOrLumiEntries.size(), false);
1745  auto findFirstOpen = [](auto const& entries) {
1746  return std::find(entries.begin(), entries.end(), false) - entries.begin();
1747  };
1748  while (fileOrderRunOrLumiEntry_.size() != runOrLumiEntries.size()) {
1749  assert(itRestartSearchAt != runOrLumiEntries.end());
1750  assert(itPresentEntryToRunOrLumis != runOrLumiEntries.end());
1751 
1752  auto const index = itPresentEntryToRunOrLumis - itBegin;
1753  if (usedEntry[index]) {
1754  ++itPresentEntryToRunOrLumis;
1755  continue;
1756  }
1757  assert(static_cast<std::size_t>(index) < runOrLumiEntries.size());
1758  if (itPresentEntryToRunOrLumis->isRun()) {
1759  //take Run as it is
1760  fileOrderRunOrLumiEntry_.push_back(index);
1761  usedEntry[index] = true;
1762  itRestartSearchAt = runOrLumiEntries.begin() + findFirstOpen(usedEntry);
1763  itPresentEntryToRunOrLumis = itRestartSearchAt;
1764  continue;
1765  }
1766  auto const beginEvents = itPresentEntryToRunOrLumis->beginEvents();
1767  if (beginEvents == invalidEntry) {
1768  //this is an empty lumi. We want to preserve the order w.r.t previous entries
1769  if (std::find(usedEntry.begin(), usedEntry.begin() + index, false) == usedEntry.begin() + index) {
1770  fileOrderRunOrLumiEntry_.push_back(index);
1771  usedEntry[index] = true;
1772  itRestartSearchAt = runOrLumiEntries.begin() + findFirstOpen(usedEntry);
1773  itPresentEntryToRunOrLumis = itRestartSearchAt;
1774  continue;
1775  }
1776  } else if (beginEvents == endOfContiguousEventEntry) {
1777  fileOrderRunOrLumiEntry_.push_back(index);
1778  usedEntry[index] = true;
1779  endOfContiguousEventEntry = itPresentEntryToRunOrLumis->endEvents();
1780  itRestartSearchAt = runOrLumiEntries.begin() + findFirstOpen(usedEntry);
1781  itPresentEntryToRunOrLumis = itRestartSearchAt;
1782  continue;
1783  }
1784  ++itPresentEntryToRunOrLumis;
1785  }
1786  }
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiEntry > const & runOrLumiEntries() const
Used internally and for test purposes.
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
assert(be >=bs)
long long EntryNumber_t
IndexIntoFileItrImpl(IndexIntoFile const *indexIntoFile, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
std::vector< EntryNumber_t > fileOrderRunOrLumiEntry_
static constexpr EntryNumber_t invalidEntry
EntryNumber_t & beginEvents() const

Member Function Documentation

IndexIntoFile::IndexIntoFileItrImpl * edm::IndexIntoFile::IndexIntoFileItrEntryOrder::clone ( void  ) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1788 of file IndexIntoFile.cc.

1788  {
1789  return new IndexIntoFileItrEntryOrder(*this);
1790  }
IndexIntoFileItrEntryOrder(IndexIntoFile const *indexIntoFile, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
IndexIntoFile::EntryNumber_t edm::IndexIntoFile::IndexIntoFileItrEntryOrder::entry ( ) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1810 of file IndexIntoFile.cc.

References edm::IndexIntoFile::continuedLumi, mps_splice::entry, edm::IndexIntoFile::invalidEntry, edm::IndexIntoFile::kEnd, edm::IndexIntoFile::kLumi, edm::IndexIntoFile::kRun, dqmdumpme::lumi, and findQualityFiles::size.

1810  {
1811  if (type() == kEnd)
1812  return invalidEntry;
1813  if (type() == kRun)
1814  return runOrLumisEntry(indexToRun()).entry();
1815  if (type() == kLumi) {
1816  auto entry = runOrLumisEntry(indexToLumi()).entry();
1817  if (entry == invalidEntry) {
1818  if (indexToLumi() + 1 < size()) {
1820  //find the end of this lumi
1821  auto const& runLumiEntry = runOrLumisEntry(indexToLumi());
1822  for (auto nextIndex = indexToLumi() + 1; nextIndex < size(); ++nextIndex) {
1823  auto const& nextRunLumiEntry = runOrLumisEntry(nextIndex);
1824  if (runLumiEntry.lumi() == nextRunLumiEntry.lumi() and runLumiEntry.run() == nextRunLumiEntry.run() and
1825  runLumiEntry.processHistoryIDIndex() == nextRunLumiEntry.processHistoryIDIndex()) {
1826  auto nextEntry = nextRunLumiEntry.entry();
1827  if (nextEntry != invalidEntry) {
1828  return nextEntry;
1829  }
1830  }
1831  }
1832  return continuedLumi;
1833  }
1834  }
1835  }
1836  return entry;
1837  }
1839  }
EntryNumber_t beginEvents() const
LuminosityBlockNumber_t lumi() const override
static constexpr EntryNumber_t continuedLumi
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr EntryNumber_t invalidEntry
EntryNumber_t entry() const
bool edm::IndexIntoFile::IndexIntoFileItrEntryOrder::entryContinues ( ) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1841 of file IndexIntoFile.cc.

References mps_splice::entry, and edm::IndexIntoFile::invalidEntry.

1841  {
1842  auto entry = runOrLumisEntry(indexToLumi()).entry();
1843  return entry == invalidEntry;
1844  }
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr EntryNumber_t invalidEntry
EntryNumber_t entry() const
IndexIntoFile::EntryType edm::IndexIntoFile::IndexIntoFileItrEntryOrder::getRunOrLumiEntryType ( int  index) const
overrideprivatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1973 of file IndexIntoFile.cc.

References edm::IndexIntoFile::kEnd, edm::IndexIntoFile::kLumi, edm::IndexIntoFile::kRun, and findQualityFiles::size.

1973  {
1974  if (index < 0 || index >= size()) {
1975  return kEnd;
1976  } else if (runOrLumisEntry(index).isRun()) {
1977  return kRun;
1978  }
1979  return kLumi;
1980  }
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
void edm::IndexIntoFile::IndexIntoFileItrEntryOrder::initializeLumi_ ( )
overrideprivatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1860 of file IndexIntoFile.cc.

References cms::cuda::assert(), edm::IndexIntoFile::beginEvents(), edm::IndexIntoFile::endEvents(), mps_fire::i, edm::IndexIntoFile::invalidEntry, edm::IndexIntoFile::invalidIndex, and findQualityFiles::size.

1860  {
1862 
1864  setIndexToEvent(0);
1865  setNEvents(0);
1866 
1867  for (int i = 0; indexToLumi() + i < size(); ++i) {
1868  if (runOrLumisEntry(indexToLumi() + i).isRun()) {
1869  break;
1870  } else if (runOrLumisEntry(indexToLumi() + i).lumi() == runOrLumisEntry(indexToLumi()).lumi()) {
1872  continue;
1873  }
1875  setIndexToEvent(0);
1878  break;
1879  } else {
1880  break;
1881  }
1882  }
1883  }
static constexpr int invalidIndex
EntryNumber_t beginEvents() const
assert(be >=bs)
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr EntryNumber_t invalidEntry
LuminosityBlockNumber_t lumi() const
EntryNumber_t & endEvents() const
EntryNumber_t & beginEvents() const
bool edm::IndexIntoFile::IndexIntoFileItrEntryOrder::isSameLumi ( int  index1,
int  index2 
) const
overrideprivatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1982 of file IndexIntoFile.cc.

References findQualityFiles::size.

1982  {
1983  if (index1 < 0 || index1 >= size() || index2 < 0 || index2 >= size()) {
1984  return false;
1985  }
1986  return runOrLumisEntry(index1).lumi() == runOrLumisEntry(index2).lumi();
1987  }
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
LuminosityBlockNumber_t lumi() const
bool edm::IndexIntoFile::IndexIntoFileItrEntryOrder::isSameRun ( int  index1,
int  index2 
) const
overrideprivatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1989 of file IndexIntoFile.cc.

References findQualityFiles::size.

1989  {
1990  if (index1 < 0 || index1 >= size() || index2 < 0 || index2 >= size()) {
1991  return false;
1992  }
1993  return runOrLumisEntry(index1).run() == runOrLumisEntry(index2).run() &&
1995  }
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
LuminosityBlockNumber_t edm::IndexIntoFile::IndexIntoFileItrEntryOrder::lumi ( ) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1804 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidLumi, edm::IndexIntoFile::kEnd, and edm::IndexIntoFile::kRun.

Referenced by upgradeWorkflowComponents.UpgradeWorkflowAging::setup_().

1804  {
1805  if (type() == kEnd || type() == kRun)
1806  return invalidLumi;
1807  return runOrLumisEntry(indexToLumi()).lumi();
1808  }
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr LuminosityBlockNumber_t invalidLumi
LuminosityBlockNumber_t lumi() const
LuminosityBlockNumber_t edm::IndexIntoFile::IndexIntoFileItrEntryOrder::lumi ( int  index) const
overrideprivatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1997 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidLumi, and findQualityFiles::size.

Referenced by upgradeWorkflowComponents.UpgradeWorkflowAging::setup_().

1997  {
1998  if (index < 0 || index >= size()) {
1999  return invalidLumi;
2000  }
2001  return runOrLumisEntry(index).lumi();
2002  }
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr LuminosityBlockNumber_t invalidLumi
LuminosityBlockNumber_t lumi() const
bool edm::IndexIntoFile::IndexIntoFileItrEntryOrder::lumiEntryValid ( int  index) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1961 of file IndexIntoFile.cc.

References mps_splice::entry, edm::IndexIntoFile::invalidEntry, dqmdumpme::lumi, and findQualityFiles::size.

1961  {
1962  auto entry = runOrLumisEntry(index).entry();
1963  if (entry == invalidEntry) {
1964  if (index + 1 < size()) {
1965  if (runOrLumisEntry(index).lumi() != runOrLumisEntry(index + 1).lumi()) {
1966  return true;
1967  }
1968  }
1969  }
1970  return entry != invalidEntry;
1971  }
LuminosityBlockNumber_t lumi() const override
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr EntryNumber_t invalidEntry
EntryNumber_t entry() const
bool edm::IndexIntoFile::IndexIntoFileItrEntryOrder::nextEventRange ( )
overrideprivatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1885 of file IndexIntoFile.cc.

References edm::IndexIntoFile::beginEvents(), edm::IndexIntoFile::endEvents(), mps_fire::i, edm::IndexIntoFile::invalidEntry, edm::IndexIntoFile::invalidIndex, and findQualityFiles::size.

1885  {
1887  return false;
1888 
1889  // Look for the next event range, same lumi but different entry
1890  for (int i = 1; indexToEventRange() + i < size(); ++i) {
1892  return false; // hit next run
1895  continue; // same lumi but has no events, keep looking
1896  }
1898  setIndexToEvent(0);
1901  return true; // found more events in this lumi
1902  }
1903  return false; // hit next lumi
1904  }
1905  return false; // hit the end of the IndexIntoFile
1906  }
static constexpr int invalidIndex
EntryNumber_t beginEvents() const
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr EntryNumber_t invalidEntry
LuminosityBlockNumber_t lumi() const
EntryNumber_t & endEvents() const
EntryNumber_t & beginEvents() const
IndexIntoFile::EntryNumber_t edm::IndexIntoFile::IndexIntoFileItrEntryOrder::peekAheadAtEventEntry ( ) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1852 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidEntry, edm::IndexIntoFile::invalidIndex, and submitPVValidationJobs::nEvents.

1852  {
1853  if (indexToLumi() == invalidIndex)
1854  return invalidEntry;
1855  if (indexToEvent() >= nEvents())
1856  return invalidEntry;
1858  }
static constexpr int invalidIndex
EntryNumber_t beginEvents() const
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr EntryNumber_t invalidEntry
LuminosityBlockNumber_t edm::IndexIntoFile::IndexIntoFileItrEntryOrder::peekAheadAtLumi ( ) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1846 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidIndex, and edm::IndexIntoFile::invalidLumi.

1846  {
1847  if (indexToLumi() == invalidIndex)
1848  return invalidLumi;
1849  return runOrLumisEntry(indexToLumi()).lumi();
1850  }
static constexpr int invalidIndex
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr LuminosityBlockNumber_t invalidLumi
LuminosityBlockNumber_t lumi() const
bool edm::IndexIntoFile::IndexIntoFileItrEntryOrder::previousEventRange ( )
overrideprivatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1908 of file IndexIntoFile.cc.

References cms::cuda::assert(), edm::IndexIntoFile::beginEvents(), edm::IndexIntoFile::endEvents(), mps_fire::i, edm::IndexIntoFile::invalidEntry, edm::IndexIntoFile::invalidIndex, submitPVValidationJobs::nEvents, and findQualityFiles::size.

1908  {
1910  return false;
1911  assert(indexToEventRange() < size());
1912 
1913  // Look backward for a previous event range with events, same lumi but different entry
1914  for (int i = 1; indexToEventRange() - i > 0; ++i) {
1915  int newRange = indexToEventRange() - i;
1916  if (runOrLumisEntry(newRange).isRun()) {
1917  return false; // hit run
1918  } else if (isSameLumi(newRange, indexToEventRange())) {
1919  if (runOrLumisEntry(newRange).beginEvents() == invalidEntry) {
1920  continue; // same lumi but has no events, keep looking
1921  }
1922  setIndexToEventRange(newRange);
1925  setIndexToEvent(nEvents() - 1);
1926  return true; // found previous event in this lumi
1927  }
1928  return false; // hit previous lumi
1929  }
1930  return false; // hit the beginning of the IndexIntoFile, 0th entry has to be a run
1931  }
static constexpr int invalidIndex
assert(be >=bs)
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr EntryNumber_t invalidEntry
bool isSameLumi(int index1, int index2) const override
EntryNumber_t & endEvents() const
EntryNumber_t & beginEvents() const
int edm::IndexIntoFile::IndexIntoFileItrEntryOrder::processHistoryIDIndex ( ) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1792 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidIndex, and edm::IndexIntoFile::kEnd.

1792  {
1793  if (type() == kEnd)
1794  return invalidIndex;
1796  }
static constexpr int invalidIndex
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
RunNumber_t edm::IndexIntoFile::IndexIntoFileItrEntryOrder::run ( ) const
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1798 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidRun, and edm::IndexIntoFile::kEnd.

Referenced by Types.EventID::cppID(), and Types.LuminosityBlockID::cppID().

1798  {
1799  if (type() == kEnd)
1800  return invalidRun;
1801  return runOrLumisEntry(indexToRun()).run();
1802  }
static constexpr RunNumber_t invalidRun
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
RunOrLumiEntry const& edm::IndexIntoFile::IndexIntoFileItrEntryOrder::runOrLumisEntry ( EntryNumber_t  iEntry) const
inlineprivate

Definition at line 707 of file IndexIntoFile.h.

References fileOrderRunOrLumiEntry_, edm::IndexIntoFile::IndexIntoFileItrImpl::indexIntoFile(), and edm::IndexIntoFile::runOrLumiEntries().

707  {
709  }
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiEntry > const & runOrLumiEntries() const
Used internally and for test purposes.
std::vector< EntryNumber_t > fileOrderRunOrLumiEntry_
bool edm::IndexIntoFile::IndexIntoFileItrEntryOrder::setToLastEventInRange ( int  index)
overrideprivatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1933 of file IndexIntoFile.cc.

References cms::cuda::assert(), edm::IndexIntoFile::beginEvents(), edm::IndexIntoFile::endEvents(), edm::IndexIntoFile::invalidEntry, and submitPVValidationJobs::nEvents.

1933  {
1935  return false;
1936  }
1939  assert(nEvents() > 0);
1940  setIndexToEvent(nEvents() - 1);
1941  return true;
1942  }
assert(be >=bs)
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const
static constexpr EntryNumber_t invalidEntry
EntryNumber_t & endEvents() const
EntryNumber_t & beginEvents() const
bool edm::IndexIntoFile::IndexIntoFileItrEntryOrder::skipLumiInRun ( )
overridevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1944 of file IndexIntoFile.cc.

References mps_fire::i, edm::IndexIntoFile::invalidIndex, dqmdumpme::lumi, and findQualityFiles::size.

1944  {
1945  if (indexToLumi() == invalidIndex)
1946  return false;
1947  for (int i = 1; indexToLumi() + i < size(); ++i) {
1948  int newLumi = indexToLumi() + i;
1949  if (runOrLumisEntry(newLumi).isRun()) {
1950  return false; // hit next run
1951  } else if (runOrLumisEntry(newLumi).lumi() == runOrLumisEntry(indexToLumi()).lumi()) {
1952  continue;
1953  }
1954  setIndexToLumi(newLumi);
1955  initializeLumi();
1956  return true; // hit next lumi
1957  }
1958  return false; // hit the end of the IndexIntoFile
1959  }
static constexpr int invalidIndex
LuminosityBlockNumber_t lumi() const override
RunOrLumiEntry const & runOrLumisEntry(EntryNumber_t iEntry) const

Member Data Documentation

std::vector<EntryNumber_t> edm::IndexIntoFile::IndexIntoFileItrEntryOrder::fileOrderRunOrLumiEntry_
private

Definition at line 718 of file IndexIntoFile.h.

Referenced by IndexIntoFileItrEntryOrder(), and runOrLumisEntry().